Fix typo in RBS_UNCHECKEDHOT (spotted by Jan Schweizer).
[wine] / include / amvideo.h
1 /*** Autogenerated by WIDL 0.1 from amvideo.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_AMVIDEO_H
6 #define __WIDL_AMVIDEO_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <objidl.h>
11 #if 0
12 typedef void *LPDIRECTDRAW;
13
14 typedef void DDSURFACEDESC, DDCAPS;
15
16 typedef DWORD RGBQUAD;
17
18 typedef LONGLONG REFERENCE_TIME;
19
20 typedef struct {
21     DWORD biSize;
22     LONG biWidth;
23     LONG biHeight;
24     WORD biPlanes;
25     WORD biBitCount;
26     DWORD biCompression;
27     DWORD biSizeImage;
28     LONG biXPelsPerMeter;
29     LONG biYPelsPerMeter;
30     DWORD biClrUsed;
31     DWORD biClrImportant;
32 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
33
34 #endif
35 #include <ddraw.h>
36 #define AMDDS_NONE 0x00
37 #define AMDDS_DCIPS 0x01
38 #define AMDDS_PS 0x02
39 #define AMDDS_RGBOVR 0x04
40 #define AMDDS_YUVOVR 0x08
41 #define AMDDS_RGBOFF 0x10
42 #define AMDDS_YUVOFF 0x20
43 #define AMDDS_RGBFLP 0x40
44 #define AMDDS_YUVFLP 0x80
45 #define AMDDS_ALL 0xFF
46 #define AMDDS_DEFAULT AMDDS_ALL
47 #define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
48 #define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
49 #define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
50 #ifndef __IDirectDrawVideo_FWD_DEFINED__
51 #define __IDirectDrawVideo_FWD_DEFINED__
52 typedef struct IDirectDrawVideo IDirectDrawVideo;
53 #endif
54
55 /*****************************************************************************
56  * IDirectDrawVideo interface
57  */
58 #ifndef __IDirectDrawVideo_INTERFACE_DEFINED__
59 #define __IDirectDrawVideo_INTERFACE_DEFINED__
60
61 #if defined(__cplusplus) && !defined(CINTERFACE)
62 struct IDirectDrawVideo : public IUnknown
63 {
64     virtual HRESULT STDMETHODCALLTYPE GetSwitches(
65         DWORD* pSwitches) = 0;
66
67     virtual HRESULT STDMETHODCALLTYPE SetSwitches(
68         DWORD Switches) = 0;
69
70     virtual HRESULT STDMETHODCALLTYPE GetCaps(
71         DDCAPS* pCaps) = 0;
72
73     virtual HRESULT STDMETHODCALLTYPE GetEmulatedCaps(
74         DDCAPS* pCaps) = 0;
75
76     virtual HRESULT STDMETHODCALLTYPE GetSurfaceDesc(
77         DDSURFACEDESC* pSurfaceDesc) = 0;
78
79     virtual HRESULT STDMETHODCALLTYPE GetFourCCCodes(
80         DWORD* pCount,
81         DWORD* pCodes) = 0;
82
83     virtual HRESULT STDMETHODCALLTYPE SetDirectDraw(
84         LPDIRECTDRAW pDirectDraw) = 0;
85
86     virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
87         LPDIRECTDRAW* ppDirectDraw) = 0;
88
89     virtual HRESULT STDMETHODCALLTYPE GetSurfaceType(
90         DWORD* pSurfaceType) = 0;
91
92     virtual HRESULT STDMETHODCALLTYPE SetDefault(
93         ) = 0;
94
95     virtual HRESULT STDMETHODCALLTYPE UseScanLine(
96         long UseScanLine) = 0;
97
98     virtual HRESULT STDMETHODCALLTYPE CanUseScanLine(
99         long* UseScanLine) = 0;
100
101     virtual HRESULT STDMETHODCALLTYPE UseOverlayStretch(
102         long UseOverlayStretch) = 0;
103
104     virtual HRESULT STDMETHODCALLTYPE CanUseOverlayStretch(
105         long* UseOverlayStretch) = 0;
106
107     virtual HRESULT STDMETHODCALLTYPE UseWhenFullScreen(
108         long UseWhenFullScreen) = 0;
109
110     virtual HRESULT STDMETHODCALLTYPE WillUseFullScreen(
111         long* UseWhenFullScreen) = 0;
112
113 };
114 #else
115 typedef struct IDirectDrawVideoVtbl IDirectDrawVideoVtbl;
116 struct IDirectDrawVideo {
117     const IDirectDrawVideoVtbl* lpVtbl;
118 };
119 struct IDirectDrawVideoVtbl {
120     BEGIN_INTERFACE
121
122     /*** IUnknown methods ***/
123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
124         IDirectDrawVideo* This,
125         REFIID riid,
126         void** ppvObject);
127
128     ULONG (STDMETHODCALLTYPE *AddRef)(
129         IDirectDrawVideo* This);
130
131     ULONG (STDMETHODCALLTYPE *Release)(
132         IDirectDrawVideo* This);
133
134     /*** IDirectDrawVideo methods ***/
135     HRESULT (STDMETHODCALLTYPE *GetSwitches)(
136         IDirectDrawVideo* This,
137         DWORD* pSwitches);
138
139     HRESULT (STDMETHODCALLTYPE *SetSwitches)(
140         IDirectDrawVideo* This,
141         DWORD Switches);
142
143     HRESULT (STDMETHODCALLTYPE *GetCaps)(
144         IDirectDrawVideo* This,
145         DDCAPS* pCaps);
146
147     HRESULT (STDMETHODCALLTYPE *GetEmulatedCaps)(
148         IDirectDrawVideo* This,
149         DDCAPS* pCaps);
150
151     HRESULT (STDMETHODCALLTYPE *GetSurfaceDesc)(
152         IDirectDrawVideo* This,
153         DDSURFACEDESC* pSurfaceDesc);
154
155     HRESULT (STDMETHODCALLTYPE *GetFourCCCodes)(
156         IDirectDrawVideo* This,
157         DWORD* pCount,
158         DWORD* pCodes);
159
160     HRESULT (STDMETHODCALLTYPE *SetDirectDraw)(
161         IDirectDrawVideo* This,
162         LPDIRECTDRAW pDirectDraw);
163
164     HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
165         IDirectDrawVideo* This,
166         LPDIRECTDRAW* ppDirectDraw);
167
168     HRESULT (STDMETHODCALLTYPE *GetSurfaceType)(
169         IDirectDrawVideo* This,
170         DWORD* pSurfaceType);
171
172     HRESULT (STDMETHODCALLTYPE *SetDefault)(
173         IDirectDrawVideo* This);
174
175     HRESULT (STDMETHODCALLTYPE *UseScanLine)(
176         IDirectDrawVideo* This,
177         long UseScanLine);
178
179     HRESULT (STDMETHODCALLTYPE *CanUseScanLine)(
180         IDirectDrawVideo* This,
181         long* UseScanLine);
182
183     HRESULT (STDMETHODCALLTYPE *UseOverlayStretch)(
184         IDirectDrawVideo* This,
185         long UseOverlayStretch);
186
187     HRESULT (STDMETHODCALLTYPE *CanUseOverlayStretch)(
188         IDirectDrawVideo* This,
189         long* UseOverlayStretch);
190
191     HRESULT (STDMETHODCALLTYPE *UseWhenFullScreen)(
192         IDirectDrawVideo* This,
193         long UseWhenFullScreen);
194
195     HRESULT (STDMETHODCALLTYPE *WillUseFullScreen)(
196         IDirectDrawVideo* This,
197         long* UseWhenFullScreen);
198
199     END_INTERFACE
200 };
201
202 #ifdef COBJMACROS
203 /*** IUnknown methods ***/
204 #define IDirectDrawVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
205 #define IDirectDrawVideo_AddRef(p) (p)->lpVtbl->AddRef(p)
206 #define IDirectDrawVideo_Release(p) (p)->lpVtbl->Release(p)
207 /*** IDirectDrawVideo methods ***/
208 #define IDirectDrawVideo_GetSwitches(p,a) (p)->lpVtbl->GetSwitches(p,a)
209 #define IDirectDrawVideo_SetSwitches(p,a) (p)->lpVtbl->SetSwitches(p,a)
210 #define IDirectDrawVideo_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
211 #define IDirectDrawVideo_GetEmulatedCaps(p,a) (p)->lpVtbl->GetEmulatedCaps(p,a)
212 #define IDirectDrawVideo_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a)
213 #define IDirectDrawVideo_GetFourCCCodes(p,a,b) (p)->lpVtbl->GetFourCCCodes(p,a,b)
214 #define IDirectDrawVideo_SetDirectDraw(p,a) (p)->lpVtbl->SetDirectDraw(p,a)
215 #define IDirectDrawVideo_GetDirectDraw(p,a) (p)->lpVtbl->GetDirectDraw(p,a)
216 #define IDirectDrawVideo_GetSurfaceType(p,a) (p)->lpVtbl->GetSurfaceType(p,a)
217 #define IDirectDrawVideo_SetDefault(p) (p)->lpVtbl->SetDefault(p)
218 #define IDirectDrawVideo_UseScanLine(p,a) (p)->lpVtbl->UseScanLine(p,a)
219 #define IDirectDrawVideo_CanUseScanLine(p,a) (p)->lpVtbl->CanUseScanLine(p,a)
220 #define IDirectDrawVideo_UseOverlayStretch(p,a) (p)->lpVtbl->UseOverlayStretch(p,a)
221 #define IDirectDrawVideo_CanUseOverlayStretch(p,a) (p)->lpVtbl->CanUseOverlayStretch(p,a)
222 #define IDirectDrawVideo_UseWhenFullScreen(p,a) (p)->lpVtbl->UseWhenFullScreen(p,a)
223 #define IDirectDrawVideo_WillUseFullScreen(p,a) (p)->lpVtbl->WillUseFullScreen(p,a)
224 #endif
225
226 #endif
227
228 #define IDirectDrawVideo_METHODS \
229     /*** IUnknown methods ***/ \
230     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
231     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
232     STDMETHOD_(ULONG,Release)(THIS) PURE; \
233     /*** IDirectDrawVideo methods ***/ \
234     STDMETHOD_(HRESULT,GetSwitches)(THIS_ DWORD* pSwitches) PURE; \
235     STDMETHOD_(HRESULT,SetSwitches)(THIS_ DWORD Switches) PURE; \
236     STDMETHOD_(HRESULT,GetCaps)(THIS_ DDCAPS* pCaps) PURE; \
237     STDMETHOD_(HRESULT,GetEmulatedCaps)(THIS_ DDCAPS* pCaps) PURE; \
238     STDMETHOD_(HRESULT,GetSurfaceDesc)(THIS_ DDSURFACEDESC* pSurfaceDesc) PURE; \
239     STDMETHOD_(HRESULT,GetFourCCCodes)(THIS_ DWORD* pCount, DWORD* pCodes) PURE; \
240     STDMETHOD_(HRESULT,SetDirectDraw)(THIS_ LPDIRECTDRAW pDirectDraw) PURE; \
241     STDMETHOD_(HRESULT,GetDirectDraw)(THIS_ LPDIRECTDRAW* ppDirectDraw) PURE; \
242     STDMETHOD_(HRESULT,GetSurfaceType)(THIS_ DWORD* pSurfaceType) PURE; \
243     STDMETHOD_(HRESULT,SetDefault)(THIS) PURE; \
244     STDMETHOD_(HRESULT,UseScanLine)(THIS_ long UseScanLine) PURE; \
245     STDMETHOD_(HRESULT,CanUseScanLine)(THIS_ long* UseScanLine) PURE; \
246     STDMETHOD_(HRESULT,UseOverlayStretch)(THIS_ long UseOverlayStretch) PURE; \
247     STDMETHOD_(HRESULT,CanUseOverlayStretch)(THIS_ long* UseOverlayStretch) PURE; \
248     STDMETHOD_(HRESULT,UseWhenFullScreen)(THIS_ long UseWhenFullScreen) PURE; \
249     STDMETHOD_(HRESULT,WillUseFullScreen)(THIS_ long* UseWhenFullScreen) PURE;
250
251 HRESULT CALLBACK IDirectDrawVideo_GetSwitches_Proxy(
252     IDirectDrawVideo* This,
253     DWORD* pSwitches);
254 void __RPC_STUB IDirectDrawVideo_GetSwitches_Stub(
255     struct IRpcStubBuffer* This,
256     struct IRpcChannelBuffer* pRpcChannelBuffer,
257     PRPC_MESSAGE pRpcMessage,
258     DWORD* pdwStubPhase);
259 HRESULT CALLBACK IDirectDrawVideo_SetSwitches_Proxy(
260     IDirectDrawVideo* This,
261     DWORD Switches);
262 void __RPC_STUB IDirectDrawVideo_SetSwitches_Stub(
263     struct IRpcStubBuffer* This,
264     struct IRpcChannelBuffer* pRpcChannelBuffer,
265     PRPC_MESSAGE pRpcMessage,
266     DWORD* pdwStubPhase);
267 HRESULT CALLBACK IDirectDrawVideo_GetCaps_Proxy(
268     IDirectDrawVideo* This,
269     DDCAPS* pCaps);
270 void __RPC_STUB IDirectDrawVideo_GetCaps_Stub(
271     struct IRpcStubBuffer* This,
272     struct IRpcChannelBuffer* pRpcChannelBuffer,
273     PRPC_MESSAGE pRpcMessage,
274     DWORD* pdwStubPhase);
275 HRESULT CALLBACK IDirectDrawVideo_GetEmulatedCaps_Proxy(
276     IDirectDrawVideo* This,
277     DDCAPS* pCaps);
278 void __RPC_STUB IDirectDrawVideo_GetEmulatedCaps_Stub(
279     struct IRpcStubBuffer* This,
280     struct IRpcChannelBuffer* pRpcChannelBuffer,
281     PRPC_MESSAGE pRpcMessage,
282     DWORD* pdwStubPhase);
283 HRESULT CALLBACK IDirectDrawVideo_GetSurfaceDesc_Proxy(
284     IDirectDrawVideo* This,
285     DDSURFACEDESC* pSurfaceDesc);
286 void __RPC_STUB IDirectDrawVideo_GetSurfaceDesc_Stub(
287     struct IRpcStubBuffer* This,
288     struct IRpcChannelBuffer* pRpcChannelBuffer,
289     PRPC_MESSAGE pRpcMessage,
290     DWORD* pdwStubPhase);
291 HRESULT CALLBACK IDirectDrawVideo_GetFourCCCodes_Proxy(
292     IDirectDrawVideo* This,
293     DWORD* pCount,
294     DWORD* pCodes);
295 void __RPC_STUB IDirectDrawVideo_GetFourCCCodes_Stub(
296     struct IRpcStubBuffer* This,
297     struct IRpcChannelBuffer* pRpcChannelBuffer,
298     PRPC_MESSAGE pRpcMessage,
299     DWORD* pdwStubPhase);
300 HRESULT CALLBACK IDirectDrawVideo_SetDirectDraw_Proxy(
301     IDirectDrawVideo* This,
302     LPDIRECTDRAW pDirectDraw);
303 void __RPC_STUB IDirectDrawVideo_SetDirectDraw_Stub(
304     struct IRpcStubBuffer* This,
305     struct IRpcChannelBuffer* pRpcChannelBuffer,
306     PRPC_MESSAGE pRpcMessage,
307     DWORD* pdwStubPhase);
308 HRESULT CALLBACK IDirectDrawVideo_GetDirectDraw_Proxy(
309     IDirectDrawVideo* This,
310     LPDIRECTDRAW* ppDirectDraw);
311 void __RPC_STUB IDirectDrawVideo_GetDirectDraw_Stub(
312     struct IRpcStubBuffer* This,
313     struct IRpcChannelBuffer* pRpcChannelBuffer,
314     PRPC_MESSAGE pRpcMessage,
315     DWORD* pdwStubPhase);
316 HRESULT CALLBACK IDirectDrawVideo_GetSurfaceType_Proxy(
317     IDirectDrawVideo* This,
318     DWORD* pSurfaceType);
319 void __RPC_STUB IDirectDrawVideo_GetSurfaceType_Stub(
320     struct IRpcStubBuffer* This,
321     struct IRpcChannelBuffer* pRpcChannelBuffer,
322     PRPC_MESSAGE pRpcMessage,
323     DWORD* pdwStubPhase);
324 HRESULT CALLBACK IDirectDrawVideo_SetDefault_Proxy(
325     IDirectDrawVideo* This);
326 void __RPC_STUB IDirectDrawVideo_SetDefault_Stub(
327     struct IRpcStubBuffer* This,
328     struct IRpcChannelBuffer* pRpcChannelBuffer,
329     PRPC_MESSAGE pRpcMessage,
330     DWORD* pdwStubPhase);
331 HRESULT CALLBACK IDirectDrawVideo_UseScanLine_Proxy(
332     IDirectDrawVideo* This,
333     long UseScanLine);
334 void __RPC_STUB IDirectDrawVideo_UseScanLine_Stub(
335     struct IRpcStubBuffer* This,
336     struct IRpcChannelBuffer* pRpcChannelBuffer,
337     PRPC_MESSAGE pRpcMessage,
338     DWORD* pdwStubPhase);
339 HRESULT CALLBACK IDirectDrawVideo_CanUseScanLine_Proxy(
340     IDirectDrawVideo* This,
341     long* UseScanLine);
342 void __RPC_STUB IDirectDrawVideo_CanUseScanLine_Stub(
343     struct IRpcStubBuffer* This,
344     struct IRpcChannelBuffer* pRpcChannelBuffer,
345     PRPC_MESSAGE pRpcMessage,
346     DWORD* pdwStubPhase);
347 HRESULT CALLBACK IDirectDrawVideo_UseOverlayStretch_Proxy(
348     IDirectDrawVideo* This,
349     long UseOverlayStretch);
350 void __RPC_STUB IDirectDrawVideo_UseOverlayStretch_Stub(
351     struct IRpcStubBuffer* This,
352     struct IRpcChannelBuffer* pRpcChannelBuffer,
353     PRPC_MESSAGE pRpcMessage,
354     DWORD* pdwStubPhase);
355 HRESULT CALLBACK IDirectDrawVideo_CanUseOverlayStretch_Proxy(
356     IDirectDrawVideo* This,
357     long* UseOverlayStretch);
358 void __RPC_STUB IDirectDrawVideo_CanUseOverlayStretch_Stub(
359     struct IRpcStubBuffer* This,
360     struct IRpcChannelBuffer* pRpcChannelBuffer,
361     PRPC_MESSAGE pRpcMessage,
362     DWORD* pdwStubPhase);
363 HRESULT CALLBACK IDirectDrawVideo_UseWhenFullScreen_Proxy(
364     IDirectDrawVideo* This,
365     long UseWhenFullScreen);
366 void __RPC_STUB IDirectDrawVideo_UseWhenFullScreen_Stub(
367     struct IRpcStubBuffer* This,
368     struct IRpcChannelBuffer* pRpcChannelBuffer,
369     PRPC_MESSAGE pRpcMessage,
370     DWORD* pdwStubPhase);
371 HRESULT CALLBACK IDirectDrawVideo_WillUseFullScreen_Proxy(
372     IDirectDrawVideo* This,
373     long* UseWhenFullScreen);
374 void __RPC_STUB IDirectDrawVideo_WillUseFullScreen_Stub(
375     struct IRpcStubBuffer* This,
376     struct IRpcChannelBuffer* pRpcChannelBuffer,
377     PRPC_MESSAGE pRpcMessage,
378     DWORD* pdwStubPhase);
379
380 #endif  /* __IDirectDrawVideo_INTERFACE_DEFINED__ */
381
382 #ifndef __IQualProp_FWD_DEFINED__
383 #define __IQualProp_FWD_DEFINED__
384 typedef struct IQualProp IQualProp;
385 #endif
386
387 /*****************************************************************************
388  * IQualProp interface
389  */
390 #ifndef __IQualProp_INTERFACE_DEFINED__
391 #define __IQualProp_INTERFACE_DEFINED__
392
393 #if defined(__cplusplus) && !defined(CINTERFACE)
394 struct IQualProp : public IUnknown
395 {
396     virtual HRESULT STDMETHODCALLTYPE get_FramesDroppedInRenderer(
397         int* pcFrames) = 0;
398
399     virtual HRESULT STDMETHODCALLTYPE get_FramesDrawn(
400         int* pcFramesDrawn) = 0;
401
402     virtual HRESULT STDMETHODCALLTYPE get_AvgFrameRate(
403         int* piAvgFrameRate) = 0;
404
405     virtual HRESULT STDMETHODCALLTYPE get_Jitter(
406         int* iJitter) = 0;
407
408     virtual HRESULT STDMETHODCALLTYPE get_AvgSyncOffset(
409         int* piAvg) = 0;
410
411     virtual HRESULT STDMETHODCALLTYPE get_DevSyncOffset(
412         int* piDev) = 0;
413
414 };
415 #else
416 typedef struct IQualPropVtbl IQualPropVtbl;
417 struct IQualProp {
418     const IQualPropVtbl* lpVtbl;
419 };
420 struct IQualPropVtbl {
421     BEGIN_INTERFACE
422
423     /*** IUnknown methods ***/
424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
425         IQualProp* This,
426         REFIID riid,
427         void** ppvObject);
428
429     ULONG (STDMETHODCALLTYPE *AddRef)(
430         IQualProp* This);
431
432     ULONG (STDMETHODCALLTYPE *Release)(
433         IQualProp* This);
434
435     /*** IQualProp methods ***/
436     HRESULT (STDMETHODCALLTYPE *get_FramesDroppedInRenderer)(
437         IQualProp* This,
438         int* pcFrames);
439
440     HRESULT (STDMETHODCALLTYPE *get_FramesDrawn)(
441         IQualProp* This,
442         int* pcFramesDrawn);
443
444     HRESULT (STDMETHODCALLTYPE *get_AvgFrameRate)(
445         IQualProp* This,
446         int* piAvgFrameRate);
447
448     HRESULT (STDMETHODCALLTYPE *get_Jitter)(
449         IQualProp* This,
450         int* iJitter);
451
452     HRESULT (STDMETHODCALLTYPE *get_AvgSyncOffset)(
453         IQualProp* This,
454         int* piAvg);
455
456     HRESULT (STDMETHODCALLTYPE *get_DevSyncOffset)(
457         IQualProp* This,
458         int* piDev);
459
460     END_INTERFACE
461 };
462
463 #ifdef COBJMACROS
464 /*** IUnknown methods ***/
465 #define IQualProp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
466 #define IQualProp_AddRef(p) (p)->lpVtbl->AddRef(p)
467 #define IQualProp_Release(p) (p)->lpVtbl->Release(p)
468 /*** IQualProp methods ***/
469 #define IQualProp_get_FramesDroppedInRenderer(p,a) (p)->lpVtbl->get_FramesDroppedInRenderer(p,a)
470 #define IQualProp_get_FramesDrawn(p,a) (p)->lpVtbl->get_FramesDrawn(p,a)
471 #define IQualProp_get_AvgFrameRate(p,a) (p)->lpVtbl->get_AvgFrameRate(p,a)
472 #define IQualProp_get_Jitter(p,a) (p)->lpVtbl->get_Jitter(p,a)
473 #define IQualProp_get_AvgSyncOffset(p,a) (p)->lpVtbl->get_AvgSyncOffset(p,a)
474 #define IQualProp_get_DevSyncOffset(p,a) (p)->lpVtbl->get_DevSyncOffset(p,a)
475 #endif
476
477 #endif
478
479 #define IQualProp_METHODS \
480     /*** IUnknown methods ***/ \
481     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
482     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
483     STDMETHOD_(ULONG,Release)(THIS) PURE; \
484     /*** IQualProp methods ***/ \
485     STDMETHOD_(HRESULT,get_FramesDroppedInRenderer)(THIS_ int* pcFrames) PURE; \
486     STDMETHOD_(HRESULT,get_FramesDrawn)(THIS_ int* pcFramesDrawn) PURE; \
487     STDMETHOD_(HRESULT,get_AvgFrameRate)(THIS_ int* piAvgFrameRate) PURE; \
488     STDMETHOD_(HRESULT,get_Jitter)(THIS_ int* iJitter) PURE; \
489     STDMETHOD_(HRESULT,get_AvgSyncOffset)(THIS_ int* piAvg) PURE; \
490     STDMETHOD_(HRESULT,get_DevSyncOffset)(THIS_ int* piDev) PURE;
491
492 HRESULT CALLBACK IQualProp_get_FramesDroppedInRenderer_Proxy(
493     IQualProp* This,
494     int* pcFrames);
495 void __RPC_STUB IQualProp_get_FramesDroppedInRenderer_Stub(
496     struct IRpcStubBuffer* This,
497     struct IRpcChannelBuffer* pRpcChannelBuffer,
498     PRPC_MESSAGE pRpcMessage,
499     DWORD* pdwStubPhase);
500 HRESULT CALLBACK IQualProp_get_FramesDrawn_Proxy(
501     IQualProp* This,
502     int* pcFramesDrawn);
503 void __RPC_STUB IQualProp_get_FramesDrawn_Stub(
504     struct IRpcStubBuffer* This,
505     struct IRpcChannelBuffer* pRpcChannelBuffer,
506     PRPC_MESSAGE pRpcMessage,
507     DWORD* pdwStubPhase);
508 HRESULT CALLBACK IQualProp_get_AvgFrameRate_Proxy(
509     IQualProp* This,
510     int* piAvgFrameRate);
511 void __RPC_STUB IQualProp_get_AvgFrameRate_Stub(
512     struct IRpcStubBuffer* This,
513     struct IRpcChannelBuffer* pRpcChannelBuffer,
514     PRPC_MESSAGE pRpcMessage,
515     DWORD* pdwStubPhase);
516 HRESULT CALLBACK IQualProp_get_Jitter_Proxy(
517     IQualProp* This,
518     int* iJitter);
519 void __RPC_STUB IQualProp_get_Jitter_Stub(
520     struct IRpcStubBuffer* This,
521     struct IRpcChannelBuffer* pRpcChannelBuffer,
522     PRPC_MESSAGE pRpcMessage,
523     DWORD* pdwStubPhase);
524 HRESULT CALLBACK IQualProp_get_AvgSyncOffset_Proxy(
525     IQualProp* This,
526     int* piAvg);
527 void __RPC_STUB IQualProp_get_AvgSyncOffset_Stub(
528     struct IRpcStubBuffer* This,
529     struct IRpcChannelBuffer* pRpcChannelBuffer,
530     PRPC_MESSAGE pRpcMessage,
531     DWORD* pdwStubPhase);
532 HRESULT CALLBACK IQualProp_get_DevSyncOffset_Proxy(
533     IQualProp* This,
534     int* piDev);
535 void __RPC_STUB IQualProp_get_DevSyncOffset_Stub(
536     struct IRpcStubBuffer* This,
537     struct IRpcChannelBuffer* pRpcChannelBuffer,
538     PRPC_MESSAGE pRpcMessage,
539     DWORD* pdwStubPhase);
540
541 #endif  /* __IQualProp_INTERFACE_DEFINED__ */
542
543 #ifndef __IFullScreenVideo_FWD_DEFINED__
544 #define __IFullScreenVideo_FWD_DEFINED__
545 typedef struct IFullScreenVideo IFullScreenVideo;
546 #endif
547
548 /*****************************************************************************
549  * IFullScreenVideo interface
550  */
551 #ifndef __IFullScreenVideo_INTERFACE_DEFINED__
552 #define __IFullScreenVideo_INTERFACE_DEFINED__
553
554 #if defined(__cplusplus) && !defined(CINTERFACE)
555 struct IFullScreenVideo : public IUnknown
556 {
557     virtual HRESULT STDMETHODCALLTYPE CountModes(
558         long* pModes) = 0;
559
560     virtual HRESULT STDMETHODCALLTYPE GetModeInfo(
561         long Mode,
562         long* pWidth,
563         long* pHeight,
564         long* pDepth) = 0;
565
566     virtual HRESULT STDMETHODCALLTYPE GetCurrentMode(
567         long* pMode) = 0;
568
569     virtual HRESULT STDMETHODCALLTYPE IsModeAvailable(
570         long Mode) = 0;
571
572     virtual HRESULT STDMETHODCALLTYPE IsModeEnabled(
573         long Mode) = 0;
574
575     virtual HRESULT STDMETHODCALLTYPE SetEnabled(
576         long Mode,
577         long bEnabled) = 0;
578
579     virtual HRESULT STDMETHODCALLTYPE GetClipFactor(
580         long* pClipFactor) = 0;
581
582     virtual HRESULT STDMETHODCALLTYPE SetClipFactor(
583         long ClipFactor) = 0;
584
585     virtual HRESULT STDMETHODCALLTYPE SetMessageDrain(
586         HWND hwnd) = 0;
587
588     virtual HRESULT STDMETHODCALLTYPE GetMessageDrain(
589         HWND* hwnd) = 0;
590
591     virtual HRESULT STDMETHODCALLTYPE SetMonitor(
592         long Monitor) = 0;
593
594     virtual HRESULT STDMETHODCALLTYPE GetMonitor(
595         long* Monitor) = 0;
596
597     virtual HRESULT STDMETHODCALLTYPE HideOnDeactivate(
598         long Hide) = 0;
599
600     virtual HRESULT STDMETHODCALLTYPE IsHideOnDeactivate(
601         ) = 0;
602
603     virtual HRESULT STDMETHODCALLTYPE SetCaption(
604         BSTR strCaption) = 0;
605
606     virtual HRESULT STDMETHODCALLTYPE GetCaption(
607         BSTR* pstrCaption) = 0;
608
609     virtual HRESULT STDMETHODCALLTYPE SetDefault(
610         ) = 0;
611
612 };
613 #else
614 typedef struct IFullScreenVideoVtbl IFullScreenVideoVtbl;
615 struct IFullScreenVideo {
616     const IFullScreenVideoVtbl* lpVtbl;
617 };
618 struct IFullScreenVideoVtbl {
619     BEGIN_INTERFACE
620
621     /*** IUnknown methods ***/
622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
623         IFullScreenVideo* This,
624         REFIID riid,
625         void** ppvObject);
626
627     ULONG (STDMETHODCALLTYPE *AddRef)(
628         IFullScreenVideo* This);
629
630     ULONG (STDMETHODCALLTYPE *Release)(
631         IFullScreenVideo* This);
632
633     /*** IFullScreenVideo methods ***/
634     HRESULT (STDMETHODCALLTYPE *CountModes)(
635         IFullScreenVideo* This,
636         long* pModes);
637
638     HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
639         IFullScreenVideo* This,
640         long Mode,
641         long* pWidth,
642         long* pHeight,
643         long* pDepth);
644
645     HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
646         IFullScreenVideo* This,
647         long* pMode);
648
649     HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
650         IFullScreenVideo* This,
651         long Mode);
652
653     HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
654         IFullScreenVideo* This,
655         long Mode);
656
657     HRESULT (STDMETHODCALLTYPE *SetEnabled)(
658         IFullScreenVideo* This,
659         long Mode,
660         long bEnabled);
661
662     HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
663         IFullScreenVideo* This,
664         long* pClipFactor);
665
666     HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
667         IFullScreenVideo* This,
668         long ClipFactor);
669
670     HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
671         IFullScreenVideo* This,
672         HWND hwnd);
673
674     HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
675         IFullScreenVideo* This,
676         HWND* hwnd);
677
678     HRESULT (STDMETHODCALLTYPE *SetMonitor)(
679         IFullScreenVideo* This,
680         long Monitor);
681
682     HRESULT (STDMETHODCALLTYPE *GetMonitor)(
683         IFullScreenVideo* This,
684         long* Monitor);
685
686     HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
687         IFullScreenVideo* This,
688         long Hide);
689
690     HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
691         IFullScreenVideo* This);
692
693     HRESULT (STDMETHODCALLTYPE *SetCaption)(
694         IFullScreenVideo* This,
695         BSTR strCaption);
696
697     HRESULT (STDMETHODCALLTYPE *GetCaption)(
698         IFullScreenVideo* This,
699         BSTR* pstrCaption);
700
701     HRESULT (STDMETHODCALLTYPE *SetDefault)(
702         IFullScreenVideo* This);
703
704     END_INTERFACE
705 };
706
707 #ifdef COBJMACROS
708 /*** IUnknown methods ***/
709 #define IFullScreenVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
710 #define IFullScreenVideo_AddRef(p) (p)->lpVtbl->AddRef(p)
711 #define IFullScreenVideo_Release(p) (p)->lpVtbl->Release(p)
712 /*** IFullScreenVideo methods ***/
713 #define IFullScreenVideo_CountModes(p,a) (p)->lpVtbl->CountModes(p,a)
714 #define IFullScreenVideo_GetModeInfo(p,a,b,c,d) (p)->lpVtbl->GetModeInfo(p,a,b,c,d)
715 #define IFullScreenVideo_GetCurrentMode(p,a) (p)->lpVtbl->GetCurrentMode(p,a)
716 #define IFullScreenVideo_IsModeAvailable(p,a) (p)->lpVtbl->IsModeAvailable(p,a)
717 #define IFullScreenVideo_IsModeEnabled(p,a) (p)->lpVtbl->IsModeEnabled(p,a)
718 #define IFullScreenVideo_SetEnabled(p,a,b) (p)->lpVtbl->SetEnabled(p,a,b)
719 #define IFullScreenVideo_GetClipFactor(p,a) (p)->lpVtbl->GetClipFactor(p,a)
720 #define IFullScreenVideo_SetClipFactor(p,a) (p)->lpVtbl->SetClipFactor(p,a)
721 #define IFullScreenVideo_SetMessageDrain(p,a) (p)->lpVtbl->SetMessageDrain(p,a)
722 #define IFullScreenVideo_GetMessageDrain(p,a) (p)->lpVtbl->GetMessageDrain(p,a)
723 #define IFullScreenVideo_SetMonitor(p,a) (p)->lpVtbl->SetMonitor(p,a)
724 #define IFullScreenVideo_GetMonitor(p,a) (p)->lpVtbl->GetMonitor(p,a)
725 #define IFullScreenVideo_HideOnDeactivate(p,a) (p)->lpVtbl->HideOnDeactivate(p,a)
726 #define IFullScreenVideo_IsHideOnDeactivate(p) (p)->lpVtbl->IsHideOnDeactivate(p)
727 #define IFullScreenVideo_SetCaption(p,a) (p)->lpVtbl->SetCaption(p,a)
728 #define IFullScreenVideo_GetCaption(p,a) (p)->lpVtbl->GetCaption(p,a)
729 #define IFullScreenVideo_SetDefault(p) (p)->lpVtbl->SetDefault(p)
730 #endif
731
732 #endif
733
734 #define IFullScreenVideo_METHODS \
735     /*** IUnknown methods ***/ \
736     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
737     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
738     STDMETHOD_(ULONG,Release)(THIS) PURE; \
739     /*** IFullScreenVideo methods ***/ \
740     STDMETHOD_(HRESULT,CountModes)(THIS_ long* pModes) PURE; \
741     STDMETHOD_(HRESULT,GetModeInfo)(THIS_ long Mode, long* pWidth, long* pHeight, long* pDepth) PURE; \
742     STDMETHOD_(HRESULT,GetCurrentMode)(THIS_ long* pMode) PURE; \
743     STDMETHOD_(HRESULT,IsModeAvailable)(THIS_ long Mode) PURE; \
744     STDMETHOD_(HRESULT,IsModeEnabled)(THIS_ long Mode) PURE; \
745     STDMETHOD_(HRESULT,SetEnabled)(THIS_ long Mode, long bEnabled) PURE; \
746     STDMETHOD_(HRESULT,GetClipFactor)(THIS_ long* pClipFactor) PURE; \
747     STDMETHOD_(HRESULT,SetClipFactor)(THIS_ long ClipFactor) PURE; \
748     STDMETHOD_(HRESULT,SetMessageDrain)(THIS_ HWND hwnd) PURE; \
749     STDMETHOD_(HRESULT,GetMessageDrain)(THIS_ HWND* hwnd) PURE; \
750     STDMETHOD_(HRESULT,SetMonitor)(THIS_ long Monitor) PURE; \
751     STDMETHOD_(HRESULT,GetMonitor)(THIS_ long* Monitor) PURE; \
752     STDMETHOD_(HRESULT,HideOnDeactivate)(THIS_ long Hide) PURE; \
753     STDMETHOD_(HRESULT,IsHideOnDeactivate)(THIS) PURE; \
754     STDMETHOD_(HRESULT,SetCaption)(THIS_ BSTR strCaption) PURE; \
755     STDMETHOD_(HRESULT,GetCaption)(THIS_ BSTR* pstrCaption) PURE; \
756     STDMETHOD_(HRESULT,SetDefault)(THIS) PURE;
757
758 HRESULT CALLBACK IFullScreenVideo_CountModes_Proxy(
759     IFullScreenVideo* This,
760     long* pModes);
761 void __RPC_STUB IFullScreenVideo_CountModes_Stub(
762     struct IRpcStubBuffer* This,
763     struct IRpcChannelBuffer* pRpcChannelBuffer,
764     PRPC_MESSAGE pRpcMessage,
765     DWORD* pdwStubPhase);
766 HRESULT CALLBACK IFullScreenVideo_GetModeInfo_Proxy(
767     IFullScreenVideo* This,
768     long Mode,
769     long* pWidth,
770     long* pHeight,
771     long* pDepth);
772 void __RPC_STUB IFullScreenVideo_GetModeInfo_Stub(
773     struct IRpcStubBuffer* This,
774     struct IRpcChannelBuffer* pRpcChannelBuffer,
775     PRPC_MESSAGE pRpcMessage,
776     DWORD* pdwStubPhase);
777 HRESULT CALLBACK IFullScreenVideo_GetCurrentMode_Proxy(
778     IFullScreenVideo* This,
779     long* pMode);
780 void __RPC_STUB IFullScreenVideo_GetCurrentMode_Stub(
781     struct IRpcStubBuffer* This,
782     struct IRpcChannelBuffer* pRpcChannelBuffer,
783     PRPC_MESSAGE pRpcMessage,
784     DWORD* pdwStubPhase);
785 HRESULT CALLBACK IFullScreenVideo_IsModeAvailable_Proxy(
786     IFullScreenVideo* This,
787     long Mode);
788 void __RPC_STUB IFullScreenVideo_IsModeAvailable_Stub(
789     struct IRpcStubBuffer* This,
790     struct IRpcChannelBuffer* pRpcChannelBuffer,
791     PRPC_MESSAGE pRpcMessage,
792     DWORD* pdwStubPhase);
793 HRESULT CALLBACK IFullScreenVideo_IsModeEnabled_Proxy(
794     IFullScreenVideo* This,
795     long Mode);
796 void __RPC_STUB IFullScreenVideo_IsModeEnabled_Stub(
797     struct IRpcStubBuffer* This,
798     struct IRpcChannelBuffer* pRpcChannelBuffer,
799     PRPC_MESSAGE pRpcMessage,
800     DWORD* pdwStubPhase);
801 HRESULT CALLBACK IFullScreenVideo_SetEnabled_Proxy(
802     IFullScreenVideo* This,
803     long Mode,
804     long bEnabled);
805 void __RPC_STUB IFullScreenVideo_SetEnabled_Stub(
806     struct IRpcStubBuffer* This,
807     struct IRpcChannelBuffer* pRpcChannelBuffer,
808     PRPC_MESSAGE pRpcMessage,
809     DWORD* pdwStubPhase);
810 HRESULT CALLBACK IFullScreenVideo_GetClipFactor_Proxy(
811     IFullScreenVideo* This,
812     long* pClipFactor);
813 void __RPC_STUB IFullScreenVideo_GetClipFactor_Stub(
814     struct IRpcStubBuffer* This,
815     struct IRpcChannelBuffer* pRpcChannelBuffer,
816     PRPC_MESSAGE pRpcMessage,
817     DWORD* pdwStubPhase);
818 HRESULT CALLBACK IFullScreenVideo_SetClipFactor_Proxy(
819     IFullScreenVideo* This,
820     long ClipFactor);
821 void __RPC_STUB IFullScreenVideo_SetClipFactor_Stub(
822     struct IRpcStubBuffer* This,
823     struct IRpcChannelBuffer* pRpcChannelBuffer,
824     PRPC_MESSAGE pRpcMessage,
825     DWORD* pdwStubPhase);
826 HRESULT CALLBACK IFullScreenVideo_SetMessageDrain_Proxy(
827     IFullScreenVideo* This,
828     HWND hwnd);
829 void __RPC_STUB IFullScreenVideo_SetMessageDrain_Stub(
830     struct IRpcStubBuffer* This,
831     struct IRpcChannelBuffer* pRpcChannelBuffer,
832     PRPC_MESSAGE pRpcMessage,
833     DWORD* pdwStubPhase);
834 HRESULT CALLBACK IFullScreenVideo_GetMessageDrain_Proxy(
835     IFullScreenVideo* This,
836     HWND* hwnd);
837 void __RPC_STUB IFullScreenVideo_GetMessageDrain_Stub(
838     struct IRpcStubBuffer* This,
839     struct IRpcChannelBuffer* pRpcChannelBuffer,
840     PRPC_MESSAGE pRpcMessage,
841     DWORD* pdwStubPhase);
842 HRESULT CALLBACK IFullScreenVideo_SetMonitor_Proxy(
843     IFullScreenVideo* This,
844     long Monitor);
845 void __RPC_STUB IFullScreenVideo_SetMonitor_Stub(
846     struct IRpcStubBuffer* This,
847     struct IRpcChannelBuffer* pRpcChannelBuffer,
848     PRPC_MESSAGE pRpcMessage,
849     DWORD* pdwStubPhase);
850 HRESULT CALLBACK IFullScreenVideo_GetMonitor_Proxy(
851     IFullScreenVideo* This,
852     long* Monitor);
853 void __RPC_STUB IFullScreenVideo_GetMonitor_Stub(
854     struct IRpcStubBuffer* This,
855     struct IRpcChannelBuffer* pRpcChannelBuffer,
856     PRPC_MESSAGE pRpcMessage,
857     DWORD* pdwStubPhase);
858 HRESULT CALLBACK IFullScreenVideo_HideOnDeactivate_Proxy(
859     IFullScreenVideo* This,
860     long Hide);
861 void __RPC_STUB IFullScreenVideo_HideOnDeactivate_Stub(
862     struct IRpcStubBuffer* This,
863     struct IRpcChannelBuffer* pRpcChannelBuffer,
864     PRPC_MESSAGE pRpcMessage,
865     DWORD* pdwStubPhase);
866 HRESULT CALLBACK IFullScreenVideo_IsHideOnDeactivate_Proxy(
867     IFullScreenVideo* This);
868 void __RPC_STUB IFullScreenVideo_IsHideOnDeactivate_Stub(
869     struct IRpcStubBuffer* This,
870     struct IRpcChannelBuffer* pRpcChannelBuffer,
871     PRPC_MESSAGE pRpcMessage,
872     DWORD* pdwStubPhase);
873 HRESULT CALLBACK IFullScreenVideo_SetCaption_Proxy(
874     IFullScreenVideo* This,
875     BSTR strCaption);
876 void __RPC_STUB IFullScreenVideo_SetCaption_Stub(
877     struct IRpcStubBuffer* This,
878     struct IRpcChannelBuffer* pRpcChannelBuffer,
879     PRPC_MESSAGE pRpcMessage,
880     DWORD* pdwStubPhase);
881 HRESULT CALLBACK IFullScreenVideo_GetCaption_Proxy(
882     IFullScreenVideo* This,
883     BSTR* pstrCaption);
884 void __RPC_STUB IFullScreenVideo_GetCaption_Stub(
885     struct IRpcStubBuffer* This,
886     struct IRpcChannelBuffer* pRpcChannelBuffer,
887     PRPC_MESSAGE pRpcMessage,
888     DWORD* pdwStubPhase);
889 HRESULT CALLBACK IFullScreenVideo_SetDefault_Proxy(
890     IFullScreenVideo* This);
891 void __RPC_STUB IFullScreenVideo_SetDefault_Stub(
892     struct IRpcStubBuffer* This,
893     struct IRpcChannelBuffer* pRpcChannelBuffer,
894     PRPC_MESSAGE pRpcMessage,
895     DWORD* pdwStubPhase);
896
897 #endif  /* __IFullScreenVideo_INTERFACE_DEFINED__ */
898
899 #ifndef __IFullScreenVideoEx_FWD_DEFINED__
900 #define __IFullScreenVideoEx_FWD_DEFINED__
901 typedef struct IFullScreenVideoEx IFullScreenVideoEx;
902 #endif
903
904 /*****************************************************************************
905  * IFullScreenVideoEx interface
906  */
907 #ifndef __IFullScreenVideoEx_INTERFACE_DEFINED__
908 #define __IFullScreenVideoEx_INTERFACE_DEFINED__
909
910 #if defined(__cplusplus) && !defined(CINTERFACE)
911 struct IFullScreenVideoEx : public IFullScreenVideo
912 {
913     virtual HRESULT STDMETHODCALLTYPE SetAcceleratorTable(
914         HWND hwnd,
915         HACCEL hAccel) = 0;
916
917     virtual HRESULT STDMETHODCALLTYPE GetAcceleratorTable(
918         HWND* phwnd,
919         HACCEL* phAccel) = 0;
920
921     virtual HRESULT STDMETHODCALLTYPE KeepPixelAspectRatio(
922         long KeepAspect) = 0;
923
924     virtual HRESULT STDMETHODCALLTYPE IsKeepPixelAspectRatio(
925         long* pKeepAspect) = 0;
926
927 };
928 #else
929 typedef struct IFullScreenVideoExVtbl IFullScreenVideoExVtbl;
930 struct IFullScreenVideoEx {
931     const IFullScreenVideoExVtbl* lpVtbl;
932 };
933 struct IFullScreenVideoExVtbl {
934     BEGIN_INTERFACE
935
936     /*** IUnknown methods ***/
937     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
938         IFullScreenVideoEx* This,
939         REFIID riid,
940         void** ppvObject);
941
942     ULONG (STDMETHODCALLTYPE *AddRef)(
943         IFullScreenVideoEx* This);
944
945     ULONG (STDMETHODCALLTYPE *Release)(
946         IFullScreenVideoEx* This);
947
948     /*** IFullScreenVideo methods ***/
949     HRESULT (STDMETHODCALLTYPE *CountModes)(
950         IFullScreenVideoEx* This,
951         long* pModes);
952
953     HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
954         IFullScreenVideoEx* This,
955         long Mode,
956         long* pWidth,
957         long* pHeight,
958         long* pDepth);
959
960     HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
961         IFullScreenVideoEx* This,
962         long* pMode);
963
964     HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
965         IFullScreenVideoEx* This,
966         long Mode);
967
968     HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
969         IFullScreenVideoEx* This,
970         long Mode);
971
972     HRESULT (STDMETHODCALLTYPE *SetEnabled)(
973         IFullScreenVideoEx* This,
974         long Mode,
975         long bEnabled);
976
977     HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
978         IFullScreenVideoEx* This,
979         long* pClipFactor);
980
981     HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
982         IFullScreenVideoEx* This,
983         long ClipFactor);
984
985     HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
986         IFullScreenVideoEx* This,
987         HWND hwnd);
988
989     HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
990         IFullScreenVideoEx* This,
991         HWND* hwnd);
992
993     HRESULT (STDMETHODCALLTYPE *SetMonitor)(
994         IFullScreenVideoEx* This,
995         long Monitor);
996
997     HRESULT (STDMETHODCALLTYPE *GetMonitor)(
998         IFullScreenVideoEx* This,
999         long* Monitor);
1000
1001     HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
1002         IFullScreenVideoEx* This,
1003         long Hide);
1004
1005     HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
1006         IFullScreenVideoEx* This);
1007
1008     HRESULT (STDMETHODCALLTYPE *SetCaption)(
1009         IFullScreenVideoEx* This,
1010         BSTR strCaption);
1011
1012     HRESULT (STDMETHODCALLTYPE *GetCaption)(
1013         IFullScreenVideoEx* This,
1014         BSTR* pstrCaption);
1015
1016     HRESULT (STDMETHODCALLTYPE *SetDefault)(
1017         IFullScreenVideoEx* This);
1018
1019     /*** IFullScreenVideoEx methods ***/
1020     HRESULT (STDMETHODCALLTYPE *SetAcceleratorTable)(
1021         IFullScreenVideoEx* This,
1022         HWND hwnd,
1023         HACCEL hAccel);
1024
1025     HRESULT (STDMETHODCALLTYPE *GetAcceleratorTable)(
1026         IFullScreenVideoEx* This,
1027         HWND* phwnd,
1028         HACCEL* phAccel);
1029
1030     HRESULT (STDMETHODCALLTYPE *KeepPixelAspectRatio)(
1031         IFullScreenVideoEx* This,
1032         long KeepAspect);
1033
1034     HRESULT (STDMETHODCALLTYPE *IsKeepPixelAspectRatio)(
1035         IFullScreenVideoEx* This,
1036         long* pKeepAspect);
1037
1038     END_INTERFACE
1039 };
1040
1041 #ifdef COBJMACROS
1042 /*** IUnknown methods ***/
1043 #define IFullScreenVideoEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1044 #define IFullScreenVideoEx_AddRef(p) (p)->lpVtbl->AddRef(p)
1045 #define IFullScreenVideoEx_Release(p) (p)->lpVtbl->Release(p)
1046 /*** IFullScreenVideo methods ***/
1047 #define IFullScreenVideoEx_CountModes(p,a) (p)->lpVtbl->CountModes(p,a)
1048 #define IFullScreenVideoEx_GetModeInfo(p,a,b,c,d) (p)->lpVtbl->GetModeInfo(p,a,b,c,d)
1049 #define IFullScreenVideoEx_GetCurrentMode(p,a) (p)->lpVtbl->GetCurrentMode(p,a)
1050 #define IFullScreenVideoEx_IsModeAvailable(p,a) (p)->lpVtbl->IsModeAvailable(p,a)
1051 #define IFullScreenVideoEx_IsModeEnabled(p,a) (p)->lpVtbl->IsModeEnabled(p,a)
1052 #define IFullScreenVideoEx_SetEnabled(p,a,b) (p)->lpVtbl->SetEnabled(p,a,b)
1053 #define IFullScreenVideoEx_GetClipFactor(p,a) (p)->lpVtbl->GetClipFactor(p,a)
1054 #define IFullScreenVideoEx_SetClipFactor(p,a) (p)->lpVtbl->SetClipFactor(p,a)
1055 #define IFullScreenVideoEx_SetMessageDrain(p,a) (p)->lpVtbl->SetMessageDrain(p,a)
1056 #define IFullScreenVideoEx_GetMessageDrain(p,a) (p)->lpVtbl->GetMessageDrain(p,a)
1057 #define IFullScreenVideoEx_SetMonitor(p,a) (p)->lpVtbl->SetMonitor(p,a)
1058 #define IFullScreenVideoEx_GetMonitor(p,a) (p)->lpVtbl->GetMonitor(p,a)
1059 #define IFullScreenVideoEx_HideOnDeactivate(p,a) (p)->lpVtbl->HideOnDeactivate(p,a)
1060 #define IFullScreenVideoEx_IsHideOnDeactivate(p) (p)->lpVtbl->IsHideOnDeactivate(p)
1061 #define IFullScreenVideoEx_SetCaption(p,a) (p)->lpVtbl->SetCaption(p,a)
1062 #define IFullScreenVideoEx_GetCaption(p,a) (p)->lpVtbl->GetCaption(p,a)
1063 #define IFullScreenVideoEx_SetDefault(p) (p)->lpVtbl->SetDefault(p)
1064 /*** IFullScreenVideoEx methods ***/
1065 #define IFullScreenVideoEx_SetAcceleratorTable(p,a,b) (p)->lpVtbl->SetAcceleratorTable(p,a,b)
1066 #define IFullScreenVideoEx_GetAcceleratorTable(p,a,b) (p)->lpVtbl->GetAcceleratorTable(p,a,b)
1067 #define IFullScreenVideoEx_KeepPixelAspectRatio(p,a) (p)->lpVtbl->KeepPixelAspectRatio(p,a)
1068 #define IFullScreenVideoEx_IsKeepPixelAspectRatio(p,a) (p)->lpVtbl->IsKeepPixelAspectRatio(p,a)
1069 #endif
1070
1071 #endif
1072
1073 #define IFullScreenVideoEx_METHODS \
1074     /*** IUnknown methods ***/ \
1075     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1076     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1077     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1078     /*** IFullScreenVideo methods ***/ \
1079     STDMETHOD_(HRESULT,CountModes)(THIS_ long* pModes) PURE; \
1080     STDMETHOD_(HRESULT,GetModeInfo)(THIS_ long Mode, long* pWidth, long* pHeight, long* pDepth) PURE; \
1081     STDMETHOD_(HRESULT,GetCurrentMode)(THIS_ long* pMode) PURE; \
1082     STDMETHOD_(HRESULT,IsModeAvailable)(THIS_ long Mode) PURE; \
1083     STDMETHOD_(HRESULT,IsModeEnabled)(THIS_ long Mode) PURE; \
1084     STDMETHOD_(HRESULT,SetEnabled)(THIS_ long Mode, long bEnabled) PURE; \
1085     STDMETHOD_(HRESULT,GetClipFactor)(THIS_ long* pClipFactor) PURE; \
1086     STDMETHOD_(HRESULT,SetClipFactor)(THIS_ long ClipFactor) PURE; \
1087     STDMETHOD_(HRESULT,SetMessageDrain)(THIS_ HWND hwnd) PURE; \
1088     STDMETHOD_(HRESULT,GetMessageDrain)(THIS_ HWND* hwnd) PURE; \
1089     STDMETHOD_(HRESULT,SetMonitor)(THIS_ long Monitor) PURE; \
1090     STDMETHOD_(HRESULT,GetMonitor)(THIS_ long* Monitor) PURE; \
1091     STDMETHOD_(HRESULT,HideOnDeactivate)(THIS_ long Hide) PURE; \
1092     STDMETHOD_(HRESULT,IsHideOnDeactivate)(THIS) PURE; \
1093     STDMETHOD_(HRESULT,SetCaption)(THIS_ BSTR strCaption) PURE; \
1094     STDMETHOD_(HRESULT,GetCaption)(THIS_ BSTR* pstrCaption) PURE; \
1095     STDMETHOD_(HRESULT,SetDefault)(THIS) PURE; \
1096     /*** IFullScreenVideoEx methods ***/ \
1097     STDMETHOD_(HRESULT,SetAcceleratorTable)(THIS_ HWND hwnd, HACCEL hAccel) PURE; \
1098     STDMETHOD_(HRESULT,GetAcceleratorTable)(THIS_ HWND* phwnd, HACCEL* phAccel) PURE; \
1099     STDMETHOD_(HRESULT,KeepPixelAspectRatio)(THIS_ long KeepAspect) PURE; \
1100     STDMETHOD_(HRESULT,IsKeepPixelAspectRatio)(THIS_ long* pKeepAspect) PURE;
1101
1102 HRESULT CALLBACK IFullScreenVideoEx_SetAcceleratorTable_Proxy(
1103     IFullScreenVideoEx* This,
1104     HWND hwnd,
1105     HACCEL hAccel);
1106 void __RPC_STUB IFullScreenVideoEx_SetAcceleratorTable_Stub(
1107     struct IRpcStubBuffer* This,
1108     struct IRpcChannelBuffer* pRpcChannelBuffer,
1109     PRPC_MESSAGE pRpcMessage,
1110     DWORD* pdwStubPhase);
1111 HRESULT CALLBACK IFullScreenVideoEx_GetAcceleratorTable_Proxy(
1112     IFullScreenVideoEx* This,
1113     HWND* phwnd,
1114     HACCEL* phAccel);
1115 void __RPC_STUB IFullScreenVideoEx_GetAcceleratorTable_Stub(
1116     struct IRpcStubBuffer* This,
1117     struct IRpcChannelBuffer* pRpcChannelBuffer,
1118     PRPC_MESSAGE pRpcMessage,
1119     DWORD* pdwStubPhase);
1120 HRESULT CALLBACK IFullScreenVideoEx_KeepPixelAspectRatio_Proxy(
1121     IFullScreenVideoEx* This,
1122     long KeepAspect);
1123 void __RPC_STUB IFullScreenVideoEx_KeepPixelAspectRatio_Stub(
1124     struct IRpcStubBuffer* This,
1125     struct IRpcChannelBuffer* pRpcChannelBuffer,
1126     PRPC_MESSAGE pRpcMessage,
1127     DWORD* pdwStubPhase);
1128 HRESULT CALLBACK IFullScreenVideoEx_IsKeepPixelAspectRatio_Proxy(
1129     IFullScreenVideoEx* This,
1130     long* pKeepAspect);
1131 void __RPC_STUB IFullScreenVideoEx_IsKeepPixelAspectRatio_Stub(
1132     struct IRpcStubBuffer* This,
1133     struct IRpcChannelBuffer* pRpcChannelBuffer,
1134     PRPC_MESSAGE pRpcMessage,
1135     DWORD* pdwStubPhase);
1136
1137 #endif  /* __IFullScreenVideoEx_INTERFACE_DEFINED__ */
1138
1139 #ifndef __IBaseVideoMixer_FWD_DEFINED__
1140 #define __IBaseVideoMixer_FWD_DEFINED__
1141 typedef struct IBaseVideoMixer IBaseVideoMixer;
1142 #endif
1143
1144 /*****************************************************************************
1145  * IBaseVideoMixer interface
1146  */
1147 #ifndef __IBaseVideoMixer_INTERFACE_DEFINED__
1148 #define __IBaseVideoMixer_INTERFACE_DEFINED__
1149
1150 #if defined(__cplusplus) && !defined(CINTERFACE)
1151 struct IBaseVideoMixer : public IUnknown
1152 {
1153     virtual HRESULT STDMETHODCALLTYPE SetLeadPin(
1154         int iPin) = 0;
1155
1156     virtual HRESULT STDMETHODCALLTYPE GetLeadPin(
1157         int* piPin) = 0;
1158
1159     virtual HRESULT STDMETHODCALLTYPE GetInputPinCount(
1160         int* piPinCount) = 0;
1161
1162     virtual HRESULT STDMETHODCALLTYPE IsUsingClock(
1163         int* pbValue) = 0;
1164
1165     virtual HRESULT STDMETHODCALLTYPE SetUsingClock(
1166         int bValue) = 0;
1167
1168     virtual HRESULT STDMETHODCALLTYPE GetClockPeriod(
1169         int* pbValue) = 0;
1170
1171     virtual HRESULT STDMETHODCALLTYPE SetClockPeriod(
1172         int bValue) = 0;
1173
1174 };
1175 #else
1176 typedef struct IBaseVideoMixerVtbl IBaseVideoMixerVtbl;
1177 struct IBaseVideoMixer {
1178     const IBaseVideoMixerVtbl* lpVtbl;
1179 };
1180 struct IBaseVideoMixerVtbl {
1181     BEGIN_INTERFACE
1182
1183     /*** IUnknown methods ***/
1184     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1185         IBaseVideoMixer* This,
1186         REFIID riid,
1187         void** ppvObject);
1188
1189     ULONG (STDMETHODCALLTYPE *AddRef)(
1190         IBaseVideoMixer* This);
1191
1192     ULONG (STDMETHODCALLTYPE *Release)(
1193         IBaseVideoMixer* This);
1194
1195     /*** IBaseVideoMixer methods ***/
1196     HRESULT (STDMETHODCALLTYPE *SetLeadPin)(
1197         IBaseVideoMixer* This,
1198         int iPin);
1199
1200     HRESULT (STDMETHODCALLTYPE *GetLeadPin)(
1201         IBaseVideoMixer* This,
1202         int* piPin);
1203
1204     HRESULT (STDMETHODCALLTYPE *GetInputPinCount)(
1205         IBaseVideoMixer* This,
1206         int* piPinCount);
1207
1208     HRESULT (STDMETHODCALLTYPE *IsUsingClock)(
1209         IBaseVideoMixer* This,
1210         int* pbValue);
1211
1212     HRESULT (STDMETHODCALLTYPE *SetUsingClock)(
1213         IBaseVideoMixer* This,
1214         int bValue);
1215
1216     HRESULT (STDMETHODCALLTYPE *GetClockPeriod)(
1217         IBaseVideoMixer* This,
1218         int* pbValue);
1219
1220     HRESULT (STDMETHODCALLTYPE *SetClockPeriod)(
1221         IBaseVideoMixer* This,
1222         int bValue);
1223
1224     END_INTERFACE
1225 };
1226
1227 #ifdef COBJMACROS
1228 /*** IUnknown methods ***/
1229 #define IBaseVideoMixer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1230 #define IBaseVideoMixer_AddRef(p) (p)->lpVtbl->AddRef(p)
1231 #define IBaseVideoMixer_Release(p) (p)->lpVtbl->Release(p)
1232 /*** IBaseVideoMixer methods ***/
1233 #define IBaseVideoMixer_SetLeadPin(p,a) (p)->lpVtbl->SetLeadPin(p,a)
1234 #define IBaseVideoMixer_GetLeadPin(p,a) (p)->lpVtbl->GetLeadPin(p,a)
1235 #define IBaseVideoMixer_GetInputPinCount(p,a) (p)->lpVtbl->GetInputPinCount(p,a)
1236 #define IBaseVideoMixer_IsUsingClock(p,a) (p)->lpVtbl->IsUsingClock(p,a)
1237 #define IBaseVideoMixer_SetUsingClock(p,a) (p)->lpVtbl->SetUsingClock(p,a)
1238 #define IBaseVideoMixer_GetClockPeriod(p,a) (p)->lpVtbl->GetClockPeriod(p,a)
1239 #define IBaseVideoMixer_SetClockPeriod(p,a) (p)->lpVtbl->SetClockPeriod(p,a)
1240 #endif
1241
1242 #endif
1243
1244 #define IBaseVideoMixer_METHODS \
1245     /*** IUnknown methods ***/ \
1246     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1247     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1248     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1249     /*** IBaseVideoMixer methods ***/ \
1250     STDMETHOD_(HRESULT,SetLeadPin)(THIS_ int iPin) PURE; \
1251     STDMETHOD_(HRESULT,GetLeadPin)(THIS_ int* piPin) PURE; \
1252     STDMETHOD_(HRESULT,GetInputPinCount)(THIS_ int* piPinCount) PURE; \
1253     STDMETHOD_(HRESULT,IsUsingClock)(THIS_ int* pbValue) PURE; \
1254     STDMETHOD_(HRESULT,SetUsingClock)(THIS_ int bValue) PURE; \
1255     STDMETHOD_(HRESULT,GetClockPeriod)(THIS_ int* pbValue) PURE; \
1256     STDMETHOD_(HRESULT,SetClockPeriod)(THIS_ int bValue) PURE;
1257
1258 HRESULT CALLBACK IBaseVideoMixer_SetLeadPin_Proxy(
1259     IBaseVideoMixer* This,
1260     int iPin);
1261 void __RPC_STUB IBaseVideoMixer_SetLeadPin_Stub(
1262     struct IRpcStubBuffer* This,
1263     struct IRpcChannelBuffer* pRpcChannelBuffer,
1264     PRPC_MESSAGE pRpcMessage,
1265     DWORD* pdwStubPhase);
1266 HRESULT CALLBACK IBaseVideoMixer_GetLeadPin_Proxy(
1267     IBaseVideoMixer* This,
1268     int* piPin);
1269 void __RPC_STUB IBaseVideoMixer_GetLeadPin_Stub(
1270     struct IRpcStubBuffer* This,
1271     struct IRpcChannelBuffer* pRpcChannelBuffer,
1272     PRPC_MESSAGE pRpcMessage,
1273     DWORD* pdwStubPhase);
1274 HRESULT CALLBACK IBaseVideoMixer_GetInputPinCount_Proxy(
1275     IBaseVideoMixer* This,
1276     int* piPinCount);
1277 void __RPC_STUB IBaseVideoMixer_GetInputPinCount_Stub(
1278     struct IRpcStubBuffer* This,
1279     struct IRpcChannelBuffer* pRpcChannelBuffer,
1280     PRPC_MESSAGE pRpcMessage,
1281     DWORD* pdwStubPhase);
1282 HRESULT CALLBACK IBaseVideoMixer_IsUsingClock_Proxy(
1283     IBaseVideoMixer* This,
1284     int* pbValue);
1285 void __RPC_STUB IBaseVideoMixer_IsUsingClock_Stub(
1286     struct IRpcStubBuffer* This,
1287     struct IRpcChannelBuffer* pRpcChannelBuffer,
1288     PRPC_MESSAGE pRpcMessage,
1289     DWORD* pdwStubPhase);
1290 HRESULT CALLBACK IBaseVideoMixer_SetUsingClock_Proxy(
1291     IBaseVideoMixer* This,
1292     int bValue);
1293 void __RPC_STUB IBaseVideoMixer_SetUsingClock_Stub(
1294     struct IRpcStubBuffer* This,
1295     struct IRpcChannelBuffer* pRpcChannelBuffer,
1296     PRPC_MESSAGE pRpcMessage,
1297     DWORD* pdwStubPhase);
1298 HRESULT CALLBACK IBaseVideoMixer_GetClockPeriod_Proxy(
1299     IBaseVideoMixer* This,
1300     int* pbValue);
1301 void __RPC_STUB IBaseVideoMixer_GetClockPeriod_Stub(
1302     struct IRpcStubBuffer* This,
1303     struct IRpcChannelBuffer* pRpcChannelBuffer,
1304     PRPC_MESSAGE pRpcMessage,
1305     DWORD* pdwStubPhase);
1306 HRESULT CALLBACK IBaseVideoMixer_SetClockPeriod_Proxy(
1307     IBaseVideoMixer* This,
1308     int bValue);
1309 void __RPC_STUB IBaseVideoMixer_SetClockPeriod_Stub(
1310     struct IRpcStubBuffer* This,
1311     struct IRpcChannelBuffer* pRpcChannelBuffer,
1312     PRPC_MESSAGE pRpcMessage,
1313     DWORD* pdwStubPhase);
1314
1315 #endif  /* __IBaseVideoMixer_INTERFACE_DEFINED__ */
1316
1317 #define iPALETTE_COLORS 256
1318 #define iEGA_COLORS 16
1319 #define iMASK_COLORS 3
1320 #define iTRUECOLOR 16
1321 #define iRED 0
1322 #define iGREEN 1
1323 #define iBLUE 2
1324 #define iPALETTE 8
1325 #define iMAXBITS 8
1326 typedef struct tag_TRUECOLORINFO {
1327     DWORD dwBitMasks[3];
1328     RGBQUAD bmiColors[256];
1329 } TRUECOLORINFO;
1330
1331 typedef struct tagVIDEOINFOHEADER {
1332     RECT rcSource;
1333     RECT rcTarget;
1334     DWORD dwBitRate;
1335     DWORD dwBitErrorRate;
1336     REFERENCE_TIME AvgTimePerFrame;
1337     BITMAPINFOHEADER bmiHeader;
1338 } VIDEOINFOHEADER;
1339
1340 typedef struct tagVIDEOINFO {
1341     RECT rcSource;
1342     RECT rcTarget;
1343     DWORD dwBitRate;
1344     DWORD dwBitErrorRate;
1345     REFERENCE_TIME AvgTimePerFrame;
1346     BITMAPINFOHEADER bmiHeader;
1347     union {
1348         RGBQUAD bmiColors[256];
1349         DWORD dwBitMasks[3];
1350         TRUECOLORINFO TrueColorInfo;
1351     } DUMMYUNIONNAME;
1352 } VIDEOINFO;
1353
1354 typedef struct tagMPEG1VIDEOINFO {
1355     VIDEOINFOHEADER hdr;
1356     DWORD dwStartTimeCode;
1357     DWORD cbSequenceHeader;
1358     BYTE bSequenceHeader[1];
1359 } MPEG1VIDEOINFO;
1360
1361 #define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
1362 #define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
1363 typedef struct tagAnalogVideoInfo {
1364     RECT rcSource;
1365     RECT rcTarget;
1366     DWORD dwActiveWidth;
1367     DWORD dwActiveHeight;
1368     REFERENCE_TIME AvgTimePerFrame;
1369 } ANALOGVIDEOINFO;
1370
1371 typedef enum {
1372     AM_PROPERTY_FRAMESTEP_STEP = 0x1,
1373     AM_PROPERTY_FRAMESTEP_CANCEL = 0x2,
1374     AM_PROPERTY_FRAMESTEP_CANSTEP = 0x3,
1375     AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x4
1376 } AM_PROPERTY_FRAMESTEP;
1377
1378 typedef struct _AM_FRAMESTEP_STEP {
1379     DWORD dwFramesToStep;
1380 } AM_FRAMESTEP_STEP;
1381
1382 #ifdef __cplusplus
1383 }
1384 #endif
1385 #endif /* __WIDL_AMVIDEO_H */