From 8388f675238211ae607b864c8549b584c5fee22c Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sun, 19 Sep 1999 12:09:23 +0000 Subject: [PATCH] Added stub implementation for EnumDisplayDevices*. --- include/wingdi.h | 24 ++++++++++++++++++++++++ include/winuser.h | 3 +++ relay32/user32.spec | 4 ++-- windows/user.c | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/include/wingdi.h b/include/wingdi.h index a2a7da71aa9..aacf915f949 100644 --- a/include/wingdi.h +++ b/include/wingdi.h @@ -2993,6 +2993,30 @@ typedef struct _RGNDATA { typedef BOOL (CALLBACK* ABORTPROC)(HDC, INT); +typedef struct { + DWORD cb; + BYTE DeviceName[32]; + BYTE DeviceString[128]; + DWORD StateFlags; +} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA; + +typedef struct { + DWORD cb; + WCHAR DeviceName[32]; + WCHAR DeviceString[128]; + DWORD StateFlags; +} DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW; +DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE); +DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE); +DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE); + +/* DISPLAY_DEVICE.StateFlags (?)*/ +#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001 +#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002 +#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004 +#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008 +#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010 + #include "poppack.h" INT WINAPI AbortDoc(HDC); diff --git a/include/winuser.h b/include/winuser.h index 47a5d986435..7a5eb3a7628 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -2898,6 +2898,9 @@ HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,INT); HICON WINAPI CreateIconIndirect(LPICONINFO); BOOL WINAPI DestroyAcceleratorTable(HACCEL); BOOL WINAPI EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM); +BOOL WINAPI EnumDisplayDevicesA(LPVOID,DWORD,LPDISPLAY_DEVICEA,DWORD); +BOOL WINAPI EnumDisplayDevicesW(LPVOID,DWORD,LPDISPLAY_DEVICEW,DWORD); +#define EnumDisplayDevices WINELIB_NAME_AW(EnumDisplayDevices) INT WINAPI EnumPropsExA(HWND,PROPENUMPROCEXA,LPARAM); INT WINAPI EnumPropsExW(HWND,PROPENUMPROCEXW,LPARAM); #define EnumPropsEx WINELIB_NAME_AW(EnumPropsEx) diff --git a/relay32/user32.spec b/relay32/user32.spec index 5c032adef1f..c6f9c06e0e6 100644 --- a/relay32/user32.spec +++ b/relay32/user32.spec @@ -185,8 +185,8 @@ init MAIN_UserInit 181 stub EnumDesktopsW 182 stub EnumDisplayDeviceModesA 183 stub EnumDisplayDeviceModesW -184 stub EnumDisplayDevicesA -185 stub EnumDisplayDevicesW +184 stdcall EnumDisplayDevicesA(ptr long ptr long) EnumDisplayDevicesA +185 stdcall EnumDisplayDevicesW(ptr long ptr long) EnumDisplayDevicesW 186 stdcall EnumPropsA(long ptr) EnumPropsA 187 stdcall EnumPropsExA(long ptr long) EnumPropsExA 188 stdcall EnumPropsExW(long ptr long) EnumPropsExW diff --git a/windows/user.c b/windows/user.c index 9297ee75972..f5372d3811b 100644 --- a/windows/user.c +++ b/windows/user.c @@ -409,6 +409,42 @@ BOOL WINAPI EnumDisplaySettingsW(LPCWSTR name,DWORD n,LPDEVMODEW devmode) { return ret; } +/*********************************************************************** + * EnumDisplayDevicesA (USER32.184) + */ +BOOL WINAPI EnumDisplayDevicesA( + LPVOID unused,DWORD i,LPDISPLAY_DEVICEA lpDisplayDevice,DWORD dwFlags +) { + if (i) + return FALSE; + FIXME_(system)("(%p,%ld,%p,0x%08lx), stub!\n",unused,i,lpDisplayDevice,dwFlags); + strcpy(lpDisplayDevice->DeviceName,"X11"); + strcpy(lpDisplayDevice->DeviceString,"X 11 Windowing System"); + lpDisplayDevice->StateFlags = + DISPLAY_DEVICE_ATTACHED_TO_DESKTOP | + DISPLAY_DEVICE_PRIMARY_DEVICE | + DISPLAY_DEVICE_VGA_COMPATIBLE; + return TRUE; +} + +/*********************************************************************** + * EnumDisplayDevicesW (USER32.185) + */ +BOOL WINAPI EnumDisplayDevicesW( + LPVOID unused,DWORD i,LPDISPLAY_DEVICEW lpDisplayDevice,DWORD dwFlags +) { + if (i) + return FALSE; + FIXME_(system)("(%p,%ld,%p,0x%08lx), stub!\n",unused,i,lpDisplayDevice,dwFlags); + lstrcpyAtoW(lpDisplayDevice->DeviceName,"X11"); + lstrcpyAtoW(lpDisplayDevice->DeviceString,"X 11 Windowing System"); + lpDisplayDevice->StateFlags = + DISPLAY_DEVICE_ATTACHED_TO_DESKTOP | + DISPLAY_DEVICE_PRIMARY_DEVICE | + DISPLAY_DEVICE_VGA_COMPATIBLE; + return TRUE; +} + /*********************************************************************** * SetEventHook (USER.321) *