Author: jimtabor Date: Mon Mar 2 04:54:37 2009 New Revision: 39839
URL: http://svn.reactos.org/svn/reactos?rev=39839&view=rev Log: - Add LanguagePack support to GetFontLanguageInfo.
Modified: trunk/reactos/dll/win32/gdi32/include/gdi32p.h trunk/reactos/dll/win32/gdi32/main/dllmain.c trunk/reactos/dll/win32/gdi32/objects/font.c
Modified: trunk/reactos/dll/win32/gdi32/include/gdi32p.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/include/gdi... ============================================================================== --- trunk/reactos/dll/win32/gdi32/include/gdi32p.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/gdi32/include/gdi32p.h [iso-8859-1] Mon Mar 2 04:54:37 2009 @@ -15,6 +15,7 @@ extern HANDLE CurrentProcessId; extern DWORD GDI_BatchLimit; extern PDEVCAPS GdiDevCaps; +extern BOOL gbLpk; // Global bool LanguagePack
typedef INT (CALLBACK* EMFPLAYPROC)(
Modified: trunk/reactos/dll/win32/gdi32/main/dllmain.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/main/dllmai... ============================================================================== --- trunk/reactos/dll/win32/gdi32/main/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/gdi32/main/dllmain.c [iso-8859-1] Mon Mar 2 04:54:37 2009 @@ -13,6 +13,7 @@ BOOL SetStockObjects = FALSE; PDEVCAPS GdiDevCaps = NULL; PGDIHANDLECACHE GdiHandleCache = NULL; +BOOL gbLpk = FALSE;
/* * GDI32.DLL does have an entry point for disable threadlibrarycall,. The initialization is done by a call
Modified: trunk/reactos/dll/win32/gdi32/objects/font.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/fon... ============================================================================== --- trunk/reactos/dll/win32/gdi32/objects/font.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/gdi32/objects/font.c [iso-8859-1] Mon Mar 2 04:54:37 2009 @@ -914,7 +914,19 @@ HDC hDc ) { - return GetDCDWord(hDc, GdiGetFontLanguageInfo, GCP_ERROR); + DWORD Gcp = 0, Ret = 0; + if (gbLpk) + { + Ret = NtGdiGetTextCharsetInfo(hDc, NULL, 0); + if ((Ret == ARABIC_CHARSET) || (Ret == HEBREW_CHARSET)) + Ret = (GCP_KASHIDA|GCP_DIACRITIC|GCP_LIGATE|GCP_GLYPHSHAPE|GCP_REORDER); + } + Gcp = GetDCDWord(hDc, GdiGetFontLanguageInfo, GCP_ERROR); + if ( Gcp == GCP_ERROR) + return Gcp; + else + Ret = Gcp | Ret; + return Ret; }
/*