source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mediaobj.h@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 36.3 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/mediaobj.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __mediaobj_h__
17#define __mediaobj_h__
18
19/* Forward declarations */
20
21#ifndef __IEnumDMO_FWD_DEFINED__
22#define __IEnumDMO_FWD_DEFINED__
23typedef interface IEnumDMO IEnumDMO;
24#ifdef __cplusplus
25interface IEnumDMO;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMediaBuffer_FWD_DEFINED__
30#define __IMediaBuffer_FWD_DEFINED__
31typedef interface IMediaBuffer IMediaBuffer;
32#ifdef __cplusplus
33interface IMediaBuffer;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMediaObject_FWD_DEFINED__
38#define __IMediaObject_FWD_DEFINED__
39typedef interface IMediaObject IMediaObject;
40#ifdef __cplusplus
41interface IMediaObject;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMediaObjectInPlace_FWD_DEFINED__
46#define __IMediaObjectInPlace_FWD_DEFINED__
47typedef interface IMediaObjectInPlace IMediaObjectInPlace;
48#ifdef __cplusplus
49interface IMediaObjectInPlace;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDMOQualityControl_FWD_DEFINED__
54#define __IDMOQualityControl_FWD_DEFINED__
55typedef interface IDMOQualityControl IDMOQualityControl;
56#ifdef __cplusplus
57interface IDMOQualityControl;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__
62#define __IDMOVideoOutputOptimizations_FWD_DEFINED__
63typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
64#ifdef __cplusplus
65interface IDMOVideoOutputOptimizations;
66#endif /* __cplusplus */
67#endif
68
69/* Headers for imported files */
70
71#include <unknwn.h>
72#include <objidl.h>
73#include <strmif.h>
74
75#ifdef __cplusplus
76extern "C" {
77#endif
78
79typedef struct _DMOMediaType {
80 GUID majortype;
81 GUID subtype;
82 WINBOOL bFixedSizeSamples;
83 WINBOOL bTemporalCompression;
84 ULONG lSampleSize;
85 GUID formattype;
86 IUnknown *pUnk;
87 ULONG cbFormat;
88 BYTE *pbFormat;
89} DMO_MEDIA_TYPE;
90/*****************************************************************************
91 * IEnumDMO interface
92 */
93#ifndef __IEnumDMO_INTERFACE_DEFINED__
94#define __IEnumDMO_INTERFACE_DEFINED__
95
96DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f);
97#if defined(__cplusplus) && !defined(CINTERFACE)
98MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
99IEnumDMO : public IUnknown
100{
101 virtual HRESULT STDMETHODCALLTYPE Next(
102 DWORD cItemsToFetch,
103 CLSID *pCLSID,
104 WCHAR **Names,
105 DWORD *pcItemsFetched) = 0;
106
107 virtual HRESULT STDMETHODCALLTYPE Skip(
108 DWORD cItemsToSkip) = 0;
109
110 virtual HRESULT STDMETHODCALLTYPE Reset(
111 ) = 0;
112
113 virtual HRESULT STDMETHODCALLTYPE Clone(
114 IEnumDMO **ppEnum) = 0;
115
116};
117#ifdef __CRT_UUID_DECL
118__CRT_UUID_DECL(IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f)
119#endif
120#else
121typedef struct IEnumDMOVtbl {
122 BEGIN_INTERFACE
123
124 /*** IUnknown methods ***/
125 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
126 IEnumDMO *This,
127 REFIID riid,
128 void **ppvObject);
129
130 ULONG (STDMETHODCALLTYPE *AddRef)(
131 IEnumDMO *This);
132
133 ULONG (STDMETHODCALLTYPE *Release)(
134 IEnumDMO *This);
135
136 /*** IEnumDMO methods ***/
137 HRESULT (STDMETHODCALLTYPE *Next)(
138 IEnumDMO *This,
139 DWORD cItemsToFetch,
140 CLSID *pCLSID,
141 WCHAR **Names,
142 DWORD *pcItemsFetched);
143
144 HRESULT (STDMETHODCALLTYPE *Skip)(
145 IEnumDMO *This,
146 DWORD cItemsToSkip);
147
148 HRESULT (STDMETHODCALLTYPE *Reset)(
149 IEnumDMO *This);
150
151 HRESULT (STDMETHODCALLTYPE *Clone)(
152 IEnumDMO *This,
153 IEnumDMO **ppEnum);
154
155 END_INTERFACE
156} IEnumDMOVtbl;
157
158interface IEnumDMO {
159 CONST_VTBL IEnumDMOVtbl* lpVtbl;
160};
161
162#ifdef COBJMACROS
163#ifndef WIDL_C_INLINE_WRAPPERS
164/*** IUnknown methods ***/
165#define IEnumDMO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
166#define IEnumDMO_AddRef(This) (This)->lpVtbl->AddRef(This)
167#define IEnumDMO_Release(This) (This)->lpVtbl->Release(This)
168/*** IEnumDMO methods ***/
169#define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched) (This)->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)
170#define IEnumDMO_Skip(This,cItemsToSkip) (This)->lpVtbl->Skip(This,cItemsToSkip)
171#define IEnumDMO_Reset(This) (This)->lpVtbl->Reset(This)
172#define IEnumDMO_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
173#else
174/*** IUnknown methods ***/
175static FORCEINLINE HRESULT IEnumDMO_QueryInterface(IEnumDMO* This,REFIID riid,void **ppvObject) {
176 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
177}
178static FORCEINLINE ULONG IEnumDMO_AddRef(IEnumDMO* This) {
179 return This->lpVtbl->AddRef(This);
180}
181static FORCEINLINE ULONG IEnumDMO_Release(IEnumDMO* This) {
182 return This->lpVtbl->Release(This);
183}
184/*** IEnumDMO methods ***/
185static FORCEINLINE HRESULT IEnumDMO_Next(IEnumDMO* This,DWORD cItemsToFetch,CLSID *pCLSID,WCHAR **Names,DWORD *pcItemsFetched) {
186 return This->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched);
187}
188static FORCEINLINE HRESULT IEnumDMO_Skip(IEnumDMO* This,DWORD cItemsToSkip) {
189 return This->lpVtbl->Skip(This,cItemsToSkip);
190}
191static FORCEINLINE HRESULT IEnumDMO_Reset(IEnumDMO* This) {
192 return This->lpVtbl->Reset(This);
193}
194static FORCEINLINE HRESULT IEnumDMO_Clone(IEnumDMO* This,IEnumDMO **ppEnum) {
195 return This->lpVtbl->Clone(This,ppEnum);
196}
197#endif
198#endif
199
200#endif
201
202
203#endif /* __IEnumDMO_INTERFACE_DEFINED__ */
204
205/*****************************************************************************
206 * IMediaBuffer interface
207 */
208#ifndef __IMediaBuffer_INTERFACE_DEFINED__
209#define __IMediaBuffer_INTERFACE_DEFINED__
210
211DEFINE_GUID(IID_IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37);
212#if defined(__cplusplus) && !defined(CINTERFACE)
213MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837")
214IMediaBuffer : public IUnknown
215{
216 virtual HRESULT STDMETHODCALLTYPE SetLength(
217 DWORD cbLength) = 0;
218
219 virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
220 DWORD *pcbMaxLength) = 0;
221
222 virtual HRESULT STDMETHODCALLTYPE GetBufferAndLength(
223 BYTE **ppBuffer,
224 DWORD *pcbLength) = 0;
225
226};
227#ifdef __CRT_UUID_DECL
228__CRT_UUID_DECL(IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37)
229#endif
230#else
231typedef struct IMediaBufferVtbl {
232 BEGIN_INTERFACE
233
234 /*** IUnknown methods ***/
235 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
236 IMediaBuffer *This,
237 REFIID riid,
238 void **ppvObject);
239
240 ULONG (STDMETHODCALLTYPE *AddRef)(
241 IMediaBuffer *This);
242
243 ULONG (STDMETHODCALLTYPE *Release)(
244 IMediaBuffer *This);
245
246 /*** IMediaBuffer methods ***/
247 HRESULT (STDMETHODCALLTYPE *SetLength)(
248 IMediaBuffer *This,
249 DWORD cbLength);
250
251 HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
252 IMediaBuffer *This,
253 DWORD *pcbMaxLength);
254
255 HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)(
256 IMediaBuffer *This,
257 BYTE **ppBuffer,
258 DWORD *pcbLength);
259
260 END_INTERFACE
261} IMediaBufferVtbl;
262
263interface IMediaBuffer {
264 CONST_VTBL IMediaBufferVtbl* lpVtbl;
265};
266
267#ifdef COBJMACROS
268#ifndef WIDL_C_INLINE_WRAPPERS
269/*** IUnknown methods ***/
270#define IMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
271#define IMediaBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
272#define IMediaBuffer_Release(This) (This)->lpVtbl->Release(This)
273/*** IMediaBuffer methods ***/
274#define IMediaBuffer_SetLength(This,cbLength) (This)->lpVtbl->SetLength(This,cbLength)
275#define IMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength)
276#define IMediaBuffer_GetBufferAndLength(This,ppBuffer,pcbLength) (This)->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength)
277#else
278/*** IUnknown methods ***/
279static FORCEINLINE HRESULT IMediaBuffer_QueryInterface(IMediaBuffer* This,REFIID riid,void **ppvObject) {
280 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
281}
282static FORCEINLINE ULONG IMediaBuffer_AddRef(IMediaBuffer* This) {
283 return This->lpVtbl->AddRef(This);
284}
285static FORCEINLINE ULONG IMediaBuffer_Release(IMediaBuffer* This) {
286 return This->lpVtbl->Release(This);
287}
288/*** IMediaBuffer methods ***/
289static FORCEINLINE HRESULT IMediaBuffer_SetLength(IMediaBuffer* This,DWORD cbLength) {
290 return This->lpVtbl->SetLength(This,cbLength);
291}
292static FORCEINLINE HRESULT IMediaBuffer_GetMaxLength(IMediaBuffer* This,DWORD *pcbMaxLength) {
293 return This->lpVtbl->GetMaxLength(This,pcbMaxLength);
294}
295static FORCEINLINE HRESULT IMediaBuffer_GetBufferAndLength(IMediaBuffer* This,BYTE **ppBuffer,DWORD *pcbLength) {
296 return This->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength);
297}
298#endif
299#endif
300
301#endif
302
303
304#endif /* __IMediaBuffer_INTERFACE_DEFINED__ */
305
306enum _DMO_INPUT_STATUS_FLAGS {
307 DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1
308};
309enum _DMO_INPUT_DATA_BUFFER_FLAGS {
310 DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
311 DMO_INPUT_DATA_BUFFERF_TIME = 0x2,
312 DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4
313};
314enum _DMO_PROCESS_OUTPUT_FLAGS {
315 DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1
316};
317typedef struct _DMO_OUTPUT_DATA_BUFFER {
318 IMediaBuffer *pBuffer;
319 DWORD dwStatus;
320 REFERENCE_TIME rtTimestamp;
321 REFERENCE_TIME rtTimelength;
322} DMO_OUTPUT_DATA_BUFFER;
323typedef struct _DMO_OUTPUT_DATA_BUFFER *PDMO_OUTPUT_DATA_BUFFER;
324enum _DMO_INPLACE_PROCESS_FLAGS {
325 DMO_INPLACE_NORMAL = 0x0,
326 DMO_INPLACE_ZERO = 0x1
327};
328enum _DMO_SET_TYPE_FLAGS {
329 DMO_SET_TYPEF_TEST_ONLY = 0x1,
330 DMO_SET_TYPEF_CLEAR = 0x2
331};
332enum _DMO_OUTPUT_DATA_BUFFERF_FLAGS {
333 DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
334 DMO_OUTPUT_DATA_BUFFERF_TIME = 0x2,
335 DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x4,
336 DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x1000000
337};
338/*****************************************************************************
339 * IMediaObject interface
340 */
341#ifndef __IMediaObject_INTERFACE_DEFINED__
342#define __IMediaObject_INTERFACE_DEFINED__
343
344DEFINE_GUID(IID_IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4);
345#if defined(__cplusplus) && !defined(CINTERFACE)
346MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4")
347IMediaObject : public IUnknown
348{
349 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
350 DWORD *pcInputStreams,
351 DWORD *pcOutputStreams) = 0;
352
353 virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo(
354 DWORD dwInputStreamIndex,
355 DWORD *pdwFlags) = 0;
356
357 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo(
358 DWORD dwOutputStreamIndex,
359 DWORD *pdwFlags) = 0;
360
361 virtual HRESULT STDMETHODCALLTYPE GetInputType(
362 DWORD dwInputStreamIndex,
363 DWORD dwTypeIndex,
364 DMO_MEDIA_TYPE *pmt) = 0;
365
366 virtual HRESULT STDMETHODCALLTYPE GetOutputType(
367 DWORD dwOutputStreamIndex,
368 DWORD dwTypeIndex,
369 DMO_MEDIA_TYPE *pmt) = 0;
370
371 virtual HRESULT STDMETHODCALLTYPE SetInputType(
372 DWORD dwInputStreamIndex,
373 const DMO_MEDIA_TYPE *pmt,
374 DWORD dwFlags) = 0;
375
376 virtual HRESULT STDMETHODCALLTYPE SetOutputType(
377 DWORD dwOutputStreamIndex,
378 const DMO_MEDIA_TYPE *pmt,
379 DWORD dwFlags) = 0;
380
381 virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType(
382 DWORD dwInputStreamIndex,
383 DMO_MEDIA_TYPE *pmt) = 0;
384
385 virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType(
386 DWORD dwOutputStreamIndex,
387 DMO_MEDIA_TYPE *pmt) = 0;
388
389 virtual HRESULT STDMETHODCALLTYPE GetInputSizeInfo(
390 DWORD dwInputStreamIndex,
391 DWORD *pcbSize,
392 DWORD *pcbMaxLookahead,
393 DWORD *pcbAlignment) = 0;
394
395 virtual HRESULT STDMETHODCALLTYPE GetOutputSizeInfo(
396 DWORD dwOutputStreamIndex,
397 DWORD *pcbSize,
398 DWORD *pcbAlignment) = 0;
399
400 virtual HRESULT STDMETHODCALLTYPE GetInputMaxLatency(
401 DWORD dwInputStreamIndex,
402 REFERENCE_TIME *prtMaxLatency) = 0;
403
404 virtual HRESULT STDMETHODCALLTYPE SetInputMaxLatency(
405 DWORD dwInputStreamIndex,
406 REFERENCE_TIME rtMaxLatency) = 0;
407
408 virtual HRESULT STDMETHODCALLTYPE Flush(
409 ) = 0;
410
411 virtual HRESULT STDMETHODCALLTYPE Discontinuity(
412 DWORD dwInputStreamIndex) = 0;
413
414 virtual HRESULT STDMETHODCALLTYPE AllocateStreamingResources(
415 ) = 0;
416
417 virtual HRESULT STDMETHODCALLTYPE FreeStreamingResources(
418 ) = 0;
419
420 virtual HRESULT STDMETHODCALLTYPE GetInputStatus(
421 DWORD dwInputStreamIndex,
422 DWORD *dwFlags) = 0;
423
424 virtual HRESULT STDMETHODCALLTYPE ProcessInput(
425 DWORD dwInputStreamIndex,
426 IMediaBuffer *pBuffer,
427 DWORD dwFlags,
428 REFERENCE_TIME rtTimestamp,
429 REFERENCE_TIME rtTimelength) = 0;
430
431 virtual HRESULT STDMETHODCALLTYPE ProcessOutput(
432 DWORD dwFlags,
433 DWORD cOutputBufferCount,
434 DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
435 DWORD *pdwStatus) = 0;
436
437 virtual HRESULT STDMETHODCALLTYPE Lock(
438 LONG bLock) = 0;
439
440};
441#ifdef __CRT_UUID_DECL
442__CRT_UUID_DECL(IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4)
443#endif
444#else
445typedef struct IMediaObjectVtbl {
446 BEGIN_INTERFACE
447
448 /*** IUnknown methods ***/
449 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
450 IMediaObject *This,
451 REFIID riid,
452 void **ppvObject);
453
454 ULONG (STDMETHODCALLTYPE *AddRef)(
455 IMediaObject *This);
456
457 ULONG (STDMETHODCALLTYPE *Release)(
458 IMediaObject *This);
459
460 /*** IMediaObject methods ***/
461 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
462 IMediaObject *This,
463 DWORD *pcInputStreams,
464 DWORD *pcOutputStreams);
465
466 HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)(
467 IMediaObject *This,
468 DWORD dwInputStreamIndex,
469 DWORD *pdwFlags);
470
471 HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)(
472 IMediaObject *This,
473 DWORD dwOutputStreamIndex,
474 DWORD *pdwFlags);
475
476 HRESULT (STDMETHODCALLTYPE *GetInputType)(
477 IMediaObject *This,
478 DWORD dwInputStreamIndex,
479 DWORD dwTypeIndex,
480 DMO_MEDIA_TYPE *pmt);
481
482 HRESULT (STDMETHODCALLTYPE *GetOutputType)(
483 IMediaObject *This,
484 DWORD dwOutputStreamIndex,
485 DWORD dwTypeIndex,
486 DMO_MEDIA_TYPE *pmt);
487
488 HRESULT (STDMETHODCALLTYPE *SetInputType)(
489 IMediaObject *This,
490 DWORD dwInputStreamIndex,
491 const DMO_MEDIA_TYPE *pmt,
492 DWORD dwFlags);
493
494 HRESULT (STDMETHODCALLTYPE *SetOutputType)(
495 IMediaObject *This,
496 DWORD dwOutputStreamIndex,
497 const DMO_MEDIA_TYPE *pmt,
498 DWORD dwFlags);
499
500 HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)(
501 IMediaObject *This,
502 DWORD dwInputStreamIndex,
503 DMO_MEDIA_TYPE *pmt);
504
505 HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)(
506 IMediaObject *This,
507 DWORD dwOutputStreamIndex,
508 DMO_MEDIA_TYPE *pmt);
509
510 HRESULT (STDMETHODCALLTYPE *GetInputSizeInfo)(
511 IMediaObject *This,
512 DWORD dwInputStreamIndex,
513 DWORD *pcbSize,
514 DWORD *pcbMaxLookahead,
515 DWORD *pcbAlignment);
516
517 HRESULT (STDMETHODCALLTYPE *GetOutputSizeInfo)(
518 IMediaObject *This,
519 DWORD dwOutputStreamIndex,
520 DWORD *pcbSize,
521 DWORD *pcbAlignment);
522
523 HRESULT (STDMETHODCALLTYPE *GetInputMaxLatency)(
524 IMediaObject *This,
525 DWORD dwInputStreamIndex,
526 REFERENCE_TIME *prtMaxLatency);
527
528 HRESULT (STDMETHODCALLTYPE *SetInputMaxLatency)(
529 IMediaObject *This,
530 DWORD dwInputStreamIndex,
531 REFERENCE_TIME rtMaxLatency);
532
533 HRESULT (STDMETHODCALLTYPE *Flush)(
534 IMediaObject *This);
535
536 HRESULT (STDMETHODCALLTYPE *Discontinuity)(
537 IMediaObject *This,
538 DWORD dwInputStreamIndex);
539
540 HRESULT (STDMETHODCALLTYPE *AllocateStreamingResources)(
541 IMediaObject *This);
542
543 HRESULT (STDMETHODCALLTYPE *FreeStreamingResources)(
544 IMediaObject *This);
545
546 HRESULT (STDMETHODCALLTYPE *GetInputStatus)(
547 IMediaObject *This,
548 DWORD dwInputStreamIndex,
549 DWORD *dwFlags);
550
551 HRESULT (STDMETHODCALLTYPE *ProcessInput)(
552 IMediaObject *This,
553 DWORD dwInputStreamIndex,
554 IMediaBuffer *pBuffer,
555 DWORD dwFlags,
556 REFERENCE_TIME rtTimestamp,
557 REFERENCE_TIME rtTimelength);
558
559 HRESULT (STDMETHODCALLTYPE *ProcessOutput)(
560 IMediaObject *This,
561 DWORD dwFlags,
562 DWORD cOutputBufferCount,
563 DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
564 DWORD *pdwStatus);
565
566 HRESULT (STDMETHODCALLTYPE *Lock)(
567 IMediaObject *This,
568 LONG bLock);
569
570 END_INTERFACE
571} IMediaObjectVtbl;
572
573interface IMediaObject {
574 CONST_VTBL IMediaObjectVtbl* lpVtbl;
575};
576
577#ifdef COBJMACROS
578#ifndef WIDL_C_INLINE_WRAPPERS
579/*** IUnknown methods ***/
580#define IMediaObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
581#define IMediaObject_AddRef(This) (This)->lpVtbl->AddRef(This)
582#define IMediaObject_Release(This) (This)->lpVtbl->Release(This)
583/*** IMediaObject methods ***/
584#define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams)
585#define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)
586#define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)
587#define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)
588#define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)
589#define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags)
590#define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)
591#define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt)
592#define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt)
593#define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment) (This)->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)
594#define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment) (This)->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)
595#define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency) (This)->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)
596#define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency) (This)->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)
597#define IMediaObject_Flush(This) (This)->lpVtbl->Flush(This)
598#define IMediaObject_Discontinuity(This,dwInputStreamIndex) (This)->lpVtbl->Discontinuity(This,dwInputStreamIndex)
599#define IMediaObject_AllocateStreamingResources(This) (This)->lpVtbl->AllocateStreamingResources(This)
600#define IMediaObject_FreeStreamingResources(This) (This)->lpVtbl->FreeStreamingResources(This)
601#define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags)
602#define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength) (This)->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)
603#define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)
604#define IMediaObject_Lock(This,bLock) (This)->lpVtbl->Lock(This,bLock)
605#else
606/*** IUnknown methods ***/
607static FORCEINLINE HRESULT IMediaObject_QueryInterface(IMediaObject* This,REFIID riid,void **ppvObject) {
608 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
609}
610static FORCEINLINE ULONG IMediaObject_AddRef(IMediaObject* This) {
611 return This->lpVtbl->AddRef(This);
612}
613static FORCEINLINE ULONG IMediaObject_Release(IMediaObject* This) {
614 return This->lpVtbl->Release(This);
615}
616/*** IMediaObject methods ***/
617static FORCEINLINE HRESULT IMediaObject_GetStreamCount(IMediaObject* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) {
618 return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams);
619}
620static FORCEINLINE HRESULT IMediaObject_GetInputStreamInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pdwFlags) {
621 return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags);
622}
623static FORCEINLINE HRESULT IMediaObject_GetOutputStreamInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pdwFlags) {
624 return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags);
625}
626static FORCEINLINE HRESULT IMediaObject_GetInputType(IMediaObject* This,DWORD dwInputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
627 return This->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt);
628}
629static FORCEINLINE HRESULT IMediaObject_GetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
630 return This->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt);
631}
632static FORCEINLINE HRESULT IMediaObject_SetInputType(IMediaObject* This,DWORD dwInputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
633 return This->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags);
634}
635static FORCEINLINE HRESULT IMediaObject_SetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
636 return This->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags);
637}
638static FORCEINLINE HRESULT IMediaObject_GetInputCurrentType(IMediaObject* This,DWORD dwInputStreamIndex,DMO_MEDIA_TYPE *pmt) {
639 return This->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt);
640}
641static FORCEINLINE HRESULT IMediaObject_GetOutputCurrentType(IMediaObject* This,DWORD dwOutputStreamIndex,DMO_MEDIA_TYPE *pmt) {
642 return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt);
643}
644static FORCEINLINE HRESULT IMediaObject_GetInputSizeInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pcbSize,DWORD *pcbMaxLookahead,DWORD *pcbAlignment) {
645 return This->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment);
646}
647static FORCEINLINE HRESULT IMediaObject_GetOutputSizeInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pcbSize,DWORD *pcbAlignment) {
648 return This->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment);
649}
650static FORCEINLINE HRESULT IMediaObject_GetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME *prtMaxLatency) {
651 return This->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency);
652}
653static FORCEINLINE HRESULT IMediaObject_SetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME rtMaxLatency) {
654 return This->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency);
655}
656static FORCEINLINE HRESULT IMediaObject_Flush(IMediaObject* This) {
657 return This->lpVtbl->Flush(This);
658}
659static FORCEINLINE HRESULT IMediaObject_Discontinuity(IMediaObject* This,DWORD dwInputStreamIndex) {
660 return This->lpVtbl->Discontinuity(This,dwInputStreamIndex);
661}
662static FORCEINLINE HRESULT IMediaObject_AllocateStreamingResources(IMediaObject* This) {
663 return This->lpVtbl->AllocateStreamingResources(This);
664}
665static FORCEINLINE HRESULT IMediaObject_FreeStreamingResources(IMediaObject* This) {
666 return This->lpVtbl->FreeStreamingResources(This);
667}
668static FORCEINLINE HRESULT IMediaObject_GetInputStatus(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *dwFlags) {
669 return This->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags);
670}
671static FORCEINLINE HRESULT IMediaObject_ProcessInput(IMediaObject* This,DWORD dwInputStreamIndex,IMediaBuffer *pBuffer,DWORD dwFlags,REFERENCE_TIME rtTimestamp,REFERENCE_TIME rtTimelength) {
672 return This->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength);
673}
674static FORCEINLINE HRESULT IMediaObject_ProcessOutput(IMediaObject* This,DWORD dwFlags,DWORD cOutputBufferCount,DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,DWORD *pdwStatus) {
675 return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus);
676}
677static FORCEINLINE HRESULT IMediaObject_Lock(IMediaObject* This,LONG bLock) {
678 return This->lpVtbl->Lock(This,bLock);
679}
680#endif
681#endif
682
683#endif
684
685
686#endif /* __IMediaObject_INTERFACE_DEFINED__ */
687
688/*****************************************************************************
689 * IMediaObjectInPlace interface
690 */
691#ifndef __IMediaObjectInPlace_INTERFACE_DEFINED__
692#define __IMediaObjectInPlace_INTERFACE_DEFINED__
693
694DEFINE_GUID(IID_IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41);
695#if defined(__cplusplus) && !defined(CINTERFACE)
696MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741")
697IMediaObjectInPlace : public IUnknown
698{
699 virtual HRESULT STDMETHODCALLTYPE Process(
700 ULONG ulSize,
701 BYTE *pData,
702 REFERENCE_TIME refTimeStart,
703 DWORD dwFlags) = 0;
704
705 virtual HRESULT STDMETHODCALLTYPE Clone(
706 IMediaObjectInPlace **ppMediaObject) = 0;
707
708 virtual HRESULT STDMETHODCALLTYPE GetLatency(
709 REFERENCE_TIME *pLatencyTime) = 0;
710
711};
712#ifdef __CRT_UUID_DECL
713__CRT_UUID_DECL(IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41)
714#endif
715#else
716typedef struct IMediaObjectInPlaceVtbl {
717 BEGIN_INTERFACE
718
719 /*** IUnknown methods ***/
720 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
721 IMediaObjectInPlace *This,
722 REFIID riid,
723 void **ppvObject);
724
725 ULONG (STDMETHODCALLTYPE *AddRef)(
726 IMediaObjectInPlace *This);
727
728 ULONG (STDMETHODCALLTYPE *Release)(
729 IMediaObjectInPlace *This);
730
731 /*** IMediaObjectInPlace methods ***/
732 HRESULT (STDMETHODCALLTYPE *Process)(
733 IMediaObjectInPlace *This,
734 ULONG ulSize,
735 BYTE *pData,
736 REFERENCE_TIME refTimeStart,
737 DWORD dwFlags);
738
739 HRESULT (STDMETHODCALLTYPE *Clone)(
740 IMediaObjectInPlace *This,
741 IMediaObjectInPlace **ppMediaObject);
742
743 HRESULT (STDMETHODCALLTYPE *GetLatency)(
744 IMediaObjectInPlace *This,
745 REFERENCE_TIME *pLatencyTime);
746
747 END_INTERFACE
748} IMediaObjectInPlaceVtbl;
749
750interface IMediaObjectInPlace {
751 CONST_VTBL IMediaObjectInPlaceVtbl* lpVtbl;
752};
753
754#ifdef COBJMACROS
755#ifndef WIDL_C_INLINE_WRAPPERS
756/*** IUnknown methods ***/
757#define IMediaObjectInPlace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
758#define IMediaObjectInPlace_AddRef(This) (This)->lpVtbl->AddRef(This)
759#define IMediaObjectInPlace_Release(This) (This)->lpVtbl->Release(This)
760/*** IMediaObjectInPlace methods ***/
761#define IMediaObjectInPlace_Process(This,ulSize,pData,refTimeStart,dwFlags) (This)->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags)
762#define IMediaObjectInPlace_Clone(This,ppMediaObject) (This)->lpVtbl->Clone(This,ppMediaObject)
763#define IMediaObjectInPlace_GetLatency(This,pLatencyTime) (This)->lpVtbl->GetLatency(This,pLatencyTime)
764#else
765/*** IUnknown methods ***/
766static FORCEINLINE HRESULT IMediaObjectInPlace_QueryInterface(IMediaObjectInPlace* This,REFIID riid,void **ppvObject) {
767 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
768}
769static FORCEINLINE ULONG IMediaObjectInPlace_AddRef(IMediaObjectInPlace* This) {
770 return This->lpVtbl->AddRef(This);
771}
772static FORCEINLINE ULONG IMediaObjectInPlace_Release(IMediaObjectInPlace* This) {
773 return This->lpVtbl->Release(This);
774}
775/*** IMediaObjectInPlace methods ***/
776static FORCEINLINE HRESULT IMediaObjectInPlace_Process(IMediaObjectInPlace* This,ULONG ulSize,BYTE *pData,REFERENCE_TIME refTimeStart,DWORD dwFlags) {
777 return This->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags);
778}
779static FORCEINLINE HRESULT IMediaObjectInPlace_Clone(IMediaObjectInPlace* This,IMediaObjectInPlace **ppMediaObject) {
780 return This->lpVtbl->Clone(This,ppMediaObject);
781}
782static FORCEINLINE HRESULT IMediaObjectInPlace_GetLatency(IMediaObjectInPlace* This,REFERENCE_TIME *pLatencyTime) {
783 return This->lpVtbl->GetLatency(This,pLatencyTime);
784}
785#endif
786#endif
787
788#endif
789
790
791#endif /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */
792
793enum _DMO_QUALITY_STATUS_FLAGS {
794 DMO_QUALITY_STATUS_ENABLED = 0x1
795};
796/*****************************************************************************
797 * IDMOQualityControl interface
798 */
799#ifndef __IDMOQualityControl_INTERFACE_DEFINED__
800#define __IDMOQualityControl_INTERFACE_DEFINED__
801
802DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60);
803#if defined(__cplusplus) && !defined(CINTERFACE)
804MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
805IDMOQualityControl : public IUnknown
806{
807 virtual HRESULT STDMETHODCALLTYPE SetNow(
808 REFERENCE_TIME now) = 0;
809
810 virtual HRESULT STDMETHODCALLTYPE SetStatus(
811 DWORD flags) = 0;
812
813 virtual HRESULT STDMETHODCALLTYPE GetStatus(
814 DWORD *flags) = 0;
815
816};
817#ifdef __CRT_UUID_DECL
818__CRT_UUID_DECL(IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60)
819#endif
820#else
821typedef struct IDMOQualityControlVtbl {
822 BEGIN_INTERFACE
823
824 /*** IUnknown methods ***/
825 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
826 IDMOQualityControl *This,
827 REFIID riid,
828 void **ppvObject);
829
830 ULONG (STDMETHODCALLTYPE *AddRef)(
831 IDMOQualityControl *This);
832
833 ULONG (STDMETHODCALLTYPE *Release)(
834 IDMOQualityControl *This);
835
836 /*** IDMOQualityControl methods ***/
837 HRESULT (STDMETHODCALLTYPE *SetNow)(
838 IDMOQualityControl *This,
839 REFERENCE_TIME now);
840
841 HRESULT (STDMETHODCALLTYPE *SetStatus)(
842 IDMOQualityControl *This,
843 DWORD flags);
844
845 HRESULT (STDMETHODCALLTYPE *GetStatus)(
846 IDMOQualityControl *This,
847 DWORD *flags);
848
849 END_INTERFACE
850} IDMOQualityControlVtbl;
851
852interface IDMOQualityControl {
853 CONST_VTBL IDMOQualityControlVtbl* lpVtbl;
854};
855
856#ifdef COBJMACROS
857#ifndef WIDL_C_INLINE_WRAPPERS
858/*** IUnknown methods ***/
859#define IDMOQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
860#define IDMOQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
861#define IDMOQualityControl_Release(This) (This)->lpVtbl->Release(This)
862/*** IDMOQualityControl methods ***/
863#define IDMOQualityControl_SetNow(This,now) (This)->lpVtbl->SetNow(This,now)
864#define IDMOQualityControl_SetStatus(This,flags) (This)->lpVtbl->SetStatus(This,flags)
865#define IDMOQualityControl_GetStatus(This,flags) (This)->lpVtbl->GetStatus(This,flags)
866#else
867/*** IUnknown methods ***/
868static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) {
869 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
870}
871static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) {
872 return This->lpVtbl->AddRef(This);
873}
874static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) {
875 return This->lpVtbl->Release(This);
876}
877/*** IDMOQualityControl methods ***/
878static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME now) {
879 return This->lpVtbl->SetNow(This,now);
880}
881static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD flags) {
882 return This->lpVtbl->SetStatus(This,flags);
883}
884static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *flags) {
885 return This->lpVtbl->GetStatus(This,flags);
886}
887#endif
888#endif
889
890#endif
891
892
893#endif /* __IDMOQualityControl_INTERFACE_DEFINED__ */
894
895enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
896 DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1
897};
898/*****************************************************************************
899 * IDMOVideoOutputOptimizations interface
900 */
901#ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
902#define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
903
904DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac);
905#if defined(__cplusplus) && !defined(CINTERFACE)
906MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
907IDMOVideoOutputOptimizations : public IUnknown
908{
909 virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences(
910 ULONG index,
911 DWORD *flags) = 0;
912
913 virtual HRESULT STDMETHODCALLTYPE SetOperationMode(
914 ULONG index,
915 DWORD flags) = 0;
916
917 virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode(
918 ULONG index,
919 DWORD *flags) = 0;
920
921 virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements(
922 ULONG index,
923 DWORD *flags) = 0;
924
925};
926#ifdef __CRT_UUID_DECL
927__CRT_UUID_DECL(IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac)
928#endif
929#else
930typedef struct IDMOVideoOutputOptimizationsVtbl {
931 BEGIN_INTERFACE
932
933 /*** IUnknown methods ***/
934 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
935 IDMOVideoOutputOptimizations *This,
936 REFIID riid,
937 void **ppvObject);
938
939 ULONG (STDMETHODCALLTYPE *AddRef)(
940 IDMOVideoOutputOptimizations *This);
941
942 ULONG (STDMETHODCALLTYPE *Release)(
943 IDMOVideoOutputOptimizations *This);
944
945 /*** IDMOVideoOutputOptimizations methods ***/
946 HRESULT (STDMETHODCALLTYPE *QueryOperationModePreferences)(
947 IDMOVideoOutputOptimizations *This,
948 ULONG index,
949 DWORD *flags);
950
951 HRESULT (STDMETHODCALLTYPE *SetOperationMode)(
952 IDMOVideoOutputOptimizations *This,
953 ULONG index,
954 DWORD flags);
955
956 HRESULT (STDMETHODCALLTYPE *GetCurrentOperationMode)(
957 IDMOVideoOutputOptimizations *This,
958 ULONG index,
959 DWORD *flags);
960
961 HRESULT (STDMETHODCALLTYPE *GetCurrentSampleRequirements)(
962 IDMOVideoOutputOptimizations *This,
963 ULONG index,
964 DWORD *flags);
965
966 END_INTERFACE
967} IDMOVideoOutputOptimizationsVtbl;
968
969interface IDMOVideoOutputOptimizations {
970 CONST_VTBL IDMOVideoOutputOptimizationsVtbl* lpVtbl;
971};
972
973#ifdef COBJMACROS
974#ifndef WIDL_C_INLINE_WRAPPERS
975/*** IUnknown methods ***/
976#define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
977#define IDMOVideoOutputOptimizations_AddRef(This) (This)->lpVtbl->AddRef(This)
978#define IDMOVideoOutputOptimizations_Release(This) (This)->lpVtbl->Release(This)
979/*** IDMOVideoOutputOptimizations methods ***/
980#define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,index,flags) (This)->lpVtbl->QueryOperationModePreferences(This,index,flags)
981#define IDMOVideoOutputOptimizations_SetOperationMode(This,index,flags) (This)->lpVtbl->SetOperationMode(This,index,flags)
982#define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,index,flags) (This)->lpVtbl->GetCurrentOperationMode(This,index,flags)
983#define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,index,flags) (This)->lpVtbl->GetCurrentSampleRequirements(This,index,flags)
984#else
985/*** IUnknown methods ***/
986static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) {
987 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
988}
989static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) {
990 return This->lpVtbl->AddRef(This);
991}
992static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) {
993 return This->lpVtbl->Release(This);
994}
995/*** IDMOVideoOutputOptimizations methods ***/
996static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
997 return This->lpVtbl->QueryOperationModePreferences(This,index,flags);
998}
999static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD flags) {
1000 return This->lpVtbl->SetOperationMode(This,index,flags);
1001}
1002static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
1003 return This->lpVtbl->GetCurrentOperationMode(This,index,flags);
1004}
1005static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
1006 return This->lpVtbl->GetCurrentSampleRequirements(This,index,flags);
1007}
1008#endif
1009#endif
1010
1011#endif
1012
1013
1014#endif /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */
1015
1016/* Begin additional prototypes for all interfaces */
1017
1018
1019/* End additional prototypes */
1020
1021#ifdef __cplusplus
1022}
1023#endif
1024
1025#endif /* __mediaobj_h__ */
Note: See TracBrowser for help on using the repository browser.