|  | #ifndef WINE_DSHOW_SEEKPASS_H | 
|  | #define WINE_DSHOW_SEEKPASS_H | 
|  |  | 
|  | /* | 
|  | implements CLSID_SeekingPassThru. | 
|  |  | 
|  | - At least, the following interfaces should be implemented: | 
|  |  | 
|  | IUnknown | 
|  | + ISeekingPassThru | 
|  |  | 
|  | */ | 
|  |  | 
|  | #include "iunk.h" | 
|  |  | 
|  |  | 
|  | /****************************************************************************/ | 
|  |  | 
|  | typedef struct CPassThruImpl | 
|  | { | 
|  | struct { ICOM_VFIELD(IMediaPosition); } mpos; | 
|  | struct { ICOM_VFIELD(IMediaSeeking); } mseek; | 
|  |  | 
|  | IUnknown* punk; | 
|  | IPin* pPin; | 
|  | } CPassThruImpl; | 
|  |  | 
|  | #define	CPassThruImpl_THIS(iface,member)		CPassThruImpl*	This = ((CPassThruImpl*)(((char*)iface)-offsetof(CPassThruImpl,member))) | 
|  |  | 
|  | HRESULT CPassThruImpl_InitIMediaPosition( CPassThruImpl* pImpl ); | 
|  | void CPassThruImpl_UninitIMediaPosition( CPassThruImpl* pImpl ); | 
|  | HRESULT CPassThruImpl_InitIMediaSeeking( CPassThruImpl* pImpl ); | 
|  | void CPassThruImpl_UninitIMediaSeeking( CPassThruImpl* pImpl ); | 
|  |  | 
|  | HRESULT CPassThruImpl_QueryPosPass( | 
|  | CPassThruImpl* pImpl, IMediaPosition** ppPosition ); | 
|  | HRESULT CPassThruImpl_QuerySeekPass( | 
|  | CPassThruImpl* pImpl, IMediaSeeking** ppSeeking ); | 
|  |  | 
|  | /****************************************************************************/ | 
|  |  | 
|  | typedef struct QUARTZ_ISeekingPassThruImpl | 
|  | { | 
|  | ICOM_VFIELD(ISeekingPassThru); | 
|  | } QUARTZ_ISeekingPassThruImpl; | 
|  |  | 
|  | typedef struct CSeekingPassThru | 
|  | { | 
|  | QUARTZ_IUnkImpl	unk; | 
|  | QUARTZ_ISeekingPassThruImpl	seekpass; | 
|  |  | 
|  | /* ISeekingPassThru fields. */ | 
|  | CRITICAL_SECTION	cs; | 
|  | CPassThruImpl	passthru; | 
|  | } CSeekingPassThru; | 
|  |  | 
|  | #define	CSeekingPassThru_THIS(iface,member)		CSeekingPassThru*	This = ((CSeekingPassThru*)(((char*)iface)-offsetof(CSeekingPassThru,member))) | 
|  |  | 
|  | HRESULT QUARTZ_CreateSeekingPassThru(IUnknown* punkOuter,void** ppobj); | 
|  | HRESULT QUARTZ_CreateSeekingPassThruInternal(IUnknown* punkOuter,CSeekingPassThru** ppobj,BOOL bRendering,IPin* pPin); | 
|  |  | 
|  |  | 
|  | #endif  /* WINE_DSHOW_SEEKPASS_H */ |