72 lines
1.3 KiB
C++
72 lines
1.3 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 2001 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
Outlook2000.cpp
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
If Outlook2000 is calling to set the system date to Hebrew, while the
|
||
|
associated UserLocale is passed in the call as Arabic, the shim will
|
||
|
replace the UserLocale with DefaultUserLocale and let the call proceed;
|
||
|
this way Outlook2000 will be able to restore the date to Hebrew
|
||
|
(which was prevented by the passing of an Arabic UserLocale).
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
This is an app specific shim.
|
||
|
|
||
|
History:
|
||
|
|
||
|
06/12/2001 geoffguo Created
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include "precomp.h"
|
||
|
|
||
|
IMPLEMENT_SHIM_BEGIN(Outlook2000)
|
||
|
#include "ShimHookMacro.h"
|
||
|
|
||
|
APIHOOK_ENUM_BEGIN
|
||
|
APIHOOK_ENUM_ENTRY(SetLocaleInfoA)
|
||
|
APIHOOK_ENUM_END
|
||
|
|
||
|
/*++
|
||
|
|
||
|
This hooks SetLocaleInfo.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
BOOL
|
||
|
APIHOOK(SetLocaleInfoA)(
|
||
|
LCID Locale,
|
||
|
LCTYPE LCType,
|
||
|
LPCSTR lpLCData
|
||
|
)
|
||
|
{
|
||
|
LCID lcid = Locale;
|
||
|
LPCSTR szCAL_HEBREW = "8";
|
||
|
|
||
|
if (Locale == MAKELCID (LANG_ARABIC, SORT_DEFAULT) && lpLCData != NULL
|
||
|
&& lstrcmpA (lpLCData, szCAL_HEBREW) == 0) {
|
||
|
lcid = LOCALE_USER_DEFAULT;
|
||
|
}
|
||
|
|
||
|
return SetLocaleInfoA(lcid, LCType, lpLCData);
|
||
|
}
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Register hooked functions
|
||
|
|
||
|
--*/
|
||
|
|
||
|
HOOK_BEGIN
|
||
|
APIHOOK_ENTRY(KERNEL32.DLL, SetLocaleInfoA)
|
||
|
HOOK_END
|
||
|
|
||
|
IMPLEMENT_SHIM_END
|
||
|
|