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