Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.07 KB | None | 0 0
  1. /************************************************************
  2.  * This is an almost automatically generated proxy wrapper  *
  3.  * for DDRAW.DLL. It shouldn't be altered unless some       *
  4.  * changes need to be made to DirectDraw emulation.         *
  5.  ************************************************************/
  6. #include <stdafx.h>
  7. #include <ddraw.h>
  8.  
  9. #define DLOG        //Logger
  10.  
  11. FARPROC p[22];
  12. HMODULE hL = 0;
  13.  
  14. void InitDll()
  15. {
  16.     hL = LoadLibraryA("re_ddraw.dll");
  17.     if (!hL)
  18.     {
  19.         char path[MAX_PATH];
  20.         CopyMemory(path + GetSystemDirectory(path, MAX_PATH - 10), "\\ddraw.dll", 11);
  21.  
  22.         hL = LoadLibraryA(path);
  23.         if (!hL) return;
  24.     }
  25.  
  26.     p[0] = GetProcAddress(hL, "AcquireDDThreadLock");
  27.     p[1] = GetProcAddress(hL, "CompleteCreateSysmemSurface");
  28.     p[2] = GetProcAddress(hL, "D3DParseUnknownCommand");
  29.     p[3] = GetProcAddress(hL, "DDGetAttachedSurfaceLcl");
  30.     p[4] = GetProcAddress(hL, "DDInternalLock");
  31.     p[5] = GetProcAddress(hL, "DDInternalUnlock");
  32.     p[6] = GetProcAddress(hL, "DSoundHelp");
  33.     p[7] = GetProcAddress(hL, "DirectDrawCreate");
  34.     p[8] = GetProcAddress(hL, "DirectDrawCreateClipper");
  35.     p[9] = GetProcAddress(hL, "DirectDrawCreateEx");
  36.     p[10] = GetProcAddress(hL, "DirectDrawEnumerateA");
  37.     p[11] = GetProcAddress(hL, "DirectDrawEnumerateExA");
  38.     p[12] = GetProcAddress(hL, "DirectDrawEnumerateExW");
  39.     p[13] = GetProcAddress(hL, "DirectDrawEnumerateW");
  40.     p[14] = GetProcAddress(hL, "DllCanUnloadNow");
  41.     p[15] = GetProcAddress(hL, "DllGetClassObject");
  42.     p[16] = GetProcAddress(hL, "GetDDSurfaceLocal");
  43.     p[17] = GetProcAddress(hL, "GetOLEThunkData");
  44.     p[18] = GetProcAddress(hL, "GetSurfaceFromDC");
  45.     p[19] = GetProcAddress(hL, "RegisterSpecialCase");
  46.     p[20] = GetProcAddress(hL, "ReleaseDDThreadLock");
  47.     p[21] = GetProcAddress(hL, "SetAppCompatData");
  48. }
  49.  
  50. void CloseDll()
  51. {
  52.     FreeLibrary(hL);
  53. }
  54.  
  55. __declspec(naked)void PROXY_AcquireDDThreadLock() {
  56.     DLOG(__FUNCTION__);
  57.     __asm { jmp p[0 * 4] }
  58. }
  59. __declspec(naked)void PROXY_CompleteCreateSysmemSurface() {
  60.     DLOG(__FUNCTION__);
  61.     __asm { jmp p[1 * 4] }
  62. }
  63. __declspec(naked)void PROXY_D3DParseUnknownCommand() {
  64.     DLOG(__FUNCTION__);
  65.     __asm { jmp p[2 * 4] }
  66. }
  67. __declspec(naked)void PROXY_DDGetAttachedSurfaceLcl() {
  68.     DLOG(__FUNCTION__);
  69.     __asm { jmp p[3 * 4] }
  70. }
  71. __declspec(naked)void PROXY_DDInternalLock() {
  72.     DLOG(__FUNCTION__);
  73.     __asm { jmp p[4 * 4] }
  74. }
  75. __declspec(naked)void PROXY_DDInternalUnlock() {
  76.     DLOG(__FUNCTION__);
  77.     __asm { jmp p[5 * 4] }
  78. }
  79. __declspec(naked)void PROXY_DSoundHelp() {
  80.     DLOG(__FUNCTION__);
  81.     __asm { jmp p[6 * 4] }
  82. }
  83. __declspec(naked) HRESULT __stdcall PROXY_DirectDrawCreate(GUID *lpGUID, LPDIRECTDRAW *lplpDD, void *pUnkOuter) {
  84.     DLOG(__FUNCTION__);
  85.     __asm { jmp p[7 * 4] }
  86. }
  87. __declspec(naked)void PROXY_DirectDrawCreateClipper() {
  88.     DLOG(__FUNCTION__);
  89.     __asm { jmp p[8 * 4] }
  90. }
  91. __declspec(naked)void PROXY_DirectDrawCreateEx() {
  92.     DLOG(__FUNCTION__);
  93.     __asm { jmp p[9 * 4] }
  94. }
  95. __declspec(naked)void PROXY_DirectDrawEnumerateA() {
  96.     DLOG(__FUNCTION__);
  97.     __asm { jmp p[10 * 4] }
  98. }
  99. __declspec(naked)void PROXY_DirectDrawEnumerateExA() {
  100.     DLOG(__FUNCTION__);
  101.     __asm { jmp p[11 * 4] }
  102. }
  103. __declspec(naked)void PROXY_DirectDrawEnumerateExW() {
  104.     DLOG(__FUNCTION__);
  105.     __asm { jmp p[12 * 4]  }
  106. }
  107. __declspec(naked)void PROXY_DirectDrawEnumerateW() {
  108.     DLOG(__FUNCTION__);
  109.     __asm { jmp p[13 * 4] }
  110. }
  111. __declspec(naked)void PROXY_DllCanUnloadNow() {
  112.     DLOG(__FUNCTION__);
  113.     __asm { jmp p[14 * 4] }
  114. }
  115. __declspec(naked)void PROXY_DllGetClassObject() {
  116.     DLOG(__FUNCTION__);
  117.     __asm { jmp p[15 * 4] }
  118. }
  119. __declspec(naked)void PROXY_GetDDSurfaceLocal() {
  120.     DLOG(__FUNCTION__);
  121.     __asm { jmp p[16 * 4] }
  122. }
  123. __declspec(naked)void PROXY_GetOLEThunkData() {
  124.     DLOG(__FUNCTION__);
  125.     __asm { jmp p[17 * 4] }
  126. }
  127. __declspec(naked)void PROXY_GetSurfaceFromDC() {
  128.     DLOG(__FUNCTION__);
  129.     __asm { jmp p[18 * 4] }
  130. }
  131. __declspec(naked)void PROXY_RegisterSpecialCase() {
  132.     DLOG(__FUNCTION__);
  133.     __asm { jmp p[19 * 4] }
  134. }
  135. __declspec(naked)void PROXY_ReleaseDDThreadLock() {
  136.     DLOG(__FUNCTION__);
  137.     __asm { jmp p[20 * 4] }
  138. }
  139. __declspec(naked)void PROXY_SetAppCompatData() {
  140.     DLOG(__FUNCTION__);
  141.     __asm { jmp p[21 * 4] }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement