From d04bc15143e6492dc3b9d4a7003f9a44df034e6b Mon Sep 17 00:00:00 2001 From: James Tabor Date: Sat, 16 Feb 2008 18:14:36 +0000 Subject: [PATCH] - Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): Removed NtGdiStretchDIBits and NtGdiAddFontResource. Replaced with correct API. svn path=/trunk/; revision=32391 --- reactos/dll/win32/gdi32/misc/stubs.c | 4 +- reactos/dll/win32/gdi32/misc/stubsw.c | 15 ++---- reactos/include/reactos/win32k/ntgdibad.h | 27 ----------- .../subsystems/win32/win32k/objects/dibobj.c | 34 ++++++++------ .../subsystems/win32/win32k/objects/text.c | 23 ++++----- reactos/subsystems/win32/win32k/stubs/stubs.c | 47 ------------------- reactos/subsystems/win32/win32k/w32ksvc.db | 2 - 7 files changed, 39 insertions(+), 113 deletions(-) diff --git a/reactos/dll/win32/gdi32/misc/stubs.c b/reactos/dll/win32/gdi32/misc/stubs.c index 53ef5a6dd87..f3d247724c2 100644 --- a/reactos/dll/win32/gdi32/misc/stubs.c +++ b/reactos/dll/win32/gdi32/misc/stubs.c @@ -42,8 +42,8 @@ StretchDIBits(HDC hdc, { /* FIXME share memory */ - return NtGdiStretchDIBits(hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, - nSrcWidth, nSrcHeight, lpBits, lpBitsInfo, iUsage, dwRop); + return NtGdiStretchDIBitsInternal(hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, + nSrcWidth, nSrcHeight, (LPBYTE)lpBits, (LPBITMAPINFO)lpBitsInfo, (DWORD)iUsage, dwRop, 0, 0, NULL); } /* diff --git a/reactos/dll/win32/gdi32/misc/stubsw.c b/reactos/dll/win32/gdi32/misc/stubsw.c index eb239953441..82460c63bc2 100644 --- a/reactos/dll/win32/gdi32/misc/stubsw.c +++ b/reactos/dll/win32/gdi32/misc/stubsw.c @@ -215,19 +215,14 @@ EudcUnloadLinkW(LPCWSTR pBaseFaceName,LPCWSTR pEudcFontPath) */ int STDCALL -GdiAddFontResourceW(LPCWSTR lpszFilename,FLONG fl,DESIGNVECTOR *pdv) +GdiAddFontResourceW( + LPCWSTR lpszFilename, + FLONG fl, + DESIGNVECTOR *pdv) { - UNICODE_STRING Filename; - //UNIMPLEMENTED; - //SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - //return 0; - - /* FIXME handle fl parameter */ - RtlInitUnicodeString(&Filename, lpszFilename); - return NtGdiAddFontResource ( &Filename, fl ); + return NtGdiAddFontResourceW((PWSTR)lpszFilename, 0, 0, fl, 0, pdv); } - /* * @implemented */ diff --git a/reactos/include/reactos/win32k/ntgdibad.h b/reactos/include/reactos/win32k/ntgdibad.h index bca134b1031..947d1c55e1b 100644 --- a/reactos/include/reactos/win32k/ntgdibad.h +++ b/reactos/include/reactos/win32k/ntgdibad.h @@ -59,14 +59,6 @@ NtGdiGetFontFamilyInfo( DWORD Size ); - -/* Use NtGdiAddFontResourceW */ -int -STDCALL -NtGdiAddFontResource(PUNICODE_STRING Filename, - DWORD fl); - - /* Use NtGdiCreateDIBitmapInternal */ HBITMAP STDCALL @@ -170,25 +162,6 @@ NtGdiSetWindowOrgEx ( LPPOINT Point ); -/* Use NtGdiStretchDIBitsInternal. */ -INT -STDCALL -NtGdiStretchDIBits ( - HDC hDC, - INT XDest, - INT YDest, - INT DestWidth, - INT DestHeight, - INT XSrc, - INT YSrc, - INT SrcWidth, - INT SrcHeight, - CONST VOID * Bits, - CONST BITMAPINFO * BitsInfo, - UINT Usage, - DWORD ROP - ); - #endif /* WIN32K_NTGDI_BAD_INCLUDED */ diff --git a/reactos/subsystems/win32/win32k/objects/dibobj.c b/reactos/subsystems/win32/win32k/objects/dibobj.c index fd41a1269b4..4f3b1d89b7f 100644 --- a/reactos/subsystems/win32/win32k/objects/dibobj.c +++ b/reactos/subsystems/win32/win32k/objects/dibobj.c @@ -722,19 +722,25 @@ cleanup: return Result; } -INT STDCALL NtGdiStretchDIBits(HDC hDC, - INT XDest, - INT YDest, - INT DestWidth, - INT DestHeight, - INT XSrc, - INT YSrc, - INT SrcWidth, - INT SrcHeight, - CONST VOID *Bits, - CONST BITMAPINFO *BitsInfo, - UINT Usage, - DWORD ROP) +INT +APIENTRY +NtGdiStretchDIBitsInternal( + HDC hDC, + INT XDest, + INT YDest, + INT DestWidth, + INT DestHeight, + INT XSrc, + INT YSrc, + INT SrcWidth, + INT SrcHeight, + LPBYTE Bits, + LPBITMAPINFO BitsInfo, + DWORD Usage, + DWORD ROP, + UINT cjMaxInfo, + UINT cjMaxBits, + HANDLE hcmXform) { HBITMAP hBitmap, hOldBitmap; HDC hdcMem; @@ -771,7 +777,7 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, } NtGdiSetDIBits(hdcMem, hBitmap, 0, BitsInfo->bmiHeader.biHeight, Bits, - BitsInfo, Usage); + BitsInfo, (UINT)Usage); /* Origin for DIBitmap may be bottom left (positive biHeight) or top left (negative biHeight) */ diff --git a/reactos/subsystems/win32/win32k/objects/text.c b/reactos/subsystems/win32/win32k/objects/text.c index df96b496cdf..6ae440818cc 100644 --- a/reactos/subsystems/win32/win32k/objects/text.c +++ b/reactos/subsystems/win32/win32k/objects/text.c @@ -436,22 +436,23 @@ IntGetFontRenderMode(LOGFONTW *logfont) return FT_RENDER_MODE_NORMAL; } -int -STDCALL -NtGdiAddFontResource(PUNICODE_STRING Filename, DWORD fl) +INT +APIENTRY +NtGdiAddFontResourceW( + IN WCHAR *pwszFiles, + IN ULONG cwc, + IN ULONG cFiles, + IN FLONG fl, + IN DWORD dwPidTid, + IN OPTIONAL DESIGNVECTOR *pdv) { UNICODE_STRING SafeFileName; PWSTR src; NTSTATUS Status; int Ret; - /* Copy the UNICODE_STRING structure */ - Status = MmCopyFromCaller(&SafeFileName, Filename, sizeof(UNICODE_STRING)); - if(!NT_SUCCESS(Status)) - { - SetLastNtError(Status); - return 0; - } + /* FIXME - Protect with SEH? */ + RtlInitUnicodeString(&SafeFileName, pwszFiles); /* Reserve for prepending '\??\' */ SafeFileName.Length += 4 * sizeof(WCHAR); @@ -476,7 +477,7 @@ NtGdiAddFontResource(PUNICODE_STRING Filename, DWORD fl) return 0; } - Ret = IntGdiAddFontResource(&SafeFileName, fl); + Ret = IntGdiAddFontResource(&SafeFileName, (DWORD)fl); ExFreePool(SafeFileName.Buffer); return Ret; diff --git a/reactos/subsystems/win32/win32k/stubs/stubs.c b/reactos/subsystems/win32/win32k/stubs/stubs.c index cd141ae2618..48fc1bb24d7 100644 --- a/reactos/subsystems/win32/win32k/stubs/stubs.c +++ b/reactos/subsystems/win32/win32k/stubs/stubs.c @@ -1558,26 +1558,6 @@ NtGdiFONTOBJ_cGetGlyphs(IN FONTOBJ *FontObj, return 0; } - - -/* - * @unimplemented - */ -INT -APIENTRY -NtGdiAddFontResourceW( - IN WCHAR *pwszFiles, - IN ULONG cwc, - IN ULONG cFiles, - IN FLONG f, - IN DWORD dwPidTid, - IN OPTIONAL DESIGNVECTOR *pdv) -{ - UNIMPLEMENTED; - return 0; -} - - /* * @unimplemented */ @@ -2981,33 +2961,6 @@ NtGdiSetMagicColors( return FALSE; } - /* - * @unimplemented - */ -INT -APIENTRY -NtGdiStretchDIBitsInternal( - IN HDC hdc, - IN INT xDst, - IN INT yDst, - IN INT cxDst, - IN INT cyDst, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN OPTIONAL LPBYTE pjInit, - IN LPBITMAPINFO pbmi, - IN DWORD dwUsage, - IN DWORD dwRop4, - IN UINT cjMaxInfo, - IN UINT cjMaxBits, - IN HANDLE hcmXform) -{ - UNIMPLEMENTED; - return 0; -} - /* * @unimplemented */ diff --git a/reactos/subsystems/win32/win32k/w32ksvc.db b/reactos/subsystems/win32/win32k/w32ksvc.db index a1762a75f79..28192ccf086 100644 --- a/reactos/subsystems/win32/win32k/w32ksvc.db +++ b/reactos/subsystems/win32/win32k/w32ksvc.db @@ -679,7 +679,6 @@ NtGdiSetViewportExtEx 4 NtGdiSetViewportOrgEx 4 NtGdiSetWindowExtEx 4 NtGdiSetWindowOrgEx 4 -NtGdiStretchDIBits 13 NtUserAcquireOrReleaseInputOwnership 1 NtUserBuildMenuItemList 4 NtUserCreateCursorIconHandle 2 @@ -719,7 +718,6 @@ NtUserSendMessageCallback 6 NtUserSendMessageTimeout 8 NtUserSendNotifyMessage 4 NtUserSetScrollBarInfo 3 -NtGdiAddFontResource 2 NtGdiCreateDIBitmap 6 NtGdiGetAspectRatioFilterEx 2 NtGdiGetFontFamilyInfo 4