Hi all,
I want to get current display orientation information by using DRVESC_GETSCREENROTATION so I have tried the following code but it returns error -1 and GetLastError gives 12 (ERROR_INVALID_ACCESS). The messages QUERYESCSUPPORT and DISPLAY_GET_OUTPUT_MODE are succeeded. Where can the problem arise from?
#define DRVESC_GETSCREENROTATION 6302 #define QUERYESCSUPPORT 8 #define CUSTOMESCAPECODEBASE 100100 #define DISPLAY_GET_OUTPUT_MODE (CUSTOMESCAPECODEBASE + 7) DISPLAY_DEVICE devDisplay; devDisplay.cb = sizeof(devDisplay); while (EnumDisplayDevices (NULL, nDisplayDevices, &devDisplay, 0)) { RETAILMSG(1, (L"YYINFO:DeviceID:%d:DeviceKey:%s:DeviceName:%s:DeviceString:%s..\n\r", devDisplay.DeviceID, devDisplay.DeviceKey, devDisplay.DeviceName, devDisplay.DeviceString)); nDisplayDevices++; } RETAILMSG(1, (L"YYINFO:EnumDisplayDevices: ERROR: %d..\n\r", GetLastError())); HDC nDC = CreateDC (L"ddraw_mx23.dll", NULL, NULL, NULL); if (nDC == NULL) { RETAILMSG(1, (L"YYINFO:CreateDC: NULL ERROR..\n\r")); } else { if ((retVal = ExtEscape(nDC, DRVESC_GETSCREENROTATION, 0, NULL, sizeof(DWORD), (LPSTR)&outVal)) > 0) //DWORD inVal = DRVESC_GETSCREENROTATION; //if ((retVal = ExtEscape(nDC, QUERYESCSUPPORT, sizeof(DWORD), (LPSTR)&inVal, 0, NULL)) > 0) //if ((retVal = ExtEscape(nDC, DISPLAY_GET_OUTPUT_MODE, 0, NULL, sizeof(DWORD), (LPSTR)&outVal)) > 0) RETAILMSG(1, (L"YYINFO:ExtEscape:DISPLAY_GET_OUTPUT_MODE: retval=%d outval=%d\n\r..", retVal, outVal)); else RETAILMSG(1, (L"YYINFO:ExtEscape: retval=%d, ERROR=%d\n\r..", retVal, GetLastError())); }
Yasemin