如何从WPD API获取设备的根目录?

时间:2017-08-21 11:35:06

标签: windows winapi usb mtp wpd

我想从WPD API获取MTP USB设备的所有根目录(我可以将它们标识为GUID)。所以我的问题是:我怎么做到这一点?任何代码片段都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我认为您应该阅读Windows便携设备指南:https://msdn.microsoft.com/en-us/library/windows/desktop/dd389005(v=vs.85).aspx 至于这项任务是常见的,这里描述的类似任务: https://msdn.microsoft.com/en-us/library/windows/desktop/dd319330(v=vs.85).aspx 并且有一个示例解决方案,您可以尝试编译和调试: https://code.msdn.microsoft.com/windowsdesktop/Portable-Devices-COM-API-fd4a5f7d

很快,您必须创建IPortableDeviceContent对象,然后从其中调用EnumObjects方法,其ID为WPD_DEVICE_OBJECT_ID(它是当前设备的ROOT的宏)。

您将以这种方式获取对象ID,然后您必须迭代它们并通过id请求每个对象的属性(在您的情况下为WPD_OBJECT_CONTENT_TYPE)。

具有WPD_OBJECT_CONTENT_TYPE == WPD_CONTENT_TYPE_FOLDER的对象是文件夹。