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)提取。
cxIcon 和 cyIcon 参数指定要提取的图标的大小。 通过将第一个大小放在参数的 LOWORD 中,将第二个大小放在 HIWORD 中,可以提取两个大小。
例如,对于 cxIcon 和 cyIcon 参数,MAKELONG(24, 48)
将同时提取 24 和 48 个大小图标。
必须通过调用 DestroyIcon 函数来销毁 PrivateExtractIcons 提取的所有图标。
在 Windows XP Service Pack 1(SP1)和 Windows Server 2003 之前,SDK 标头和库中不包含此函数。 如果没有此函数的头文件和导入库,则可以使用 LoadLibrary 和 GetProcAddress调用该函数。
注意
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 中引入) |
另请参阅
概念
参考