On 19 June 2016 at 00:29, Aaryaman Vasishta <jem456.vasishta(a)gmail.com> wrote:
diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h index 817accf..1f4094b 100644 --- a/dlls/d3drm/d3drm_private.h +++ b/dlls/d3drm/d3drm_private.h @@ -44,6 +44,27 @@ struct d3drm_texture D3DRMIMAGE *image; };
+struct d3drm_frame +{ + IDirect3DRMFrame IDirect3DRMFrame_iface; + IDirect3DRMFrame2 IDirect3DRMFrame2_iface; + IDirect3DRMFrame3 IDirect3DRMFrame3_iface; + IDirect3DRM *d3drm; + LONG ref; + struct d3drm_frame *parent; + ULONG nb_children; + ULONG children_capacity; + IDirect3DRMFrame3** children; + ULONG nb_visuals; + ULONG visuals_capacity; + IDirect3DRMVisual** visuals; + ULONG nb_lights; + ULONG lights_capacity; + IDirect3DRMLight** lights; + D3DRMMATRIX4D transform; + D3DCOLOR scenebackground; +}; "IDirect3DRMFrame3 **children", "IDirect3DRMVisual **visuals" and "IDirect3DRMLight **lights".
@@ -51,11 +72,11 @@ void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
HRESULT d3drm_device_create(struct d3drm_device **out) DECLSPEC_HIDDEN; HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) DECLSPEC_HIDDEN; +HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown* parent_frame, IDirect3DRM *d3drm) DECLSPEC_HIDDEN; "IUnknown *parent_frame".
-HRESULT Direct3DRMFrame_create(REFIID riid, IUnknown *parent, IUnknown **out) +HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown* parent_frame, IDirect3DRM *d3drm) Like above.
{ struct d3drm_frame *object; - HRESULT hr; + HRESULT hr = D3DRM_OK;
- TRACE("riid %s, parent %p, out %p.\n", debugstr_guid(riid), parent, out); + TRACE("out %p, parent_frame %p, d3drm %p.\n", frame, parent_frame, d3drm); "frame" instead of "out".
+ if (parent_frame) { IDirect3DRMFrame3 *p;
- hr = IDirect3DRMFrame_QueryInterface(parent, &IID_IDirect3DRMFrame3, (void**)&p); + hr = IDirect3DRMFrame_QueryInterface(parent_frame, &IID_IDirect3DRMFrame3, (void**)&p); if (hr != S_OK) "if (FAILED(hr = ...))" and "(void **)".