I found this page and was unable to get any useful information out of it (it searches the registry for something but never finds it and goes into an infinite loop).
As this question regarding getting the monitor serial UID ("EDID information") asks I would like the same information but from the point of view of Win32 C code (or C/C++ DDK code, or whatever) instead of Linux.
WMI didn't support monitor classes in Windows XP. The documented way of getting the EDID was - and still is - with the Setup API.
Longer survey and a VC++ code sample are available here.
Based on Ofek Shilon's blog post, and tweaked to get all the device IDs (manufacturer ID + product ID strings):
N.B. Str here is a custom string class but should be easy to refactor to use anything.
First I got a C# version working using WMI Code Creator:
Below is the C++ code I found and tweaked to work with the InstanceName field in WmiMonitorID class (EDID structure) that I wanted to read. Don't forget to add setupapi.lib to your Linker > Additional Libraries build setting.