2 * Implements CLSID_VideoRenderer.
4 * hidenori@a2.ctktv.ne.jp
7 #ifndef WINE_DSHOW_VIDREN_H
8 #define WINE_DSHOW_VIDREN_H
14 typedef struct CVideoRendererImpl CVideoRendererImpl;
15 typedef struct CVideoRendererPinImpl CVideoRendererPinImpl;
18 typedef struct VidRen_IBasicVideo
20 ICOM_VFIELD(IBasicVideo2);
23 typedef struct VidRen_IVideoWindow
25 ICOM_VFIELD(IVideoWindow);
26 } VidRen_IVideoWindow;
28 struct CVideoRendererImpl
31 CBaseFilterImpl basefilter;
32 VidRen_IBasicVideo basvid;
33 VidRen_IVideoWindow vidwin;
34 QUARTZ_IFDelegation qiext;
36 CSeekingPassThru* pSeekPass;
37 CVideoRendererPinImpl* pPin;
45 CRITICAL_SECTION m_csSample;
46 BOOL m_bSampleIsValid;
51 struct CVideoRendererPinImpl
55 CMemInputPinBaseImpl meminput;
57 CVideoRendererImpl* pRender;
62 #define CVideoRendererImpl_THIS(iface,member) CVideoRendererImpl* This = ((CVideoRendererImpl*)(((char*)iface)-offsetof(CVideoRendererImpl,member)))
63 #define CVideoRendererPinImpl_THIS(iface,member) CVideoRendererPinImpl* This = ((CVideoRendererPinImpl*)(((char*)iface)-offsetof(CVideoRendererPinImpl,member)))
65 HRESULT CVideoRendererImpl_InitIBasicVideo2( CVideoRendererImpl* This );
66 void CVideoRendererImpl_UninitIBasicVideo2( CVideoRendererImpl* This );
67 HRESULT CVideoRendererImpl_InitIVideoWindow( CVideoRendererImpl* This );
68 void CVideoRendererImpl_UninitIVideoWindow( CVideoRendererImpl* This );
70 HRESULT QUARTZ_CreateVideoRenderer(IUnknown* punkOuter,void** ppobj);
71 HRESULT QUARTZ_CreateVideoRendererPin(
72 CVideoRendererImpl* pFilter,
73 CRITICAL_SECTION* pcsPin,
74 CVideoRendererPinImpl** ppPin);
77 #endif /* WINE_DSHOW_VIDREN_H */