Basicly, I've never used directx before.
I'm basic my code on this one I found online: http://www.codeproject.com/....
As for the IDirect3D9_CreateDevice.
I've removed the comment out from the "hr" in the init and return it. it gets me a something which looks as a fine memory address.
Code:
device_ptr = IDirect3D9_CreateDevice(d3d9_ptr, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, present_parameters.hDeviceWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &present_parameters, &device_ptr);
if(!device_ptr)
LOG("Direct3D_CreateDevice returned:");
//debug address
LOG("IDirect3DDevice9_CreateOffscreenPlainSurface returned %08x\n", device_ptr);
return device_ptr;
but the snap function still fails with access violation
Code:
void Snap()
{
HRESULT hr;
static HMODULE d3d9_handle = 0;
IDirect3DDevice9 *device_ptr;
IDirect3DSurface9 *present_parameters = 0;
device_ptr = init_d3d9();
if (!device_ptr)
LOG("NO DEVICE %u", device_ptr);
// GOOD TILL HERE
// ----> FAILS HERE <----
hr = IDirect3DDevice9_CreateOffscreenPlainSurface(device_ptr, 640, 480, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &present_parameters, NULL);
if (!hr)
LOG("IDirect3DDevice9_CreateOffscreenPlainSurface returned %08x\n", hr);
}