SetupDiLoadDeviceIcon 函数 (setupapi.h)

SetupDiLoadDeviceIcon 函数检索指定设备的图标。

语法

WINSETUPAPI BOOL SetupDiLoadDeviceIcon(
  [in]  HDEVINFO         DeviceInfoSet,
  [in]  PSP_DEVINFO_DATA DeviceInfoData,
  [in]  UINT             cxIcon,
  [in]  UINT             cyIcon,
  [in]  DWORD            Flags,
  [out] HICON            *hIcon
);

参数

[in] DeviceInfoSet

设备信息集的句柄,其中包含表示要为其检索图标的设备的设备信息元素。

[in] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。

[in] cxIcon

要检索的图标的宽度(以像素为单位)。 使用系统指标索引SM_CXICON指定默认大小的图标,或使用系统指标索引SM_CXSMICON指定一个小图标。 系统指标索引在 Winuser.h 中定义,可以通过调用 GetSystemMetrics 函数来检索其关联的值。 (getSystemMetrics 函数记录在 Microsoft Windows SDK.)

[in] cyIcon

要检索的图标的高度(以像素为单位)。 使用 SM_CXICON 指定默认大小的图标,或使用 SM_CXSMICON 指定小图标。

[in] Flags

未使用。 必须设置为零。

[out] hIcon

指向图标句柄的指针,该图标接收此函数检索的图标的句柄。 调用此函数的应用程序使用图标完成后,应用程序必须调用 DestroyIcon 才能删除该图标。 (DestroyIcon 记录在 Microsoft Windows SDK.)

返回值

如果函数成功检索指定设备的图标,则 SetupDiLoadDeviceIcon 返回 TRUE。 否则,该函数返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。

注解

SetupDiLoadDeviceIcon 尝试检索设备的图标,如下所示:

  • 如果设备的 DEVPKEY_DrvPkg_Icon 设备属性包含资源标识符字符串的列表,则函数将尝试检索由列表中的第一个资源标识符字符串指定的图标。

    DEVPROP_TYPE_STRING_LIST DEVPKEY_DrvPkg_Icon设备属性的设备属性数据类型

    资源标识符字符串的格式为

    [filepath\]filename,-resourceID
    

    其中:

    • filepath 后 跟反斜杠字符 (\\) 可选的,它指定包含图标的文件的路径。
    • FileName,后跟逗号字符 (“,”) 指定包含图标的文件的名称。
    • ResourceID 前面有短划线字符 (“-”) ,指定图标的资源 ID。
  • 如果函数无法检索特定于设备的图标,它将尝试检索设备的类图标。 有关类图标的信息,请参阅 SetupDiLoadClassIcon
  • 如果函数无法检索设备的类图标,它将尝试检索未知 设备安装类的图标,其中 Unknown 设备安装类的图标包括问号 (?) 的图像。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib
DLL Setupapi.dll

另请参阅

DEVPROP_TYPE_STRING_LIST

SetupDiLoadClassIcon