ExtractIconA 函数 (shellapi.h)

从指定的可执行文件、DLL 或图标文件中获取图标的句柄。

若要检索大型或小图标的句柄数组,请使用 ExtractIconEx 函数。

语法

HICON ExtractIconA(
  [in] HINSTANCE hInst,
  [in] LPCSTR    pszExeFileName,
       UINT      nIconIndex
);

参数

[in] hInst

类型:HINSTANCE

对调用函数的应用程序实例的句柄。

[in] pszExeFileName

类型:LPCTSTR

指向以 null 结尾的字符串的指针,该字符串指定可执行文件、DLL 或图标文件的名称。

nIconIndex

类型:UINT

指定要检索的图标的从零开始的索引。 例如,如果此值为 0,则函数将返回指定文件中第一个图标的句柄。

如果此值为 -1,则函数返回指定文件中的图标总数。 如果文件是可执行文件或 DLL,则返回值是RT_GROUP_ICON资源的数目。 如果文件是 .ICO 文件,返回值为 1。

如果此值为负数不等于 –1,则函数将返回指定文件中的图标的句柄,其资源标识符等于 nIconIndex的绝对值。 例如,应使用 –3 提取其资源标识符为 3 的图标。 若要提取其资源标识符为 1 的图标,请使用 ExtractIconEx 函数。

返回值

类型:HICON

返回值是图标的句柄。 如果指定的文件不是可执行文件、DLL 或图标文件,则返回结果为 1。 如果文件中未找到任何图标,则返回值 NULL

言论

不再需要时,必须通过调用 DestroyIcon 函数来销毁 ExtractIcon 返回的图标句柄。

注意

shellapi.h 标头将 ExtractIcon 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shellapi.h
DLL Shell32.dll
API 集 ext-ms-win-shell-shell32-l1-2-1(在 Windows 10 版本 10.0.10240 中引入)

另请参阅

ExtractAssociatedIcon

ExtractAssociatedIconEx

ExtractIconEx