【发布时间】:2014-02-09 01:48:46
【问题描述】:
我通过::RegisterDeviceNotification()(msdn) 订阅了通知。在处理了一些细节(消息WM_DEVICECHANGE(msdn)等)后,我有了DEV_BROADCAST_DEVICEINTERFACE(msdn)结构。
我怎么知道插入的设备是手机还是相机?
我搜索了 Windows 便携式设备(msdn)。可以使用DEV_BROADCAST_DEVICEINTERFACE::dbcc_name 作为IPortableDevice::Open(msdn) 的参数。这样就可以获得设备“支持”内容的列表(msdn),例如:
WPD_CONTENT_TYPE_IMAGEWPD_CONTENT_TYPE_AUDIOWPD_CONTENT_TYPE_PLAYLISTWPD_CONTENT_TYPE_VIDEOWPD_CONTENT_TYPE_DOCUMENTWPD_CONTENT_TYPE_UNSPECIFIEDWPD_CONTENT_TYPE_FOLDER
但我不知道,例如相机是否只支持WPD_CONTENT_TYPE_VIDEO、WPD_CONTENT_TYPE_IMAGE和WPD_CONTENT_TYPE_FOLDER?
另外一个框架是Windows Image Acquisition(msdn),但是这个东西看不到手机(只有扫描仪,可能还有别的,我不知道)。
【问题讨论】:
-
您是在问硬件供应商决定支持什么?这就是您获得支持内容列表的原因。缓存供应商可以选择他们要支持的内容,没有神奇的组合。
-
不,我在问 - 有没有办法检测手机和相机的插入。因为正确知道 - 我不知道如何看到他们之间的差异。我所知道的是用户插入设备并且它是一个媒体设备..