blob: 01cf987a2f19689d8c67de23c83ab08765f703b6 [file] [log] [blame]
Lionel Ulmer1fa96242003-06-13 18:06:44 +00001/*
2 * Copyright (C) 2002 Lionel Ulmer
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 __CONTROL_INCLUDED__
20#define __CONTROL_INCLUDED__
21
Lionel Ulmer1fa96242003-06-13 18:06:44 +000022typedef struct IMediaControl IMediaControl;
23typedef struct IBasicAudio IBasicAudio;
24typedef struct IBasicVideo IBasicVideo;
25typedef struct IVideoWindow IVideoWindow;
26typedef struct IMediaEvent IMediaEvent;
27typedef struct IMediaEventEx IMediaEventEx;
28
29typedef long OAFilterState;
30typedef LONG_PTR OAHWND;
31typedef LONG_PTR OAEVENT;
32
33#define INTERFACE IMediaControl
34#define IMediaControl_METHODS \
35 IDispatch_METHODS \
36 STDMETHOD(Run)(THIS) PURE; \
37 STDMETHOD(Pause)(THIS) PURE; \
38 STDMETHOD(Stop)(THIS) PURE; \
39 STDMETHOD(GetState)(THIS_ LONG msTimeout, OAFilterState * pfs) PURE; \
40 STDMETHOD(RenderFile)(THIS_ BSTR strFilename) PURE; \
41 STDMETHOD(AddSourceFilter)(THIS_ BSTR strFilename, IDispatch ** ppUnk) PURE; \
42 STDMETHOD(get_FilterCollection)(THIS_ IDispatch ** ppUnk) PURE; \
43 STDMETHOD(get_RegFilterCollection)(THIS_ IDispatch ** ppUnk) PURE; \
44 STDMETHOD(StopWhenReady)(THIS) PURE;
45ICOM_DEFINE(IMediaControl,IDispatch)
46#undef INTERFACE
47
Lionel Ulmer65519652003-06-16 01:17:10 +000048#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +000049/*** IUnknown methods ***/
50#define IMediaControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
51#define IMediaControl_AddRef(p) (p)->lpVtbl->AddRef(p)
52#define IMediaControl_Release(p) (p)->lpVtbl->Release(p)
53/*** IDispatch methods ***/
54#define IMediaControl_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
55#define IMediaControl_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
56#define IMediaControl_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
57#define IMediaControl_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
58/*** IMediaControl methods ***/
59#define IMediaControl_Run(p) (p)->lpVtbl->Run(p)
60#define IMediaControl_Pause(p) (p)->lpVtbl->Pause(p)
61#define IMediaControl_Stop(p) (p)->lpVtbl->Stop(p)
62#define IMediaControl_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
63#define IMediaControl_RenderFile(p,a) (p)->lpVtbl->RenderFile(p,a)
64#define IMediaControl_AddSourceFilter(p,a,b) (p)->lpVtbl->AddSourceFilter(p,a,b)
65#define IMediaControl_get_FilterCollection(p,a) (p)->lpVtbl->get_FilterCollection(p,a)
66#define IMediaControl_get_RegFilterCollection(p,a) (p)->lpVtbl->get_RegFilterCollection(p,a)
67#define IMediaControl_StopWhenReady(p) (p)->lpVtbl->StopWhenReady(p)
68#endif
69
70#define INTERFACE IBasicAudio
71#define IBasicAudio_METHODS \
72 IDispatch_METHODS \
73 STDMETHOD(put_Volume)(THIS_ long lVolume) PURE; \
74 STDMETHOD(get_Volume)(THIS_ long * plVolume) PURE; \
75 STDMETHOD(put_Balance)(THIS_ long lBalance) PURE; \
76 STDMETHOD(get_Balance)(THIS_ long * plBalance) PURE;
77ICOM_DEFINE(IBasicAudio,IDispatch)
78#undef INTERFACE
79
Lionel Ulmer65519652003-06-16 01:17:10 +000080#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +000081/*** IUnknown methods ***/
82#define IBasicAudio_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
83#define IBasicAudio_AddRef(p) (p)->lpVtbl->AddRef(p)
84#define IBasicAudio_Release(p) (p)->lpVtbl->Release(p)
85/*** IDispatch methods ***/
86#define IBasicAudio_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
87#define IBasicAudio_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
88#define IBasicAudio_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
89#define IBasicAudio_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
90/*** IBasicAudio methods ***/
91#define IBasicAudio_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a)
92#define IBasicAudio_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
93#define IBasicAudio_get_Balance(p,a) (p)->lpVtbl->get_Balance(p,a)
94#define IBasicAudio_put_Balance(p,a) (p)->lpVtbl->put_Balance(p,a)
95#endif
96
97#define INTERFACE IBasicVideo
98#define IBasicVideo_METHODS \
99 IDispatch_METHODS \
100 STDMETHOD(get_AvgTimePerFrame)(THIS_ REFTIME * pAvgTimePerFrame) PURE; \
101 STDMETHOD(get_BitRate)(THIS_ long * pBitRate) PURE; \
102 STDMETHOD(get_BitErrorRate)(THIS_ long * pBitErrorRate) PURE; \
103 STDMETHOD(get_VideoWidth)(THIS_ long * pVideoWidth) PURE; \
104 STDMETHOD(get_VideoHeight)(THIS_ long * pVideoHeight) PURE; \
105 STDMETHOD(put_SourceLeft)(THIS_ long SourceLeft) PURE; \
106 STDMETHOD(get_SourceLeft)(THIS_ long * pSourceLeft) PURE; \
107 STDMETHOD(put_SourceWidth)(THIS_ long SourceWidth) PURE; \
108 STDMETHOD(get_SourceWidth)(THIS_ long * pSourceWidth) PURE; \
109 STDMETHOD(put_SourceTop)(THIS_ long SourceTop) PURE; \
110 STDMETHOD(get_SourceTop)(THIS_ long * pSourceTop) PURE; \
111 STDMETHOD(put_SourceHeight)(THIS_ long SourceHeight) PURE; \
112 STDMETHOD(get_SourceHeight)(THIS_ long * pSourceHeight) PURE; \
113 STDMETHOD(put_DestinationLeft)(THIS_ long DestinationLeft) PURE; \
114 STDMETHOD(get_DestinationLeft)(THIS_ long * pDestinationLeft) PURE; \
115 STDMETHOD(put_DestinationWidth)(THIS_ long DestinationWidth) PURE; \
116 STDMETHOD(get_DestinationWidth)(THIS_ long * pDestinationWidth) PURE; \
117 STDMETHOD(put_DestinationTop)(THIS_ long DestinationTop) PURE; \
118 STDMETHOD(get_DestinationTop)(THIS_ long * pDestinationTop) PURE; \
119 STDMETHOD(put_DestinationHeight)(THIS_ long DestinationHeight) PURE; \
120 STDMETHOD(get_DestinationHeight)(THIS_ long * pDestinationHeight) PURE; \
121 STDMETHOD(SetSourcePosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \
122 STDMETHOD(GetSourcePosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \
123 STDMETHOD(SetDefaultSourcePosition)(THIS) PURE; \
124 STDMETHOD(SetDestinationPosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \
125 STDMETHOD(GetDestinationPosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \
126 STDMETHOD(SetDefaultDestinationPosition)(THIS) PURE; \
127 STDMETHOD(GetVideoSize)(THIS_ long * pWidth, long * pHeight) PURE; \
128 STDMETHOD(GetVideoPaletteEntries)(THIS_ long StartIndex, long Entries, long * pRetrieved, long * pPalette) PURE; \
129 STDMETHOD(GetCurrentImage)(THIS_ long * pBufferSize, long * pDIBImage) PURE; \
130 STDMETHOD(IsUsingDefaultSource)(THIS) PURE; \
131 STDMETHOD(IsUsingDefaultDestination)(THIS) PURE;
132ICOM_DEFINE(IBasicVideo,IDispatch)
133#undef INTERFACE
134
Lionel Ulmer65519652003-06-16 01:17:10 +0000135#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +0000136/*** IUnknown methods ***/
137#define IBasicVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
138#define IBasicVideo_AddRef(p) (p)->lpVtbl->AddRef(p)
139#define IBasicVideo_Release(p) (p)->lpVtbl->Release(p)
140/*** IDispatch methods ***/
141#define IBasicVideo_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
142#define IBasicVideo_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
143#define IBasicVideo_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
144#define IBasicVideo_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
145/*** IBasicVideo methods ***/
146#define IBasicVideo_get_AvgTimePerFrame(p,a) (p)->lpVtbl->get_AvgTimePerFrame(p,a)
147#define IBasicVideo_get_BitRate(p,a) (p)->lpVtbl->get_BitRate(p,a)
148#define IBasicVideo_get_BitErrorRate(p,a) (p)->lpVtbl->get_BitErrorRate(p,a)
149#define IBasicVideo_get_VideoWidth(p,a) (p)->lpVtbl->get_VideoWidth(p,a)
150#define IBasicVideo_get_VideoHeight(p,a) (p)->lpVtbl->get_VideoHeight(p,a)
151#define IBasicVideo_put_SourceLeft(p,a) (p)->lpVtbl->put_SourceLeft(p,a)
152#define IBasicVideo_get_SourceLeft(p,a) (p)->lpVtbl->get_SourceLeft(p,a)
153#define IBasicVideo_put_SourceWidth(p,a) (p)->lpVtbl->put_SourceWidth(p,a)
154#define IBasicVideo_get_SourceWidth(p,a) (p)->lpVtbl->get_SourceWidth(p,a)
155#define IBasicVideo_put_SourceTop(p,a) (p)->lpVtbl->put_SourceTop(p,a)
156#define IBasicVideo_get_SourceTop(p,a) (p)->lpVtbl->get_SourceTop(p,a)
157#define IBasicVideo_put_SourceHeight(p,a) (p)->lpVtbl->put_SourceHeight(p,a)
158#define IBasicVideo_get_SourceHeight(p,a) (p)->lpVtbl->get_SourceHeight(p,a)
159#define IBasicVideo_put_DestinationLeft(p,a) (p)->lpVtbl->put_DestinationLeft(p,a)
160#define IBasicVideo_get_DestinationLeft(p,a) (p)->lpVtbl->get_DestinationLeft(p,a)
161#define IBasicVideo_put_DestinationWidth(p,a) (p)->lpVtbl->put_DestinationWidth(p,a)
162#define IBasicVideo_get_DestinationWidth(p,a) (p)->lpVtbl->get_DestinationWidth(p,a)
163#define IBasicVideo_put_DestinationTop(p,a) (p)->lpVtbl->put_DestinationTop(p,a)
164#define IBasicVideo_get_DestinationTop(p,a) (p)->lpVtbl->get_DestinationTop(p,a)
165#define IBasicVideo_put_DestinationHeight(p,a) (p)->lpVtbl->put_DestinationHeight(p,a)
166#define IBasicVideo_get_DestinationHeight(p,a) (p)->lpVtbl->get_DestinationHeight(p,a)
167#define IBasicVideo_SetSourcePosition(p,a,b,c,d) (p)->lpVtbl->SetSourcePosition(p,a,b,c,d)
168#define IBasicVideo_GetSourcePosition(p,a,b,c,d) (p)->lpVtbl->GetSourcePosition(p,a,b,c,d)
169#define IBasicVideo_SetDefaultSourcePosition(p) (p)->lpVtbl->SetDefaultSourcePosition(p)
170#define IBasicVideo_SetDestinationPosition(p,a,b,c,d) (p)->lpVtbl->SetDestinationPosition(p,a,b,c,d)
171#define IBasicVideo_GetDestinationPosition(p,a,b,c,d) (p)->lpVtbl->GetDestinationPosition(p,a,b,c,d)
172#define IBasicVideo_SetDefaultDestinationPosition(p) (p)->lpVtbl->SetDefaultDestinationPosition(p)
173#define IBasicVideo_GetVideoSize(p,a,b) (p)->lpVtbl->GetVideoSize(p,a,b)
174#define IBasicVideo_GetVideoPaletteEntries(p,a,b,c,d) (p)->lpVtbl->GetVideoPaletteEntries(p,a,b,c,d)
175#define IBasicVideo_GetCurrentImage(p,a,b) (p)->lpVtbl->GetCurrentImage(p,a,b)
176#define IBasicVideo_IsUsingDefaultSource(p) (p)->lpVtbl->IsUsingDefaultSource(p)
177#define IBasicVideo_IsUsingDefaultDestination(p) (p)->lpVtbl->IsUsingDefaultDestination(p)
178#endif
179
180#define INTERFACE IVideoWindow
181#define IVideoWindow_METHODS \
182 IDispatch_METHODS \
183 STDMETHOD(put_Caption)(THIS_ BSTR strCaption) PURE; \
184 STDMETHOD(get_Caption)(THIS_ BSTR * strCaption) PURE; \
185 STDMETHOD(put_WindowStyle)(THIS_ long WindowStyle) PURE; \
186 STDMETHOD(get_WindowStyle)(THIS_ long * WindowStyle) PURE; \
187 STDMETHOD(put_WindowStyleEx)(THIS_ long WindowStyleEx) PURE; \
188 STDMETHOD(get_WindowStyleEx)(THIS_ long * WindowStyleEx) PURE; \
189 STDMETHOD(put_AutoShow)(THIS_ long AutoShow) PURE; \
190 STDMETHOD(get_AutoShow)(THIS_ long * AutoShow) PURE; \
191 STDMETHOD(put_WindowState)(THIS_ long WindowState) PURE; \
192 STDMETHOD(get_WindowState)(THIS_ long * WindowState) PURE; \
193 STDMETHOD(put_BackgroundPalette)(THIS_ long BackgroundPalette) PURE; \
194 STDMETHOD(get_BackgroundPalette)(THIS_ long * pBackgroundPalette) PURE; \
195 STDMETHOD(put_Visible)(THIS_ long Visible) PURE; \
196 STDMETHOD(get_Visible)(THIS_ long * pVisible) PURE; \
197 STDMETHOD(put_Left)(THIS_ long Left) PURE; \
198 STDMETHOD(get_Left)(THIS_ long * pLeft) PURE; \
199 STDMETHOD(put_Width)(THIS_ long Width) PURE; \
200 STDMETHOD(get_Width)(THIS_ long * pWidth) PURE; \
201 STDMETHOD(put_Top)(THIS_ long Top) PURE; \
202 STDMETHOD(get_Top)(THIS_ long * pTop) PURE; \
203 STDMETHOD(put_Height)(THIS_ long Height) PURE; \
204 STDMETHOD(get_Height)(THIS_ long * pHeight) PURE; \
205 STDMETHOD(put_Owner)(THIS_ OAHWND Owner) PURE; \
206 STDMETHOD(get_Owner)(THIS_ OAHWND * Owner) PURE; \
207 STDMETHOD(put_MessageDrain)(THIS_ OAHWND Drain) PURE; \
208 STDMETHOD(get_MessageDrain)(THIS_ OAHWND * Drain) PURE; \
209 STDMETHOD(get_BorderColor)(THIS_ long * Color) PURE; \
210 STDMETHOD(put_BorderColor)(THIS_ long Color) PURE; \
211 STDMETHOD(get_FullScreenMode)(THIS_ long * FullScreenMode) PURE; \
212 STDMETHOD(put_FullScreenMode)(THIS_ long FullScreenMode) PURE; \
213 STDMETHOD(SetWindowForeground)(THIS_ long Focus) PURE; \
214 STDMETHOD(NotifyOwnerMessage)(THIS_ OAHWND hwnd, long uMsg, LONG_PTR wParam, LONG_PTR lParam) PURE; \
215 STDMETHOD(SetWindowPosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \
216 STDMETHOD(GetWindowPosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \
217 STDMETHOD(GetMinIdealImageSize)(THIS_ long * pWidth, long * pHeight) PURE; \
218 STDMETHOD(GetMaxIdealImageSize)(THIS_ long * pWidth, long * pHeight) PURE; \
219 STDMETHOD(GetRestorePosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \
220 STDMETHOD(HideCursor)(THIS_ long HideCursor) PURE; \
221 STDMETHOD(IsCursorHidden)(THIS_ long * CursorHidden) PURE;
222ICOM_DEFINE(IVideoWindow,IDispatch)
223#undef INTERFACE
224
Lionel Ulmer65519652003-06-16 01:17:10 +0000225#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +0000226/*** IUnknown methods ***/
227#define IVideoWindow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
228#define IVideoWindow_AddRef(p) (p)->lpVtbl->AddRef(p)
229#define IVideoWindow_Release(p) (p)->lpVtbl->Release(p)
230/*** IDispatch methods ***/
231#define IVideoWindow_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
232#define IVideoWindow_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
233#define IVideoWindow_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
234#define IVideoWindow_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
235/*** IVideoWindow methods ***/
236#define IVideoWindow_put_Caption(p,a) (p)->lpVtbl->put_Caption(p,a)
237#define IVideoWindow_get_Caption(p,a) (p)->lpVtbl->get_Caption(p,a)
238#define IVideoWindow_put_WindowStyle(p,a) (p)->lpVtbl->put_WindowStyle(p,a)
239#define IVideoWindow_get_WindowStyle(p,a) (p)->lpVtbl->get_WindowStyle(p,a)
240#define IVideoWindow_put_WindowStyleEx(p,a) (p)->lpVtbl->put_WindowStyleEx(p,a)
241#define IVideoWindow_get_WindowStyleEx(p,a) (p)->lpVtbl->get_WindowStyleEx(p,a)
242#define IVideoWindow_put_AutoShow(p,a) (p)->lpVtbl->put_AutoShow(p,a)
243#define IVideoWindow_get_AutoShow(p,a) (p)->lpVtbl->get_AutoShow(p,a)
244#define IVideoWindow_put_WindowState(p,a) (p)->lpVtbl->put_WindowState(p,a)
245#define IVideoWindow_get_WindowState(p,a) (p)->lpVtbl->get_WindowState(p,a)
246#define IVideoWindow_put_BackgroundPalette(p,a) (p)->lpVtbl->put_BackgroundPalette(p,a)
247#define IVideoWindow_get_BackgroundPalette(p,a) (p)->lpVtbl->get_BackgroundPalette(p,a)
248#define IVideoWindow_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
249#define IVideoWindow_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
250#define IVideoWindow_put_Left(p,a) (p)->lpVtbl->put_Left(p,a)
251#define IVideoWindow_get_Left(p,a) (p)->lpVtbl->get_Left(p,a)
252#define IVideoWindow_put_Width(p,a) (p)->lpVtbl->put_Width(p,a)
253#define IVideoWindow_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
254#define IVideoWindow_put_Top(p,a) (p)->lpVtbl->put_Top(p,a)
255#define IVideoWindow_get_Top(p,a) (p)->lpVtbl->get_Top(p,a)
256#define IVideoWindow_put_Height(p,a) (p)->lpVtbl->put_Height(p,a)
257#define IVideoWindow_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
258#define IVideoWindow_put_Owner(p,a) (p)->lpVtbl->put_Owner(p,a)
259#define IVideoWindow_get_Owner(p,a) (p)->lpVtbl->get_Owner(p,a)
260#define IVideoWindow_put_MessageDrain(p,a) (p)->lpVtbl->put_MessageDrain(p,a)
261#define IVideoWindow_get_MessageDrain(p,a) (p)->lpVtbl->get_MessageDrain(p,a)
262#define IVideoWindow_get_BorderColor(p,a) (p)->lpVtbl->get_BorderColor(p,a)
263#define IVideoWindow_put_BorderColor(p,a) (p)->lpVtbl->put_BorderColor(p,a)
264#define IVideoWindow_get_FullScreenMode(p,a) (p)->lpVtbl->get_FullScreenMode(p,a)
265#define IVideoWindow_put_FullScreenMode(p,a) (p)->lpVtbl->put_FullScreenMode(p,a)
266#define IVideoWindow_SetWindowForeground(p,a) (p)->lpVtbl->SetWindowForeground(p,a)
267#define IVideoWindow_NotifyOwnerMessage(p,a,b,c,d) (p)->lpVtbl->NotifyOwnerMessage(p,a,b,c,d)
268#define IVideoWindow_SetWindowPosition(p,a,b,c,d) (p)->lpVtbl->SetWindowPosition(p,a,b,c,d)
269#define IVideoWindow_GetWindowPosition(p,a,b,c,d) (p)->lpVtbl->GetWindowPosition(p,a,b,c,d)
270#define IVideoWindow_GetMinIdealImageSize(p,a,b) (p)->lpVtbl->GetMinIdealImageSize(p,a,b)
271#define IVideoWindow_GetMaxIdealImageSize(p,a,b) (p)->lpVtbl->GetMaxIdealImageSize(p,a,b)
272#define IVideoWindow_GetRestorePosition(p,a,b,c,d) (p)->lpVtbl->GetRestorePosition(p,a,b,c,d)
273#define IVideoWindow_HideCursor(p,a) (p)->lpVtbl->HideCursor(p,a)
274#define IVideoWindow_IsCursorHidden(p,a) (p)->lpVtbl->IsCursorHidden(p,a)
275#endif
276
277#define INTERFACE IMediaEvent
278#define IMediaEvent_METHODS \
279 IDispatch_METHODS \
280 STDMETHOD(GetEventHandle)(THIS_ OAEVENT * hEvent) PURE; \
281 STDMETHOD(GetEvent)(THIS_ long * lEventCode, LONG_PTR * lParam1, LONG_PTR * lParam2, long msTimeout) PURE; \
282 STDMETHOD(WaitForCompletion)(THIS_ long msTimeout, long * pEvCode) PURE; \
283 STDMETHOD(CancelDefaultHandling)(THIS_ long lEvCode) PURE; \
284 STDMETHOD(RestoreDefaultHandling)(THIS_ long lEvCode) PURE; \
285 STDMETHOD(FreeEventParams)(THIS_ long lEvCode, LONG_PTR lParam1, LONG_PTR lParam2) PURE;
286ICOM_DEFINE(IMediaEvent,IDispatch)
287#undef INTERFACE
288
Lionel Ulmer65519652003-06-16 01:17:10 +0000289#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +0000290/*** IUnknown methods ***/
291#define IMediaEvent_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
292#define IMediaEvent_AddRef(p) (p)->lpVtbl->AddRef(p)
293#define IMediaEvent_Release(p) (p)->lpVtbl->Release(p)
294/*** IDispatch methods ***/
295#define IMediaEvent_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
296#define IMediaEvent_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
297#define IMediaEvent_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
298#define IMediaEvent_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
299/*** IMediaEvent methods ***/
300#define IMediaEvent_GetEventHandle(p,a) (p)->lpVtbl->GetEventHandle(p,a)
301#define IMediaEvent_GetEvent(p,a,b,c,d) (p)->lpVtbl->GetEvent(p,a,b,c,d)
302#define IMediaEvent_WaitForCompletion(p,a,b) (p)->lpVtbl->WaitForCompletion(p,a,b)
303#define IMediaEvent_CancelDefaultHandling(p,a) (p)->lpVtbl->CancelDefaultHandling(p,a)
304#define IMediaEvent_RestoreDefaultHandling(p,a) (p)->lpVtbl->RestoreDefaultHandling(p,a)
305#define IMediaEvent_FreeEventParams(p,a,b,c) (p)->lpVtbl->FreeEventParams(p,a,b,c)
306#endif
307
308#define INTERFACE IMediaEventEx
309#define IMediaEventEx_METHODS \
310 IMediaEvent_METHODS \
311 STDMETHOD(SetNotifyWindow)(THIS_ OAHWND hwnd, long lMsg, LONG_PTR lInstanceData) PURE; \
312 STDMETHOD(SetNotifyFlags)(THIS_ long lNoNotifyFlags) PURE; \
313 STDMETHOD(GetNotifyFlags)(THIS_ long * lplNoNotifyFlags) PURE;
314ICOM_DEFINE(IMediaEventEx,IMediaEvent)
315#undef INTERFACE
316
Lionel Ulmer65519652003-06-16 01:17:10 +0000317#ifdef COBJMACROS
Lionel Ulmer1fa96242003-06-13 18:06:44 +0000318/*** IUnknown methods ***/
319#define IMediaEventEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
320#define IMediaEventEx_AddRef(p) (p)->lpVtbl->AddRef(p)
321#define IMediaEventEx_Release(p) (p)->lpVtbl->Release(p)
322/*** IDispatch methods ***/
323#define IMediaEventEx_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
324#define IMediaEventEx_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
325#define IMediaEventEx_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
326#define IMediaEventEx_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
327/*** IMediaEvent methods ***/
328#define IMediaEventEx_GetEventHandle(p,a) (p)->lpVtbl->GetEventHandle(p,a)
329#define IMediaEventEx_GetEvent(p,a,b,c,d) (p)->lpVtbl->GetEvent(p,a,b,c,d)
330#define IMediaEventEx_WaitForCompletion(p,a,b) (p)->lpVtbl->WaitForCompletion(p,a,b)
331#define IMediaEventEx_CancelDefaultHandling(p,a) (p)->lpVtbl->CancelDefaultHandling(p,a)
332#define IMediaEventEx_RestoreDefaultHandling(p,a) (p)->lpVtbl->RestoreDefaultHandling(p,a)
333#define IMediaEventEx_FreeEventParams(p,a,b,c) (p)->lpVtbl->FreeEventParams(p,a,b,c)
334/*** IMediaEventEx methods ***/
335#define IMediaEventEx_SetNotifyWindow(p,a,b,c) (p)->lpVtbl->SetNotifyWindow(p,a,b,c)
336#define IMediaEventEx_SetNotifyFlags(p,a) (p)->lpVtbl->SetNotifyFlags(p,a)
337#define IMediaEventEx_GetNotifyFlags(p,a) (p)->lpVtbl->GetNotifyFlags(p,a)
338#endif
339
340#endif /* __CONTROL_INCLUDED__ */