WPD Collection Interfaces (Part 3)

We’ll cover the last collection type, IPortableDeviceValuesCollection, here. To refresh – Part 1 discussed IPortableDeviceKeyCollection and IPortableDeviceValues while Part 2 covered IPortableDevicePropVariantCollection. IPortableDeviceValuesCollection Going by the name, this collection contains elements of type IPortableDeviceValues. If you look really closely, you’ll realize that this is just IPortableDevicePropVariantCollection with wrapper functions around it geared towards IPortableDeviceValues. Currently, there…

0

WPD Collection Interfaces (Part 2)

In the previous part, we took a look at IPortableDeviceKeyCollection and IPortableDeviceValues. In this post, we’ll examine the IPortableDevicePropVariantCollection (quite a mouthful 🙂 collection. IPortableDevicePropVariantCollection The documentation for this provides a pretty good idea of what it does. In a nutshell, this kind of collection is used to hold PROPVARIANTs with the restriction that each instance…

1

WPD video on Channel 9!

Check out this Channel 9 video on the WPD platform. It’s full of demos – check out the one with a WPD driver for a blood glucose meter (22:00 timestamp). There are demos of the WpdInfo and WpdMon tools. WpdInfo and WpdMon are available in the WDK, while WpdMon is also available with the MTP porting…

3

WPD Collection Interfaces (Part 1)

The WPD collection interfaces are documented here in MSDN. These interfaces are used extensively as part of the WPD APIs. WPD clients use them to pass information to the driver, and the driver uses them to return information back to the client. We’ll try understanding them in tandem with some API usage. Since we are…

4

Enumerating WPD devices (Part 2)

In part 1 we obtained a list of available WPD devices (the device paths to be precise). In this part, we’ll use this device path with the IPortableDeviceManager interface to get basic information about the device. // cdwDevices contains the number of connected devices // and also provides the length of ppszDeviceListArray for (DWORD i =…

1

Connecting to a WPD device

This post covers how to connect to a WPD device. We obtained a list of device paths in Enumerating WPD devices (Part 1) – ppszDeviceListArray – which we will end up using here. Connecting to a device requires the client to identify itself. This is done by supplying a paired collection of property keys and…

1