USBView is the only example code I'm aware of.
If you are writing the WinUSB application, you can probably share the Product ID string with another application. See:http://www.codeguru.com/csharp/csharp/cs_syntax/remoting/article.php/c6901/NET-Remoting-in-Visual-C.htm
If you are writing the device firmware, you could add a HID or other interface whose only function is to return the Product ID string.
Why do you need the Product ID string? What will you do with it when you have it?