Return error from low level driver when necessary.
[wine/multimedia.git] / include / amvideo.h
blob0e593362f37ee7e9a374f5347a5a1ca031433165
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 BEGIN_INTERFACE
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);
199 END_INTERFACE
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
226 #endif
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;
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);
380 #endif /* __IDirectDrawVideo_INTERFACE_DEFINED__ */
382 #ifndef __IQualProp_FWD_DEFINED__
383 #define __IQualProp_FWD_DEFINED__
384 typedef struct IQualProp IQualProp;
385 #endif
387 /*****************************************************************************
388 * IQualProp interface
390 #ifndef __IQualProp_INTERFACE_DEFINED__
391 #define __IQualProp_INTERFACE_DEFINED__
393 #if defined(__cplusplus) && !defined(CINTERFACE)
394 struct IQualProp : public IUnknown
396 virtual HRESULT STDMETHODCALLTYPE get_FramesDroppedInRenderer(
397 int* pcFrames) = 0;
399 virtual HRESULT STDMETHODCALLTYPE get_FramesDrawn(
400 int* pcFramesDrawn) = 0;
402 virtual HRESULT STDMETHODCALLTYPE get_AvgFrameRate(
403 int* piAvgFrameRate) = 0;
405 virtual HRESULT STDMETHODCALLTYPE get_Jitter(
406 int* iJitter) = 0;
408 virtual HRESULT STDMETHODCALLTYPE get_AvgSyncOffset(
409 int* piAvg) = 0;
411 virtual HRESULT STDMETHODCALLTYPE get_DevSyncOffset(
412 int* piDev) = 0;
415 #else
416 typedef struct IQualPropVtbl IQualPropVtbl;
417 struct IQualProp {
418 const IQualPropVtbl* lpVtbl;
420 struct IQualPropVtbl {
421 BEGIN_INTERFACE
423 /*** IUnknown methods ***/
424 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
425 IQualProp* This,
426 REFIID riid,
427 void** ppvObject);
429 ULONG (STDMETHODCALLTYPE *AddRef)(
430 IQualProp* This);
432 ULONG (STDMETHODCALLTYPE *Release)(
433 IQualProp* This);
435 /*** IQualProp methods ***/
436 HRESULT (STDMETHODCALLTYPE *get_FramesDroppedInRenderer)(
437 IQualProp* This,
438 int* pcFrames);
440 HRESULT (STDMETHODCALLTYPE *get_FramesDrawn)(
441 IQualProp* This,
442 int* pcFramesDrawn);
444 HRESULT (STDMETHODCALLTYPE *get_AvgFrameRate)(
445 IQualProp* This,
446 int* piAvgFrameRate);
448 HRESULT (STDMETHODCALLTYPE *get_Jitter)(
449 IQualProp* This,
450 int* iJitter);
452 HRESULT (STDMETHODCALLTYPE *get_AvgSyncOffset)(
453 IQualProp* This,
454 int* piAvg);
456 HRESULT (STDMETHODCALLTYPE *get_DevSyncOffset)(
457 IQualProp* This,
458 int* piDev);
460 END_INTERFACE
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
477 #endif
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;
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);
541 #endif /* __IQualProp_INTERFACE_DEFINED__ */
543 #ifndef __IFullScreenVideo_FWD_DEFINED__
544 #define __IFullScreenVideo_FWD_DEFINED__
545 typedef struct IFullScreenVideo IFullScreenVideo;
546 #endif
548 /*****************************************************************************
549 * IFullScreenVideo interface
551 #ifndef __IFullScreenVideo_INTERFACE_DEFINED__
552 #define __IFullScreenVideo_INTERFACE_DEFINED__
554 #if defined(__cplusplus) && !defined(CINTERFACE)
555 struct IFullScreenVideo : public IUnknown
557 virtual HRESULT STDMETHODCALLTYPE CountModes(
558 long* pModes) = 0;
560 virtual HRESULT STDMETHODCALLTYPE GetModeInfo(
561 long Mode,
562 long* pWidth,
563 long* pHeight,
564 long* pDepth) = 0;
566 virtual HRESULT STDMETHODCALLTYPE GetCurrentMode(
567 long* pMode) = 0;
569 virtual HRESULT STDMETHODCALLTYPE IsModeAvailable(
570 long Mode) = 0;
572 virtual HRESULT STDMETHODCALLTYPE IsModeEnabled(
573 long Mode) = 0;
575 virtual HRESULT STDMETHODCALLTYPE SetEnabled(
576 long Mode,
577 long bEnabled) = 0;
579 virtual HRESULT STDMETHODCALLTYPE GetClipFactor(
580 long* pClipFactor) = 0;
582 virtual HRESULT STDMETHODCALLTYPE SetClipFactor(
583 long ClipFactor) = 0;
585 virtual HRESULT STDMETHODCALLTYPE SetMessageDrain(
586 HWND hwnd) = 0;
588 virtual HRESULT STDMETHODCALLTYPE GetMessageDrain(
589 HWND* hwnd) = 0;
591 virtual HRESULT STDMETHODCALLTYPE SetMonitor(
592 long Monitor) = 0;
594 virtual HRESULT STDMETHODCALLTYPE GetMonitor(
595 long* Monitor) = 0;
597 virtual HRESULT STDMETHODCALLTYPE HideOnDeactivate(
598 long Hide) = 0;
600 virtual HRESULT STDMETHODCALLTYPE IsHideOnDeactivate(
601 ) = 0;
603 virtual HRESULT STDMETHODCALLTYPE SetCaption(
604 BSTR strCaption) = 0;
606 virtual HRESULT STDMETHODCALLTYPE GetCaption(
607 BSTR* pstrCaption) = 0;
609 virtual HRESULT STDMETHODCALLTYPE SetDefault(
610 ) = 0;
613 #else
614 typedef struct IFullScreenVideoVtbl IFullScreenVideoVtbl;
615 struct IFullScreenVideo {
616 const IFullScreenVideoVtbl* lpVtbl;
618 struct IFullScreenVideoVtbl {
619 BEGIN_INTERFACE
621 /*** IUnknown methods ***/
622 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
623 IFullScreenVideo* This,
624 REFIID riid,
625 void** ppvObject);
627 ULONG (STDMETHODCALLTYPE *AddRef)(
628 IFullScreenVideo* This);
630 ULONG (STDMETHODCALLTYPE *Release)(
631 IFullScreenVideo* This);
633 /*** IFullScreenVideo methods ***/
634 HRESULT (STDMETHODCALLTYPE *CountModes)(
635 IFullScreenVideo* This,
636 long* pModes);
638 HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
639 IFullScreenVideo* This,
640 long Mode,
641 long* pWidth,
642 long* pHeight,
643 long* pDepth);
645 HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
646 IFullScreenVideo* This,
647 long* pMode);
649 HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
650 IFullScreenVideo* This,
651 long Mode);
653 HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
654 IFullScreenVideo* This,
655 long Mode);
657 HRESULT (STDMETHODCALLTYPE *SetEnabled)(
658 IFullScreenVideo* This,
659 long Mode,
660 long bEnabled);
662 HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
663 IFullScreenVideo* This,
664 long* pClipFactor);
666 HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
667 IFullScreenVideo* This,
668 long ClipFactor);
670 HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
671 IFullScreenVideo* This,
672 HWND hwnd);
674 HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
675 IFullScreenVideo* This,
676 HWND* hwnd);
678 HRESULT (STDMETHODCALLTYPE *SetMonitor)(
679 IFullScreenVideo* This,
680 long Monitor);
682 HRESULT (STDMETHODCALLTYPE *GetMonitor)(
683 IFullScreenVideo* This,
684 long* Monitor);
686 HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
687 IFullScreenVideo* This,
688 long Hide);
690 HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
691 IFullScreenVideo* This);
693 HRESULT (STDMETHODCALLTYPE *SetCaption)(
694 IFullScreenVideo* This,
695 BSTR strCaption);
697 HRESULT (STDMETHODCALLTYPE *GetCaption)(
698 IFullScreenVideo* This,
699 BSTR* pstrCaption);
701 HRESULT (STDMETHODCALLTYPE *SetDefault)(
702 IFullScreenVideo* This);
704 END_INTERFACE
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
732 #endif
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;
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);
897 #endif /* __IFullScreenVideo_INTERFACE_DEFINED__ */
899 #ifndef __IFullScreenVideoEx_FWD_DEFINED__
900 #define __IFullScreenVideoEx_FWD_DEFINED__
901 typedef struct IFullScreenVideoEx IFullScreenVideoEx;
902 #endif
904 /*****************************************************************************
905 * IFullScreenVideoEx interface
907 #ifndef __IFullScreenVideoEx_INTERFACE_DEFINED__
908 #define __IFullScreenVideoEx_INTERFACE_DEFINED__
910 #if defined(__cplusplus) && !defined(CINTERFACE)
911 struct IFullScreenVideoEx : public IFullScreenVideo
913 virtual HRESULT STDMETHODCALLTYPE SetAcceleratorTable(
914 HWND hwnd,
915 HACCEL hAccel) = 0;
917 virtual HRESULT STDMETHODCALLTYPE GetAcceleratorTable(
918 HWND* phwnd,
919 HACCEL* phAccel) = 0;
921 virtual HRESULT STDMETHODCALLTYPE KeepPixelAspectRatio(
922 long KeepAspect) = 0;
924 virtual HRESULT STDMETHODCALLTYPE IsKeepPixelAspectRatio(
925 long* pKeepAspect) = 0;
928 #else
929 typedef struct IFullScreenVideoExVtbl IFullScreenVideoExVtbl;
930 struct IFullScreenVideoEx {
931 const IFullScreenVideoExVtbl* lpVtbl;
933 struct IFullScreenVideoExVtbl {
934 BEGIN_INTERFACE
936 /*** IUnknown methods ***/
937 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
938 IFullScreenVideoEx* This,
939 REFIID riid,
940 void** ppvObject);
942 ULONG (STDMETHODCALLTYPE *AddRef)(
943 IFullScreenVideoEx* This);
945 ULONG (STDMETHODCALLTYPE *Release)(
946 IFullScreenVideoEx* This);
948 /*** IFullScreenVideo methods ***/
949 HRESULT (STDMETHODCALLTYPE *CountModes)(
950 IFullScreenVideoEx* This,
951 long* pModes);
953 HRESULT (STDMETHODCALLTYPE *GetModeInfo)(
954 IFullScreenVideoEx* This,
955 long Mode,
956 long* pWidth,
957 long* pHeight,
958 long* pDepth);
960 HRESULT (STDMETHODCALLTYPE *GetCurrentMode)(
961 IFullScreenVideoEx* This,
962 long* pMode);
964 HRESULT (STDMETHODCALLTYPE *IsModeAvailable)(
965 IFullScreenVideoEx* This,
966 long Mode);
968 HRESULT (STDMETHODCALLTYPE *IsModeEnabled)(
969 IFullScreenVideoEx* This,
970 long Mode);
972 HRESULT (STDMETHODCALLTYPE *SetEnabled)(
973 IFullScreenVideoEx* This,
974 long Mode,
975 long bEnabled);
977 HRESULT (STDMETHODCALLTYPE *GetClipFactor)(
978 IFullScreenVideoEx* This,
979 long* pClipFactor);
981 HRESULT (STDMETHODCALLTYPE *SetClipFactor)(
982 IFullScreenVideoEx* This,
983 long ClipFactor);
985 HRESULT (STDMETHODCALLTYPE *SetMessageDrain)(
986 IFullScreenVideoEx* This,
987 HWND hwnd);
989 HRESULT (STDMETHODCALLTYPE *GetMessageDrain)(
990 IFullScreenVideoEx* This,
991 HWND* hwnd);
993 HRESULT (STDMETHODCALLTYPE *SetMonitor)(
994 IFullScreenVideoEx* This,
995 long Monitor);
997 HRESULT (STDMETHODCALLTYPE *GetMonitor)(
998 IFullScreenVideoEx* This,
999 long* Monitor);
1001 HRESULT (STDMETHODCALLTYPE *HideOnDeactivate)(
1002 IFullScreenVideoEx* This,
1003 long Hide);
1005 HRESULT (STDMETHODCALLTYPE *IsHideOnDeactivate)(
1006 IFullScreenVideoEx* This);
1008 HRESULT (STDMETHODCALLTYPE *SetCaption)(
1009 IFullScreenVideoEx* This,
1010 BSTR strCaption);
1012 HRESULT (STDMETHODCALLTYPE *GetCaption)(
1013 IFullScreenVideoEx* This,
1014 BSTR* pstrCaption);
1016 HRESULT (STDMETHODCALLTYPE *SetDefault)(
1017 IFullScreenVideoEx* This);
1019 /*** IFullScreenVideoEx methods ***/
1020 HRESULT (STDMETHODCALLTYPE *SetAcceleratorTable)(
1021 IFullScreenVideoEx* This,
1022 HWND hwnd,
1023 HACCEL hAccel);
1025 HRESULT (STDMETHODCALLTYPE *GetAcceleratorTable)(
1026 IFullScreenVideoEx* This,
1027 HWND* phwnd,
1028 HACCEL* phAccel);
1030 HRESULT (STDMETHODCALLTYPE *KeepPixelAspectRatio)(
1031 IFullScreenVideoEx* This,
1032 long KeepAspect);
1034 HRESULT (STDMETHODCALLTYPE *IsKeepPixelAspectRatio)(
1035 IFullScreenVideoEx* This,
1036 long* pKeepAspect);
1038 END_INTERFACE
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
1071 #endif
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;
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);
1137 #endif /* __IFullScreenVideoEx_INTERFACE_DEFINED__ */
1139 #ifndef __IBaseVideoMixer_FWD_DEFINED__
1140 #define __IBaseVideoMixer_FWD_DEFINED__
1141 typedef struct IBaseVideoMixer IBaseVideoMixer;
1142 #endif
1144 /*****************************************************************************
1145 * IBaseVideoMixer interface
1147 #ifndef __IBaseVideoMixer_INTERFACE_DEFINED__
1148 #define __IBaseVideoMixer_INTERFACE_DEFINED__
1150 #if defined(__cplusplus) && !defined(CINTERFACE)
1151 struct IBaseVideoMixer : public IUnknown
1153 virtual HRESULT STDMETHODCALLTYPE SetLeadPin(
1154 int iPin) = 0;
1156 virtual HRESULT STDMETHODCALLTYPE GetLeadPin(
1157 int* piPin) = 0;
1159 virtual HRESULT STDMETHODCALLTYPE GetInputPinCount(
1160 int* piPinCount) = 0;
1162 virtual HRESULT STDMETHODCALLTYPE IsUsingClock(
1163 int* pbValue) = 0;
1165 virtual HRESULT STDMETHODCALLTYPE SetUsingClock(
1166 int bValue) = 0;
1168 virtual HRESULT STDMETHODCALLTYPE GetClockPeriod(
1169 int* pbValue) = 0;
1171 virtual HRESULT STDMETHODCALLTYPE SetClockPeriod(
1172 int bValue) = 0;
1175 #else
1176 typedef struct IBaseVideoMixerVtbl IBaseVideoMixerVtbl;
1177 struct IBaseVideoMixer {
1178 const IBaseVideoMixerVtbl* lpVtbl;
1180 struct IBaseVideoMixerVtbl {
1181 BEGIN_INTERFACE
1183 /*** IUnknown methods ***/
1184 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1185 IBaseVideoMixer* This,
1186 REFIID riid,
1187 void** ppvObject);
1189 ULONG (STDMETHODCALLTYPE *AddRef)(
1190 IBaseVideoMixer* This);
1192 ULONG (STDMETHODCALLTYPE *Release)(
1193 IBaseVideoMixer* This);
1195 /*** IBaseVideoMixer methods ***/
1196 HRESULT (STDMETHODCALLTYPE *SetLeadPin)(
1197 IBaseVideoMixer* This,
1198 int iPin);
1200 HRESULT (STDMETHODCALLTYPE *GetLeadPin)(
1201 IBaseVideoMixer* This,
1202 int* piPin);
1204 HRESULT (STDMETHODCALLTYPE *GetInputPinCount)(
1205 IBaseVideoMixer* This,
1206 int* piPinCount);
1208 HRESULT (STDMETHODCALLTYPE *IsUsingClock)(
1209 IBaseVideoMixer* This,
1210 int* pbValue);
1212 HRESULT (STDMETHODCALLTYPE *SetUsingClock)(
1213 IBaseVideoMixer* This,
1214 int bValue);
1216 HRESULT (STDMETHODCALLTYPE *GetClockPeriod)(
1217 IBaseVideoMixer* This,
1218 int* pbValue);
1220 HRESULT (STDMETHODCALLTYPE *SetClockPeriod)(
1221 IBaseVideoMixer* This,
1222 int bValue);
1224 END_INTERFACE
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
1242 #endif
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;
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);
1315 #endif /* __IBaseVideoMixer_INTERFACE_DEFINED__ */
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;
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;
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;
1354 typedef struct tagMPEG1VIDEOINFO {
1355 VIDEOINFOHEADER hdr;
1356 DWORD dwStartTimeCode;
1357 DWORD cbSequenceHeader;
1358 BYTE bSequenceHeader[1];
1359 } MPEG1VIDEOINFO;
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;
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;
1378 typedef struct _AM_FRAMESTEP_STEP {
1379 DWORD dwFramesToStep;
1380 } AM_FRAMESTEP_STEP;
1382 #ifdef __cplusplus
1384 #endif
1385 #endif /* __WIDL_AMVIDEO_H */