Added some stubs.
[wine] / dlls / quartz / fgraph.h
1 #ifndef WINE_DSHOW_FGRAPH_H
2 #define WINE_DSHOW_FGRAPH_H
3
4 /*
5                 implements CLSID_FilterGraph.
6
7         - At least, the following interfaces should be implemented:
8
9         IUnknown
10                 + IFilterGraph - IGraphBuilder - IFilterGraph2
11                 + IDispatch - IMediaControl
12                 + IDispatch - IMediaEvent - IMediaEventEx
13                 + IDispatch - IMediaPosition
14                 + IMediaSeeking
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)
19                 + IDispatch
20                 + IMediaEventSink
21                 + IGraphVerson
22  */
23
24 #include "iunk.h"
25
26 typedef struct FG_IFilterGraph2Impl
27 {
28         ICOM_VFIELD(IFilterGraph2);
29 } FG_IFilterGraph2Impl;
30
31 typedef struct FG_IMediaControlImpl
32 {
33         ICOM_VFIELD(IMediaControl);
34 } FG_IMediaControlImpl;
35
36 typedef struct FG_IMediaEventImpl
37 {
38         ICOM_VFIELD(IMediaEventEx);
39 } FG_IMediaEventImpl;
40
41 typedef struct FG_IMediaPositionImpl
42 {
43         ICOM_VFIELD(IMediaPosition);
44 } FG_IMediaPositionImpl;
45
46 typedef struct FG_IMediaSeekingImpl
47 {
48         ICOM_VFIELD(IMediaSeeking);
49 } FG_IMediaSeekingImpl;
50
51 typedef struct FG_IBasicVideoImpl
52 {
53         ICOM_VFIELD(IBasicVideo2);
54 } FG_IBasicVideoImpl;
55
56 typedef struct FG_IBasicAudioImpl
57 {
58         ICOM_VFIELD(IBasicAudio);
59 } FG_IBasicAudioImpl;
60
61 typedef struct FG_IVideoWindowImpl
62 {
63         ICOM_VFIELD(IVideoWindow);
64 } FG_IVideoWindowImpl;
65
66
67 typedef struct CFilterGraph
68 {
69         QUARTZ_IUnkImpl unk;
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;
78
79         /* IFilterGraph2 fields. */
80         /* IMediaControl fields. */
81         /* IMediaEvent fields. */
82         /* IMediaPosition fields. */
83         /* IMediaSeeking fields. */
84         /* IBasicVideo2 fields. */
85         /* IBasicAudio fields. */
86         /* IVideoWindow fields. */
87 } CFilterGraph;
88
89 #define CFilterGraph_THIS(iface,member)         CFilterGraph*   This = ((CFilterGraph*)(((char*)iface)-offsetof(CFilterGraph,member)))
90
91 HRESULT QUARTZ_CreateFilterGraph(IUnknown* punkOuter,void** ppobj);
92
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 );
109
110
111 #endif  /* WINE_DSHOW_FGRAPH_H */