dimeby8

Sample XML document for ProvisioningAgent.provisionFromXmlDocumentAsync()

Below is an example of a provisioning XML document that may be passed to the...

Date: 11/01/2011

Change ‘Unidentified network’ from Public to Work in Windows 7

There isn’t an easy way to set the category of an Unidentified network in Windows 7 RC+...

Date: 06/10/2009

Where is wpdmtpextensions.h?

The header file - Wpdmtpextensions.h - has been referenced in several of my posts and is needed to...

Date: 05/15/2007

Creating a WPD playlist object in C#

This is a C# follow-up post on the earlier C++ playlist creation post. Be sure to read the earlier...

Date: 01/08/2007

Creating WPD PROPVARIANTs in C# without using interop

Previous posts have covered how to create, manage and marshal PROPVARIANTs using interop. Here's a...

Date: 01/08/2007

Connecting to a WPD device in C#

This is the C# equivalent of an earlier C++ post on connecting to a WPD device. We'll concentrate on...

Date: 12/21/2006

Marshalling variant properties in C#

This post is a continuation of the one covering WPD property retrieval in C#. That post explained...

Date: 12/12/2006

WPD Content Enumeration in C#

WPD content enumeration in C# is pretty close to the C++ style. Here's a basic example that...

Date: 12/12/2006

Setting WPD properties in C#

Since setting a WPD property requires manipulating a PROPVARIANT structure through interop, we must...

Date: 12/11/2006

WPD property retrieval in C#

WPD property values are retrieved as PROPVARIANTs through the WPD API. Unfortunately there is no...

Date: 12/11/2006

Where are the WPD property keys in C#?

If you followed the exercise from our first C# post, you must have noticed that the...

Date: 12/06/2006

Flying Wiimotes

I just bought a Wii and it has totally changed my gamer attitude, and I wasn't even a gamer to start...

Date: 12/06/2006

Enumerating WPD devices in C#

Let's take a look at how we can enumerate WPD devices in C#. This post assumes that you already have...

Date: 12/05/2006

C# and the WPD API

There currently is no managed/C# flavor of the WPD API. This, of course, doesn't mean that you are...

Date: 12/05/2006

Help! WPD API calls randomly fail with 0x800700AA (ERROR_BUSY)

If you notice your API calls are randomly failing with HRESULT_FROM_WIN32(ERROR_BUSY) / 0x800700AA /...

Date: 11/08/2006

Transferring playlists through WPD

A playlist (.WPL, .M3U, etc.) is a text file which contains a list of filenames. This list is the...

Date: 11/08/2006

Custom MTP formats in WPD

The list of supported WPD formats is available in MSDN here. But what if your MTP device supports a...

Date: 10/24/2006

MTP array properties (AINT*/AUINT*) in WPD

MTP allows for a wide range of array-based data types ranging from an array of bytes (AINT8/AUINT8)...

Date: 10/18/2006

Accessing MTP vendor extended properties through WPD

Apart from the standard device and object properties defined in the MTP specification, device...

Date: 10/17/2006

Setting WPD properties

The IPortableDeviceProperties::SetValues API can be used to set WPD object properties. The...

Date: 10/17/2006

How to check if a WPD property can be modified

We'll create a little helper function that we can use to figure out if a WPD object property can be...

Date: 10/16/2006

Sending MTP commands through WPD (Part 3 - data from device)

Let's use the GetDevicePropValue command (MTP spec - section D.2.21) to illustrate this....

Date: 10/16/2006

Sending MTP commands through WPD (Part 2 - data to the device)

We'll pick the SetDevicePropValue MTP command (MTP spec - section D.2.22) to illustrate this...

Date: 10/13/2006

Save Often!

One of the problems of living on the cutting edge is that it tends to make you bleed. I have a...

Date: 10/13/2006

Creating an MTP string

In some of our later examples, we'll have to send MTP strings to the device. MTP strings are defined...

Date: 10/12/2006

Listening to MTP events

MTP devices can fire events as well. These events are used to educate the PC (or the initiator)...

Date: 10/06/2006

Sending MTP commands through WPD (Part 1 - without a data phase)

Most WPD API are wrappers around the SendCommand API. The documentation for the SendCommand API...

Date: 10/04/2006

Sample code to walk the WPD object hierarchy

Here's a quick example of a console app that can enumerate the contents of a WPD device. You'll need...

Date: 10/04/2006

Understanding WPD object hierarchy

Almost all WPD devices allow content to be stored on them and this suggests that a way of organizing...

Date: 10/02/2006

WPD Collection Interfaces (Part 3)

We'll cover the last collection type, IPortableDeviceValuesCollection, here. To refresh - Part 1...

Date: 09/28/2006

WPD Collection Interfaces (Part 2)

In the previous part, we took a look at IPortableDeviceKeyCollection and IPortableDeviceValues. In...

Date: 09/28/2006

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...

Date: 09/27/2006

WPD Collection Interfaces (Part 1)

The WPD collection interfaces are documented here in MSDN. These interfaces are used extensively as...

Date: 09/27/2006

Enumerating WPD devices (Part 2)

In part 1 we obtained a list of available WPD devices (the device paths to be precise). In this...

Date: 09/27/2006

Connecting to a WPD device

This post covers how to connect to a WPD device. We obtained a list of device paths in Enumerating...

Date: 09/27/2006

What is MTP anyway?

MTP is the successor to PTP (Picture Transfer Protocol) that has been used by cameras. Since PTP was...

Date: 08/28/2006

Enumerating WPD devices (Part 1)

The IPortableDeviceManager interface can be used to enumerate WPD devices. The GetDevices method...

Date: 08/15/2006

Using the WPD API

The WPD API is a COM API. Unfortunately it does not support IDispatch so we can't use it in...

Date: 08/15/2006

WPD API Documentation

The WPD API documentation is part of the Windows Vista SDK and is available right now on MSDN...

Date: 08/15/2006

Windows Portable Devices (WPD)

Windows Media Player 10 (WMP) introduced the User-mode Driver Framework (UMDF). UMDF allowed drivers...

Date: 08/14/2006

Why dimeby8?

The answer's pretty obvious if you think in terms of currency. I was shooting for the witty...

Date: 08/14/2006