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__
22 typedef interface IMediaBuffer IMediaBuffer;
23 #endif
24 
25 #ifndef __IMediaObject_FWD_DEFINED__
26 #define __IMediaObject_FWD_DEFINED__
27 typedef interface IMediaObject IMediaObject;
28 #endif
29 
30 #ifndef __IEnumDMO_FWD_DEFINED__
31 #define __IEnumDMO_FWD_DEFINED__
32 typedef interface IEnumDMO IEnumDMO;
33 #endif
34 
35 #ifndef __IMediaObjectInPlace_FWD_DEFINED__
36 #define __IMediaObjectInPlace_FWD_DEFINED__
37 typedef interface IMediaObjectInPlace IMediaObjectInPlace;
38 #endif
39 
40 #ifndef __IDMOQualityControl_FWD_DEFINED__
41 #define __IDMOQualityControl_FWD_DEFINED__
42 typedef interface IDMOQualityControl IDMOQualityControl;
43 #endif
44 
45 #ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__
46 #define __IDMOVideoOutputOptimizations_FWD_DEFINED__
47 typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
48 #endif
49 
50 /* Headers for imported files */
51 
52 #include <unknwn.h>
53 #include <objidl.h>
54 
55 #ifdef __cplusplus
56 extern "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__
68 typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;
69 #else
70 typedef 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 
82 typedef LONGLONG REFERENCE_TIME;
83 #endif
84 
85 enum _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 
93 enum _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 
102 enum _DMO_INPUT_STATUS_FLAGS {
103     DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1
104 };
105 
106 
107 enum _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 
115 enum _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 
124 enum _DMO_SET_TYPE_FLAGS {
125     DMO_SET_TYPEF_TEST_ONLY = 0x1,
126     DMO_SET_TYPEF_CLEAR = 0x2
127 };
128 
129 
130 enum _DMO_PROCESS_OUTPUT_FLAGS {
131     DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1
132 };
133 
134 
135 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
136 enum _DMO_INPLACE_PROCESS_FLAGS {
137     DMO_INPLACE_NORMAL = 0x0,
138     DMO_INPLACE_ZERO = 0x1
139 };
140 
141 
142 enum _DMO_QUALITY_STATUS_FLAGS {
143     DMO_QUALITY_STATUS_ENABLED = 0x1
144 };
145 
146 
147 enum _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 
158 DEFINE_GUID(IID_IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37);
159 #if defined(__cplusplus) && !defined(CINTERFACE)
160 MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837")
161 IMediaBuffer : 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
178 typedef 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;
209 interface 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 ***/
225 static FORCEINLINE HRESULT IMediaBuffer_QueryInterface(IMediaBuffer* This,REFIID riid,void **ppvObject) {
226     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
227 }
228 static FORCEINLINE ULONG IMediaBuffer_AddRef(IMediaBuffer* This) {
229     return This->lpVtbl->AddRef(This);
230 }
231 static FORCEINLINE ULONG IMediaBuffer_Release(IMediaBuffer* This) {
232     return This->lpVtbl->Release(This);
233 }
234 /*** IMediaBuffer methods ***/
235 static FORCEINLINE HRESULT IMediaBuffer_SetLength(IMediaBuffer* This,DWORD cbLength) {
236     return This->lpVtbl->SetLength(This,cbLength);
237 }
238 static FORCEINLINE HRESULT IMediaBuffer_GetMaxLength(IMediaBuffer* This,DWORD *pcbMaxLength) {
239     return This->lpVtbl->GetMaxLength(This,pcbMaxLength);
240 }
241 static 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 
249 HRESULT STDMETHODCALLTYPE IMediaBuffer_SetLength_Proxy(
250     IMediaBuffer* This,
251     DWORD cbLength);
252 void __RPC_STUB IMediaBuffer_SetLength_Stub(
253     IRpcStubBuffer* This,
254     IRpcChannelBuffer* pRpcChannelBuffer,
255     PRPC_MESSAGE pRpcMessage,
256     DWORD* pdwStubPhase);
257 HRESULT STDMETHODCALLTYPE IMediaBuffer_GetMaxLength_Proxy(
258     IMediaBuffer* This,
259     DWORD *pcbMaxLength);
260 void __RPC_STUB IMediaBuffer_GetMaxLength_Stub(
261     IRpcStubBuffer* This,
262     IRpcChannelBuffer* pRpcChannelBuffer,
263     PRPC_MESSAGE pRpcMessage,
264     DWORD* pdwStubPhase);
265 HRESULT STDMETHODCALLTYPE IMediaBuffer_GetBufferAndLength_Proxy(
266     IMediaBuffer* This,
267     BYTE **ppBuffer,
268     DWORD *pcbLength);
269 void __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 
278 typedef struct _DMO_OUTPUT_DATA_BUFFER {
279     IMediaBuffer *pBuffer;
280     DWORD dwStatus;
281     REFERENCE_TIME rtTimestamp;
282     REFERENCE_TIME rtTimelength;
283 } DMO_OUTPUT_DATA_BUFFER;
284 typedef 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 
292 DEFINE_GUID(IID_IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4);
293 #if defined(__cplusplus) && !defined(CINTERFACE)
294 MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4")
295 IMediaObject : 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
393 typedef 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;
520 interface 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 ***/
554 static FORCEINLINE HRESULT IMediaObject_QueryInterface(IMediaObject* This,REFIID riid,void **ppvObject) {
555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
556 }
557 static FORCEINLINE ULONG IMediaObject_AddRef(IMediaObject* This) {
558     return This->lpVtbl->AddRef(This);
559 }
560 static FORCEINLINE ULONG IMediaObject_Release(IMediaObject* This) {
561     return This->lpVtbl->Release(This);
562 }
563 /*** IMediaObject methods ***/
564 static FORCEINLINE HRESULT IMediaObject_GetStreamCount(IMediaObject* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) {
565     return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams);
566 }
567 static FORCEINLINE HRESULT IMediaObject_GetInputStreamInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pdwFlags) {
568     return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags);
569 }
570 static FORCEINLINE HRESULT IMediaObject_GetOutputStreamInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pdwFlags) {
571     return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags);
572 }
573 static FORCEINLINE HRESULT IMediaObject_GetInputType(IMediaObject* This,DWORD dwInputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
574     return This->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt);
575 }
576 static FORCEINLINE HRESULT IMediaObject_GetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
577     return This->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt);
578 }
579 static 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 }
582 static 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 }
585 static FORCEINLINE HRESULT IMediaObject_GetInputCurrentType(IMediaObject* This,DWORD dwInputStreamIndex,DMO_MEDIA_TYPE *pmt) {
586     return This->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt);
587 }
588 static FORCEINLINE HRESULT IMediaObject_GetOutputCurrentType(IMediaObject* This,DWORD dwOutputStreamIndex,DMO_MEDIA_TYPE *pmt) {
589     return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt);
590 }
591 static 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 }
594 static FORCEINLINE HRESULT IMediaObject_GetOutputSizeInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pcbSize,DWORD *pcbAlignment) {
595     return This->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment);
596 }
597 static FORCEINLINE HRESULT IMediaObject_GetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME *prtMaxLatency) {
598     return This->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency);
599 }
600 static FORCEINLINE HRESULT IMediaObject_SetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME rtMaxLatency) {
601     return This->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency);
602 }
603 static FORCEINLINE HRESULT IMediaObject_Flush(IMediaObject* This) {
604     return This->lpVtbl->Flush(This);
605 }
606 static FORCEINLINE HRESULT IMediaObject_Discontinuity(IMediaObject* This,DWORD dwInputStreamIndex) {
607     return This->lpVtbl->Discontinuity(This,dwInputStreamIndex);
608 }
609 static FORCEINLINE HRESULT IMediaObject_AllocateStreamingResources(IMediaObject* This) {
610     return This->lpVtbl->AllocateStreamingResources(This);
611 }
612 static FORCEINLINE HRESULT IMediaObject_FreeStreamingResources(IMediaObject* This) {
613     return This->lpVtbl->FreeStreamingResources(This);
614 }
615 static FORCEINLINE HRESULT IMediaObject_GetInputStatus(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *dwFlags) {
616     return This->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags);
617 }
618 static 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 }
621 static 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 }
624 static FORCEINLINE HRESULT IMediaObject_Lock(IMediaObject* This,LONG bLock) {
625     return This->lpVtbl->Lock(This,bLock);
626 }
627 #endif
628 #endif
629 
630 #endif
631 
632 HRESULT STDMETHODCALLTYPE IMediaObject_GetStreamCount_Proxy(
633     IMediaObject* This,
634     DWORD *pcInputStreams,
635     DWORD *pcOutputStreams);
636 void __RPC_STUB IMediaObject_GetStreamCount_Stub(
637     IRpcStubBuffer* This,
638     IRpcChannelBuffer* pRpcChannelBuffer,
639     PRPC_MESSAGE pRpcMessage,
640     DWORD* pdwStubPhase);
641 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStreamInfo_Proxy(
642     IMediaObject* This,
643     DWORD dwInputStreamIndex,
644     DWORD *pdwFlags);
645 void __RPC_STUB IMediaObject_GetInputStreamInfo_Stub(
646     IRpcStubBuffer* This,
647     IRpcChannelBuffer* pRpcChannelBuffer,
648     PRPC_MESSAGE pRpcMessage,
649     DWORD* pdwStubPhase);
650 HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputStreamInfo_Proxy(
651     IMediaObject* This,
652     DWORD dwOutputStreamIndex,
653     DWORD *pdwFlags);
654 void __RPC_STUB IMediaObject_GetOutputStreamInfo_Stub(
655     IRpcStubBuffer* This,
656     IRpcChannelBuffer* pRpcChannelBuffer,
657     PRPC_MESSAGE pRpcMessage,
658     DWORD* pdwStubPhase);
659 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputType_Proxy(
660     IMediaObject* This,
661     DWORD dwInputStreamIndex,
662     DWORD dwTypeIndex,
663     DMO_MEDIA_TYPE *pmt);
664 void __RPC_STUB IMediaObject_GetInputType_Stub(
665     IRpcStubBuffer* This,
666     IRpcChannelBuffer* pRpcChannelBuffer,
667     PRPC_MESSAGE pRpcMessage,
668     DWORD* pdwStubPhase);
669 HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputType_Proxy(
670     IMediaObject* This,
671     DWORD dwOutputStreamIndex,
672     DWORD dwTypeIndex,
673     DMO_MEDIA_TYPE *pmt);
674 void __RPC_STUB IMediaObject_GetOutputType_Stub(
675     IRpcStubBuffer* This,
676     IRpcChannelBuffer* pRpcChannelBuffer,
677     PRPC_MESSAGE pRpcMessage,
678     DWORD* pdwStubPhase);
679 HRESULT STDMETHODCALLTYPE IMediaObject_SetInputType_Proxy(
680     IMediaObject* This,
681     DWORD dwInputStreamIndex,
682     const DMO_MEDIA_TYPE *pmt,
683     DWORD dwFlags);
684 void __RPC_STUB IMediaObject_SetInputType_Stub(
685     IRpcStubBuffer* This,
686     IRpcChannelBuffer* pRpcChannelBuffer,
687     PRPC_MESSAGE pRpcMessage,
688     DWORD* pdwStubPhase);
689 HRESULT STDMETHODCALLTYPE IMediaObject_SetOutputType_Proxy(
690     IMediaObject* This,
691     DWORD dwOutputStreamIndex,
692     const DMO_MEDIA_TYPE *pmt,
693     DWORD dwFlags);
694 void __RPC_STUB IMediaObject_SetOutputType_Stub(
695     IRpcStubBuffer* This,
696     IRpcChannelBuffer* pRpcChannelBuffer,
697     PRPC_MESSAGE pRpcMessage,
698     DWORD* pdwStubPhase);
699 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputCurrentType_Proxy(
700     IMediaObject* This,
701     DWORD dwInputStreamIndex,
702     DMO_MEDIA_TYPE *pmt);
703 void __RPC_STUB IMediaObject_GetInputCurrentType_Stub(
704     IRpcStubBuffer* This,
705     IRpcChannelBuffer* pRpcChannelBuffer,
706     PRPC_MESSAGE pRpcMessage,
707     DWORD* pdwStubPhase);
708 HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputCurrentType_Proxy(
709     IMediaObject* This,
710     DWORD dwOutputStreamIndex,
711     DMO_MEDIA_TYPE *pmt);
712 void __RPC_STUB IMediaObject_GetOutputCurrentType_Stub(
713     IRpcStubBuffer* This,
714     IRpcChannelBuffer* pRpcChannelBuffer,
715     PRPC_MESSAGE pRpcMessage,
716     DWORD* pdwStubPhase);
717 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputSizeInfo_Proxy(
718     IMediaObject* This,
719     DWORD dwInputStreamIndex,
720     DWORD *pcbSize,
721     DWORD *pcbMaxLookahead,
722     DWORD *pcbAlignment);
723 void __RPC_STUB IMediaObject_GetInputSizeInfo_Stub(
724     IRpcStubBuffer* This,
725     IRpcChannelBuffer* pRpcChannelBuffer,
726     PRPC_MESSAGE pRpcMessage,
727     DWORD* pdwStubPhase);
728 HRESULT STDMETHODCALLTYPE IMediaObject_GetOutputSizeInfo_Proxy(
729     IMediaObject* This,
730     DWORD dwOutputStreamIndex,
731     DWORD *pcbSize,
732     DWORD *pcbAlignment);
733 void __RPC_STUB IMediaObject_GetOutputSizeInfo_Stub(
734     IRpcStubBuffer* This,
735     IRpcChannelBuffer* pRpcChannelBuffer,
736     PRPC_MESSAGE pRpcMessage,
737     DWORD* pdwStubPhase);
738 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputMaxLatency_Proxy(
739     IMediaObject* This,
740     DWORD dwInputStreamIndex,
741     REFERENCE_TIME *prtMaxLatency);
742 void __RPC_STUB IMediaObject_GetInputMaxLatency_Stub(
743     IRpcStubBuffer* This,
744     IRpcChannelBuffer* pRpcChannelBuffer,
745     PRPC_MESSAGE pRpcMessage,
746     DWORD* pdwStubPhase);
747 HRESULT STDMETHODCALLTYPE IMediaObject_SetInputMaxLatency_Proxy(
748     IMediaObject* This,
749     DWORD dwInputStreamIndex,
750     REFERENCE_TIME rtMaxLatency);
751 void __RPC_STUB IMediaObject_SetInputMaxLatency_Stub(
752     IRpcStubBuffer* This,
753     IRpcChannelBuffer* pRpcChannelBuffer,
754     PRPC_MESSAGE pRpcMessage,
755     DWORD* pdwStubPhase);
756 HRESULT STDMETHODCALLTYPE IMediaObject_Flush_Proxy(
757     IMediaObject* This);
758 void __RPC_STUB IMediaObject_Flush_Stub(
759     IRpcStubBuffer* This,
760     IRpcChannelBuffer* pRpcChannelBuffer,
761     PRPC_MESSAGE pRpcMessage,
762     DWORD* pdwStubPhase);
763 HRESULT STDMETHODCALLTYPE IMediaObject_Discontinuity_Proxy(
764     IMediaObject* This,
765     DWORD dwInputStreamIndex);
766 void __RPC_STUB IMediaObject_Discontinuity_Stub(
767     IRpcStubBuffer* This,
768     IRpcChannelBuffer* pRpcChannelBuffer,
769     PRPC_MESSAGE pRpcMessage,
770     DWORD* pdwStubPhase);
771 HRESULT STDMETHODCALLTYPE IMediaObject_AllocateStreamingResources_Proxy(
772     IMediaObject* This);
773 void __RPC_STUB IMediaObject_AllocateStreamingResources_Stub(
774     IRpcStubBuffer* This,
775     IRpcChannelBuffer* pRpcChannelBuffer,
776     PRPC_MESSAGE pRpcMessage,
777     DWORD* pdwStubPhase);
778 HRESULT STDMETHODCALLTYPE IMediaObject_FreeStreamingResources_Proxy(
779     IMediaObject* This);
780 void __RPC_STUB IMediaObject_FreeStreamingResources_Stub(
781     IRpcStubBuffer* This,
782     IRpcChannelBuffer* pRpcChannelBuffer,
783     PRPC_MESSAGE pRpcMessage,
784     DWORD* pdwStubPhase);
785 HRESULT STDMETHODCALLTYPE IMediaObject_GetInputStatus_Proxy(
786     IMediaObject* This,
787     DWORD dwInputStreamIndex,
788     DWORD *dwFlags);
789 void __RPC_STUB IMediaObject_GetInputStatus_Stub(
790     IRpcStubBuffer* This,
791     IRpcChannelBuffer* pRpcChannelBuffer,
792     PRPC_MESSAGE pRpcMessage,
793     DWORD* pdwStubPhase);
794 HRESULT STDMETHODCALLTYPE IMediaObject_ProcessInput_Proxy(
795     IMediaObject* This,
796     DWORD dwInputStreamIndex,
797     IMediaBuffer *pBuffer,
798     DWORD dwFlags,
799     REFERENCE_TIME rtTimestamp,
800     REFERENCE_TIME rtTimelength);
801 void __RPC_STUB IMediaObject_ProcessInput_Stub(
802     IRpcStubBuffer* This,
803     IRpcChannelBuffer* pRpcChannelBuffer,
804     PRPC_MESSAGE pRpcMessage,
805     DWORD* pdwStubPhase);
806 HRESULT STDMETHODCALLTYPE IMediaObject_ProcessOutput_Proxy(
807     IMediaObject* This,
808     DWORD dwFlags,
809     DWORD cOutputBufferCount,
810     DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
811     DWORD *pdwStatus);
812 void __RPC_STUB IMediaObject_ProcessOutput_Stub(
813     IRpcStubBuffer* This,
814     IRpcChannelBuffer* pRpcChannelBuffer,
815     PRPC_MESSAGE pRpcMessage,
816     DWORD* pdwStubPhase);
817 HRESULT STDMETHODCALLTYPE IMediaObject_Lock_Proxy(
818     IMediaObject* This,
819     LONG bLock);
820 void __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 
835 DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f);
836 #if defined(__cplusplus) && !defined(CINTERFACE)
837 MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
838 IEnumDMO : 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
860 typedef 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;
896 interface 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 ***/
913 static FORCEINLINE HRESULT IEnumDMO_QueryInterface(IEnumDMO* This,REFIID riid,void **ppvObject) {
914     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
915 }
916 static FORCEINLINE ULONG IEnumDMO_AddRef(IEnumDMO* This) {
917     return This->lpVtbl->AddRef(This);
918 }
919 static FORCEINLINE ULONG IEnumDMO_Release(IEnumDMO* This) {
920     return This->lpVtbl->Release(This);
921 }
922 /*** IEnumDMO methods ***/
923 static 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 }
926 static FORCEINLINE HRESULT IEnumDMO_Skip(IEnumDMO* This,DWORD cItemsToSkip) {
927     return This->lpVtbl->Skip(This,cItemsToSkip);
928 }
929 static FORCEINLINE HRESULT IEnumDMO_Reset(IEnumDMO* This) {
930     return This->lpVtbl->Reset(This);
931 }
932 static FORCEINLINE HRESULT IEnumDMO_Clone(IEnumDMO* This,IEnumDMO **ppEnum) {
933     return This->lpVtbl->Clone(This,ppEnum);
934 }
935 #endif
936 #endif
937 
938 #endif
939 
940 HRESULT STDMETHODCALLTYPE IEnumDMO_Next_Proxy(
941     IEnumDMO* This,
942     DWORD cItemsToFetch,
943     CLSID *pCLSID,
944     LPWSTR *Names,
945     DWORD *pcItemsFetched);
946 void __RPC_STUB IEnumDMO_Next_Stub(
947     IRpcStubBuffer* This,
948     IRpcChannelBuffer* pRpcChannelBuffer,
949     PRPC_MESSAGE pRpcMessage,
950     DWORD* pdwStubPhase);
951 HRESULT STDMETHODCALLTYPE IEnumDMO_Skip_Proxy(
952     IEnumDMO* This,
953     DWORD cItemsToSkip);
954 void __RPC_STUB IEnumDMO_Skip_Stub(
955     IRpcStubBuffer* This,
956     IRpcChannelBuffer* pRpcChannelBuffer,
957     PRPC_MESSAGE pRpcMessage,
958     DWORD* pdwStubPhase);
959 HRESULT STDMETHODCALLTYPE IEnumDMO_Reset_Proxy(
960     IEnumDMO* This);
961 void __RPC_STUB IEnumDMO_Reset_Stub(
962     IRpcStubBuffer* This,
963     IRpcChannelBuffer* pRpcChannelBuffer,
964     PRPC_MESSAGE pRpcMessage,
965     DWORD* pdwStubPhase);
966 HRESULT STDMETHODCALLTYPE IEnumDMO_Clone_Proxy(
967     IEnumDMO* This,
968     IEnumDMO **ppEnum);
969 void __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 
984 DEFINE_GUID(IID_IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41);
985 #if defined(__cplusplus) && !defined(CINTERFACE)
986 MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741")
987 IMediaObjectInPlace : 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
1006 typedef 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;
1039 interface 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 ***/
1055 static FORCEINLINE HRESULT IMediaObjectInPlace_QueryInterface(IMediaObjectInPlace* This,REFIID riid,void **ppvObject) {
1056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1057 }
1058 static FORCEINLINE ULONG IMediaObjectInPlace_AddRef(IMediaObjectInPlace* This) {
1059     return This->lpVtbl->AddRef(This);
1060 }
1061 static FORCEINLINE ULONG IMediaObjectInPlace_Release(IMediaObjectInPlace* This) {
1062     return This->lpVtbl->Release(This);
1063 }
1064 /*** IMediaObjectInPlace methods ***/
1065 static 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 }
1068 static FORCEINLINE HRESULT IMediaObjectInPlace_Clone(IMediaObjectInPlace* This,IMediaObjectInPlace **ppMediaObject) {
1069     return This->lpVtbl->Clone(This,ppMediaObject);
1070 }
1071 static 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 
1079 HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Process_Proxy(
1080     IMediaObjectInPlace* This,
1081     ULONG ulSize,
1082     BYTE *pData,
1083     REFERENCE_TIME refTimeStart,
1084     DWORD dwFlags);
1085 void __RPC_STUB IMediaObjectInPlace_Process_Stub(
1086     IRpcStubBuffer* This,
1087     IRpcChannelBuffer* pRpcChannelBuffer,
1088     PRPC_MESSAGE pRpcMessage,
1089     DWORD* pdwStubPhase);
1090 HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_Clone_Proxy(
1091     IMediaObjectInPlace* This,
1092     IMediaObjectInPlace **ppMediaObject);
1093 void __RPC_STUB IMediaObjectInPlace_Clone_Stub(
1094     IRpcStubBuffer* This,
1095     IRpcChannelBuffer* pRpcChannelBuffer,
1096     PRPC_MESSAGE pRpcMessage,
1097     DWORD* pdwStubPhase);
1098 HRESULT STDMETHODCALLTYPE IMediaObjectInPlace_GetLatency_Proxy(
1099     IMediaObjectInPlace* This,
1100     REFERENCE_TIME *pLatencyTime);
1101 void __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 
1116 DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60);
1117 #if defined(__cplusplus) && !defined(CINTERFACE)
1118 MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
1119 IDMOQualityControl : 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
1135 typedef 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;
1165 interface 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 ***/
1181 static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) {
1182     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1183 }
1184 static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) {
1185     return This->lpVtbl->AddRef(This);
1186 }
1187 static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) {
1188     return This->lpVtbl->Release(This);
1189 }
1190 /*** IDMOQualityControl methods ***/
1191 static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME rtNow) {
1192     return This->lpVtbl->SetNow(This,rtNow);
1193 }
1194 static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD dwFlags) {
1195     return This->lpVtbl->SetStatus(This,dwFlags);
1196 }
1197 static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *pdwFlags) {
1198     return This->lpVtbl->GetStatus(This,pdwFlags);
1199 }
1200 #endif
1201 #endif
1202 
1203 #endif
1204 
1205 HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetNow_Proxy(
1206     IDMOQualityControl* This,
1207     REFERENCE_TIME rtNow);
1208 void __RPC_STUB IDMOQualityControl_SetNow_Stub(
1209     IRpcStubBuffer* This,
1210     IRpcChannelBuffer* pRpcChannelBuffer,
1211     PRPC_MESSAGE pRpcMessage,
1212     DWORD* pdwStubPhase);
1213 HRESULT STDMETHODCALLTYPE IDMOQualityControl_SetStatus_Proxy(
1214     IDMOQualityControl* This,
1215     DWORD dwFlags);
1216 void __RPC_STUB IDMOQualityControl_SetStatus_Stub(
1217     IRpcStubBuffer* This,
1218     IRpcChannelBuffer* pRpcChannelBuffer,
1219     PRPC_MESSAGE pRpcMessage,
1220     DWORD* pdwStubPhase);
1221 HRESULT STDMETHODCALLTYPE IDMOQualityControl_GetStatus_Proxy(
1222     IDMOQualityControl* This,
1223     DWORD *pdwFlags);
1224 void __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 
1239 DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac);
1240 #if defined(__cplusplus) && !defined(CINTERFACE)
1241 MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
1242 IDMOVideoOutputOptimizations : 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
1265 typedef 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;
1303 interface 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 ***/
1320 static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) {
1321     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1322 }
1323 static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) {
1324     return This->lpVtbl->AddRef(This);
1325 }
1326 static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) {
1327     return This->lpVtbl->Release(This);
1328 }
1329 /*** IDMOVideoOutputOptimizations methods ***/
1330 static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD *pdwRequestedCapabilities) {
1331     return This->lpVtbl->QueryOperationModePreferences(This,ulOutputStreamIndex,pdwRequestedCapabilities);
1332 }
1333 static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD dwEnabledFeatures) {
1334     return This->lpVtbl->SetOperationMode(This,ulOutputStreamIndex,dwEnabledFeatures);
1335 }
1336 static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG ulOutputStreamIndex,DWORD *pdwEnabledFeatures) {
1337     return This->lpVtbl->GetCurrentOperationMode(This,ulOutputStreamIndex,pdwEnabledFeatures);
1338 }
1339 static 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 
1347 HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_QueryOperationModePreferences_Proxy(
1348     IDMOVideoOutputOptimizations* This,
1349     ULONG ulOutputStreamIndex,
1350     DWORD *pdwRequestedCapabilities);
1351 void __RPC_STUB IDMOVideoOutputOptimizations_QueryOperationModePreferences_Stub(
1352     IRpcStubBuffer* This,
1353     IRpcChannelBuffer* pRpcChannelBuffer,
1354     PRPC_MESSAGE pRpcMessage,
1355     DWORD* pdwStubPhase);
1356 HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_SetOperationMode_Proxy(
1357     IDMOVideoOutputOptimizations* This,
1358     ULONG ulOutputStreamIndex,
1359     DWORD dwEnabledFeatures);
1360 void __RPC_STUB IDMOVideoOutputOptimizations_SetOperationMode_Stub(
1361     IRpcStubBuffer* This,
1362     IRpcChannelBuffer* pRpcChannelBuffer,
1363     PRPC_MESSAGE pRpcMessage,
1364     DWORD* pdwStubPhase);
1365 HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentOperationMode_Proxy(
1366     IDMOVideoOutputOptimizations* This,
1367     ULONG ulOutputStreamIndex,
1368     DWORD *pdwEnabledFeatures);
1369 void __RPC_STUB IDMOVideoOutputOptimizations_GetCurrentOperationMode_Stub(
1370     IRpcStubBuffer* This,
1371     IRpcChannelBuffer* pRpcChannelBuffer,
1372     PRPC_MESSAGE pRpcMessage,
1373     DWORD* pdwStubPhase);
1374 HRESULT STDMETHODCALLTYPE IDMOVideoOutputOptimizations_GetCurrentSampleRequirements_Proxy(
1375     IDMOVideoOutputOptimizations* This,
1376     ULONG ulOutputStreamIndex,
1377     DWORD *pdwRequestedFeatures);
1378 void __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