Author: gschneider
Date: Sat Dec 19 19:57:27 2009
New Revision: 44656
URL:
http://svn.reactos.org/svn/reactos?rev=44656&view=rev
Log:
[win32k] Add parameter checks for NtGdiSetVirtualResolution
Modified:
trunk/reactos/subsystems/win32/win32k/objects/coord.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/coord.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/coord.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/coord.c [iso-8859-1] Sat Dec 19 19:57:27
2009
@@ -1024,7 +1024,20 @@
PDC dc;
PDC_ATTR pdcattr;
- // Need test types for zeros and non zeros
+ /* Check parameters (all zeroes resets to real resolution) */
+ if (cxVirtualDevicePixel == 0 && cyVirtualDevicePixel == 0 &&
+ cxVirtualDeviceMm == 0 && cyVirtualDeviceMm == 0)
+ {
+ cxVirtualDevicePixel = NtGdiGetDeviceCaps(hdc, HORZRES);
+ cyVirtualDevicePixel = NtGdiGetDeviceCaps(hdc, VERTRES);
+ cxVirtualDeviceMm = NtGdiGetDeviceCaps(hdc, HORZSIZE);
+ cyVirtualDeviceMm = NtGdiGetDeviceCaps(hdc, VERTSIZE);
+ }
+ else if (cxVirtualDevicePixel == 0 || cyVirtualDevicePixel == 0 ||
+ cxVirtualDeviceMm == 0 || cyVirtualDeviceMm == 0)
+ {
+ return FALSE;
+ }
dc = DC_LockDc(hdc);
if (!dc) return FALSE;