From cf7825f156409092d5e5a368fa600c492168dcdf Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 6 Jun 2007 11:15:27 +0000 Subject: [PATCH] - partly implement GetFontResourceInfoW - Remove GetFontResourceInfo stub svn path=/trunk/; revision=27023 --- reactos/dll/win32/gdi32/gdi32.def | 1 - reactos/dll/win32/gdi32/misc/stubs.c | 18 ----------- reactos/dll/win32/gdi32/misc/stubsw.c | 17 ---------- reactos/dll/win32/gdi32/objects/text.c | 44 ++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 36 deletions(-) diff --git a/reactos/dll/win32/gdi32/gdi32.def b/reactos/dll/win32/gdi32/gdi32.def index d821499781c..a86f7413399 100644 --- a/reactos/dll/win32/gdi32/gdi32.def +++ b/reactos/dll/win32/gdi32/gdi32.def @@ -386,7 +386,6 @@ GetEUDCTimeStampExW@4 GetFontAssocStatus@4 GetFontData@20=NtGdiGetFontData@20 GetFontLanguageInfo@4 -GetFontResourceInfo@16 GetFontResourceInfoW@16 GetFontUnicodeRanges@8 GetGlyphIndicesA@20 diff --git a/reactos/dll/win32/gdi32/misc/stubs.c b/reactos/dll/win32/gdi32/misc/stubs.c index dca417174e5..c79bf986a96 100644 --- a/reactos/dll/win32/gdi32/misc/stubs.c +++ b/reactos/dll/win32/gdi32/misc/stubs.c @@ -1394,24 +1394,6 @@ gdiPlaySpoolStream( return 0; } - -/* - * @unimplemented - */ -DWORD -STDCALL -GetFontResourceInfo( - DWORD a0, - DWORD a1, - DWORD a2, - DWORD a3 - ) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} - /* * @unimplemented */ diff --git a/reactos/dll/win32/gdi32/misc/stubsw.c b/reactos/dll/win32/gdi32/misc/stubsw.c index 187cde85f31..38010fcbef7 100644 --- a/reactos/dll/win32/gdi32/misc/stubsw.c +++ b/reactos/dll/win32/gdi32/misc/stubsw.c @@ -229,23 +229,6 @@ UpdateICMRegKeyW( */ -/* - * @unimplemented - */ -DWORD -STDCALL -GetFontResourceInfoW( - DWORD a0, - DWORD a1, - DWORD a2, - DWORD a3 - ) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} - /* * @unimplemented */ diff --git a/reactos/dll/win32/gdi32/objects/text.c b/reactos/dll/win32/gdi32/objects/text.c index c3cfe8c232b..a3a1a79cd00 100644 --- a/reactos/dll/win32/gdi32/objects/text.c +++ b/reactos/dll/win32/gdi32/objects/text.c @@ -340,4 +340,48 @@ GetTextFaceA( HDC hdc, INT count, LPSTR name ) return res; } +BOOL +STDCALL +GetFontResourceInfoW( + LPCWSTR lpFileName, + DWORD *pdwBufSize, + void* lpBuffer, + DWORD dwType + ) +{ + BOOL bRet; + UNICODE_STRING NtFileName; + if (!lpFileName || !pdwBufSize || !lpBuffer) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + if (!RtlDosPathNameToNtPathName_U(lpFileName, + &NtFileName, + NULL, + NULL)) + { + SetLastError(ERROR_PATH_NOT_FOUND); + return FALSE; + } + + bRet = NtGdiGetFontResourceInfoInternalW( + NtFileName.Buffer, + NtFileName.Length, + 1, + *pdwBufSize, + pdwBufSize, + lpBuffer, + dwType); + + RtlFreeHeap(RtlGetProcessHeap(), 0, NtFileName.Buffer); + + if (!bRet) + { + return FALSE; + } + + return TRUE; +}