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

指定 DeviceInfoSet 中裝置資訊元素之SP_DEVINFO_DATA結構的指標。

[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 裝置屬性包含資源標識符字串的清單,函式會嘗試擷取清單中第一個資源標識符字串所指定的圖示。

    DEVPKEY_DrvPkg_Icon 裝置屬性的 device 屬性數據類型DEVPROP_TYPE_STRING_LIST

    資源識別符字串的格式為

    [filepath\]filename,-resourceID
    

    其中:

    • filepath 後面 接著反斜杠字元 (\\) 是選擇性的,並指定包含圖示的檔案路徑。
    • FileName,後面接著逗號字元 (“,”) 指定包含圖示的檔名。
    • ResourceID 前面加上虛線字元 (“-”) ,指定圖標的資源標識符。
  • 如果函式無法擷取裝置特定的圖示,則會嘗試擷取裝置的類別圖示。 如需類別圖示的相關信息,請參閱 SetupDiLoadClassIcon
  • 如果函式無法擷取裝置的類別圖示,則會嘗試擷取未知 裝置安裝類別的圖示,其中未知裝置安裝類別的圖示包含問號 (?) 的影像。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 中使用。
目標平台 桌面
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib
Dll Setupapi.dll

另請參閱

DEVPROP_TYPE_STRING_LIST

SetupDiLoadClassIcon