我使用SetupDi...
函数来枚举HID设备。
如果我在Windows设置中查看这些设备,他们会有很好的高分辨率图标(照片)。我正在寻找接收API的API。
我已经尝试了SetupDiLoadDeviceIcon
,但结果却不足:
这是我申请100x100图标的时候。我也尝试过越来越大的尺寸。
以下是我使用的代码(稍微简化,迭代index
给出了所有HID设备):
GUID guid;
HidD_GetHidGuid(&guid);
device_info_set = SetupDiGetClassDevs(guid,
NULL, NULL,
DIGCF_PRESENT|DIGCF_DEVICEINTERFACE);
SP_DEVINFO_DATA dev_info;
SetupDiEnumDeviceInfo(device_info_set, index, &dev_info);
SetupDiLoadDeviceIcon(device_info_set,
dev_info,
100, 100,
0,
&hicon);
这是设备管理器中使用的小图标(缺少alpha掩码)。我怎样才能得到漂亮的?
为了清楚起见,这些是我正在寻找的图标/图像。 例如,罗技HID设备不是库存图片:
答案 0 :(得分:1)
在调用SetupDiGetClassDevs
+ SetupDiEnumDeviceInfo
并从SetupDiLoadDeviceIcon
请求256x256图标后,我获得了一个256x256像素的图标,但由于质量很差,因此显然已调整大小
GetIconInfoEx
告诉我该图标已从setupapi.dll加载,该库仅包含16x16,32x32和一些48x48设备图标。这并不适用于所有设备,有些设备能够提供高质量的图标。
如果您需要高质量的通用设备图标,可以使用SHGetStockIconInfo
。