Add missing cast.
[wine] / dlls / quartz / seekpass.h
1 #ifndef WINE_DSHOW_SEEKPASS_H
2 #define WINE_DSHOW_SEEKPASS_H
3
4 /*
5                 implements CLSID_SeekingPassThru.
6
7         - At least, the following interfaces should be implemented:
8
9         IUnknown
10                 + ISeekingPassThru
11
12 */
13
14 #include "iunk.h"
15
16
17 /****************************************************************************/
18
19 typedef struct CPassThruImpl
20 {
21         struct { ICOM_VFIELD(IMediaPosition); } mpos;
22         struct { ICOM_VFIELD(IMediaSeeking); } mseek;
23
24         IUnknown* punk;
25         IPin* pPin;
26 } CPassThruImpl;
27
28 #define CPassThruImpl_THIS(iface,member)                CPassThruImpl*  This = ((CPassThruImpl*)(((char*)iface)-offsetof(CPassThruImpl,member)))
29
30 HRESULT CPassThruImpl_InitIMediaPosition( CPassThruImpl* pImpl );
31 void CPassThruImpl_UninitIMediaPosition( CPassThruImpl* pImpl );
32 HRESULT CPassThruImpl_InitIMediaSeeking( CPassThruImpl* pImpl );
33 void CPassThruImpl_UninitIMediaSeeking( CPassThruImpl* pImpl );
34
35 HRESULT CPassThruImpl_QueryPosPass(
36         CPassThruImpl* pImpl, IMediaPosition** ppPosition );
37 HRESULT CPassThruImpl_QuerySeekPass(
38         CPassThruImpl* pImpl, IMediaSeeking** ppSeeking );
39
40 /****************************************************************************/
41
42 typedef struct QUARTZ_ISeekingPassThruImpl
43 {
44         ICOM_VFIELD(ISeekingPassThru);
45 } QUARTZ_ISeekingPassThruImpl;
46
47 typedef struct CSeekingPassThru
48 {
49         QUARTZ_IUnkImpl unk;
50         QUARTZ_ISeekingPassThruImpl     seekpass;
51
52         /* ISeekingPassThru fields. */
53         CRITICAL_SECTION        cs;
54         CPassThruImpl   passthru;
55 } CSeekingPassThru;
56
57 #define CSeekingPassThru_THIS(iface,member)             CSeekingPassThru*       This = ((CSeekingPassThru*)(((char*)iface)-offsetof(CSeekingPassThru,member)))
58
59 HRESULT QUARTZ_CreateSeekingPassThru(IUnknown* punkOuter,void** ppobj);
60 HRESULT QUARTZ_CreateSeekingPassThruInternal(IUnknown* punkOuter,CSeekingPassThru** ppobj,BOOL bRendering,IPin* pPin);
61
62
63 #endif  /* WINE_DSHOW_SEEKPASS_H */