Author: tkreuzer Date: Wed Apr 25 18:15:41 2012 New Revision: 56424
URL: http://svn.reactos.org/svn/reactos?rev=56424&view=rev Log: [GDI32] Fix SetWindowExtEx to pass all tests
Modified: trunk/reactos/win32ss/gdi/gdi32/objects/coord.c
Modified: trunk/reactos/win32ss/gdi/gdi32/objects/coord.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/c... ============================================================================== --- trunk/reactos/win32ss/gdi/gdi32/objects/coord.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/gdi32/objects/coord.c [iso-8859-1] Wed Apr 25 18:15:41 2012 @@ -483,38 +483,42 @@ */ BOOL WINAPI -SetWindowExtEx(HDC hdc, - int nXExtent, - int nYExtent, - LPSIZE lpSize) +SetWindowExtEx( + _In_ HDC hdc, + _In_ INT nXExtent, + _In_ INT nYExtent, + _Out_opt_ LPSIZE lpSize) { PDC_ATTR pdcattr; - -#if 0 - if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC) - { - if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC) - return MFDRV_SetWindowExtEx(); - else - { - PLDC pLDC = GdiGetLDC(hdc); - if ( !pLDC ) - { - SetLastError(ERROR_INVALID_HANDLE); - return FALSE; - } - if (pLDC->iType == LDC_EMFLDC) - { - return EMFDRV_SetWindowExtEx(); - } - } - } -#endif + ULONG ulType; + + /* Check what type of DC that is */ + ulType = GDI_HANDLE_GET_TYPE(hdc); + switch (ulType) + { + case GDILoObjType_LO_DC_TYPE: + /* Handle this in the path below */ + break; +#if 0// FIXME: we don't support this + case GDILoObjType_LO_METADC16_TYPE: + return MFDRV_SetWindowExtEx(hdc, nXExtent, nYExtent, lpSize); + + case GDILoObjType_LO_METAFILE_TYPE: + return EMFDRV_SetWindowExtEx(hdc, nXExtent, nYExtent, lpSize); +#endif + default: + /* Other types are not allowed */ + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + + /* Get the DC attr */ pdcattr = GdiGetDcAttr(hdc); if (!pdcattr) { + /* Set the error value and return failure */ SetLastError(ERROR_INVALID_PARAMETER); - return 0; + return FALSE; }
if (lpSize) @@ -549,7 +553,8 @@ if (pdcattr->dwLayout & LAYOUT_RTL) NtGdiMirrorWindowOrg(hdc); pdcattr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID); } - return TRUE; // Return TRUE. + + return TRUE; }
/*