<Return[E]><Top>

ExtractIcon

Declare Function Api_ExtractIcon& Lib "shell32" Alias "ExtractIconA" (ByVal hInst&, ByVal Path$, ByVal Index&)

Declare Function ExtractIcon Lib "shell32" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

指定された実行可能ファイル、ダイナミックリンクライブラリ(DLL)、アイコンファイルのいずれかから、そのファイル内のアイコンのハンドルを取得する。
大きいアイコンや小さいアイコンに対応する複数のハンドルからなる配列を取得するには、ExtractIconEx 関数を使う。

パラメータ
hInst
    この関数を呼び出しているアプリケーションのインスタンスハンドルを指定する。
lpszExeFileName
    実行可能ファイル、DLL、アイコンファイルのいずれかのファイル名を保持している、NULL で終わる文字列へのポインタを指定する。
nIconIndex
    取得対象のアイコンのインデックスを 0 ベースで指定する。たとえば、0 を指定すると、ファイルの最初のアイコンのハンドルが返る。
    -1 を指定すると、指定されたファイル内のアイコンの総数が返る。

    実行可能ファイルまたは DLL を指定した場合、RT_GROUP_ICON リソースの数が返る。.ICO ファイルの場合、1 が返る。
    Windows 95/98 と Windows NT 4.0 以降:-1 以外の負の数を指定すると、この関数は、指定されたファイルの中で、nIconIndex の

    絶対値に等しいリソース識別子を持つアイコンのハンドルを返する。

    たとえば、-3 を指定すると、リソース識別子が 3 であるアイコンのハンドルを取得できる。

    リソース識別子が 1 であるアイコンを取得するには、ExtractIconEx 関数を使う。

戻り値
    関数が成功すると、アイコンのハンドルが返る。ただし、nIconIndex パラメータに -1 を指定した場合、指定されたファイル内のアイコンの

    総数が返る。

    指定したファイルが、実行可能ファイル、DLL、アイコンファイルのいずれでもない場合、1 が返る。

    ファイル内にアイコンが見つからなかった場合、NULL が返る。

解説
    ExtractIcon 関数が返したアイコンのハンドルは、必要がなくなった段階で、DestroyIcon 関数を呼び出して破棄しなければならない。