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 |
|
---|
61 |
|
---|
62 | #endif /* WINE_DSHOW_SEEKPASS_H */
|
---|