diff --git a/reactos/dll/win32/gdi32/gdi32.def b/reactos/dll/win32/gdi32/gdi32.def index 1cd8a35e3d5..0f287e2a448 100644 --- a/reactos/dll/win32/gdi32/gdi32.def +++ b/reactos/dll/win32/gdi32/gdi32.def @@ -184,8 +184,98 @@ FillRgn@12 FixBrushOrgEx@16 FlattenPath@4 FloodFill@16 -FontIsLinked@4 -FrameRgn@20=NtGdiFontIsLinked@4 +FontIsLinked@4=NtGdiFontIsLinked@4 +FrameRgn@20 +GdiAddFontResourceW@12 +GdiAddGlsBounds@8 +GdiAddGlsRecord@16 +GdiAlphaBlend@44 +GdiArtificialDecrementDriver@8 +GdiCleanCacheDC@4 +GdiComment@12 +GdiConsoleTextOut@16=NtGdiConsoleTextOut@16 +GdiConvertAndCheckDC@4 +GdiConvertBitmap@4 +GdiConvertBitmapV5@16 +GdiConvertBrush@4 +GdiConvertDC@4 +GdiConvertEnhMetaFile@4 +GdiConvertFont@4 +GdiConvertMetaFilePict@4 +GdiConvertPalette@4 +GdiConvertRegion@4 +GdiConvertToDevmodeW@4 +GdiCreateLocalEnhMetaFile@4 +GdiCreateLocalMetaFilePict@4 +GdiDeleteLocalDC@4 +GdiDeleteSpoolFileHandle@4 +GdiDescribePixelFormat@16=NtGdiDescribePixelFormat@16 +GdiDllInitialize@12 +GdiEndDocEMF@4 +GdiEndPageEMF@8 +GdiEntry10@8 +GdiEntry11@8 +GdiEntry12@8 +GdiEntry13@0 +GdiEntry14@12 +GdiEntry15@12 +GdiEntry16@12 +GdiEntry1@8 +GdiEntry2@44 +GdiEntry3@4 +GdiEntry4@8 +GdiEntry5@4 +GdiEntry6@8 +GdiEntry7@8 +GdiEntry8@4 +GdiEntry9@24 +GdiFixUpHandle@4 +GdiFlush@0 +GdiFullscreenControl@20=NtGdiFullscreenControl@20 +GdiGetBatchLimit@0 +GdiGetCharDimensions@12 +GdiGetCodePage@4 +GdiGetDC@4 +GdiGetDevmodeForPage@16 +GdiGetLocalBrush@4 +GdiGetLocalDC@4 +GdiGetLocalFont@4 +GdiGetPageCount@4 +GdiGetPageHandle@12 +GdiGetSpoolFileHandle@12 +GdiGetSpoolMessage@16=NtGdiGetSpoolMessage@16 +GdiGradientFill@24 +GdiInitSpool@0=NtGdiInitSpool@0 +GdiInitializeLanguagePack@4 +GdiIsMetaFileDC@4 +GdiIsMetaPrintDC@4 +GdiIsPlayMetafileDC@4 +GdiPlayDCScript@24 +GdiPlayEMF@20 +GdiPlayJournal@20 +GdiPlayPageEMF@20 +GdiPlayPrivatePageEMF@12 +GdiPlayScript@28 +GdiPrinterThunk@12 +GdiProcessSetup@0 +GdiQueryFonts@12=NtGdiQueryFonts@12 +GdiQueryTable@0 +GdiRealizationInfo@8 +GdiReleaseDC@4 +GdiReleaseLocalDC@4 +GdiResetDCEMF@8 +GdiSetAttrs@4 +GdiSetBatchLimit@4 +GdiSetLastError@4 +GdiSetPixelFormat@8=NtGdiSetPixelFormat@8 +GdiSetServerAttr@8 +GdiStartDocEMF@8 +GdiStartPageEMF@4 +GdiSwapBuffers@4=NtGdiSwapBuffers@4 +GdiTransparentBlt@44 +GdiValidateHandle@4 +GetArcDirection@4 +GetAspectRatioFilterEx@8 ClearBitmapAttributes@8 ClearBrushAttributes@8 @@ -245,98 +335,7 @@ DdEntry53@8=NtGdiDdUnlock@8 DdEntry54@8=NtGdiDdUnlockD3D@8 DdEntry55@12=NtGdiDdUpdateOverlay@12 DdEntry56@8=NtGdiDdWaitForVerticalBlank@8 - -GdiAddFontResourceW@12 -GdiAddGlsBounds@8 -GdiAddGlsRecord@16 -GdiAlphaBlend@44 -GdiArtificialDecrementDriver@8 -GdiCleanCacheDC@4 -GdiComment@12 -GdiConsoleTextOut@16 -GdiConvertAndCheckDC@4 -GdiConvertBitmap@4 -;GdiConvertBitmapV5 -GdiConvertBrush@4 -GdiConvertDC@4 -GdiConvertEnhMetaFile@4 -GdiConvertFont@4 -GdiConvertMetaFilePict@4 -GdiConvertPalette@4 -GdiConvertRegion@4 -GdiConvertToDevmodeW@4 -GdiCreateLocalEnhMetaFile@4 -GdiCreateLocalMetaFilePict@4 -GdiDeleteLocalDC@4 -GdiDeleteSpoolFileHandle@4 -GdiDescribePixelFormat@16 -GdiDllInitialize@12 GdiDrawStream@12 -GdiEndDocEMF@4 -GdiEndPageEMF@8 -GdiEntry1@8 -GdiEntry2@44 -GdiEntry3@4 -GdiEntry4@8 -GdiEntry5@4 -GdiEntry6@8 -GdiEntry7@8 -GdiEntry8@4 -GdiEntry9@24 -GdiEntry10@8 -GdiEntry11@8 -GdiEntry12@8 -GdiEntry13@0 -GdiEntry14@12 -GdiEntry15@12 -GdiEntry16@12 -GdiFixUpHandle@4 -GdiFlush@0 -GdiFullscreenControl@20 -GdiGetBatchLimit@0 -GdiGetCharDimensions@12 -GdiGetCodePage@4 -GdiGetDC@4 -GdiGetDevmodeForPage@16 -GdiGetLocalBrush@4 -GdiGetLocalDC@4 -GdiGetLocalFont@4 -GdiGetPageCount@4 -GdiGetPageHandle@12 -GdiGetSpoolFileHandle@12 -;GdiGetSpoolMessage -GdiGradientFill@24=NtGdiGradientFill@24 -GdiInitSpool@0 -GdiInitializeLanguagePack@4 -GdiIsMetaFileDC@4 -GdiIsMetaPrintDC@4 -GdiIsPlayMetafileDC@4 -GdiPlayDCScript@24 -GdiPlayEMF@20 -GdiPlayJournal@20 -GdiPlayPageEMF@20 -GdiPlayPrivatePageEMF@12 -GdiPlayScript@28 -;GdiPrinterThunk -GdiProcessSetup@0 -GdiQueryFonts@12 -GdiQueryTable@0 -GdiRealizationInfo@8 -GdiReleaseDC@4 -GdiReleaseLocalDC@4 -GdiResetDCEMF@8 -GdiSetAttrs@4 -GdiSetBatchLimit@4 -GdiSetLastError@4 -GdiSetPixelFormat@8 -GdiSetServerAttr@8 -GdiStartDocEMF@8 -GdiStartPageEMF@4 -GdiSwapBuffers@4 -GdiTransparentBlt@44=NtGdiTransparentBlt@44 -GdiValidateHandle@4 -GetArcDirection@4 -GetAspectRatioFilterEx@8 GetBitmapAttributes@4 GetBitmapBits@12=NtGdiGetBitmapBits@12 GetBitmapDimensionEx@8=NtGdiGetBitmapDimension@8 diff --git a/reactos/dll/win32/gdi32/good api.def b/reactos/dll/win32/gdi32/good api.def index 8a8017a3ea7..c6e11bb88aa 100644 --- a/reactos/dll/win32/gdi32/good api.def +++ b/reactos/dll/win32/gdi32/good api.def @@ -7,7 +7,8 @@ ; if bugs exists their or verify ; -AddFontResourceA@4 +AAddFontResourceA@4 +AddFontResourceExA@12 AddFontResourceExW@12 AddFontResourceW@4 AnyLinkedFonts@0 @@ -47,11 +48,14 @@ EngCreateClip@0 EngCreateDeviceBitmap@16 EngCreateDeviceSurface@16 EngCreatePalette@24 +EngCreateSemaphore@0 EngDeleteClip@4 EngDeletePath@4 +EngDeleteSemaphore@4 EngDeleteSurface@4 EngEraseSurface@12 EngFillPath@28 +EngFindResource@16 EngFreeModule@4 EngGetCurrentCodePage@8 EngGetPrinterDataFileName@4 @@ -73,4 +77,39 @@ EngStrokePath@32 EngTextOut@40 EngTransparentBlt@32 EngUnicodeToMultiByteN@20 +EngUnlockSurface@4 +EqualRgn@8 +FixBrushOrgEx@16 +FloodFill@16 +FontIsLinked@4 +FONTOBJ_cGetAllGlyphHandles@8 +FONTOBJ_cGetGlyphs@20 +FONTOBJ_pfdg@4 +FONTOBJ_pifi@4 +FONTOBJ_pQueryGlyphAttrs@8 +FONTOBJ_pvTrueTypeFontFile@8 +FONTOBJ_pxoGetXform@4 +FONTOBJ_vGetInfo@12 +GdiConsoleTextOut@16 +GdiConvertBitmap@4 +GdiConvertBrush@4 +GdiConvertDC@4 +GdiDescribePixelFormat@16 +GdiEntry16@12=DdSwapTextureHandles@12 +GdiFlush@0 +GdiFullscreenControl@20 +GdiGetSpoolMessage@16 +GdiInitSpool@0 +GdiPlayDCScript@24 +GdiPlayJournal@20 +GdiPlayScript@28 +GdiQueryFonts@12 +GdiReleaseLocalDC@4 +GdiSetAttrs@4 +GdiSetLastError@4 +GdiSetPixelFormat@8 +GdiSetServerAttr@8 +GdiSwapBuffers@4 +GetAspectRatioFilterEx@8 + diff --git a/reactos/dll/win32/gdi32/misc/misc.c b/reactos/dll/win32/gdi32/misc/misc.c index b4cf81c1d60..3f430db8e69 100644 --- a/reactos/dll/win32/gdi32/misc/misc.c +++ b/reactos/dll/win32/gdi32/misc/misc.c @@ -160,13 +160,13 @@ GdiGetBatchLimit() /* - * @unimplemented + * @implemented */ BOOL STDCALL GdiReleaseLocalDC(HDC hdc) { - return 0; + return TRUE; } diff --git a/reactos/dll/win32/gdi32/misc/stubs.c b/reactos/dll/win32/gdi32/misc/stubs.c index 9c1b0f1c84c..eb70093f738 100644 --- a/reactos/dll/win32/gdi32/misc/stubs.c +++ b/reactos/dll/win32/gdi32/misc/stubs.c @@ -757,18 +757,14 @@ UnrealizeObject( /* - * @unimplemented + * @implemented */ BOOL STDCALL GdiFlush() { - /* - * Although GdiFlush is unimplemented, it's safe to return - * TRUE, because we don't have GDI engine surface caching - * implemented yet. - */ - return TRUE; + NtGdiFlush(); + return TRUE; } @@ -1118,9 +1114,9 @@ wglSwapLayerBuffers( /* - * @unimplemented + * @implemented */ -DWORD +BOOL STDCALL GdiPlayDCScript( DWORD a0, @@ -1131,16 +1127,15 @@ GdiPlayDCScript( DWORD a5 ) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + /* FIXME fix the prototype right */ + return FALSE; } /* - * @unimplemented + * @implemented */ -DWORD +BOOL STDCALL GdiPlayJournal( DWORD a0, @@ -1150,16 +1145,15 @@ GdiPlayJournal( DWORD a4 ) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + /* FIXME fix the prototype right */ + return FALSE; } /* - * @unimplemented + * @implemented */ -DWORD +BOOL STDCALL GdiPlayScript( DWORD a0, @@ -1168,12 +1162,10 @@ GdiPlayScript( DWORD a3, DWORD a4, DWORD a5, - DWORD a6 - ) + DWORD a6) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + /* FIXME prototype */ + return FALSE; } @@ -1348,17 +1340,7 @@ EndFormPage(HDC hdc) return 0; } -/* - * @unimplemented - */ -BOOL -STDCALL -FontIsLinked(HDC hdc) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} + /* * @unimplemented @@ -1409,51 +1391,43 @@ GdiConvertAndCheckDC(HDC hdc) } /* - * @unimplemented + * @implemented */ HBITMAP STDCALL GdiConvertBitmap(HBITMAP hbm) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + return hbm; } /* - * @unimplemented + * @implemented */ HBRUSH STDCALL GdiConvertBrush(HBRUSH hbr) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + return hbr; } /* - * @unimplemented + * @implemented */ HDC STDCALL GdiConvertDC(HDC hdc) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + return hdc; } /* - * @unimplemented + * @implemented */ HFONT STDCALL GdiConvertFont(HFONT hfont) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + return hfont; } /* @@ -1504,18 +1478,6 @@ GdiDeleteLocalDC(HDC hdc) return 0; } -/* - * @unimplemented - */ -int -STDCALL -GdiDescribePixelFormat(HDC hdc,int ipfd,UINT cjpfd,PPIXELFORMATDESCRIPTOR ppfd) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} - /* * @unimplemented */ @@ -1613,15 +1575,13 @@ GdiIsPlayMetafileDC(HDC hdc) } /* - * @unimplemented + * @implemented */ BOOL STDCALL GdiSetAttrs(HDC hdc) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; + return TRUE; } /* @@ -1635,17 +1595,7 @@ GdiSetLastError(DWORD dwErrCode) SetLastError(ERROR_CALL_NOT_IMPLEMENTED); } -/* - * @unimplemented - */ -BOOL -STDCALL -GdiSetPixelFormat(HDC hdc,int ipfd) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} + /* * @unimplemented @@ -1659,27 +1609,16 @@ GdiValidateHandle(HGDIOBJ hobj) return 0; } -/* - * @unimplemented - */ -BOOL -STDCALL -GdiSwapBuffers(HDC hdc) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} + /* - * @unimplemented + * @implemented */ VOID STDCALL GdiSetServerAttr(HDC hdc,DWORD attr) { - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + /* it does do nothing */ } /* @@ -2052,31 +1991,9 @@ GetTextExtentPointI( return 0; } -/* - * @unimplemented - */ -NTSTATUS -STDCALL -GdiFullscreenControl(FULLSCREENCONTROL FullscreenCommand,PVOID FullscreenInput, - DWORD FullscreenInputLength,PVOID FullscreenOutput, - PULONG FullscreenOutputLength) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} -/* - * @unimplemented - */ -INT -STDCALL -GdiQueryFonts(PUNIVERSAL_FONT_ID pufiFontList,ULONG nBufferSize,PLARGE_INTEGER pTimeStamp ) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} + + /* * @unimplemented @@ -2719,17 +2636,7 @@ GdiPlayEMF return 0; } -/* - * @unimplemented - */ -BOOL -STDCALL -GdiInitSpool(VOID) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} + /* * @unimplemented @@ -2791,5 +2698,101 @@ FillRgn( IN HDC hdc, IN HRGN hrgn, IN HBRUSH hbrush) return NtGdiFillRgn( hdc, hrgn, hbrush); } +/* + * @implemented + */ +BOOL +STDCALL +GdiGradientFill( + IN HDC hdc, + IN PTRIVERTEX pVertex, + IN ULONG nVertex, + IN PVOID pMesh, + IN ULONG nMesh, + IN ULONG ulMode) +{ + /* FIXME some part need be done in user mode */ + return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nMesh, ulMode); +} +/* + * @implemented + */ +BOOL +STDCALL +FrameRgn( + IN HDC hdc, + IN HRGN hrgn, + IN HBRUSH hbrush, + IN INT xWidth, + IN INT yHeight) +{ + /* FIXME some part need be done in user mode */ + return NtGdiFrameRgn(hdc, hrgn, hbrush, xWidth, yHeight); +} + +/* + * @implemented + */ +BOOL +STDCALL +GdiTransparentBlt( + IN HDC hdcDst, + IN INT xDst, + IN INT yDst, + IN INT cxDst, + IN INT cyDst, + IN HDC hdcSrc, + IN INT xSrc, + IN INT ySrc, + IN INT cxSrc, + IN INT cySrc, + IN COLORREF TransColor +) +{ + /* FIXME some part need be done in user mode */ + return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc, cxSrc, cySrc, TransColor); +} + +/* + * @unimplemented + */ +BOOL +STDCALL +GdiPrinterThunk( + IN HUMPD humpd, + DWORD *status, + DWORD unuse) +{ + /* FIXME figout the protypes, the HUMPD are a STRUCT or COM object */ + /* status contain some form of return value that being save, what it is I do not known */ + /* unsue seam have zero effect, what it is for I do not known */ + + // ? return NtGdiSetPUMPDOBJ(humpd->0x10,TRUE, humpd, ?) <- blackbox, OpenRCE info, and api hooks for anylaysing; + return FALSE; +} + +/* + * @unimplemented + * + */ +HBITMAP +STDCALL +GdiConvertBitmapV5( + HBITMAP in_format_BitMap, + HBITMAP src_BitMap, + INT bpp, + INT unuse) +{ + /* FIXME guessing the prototypes */ + + /* + * it have create a new bitmap with desired in format, + * then convert it src_bitmap to new format + * and return it as HBITMAP + */ + + return FALSE; +} + diff --git a/reactos/dll/win32/gdi32/misc/stubsw.c b/reactos/dll/win32/gdi32/misc/stubsw.c index 05bdc26cd82..5d4a65953cf 100644 --- a/reactos/dll/win32/gdi32/misc/stubsw.c +++ b/reactos/dll/win32/gdi32/misc/stubsw.c @@ -260,17 +260,6 @@ GdiAddFontResourceW(LPCWSTR lpszFilename,FLONG fl,DESIGNVECTOR *pdv) return NtGdiAddFontResource ( &Filename, fl ); } -/* - * @unimplemented - */ -BOOL -STDCALL -GdiConsoleTextOut(HDC hdc, POLYTEXTW *lpto,UINT nStrings, RECTL *prclBounds) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} /* * @unimplemented diff --git a/reactos/dll/win32/gdi32/objects/dc.c b/reactos/dll/win32/gdi32/objects/dc.c index 0d94529c41d..79bcf3dad29 100644 --- a/reactos/dll/win32/gdi32/objects/dc.c +++ b/reactos/dll/win32/gdi32/objects/dc.c @@ -396,6 +396,9 @@ GetDCDWord( HDC hDC, INT u, DWORD Result ) } +/* + * @implemented + */ BOOL STDCALL GetAspectRatioFilterEx(