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 |