1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00
DDrawCompat/DDrawCompat/DDrawProcs.h
2015-12-25 01:57:44 +01:00

56 lines
1.3 KiB
C++

#pragma once
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#define VISIT_UNMODIFIED_DDRAW_PROCS(visit) \
visit(AcquireDDThreadLock) \
visit(CompleteCreateSysmemSurface) \
visit(D3DParseUnknownCommand) \
visit(DDGetAttachedSurfaceLcl) \
visit(DDInternalLock) \
visit(DDInternalUnlock) \
visit(DSoundHelp) \
visit(DirectDrawCreateClipper) \
visit(DirectDrawEnumerateA) \
visit(DirectDrawEnumerateExA) \
visit(DirectDrawEnumerateExW) \
visit(DirectDrawEnumerateW) \
visit(DllCanUnloadNow) \
visit(DllGetClassObject) \
visit(GetDDSurfaceLocal) \
visit(GetOLEThunkData) \
visit(GetSurfaceFromDC) \
visit(RegisterSpecialCase) \
visit(ReleaseDDThreadLock) \
visit(SetAppCompatData)
#define VISIT_MODIFIED_DDRAW_PROCS(visit) \
visit(DirectDrawCreate) \
visit(DirectDrawCreateEx)
#define VISIT_ALL_DDRAW_PROCS(visit) \
VISIT_UNMODIFIED_DDRAW_PROCS(visit) \
VISIT_MODIFIED_DDRAW_PROCS(visit)
#define ADD_FARPROC_MEMBER(memberName) FARPROC memberName;
namespace Compat
{
struct DDrawProcs
{
VISIT_ALL_DDRAW_PROCS(ADD_FARPROC_MEMBER);
FARPROC DirectInputCreateA;
};
extern DDrawProcs origProcs;
}
#undef ADD_FARPROC_MEMBER
#define CALL_ORIG_DDRAW(procName, ...) \
(Compat::origProcs.procName ? \
reinterpret_cast<decltype(procName)*>(Compat::origProcs.procName)(__VA_ARGS__) : \
E_FAIL)