EDID Reader Class  28th June 2006

Associated Files: EDIDReader.zip

Usually when you need some information about your monitor's settings, you call the Windows API function GetDeviceCaps, indicating the information you require. However, this function is limited in the range of monitor information it can return and, in some cases, the information is incorrect. An alternative source of information about the host PC's monitor can be found by examining the monitor's EDID data.

EDID, or more accurately E-EDID, is a VESA standard which defines a data structure used to hold configuration information for display equipment. Manufacturers of computer monitors are supposed to comply with this standard when they design a new piece of equipment. The majority of new TFT or LCD flat panel monitors do comply with this standard, older designs may not.

To read the EDID information directly from the monitor, I suspect, involves device driver development - the effort involved going down this route outweighs the benefits. However, we can make use of the fact that Windows(XP) reads the EDID data for us, probably when the system is started. This information is stored in the Registry and can be read by any application which requires it.

This is the method by which the EDID Reader class obtains it's information - it simply locates the active monitor registry key and reads the corresponding EDID string. Class member functions can then be called which decode and return the desired physical properties of the monitor.

Currently, the class has methods which will return the EDID version and monitor name. It also has methods which return the physical height and width of the monitor and, its horizontal and vertical resolutions. This class could easily be extended to return any EDID data structure entry. Note, the class has only been tested on Windows XP - EDID information may be recorded in a different manner on older flavours of Windows.

The current version of the EDID Reader class can be downloaded via the ayrware downloads page.