windows-nt/Source/XPSP1/NT/windows/appcompat/shims/specific/crystalwebpageserver.cpp
2020-09-26 16:20:57 +08:00

81 lines
1.4 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
CrystalWebPageServer.cpp
Abstract:
The app calls GetEnhMetaFileHeader passing
nSize of 1000. We need to change it to 100 to make the app not crash.
If we don't do it this will cause memory corruption. Win9x seems to
be fine with it. Maybe it will crash the app less often in Win9x than
it does in Win2k.
Notes:
This is an app specific shim.
History:
02/16/2000 clupu Created
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(CrystalWebPageServer)
#include "ShimHookMacro.h"
APIHOOK_ENUM_BEGIN
APIHOOK_ENUM_ENTRY(GetEnhMetaFileHeader)
APIHOOK_ENUM_END
/*++
The app calls GetEnhMetaFileHeader passing
nSize of 1000. We need to change it to 100 to make the app work
--*/
UINT
APIHOOK(GetEnhMetaFileHeader)(
HENHMETAFILE hemf,
UINT nSize,
LPENHMETAHEADER lpEnhMetaHeader
)
{
if (nSize == 1000) {
nSize = 100;
DPFN(
eDbgLevelInfo,
"CrystalWebPageServer.dll, GetEnhMetaFileHeader: changed the size to 100.\n");
}
//
// Call the original API
//
return ORIGINAL_API(GetEnhMetaFileHeader)(
hemf,
nSize,
lpEnhMetaHeader);
}
/*++
Register hooked functions
--*/
HOOK_BEGIN
APIHOOK_ENTRY(GDI32.DLL, GetEnhMetaFileHeader)
HOOK_END
IMPLEMENT_SHIM_END