1/*** Autogenerated by WIDL 1.6 from include/mediaobj.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __mediaobj_h__
16#define __mediaobj_h__
17
18/* Forward declarations */
19
20#ifndef __IMediaBuffer_FWD_DEFINED__
21#define __IMediaBuffer_FWD_DEFINED__
22typedef interface IMediaBuffer IMediaBuffer;
23#endif
24
25#ifndef __IMediaObject_FWD_DEFINED__
26#define __IMediaObject_FWD_DEFINED__
27typedef interface IMediaObject IMediaObject;
28#endif
29
30#ifndef __IEnumDMO_FWD_DEFINED__
31#define __IEnumDMO_FWD_DEFINED__
32typedef interface IEnumDMO IEnumDMO;
33#endif
34
35#ifndef __IMediaObjectInPlace_FWD_DEFINED__
36#define __IMediaObjectInPlace_FWD_DEFINED__
37typedef interface IMediaObjectInPlace IMediaObjectInPlace;
38#endif
39
40#ifndef __IDMOQualityControl_FWD_DEFINED__
41#define __IDMOQualityControl_FWD_DEFINED__
42typedef interface IDMOQualityControl IDMOQualityControl;
43#endif
44
45#ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__
46#define __IDMOVideoOutputOptimizations_FWD_DEFINED__
47typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
48#endif
49
50/* Headers for imported files */
51
52#include <unknwn.h>
53#include <objidl.h>
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
59/**
60 * This file is part of the mingw-w64 runtime package.
61 * No warranty is given; refer to the file DISCLAIMER within this package.
62 */
63
64#include <winapifamily.h>
65
66
67#ifdef __strmif_h__
68typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;
69#else
70typedef struct _DMOMediaType {
71    GUID majortype;
72    GUID subtype;
73    WINBOOL bFixedSizeSamples;
74    WINBOOL bTemporalCompression;
75    ULONG lSampleSize;
76    GUID formattype;
77    IUnknown *pUnk;
78    ULONG cbFormat;
79    BYTE *pbFormat;
80} DMO_MEDIA_TYPE;
81
82typedef LONGLONG REFERENCE_TIME;
83#endif
84
85enum _DMO_INPUT_DATA_BUFFER_FLAGS {
86    DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
87    DMO_INPUT_DATA_BUFFERF_TIME = 0x2,
88    DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4,
89    DMO_INPUT_DATA_BUFFERF_DISCONTINUITY = 0x8
90};
91
92
93enum _DMO_OUTPUT_DATA_BUFFER_FLAGS {
94    DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
95    DMO_OUTPUT_DATA_BUFFERF_TIME = 0x2,
96    DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x4,
97    DMO_OUTPUT_DATA_BUFFERF_DISCONTINUITY = 0x8,
98    DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x1000000
99};
100
101
102enum _DMO_INPUT_STATUS_FLAGS {
103    DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1
104};
105
106
107enum _DMO_INPUT_STREAM_INFO_FLAGS {
108    DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x1,
109    DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x2,
110    DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x4,
111    DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x8
112};
113
114
115enum _DMO_OUTPUT_STREAM_INFO_FLAGS {
116    DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x1,
117    DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x2,
118    DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x4,
119    DMO_OUTPUT_STREAMF_DISCARDABLE = 0x8,
120    DMO_OUTPUT_STREAMF_OPTIONAL = 0x10
121};
122
123
124enum _DMO_SET_TYPE_FLAGS {
125    DMO_SET_TYPEF_TEST_ONLY = 0x1,
126    DMO_SET_TYPEF_CLEAR = 0x2
127};
128
129
130enum _DMO_PROCESS_OUTPUT_FLAGS {
131    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1
132};
133
134
135#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
136enum _DMO_INPLACE_PROCESS_FLAGS {
137    DMO_INPLACE_NORMAL = 0x0,
138    DMO_INPLACE_ZERO = 0x1
139};
140
141
142enum _DMO_QUALITY_STATUS_FLAGS {
143    DMO_QUALITY_STATUS_ENABLED = 0x1
144};
145
146
147enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
148    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1
149};
150
151
152/*****************************************************************************
153 * IMediaBuffer interface
154 */
155#ifndef __IMediaBuffer_INTERFACE_DEFINED__
156#define __IMediaBuffer_INTERFACE_DEFINED__
157
158DEFINE_GUID(IID_IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37);
159#if defined(__cplusplus) && !defined(CINTERFACE)
160MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837")
161IMediaBuffer : public IUnknown
162{
163    virtual HRESULT STDMETHODCALLTYPE SetLength(
164        DWORD cbLength) = 0;
165
166    virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
167        DWORD *pcbMaxLength) = 0;
168
169    virtual HRESULT STDMETHODCALLTYPE GetBufferAndLength(
170        BYTE **ppBuffer,
171        DWORD *pcbLength) = 0;
172
173};
174#ifdef __CRT_UUID_DECL
175__CRT_UUID_DECL(IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37)
176#endif
177#else
178typedef struct IMediaBufferVtbl {
179    BEGIN_INTERFACE
180
181    /*** IUnknown methods ***/
182    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
183        IMediaBuffer* This,
184        REFIID riid,
185        void **ppvObject);
186
187    ULONG (STDMETHODCALLTYPE *AddRef)(
188        IMediaBuffer* This);
189
190    ULONG (STDMETHODCALLTYPE *Release)(
191        IMediaBuffer* This);
192
193    /*** IMediaBuffer methods ***/
194    HRESULT (STDMETHODCALLTYPE *SetLength)(
195        IMediaBuffer* This,
196        DWORD cbLength);
197
198    HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
199        IMediaBuffer* This,
200        DWORD *pcbMaxLength);
201
202    HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)(
203        IMediaBuffer* This,
204        BYTE **ppBuffer,
205        DWORD *pcbLength);
206
207    END_INTERFACE
208} IMediaBufferVtbl;
209interface IMediaBuffer {
210    CONST_VTBL IMediaBufferVtbl* lpVtbl;
211};
212
213#ifdef COBJMACROS
214#ifndef WIDL_C_INLINE_WRAPPERS
215/*** IUnknown methods ***/
216#define IMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
217#define IMediaBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
218#define IMediaBuffer_Release(This) (This)->lpVtbl->Release(This)
219/*** IMediaBuffer methods ***/
220#define IMediaBuffer_SetLength(This,cbLength) (This)->lpVtbl->SetLength(This,cbLength)
221#define IMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength)
222#define IMediaBuffer_GetBufferAndLength(This,ppBuffer,pcbLength) (This)->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength)
223#else
224/*** IUnknown methods ***/
225static FORCEINLINE HRESULT IMediaBuffer_QueryInterface(IMediaBuffer* This,REFIID riid,void **ppvObject) {
226    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
227}
228static FORCEINLINE ULONG IMediaBuffer_AddRef(IMediaBuffer* This) {
229    return This->lpVtbl->AddRef(This);
230}
231static FORCEINLINE ULONG IMediaBuffer_Release(IMediaBuffer* This) {
232    return This->lpVtbl->Release(This);
233}
234/*** IMediaBuffer methods ***/
235static FORCEINLINE HRESULT IMediaBuffer_SetLength(IMediaBuffer* This,DWORD cbLength) {
236    return This->lpVtbl->SetLength(This,cbLength);
237}
238static FORCEINLINE HRESULT IMediaBuffer_GetMaxLength(IMediaBuffer* This,DWORD *pcbMaxLength) {
239    return This->lpVtbl->GetMaxLength(This,pcbMaxLength);
240}
241static FORCEINLINE HRESULT IMediaBuffer_GetBufferAndLength(IMediaBuffer* This,BYTE **ppBuffer,DWORD *pcbLength) {
242    return This->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength);
243}
244#endif
245#endif
246
247#endif
248
249HRESULT STDMETHODCALLTYPE IMediaBuffer_SetLength_Proxy(
250    IMediaBuffer* This,
251    DWORD cbLength);
252void __RPC_STUB IMediaBuffer_SetLength_Stub(
253    IRpcStubBuffer* This,
254    IRpcChannelBuffer* pRpcChannelBuffer,
255    PRPC_MESSAGE pRpcMessage,
256    DWORD* pdwStubPhase);
257HRESULT STDMETHODCALLTYPE IMediaBuffer_GetMaxLength_Proxy(
258    IMediaBuffer* This,
259    DWORD *pcbMaxLength);
260void __RPC_STUB IMediaBuffer_GetMaxLength_Stub(
261    IRpcStubBuffer* This,
262    IRpcChannelBuffer* pRpcChannelBuffer,
263    PRPC_MESSAGE pRpcMessage,
264    DWORD* pdwStubPhase);
265HRESULT STDMETHODCALLTYPE IMediaBuffer_GetBufferAndLength_Proxy(
266    IMediaBuffer* This,
267    BYTE **ppBuffer,
268    DWORD *pcbLength);
269void __RPC_STUB IMediaBuffer_GetBufferAndLength_Stub(
270    IRpcStubBuffer* This,
271    IRpcChannelBuffer* pRpcChannelBuffer,
272    PRPC_MESSAGE pRpcMessage,
273    DWORD* pdwStubPhase);
274
275#endif  /* __IMediaBuffer_INTERFACE_DEFINED__ */
276
277
278typedef struct _DMO_OUTPUT_DATA_BUFFER {
279    IMediaBuffer *pBuffer;
280    DWORD dwStatus;
281    REFERENCE_TIME rtTimestamp;
282    REFERENCE_TIME rtTimelength;
283} DMO_OUTPUT_DATA_BUFFER;
284typedef struct _DMO_OUTPUT_DATA_BUFFER *PDMO_OUTPUT_DATA_BUFFER;
285
286/*****************************************************************************
287 * IMediaObject interface
288 */
289#ifndef __IMediaObject_INTERFACE_DEFINED__
290#define __IMediaObject_INTERFACE_DEFINED__
291
292DEFINE_GUID(IID_IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4);
293#if defined(__cplusplus) && !defined(CINTERFACE)
294MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4")
295IMediaObject : public IUnknown
296{
297    virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
298        DWORD *pcInputStreams,
299        DWORD *pcOutputStreams) = 0;
300
301    virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo(
302        DWORD dwInputStreamIndex,
303        DWORD *pdwFlags) = 0;
304
305    virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo(
306        DWORD dwOutputStreamIndex,
307        DWORD *pdwFlags) = 0;
308
309    virtual HRESULT STDMETHODCALLTYPE GetInputType(
310        DWORD dwInputStreamIndex,
311        DWORD dwTypeIndex,
312        DMO_MEDIA_TYPE *pmt) = 0;
313
314    virtual HRESULT STDMETHODCALLTYPE GetOutputType(
315        DWORD dwOutputStreamIndex,
316        DWORD dwTypeIndex,
317        DMO_MEDIA_TYPE *pmt) = 0;
318
319    virtual HRESULT STDMETHODCALLTYPE SetInputType(
320        DWORD dwInputStreamIndex,
321        const DMO_MEDIA_TYPE *pmt,
322        DWORD dwFlags) = 0;
323
324    virtual HRESULT STDMETHODCALLTYPE SetOutputType(
325        DWORD dwOutputStreamIndex,
326        const DMO_MEDIA_TYPE *pmt,
327        DWORD dwFlags) = 0;
328
329    virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType(
330        DWORD dwInputStreamIndex,
331        DMO_MEDIA_TYPE *pmt) = 0;
332
333    virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType(
334        DWORD dwOutputStreamIndex,
335        DMO_MEDIA_TYPE *pmt) = 0;
336
337    virtual HRESULT STDMETHODCALLTYPE GetInputSizeInfo(
338        DWORD dwInputStreamIndex,
339        DWORD *pcbSize,
340        DWORD *pcbMaxLookahead,
341        DWORD *pcbAlignment) = 0;
342
343    virtual HRESULT STDMETHODCALLTYPE GetOutputSizeInfo(
344        DWORD dwOutputStreamIndex,
345        DWORD *pcbSize,
346        DWORD *pcbAlignment) = 0;
347
348    virtual HRESULT STDMETHODCALLTYPE GetInputMaxLatency(
349        DWORD dwInputStreamIndex,
350        REFERENCE_TIME *prtMaxLatency) = 0;
351
352    virtual HRESULT STDMETHODCALLTYPE SetInputMaxLatency(
353        DWORD dwInputStreamIndex,
354        REFERENCE_TIME rtMaxLatency) = 0;
355
356    virtual HRESULT STDMETHODCALLTYPE Flush(
357        ) = 0;
358
359    virtual HRESULT STDMETHODCALLTYPE Discontinuity(
360        DWORD dwInputStreamIndex) = 0;
361
362    virtual HRESULT STDMETHODCALLTYPE AllocateStreamingResources(
363        ) = 0;
364
365    virtual HRESULT STDMETHODCALLTYPE FreeStreamingResources(
366        ) = 0;
367
368    virtual HRESULT STDMETHODCALLTYPE GetInputStatus(
369        DWORD dwInputStreamIndex,
370        DWORD *dwFlags) = 0;
371
372    virtual HRESULT STDMETHODCALLTYPE ProcessInput(
373        DWORD dwInputStreamIndex,
374        IMediaBuffer *pBuffer,
375        DWORD dwFlags,
376        REFERENCE_TIME rtTimestamp,
377        REFERENCE_TIME rtTimelength) = 0;
378
379    virtual HRESULT STDMETHODCALLTYPE ProcessOutput(
380        DWORD dwFlags,
381        DWORD cOutputBufferCount,
382        DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
383        DWORD *pdwStatus) = 0;
384
385    virtual HRESULT STDMETHODCALLTYPE Lock(
386        LONG bLock) = 0;
387
388};
389#ifdef __CRT_UUID_DECL
390__CRT_UUID_DECL(IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4)
391#endif
392#else
393typedef struct IMediaObjectVtbl {
394    BEGIN_INTERFACE
395
396    /*** IUnknown methods ***/
397    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
398        IMediaObject* This,
399        REFIID riid,
400        void **ppvObject);
401
402    ULONG (STDMETHODCALLTYPE *AddRef)(
403        IMediaObject* This);
404
405    ULONG (STDMETHODCALLTYPE *Release)(
406        IMediaObject* This);
407
408    /*** IMediaObject methods ***/
409    HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
410        IMediaObject* This,
411        DWORD *pcInputStreams,
412        DWORD *pcOutputStreams);
413
414    HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)(
415        IMediaObject* This,
416        DWORD dwInputStreamIndex,
417        DWORD *pdwFlags);
418
419    HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)(
420        IMediaObject* This,
421        DWORD dwOutputStreamIndex,
422        DWORD *pdwFlags);
423
424    HRESULT (STDMETHODCALLTYPE *GetInputType)(
425        IMediaObject* This,
426        DWORD dwInputStreamIndex,
427        DWORD dwTypeIndex,
428        DMO_MEDIA_TYPE *pmt);
429
430    HRESULT (STDMETHODCALLTYPE *GetOutputType)(
431        IMediaObject* This,
432        DWORD dwOutputStreamIndex,
433        DWORD dwTypeIndex,
434        DMO_MEDIA_TYPE *pmt);
435
436    HRESULT (STDMETHODCALLTYPE *SetInputType)(
437        IMediaObject* This,
438        DWORD dwInputStreamIndex,
439        const DMO_MEDIA_TYPE *pmt,
440        DWORD dwFlags);
441
442    HRESULT (STDMETHODCALLTYPE *SetOutputType)(
443        IMediaObject* This,
444        DWORD dwOutputStreamIndex,
445        const DMO_MEDIA_TYPE *pmt,
446        DWORD dwFlags);
447
448    HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)(
449        IMediaObject* This,
450        DWORD dwInputStreamIndex,
451        DMO_MEDIA_TYPE *pmt);
452
453    HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)(
454        IMediaObject* This,
455        DWORD dwOutputStreamIndex,
456        DMO_MEDIA_TYPE *pmt);
457
458    HRESULT (STDMETHODCALLTYPE *GetInputSizeInfo)(
459        IMediaObject* This,
460        DWORD dwInputStreamIndex,
461        DWORD *pcbSize,
462        DWORD *pcbMaxLookahead,
463        DWORD *pcbAlignment);
464
465    HRESULT (STDMETHODCALLTYPE *GetOutputSizeInfo)(
466        IMediaObject* This,
467        DWORD dwOutputStreamIndex,
468        DWORD *pcbSize,
469        DWORD *pcbAlignment);
470
471    HRESULT (STDMETHODCALLTYPE *GetInputMaxLatency)(
472        IMediaObject* This,
473        DWORD dwInputStreamIndex,
474        REFERENCE_TIME *prtMaxLatency);
475
476    HRESULT (STDMETHODCALLTYPE *SetInputMaxLatency)(
477        IMediaObject* This,
478        DWORD dwInputStreamIndex,
479        REFERENCE_TIME rtMaxLatency);
480
481    HRESULT (STDMETHODCALLTYPE *Flush)(
482        IMediaObject* This);
483
484    HRESULT (STDMETHODCALLTYPE *Discontinuity)(
485        IMediaObject* This,
486        DWORD dwInputStreamIndex);
487
488    HRESULT (STDMETHODCALLTYPE *AllocateStreamingResources)(
489        IMediaObject* This);
490
491    HRESULT (STDMETHODCALLTYPE *FreeStreamingResources)(
492        IMediaObject* This);
493
494    HRESULT (STDMETHODCALLTYPE *GetInputStatus)(
495        IMediaObject* This,
496        DWORD dwInputStreamIndex,
497        DWORD *dwFlags);
498
499    HRESULT (STDMETHODCALLTYPE *ProcessInput)(
500        IMediaObject* This,
501        DWORD dwInputStreamIndex,
502        IMediaBuffer *pBuffer,
503        DWORD dwFlags,
504        REFERENCE_TIME rtTimestamp,
505        REFERENCE_TIME rtTimelength);
506
507    HRESULT (STDMETHODCALLTYPE *ProcessOutput)(
508        IMediaObject* This,
509        DWORD dwFlags,
510        DWORD cOutputBufferCount,
511        DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
512        DWORD *pdwStatus);
513
514    HRESULT (STDMETHODCALLTYPE *Lock)(
515        IMediaObject* This,
516        LONG bLock);
517
518    END_INTERFACE
519} IMediaObjectVtbl;
520interface IMediaObject {
521    CONST_VTBL IMediaObjectVtbl* lpVtbl;
522};
523
524#ifdef COBJMACROS
525#ifndef WIDL_C_INLINE_WRAPPERS
526/*** IUnknown methods ***/
527#define IMediaObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
528#define IMediaObject_AddRef(This) (This)->lpVtbl->AddRef(This)
529#define IMediaObject_Release(This) (This)->lpVtbl->Release(This)
530/*** IMediaObject methods ***/
531#define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams)
532#define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)
533#define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)
534#define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)
535#define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)
536#define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags)
537#define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)
538#define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt)
539#define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt)
540#define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment) (This)->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)
541#define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment) (This)->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)
542#define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency) (This)->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)
543#define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency) (This)->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)
544#define IMediaObject_Flush(This) (This)->lpVtbl->Flush(This)
545#define IMediaObject_Discontinuity(This,dwInputStreamIndex) (This)->lpVtbl->Discontinuity(This,dwInputStreamIndex)
546#define IMediaObject_AllocateStreamingResources(This) (This)->lpVtbl->AllocateStreamingResources(This)
547#define IMediaObject_FreeStreamingResources(This) (This)->lpVtbl->FreeStreamingResources(This)
548#define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags)
549#define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength) (This)->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)
550#define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)
551#define IMediaObject_Lock(This,bLock) (This)->lpVtbl->Lock(This,bLock)
552#else
553/*** IUnknown methods ***/
554static FORCEINLINE HRESULT IMediaObject_QueryInterface(IMediaObject* This,REFIID riid,void **ppvObject) {
555    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
556}
557static FORCEINLINE ULONG IMediaObject_AddRef(IMediaObject* This) {
558    return This->lpVtbl->AddRef(This);
559}
560static FORCEINLINE ULONG IMediaObject_Release(IMediaObject* This) {
561    return This->lpVtbl->Release(This);
562}
563/*** IMediaObject methods ***/
564static FORCEINLINE HRESULT IMediaObject_GetStreamCount(IMediaObject* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) {
565    return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams);
566}
567static FORCEINLINE HRESULT IMediaObject_GetInputStreamInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pdwFlags) {
568    return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags);
569}
570static FORCEINLINE HRESULT IMediaObject_GetOutputStreamInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pdwFlags) {
571    return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags);
572}
573static FORCEINLINE HRESULT IMediaObject_GetInputType(IMediaObject* This,DWORD dwInputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
574    return This->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt);
575}
576static FORCEINLINE HRESULT IMediaObject_GetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
577    return This->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt);
578}
579static FORCEINLINE HRESULT IMediaObject_SetInputType(IMediaObject* This,DWORD dwInputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
580    return This->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags);
581}
582static FORCEINLINE HRESULT IMediaObject_SetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
583    return This->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags);
584}
585static FORCEINLINE HRESULT IMediaObject_GetInputCurrentType(IMediaObject* This,DWORD dwInputStreamIndex,DMO_MEDIA_TYPE *pmt) {
586    return This->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt);
587}
588static FORCEINLINE HRESULT IMediaObject_GetOutputCurrentType(IMediaObject* This,DWORD dwOutputStreamIndex,DMO_MEDIA_TYPE *pmt) {
589    return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt);
590}
591static FORCEINLINE HRESULT IMediaObject_GetInputSizeInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pcbSize,DWORD *pcbMaxLookahead,DWORD *pcbAlignment) {
592    return This->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment);
593}
594static FORCEINLINE HRESULT IMediaObject_GetOutputSizeInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pcbSize,DWORD *pcbAlignment) {
595    return This->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment);
596}
597static FORCEINLINE HRESULT IMediaObject_GetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME *prtMaxLatency) {
598    return This->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency);
599}
600static FORCEINLINE HRESULT IMediaObject_SetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME rtMaxLatency) {
601    return This->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency);
602}
603static FORCEINLINE HRESULT IMediaObject_Flush(IMediaObject* This) {
604    return This->lpVtbl->Flush(This);
605}
606static FORCEINLINE HRESULT IMediaObject_Discontinuity(IMediaObject* This,DWORD dwInputStreamIndex) {
607    return This->lpVtbl->Discontinuity(This,dwInputStreamIndex);
608}
609static FORCEINLINE HRESULT IMediaObject_AllocateStreamingResources(IMediaObject* This) {
610    return This->lpVtbl->AllocateStreamingResources(This);
611}
612static FORCEINLINE HRESULT IMediaObject_FreeStreamingResources(IMediaObject* This) {
613    return This->lpVtbl->FreeStreamingResources(This);
614}
615static FORCEINLINE HRESULT IMediaObject_GetInputStatus(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *dwFlags) {
616    return This->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags);
617}
618static FORCEINLINE HRESULT IMediaObject_ProcessInput(IMediaObject* This,DWORD dwInputStreamIndex,IMediaBuffer *pBuffer,DWORD dwFlags,REFERENCE_TIME rtTimestamp,REFERENCE_TIME rtTimelength) {
619    return This->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength);
620}
621static FORCEINLINE HRESULT IMediaObject_ProcessOutput(IMediaObject* This,DWORD dwFlags,DWORD cOutputBufferCount,DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,DWORD *pdwStatus) {
622    return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus);
623}
624static FORCEINLINE HRESULT IMediaObject_Lock(IMediaObject* This,LONG bLock) {
625    return This->lpVtbl->Lock(This,bLock);
626}
627#endif
628#endif
629
630#endif
631
632HRESULT STDMETHODCALLTYPE IMediaObject_GetStreamCount_Proxy(
633    IMediaObject* This,
634    DWORD *pcInputStreams,
635    DWORD *pcOutputStreams);
636void __RPC_STUB IMediaObject_GetStreamCount_Stub(
637    IRpcStubBuffer* This,
638    IRpcChannelBuffer* pRpcChannelBuffer,
639    PRPC_MESSAGE pRpcMessage,
640    DWORD* pdwStubPhase);
641HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStreamInfo_Proxy(
642    IMediaObject* This,
643    DWORD dwInputStreamIndex,
644    DWORD *pdwFlags);
645void __RPC_STUB IMediaObject_GetInputStreamInfo_Stub(
646    IRpcStubBuffer* This,
647    IRpcChannelBuffer* pRpcChannelBuffer,
648    PRPC_MESSAGE pRpcMessage,
649    DWORD* pdwStubPhase);
650HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputStreamInfo_Proxy(
651    IMediaObject* This,
652    DWORD dwOutputStreamIndex,
653    DWORD *pdwFlags);
654void __RPC_STUB IMediaObject_GetOutputStreamInfo_Stub(
655    IRpcStubBuffer* This,
656    IRpcChannelBuffer* pRpcChannelBuffer,
657    PRPC_MESSAGE pRpcMessage,
658    DWORD* pdwStubPhase);
659HRESULT STDMETHODCALLTYPE IMediaObject_GetInputType_Proxy(
660    IMediaObject* This,
661    DWORD dwInputStreamIndex,
662    DWORD dwTypeIndex,
663    DMO_MEDIA_TYPE *pmt);
664void __RPC_STUB IMediaObject_GetInputType_Stub(
665    IRpcStubBuffer* This,
666    IRpcChannelBuffer* pRpcChannelBuffer,
667    PRPC_MESSAGE pRpcMessage,
668    DWORD* pdwStubPhase);
669HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputType_Proxy(
670    IMediaObject* This,
671    DWORD dwOutputStreamIndex,
672    DWORD dwTypeIndex,
673    DMO_MEDIA_TYPE *pmt);
674void __RPC_STUB IMediaObject_GetOutputType_Stub(
675    IRpcStubBuffer* This,
676    IRpcChannelBuffer* pRpcChannelBuffer,
677    PRPC_MESSAGE pRpcMessage,
678    DWORD* pdwStubPhase);
679HRESULT STDMETHODCALLTYPE IMediaObject_SetInputType_Proxy(
680    IMediaObject* This,
681    DWORD dwInputStreamIndex,
682    const DMO_MEDIA_TYPE *pmt,
683    DWORD dwFlags);
684void __RPC_STUB IMediaObject_SetInputType_Stub(
685    IRpcStubBuffer* This,
686    IRpcChannelBuffer* pRpcChannelBuffer,
687    PRPC_MESSAGE pRpcMessage,
688    DWORD* pdwStubPhase);
689HRESULT STDMETHODCALLTYPE IMediaObject_SetOutputType_Proxy(
690    IMediaObject* This,
691    DWORD dwOutputStreamIndex,
692    const DMO_MEDIA_TYPE *pmt,
693    DWORD dwFlags);
694void __RPC_STUB IMediaObject_SetOutputType_Stub(
695    IRpcStubBuffer* This,
696    IRpcChannelBuffer* pRpcChannelBuffer,
697    PRPC_MESSAGE pRpcMessage,
698    DWORD* pdwStubPhase);
699HRESULT STDMETHODCALLTYPE IMediaObject_GetInputCurrentType_Proxy(
700    IMediaObject* This,
701    DWORD dwInputStreamIndex,
702    DMO_MEDIA_TYPE *pmt);
703void __RPC_STUB IMediaObject_GetInputCurrentType_Stub(
704    IRpcStubBuffer* This,
705    IRpcChannelBuffer* pRpcChannelBuffer,
706    PRPC_MESSAGE pRpcMessage,
707    DWORD* pdwStubPhase);
708HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputCurrentType_Proxy(
709    IMediaObject* This,
710    DWORD dwOutputStreamIndex,
711    DMO_MEDIA_TYPE *pmt);
712void __RPC_STUB IMediaObject_GetOutputCurrentType_Stub(
713    IRpcStubBuffer* This,
714    IRpcChannelBuffer* pRpcChannelBuffer,
715    PRPC_MESSAGE pRpcMessage,
716    DWORD* pdwStubPhase);
717HRESULT STDMETHODCALLTYPE IMediaObject_GetInputSizeInfo_Proxy(
718    IMediaObject* This,
719    DWORD dwInputStreamIndex,
720    DWORD *pcbSize,
721    DWORD *pcbMaxLookahead,
722    DWORD *pcbAlignment);
723void __RPC_STUB IMediaObject_GetInputSizeInfo_Stub(
724    IRpcStubBuffer* This,
725    IRpcChannelBuffer* pRpcChannelBuffer,
726    PRPC_MESSAGE pRpcMessage,
727    DWORD* pdwStubPhase);
728HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputSizeInfo_Proxy(
729    IMediaObject* This,
730    DWORD dwOutputStreamIndex,
731    DWORD *pcbSize,
732    DWORD *pcbAlignment);
733void __RPC_STUB IMediaObject_GetOutputSizeInfo_Stub(
734    IRpcStubBuffer* This,
735    IRpcChannelBuffer* pRpcChannelBuffer,
736    PRPC_MESSAGE pRpcMessage,
737    DWORD* pdwStubPhase);
738HRESULT STDMETHODCALLTYPE IMediaObject_GetInputMaxLatency_Proxy(
739    IMediaObject* This,
740    DWORD dwInputStreamIndex,
741    REFERENCE_TIME *prtMaxLatency);
742void __RPC_STUB IMediaObject_GetInputMaxLatency_Stub(
743    IRpcStubBuffer* This,
744    IRpcChannelBuffer* pRpcChannelBuffer,
745    PRPC_MESSAGE pRpcMessage,
746    DWORD* pdwStubPhase);
747HRESULT STDMETHODCALLTYPE IMediaObject_SetInputMaxLatency_Proxy(
748    IMediaObject* This,
749    DWORD dwInputStreamIndex,
750    REFERENCE_TIME rtMaxLatency);
751void __RPC_STUB IMediaObject_SetInputMaxLatency_Stub(
752    IRpcStubBuffer* This,
753    IRpcChannelBuffer* pRpcChannelBuffer,
754    PRPC_MESSAGE pRpcMessage,
755    DWORD* pdwStubPhase);
756HRESULT STDMETHODCALLTYPE IMediaObject_Flush_Proxy(
757    IMediaObject* This);
758void __RPC_STUB IMediaObject_Flush_Stub(
759    IRpcStubBuffer* This,
760    IRpcChannelBuffer* pRpcChannelBuffer,
761    PRPC_MESSAGE pRpcMessage,
762    DWORD* pdwStubPhase);
763HRESULT STDMETHODCALLTYPE IMediaObject_Discontinuity_Proxy(
764    IMediaObject* This,
765    DWORD dwInputStreamIndex);
766void __RPC_STUB IMediaObject_Discontinuity_Stub(
767    IRpcStubBuffer* This,
768    IRpcChannelBuffer* pRpcChannelBuffer,
769    PRPC_MESSAGE pRpcMessage,
770    DWORD* pdwStubPhase);
771HRESULT STDMETHODCALLTYPE IMediaObject_AllocateStreamingResources_Proxy(
772    IMediaObject* This);
773void __RPC_STUB IMediaObject_AllocateStreamingResources_Stub(
774    IRpcStubBuffer* This,
775    IRpcChannelBuffer* pRpcChannelBuffer,
776    PRPC_MESSAGE pRpcMessage,
777    DWORD* pdwStubPhase);
778HRESULT STDMETHODCALLTYPE IMediaObject_FreeStreamingResources_Proxy(
779    IMediaObject* This);
780void __RPC_STUB IMediaObject_FreeStreamingResources_Stub(
781    IRpcStubBuffer* This,
782    IRpcChannelBuffer* pRpcChannelBuffer,
783    PRPC_MESSAGE pRpcMessage,
784    DWORD* pdwStubPhase);
785HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStatus_Proxy(
786    IMediaObject* This,
787    DWORD dwInputStreamIndex,
788    DWORD *dwFlags);
789void __RPC_STUB IMediaObject_GetInputStatus_Stub(
790    IRpcStubBuffer* This,
791    IRpcChannelBuffer* pRpcChannelBuffer,
792    PRPC_MESSAGE pRpcMessage,
793    DWORD* pdwStubPhase);
794HRESULT STDMETHODCALLTYPE IMediaObject_ProcessInput_Proxy(
795    IMediaObject* This,
796    DWORD dwInputStreamIndex,
797    IMediaBuffer *pBuffer,
798    DWORD dwFlags,
799    REFERENCE_TIME rtTimestamp,
800    REFERENCE_TIME rtTimelength);
801void __RPC_STUB IMediaObject_ProcessInput_Stub(
802    IRpcStubBuffer* This,
803    IRpcChannelBuffer* pRpcChannelBuffer,
804    PRPC_MESSAGE pRpcMessage,
805    DWORD* pdwStubPhase);
806HRESULT STDMETHODCALLTYPE IMediaObject_ProcessOutput_Proxy(
807    IMediaObject* This,
808    DWORD dwFlags,
809    DWORD cOutputBufferCount,
810    DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
811    DWORD *pdwStatus);
812void __RPC_STUB IMediaObject_ProcessOutput_Stub(
813    IRpcStubBuffer* This,
814    IRpcChannelBuffer* pRpcChannelBuffer,
815    PRPC_MESSAGE pRpcMessage,
816    DWORD* pdwStubPhase);
817HRESULT STDMETHODCALLTYPE IMediaObject_Lock_Proxy(
818    IMediaObject* This,
819    LONG bLock);
820void __RPC_STUB IMediaObject_Lock_Stub(
821    IRpcStubBuffer* This,
822    IRpcChannelBuffer* pRpcChannelBuffer,
823    PRPC_MESSAGE pRpcMessage,
824    DWORD* pdwStubPhase);
825
826#endif  /* __IMediaObject_INTERFACE_DEFINED__ */
827
828
829/*****************************************************************************
830 * IEnumDMO interface
831 */
832#ifndef __IEnumDMO_INTERFACE_DEFINED__
833#define __IEnumDMO_INTERFACE_DEFINED__
834
835DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f);
836#if defined(__cplusplus) && !defined(CINTERFACE)
837MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
838IEnumDMO : public IUnknown
839{
840    virtual HRESULT STDMETHODCALLTYPE Next(
841        DWORD cItemsToFetch,
842        CLSID *pCLSID,
843        LPWSTR *Names,
844        DWORD *pcItemsFetched) = 0;
845
846    virtual HRESULT STDMETHODCALLTYPE Skip(
847        DWORD cItemsToSkip) = 0;
848
849    virtual HRESULT STDMETHODCALLTYPE Reset(
850        ) = 0;
851
852    virtual HRESULT STDMETHODCALLTYPE Clone(
853        IEnumDMO **ppEnum) = 0;
854
855};
856#ifdef __CRT_UUID_DECL
857__CRT_UUID_DECL(IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f)
858#endif
859#else
860typedef struct IEnumDMOVtbl {
861    BEGIN_INTERFACE
862
863    /*** IUnknown methods ***/
864    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
865        IEnumDMO* This,
866        REFIID riid,
867        void **ppvObject);
868
869    ULONG (STDMETHODCALLTYPE *AddRef)(
870        IEnumDMO* This);
871
872    ULONG (STDMETHODCALLTYPE *Release)(
873        IEnumDMO* This);
874
875    /*** IEnumDMO methods ***/
876    HRESULT (STDMETHODCALLTYPE *Next)(
877        IEnumDMO* This,
878        DWORD cItemsToFetch,
879        CLSID *pCLSID,
880        LPWSTR *Names,
881        DWORD *pcItemsFetched);
882
883    HRESULT (STDMETHODCALLTYPE *Skip)(
884        IEnumDMO* This,
885        DWORD cItemsToSkip);
886
887    HRESULT (STDMETHODCALLTYPE *Reset)(
888        IEnumDMO* This);
889
890    HRESULT (STDMETHODCALLTYPE *Clone)(
891        IEnumDMO* This,
892        IEnumDMO **ppEnum);
893
894    END_INTERFACE
895} IEnumDMOVtbl;
896interface IEnumDMO {
897    CONST_VTBL IEnumDMOVtbl* lpVtbl;
898};
899
900#ifdef COBJMACROS
901#ifndef WIDL_C_INLINE_WRAPPERS
902/*** IUnknown methods ***/
903#define IEnumDMO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
904#define IEnumDMO_AddRef(This) (This)->lpVtbl->AddRef(This)
905#define IEnumDMO_Release(This) (This)->lpVtbl->Release(This)
906/*** IEnumDMO methods ***/
907#define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched) (This)->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)
908#define IEnumDMO_Skip(This,cItemsToSkip) (This)->lpVtbl->Skip(This,cItemsToSkip)
909#define IEnumDMO_Reset(This) (This)->lpVtbl->Reset(This)
910#define IEnumDMO_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
911#else
912/*** IUnknown methods ***/
913static FORCEINLINE HRESULT IEnumDMO_QueryInterface(IEnumDMO* This,REFIID riid,void **ppvObject) {
914    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
915}
916static FORCEINLINE ULONG IEnumDMO_AddRef(IEnumDMO* This) {
917    return This->lpVtbl->AddRef(This);
918}
919static FORCEINLINE ULONG IEnumDMO_Release(IEnumDMO* This) {
920    return This->lpVtbl->Release(This);
921}
922/*** IEnumDMO methods ***/
923static FORCEINLINE HRESULT IEnumDMO_Next(IEnumDMO* This,DWORD cItemsToFetch,CLSID *pCLSID,LPWSTR *Names,DWORD *pcItemsFetched) {
924    return This->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched);
925}
926static FORCEINLINE HRESULT IEnumDMO_Skip(IEnumDMO* This,DWORD cItemsToSkip) {
927    return This->lpVtbl->Skip(This,cItemsToSkip);
928}
929static FORCEINLINE HRESULT IEnumDMO_Reset(IEnumDMO* This) {
930    return This->lpVtbl->Reset(This);
931}
932static FORCEINLINE HRESULT IEnumDMO_Clone(IEnumDMO* This,IEnumDMO **ppEnum) {
933    return This->lpVtbl->Clone(This,ppEnum);
934}
935#endif
936#endif
937
938#endif
939
940HRESULT STDMETHODCALLTYPE IEnumDMO_Next_Proxy(
941    IEnumDMO* This,
942    DWORD cItemsToFetch,
943    CLSID *pCLSID,
944    LPWSTR *Names,
945    DWORD *pcItemsFetched);
946void __RPC_STUB IEnumDMO_Next_Stub(
947    IRpcStubBuffer* This,
948    IRpcChannelBuffer* pRpcChannelBuffer,
949    PRPC_MESSAGE pRpcMessage,
950    DWORD* pdwStubPhase);
951HRESULT STDMETHODCALLTYPE IEnumDMO_Skip_Proxy(
952    IEnumDMO* This,
953    DWORD cItemsToSkip);
954void __RPC_STUB IEnumDMO_Skip_Stub(
955    IRpcStubBuffer* This,
956    IRpcChannelBuffer* pRpcChannelBuffer,
957    PRPC_MESSAGE pRpcMessage,
958    DWORD* pdwStubPhase);
959HRESULT STDMETHODCALLTYPE IEnumDMO_Reset_Proxy(
960    IEnumDMO* This);
961void __RPC_STUB IEnumDMO_Reset_Stub(
962    IRpcStubBuffer* This,
963    IRpcChannelBuffer* pRpcChannelBuffer,
964    PRPC_MESSAGE pRpcMessage,
965    DWORD* pdwStubPhase);
966HRESULT STDMETHODCALLTYPE IEnumDMO_Clone_Proxy(
967    IEnumDMO* This,
968    IEnumDMO **ppEnum);
969void __RPC_STUB IEnumDMO_Clone_Stub(
970    IRpcStubBuffer* This,
971    IRpcChannelBuffer* pRpcChannelBuffer,
972    PRPC_MESSAGE pRpcMessage,
973    DWORD* pdwStubPhase);
974
975#endif  /* __IEnumDMO_INTERFACE_DEFINED__ */
976
977
978/*****************************************************************************
979 * IMediaObjectInPlace interface
980 */
981#ifndef __IMediaObjectInPlace_INTERFACE_DEFINED__
982#define __IMediaObjectInPlace_INTERFACE_DEFINED__
983
984DEFINE_GUID(IID_IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41);
985#if defined(__cplusplus) && !defined(CINTERFACE)
986MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741")
987IMediaObjectInPlace : public IUnknown
988{
989    virtual HRESULT STDMETHODCALLTYPE Process(
990        ULONG ulSize,
991        BYTE *pData,
992        REFERENCE_TIME refTimeStart,
993        DWORD dwFlags) = 0;
994
995    virtual HRESULT STDMETHODCALLTYPE Clone(
996        IMediaObjectInPlace **ppMediaObject) = 0;
997
998    virtual HRESULT STDMETHODCALLTYPE GetLatency(
999        REFERENCE_TIME *pLatencyTime) = 0;
1000
1001};
1002#ifdef __CRT_UUID_DECL
1003__CRT_UUID_DECL(IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41)
1004#endif
1005#else
1006typedef struct IMediaObjectInPlaceVtbl {
1007    BEGIN_INTERFACE
1008
1009    /*** IUnknown methods ***/
1010    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1011        IMediaObjectInPlace* This,
1012        REFIID riid,
1013        void **ppvObject);
1014
1015    ULONG (STDMETHODCALLTYPE *AddRef)(
1016        IMediaObjectInPlace* This);
1017
1018    ULONG (STDMETHODCALLTYPE *Release)(
1019        IMediaObjectInPlace* This);
1020
1021    /*** IMediaObjectInPlace methods ***/
1022    HRESULT (STDMETHODCALLTYPE *Process)(
1023        IMediaObjectInPlace* This,
1024        ULONG ulSize,
1025        BYTE *pData,
1026        REFERENCE_TIME refTimeStart,
1027        DWORD dwFlags);
1028
1029    HRESULT (STDMETHODCALLTYPE *Clone)(
1030        IMediaObjectInPlace* This,
1031        IMediaObjectInPlace **ppMediaObject);
1032
1033    HRESULT (STDMETHODCALLTYPE *GetLatency)(
1034        IMediaObjectInPlace* This,
1035        REFERENCE_TIME *pLatencyTime);
1036
1037    END_INTERFACE
1038} IMediaObjectInPlaceVtbl;
1039interface IMediaObjectInPlace {
1040    CONST_VTBL IMediaObjectInPlaceVtbl* lpVtbl;
1041};
1042
1043#ifdef COBJMACROS
1044#ifndef WIDL_C_INLINE_WRAPPERS
1045/*** IUnknown methods ***/
1046#define IMediaObjectInPlace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1047#define IMediaObjectInPlace_AddRef(This) (This)->lpVtbl->AddRef(This)
1048#define IMediaObjectInPlace_Release(This) (This)->lpVtbl->Release(This)
1049/*** IMediaObjectInPlace methods ***/
1050#define IMediaObjectInPlace_Process(This,ulSize,pData,refTimeStart,dwFlags) (This)->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags)
1051#define IMediaObjectInPlace_Clone(This,ppMediaObject) (This)->lpVtbl->Clone(This,ppMediaObject)
1052#define IMediaObjectInPlace_GetLatency(This,pLatencyTime) (This)->lpVtbl->GetLatency(This,pLatencyTime)
1053#else
1054/*** IUnknown methods ***/
1055static FORCEINLINE HRESULT IMediaObjectInPlace_QueryInterface(IMediaObjectInPlace* This,REFIID riid,void **ppvObject) {
1056    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1057}
1058static FORCEINLINE ULONG IMediaObjectInPlace_AddRef(IMediaObjectInPlace* This) {
1059    return This->lpVtbl->AddRef(This);
1060}
1061static FORCEINLINE ULONG IMediaObjectInPlace_Release(IMediaObjectInPlace* This) {
1062    return This->lpVtbl->Release(This);
1063}
1064/*** IMediaObjectInPlace methods ***/
1065static FORCEINLINE HRESULT IMediaObjectInPlace_Process(IMediaObjectInPlace* This,ULONG ulSize,BYTE *pData,REFERENCE_TIME refTimeStart,DWORD dwFlags) {
1066    return This->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags);
1067}
1068static FORCEINLINE HRESULT IMediaObjectInPlace_Clone(IMediaObjectInPlace* This,IMediaObjectInPlace **ppMediaObject) {
1069    return This->lpVtbl->Clone(This,ppMediaObject);
1070}
1071static FORCEINLINE HRESULT IMediaObjectInPlace_GetLatency(IMediaObjectInPlace* This,REFERENCE_TIME *pLatencyTime) {
1072    return This->lpVtbl->GetLatency(This,pLatencyTime);
1073}
1074#endif
1075#endif
1076
1077#endif
1078
1079HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Process_Proxy(
1080    IMediaObjectInPlace* This,
1081    ULONG ulSize,
1082    BYTE *pData,
1083    REFERENCE_TIME refTimeStart,
1084    DWORD dwFlags);
1085void __RPC_STUB IMediaObjectInPlace_Process_Stub(
1086    IRpcStubBuffer* This,
1087    IRpcChannelBuffer* pRpcChannelBuffer,
1088    PRPC_MESSAGE pRpcMessage,
1089    DWORD* pdwStubPhase);
1090HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Clone_Proxy(
1091    IMediaObjectInPlace* This,
1092    IMediaObjectInPlace **ppMediaObject);
1093void __RPC_STUB IMediaObjectInPlace_Clone_Stub(
1094    IRpcStubBuffer* This,
1095    IRpcChannelBuffer* pRpcChannelBuffer,
1096    PRPC_MESSAGE pRpcMessage,
1097    DWORD* pdwStubPhase);
1098HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_GetLatency_Proxy(
1099    IMediaObjectInPlace* This,
1100    REFERENCE_TIME *pLatencyTime);
1101void __RPC_STUB IMediaObjectInPlace_GetLatency_Stub(
1102    IRpcStubBuffer* This,
1103    IRpcChannelBuffer* pRpcChannelBuffer,
1104    PRPC_MESSAGE pRpcMessage,
1105    DWORD* pdwStubPhase);
1106
1107#endif  /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */
1108
1109
1110/*****************************************************************************
1111 * IDMOQualityControl interface
1112 */
1113#ifndef __IDMOQualityControl_INTERFACE_DEFINED__
1114#define __IDMOQualityControl_INTERFACE_DEFINED__
1115
1116DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60);
1117#if defined(__cplusplus) && !defined(CINTERFACE)
1118MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
1119IDMOQualityControl : public IUnknown
1120{
1121    virtual HRESULT STDMETHODCALLTYPE SetNow(
1122        REFERENCE_TIME rtNow) = 0;
1123
1124    virtual HRESULT STDMETHODCALLTYPE SetStatus(
1125        DWORD dwFlags) = 0;
1126
1127    virtual HRESULT STDMETHODCALLTYPE GetStatus(
1128        DWORD *pdwFlags) = 0;
1129
1130};
1131#ifdef __CRT_UUID_DECL
1132__CRT_UUID_DECL(IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60)
1133#endif
1134#else
1135typedef struct IDMOQualityControlVtbl {
1136    BEGIN_INTERFACE
1137
1138    /*** IUnknown methods ***/
1139    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1140        IDMOQualityControl* This,
1141        REFIID riid,
1142        void **ppvObject);
1143
1144    ULONG (STDMETHODCALLTYPE *AddRef)(
1145        IDMOQualityControl* This);
1146
1147    ULONG (STDMETHODCALLTYPE *Release)(
1148        IDMOQualityControl* This);
1149
1150    /*** IDMOQualityControl methods ***/
1151    HRESULT (STDMETHODCALLTYPE *SetNow)(
1152        IDMOQualityControl* This,
1153        REFERENCE_TIME rtNow);
1154
1155    HRESULT (STDMETHODCALLTYPE *SetStatus)(
1156        IDMOQualityControl* This,
1157        DWORD dwFlags);
1158
1159    HRESULT (STDMETHODCALLTYPE *GetStatus)(
1160        IDMOQualityControl* This,
1161        DWORD *pdwFlags);
1162
1163    END_INTERFACE
1164} IDMOQualityControlVtbl;
1165interface IDMOQualityControl {
1166    CONST_VTBL IDMOQualityControlVtbl* lpVtbl;
1167};
1168
1169#ifdef COBJMACROS
1170#ifndef WIDL_C_INLINE_WRAPPERS
1171/*** IUnknown methods ***/
1172#define IDMOQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1173#define IDMOQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
1174#define IDMOQualityControl_Release(This) (This)->lpVtbl->Release(This)
1175/*** IDMOQualityControl methods ***/
1176#define IDMOQualityControl_SetNow(This,rtNow) (This)->lpVtbl->SetNow(This,rtNow)
1177#define IDMOQualityControl_SetStatus(This,dwFlags) (This)->lpVtbl->SetStatus(This,dwFlags)
1178#define IDMOQualityControl_GetStatus(This,pdwFlags) (This)->lpVtbl->GetStatus(This,pdwFlags)
1179#else
1180/*** IUnknown methods ***/
1181static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) {
1182    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1183}
1184static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) {
1185    return This->lpVtbl->AddRef(This);
1186}
1187static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) {
1188    return This->lpVtbl->Release(This);
1189}
1190/*** IDMOQualityControl methods ***/
1191static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME rtNow) {
1192    return This->lpVtbl->SetNow(This,rtNow);
1193}
1194static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD dwFlags) {
1195    return This->lpVtbl->SetStatus(This,dwFlags);
1196}
1197static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *pdwFlags) {
1198    return This->lpVtbl->GetStatus(This,pdwFlags);
1199}
1200#endif
1201#endif
1202
1203#endif
1204
1205HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetNow_Proxy(
1206    IDMOQualityControl* This,
1207    REFERENCE_TIME rtNow);
1208void __RPC_STUB IDMOQualityControl_SetNow_Stub(
1209    IRpcStubBuffer* This,
1210    IRpcChannelBuffer* pRpcChannelBuffer,
1211    PRPC_MESSAGE pRpcMessage,
1212    DWORD* pdwStubPhase);
1213HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetStatus_Proxy(
1214    IDMOQualityControl* This,
1215    DWORD dwFlags);
1216void __RPC_STUB IDMOQualityControl_SetStatus_Stub(
1217    IRpcStubBuffer* This,
1218    IRpcChannelBuffer* pRpcChannelBuffer,
1219    PRPC_MESSAGE pRpcMessage,
1220    DWORD* pdwStubPhase);
1221HRESULT STDMETHODCALLTYPE IDMOQualityControl_GetStatus_Proxy(
1222    IDMOQualityControl* This,
1223    DWORD *pdwFlags);
1224void __RPC_STUB IDMOQualityControl_GetStatus_Stub(
1225    IRpcStubBuffer* This,
1226    IRpcChannelBuffer* pRpcChannelBuffer,
1227    PRPC_MESSAGE pRpcMessage,
1228    DWORD* pdwStubPhase);
1229
1230#endif  /* __IDMOQualityControl_INTERFACE_DEFINED__ */
1231
1232
1233/*****************************************************************************
1234 * IDMOVideoOutputOptimizations interface
1235 */
1236#ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
1237#define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
1238
1239DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac);
1240#if defined(__cplusplus) && !defined(CINTERFACE)
1241MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
1242IDMOVideoOutputOptimizations : public IUnknown
1243{
1244    virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences(
1245        ULONG ulOutputStreamIndex,
1246        DWORD *pdwRequestedCapabilities) = 0;
1247
1248    virtual HRESULT STDMETHODCALLTYPE SetOperationMode(
1249        ULONG ulOutputStreamIndex,
1250        DWORD dwEnabledFeatures) = 0;
1251
1252    virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode(
1253        ULONG ulOutputStreamIndex,
1254        DWORD *pdwEnabledFeatures) = 0;
1255
1256    virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements(
1257        ULONG ulOutputStreamIndex,
1258        DWORD *pdwRequestedFeatures) = 0;
1259
1260};
1261#ifdef __CRT_UUID_DECL
1262__CRT_UUID_DECL(IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac)
1263#endif
1264#else
1265typedef struct IDMOVideoOutputOptimizationsVtbl {
1266    BEGIN_INTERFACE
1267
1268    /*** IUnknown methods ***/
1269    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1270        IDMOVideoOutputOptimizations* This,
1271        REFIID riid,
1272        void **ppvObject);
1273
1274    ULONG (STDMETHODCALLTYPE *AddRef)(
1275        IDMOVideoOutputOptimizations* This);
1276
1277    ULONG (STDMETHODCALLTYPE *Release)(
1278        IDMOVideoOutputOptimizations* This);
1279
1280    /*** IDMOVideoOutputOptimizations methods ***/
1281    HRESULT (STDMETHODCALLTYPE *QueryOperationModePreferences)(
1282        IDMOVideoOutputOptimizations* This,
1283        ULONG ulOutputStreamIndex,
1284        DWORD *pdwRequestedCapabilities);
1285
1286    HRESULT (STDMETHODCALLTYPE *SetOperationMode)(
1287        IDMOVideoOutputOptimizations* This,
1288        ULONG ulOutputStreamIndex,
1289        DWORD dwEnabledFeatures);
1290
1291    HRESULT (STDMETHODCALLTYPE *GetCurrentOperationMode)(
1292        IDMOVideoOutputOptimizations* This,
1293        ULONG ulOutputStreamIndex,
1294        DWORD *pdwEnabledFeatures);
1295
1296    HRESULT (STDMETHODCALLTYPE *GetCurrentSampleRequirements)(
1297        IDMOVideoOutputOptimizations* This,
1298        ULONG ulOutputStreamIndex,
1299        DWORD *pdwRequestedFeatures);
1300
1301    END_INTERFACE
1302} IDMOVideoOutputOptimizationsVtbl;
1303interface IDMOVideoOutputOptimizations {
1304    CONST_VTBL IDMOVideoOutputOptimizationsVtbl* lpVtbl;
1305};
1306
1307#ifdef COBJMACROS
1308#ifndef WIDL_C_INLINE_WRAPPERS
1309/*** IUnknown methods ***/
1310#define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1311#define IDMOVideoOutputOptimizations_AddRef(This) (This)->lpVtbl->AddRef(This)
1312#define IDMOVideoOutputOptimizations_Release(This) (This)->lpVtbl->Release(This)
1313/*** IDMOVideoOutputOptimizations methods ***/
1314#define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities) (This)->lpVtbl->QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities)
1315#define IDMOVideoOutputOptimizations_SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures) (This)->lpVtbl->SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures)
1316#define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures) (This)->lpVtbl->GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures)
1317#define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,ulOutputStreamIndex,pdwRequestedFeatures) (This)->lpVtbl->GetCurrentSampleRequirements(This,ulOutputStreamIndex,pdwRequestedFeatures)
1318#else
1319/*** IUnknown methods ***/
1320static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) {
1321    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1322}
1323static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) {
1324    return This->lpVtbl->AddRef(This);
1325}
1326static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) {
1327    return This->lpVtbl->Release(This);
1328}
1329/*** IDMOVideoOutputOptimizations methods ***/
1330static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD *pdwRequestedCapabilities) {
1331    return This->lpVtbl->QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities);
1332}
1333static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD dwEnabledFeatures) {
1334    return This->lpVtbl->SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures);
1335}
1336static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD *pdwEnabledFeatures) {
1337    return This->lpVtbl->GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures);
1338}
1339static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD *pdwRequestedFeatures) {
1340    return This->lpVtbl->GetCurrentSampleRequirements(This,ulOutputStreamIndex,pdwRequestedFeatures);
1341}
1342#endif
1343#endif
1344
1345#endif
1346
1347HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_QueryOperationModePreferences_Proxy(
1348    IDMOVideoOutputOptimizations* This,
1349    ULONG ulOutputStreamIndex,
1350    DWORD *pdwRequestedCapabilities);
1351void __RPC_STUB IDMOVideoOutputOptimizations_QueryOperationModePreferences_Stub(
1352    IRpcStubBuffer* This,
1353    IRpcChannelBuffer* pRpcChannelBuffer,
1354    PRPC_MESSAGE pRpcMessage,
1355    DWORD* pdwStubPhase);
1356HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_SetOperationMode_Proxy(
1357    IDMOVideoOutputOptimizations* This,
1358    ULONG ulOutputStreamIndex,
1359    DWORD dwEnabledFeatures);
1360void __RPC_STUB IDMOVideoOutputOptimizations_SetOperationMode_Stub(
1361    IRpcStubBuffer* This,
1362    IRpcChannelBuffer* pRpcChannelBuffer,
1363    PRPC_MESSAGE pRpcMessage,
1364    DWORD* pdwStubPhase);
1365HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentOperationMode_Proxy(
1366    IDMOVideoOutputOptimizations* This,
1367    ULONG ulOutputStreamIndex,
1368    DWORD *pdwEnabledFeatures);
1369void __RPC_STUB IDMOVideoOutputOptimizations_GetCurrentOperationMode_Stub(
1370    IRpcStubBuffer* This,
1371    IRpcChannelBuffer* pRpcChannelBuffer,
1372    PRPC_MESSAGE pRpcMessage,
1373    DWORD* pdwStubPhase);
1374HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentSampleRequirements_Proxy(
1375    IDMOVideoOutputOptimizations* This,
1376    ULONG ulOutputStreamIndex,
1377    DWORD *pdwRequestedFeatures);
1378void __RPC_STUB IDMOVideoOutputOptimizations_GetCurrentSampleRequirements_Stub(
1379    IRpcStubBuffer* This,
1380    IRpcChannelBuffer* pRpcChannelBuffer,
1381    PRPC_MESSAGE pRpcMessage,
1382    DWORD* pdwStubPhase);
1383
1384#endif  /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */
1385
1386#endif
1387/* Begin additional prototypes for all interfaces */
1388
1389
1390/* End additional prototypes */
1391
1392#ifdef __cplusplus
1393}
1394#endif
1395
1396#endif /* __mediaobj_h__ */
1397