SHDefExtractIconA 函数 (shlobj_core.h)

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

语法

SHSTDAPI SHDefExtractIconA(
  [in]            LPCSTR 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 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h (包括 Shlobj.h、Shlobj_core.h)
Library Shell32.lib
DLL Shell32.dll (版本 6.0 或更高版本)
API 集 Windows 10版本 10.0.10240 中引入的 ext-ms-win-shell-shell32-l1-2-1 ()