Article ID: 197671
Article Last Modified on 2/27/2007
#include <windows.h>
#include <stdio.h>
#ifndef SM_CMONITORS
typedef HANDLE HMONITOR;
#endif
#ifndef DISPLAY_DEVICE_PRIMARY_DEVICE
typedef struct _DISPLAY_DEVICE {
DWORD cb;
TCHAR DeviceName[32];
TCHAR DeviceString[128];
DWORD StateFlags;
} DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_VGA 0x00000010
#endif
main (int argc, char**argv)
{
int i;
int j=0;
BOOL (WINAPI* pEnumDisplayDevices)(PVOID,DWORD,PVOID,DWORD);
(FARPROC)pEnumDisplayDevices = GetProcAddress(
LoadLibrary("USER32"), "EnumDisplayDevicesA");
if (pEnumDisplayDevices)
{
DISPLAY_DEVICE dd;
ZeroMemory(&dd, sizeof(dd));
dd.cb = sizeof(dd);
printf("*** EnumDisplayDevices\n");
for (i=0; (*pEnumDisplayDevices)(NULL, i, &dd, 0); i++)
{
j++;
printf(" DeviceName: '%s'\n", dd.DeviceName);
printf(" DeviceString: '%s'\n", dd.DeviceString);
printf(" Flags: %08X %s%s\n",
dd.StateFlags,
((dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) ?
"Desktop " : ""),
((dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) ? "Primary
" : ""));
}
}
return j;
}
Keywords: kbhowto KB197671