PrivateExtractIconsA 函数 (winuser.h)

[此函数不适用于常规用途。 在后续版本的 Windows 中,可能会更改或不可用。

创建从指定文件中提取的图标的句柄数组。

语法

UINT PrivateExtractIconsA(
  [in]            LPCSTR szFileName,
  [in]            int    nIconIndex,
  [in]            int    cxIcon,
  [in]            int    cyIcon,
  [out, optional] HICON  *phicon,
  [out, optional] UINT   *piconid,
  [in]            UINT   nIcons,
  [in]            UINT   flags
);

参数

[in] szFileName

类型:LPCTSTR

要从中提取图标的文件的路径和名称。

[in] nIconIndex

类型:int

要提取的第一个图标的从零开始的索引。 例如,如果此值为零,函数将提取指定文件中的第一个图标。

[in] cxIcon

类型:int

所需的水平图标大小。 请参阅“备注”。

[in] cyIcon

类型:int

所需的垂直图标大小。 请参阅“备注”。

[out, optional] phicon

类型:HICON*

指向返回的图标句柄数组的指针。

[out, optional] piconid

类型:UINT*

指向最适合当前显示设备的图标返回的资源标识符的指针。 如果标识符不可用于此格式,则返回的标识符0xFFFFFFFF。 如果无法获取该标识符,则返回的标识符为 0。

[in] nIcons

类型:UINT

要从文件中提取的图标数。 仅当从 .exe 和 .dll 文件中提取时,此参数才有效。

[in] flags

类型:UINT

指定控制此函数的标志。 这些标志是 LoadImage 函数使用的 LR_* 标志。

返回值

类型:UINT

如果 phicon 参数 NULL 并且此函数成功,则返回值为文件中的图标数。 如果函数失败,则返回值为 0。

如果 phicon 参数未 NULL 且函数成功,则返回值为提取的图标数。 否则,如果未找到文件,则返回值0xFFFFFFFF。

言论

此函数从可执行文件(.exe)、DLL(.dll)、图标(.ico)、光标(.cur)、动画游标(.ani)和位图(.bmp)文件中提取。 还支持从 Windows 3.x 16 位可执行文件(.exe 或 .dll)提取。

cxIconcyIcon 参数指定要提取的图标的大小。 通过将第一个大小放在参数的 LOWORD 中,将第二个大小放在 HIWORD 中,可以提取两个大小。 例如,对于 cxIcon 和 cyIcon 参数,MAKELONG(24, 48) 将同时提取 24 和 48 个大小图标。

必须通过调用 DestroyIcon 函数来销毁 PrivateExtractIcons 提取的所有图标。

在 Windows XP Service Pack 1(SP1)和 Windows Server 2003 之前,SDK 标头和库中不包含此函数。 如果没有此函数的头文件和导入库,则可以使用 LoadLibraryGetProcAddress调用该函数。

注意

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

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-misc-l1-5-1(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

概念

DestroyIcon

ExtractIcon

ExtractIconEx

图标

参考