次の方法で共有


SHExtractIconsW 関数

指定したファイルから抽出されたアイコンへのハンドルの配列を作成します。

Note

この関数は、Windows XP Service Pack 2 (SP2) 経由で使用できます。 それより後のバージョンでは、変更されるか、使用できなくなる場合があります。 代わりに SHDefExtractIcon 関数を使用してください。

構文

UINT SHExtractIconsW(
  _In_  LPCWSTR pszFileName,
  _In_  int     nIconIndex,
  _In_  int     cxIcon,
  _In_  int     cyIcon,
  _Out_ HICON   *phIcon,
  _Out_ UINT    *pIconId,
  _In_  UINT    nIcons,
  _In_  UINT    flags
);

パラメーター

pszFileName [in]

型: LPCWSTR

アイコンの抽出元となるファイル名へのポインター。

nIconIndex [in]

型: int

pszFileName で指定されているリソースから抽出する最初のアイコンのインデックス。

cxIcon [in]

型: int

希望するアイコンの幅。 「解説」を参照してください。

cyIcon [in]

型: int

希望するアイコンの高さ。 「解説」を参照してください。

phIcon [out]

型: HICON*

この関数が戻ると、アイコン ハンドルの配列へのポインターが含まれます。

pIconId [out]

型: UINT*

この関数から制御が戻ると、現在のディスプレイ デバイスに最適な抽出されたアイコンのリソース識別子へのポインターが含まれます。 この形式で使用できる識別子がない場合は、0xFFFFFFFF が含まれます。 その他の理由で識別子を取得できない場合は、0 が返されます。

nIcons [in]

型: UINT

pszFileName で指定されたリソースから抽出するアイコンの数。 このパラメーターは、リソースが .exe または .dll ファイルである場合にのみ有効です。

flags [in]

型: UINT

この関数を制御するフラグ。 指定できる値については、LoadImage 関数の fuLoad パラメーターを参照してください。

戻り値

型: UINT

成功した場合は 0 以外の値。それ以外の場合は 0。

解説

SHExtractIconsW は、次のファイルの種類から抽出します。

  • 実行可能ファイル (.exe)
  • DLL (.dll)
  • アイコン (.ico)
  • カーソル (.cur)
  • アニメーション カーソル (.ani)
  • ビットマップ (.bmp)

Windows 3.x の 16 ビット実行可能ファイル (.exe または .dll) からの抽出もサポートされています。

cxIcon および cyIcon パラメーターは、抽出するアイコンのサイズを指定します。 LOWORD と HIWORD の間で値を分割することで、各パラメーターを使用して 2 つのサイズを抽出できます。 パラメーターの LOWORD に最初の目的のサイズを、HIWORD に 2 番目のサイズを配置します。 たとえば、cxIconcyIcon の両方の MAKELONG(24, 48) は、サイズが 24 と 48 の両方のアイコンを抽出します。

呼び出し元のプロセスは、この関数によって抽出されたすべてのアイコンを破棄する役割を担います。そのために、DestroyIcon 関数を呼び出します。

SHExtractIconsW は名前によってエクスポートされず、パブリック ヘッダー ファイル内に宣言されません。 これを使用するには、一致するプロトタイプを宣言し、GetProcAddress を使用して、Shell32.dll にある、この関数を呼び出すために使用できる関数ポインターを要求する必要があります。

要件

要件 Value
サポートされている最小のクライアント
Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 (デスクトップ アプリのみ)
[DLL]
Shell32.dll (バージョン 5.0 以降)
Unicode 名と ANSI 名
SHExtractIconsW (Unicode)