/*++ Copyright (c) 2001 Microsoft Corporation Module Name: CorelDraw9JPN.cpp Abstract: The App has some RTF files, seems the font and charset specified not correct in it. When later on riched20 do ANSI-Unicode Code conversion, it used English code-page. Fix this by checking the 1st parameter passed to MultiByteToWideChar by richedit, if it's English, try to use CP_ACP, which is always safe. Notes: This is an app specific shim. History: 05/10/2001 xiaoz Created --*/ #include "precomp.h" IMPLEMENT_SHIM_BEGIN(CorelDraw9JPN) #include "ShimHookMacro.h" APIHOOK_ENUM_BEGIN APIHOOK_ENUM_ENTRY(MultiByteToWideChar) APIHOOK_ENUM_END /*++ Correct the code page if required. --*/ int APIHOOK(MultiByteToWideChar)( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar ) { if (1252 == CodePage) { // // Change the code page // CodePage = CP_ACP; LOGN(eDbgLevelWarning, "Code page corrected"); } return ORIGINAL_API(MultiByteToWideChar)(CodePage, dwFlags, lpMultiByteStr, cbMultiByte, lpWideCharStr, cchWideChar); } /*++ Register hooked functions --*/ HOOK_BEGIN APIHOOK_ENTRY(KERNEL32.DLL, MultiByteToWideChar) HOOK_END IMPLEMENT_SHIM_END