Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
SirenJukebox2.cpp
Abstract:
This app has a problem with DirectDraw 7.0 and hence we fail the call to GetProcAddress when it asks for DirectDrawCreateEx.
Notes:
This is an app specific shim.
History: 03/13/2001 prashkud Created 05/04/2001 prashkud Modified to fix a bug if ordinals are passed instead of string addresses. We now imitate the behaviour of the actual GetProcAddress().
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(SirenJukebox2) #include "ShimHookMacro.h"
APIHOOK_ENUM_BEGIN APIHOOK_ENUM_ENTRY(GetProcAddress) APIHOOK_ENUM_END
const WCHAR wszDirectDrawCreateEx[] = L"DirectDrawCreateEx";
/*++
If the app is asking for the Proc adress for DirectDrawCreateEx, then return NULL. --*/
FARPROC APIHOOK(GetProcAddress)( HMODULE hMod, LPCSTR lpProcName ) { CSTRING_TRY { //
// Check to see if lpProcName contains an ordinal value.
// Only the low word can contain the ordinal and the
// upper word has to be 0's.
//
if ((ULONG_PTR) lpProcName > 0xffff) { CString csProcName(lpProcName);
if (csProcName.CompareNoCase(wszDirectDrawCreateEx) == 0) { return NULL; } } } CSTRING_CATCH { // Do Nothing
}
return ORIGINAL_API(GetProcAddress)(hMod, lpProcName); }
/*++
Register hooked functions
--*/
HOOK_BEGIN APIHOOK_ENTRY(KERNEL32.DLL, GetProcAddress) HOOK_END
IMPLEMENT_SHIM_END
|