Commit 5e2f50f8 authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

Added ChangeDisplaySettingsExA stub and some flag defines.

parent cf01b9a0
......@@ -1202,6 +1202,17 @@ typedef struct {
#define DISP_CHANGE_BADMODE (-2)
#define DISP_CHANGE_NOTUPDATED (-3)
#define DISP_CHANGE_BADFLAGS (-4)
#define DISP_CHANGE_BADPARAM (-5)
/* ChangeDisplaySettings.dwFlags */
#define CDS_UPDATEREGISTRY 0x00000001
#define CDS_TEST 0x00000002
#define CDS_FULLSCREEN 0x00000004
#define CDS_GLOBAL 0x00000008
#define CDS_SET_PRIMARY 0x00000010
#define CDS_RESET 0x40000000
#define CDS_SETRECT 0x20000000
#define CDS_NORESET 0x10000000
/* flags to FormatMessage */
#define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
......@@ -3019,6 +3030,12 @@ LRESULT WINAPI CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM);
LRESULT WINAPI CallWindowProcW(WNDPROC,HWND,UINT,WPARAM,LPARAM);
#define CallWindowProc WINELIB_NAME_AW(CallWindowProc)
BOOL WINAPI ChangeClipboardChain(HWND,HWND);
LONG WINAPI ChangeDisplaySettingsA(LPDEVMODEA,DWORD);
LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW,DWORD);
#define ChangeDisplaySettings WINELIB_NAME_AW(ChangeDisplaySettings)
LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPARAM);
LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPARAM);
#define ChangeDisplaySettingsEx WINELIB_NAME_AW(ChangeDisplaySettingsEx)
BOOL WINAPI ChangeMenuA(HMENU,UINT,LPCSTR,UINT,UINT);
BOOL WINAPI ChangeMenuW(HMENU,UINT,LPCWSTR,UINT,UINT);
#define ChangeMenu WINELIB_NAME_AW(ChangeMenu)
......
......@@ -606,7 +606,7 @@ init MAIN_UserInit
601 stub WNDPROC_CALLBACK
602 stdcall DrawCaptionTempW(long long ptr long long wstr long) DrawCaptionTempW
603 stub IsHungAppWindow
604 stub ChangeDisplaySettingsExA
604 stdcall ChangeDisplaySettingsExA(str ptr long long ptr) ChangeDisplaySettingsExA
605 stub ChangeDisplaySettingsExW
606 stdcall SetWindowText(long str) SetWindowTextA
607 stdcall GetMonitorInfoA(long ptr) GetMonitorInfoA
......
......@@ -322,13 +322,50 @@ BOOL WINAPI ExitWindowsEx( UINT flags, DWORD reserved )
return FALSE;
}
static void _dump_CDS_flags(DWORD flags) {
#define X(x) if (flags & CDS_##x) MESSAGE(""#x ",");
X(UPDATEREGISTRY);X(TEST);X(FULLSCREEN);X(GLOBAL);
X(SET_PRIMARY);X(RESET);X(SETRECT);X(NORESET);
#undef X
}
/***********************************************************************
* ChangeDisplaySettingA (USER32.589)
*/
LONG WINAPI ChangeDisplaySettingsA( LPDEVMODEA devmode, DWORD flags )
{
FIXME_(system)(": stub\n");
FIXME_(system)("(%p,0x%08lx), stub\n",devmode,flags);
MESSAGE("\tflags=");_dump_CDS_flags(flags);MESSAGE("\n");
if (devmode==NULL)
FIXME_(system)(" devmode=NULL (return to default mode)\n");
else if ( (devmode->dmBitsPerPel != DESKTOP_GetScreenDepth())
|| (devmode->dmPelsHeight != DESKTOP_GetScreenHeight())
|| (devmode->dmPelsWidth != DESKTOP_GetScreenWidth()) )
{
if (devmode->dmFields & DM_BITSPERPEL)
FIXME_(system)(" bpp=%ld\n",devmode->dmBitsPerPel);
if (devmode->dmFields & DM_PELSWIDTH)
FIXME_(system)(" width=%ld\n",devmode->dmPelsWidth);
if (devmode->dmFields & DM_PELSHEIGHT)
FIXME_(system)(" height=%ld\n",devmode->dmPelsHeight);
FIXME_(system)(" (Putting X in this mode beforehand might help)\n");
/* we don't, but the program ... does not need to know */
return DISP_CHANGE_SUCCESSFUL;
}
return DISP_CHANGE_SUCCESSFUL;
}
/***********************************************************************
* ChangeDisplaySettingExA (USER32.604)
*/
LONG WINAPI ChangeDisplaySettingsExA(
LPCSTR devname, LPDEVMODEA devmode, HWND hwnd, DWORD flags,
LPARAM lparam
) {
FIXME_(system)("(%s,%p,0x%04x,0x%08lx,0x%08lx), stub\n",devname,devmode,hwnd,flags,lparam);
MESSAGE("\tflags=");_dump_CDS_flags(flags);MESSAGE("\n");
if (devmode==NULL)
FIXME_(system)(" devmode=NULL (return to default mode)\n");
else if ( (devmode->dmBitsPerPel != DESKTOP_GetScreenDepth())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment