/* IDirect3DVolume9 Interface follow: */ static HRESULT WINAPI IDirect3DVolume9Impl_GetDevice(LPDIRECT3DVOLUME9 iface, IDirect3DDevice9** ppDevice) { IDirect3DVolume9Impl *This = (IDirect3DVolume9Impl *)iface; IWineD3DDevice *myDevice = NULL; IWineD3DVolume_GetDevice(This->wineD3DVolume, &myDevice); IWineD3DDevice_GetParent(myDevice, (IUnknown **)ppDevice); IWineD3DDevice_Release(myDevice); return D3D_OK; }
/* IDirect3DResource9 Interface follow: */ HRESULT WINAPI IDirect3DResource9Impl_GetDevice(LPDIRECT3DRESOURCE9 iface, IDirect3DDevice9** ppDevice) { IDirect3DResource9Impl *This = (IDirect3DResource9Impl *)iface; IWineD3DDevice *myDevice = NULL; TRACE("(%p) Relay\n", This); IWineD3DResource_GetDevice(This->wineD3DResource, &myDevice); IWineD3DDevice_GetParent(myDevice, (IUnknown **)ppDevice); IWineD3DDevice_Release(myDevice); return D3D_OK; }
/* IDirect3DVertexShader9 Interface follow: */ static HRESULT WINAPI IDirect3DVertexShader9Impl_GetDevice(LPDIRECT3DVERTEXSHADER9 iface, IDirect3DDevice9** ppDevice) { IDirect3DVertexShader9Impl *This = (IDirect3DVertexShader9Impl *)iface; IWineD3DDevice *myDevice = NULL; HRESULT hr; TRACE("(%p) : Relay\n", This); EnterCriticalSection(&d3d9_cs); hr = IWineD3DVertexShader_GetDevice(This->wineD3DVertexShader, &myDevice); if (WINED3D_OK == hr && myDevice != NULL) { hr = IWineD3DDevice_GetParent(myDevice, (IUnknown **)ppDevice); IWineD3DDevice_Release(myDevice); } else { *ppDevice = NULL; } LeaveCriticalSection(&d3d9_cs); TRACE("(%p) returning (%p)\n", This, *ppDevice); return hr; }
/* IDirect3DQuery9 Interface follow: */ static HRESULT WINAPI IDirect3DQuery9Impl_GetDevice(LPDIRECT3DQUERY9 iface, IDirect3DDevice9** ppDevice) { IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface; IWineD3DDevice* pDevice; HRESULT hr; TRACE("(%p) Relay\n", This); EnterCriticalSection(&d3d9_cs); hr = IWineD3DQuery_GetDevice(This->wineD3DQuery, &pDevice); if(hr != D3D_OK){ *ppDevice = NULL; }else{ hr = IWineD3DDevice_GetParent(pDevice, (IUnknown **)ppDevice); IWineD3DDevice_Release(pDevice); } LeaveCriticalSection(&d3d9_cs); return hr; }