Author: jimtabor Date: Sat Apr 21 03:31:51 2007 New Revision: 26443
URL: http://svn.reactos.org/svn/reactos?rev=26443&view=rev Log: Implement GetAndSetDCDWord. Clearing out my code base. This has set here for six months now.
Modified: trunk/reactos/dll/win32/gdi32/objects/dc.c
Modified: trunk/reactos/dll/win32/gdi32/objects/dc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/dc.... ============================================================================== --- trunk/reactos/dll/win32/gdi32/objects/dc.c (original) +++ trunk/reactos/dll/win32/gdi32/objects/dc.c Sat Apr 21 03:31:51 2007 @@ -325,11 +325,53 @@ }
+/* + * @implemented + */ DWORD STDCALL +GetAndSetDCDWord( HDC hDC, INT u, DWORD dwIn, DWORD Unk1, DWORD Unk2, DWORD Unk3 ) +{ + BOOL Ret = TRUE; +// Handle something other than a normal dc object. + if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) + { + if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC) + return 0; //call MFDRV + else + { + PLDC pLDC = GdiGetLDC(hDC); + if ( !pLDC ) + { + SetLastError(ERROR_INVALID_HANDLE); + return 0; + } + if (pLDC->iType == LDC_EMFLDC) + { + Ret = TRUE; //call EMFDRV + if (Ret) + return u; + return 0; + } + } + } +// Ret = NtGdiGetAndSetDCDword( hDC, u, dwIn, (DWORD*) &u ); + if (Ret) + return u; + else + SetLastError(ERROR_INVALID_HANDLE); + return 0; +} + + +/* + * @implemented + */ +DWORD +STDCALL GetDCDWord( HDC hDC, INT u, DWORD Result ) { -BOOL Ret = TRUE; //NtGdiGetDCDword( hDC, u, (DWORD*) &u ); + BOOL Ret = TRUE; //NtGdiGetDCDword( hDC, u, (DWORD*) &u ); if (!Ret) return Result; else return u; }