Code:
void cMain::Hook()
{
DWORD dwD3D9, Address, *vtbl;
dwD3D9 = 0;
do {
dwD3D9 = (DWORD)GetModuleHandle(D3D9_Name);
Sleep(10);
} while(!dwD3D9);
Address = Main.FindPattern(dwD3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
if ( Address )
{
memcpy(&vtbl,(void *)(Address+2),4);
pReset = ( oReset )cMain::DetourCreate(( PBYTE ) vtbl[Reset], ( PBYTE ) &MyReset ,Len_size );
pPresent = ( oPresent )cMain::DetourCreate(( PBYTE ) vtbl[Present], ( PBYTE ) &MyPresent ,Len_size );
}
}