Fixed some bugs.
[wine/multimedia.git] / dlls / quartz / seekpass.h
blobaf7fc3391bb2975047e40c270397984d8ea19f72
1 /*
2 * Copyright (C) Hidenori TAKESHIMA
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.
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.
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
19 #ifndef WINE_DSHOW_SEEKPASS_H
20 #define WINE_DSHOW_SEEKPASS_H
23 implements CLSID_SeekingPassThru.
25 - At least, the following interfaces should be implemented:
27 IUnknown
28 + ISeekingPassThru
32 #include "iunk.h"
35 /****************************************************************************/
37 typedef struct CPassThruImpl
39 struct { ICOM_VFIELD(IMediaPosition); } mpos;
40 struct { ICOM_VFIELD(IMediaSeeking); } mseek;
42 IUnknown* punk;
43 IPin* pPin;
44 } CPassThruImpl;
46 #define CPassThruImpl_THIS(iface,member) CPassThruImpl* This = ((CPassThruImpl*)(((char*)iface)-offsetof(CPassThruImpl,member)))
48 HRESULT CPassThruImpl_InitIMediaPosition( CPassThruImpl* pImpl );
49 void CPassThruImpl_UninitIMediaPosition( CPassThruImpl* pImpl );
50 HRESULT CPassThruImpl_InitIMediaSeeking( CPassThruImpl* pImpl );
51 void CPassThruImpl_UninitIMediaSeeking( CPassThruImpl* pImpl );
53 HRESULT CPassThruImpl_QueryPosPass(
54 CPassThruImpl* pImpl, IMediaPosition** ppPosition );
55 HRESULT CPassThruImpl_QuerySeekPass(
56 CPassThruImpl* pImpl, IMediaSeeking** ppSeeking );
58 /****************************************************************************/
60 typedef struct QUARTZ_ISeekingPassThruImpl
62 ICOM_VFIELD(ISeekingPassThru);
63 } QUARTZ_ISeekingPassThruImpl;
65 typedef struct CSeekingPassThru
67 QUARTZ_IUnkImpl unk;
68 QUARTZ_ISeekingPassThruImpl seekpass;
70 /* ISeekingPassThru fields. */
71 CRITICAL_SECTION cs;
72 CPassThruImpl passthru;
73 } CSeekingPassThru;
75 #define CSeekingPassThru_THIS(iface,member) CSeekingPassThru* This = ((CSeekingPassThru*)(((char*)iface)-offsetof(CSeekingPassThru,member)))
77 HRESULT QUARTZ_CreateSeekingPassThru(IUnknown* punkOuter,void** ppobj);
78 HRESULT QUARTZ_CreateSeekingPassThruInternal(IUnknown* punkOuter,CSeekingPassThru** ppobj,BOOL bRendering,IPin* pPin);
81 #endif /* WINE_DSHOW_SEEKPASS_H */