Added some stubs.
[wine] / dlls / quartz / seekpass.h
1 /*
2  * Copyright (C) Hidenori TAKESHIMA
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef WINE_DSHOW_SEEKPASS_H
20 #define WINE_DSHOW_SEEKPASS_H
21
22 /*
23                 implements CLSID_SeekingPassThru.
24
25         - At least, the following interfaces should be implemented:
26
27         IUnknown
28                 + ISeekingPassThru
29
30 */
31
32 #include "iunk.h"
33
34
35 /****************************************************************************/
36
37 typedef struct CPassThruImpl
38 {
39         struct { ICOM_VFIELD(IMediaPosition); } mpos;
40         struct { ICOM_VFIELD(IMediaSeeking); } mseek;
41
42         IUnknown* punk;
43         IPin* pPin;
44 } CPassThruImpl;
45
46 #define CPassThruImpl_THIS(iface,member)                CPassThruImpl*  This = ((CPassThruImpl*)(((char*)iface)-offsetof(CPassThruImpl,member)))
47
48 HRESULT CPassThruImpl_InitIMediaPosition( CPassThruImpl* pImpl );
49 void CPassThruImpl_UninitIMediaPosition( CPassThruImpl* pImpl );
50 HRESULT CPassThruImpl_InitIMediaSeeking( CPassThruImpl* pImpl );
51 void CPassThruImpl_UninitIMediaSeeking( CPassThruImpl* pImpl );
52
53 HRESULT CPassThruImpl_QueryPosPass(
54         CPassThruImpl* pImpl, IMediaPosition** ppPosition );
55 HRESULT CPassThruImpl_QuerySeekPass(
56         CPassThruImpl* pImpl, IMediaSeeking** ppSeeking );
57
58 /****************************************************************************/
59
60 typedef struct QUARTZ_ISeekingPassThruImpl
61 {
62         ICOM_VFIELD(ISeekingPassThru);
63 } QUARTZ_ISeekingPassThruImpl;
64
65 typedef struct CSeekingPassThru
66 {
67         QUARTZ_IUnkImpl unk;
68         QUARTZ_ISeekingPassThruImpl     seekpass;
69
70         /* ISeekingPassThru fields. */
71         CRITICAL_SECTION        cs;
72         CPassThruImpl   passthru;
73 } CSeekingPassThru;
74
75 #define CSeekingPassThru_THIS(iface,member)             CSeekingPassThru*       This = ((CSeekingPassThru*)(((char*)iface)-offsetof(CSeekingPassThru,member)))
76
77 HRESULT QUARTZ_CreateSeekingPassThru(IUnknown* punkOuter,void** ppobj);
78 HRESULT QUARTZ_CreateSeekingPassThruInternal(IUnknown* punkOuter,CSeekingPassThru** ppobj,BOOL bRendering,IPin* pPin);
79
80
81 #endif  /* WINE_DSHOW_SEEKPASS_H */