2 * Implements CLSID_VideoRenderer.
4 * hidenori@a2.ctktv.ne.jp
7 #ifndef WINE_DSHOW_VIDREN_H
8 #define WINE_DSHOW_VIDREN_H
13 typedef struct CVideoRendererImpl CVideoRendererImpl;
14 typedef struct CVideoRendererPinImpl CVideoRendererPinImpl;
17 typedef struct VidRen_IBasicVideo
19 ICOM_VFIELD(IBasicVideo2);
22 typedef struct VidRen_IVideoWindow
24 ICOM_VFIELD(IVideoWindow);
25 } VidRen_IVideoWindow;
27 struct CVideoRendererImpl
30 CBaseFilterImpl basefilter;
31 VidRen_IBasicVideo basvid;
32 VidRen_IVideoWindow vidwin;
34 CVideoRendererPinImpl* pPin;
42 CRITICAL_SECTION m_csSample;
43 BOOL m_bSampleIsValid;
48 struct CVideoRendererPinImpl
52 CMemInputPinBaseImpl meminput;
54 CVideoRendererImpl* pRender;
59 #define CVideoRendererImpl_THIS(iface,member) CVideoRendererImpl* This = ((CVideoRendererImpl*)(((char*)iface)-offsetof(CVideoRendererImpl,member)))
60 #define CVideoRendererPinImpl_THIS(iface,member) CVideoRendererPinImpl* This = ((CVideoRendererPinImpl*)(((char*)iface)-offsetof(CVideoRendererPinImpl,member)))
62 HRESULT CVideoRendererImpl_InitIBasicVideo2( CVideoRendererImpl* This );
63 void CVideoRendererImpl_UninitIBasicVideo2( CVideoRendererImpl* This );
64 HRESULT CVideoRendererImpl_InitIVideoWindow( CVideoRendererImpl* This );
65 void CVideoRendererImpl_UninitIVideoWindow( CVideoRendererImpl* This );
67 HRESULT QUARTZ_CreateVideoRenderer(IUnknown* punkOuter,void** ppobj);
68 HRESULT QUARTZ_CreateVideoRendererPin(
69 CVideoRendererImpl* pFilter,
70 CRITICAL_SECTION* pcsPin,
71 CVideoRendererPinImpl** ppPin);
74 #endif /* WINE_DSHOW_VIDREN_H */