On 01/09/2012 09:42 PM, André Hentschel wrote: > Am 08.01.2012 20:02, schrieb Nikolay Sivov: >> On 1/8/2012 20:47, André Hentschel wrote: >>> --- >>> dlls/d3drm/frame.c | 11 +++++++---- >>> dlls/d3drm/tests/d3drm.c | 16 ++++++++-------- >>> 2 files changed, 15 insertions(+), 12 deletions(-) >>> >>> diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c >>> index 212f7dd..b72700c 100644 >>> --- a/dlls/d3drm/frame.c >>> +++ b/dlls/d3drm/frame.c >>> @@ -33,6 +33,7 @@ typedef struct { >>> IDirect3DRMFrame2 IDirect3DRMFrame2_iface; >>> IDirect3DRMFrame3 IDirect3DRMFrame3_iface; >>> LONG ref; >>> + LPVOID parent; >>> } IDirect3DRMFrameImpl; >> Parent is store as another frame interface pointer, right? Why void* here? > > Didn't read that at first time. I wanted to access parent as > LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 and maybe LPDIRECT3DRMFRAME3 Store the object in the parent pointer and then you can easily return a pointer to all interfaces implemented by the parent in a type safe manner: IDirect3DRMFrameImpl *parent;
bye michael