SHDefExtractIconW 函数 (shlobj_core.h)

提供用于从文件中提取图标的默认处理程序。

语法

SHSTDAPI SHDefExtractIconW(
  [in]            LPCWSTR pszIconFile,
                  int     iIndex,
  [in]            UINT    uFlags,
  [out, optional] HICON   *phiconLarge,
  [out, optional] HICON   *phiconSmall,
                  UINT    nIconSize
);

参数

[in] pszIconFile

类型:LPCTSTR

指向以 null 结尾的缓冲区的指针,其中包含从中提取图标的文件的路径和名称。

iIndex

类型:int

pszIconFile中命名的文件中图标的位置。 如果这是一个正数,则表示文件中图标的从零开始的位置。 例如,0 引用资源文件中的第 1 个图标,2 引用第 3 个图标。 如果这是负数,则表示图标的资源 ID。

[in] uFlags

类型:UINT

用于控制图标提取的标志。

GIL_SIMULATEDOC

覆盖默认文档图标上的提取图标以创建最终图标。 当找不到或检索任何适当的图标时,可以使用此图标。

[out, optional] phiconLarge

类型:HICON*

指向 HICON 的指针,当此函数成功返回时,接收 nIconSizeLOWORD 中指定的大型图标版本的句柄。 此值可以 NULL

[out, optional] phiconSmall

类型:HICON*

指向 HICON 的指针,当此函数成功返回时,接收在 nIconSizeHIWORD 中指定的小版本的图标的句柄。

nIconSize

类型:UINT

一个值,该值包含其 LOWORD 中的大图标大小及其 HIWORD中的小图标大小。 大小以像素为单位。 传递 0 以指定默认大大小和小大小。

返回值

类型:HRESULT

此函数可以返回其中一个值。

返回代码 描述
S_OK
成功。
S_FALSE
请求的图标不存在。
E_FAIL
无法访问该文件,或者正在通过慢速链接进行访问。

言论

调用方有责任在不再需要图标资源时释放通过此函数创建的图标资源。 这可以通过 DestroyIcon 函数来完成。

注意

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

要求

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