ExtractIconEx(A)

指定された実行可能ファイル、ダイナミックリンクライブラリ(DLL)、またはアイコンファイルから、そのファイルが持つ大きいアイコンまたは小さいアイコンのハンドルを取得し、配列変数に格納します。

UINT ExtractIconExA(
    PCTSTR  pszFile,     // ファイル名
    UINT    nIconIndex,  // アイコンのインデックス
    HICON  *phIconLarge, // 大きなアイコンのハンドルを格納する変数
    HICON  *phIconSmall, // 小さなアイコンのハンドルを格納する変数
    UINT    nIcons       // 取得するアイコンの数
);

SHELL32.DLL

引数

pszFile

ファイル名を表す文字列のアドレスを指定します。実行可能ファイル、 DLL 、アイコンファイルのいずれかのファイル名を指定できます。

nIconIndex

取得するアイコンの 0 から始まるインデックスを指定します。例えば、このパラメータに 0 を指定した場合は最初のアイコンが取得されます。

このパラメータに -1 を指定し、 phIconLarge パラメータおよび phIconSmall パラメータにともに 0 (NULL) を指定すると、戻り値として、指定されたファイルが持っているアイコンの総数が返ります。指定されたファイルが実行可能ファイルまたは DLL の場合は、 RT_GROUP_ICON リソースの数が返ります。指定されたファイルが .ICO ファイルの場合は、 1 が返ります。

このパラメータに負の数を指定し、 phIconLarge パラメータもしくは phIconSmall パラメータの少なくとも一方に有効な変数のアドレスを指定した場合は、リソース ID がこのパラメータの絶対値であるアイコンが取得されます。例えば、 -3 を指定した場合は、リソース ID が 3 であるアイコンが取得されます。

phIconLarge

大きなアイコンのハンドルを格納する配列変数のアドレスを指定します。大きなアイコンが必要ない場合には 0 (NULL) を指定します。

phIconSmall

小さなアイコンのハンドルを格納する配列変数のアドレスを指定します。小さなアイコンが必要ない場合には 0 (NULL) を指定します。

nIcons

取り出すアイコンの数を指定します。

戻り値

nIconIndex パラメータに -1 、phIconLarge パラメータに 0 (NULL) 、phIconSmall パラメータに 0 (NULL) を指定した場合は、指定されたファイルが持つアイコンの総数が返ります。

それ以外の場合は、取得したアイコンの数が返ります。

解説

アイコンが不要になったら、 DestroyIcon 関数を呼び出してアイコンハンドルを破棄しなければなりません。

対応情報

Windows 95 以降 / Windows NT 4.0 以降