win32api-2.3: Display handling

Sascha Brawer <[email protected]> Fri, 12 Sep 2003 14:04:53 +0200
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <[email protected]>
Dear MinGW maintainers,

here's a patch for w32api-2.3 that adds ChangeDisplaySettingsEx and
EnumDisplayDevices.
Thanks a lot, by the way, for having created these Windows API header files!

Best,

-- Sascha

Sascha Brawer, [email protected], http://www.dandelis.ch/people/brawer/ 



2003-09-09  Sascha Brawer  <[email protected]>

	* include/winuser.h (DISPLAY_DEVICE_ATTACHED_TO_DESKTOP,
	DISPLAY_DEVICE_PRIMARY_DEVICE, DISPLAY_DEVICE_MIRRORING_DRIVER,
	DISPLAY_DEVICE_VGA_COMPATIBLE, DISPLAY_DEVICE_REMOVABLE,
	DISPLAY_DEVICE_MODESPRUNED): Define constant.
	(ChangeDisplaySettingsEx[A,W]): Add prototype.
	(EnumDisplayDevices[A,W]): Likewise.

	* lib/user32.def (ChangeDisplaySettingsEx[A,W]): Add exports.
	(EnumDisplayDevices[A,W]): Likewise.



$ diff -u include/winuser.h.orig include/winuser.h
--- include/winuser.h.orig      2003-09-09 12:35:16.000000000 +0200
+++ include/winuser.h   2003-09-09 16:12:17.000000000 +0200
@@ -151,6 +151,12 @@
 #define DISP_CHANGE_FAILED     (-1)
 #define DISP_CHANGE_BADMODE    (-2)
 #define DISP_CHANGE_NOTUPDATED (-3)
+#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 1
+#define DISPLAY_DEVICE_PRIMARY_DEVICE 4
+#define DISPLAY_DEVICE_MIRRORING_DRIVER 8
+#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x10
+#define DISPLAY_DEVICE_REMOVABLE 0x20
+#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
 #define BST_CHECKED    1
 #define BST_INDETERMINATE      2
 #define BST_UNCHECKED  0
@@ -2764,6 +2770,8 @@
 #ifndef NOGDI
 LONG WINAPI ChangeDisplaySettingsA(PDEVMODEA,DWORD);
 LONG WINAPI ChangeDisplaySettingsW(PDEVMODEW,DWORD);
+LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPVOID);
+LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPVOID);
 #endif
 BOOL WINAPI ChangeMenuA(HMENU,UINT,LPCSTR,UINT,UINT);
 BOOL WINAPI ChangeMenuW(HMENU,UINT,LPCWSTR,UINT,UINT);
@@ -2902,6 +2910,8 @@
 BOOL WINAPI EnumDesktopWindows(HDESK,ENUMWINDOWSPROC,LPARAM);
 BOOL WINAPI EnumDisplayMonitors(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
 #ifndef NOGDI
+BOOL WINAPI EnumDisplayDevicesA(LPCSTR,DWORD,PDISPLAY_DEVICE,DWORD);
+BOOL WINAPI EnumDisplayDevicesW(LPCWSTR,DWORD,PDISPLAY_DEVICE,DWORD);
 BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,PDEVMODEA);
 BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,PDEVMODEW);
 #endif
@@ -3461,7 +3471,9 @@
 typedef ICONMETRICSW ICONMETRICS,*LPICONMETRICS;
 typedef NONCLIENTMETRICSW NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #define ChangeDisplaySettings ChangeDisplaySettingsW
+#define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
 #define CreateDesktop CreateDesktopW
+#define EnumDisplayDevices EnumDisplayDevicesW
 #define EnumDisplaySettings EnumDisplaySettingsW
 #endif /* NOGDI */
 #else /* UNICODE */
@@ -3617,7 +3629,9 @@
 typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS;
 typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #define ChangeDisplaySettings ChangeDisplaySettingsA
+#define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
 #define CreateDesktop CreateDesktopA
+#define EnumDisplayDevices EnumDisplayDevicesA
 #define EnumDisplaySettings EnumDisplaySettingsA
 #endif /* NOGDI */
 #endif /* UNICODE */



$ diff -u lib/user32.def.orig lib/user32.def
--- lib/user32.def.orig 2003-09-09 16:36:30.000000000 +0200
+++ lib/user32.def      2003-09-09 16:09:44.000000000 +0200
@@ -25,6 +25,8 @@
 ChangeClipboardChain@8
 ChangeDisplaySettingsA@8
 ChangeDisplaySettingsW@8
+ChangeDisplaySettingsExA@20
+ChangeDisplaySettingsExW@20
 ChangeMenuA@20
 ChangeMenuW@20
 CharLowerA@4
@@ -179,6 +181,8 @@
 EnumDesktopWindows@12
 EnumDesktopsA@12
 EnumDesktopsW@12
+EnumDisplayDevicesA@16
+EnumDisplayDevicesW@16
 EnumDisplayMonitors@16
 EnumDisplaySettingsA@12
 EnumDisplaySettingsW@12




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf