Don't return from overlapped ReadFile on EAGAIN and other non-fatal
[wine/gsoc_dplay.git] / dlls / quartz / vidren.h
bloba56c530b06e06641da48f39ac59088c04d3545eb
1 /*
2 * Implements CLSID_VideoRenderer.
4 * hidenori@a2.ctktv.ne.jp
5 */
7 #ifndef WINE_DSHOW_VIDREN_H
8 #define WINE_DSHOW_VIDREN_H
10 #include "iunk.h"
11 #include "basefilt.h"
12 #include "seekpass.h"
14 typedef struct CVideoRendererImpl CVideoRendererImpl;
15 typedef struct CVideoRendererPinImpl CVideoRendererPinImpl;
18 typedef struct VidRen_IBasicVideo
20 ICOM_VFIELD(IBasicVideo2);
21 } VidRen_IBasicVideo;
23 typedef struct VidRen_IVideoWindow
25 ICOM_VFIELD(IVideoWindow);
26 } VidRen_IVideoWindow;
28 struct CVideoRendererImpl
30 QUARTZ_IUnkImpl unk;
31 CBaseFilterImpl basefilter;
32 VidRen_IBasicVideo basvid;
33 VidRen_IVideoWindow vidwin;
34 QUARTZ_IFDelegation qiext;
36 CSeekingPassThru* pSeekPass;
37 CVideoRendererPinImpl* pPin;
39 BOOL m_fInFlush;
41 /* for rendering */
42 HANDLE m_hEventInit;
43 HANDLE m_hThread;
44 HWND m_hwnd;
45 CRITICAL_SECTION m_csSample;
46 BOOL m_bSampleIsValid;
47 BYTE* m_pSampleData;
48 DWORD m_cbSampleData;
51 struct CVideoRendererPinImpl
53 QUARTZ_IUnkImpl unk;
54 CPinBaseImpl pin;
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 */