Index: monitor.c =================================================================== --- rostests/winetests/user32/monitor.c (revision 74398) +++ rostests/winetests/user32/monitor.c (working copy) @@ -152,6 +152,54 @@ }; #define vid_modes_cnt (sizeof(vid_modes_test) / sizeof(vid_modes_test[0])) +#include +static +VOID +PrintModeA(DEVMODEA *dm) +{ + printf(" .dmDeviceName = %s\n", dm->dmDeviceName); + printf(" .dmSpecVersion = 0x%x\n", dm->dmSpecVersion); + printf(" .dmDriverVersion = 0x%x\n", dm->dmDriverVersion); + printf(" .dmSize = %u\n", dm->dmSize); + printf(" .dmDriverExtra = %u\n", dm->dmDriverExtra); + printf(" .dmFields = 0x%x\n", dm->dmFields); +#define PRINT_FIELD(flag, field, spec) \ + if (dm->dmFields & (flag)) \ + printf(" ." #field " = " spec "\n", dm->field) + PRINT_FIELD(DM_ORIENTATION, dmOrientation, "%d"); + PRINT_FIELD(DM_PAPERSIZE, dmPaperSize, "%d"); + PRINT_FIELD(DM_PAPERLENGTH, dmPaperLength, "%d"); + PRINT_FIELD(DM_PAPERWIDTH, dmPaperWidth, "%d"); + PRINT_FIELD(DM_SCALE, dmScale, "%d"); + PRINT_FIELD(DM_COPIES, dmCopies, "%d"); + PRINT_FIELD(DM_DEFAULTSOURCE, dmDefaultSource, "%d"); + PRINT_FIELD(DM_PRINTQUALITY, dmPrintQuality, "%d"); + if (dm->dmFields & DM_POSITION) + printf(" .dmPosition = (%d, %d)\n", dm->dmPosition.x, dm->dmPosition.y); + PRINT_FIELD(DM_DISPLAYORIENTATION, dmDisplayOrientation, "%u"); + PRINT_FIELD(DM_DISPLAYFIXEDOUTPUT, dmDisplayFixedOutput, "%u"); + PRINT_FIELD(DM_COLOR, dmColor, "%d"); + PRINT_FIELD(DM_DUPLEX, dmDuplex, "%d"); + PRINT_FIELD(DM_YRESOLUTION, dmYResolution, "%d"); + PRINT_FIELD(DM_TTOPTION, dmTTOption, "%d"); + PRINT_FIELD(DM_COLLATE, dmCollate, "%d"); + PRINT_FIELD(DM_FORMNAME, dmFormName, "%s"); + PRINT_FIELD(DM_LOGPIXELS, dmLogPixels, "%u"); + PRINT_FIELD(DM_BITSPERPEL, dmBitsPerPel, "%u"); + PRINT_FIELD(DM_PELSWIDTH, dmPelsWidth, "%u"); + PRINT_FIELD(DM_PELSHEIGHT, dmPelsHeight, "%u"); + PRINT_FIELD(DM_DISPLAYFLAGS, dmDisplayFlags, "%u"); + PRINT_FIELD(DM_NUP, dmNup, "%u"); + PRINT_FIELD(DM_DISPLAYFREQUENCY, dmDisplayFrequency, "%u"); + PRINT_FIELD(DM_ICMMETHOD, dmICMMethod, "%u"); + PRINT_FIELD(DM_ICMINTENT, dmICMIntent, "%u"); + PRINT_FIELD(DM_MEDIATYPE, dmMediaType, "%u"); + PRINT_FIELD(DM_DITHERTYPE, dmDitherType, "%u"); + PRINT_FIELD(DM_PANNINGWIDTH, dmPanningWidth, "%u"); + PRINT_FIELD(DM_PANNINGHEIGHT, dmPanningHeight, "%u"); +#undef PRINT_FIELD +} + static void test_ChangeDisplaySettingsEx(void) { DEVMODEA dm; @@ -170,6 +218,9 @@ res = EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &dm); ok(res, "EnumDisplaySettings error %u\n", GetLastError()); + puts("EnumDisplaySettingsA returned:"); + PrintModeA(&dm); + width = dm.dmPelsWidth; dm.dmDriverExtra = 1;