/* IDirect3DSurface9 IDirect3DResource9 Interface follow: */ static HRESULT WINAPI IDirect3DSurface9Impl_GetDevice(IDirect3DSurface9 *iface, IDirect3DDevice9 **device) { IDirect3DSurface9Impl *This = impl_from_IDirect3DSurface9(iface); TRACE("iface %p, device %p.\n", iface, device); if (This->forwardReference) { IDirect3DResource9 *resource; HRESULT hr; hr = IUnknown_QueryInterface(This->forwardReference, &IID_IDirect3DResource9, (void **)&resource); if (SUCCEEDED(hr)) { hr = IDirect3DResource9_GetDevice(resource, device); IDirect3DResource9_Release(resource); TRACE("Returning device %p.\n", *device); } return hr; } *device = (IDirect3DDevice9 *)This->parentDevice; IDirect3DDevice9_AddRef(*device); TRACE("Returning device %p.\n", *device); return D3D_OK; }
static HRESULT WINAPI d3d9_volume_GetDevice(IDirect3DVolume9 *iface, IDirect3DDevice9 **device) { struct d3d9_volume *volume = impl_from_IDirect3DVolume9(iface); IDirect3DResource9 *resource; HRESULT hr; TRACE("iface %p, device %p.\n", iface, device); hr = IUnknown_QueryInterface(volume->forwardReference, &IID_IDirect3DResource9, (void **)&resource); if (SUCCEEDED(hr)) { hr = IDirect3DResource9_GetDevice(resource, device); IDirect3DResource9_Release(resource); TRACE("Returning device %p.\n", *device); } return hr; }
/* IDirect3DVolume9 Interface follow: */ static HRESULT WINAPI IDirect3DVolume9Impl_GetDevice(IDirect3DVolume9 *iface, IDirect3DDevice9 **device) { IDirect3DVolume9Impl *This = (IDirect3DVolume9Impl *)iface; IDirect3DResource9 *resource; HRESULT hr; TRACE("iface %p, device %p.\n", iface, device); hr = IUnknown_QueryInterface(This->forwardReference, &IID_IDirect3DResource9, (void **)&resource); if (SUCCEEDED(hr)) { hr = IDirect3DResource9_GetDevice(resource, device); IDirect3DResource9_Release(resource); TRACE("Returning device %p.\n", *device); } return hr; }