1 #ifndef WINE_DSHOW_FGRAPH_H
2 #define WINE_DSHOW_FGRAPH_H
5 implements CLSID_FilterGraph.
7 - At least, the following interfaces should be implemented:
10 + IFilterGraph - IGraphBuilder - IFilterGraph2
11 + IDispatch - IMediaControl
12 + IDispatch - IMediaEvent - IMediaEventEx
13 + IDispatch - IMediaPosition
15 + IDispatch - IBasicVideo (pass to a renderer)
16 + IDispatch - IBasicAudio (pass to a renderer)
17 + IDispatch - IVideoWindow (pass to a renderer)
18 (following interfaces are not implemented)
26 typedef struct FG_IFilterGraph2Impl
28 ICOM_VFIELD(IFilterGraph2);
29 } FG_IFilterGraph2Impl;
31 typedef struct FG_IMediaControlImpl
33 ICOM_VFIELD(IMediaControl);
34 } FG_IMediaControlImpl;
36 typedef struct FG_IMediaEventImpl
38 ICOM_VFIELD(IMediaEventEx);
41 typedef struct FG_IMediaPositionImpl
43 ICOM_VFIELD(IMediaPosition);
44 } FG_IMediaPositionImpl;
46 typedef struct FG_IMediaSeekingImpl
48 ICOM_VFIELD(IMediaSeeking);
49 } FG_IMediaSeekingImpl;
51 typedef struct FG_IBasicVideoImpl
53 ICOM_VFIELD(IBasicVideo2);
56 typedef struct FG_IBasicAudioImpl
58 ICOM_VFIELD(IBasicAudio);
61 typedef struct FG_IVideoWindowImpl
63 ICOM_VFIELD(IVideoWindow);
64 } FG_IVideoWindowImpl;
67 typedef struct CFilterGraph
70 FG_IFilterGraph2Impl fgraph;
71 FG_IMediaControlImpl mediacontrol;
72 FG_IMediaEventImpl mediaevent;
73 FG_IMediaPositionImpl mediaposition;
74 FG_IMediaSeekingImpl mediaseeking;
75 FG_IBasicVideoImpl basvid;
76 FG_IBasicAudioImpl basaud;
77 FG_IVideoWindowImpl vidwin;
79 /* IFilterGraph2 fields. */
80 /* IMediaControl fields. */
81 /* IMediaEvent fields. */
82 /* IMediaPosition fields. */
83 /* IMediaSeeking fields. */
84 /* IBasicVideo2 fields. */
85 /* IBasicAudio fields. */
86 /* IVideoWindow fields. */
89 #define CFilterGraph_THIS(iface,member) CFilterGraph* This = ((CFilterGraph*)(((char*)iface)-offsetof(CFilterGraph,member)))
91 HRESULT QUARTZ_CreateFilterGraph(IUnknown* punkOuter,void** ppobj);
93 void CFilterGraph_InitIFilterGraph2( CFilterGraph* pfg );
94 void CFilterGraph_UninitIFilterGraph2( CFilterGraph* pfg );
95 void CFilterGraph_InitIMediaControl( CFilterGraph* pfg );
96 void CFilterGraph_UninitIMediaControl( CFilterGraph* pfg );
97 void CFilterGraph_InitIMediaEventEx( CFilterGraph* pfg );
98 void CFilterGraph_UninitIMediaEventEx( CFilterGraph* pfg );
99 void CFilterGraph_InitIMediaPosition( CFilterGraph* pfg );
100 void CFilterGraph_UninitIMediaPosition( CFilterGraph* pfg );
101 void CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg );
102 void CFilterGraph_UninitIMediaSeeking( CFilterGraph* pfg );
103 void CFilterGraph_InitIBasicVideo2( CFilterGraph* pfg );
104 void CFilterGraph_UninitIBasicVideo2( CFilterGraph* pfg );
105 void CFilterGraph_InitIBasicAudio( CFilterGraph* pfg );
106 void CFilterGraph_UninitIBasicAudio( CFilterGraph* pfg );
107 void CFilterGraph_InitIVideoWindow( CFilterGraph* pfg );
108 void CFilterGraph_UninitIVideoWindow( CFilterGraph* pfg );
111 #endif /* WINE_DSHOW_FGRAPH_H */