<Return[E]><Top>

ExtractIconEx

Declare Function Api_ExtractIconEx& Lib "shell32" Alias "ExtractIconExA" (ByVal lpszFile$, ByVal nIconIndex&, phiconLarge&, phiconSmall&, ByVal nIcons&)

Declare Function ExtractIconEx Lib "shell32" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

指定された実行可能ファイル、ダイナミックリンクライブラリ(DLL)、アイコンファイルのいずれかから、大きいアイコンまたは小さいアイコンを取得し、それら複数のアイコンのハンドルからなる 1 つの配列を作成する。

パラメータ
lpszFile
    実行可能ファイル、DLL、アイコンファイルのいずれかのファイル名を保持している、NULL で終わる文字列へのポインタを指定する。

    ここで指定したファイルからアイコンを取得する。
nIconIndex
    取得対象のアイコンのインデックスを 0 ベースで指定する。

    たとえば、0 を指定すると、ファイルの最初のアイコンから、nIcons パラメータで指定した数だけアイコンを取得する。
    nIconIndex パラメータで -1 を指定し、phiconLarge と phiconSmall の両方のパラメータで NULL を指定すると、指定されたファイル内の

    アイコンの総数が返る。

    実行可能ファイルまたは DLL を指定した場合、RT_GROUP_ICON リソースの数が返る。.ICO ファイルの場合、1 が返る。
    Windows 95/98 と Windows NT 4.0 以降:nIconIndex パラメータで負の数を指定し、phiconLarge と phiconSmall のどちらかのパラメー

    タで NULL 以外の値を指定すると、この関数は、指定されたファイルの中で、nIconIndex の絶対値に等しいリソース識別子を持つアイコ

    ン以降の複数のアイコンを取得する。たとえば、-3 を指定すると、リソース識別子が 3 であるアイコンから取得を開始する。
phiconLarge
    1 個の配列へのポインタを指定する。

    関数から制御が返ると、この配列に、ファイルから取得した複数の大きいアイコンのハンドルが格納される。このような配列が必要ない場

    合、NULL を指定する。
phiconSmall
    1 個の配列へのポインタを指定する。

    関数から制御が返ると、この配列に、ファイルから取得した複数の小さいアイコンのハンドルが格納される。このような配列が必要ない場

    合、NULL を指定する。
nIcons
    ファイルから取得するべきアイコンの数を指定する。
 

戻り値
    nIconIndex パラメータで -1 を指定し、phiconLarge と phiconSmall の両方のパラメータで NULL を指定すると、指定されたファイル内の

    アイコンの総数が返る。それ以外の場合、指定されたファイルから取得することに成功したアイコンの数が返る。

解説
    ExtractIconEx 関数が取得したすべてのアイコンのハンドルは、必要がなくなった段階で、DestroyIcon 関数を呼び出して破棄しなければ

    ならない。
    大きいアイコンと小さいアイコンそれぞれのサイズを取得するには、SM_CXICON、SM_CYICON、SM_CXSMICON、SM_CYSMICON

    の各フラグを指定して、GetSystemMetrics 関数を呼び出す。