source: trunk/src/quartz/fgraph.h@ 6578

Last change on this file since 6578 was 6578, checked in by sandervl, 24 years ago

wine updates

File size: 2.4 KB
Line 
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 */
19
20#include "iunk.h"
21
22typedef struct FG_IFilterGraph2Impl
23{
24 ICOM_VFIELD(IFilterGraph2);
25} FG_IFilterGraph2Impl;
26
27typedef struct FG_IMediaControlImpl
28{
29 ICOM_VFIELD(IMediaControl);
30} FG_IMediaControlImpl;
31
32typedef struct FG_IMediaEventImpl
33{
34 ICOM_VFIELD(IMediaEventEx);
35} FG_IMediaEventImpl;
36
37typedef struct FG_IMediaPositionImpl
38{
39 ICOM_VFIELD(IMediaPosition);
40} FG_IMediaPositionImpl;
41
42typedef struct FG_IMediaSeekingImpl
43{
44 ICOM_VFIELD(IMediaSeeking);
45} FG_IMediaSeekingImpl;
46
47typedef struct FG_IBasicVideoImpl
48{
49 ICOM_VFIELD(IBasicVideo2);
50} FG_IBasicVideoImpl;
51
52typedef struct FG_IBasicAudioImpl
53{
54 ICOM_VFIELD(IBasicAudio);
55} FG_IBasicAudioImpl;
56
57typedef struct FG_IVideoWindowImpl
58{
59 ICOM_VFIELD(IVideoWindow);
60} FG_IVideoWindowImpl;
61
62
63typedef struct CFilterGraph
64{
65 QUARTZ_IUnkImpl unk;
66 FG_IFilterGraph2Impl fgraph;
67 FG_IMediaControlImpl mediacontrol;
68 FG_IMediaEventImpl mediaevent;
69 FG_IMediaPositionImpl mediaposition;
70 FG_IMediaSeekingImpl mediaseeking;
71 FG_IBasicVideoImpl basvid;
72 FG_IBasicAudioImpl basaud;
73 FG_IVideoWindowImpl vidwin;
74
75 /* IFilterGraph2 fields. */
76 /* IMediaControl fields. */
77 /* IMediaEvent fields. */
78 /* IMediaPosition fields. */
79 /* IMediaSeeking fields. */
80 /* IBasicVideo fields. */
81 /* IBasicAudio fields. */
82 /* IVideoWindow fields. */
83} CFilterGraph;
84
85#define CFilterGraph_THIS(iface,member) CFilterGraph* This = ((CFilterGraph*)(((char*)iface)-offsetof(CFilterGraph,member)))
86
87HRESULT QUARTZ_CreateFilterGraph(IUnknown* punkOuter,void** ppobj);
88
89void CFilterGraph_InitIFilterGraph2( CFilterGraph* pfg );
90void CFilterGraph_InitIMediaControl( CFilterGraph* pfg );
91void CFilterGraph_InitIMediaEventEx( CFilterGraph* pfg );
92void CFilterGraph_InitIMediaPosition( CFilterGraph* pfg );
93void CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg );
94void CFilterGraph_InitIBasicVideo2( CFilterGraph* pfg );
95void CFilterGraph_InitIBasicAudio( CFilterGraph* pfg );
96void CFilterGraph_InitIVideoWindow( CFilterGraph* pfg );
97
98
99#endif /* WINE_DSHOW_FGRAPH_H */
Note: See TracBrowser for help on using the repository browser.