DWORD WINAPI D3DInit(LPVOID)
{
hD3D = 0;
do {
hD3D = (DWORD)GetModuleHandleA("d3d9.dll");
Sleep(10);
} while(!hD3D);
adr = FindPattern(hD3D, 0x90AF20, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x 00\x00\x89\x86", "xx????xx????xx");
if (adr) {
memcpy(&vtbl,(void *)(adr+2),4);
pReset = (oReset)DetourCreate (( BYTE* )vtbl[16], ( BYTE* )myReset, DETOUR_TYPE_JMP );
pPresent = (oPresent)DetourCreate (( BYTE* )vtbl[17], ( BYTE* )myPresent, DETOUR_TYPE_JMP );
}
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if (dwReason == DLL_PROCESS_ATTACH)
{
CreateThread(NULL, NULL, Hacks, NULL, NULL, NULL);
CreateThread(NULL, NULL, D3DInit, NULL, NULL, NULL);
}
return TRUE;
}