指定されたファイル(EXE、DLL)から、 アイコンのハンドルを取得 | |
構文 | HICON ExtractIcon(HINSTANCE iHandle,char* pFileName,int Index) |
引数説明 | HINSTANCE iHandle:関数を呼び出すアプリケーションのインスタンスハンドル char *pFileName:ファイル名の文字列を指すポインタを指定します。 int Index:取得するアイコンのインデックスを指定(0から始まる)します。-1を指定した場合、ファイルにあるアイコンの総数を返します。 |
戻り値 | 正常に終了した場合は、 アイコンのハンドルを返します。 実行可能ファイル、 ダイナミック・リンク・ライブラリ、 アイコン・ファイルのいずれでもない場合は、 1を返します。 ファイルにアイコンが無い場合はNULLを返します。 |
<例> | |
char fname[]="C:\Test.exe"; int count=(int)ExtractIcon(HInstance,fname,-1);//指定ファイルに含まれるアイコンの総数を取得 HDC dc=GetDC(wHandle);//アイコンを表示するウインドウのデバイス コンテキストを取得します。 //アイコンの数だけ指定したウインドウに描画します。 for(int i=0;i<count;i++) { HICON icon=ExtractIcon(HInstance,fname,i);//変数iで指定位置のアイコンのハンドルを取得 DrawIcon(dc,i*32,0,icon); } ReleaseDC(wHandle,dc);//描画が終わったらデバイス コンテキストを解放します。 HInstance 変数は、Windows によってアプリケーションまたはライブラリに提供されるハンドルです。(代わりにNULLを指定しても取得出来ます。) |