Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************************************************
- * This is an almost automatically generated proxy wrapper *
- * for DDRAW.DLL. It shouldn't be altered unless some *
- * changes need to be made to DirectDraw emulation. *
- ************************************************************/
- #include <stdafx.h>
- #include <ddraw.h>
- #define DLOG //Logger
- FARPROC p[22];
- HMODULE hL = 0;
- void InitDll()
- {
- hL = LoadLibraryA("re_ddraw.dll");
- if (!hL)
- {
- char path[MAX_PATH];
- CopyMemory(path + GetSystemDirectory(path, MAX_PATH - 10), "\\ddraw.dll", 11);
- hL = LoadLibraryA(path);
- if (!hL) return;
- }
- p[0] = GetProcAddress(hL, "AcquireDDThreadLock");
- p[1] = GetProcAddress(hL, "CompleteCreateSysmemSurface");
- p[2] = GetProcAddress(hL, "D3DParseUnknownCommand");
- p[3] = GetProcAddress(hL, "DDGetAttachedSurfaceLcl");
- p[4] = GetProcAddress(hL, "DDInternalLock");
- p[5] = GetProcAddress(hL, "DDInternalUnlock");
- p[6] = GetProcAddress(hL, "DSoundHelp");
- p[7] = GetProcAddress(hL, "DirectDrawCreate");
- p[8] = GetProcAddress(hL, "DirectDrawCreateClipper");
- p[9] = GetProcAddress(hL, "DirectDrawCreateEx");
- p[10] = GetProcAddress(hL, "DirectDrawEnumerateA");
- p[11] = GetProcAddress(hL, "DirectDrawEnumerateExA");
- p[12] = GetProcAddress(hL, "DirectDrawEnumerateExW");
- p[13] = GetProcAddress(hL, "DirectDrawEnumerateW");
- p[14] = GetProcAddress(hL, "DllCanUnloadNow");
- p[15] = GetProcAddress(hL, "DllGetClassObject");
- p[16] = GetProcAddress(hL, "GetDDSurfaceLocal");
- p[17] = GetProcAddress(hL, "GetOLEThunkData");
- p[18] = GetProcAddress(hL, "GetSurfaceFromDC");
- p[19] = GetProcAddress(hL, "RegisterSpecialCase");
- p[20] = GetProcAddress(hL, "ReleaseDDThreadLock");
- p[21] = GetProcAddress(hL, "SetAppCompatData");
- }
- void CloseDll()
- {
- FreeLibrary(hL);
- }
- __declspec(naked)void PROXY_AcquireDDThreadLock() {
- DLOG(__FUNCTION__);
- __asm { jmp p[0 * 4] }
- }
- __declspec(naked)void PROXY_CompleteCreateSysmemSurface() {
- DLOG(__FUNCTION__);
- __asm { jmp p[1 * 4] }
- }
- __declspec(naked)void PROXY_D3DParseUnknownCommand() {
- DLOG(__FUNCTION__);
- __asm { jmp p[2 * 4] }
- }
- __declspec(naked)void PROXY_DDGetAttachedSurfaceLcl() {
- DLOG(__FUNCTION__);
- __asm { jmp p[3 * 4] }
- }
- __declspec(naked)void PROXY_DDInternalLock() {
- DLOG(__FUNCTION__);
- __asm { jmp p[4 * 4] }
- }
- __declspec(naked)void PROXY_DDInternalUnlock() {
- DLOG(__FUNCTION__);
- __asm { jmp p[5 * 4] }
- }
- __declspec(naked)void PROXY_DSoundHelp() {
- DLOG(__FUNCTION__);
- __asm { jmp p[6 * 4] }
- }
- __declspec(naked) HRESULT __stdcall PROXY_DirectDrawCreate(GUID *lpGUID, LPDIRECTDRAW *lplpDD, void *pUnkOuter) {
- DLOG(__FUNCTION__);
- __asm { jmp p[7 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawCreateClipper() {
- DLOG(__FUNCTION__);
- __asm { jmp p[8 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawCreateEx() {
- DLOG(__FUNCTION__);
- __asm { jmp p[9 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawEnumerateA() {
- DLOG(__FUNCTION__);
- __asm { jmp p[10 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawEnumerateExA() {
- DLOG(__FUNCTION__);
- __asm { jmp p[11 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawEnumerateExW() {
- DLOG(__FUNCTION__);
- __asm { jmp p[12 * 4] }
- }
- __declspec(naked)void PROXY_DirectDrawEnumerateW() {
- DLOG(__FUNCTION__);
- __asm { jmp p[13 * 4] }
- }
- __declspec(naked)void PROXY_DllCanUnloadNow() {
- DLOG(__FUNCTION__);
- __asm { jmp p[14 * 4] }
- }
- __declspec(naked)void PROXY_DllGetClassObject() {
- DLOG(__FUNCTION__);
- __asm { jmp p[15 * 4] }
- }
- __declspec(naked)void PROXY_GetDDSurfaceLocal() {
- DLOG(__FUNCTION__);
- __asm { jmp p[16 * 4] }
- }
- __declspec(naked)void PROXY_GetOLEThunkData() {
- DLOG(__FUNCTION__);
- __asm { jmp p[17 * 4] }
- }
- __declspec(naked)void PROXY_GetSurfaceFromDC() {
- DLOG(__FUNCTION__);
- __asm { jmp p[18 * 4] }
- }
- __declspec(naked)void PROXY_RegisterSpecialCase() {
- DLOG(__FUNCTION__);
- __asm { jmp p[19 * 4] }
- }
- __declspec(naked)void PROXY_ReleaseDDThreadLock() {
- DLOG(__FUNCTION__);
- __asm { jmp p[20 * 4] }
- }
- __declspec(naked)void PROXY_SetAppCompatData() {
- DLOG(__FUNCTION__);
- __asm { jmp p[21 * 4] }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement