// Inject.h - Public declarations for Inject.DLL #pragma once #ifdef INJECT_EXPORTS #define INJECT_API __declspec(dllexport) #else #define INJECT_API __declspec(dllimport) #endif // Lifecycle exports extern "C" INJECT_API void __stdcall DecalStartup(); extern "C" INJECT_API void __stdcall Container_Initialize(HWND hWnd, void* pDevice); extern "C" INJECT_API void __stdcall Container_StartPlugins(); extern "C" INJECT_API void __stdcall Container_StopPlugins(); extern "C" INJECT_API void __stdcall Container_Terminate(); extern "C" INJECT_API void __stdcall Container_Draw(); // D3D9 vtable hooking utilities extern "C" INJECT_API BOOL __stdcall HookVTable(void* pInterface, int nIndex, void* pNewFunction); extern "C" INJECT_API BOOL __stdcall UnhookVTable(void* pInterface, int nIndex); extern "C" INJECT_API void* __stdcall GetVTableEntry(void* pInterface, int nIndex); // Memory patching extern "C" INJECT_API BOOL __stdcall PatchMemory(void* pAddress, const void* pData, DWORD dwSize); // Original D3D9 function pointers (for DecalRender/D3DService to call through) extern "C" INJECT_API void* BeginSceneO; extern "C" INJECT_API void* EndSceneO; // Path mapping extern "C" INJECT_API LPTSTR __stdcall InjectMapPath(int pathType, LPCTSTR szFilename, LPTSTR szBuffer); // COM server standard exports STDAPI DllCanUnloadNow(); STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); STDAPI DllRegisterServer(); STDAPI DllUnregisterServer();