source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mfobjects.h

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

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

File size: 244.7 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/mfobjects.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __mfobjects_h__
17#define __mfobjects_h__
18
19/* Forward declarations */
20
21#ifndef __IMFAttributes_FWD_DEFINED__
22#define __IMFAttributes_FWD_DEFINED__
23typedef interface IMFAttributes IMFAttributes;
24#ifdef __cplusplus
25interface IMFAttributes;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMFMediaBuffer_FWD_DEFINED__
30#define __IMFMediaBuffer_FWD_DEFINED__
31typedef interface IMFMediaBuffer IMFMediaBuffer;
32#ifdef __cplusplus
33interface IMFMediaBuffer;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMFSample_FWD_DEFINED__
38#define __IMFSample_FWD_DEFINED__
39typedef interface IMFSample IMFSample;
40#ifdef __cplusplus
41interface IMFSample;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMF2DBuffer_FWD_DEFINED__
46#define __IMF2DBuffer_FWD_DEFINED__
47typedef interface IMF2DBuffer IMF2DBuffer;
48#ifdef __cplusplus
49interface IMF2DBuffer;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IMF2DBuffer2_FWD_DEFINED__
54#define __IMF2DBuffer2_FWD_DEFINED__
55typedef interface IMF2DBuffer2 IMF2DBuffer2;
56#ifdef __cplusplus
57interface IMF2DBuffer2;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IMFDXGIBuffer_FWD_DEFINED__
62#define __IMFDXGIBuffer_FWD_DEFINED__
63typedef interface IMFDXGIBuffer IMFDXGIBuffer;
64#ifdef __cplusplus
65interface IMFDXGIBuffer;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IMFMediaType_FWD_DEFINED__
70#define __IMFMediaType_FWD_DEFINED__
71typedef interface IMFMediaType IMFMediaType;
72#ifdef __cplusplus
73interface IMFMediaType;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IMFAudioMediaType_FWD_DEFINED__
78#define __IMFAudioMediaType_FWD_DEFINED__
79typedef interface IMFAudioMediaType IMFAudioMediaType;
80#ifdef __cplusplus
81interface IMFAudioMediaType;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IMFVideoMediaType_FWD_DEFINED__
86#define __IMFVideoMediaType_FWD_DEFINED__
87typedef interface IMFVideoMediaType IMFVideoMediaType;
88#ifdef __cplusplus
89interface IMFVideoMediaType;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IMFAsyncResult_FWD_DEFINED__
94#define __IMFAsyncResult_FWD_DEFINED__
95typedef interface IMFAsyncResult IMFAsyncResult;
96#ifdef __cplusplus
97interface IMFAsyncResult;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IMFAsyncCallback_FWD_DEFINED__
102#define __IMFAsyncCallback_FWD_DEFINED__
103typedef interface IMFAsyncCallback IMFAsyncCallback;
104#ifdef __cplusplus
105interface IMFAsyncCallback;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __IMFAsyncCallbackLogging_FWD_DEFINED__
110#define __IMFAsyncCallbackLogging_FWD_DEFINED__
111typedef interface IMFAsyncCallbackLogging IMFAsyncCallbackLogging;
112#ifdef __cplusplus
113interface IMFAsyncCallbackLogging;
114#endif /* __cplusplus */
115#endif
116
117#ifndef __IMFMediaEvent_FWD_DEFINED__
118#define __IMFMediaEvent_FWD_DEFINED__
119typedef interface IMFMediaEvent IMFMediaEvent;
120#ifdef __cplusplus
121interface IMFMediaEvent;
122#endif /* __cplusplus */
123#endif
124
125#ifndef __IMFMediaEventGenerator_FWD_DEFINED__
126#define __IMFMediaEventGenerator_FWD_DEFINED__
127typedef interface IMFMediaEventGenerator IMFMediaEventGenerator;
128#ifdef __cplusplus
129interface IMFMediaEventGenerator;
130#endif /* __cplusplus */
131#endif
132
133#ifndef __IMFRemoteAsyncCallback_FWD_DEFINED__
134#define __IMFRemoteAsyncCallback_FWD_DEFINED__
135typedef interface IMFRemoteAsyncCallback IMFRemoteAsyncCallback;
136#ifdef __cplusplus
137interface IMFRemoteAsyncCallback;
138#endif /* __cplusplus */
139#endif
140
141#ifndef __IMFByteStream_FWD_DEFINED__
142#define __IMFByteStream_FWD_DEFINED__
143typedef interface IMFByteStream IMFByteStream;
144#ifdef __cplusplus
145interface IMFByteStream;
146#endif /* __cplusplus */
147#endif
148
149#ifndef __IMFByteStreamProxyClassFactory_FWD_DEFINED__
150#define __IMFByteStreamProxyClassFactory_FWD_DEFINED__
151typedef interface IMFByteStreamProxyClassFactory IMFByteStreamProxyClassFactory;
152#ifdef __cplusplus
153interface IMFByteStreamProxyClassFactory;
154#endif /* __cplusplus */
155#endif
156
157#ifndef __IMFSampleOutputStream_FWD_DEFINED__
158#define __IMFSampleOutputStream_FWD_DEFINED__
159typedef interface IMFSampleOutputStream IMFSampleOutputStream;
160#ifdef __cplusplus
161interface IMFSampleOutputStream;
162#endif /* __cplusplus */
163#endif
164
165#ifndef __IMFCollection_FWD_DEFINED__
166#define __IMFCollection_FWD_DEFINED__
167typedef interface IMFCollection IMFCollection;
168#ifdef __cplusplus
169interface IMFCollection;
170#endif /* __cplusplus */
171#endif
172
173#ifndef __IMFMediaEventQueue_FWD_DEFINED__
174#define __IMFMediaEventQueue_FWD_DEFINED__
175typedef interface IMFMediaEventQueue IMFMediaEventQueue;
176#ifdef __cplusplus
177interface IMFMediaEventQueue;
178#endif /* __cplusplus */
179#endif
180
181#ifndef __IMFActivate_FWD_DEFINED__
182#define __IMFActivate_FWD_DEFINED__
183typedef interface IMFActivate IMFActivate;
184#ifdef __cplusplus
185interface IMFActivate;
186#endif /* __cplusplus */
187#endif
188
189#ifndef __IMFPluginControl_FWD_DEFINED__
190#define __IMFPluginControl_FWD_DEFINED__
191typedef interface IMFPluginControl IMFPluginControl;
192#ifdef __cplusplus
193interface IMFPluginControl;
194#endif /* __cplusplus */
195#endif
196
197#ifndef __IMFPluginControl2_FWD_DEFINED__
198#define __IMFPluginControl2_FWD_DEFINED__
199typedef interface IMFPluginControl2 IMFPluginControl2;
200#ifdef __cplusplus
201interface IMFPluginControl2;
202#endif /* __cplusplus */
203#endif
204
205#ifndef __IMFDXGIDeviceManager_FWD_DEFINED__
206#define __IMFDXGIDeviceManager_FWD_DEFINED__
207typedef interface IMFDXGIDeviceManager IMFDXGIDeviceManager;
208#ifdef __cplusplus
209interface IMFDXGIDeviceManager;
210#endif /* __cplusplus */
211#endif
212
213#ifndef __IMFMuxStreamAttributesManager_FWD_DEFINED__
214#define __IMFMuxStreamAttributesManager_FWD_DEFINED__
215typedef interface IMFMuxStreamAttributesManager IMFMuxStreamAttributesManager;
216#ifdef __cplusplus
217interface IMFMuxStreamAttributesManager;
218#endif /* __cplusplus */
219#endif
220
221#ifndef __IMFMuxStreamMediaTypeManager_FWD_DEFINED__
222#define __IMFMuxStreamMediaTypeManager_FWD_DEFINED__
223typedef interface IMFMuxStreamMediaTypeManager IMFMuxStreamMediaTypeManager;
224#ifdef __cplusplus
225interface IMFMuxStreamMediaTypeManager;
226#endif /* __cplusplus */
227#endif
228
229#ifndef __IMFMuxStreamSampleManager_FWD_DEFINED__
230#define __IMFMuxStreamSampleManager_FWD_DEFINED__
231typedef interface IMFMuxStreamSampleManager IMFMuxStreamSampleManager;
232#ifdef __cplusplus
233interface IMFMuxStreamSampleManager;
234#endif /* __cplusplus */
235#endif
236
237/* Headers for imported files */
238
239#include <unknwn.h>
240#include <propsys.h>
241#include <mediaobj.h>
242
243#ifdef __cplusplus
244extern "C" {
245#endif
246
247/**
248 * This file is part of the mingw-w64 runtime package.
249 * No warranty is given; refer to the file DISCLAIMER within this package.
250 */
251
252#include <winapifamily.h>
253
254
255typedef ULONGLONG QWORD;
256
257#include <mmreg.h>
258#if 0
259typedef struct tWAVEFORMATEX {
260 WORD wFormatTag;
261 WORD nChannels;
262 DWORD nSamplesPerSec;
263 DWORD nAvgBytesPerSec;
264 WORD nBlockAlign;
265 WORD wBitsPerSample;
266 WORD cbSize;
267 BYTE pExtraBytes[1];
268} WAVEFORMATEX;
269typedef struct tWAVEFORMATEX *PWAVEFORMATEX;
270typedef struct tWAVEFORMATEX *NPWAVEFORMATEX;
271typedef struct tWAVEFORMATEX *LPWAVEFORMATEX;
272typedef struct __WIDL_mfobjects_generated_name_00000027 {
273 WORD wFormatTag;
274 WORD nChannels;
275 DWORD nSamplesPerSec;
276 DWORD nAvgBytesPerSec;
277 WORD nBlockAlign;
278 WORD wBitsPerSample;
279 WORD cbSize;
280 WORD wValidBitsPerSample;
281 DWORD dwChannelMask;
282 GUID SubFormat;
283} WAVEFORMATEXTENSIBLE;
284typedef struct __WIDL_mfobjects_generated_name_00000027 *PWAVEFORMATEXTENSIBLE;
285#endif
286
287#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
288typedef enum _MF_ATTRIBUTE_TYPE {
289 MF_ATTRIBUTE_UINT32 = VT_UI4,
290 MF_ATTRIBUTE_UINT64 = VT_UI8,
291 MF_ATTRIBUTE_DOUBLE = VT_R8,
292 MF_ATTRIBUTE_GUID = VT_CLSID,
293 MF_ATTRIBUTE_STRING = VT_LPWSTR,
294 MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
295 MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
296} MF_ATTRIBUTE_TYPE;
297
298typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
299 MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
300 MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
301 MF_ATTRIBUTES_MATCH_ALL_ITEMS = 2,
302 MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
303 MF_ATTRIBUTES_MATCH_SMALLER = 4
304} MF_ATTRIBUTES_MATCH_TYPE;
305
306/*****************************************************************************
307 * IMFAttributes interface
308 */
309#ifndef __IMFAttributes_INTERFACE_DEFINED__
310#define __IMFAttributes_INTERFACE_DEFINED__
311
312DEFINE_GUID(IID_IMFAttributes, 0x2cd2d921, 0xc447, 0x44a7, 0xa1,0x3c, 0x4a,0xda,0xbf,0xc2,0x47,0xe3);
313#if defined(__cplusplus) && !defined(CINTERFACE)
314MIDL_INTERFACE("2cd2d921-c447-44a7-a13c-4adabfc247e3")
315IMFAttributes : public IUnknown
316{
317 virtual HRESULT STDMETHODCALLTYPE GetItem(
318 REFGUID guidKey,
319 PROPVARIANT *pValue) = 0;
320
321 virtual HRESULT STDMETHODCALLTYPE GetItemType(
322 REFGUID guidKey,
323 MF_ATTRIBUTE_TYPE *pType) = 0;
324
325 virtual HRESULT STDMETHODCALLTYPE CompareItem(
326 REFGUID guidKey,
327 REFPROPVARIANT Value,
328 WINBOOL *pbResult) = 0;
329
330 virtual HRESULT STDMETHODCALLTYPE Compare(
331 IMFAttributes *pTheirs,
332 MF_ATTRIBUTES_MATCH_TYPE MatchType,
333 WINBOOL *pbResult) = 0;
334
335 virtual HRESULT STDMETHODCALLTYPE GetUINT32(
336 REFGUID guidKey,
337 UINT32 *punValue) = 0;
338
339 virtual HRESULT STDMETHODCALLTYPE GetUINT64(
340 REFGUID guidKey,
341 UINT64 *punValue) = 0;
342
343 virtual HRESULT STDMETHODCALLTYPE GetDouble(
344 REFGUID guidKey,
345 double *pfValue) = 0;
346
347 virtual HRESULT STDMETHODCALLTYPE GetGUID(
348 REFGUID guidKey,
349 GUID *pguidValue) = 0;
350
351 virtual HRESULT STDMETHODCALLTYPE GetStringLength(
352 REFGUID guidKey,
353 UINT32 *pcchLength) = 0;
354
355 virtual HRESULT STDMETHODCALLTYPE GetString(
356 REFGUID guidKey,
357 LPWSTR pwszValue,
358 UINT32 cchBufSize,
359 UINT32 *pcchLength) = 0;
360
361 virtual HRESULT STDMETHODCALLTYPE GetAllocatedString(
362 REFGUID guidKey,
363 LPWSTR *ppwszValue,
364 UINT32 *pcchLength) = 0;
365
366 virtual HRESULT STDMETHODCALLTYPE GetBlobSize(
367 REFGUID guidKey,
368 UINT32 *pcbBlobSize) = 0;
369
370 virtual HRESULT STDMETHODCALLTYPE GetBlob(
371 REFGUID guidKey,
372 UINT8 *pBuf,
373 UINT32 cbBufSize,
374 UINT32 *pcbBlobSize) = 0;
375
376 virtual HRESULT STDMETHODCALLTYPE GetAllocatedBlob(
377 REFGUID guidKey,
378 UINT8 **ppBuf,
379 UINT32 *pcbSize) = 0;
380
381 virtual HRESULT STDMETHODCALLTYPE GetUnknown(
382 REFGUID guidKey,
383 REFIID riid,
384 LPVOID *ppv) = 0;
385
386 virtual HRESULT STDMETHODCALLTYPE SetItem(
387 REFGUID guidKey,
388 REFPROPVARIANT Value) = 0;
389
390 virtual HRESULT STDMETHODCALLTYPE DeleteItem(
391 REFGUID guidKey) = 0;
392
393 virtual HRESULT STDMETHODCALLTYPE DeleteAllItems(
394 ) = 0;
395
396 virtual HRESULT STDMETHODCALLTYPE SetUINT32(
397 REFGUID guidKey,
398 UINT32 unValue) = 0;
399
400 virtual HRESULT STDMETHODCALLTYPE SetUINT64(
401 REFGUID guidKey,
402 UINT64 unValue) = 0;
403
404 virtual HRESULT STDMETHODCALLTYPE SetDouble(
405 REFGUID guidKey,
406 double fValue) = 0;
407
408 virtual HRESULT STDMETHODCALLTYPE SetGUID(
409 REFGUID guidKey,
410 REFGUID guidValue) = 0;
411
412 virtual HRESULT STDMETHODCALLTYPE SetString(
413 REFGUID guidKey,
414 LPCWSTR wszValue) = 0;
415
416 virtual HRESULT STDMETHODCALLTYPE SetBlob(
417 REFGUID guidKey,
418 const UINT8 *pBuf,
419 UINT32 cbBufSize) = 0;
420
421 virtual HRESULT STDMETHODCALLTYPE SetUnknown(
422 REFGUID guidKey,
423 IUnknown *pUnknown) = 0;
424
425 virtual HRESULT STDMETHODCALLTYPE LockStore(
426 ) = 0;
427
428 virtual HRESULT STDMETHODCALLTYPE UnlockStore(
429 ) = 0;
430
431 virtual HRESULT STDMETHODCALLTYPE GetCount(
432 UINT32 *pcItems) = 0;
433
434 virtual HRESULT STDMETHODCALLTYPE GetItemByIndex(
435 UINT32 unIndex,
436 GUID *pguidKey,
437 PROPVARIANT *pValue) = 0;
438
439 virtual HRESULT STDMETHODCALLTYPE CopyAllItems(
440 IMFAttributes *pDest) = 0;
441
442};
443#ifdef __CRT_UUID_DECL
444__CRT_UUID_DECL(IMFAttributes, 0x2cd2d921, 0xc447, 0x44a7, 0xa1,0x3c, 0x4a,0xda,0xbf,0xc2,0x47,0xe3)
445#endif
446#else
447typedef struct IMFAttributesVtbl {
448 BEGIN_INTERFACE
449
450 /*** IUnknown methods ***/
451 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
452 IMFAttributes *This,
453 REFIID riid,
454 void **ppvObject);
455
456 ULONG (STDMETHODCALLTYPE *AddRef)(
457 IMFAttributes *This);
458
459 ULONG (STDMETHODCALLTYPE *Release)(
460 IMFAttributes *This);
461
462 /*** IMFAttributes methods ***/
463 HRESULT (STDMETHODCALLTYPE *GetItem)(
464 IMFAttributes *This,
465 REFGUID guidKey,
466 PROPVARIANT *pValue);
467
468 HRESULT (STDMETHODCALLTYPE *GetItemType)(
469 IMFAttributes *This,
470 REFGUID guidKey,
471 MF_ATTRIBUTE_TYPE *pType);
472
473 HRESULT (STDMETHODCALLTYPE *CompareItem)(
474 IMFAttributes *This,
475 REFGUID guidKey,
476 REFPROPVARIANT Value,
477 WINBOOL *pbResult);
478
479 HRESULT (STDMETHODCALLTYPE *Compare)(
480 IMFAttributes *This,
481 IMFAttributes *pTheirs,
482 MF_ATTRIBUTES_MATCH_TYPE MatchType,
483 WINBOOL *pbResult);
484
485 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
486 IMFAttributes *This,
487 REFGUID guidKey,
488 UINT32 *punValue);
489
490 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
491 IMFAttributes *This,
492 REFGUID guidKey,
493 UINT64 *punValue);
494
495 HRESULT (STDMETHODCALLTYPE *GetDouble)(
496 IMFAttributes *This,
497 REFGUID guidKey,
498 double *pfValue);
499
500 HRESULT (STDMETHODCALLTYPE *GetGUID)(
501 IMFAttributes *This,
502 REFGUID guidKey,
503 GUID *pguidValue);
504
505 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
506 IMFAttributes *This,
507 REFGUID guidKey,
508 UINT32 *pcchLength);
509
510 HRESULT (STDMETHODCALLTYPE *GetString)(
511 IMFAttributes *This,
512 REFGUID guidKey,
513 LPWSTR pwszValue,
514 UINT32 cchBufSize,
515 UINT32 *pcchLength);
516
517 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
518 IMFAttributes *This,
519 REFGUID guidKey,
520 LPWSTR *ppwszValue,
521 UINT32 *pcchLength);
522
523 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
524 IMFAttributes *This,
525 REFGUID guidKey,
526 UINT32 *pcbBlobSize);
527
528 HRESULT (STDMETHODCALLTYPE *GetBlob)(
529 IMFAttributes *This,
530 REFGUID guidKey,
531 UINT8 *pBuf,
532 UINT32 cbBufSize,
533 UINT32 *pcbBlobSize);
534
535 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
536 IMFAttributes *This,
537 REFGUID guidKey,
538 UINT8 **ppBuf,
539 UINT32 *pcbSize);
540
541 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
542 IMFAttributes *This,
543 REFGUID guidKey,
544 REFIID riid,
545 LPVOID *ppv);
546
547 HRESULT (STDMETHODCALLTYPE *SetItem)(
548 IMFAttributes *This,
549 REFGUID guidKey,
550 REFPROPVARIANT Value);
551
552 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
553 IMFAttributes *This,
554 REFGUID guidKey);
555
556 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
557 IMFAttributes *This);
558
559 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
560 IMFAttributes *This,
561 REFGUID guidKey,
562 UINT32 unValue);
563
564 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
565 IMFAttributes *This,
566 REFGUID guidKey,
567 UINT64 unValue);
568
569 HRESULT (STDMETHODCALLTYPE *SetDouble)(
570 IMFAttributes *This,
571 REFGUID guidKey,
572 double fValue);
573
574 HRESULT (STDMETHODCALLTYPE *SetGUID)(
575 IMFAttributes *This,
576 REFGUID guidKey,
577 REFGUID guidValue);
578
579 HRESULT (STDMETHODCALLTYPE *SetString)(
580 IMFAttributes *This,
581 REFGUID guidKey,
582 LPCWSTR wszValue);
583
584 HRESULT (STDMETHODCALLTYPE *SetBlob)(
585 IMFAttributes *This,
586 REFGUID guidKey,
587 const UINT8 *pBuf,
588 UINT32 cbBufSize);
589
590 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
591 IMFAttributes *This,
592 REFGUID guidKey,
593 IUnknown *pUnknown);
594
595 HRESULT (STDMETHODCALLTYPE *LockStore)(
596 IMFAttributes *This);
597
598 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
599 IMFAttributes *This);
600
601 HRESULT (STDMETHODCALLTYPE *GetCount)(
602 IMFAttributes *This,
603 UINT32 *pcItems);
604
605 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
606 IMFAttributes *This,
607 UINT32 unIndex,
608 GUID *pguidKey,
609 PROPVARIANT *pValue);
610
611 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
612 IMFAttributes *This,
613 IMFAttributes *pDest);
614
615 END_INTERFACE
616} IMFAttributesVtbl;
617
618interface IMFAttributes {
619 CONST_VTBL IMFAttributesVtbl* lpVtbl;
620};
621
622#ifdef COBJMACROS
623#ifndef WIDL_C_INLINE_WRAPPERS
624/*** IUnknown methods ***/
625#define IMFAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
626#define IMFAttributes_AddRef(This) (This)->lpVtbl->AddRef(This)
627#define IMFAttributes_Release(This) (This)->lpVtbl->Release(This)
628/*** IMFAttributes methods ***/
629#define IMFAttributes_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
630#define IMFAttributes_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
631#define IMFAttributes_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
632#define IMFAttributes_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
633#define IMFAttributes_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
634#define IMFAttributes_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
635#define IMFAttributes_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
636#define IMFAttributes_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
637#define IMFAttributes_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
638#define IMFAttributes_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
639#define IMFAttributes_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
640#define IMFAttributes_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
641#define IMFAttributes_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
642#define IMFAttributes_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
643#define IMFAttributes_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
644#define IMFAttributes_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
645#define IMFAttributes_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
646#define IMFAttributes_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
647#define IMFAttributes_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
648#define IMFAttributes_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
649#define IMFAttributes_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
650#define IMFAttributes_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
651#define IMFAttributes_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
652#define IMFAttributes_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
653#define IMFAttributes_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
654#define IMFAttributes_LockStore(This) (This)->lpVtbl->LockStore(This)
655#define IMFAttributes_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
656#define IMFAttributes_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
657#define IMFAttributes_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
658#define IMFAttributes_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
659#else
660/*** IUnknown methods ***/
661static FORCEINLINE HRESULT IMFAttributes_QueryInterface(IMFAttributes* This,REFIID riid,void **ppvObject) {
662 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
663}
664static FORCEINLINE ULONG IMFAttributes_AddRef(IMFAttributes* This) {
665 return This->lpVtbl->AddRef(This);
666}
667static FORCEINLINE ULONG IMFAttributes_Release(IMFAttributes* This) {
668 return This->lpVtbl->Release(This);
669}
670/*** IMFAttributes methods ***/
671static FORCEINLINE HRESULT IMFAttributes_GetItem(IMFAttributes* This,REFGUID guidKey,PROPVARIANT *pValue) {
672 return This->lpVtbl->GetItem(This,guidKey,pValue);
673}
674static FORCEINLINE HRESULT IMFAttributes_GetItemType(IMFAttributes* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
675 return This->lpVtbl->GetItemType(This,guidKey,pType);
676}
677static FORCEINLINE HRESULT IMFAttributes_CompareItem(IMFAttributes* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
678 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
679}
680static FORCEINLINE HRESULT IMFAttributes_Compare(IMFAttributes* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
681 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
682}
683static FORCEINLINE HRESULT IMFAttributes_GetUINT32(IMFAttributes* This,REFGUID guidKey,UINT32 *punValue) {
684 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
685}
686static FORCEINLINE HRESULT IMFAttributes_GetUINT64(IMFAttributes* This,REFGUID guidKey,UINT64 *punValue) {
687 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
688}
689static FORCEINLINE HRESULT IMFAttributes_GetDouble(IMFAttributes* This,REFGUID guidKey,double *pfValue) {
690 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
691}
692static FORCEINLINE HRESULT IMFAttributes_GetGUID(IMFAttributes* This,REFGUID guidKey,GUID *pguidValue) {
693 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
694}
695static FORCEINLINE HRESULT IMFAttributes_GetStringLength(IMFAttributes* This,REFGUID guidKey,UINT32 *pcchLength) {
696 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
697}
698static FORCEINLINE HRESULT IMFAttributes_GetString(IMFAttributes* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
699 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
700}
701static FORCEINLINE HRESULT IMFAttributes_GetAllocatedString(IMFAttributes* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
702 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
703}
704static FORCEINLINE HRESULT IMFAttributes_GetBlobSize(IMFAttributes* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
705 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
706}
707static FORCEINLINE HRESULT IMFAttributes_GetBlob(IMFAttributes* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
708 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
709}
710static FORCEINLINE HRESULT IMFAttributes_GetAllocatedBlob(IMFAttributes* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
711 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
712}
713static FORCEINLINE HRESULT IMFAttributes_GetUnknown(IMFAttributes* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
714 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
715}
716static FORCEINLINE HRESULT IMFAttributes_SetItem(IMFAttributes* This,REFGUID guidKey,REFPROPVARIANT Value) {
717 return This->lpVtbl->SetItem(This,guidKey,Value);
718}
719static FORCEINLINE HRESULT IMFAttributes_DeleteItem(IMFAttributes* This,REFGUID guidKey) {
720 return This->lpVtbl->DeleteItem(This,guidKey);
721}
722static FORCEINLINE HRESULT IMFAttributes_DeleteAllItems(IMFAttributes* This) {
723 return This->lpVtbl->DeleteAllItems(This);
724}
725static FORCEINLINE HRESULT IMFAttributes_SetUINT32(IMFAttributes* This,REFGUID guidKey,UINT32 unValue) {
726 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
727}
728static FORCEINLINE HRESULT IMFAttributes_SetUINT64(IMFAttributes* This,REFGUID guidKey,UINT64 unValue) {
729 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
730}
731static FORCEINLINE HRESULT IMFAttributes_SetDouble(IMFAttributes* This,REFGUID guidKey,double fValue) {
732 return This->lpVtbl->SetDouble(This,guidKey,fValue);
733}
734static FORCEINLINE HRESULT IMFAttributes_SetGUID(IMFAttributes* This,REFGUID guidKey,REFGUID guidValue) {
735 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
736}
737static FORCEINLINE HRESULT IMFAttributes_SetString(IMFAttributes* This,REFGUID guidKey,LPCWSTR wszValue) {
738 return This->lpVtbl->SetString(This,guidKey,wszValue);
739}
740static FORCEINLINE HRESULT IMFAttributes_SetBlob(IMFAttributes* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
741 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
742}
743static FORCEINLINE HRESULT IMFAttributes_SetUnknown(IMFAttributes* This,REFGUID guidKey,IUnknown *pUnknown) {
744 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
745}
746static FORCEINLINE HRESULT IMFAttributes_LockStore(IMFAttributes* This) {
747 return This->lpVtbl->LockStore(This);
748}
749static FORCEINLINE HRESULT IMFAttributes_UnlockStore(IMFAttributes* This) {
750 return This->lpVtbl->UnlockStore(This);
751}
752static FORCEINLINE HRESULT IMFAttributes_GetCount(IMFAttributes* This,UINT32 *pcItems) {
753 return This->lpVtbl->GetCount(This,pcItems);
754}
755static FORCEINLINE HRESULT IMFAttributes_GetItemByIndex(IMFAttributes* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
756 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
757}
758static FORCEINLINE HRESULT IMFAttributes_CopyAllItems(IMFAttributes* This,IMFAttributes *pDest) {
759 return This->lpVtbl->CopyAllItems(This,pDest);
760}
761#endif
762#endif
763
764#endif
765
766
767#endif /* __IMFAttributes_INTERFACE_DEFINED__ */
768
769
770enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
771 MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x1
772};
773
774STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);
775STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);
776
777/*****************************************************************************
778 * IMFMediaBuffer interface
779 */
780#ifndef __IMFMediaBuffer_INTERFACE_DEFINED__
781#define __IMFMediaBuffer_INTERFACE_DEFINED__
782
783DEFINE_GUID(IID_IMFMediaBuffer, 0x045fa593, 0x8799, 0x42b8, 0xbc,0x8d, 0x89,0x68,0xc6,0x45,0x35,0x07);
784#if defined(__cplusplus) && !defined(CINTERFACE)
785MIDL_INTERFACE("045fa593-8799-42b8-bc8d-8968c6453507")
786IMFMediaBuffer : public IUnknown
787{
788 virtual HRESULT STDMETHODCALLTYPE Lock(
789 BYTE **ppbBuffer,
790 DWORD *pcbMaxLength,
791 DWORD *pcbCurrentLength) = 0;
792
793 virtual HRESULT STDMETHODCALLTYPE Unlock(
794 ) = 0;
795
796 virtual HRESULT STDMETHODCALLTYPE GetCurrentLength(
797 DWORD *pcbCurrentLength) = 0;
798
799 virtual HRESULT STDMETHODCALLTYPE SetCurrentLength(
800 DWORD cbCurrentLength) = 0;
801
802 virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
803 DWORD *pcbMaxLength) = 0;
804
805};
806#ifdef __CRT_UUID_DECL
807__CRT_UUID_DECL(IMFMediaBuffer, 0x045fa593, 0x8799, 0x42b8, 0xbc,0x8d, 0x89,0x68,0xc6,0x45,0x35,0x07)
808#endif
809#else
810typedef struct IMFMediaBufferVtbl {
811 BEGIN_INTERFACE
812
813 /*** IUnknown methods ***/
814 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
815 IMFMediaBuffer *This,
816 REFIID riid,
817 void **ppvObject);
818
819 ULONG (STDMETHODCALLTYPE *AddRef)(
820 IMFMediaBuffer *This);
821
822 ULONG (STDMETHODCALLTYPE *Release)(
823 IMFMediaBuffer *This);
824
825 /*** IMFMediaBuffer methods ***/
826 HRESULT (STDMETHODCALLTYPE *Lock)(
827 IMFMediaBuffer *This,
828 BYTE **ppbBuffer,
829 DWORD *pcbMaxLength,
830 DWORD *pcbCurrentLength);
831
832 HRESULT (STDMETHODCALLTYPE *Unlock)(
833 IMFMediaBuffer *This);
834
835 HRESULT (STDMETHODCALLTYPE *GetCurrentLength)(
836 IMFMediaBuffer *This,
837 DWORD *pcbCurrentLength);
838
839 HRESULT (STDMETHODCALLTYPE *SetCurrentLength)(
840 IMFMediaBuffer *This,
841 DWORD cbCurrentLength);
842
843 HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
844 IMFMediaBuffer *This,
845 DWORD *pcbMaxLength);
846
847 END_INTERFACE
848} IMFMediaBufferVtbl;
849
850interface IMFMediaBuffer {
851 CONST_VTBL IMFMediaBufferVtbl* lpVtbl;
852};
853
854#ifdef COBJMACROS
855#ifndef WIDL_C_INLINE_WRAPPERS
856/*** IUnknown methods ***/
857#define IMFMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
858#define IMFMediaBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
859#define IMFMediaBuffer_Release(This) (This)->lpVtbl->Release(This)
860/*** IMFMediaBuffer methods ***/
861#define IMFMediaBuffer_Lock(This,ppbBuffer,pcbMaxLength,pcbCurrentLength) (This)->lpVtbl->Lock(This,ppbBuffer,pcbMaxLength,pcbCurrentLength)
862#define IMFMediaBuffer_Unlock(This) (This)->lpVtbl->Unlock(This)
863#define IMFMediaBuffer_GetCurrentLength(This,pcbCurrentLength) (This)->lpVtbl->GetCurrentLength(This,pcbCurrentLength)
864#define IMFMediaBuffer_SetCurrentLength(This,cbCurrentLength) (This)->lpVtbl->SetCurrentLength(This,cbCurrentLength)
865#define IMFMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength)
866#else
867/*** IUnknown methods ***/
868static FORCEINLINE HRESULT IMFMediaBuffer_QueryInterface(IMFMediaBuffer* This,REFIID riid,void **ppvObject) {
869 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
870}
871static FORCEINLINE ULONG IMFMediaBuffer_AddRef(IMFMediaBuffer* This) {
872 return This->lpVtbl->AddRef(This);
873}
874static FORCEINLINE ULONG IMFMediaBuffer_Release(IMFMediaBuffer* This) {
875 return This->lpVtbl->Release(This);
876}
877/*** IMFMediaBuffer methods ***/
878static FORCEINLINE HRESULT IMFMediaBuffer_Lock(IMFMediaBuffer* This,BYTE **ppbBuffer,DWORD *pcbMaxLength,DWORD *pcbCurrentLength) {
879 return This->lpVtbl->Lock(This,ppbBuffer,pcbMaxLength,pcbCurrentLength);
880}
881static FORCEINLINE HRESULT IMFMediaBuffer_Unlock(IMFMediaBuffer* This) {
882 return This->lpVtbl->Unlock(This);
883}
884static FORCEINLINE HRESULT IMFMediaBuffer_GetCurrentLength(IMFMediaBuffer* This,DWORD *pcbCurrentLength) {
885 return This->lpVtbl->GetCurrentLength(This,pcbCurrentLength);
886}
887static FORCEINLINE HRESULT IMFMediaBuffer_SetCurrentLength(IMFMediaBuffer* This,DWORD cbCurrentLength) {
888 return This->lpVtbl->SetCurrentLength(This,cbCurrentLength);
889}
890static FORCEINLINE HRESULT IMFMediaBuffer_GetMaxLength(IMFMediaBuffer* This,DWORD *pcbMaxLength) {
891 return This->lpVtbl->GetMaxLength(This,pcbMaxLength);
892}
893#endif
894#endif
895
896#endif
897
898
899#endif /* __IMFMediaBuffer_INTERFACE_DEFINED__ */
900
901
902/*****************************************************************************
903 * IMFSample interface
904 */
905#ifndef __IMFSample_INTERFACE_DEFINED__
906#define __IMFSample_INTERFACE_DEFINED__
907
908DEFINE_GUID(IID_IMFSample, 0xc40a00f2, 0xb93a, 0x4d80, 0xae,0x8c, 0x5a,0x1c,0x63,0x4f,0x58,0xe4);
909#if defined(__cplusplus) && !defined(CINTERFACE)
910MIDL_INTERFACE("c40a00f2-b93a-4d80-ae8c-5a1c634f58e4")
911IMFSample : public IMFAttributes
912{
913 virtual HRESULT STDMETHODCALLTYPE GetSampleFlags(
914 DWORD *pdwSampleFlags) = 0;
915
916 virtual HRESULT STDMETHODCALLTYPE SetSampleFlags(
917 DWORD dwSampleFlags) = 0;
918
919 virtual HRESULT STDMETHODCALLTYPE GetSampleTime(
920 LONGLONG *phnsSampleTime) = 0;
921
922 virtual HRESULT STDMETHODCALLTYPE SetSampleTime(
923 LONGLONG hnsSampleTime) = 0;
924
925 virtual HRESULT STDMETHODCALLTYPE GetSampleDuration(
926 LONGLONG *phnsSampleDuration) = 0;
927
928 virtual HRESULT STDMETHODCALLTYPE SetSampleDuration(
929 LONGLONG hnsSampleDuration) = 0;
930
931 virtual HRESULT STDMETHODCALLTYPE GetBufferCount(
932 DWORD *pdwBufferCount) = 0;
933
934 virtual HRESULT STDMETHODCALLTYPE GetBufferByIndex(
935 DWORD dwIndex,
936 IMFMediaBuffer **ppBuffer) = 0;
937
938 virtual HRESULT STDMETHODCALLTYPE ConvertToContiguousBuffer(
939 IMFMediaBuffer **ppBuffer) = 0;
940
941 virtual HRESULT STDMETHODCALLTYPE AddBuffer(
942 IMFMediaBuffer *pBuffer) = 0;
943
944 virtual HRESULT STDMETHODCALLTYPE RemoveBufferByIndex(
945 DWORD dwIndex) = 0;
946
947 virtual HRESULT STDMETHODCALLTYPE RemoveAllBuffers(
948 ) = 0;
949
950 virtual HRESULT STDMETHODCALLTYPE GetTotalLength(
951 DWORD *pcbTotalLength) = 0;
952
953 virtual HRESULT STDMETHODCALLTYPE CopyToBuffer(
954 IMFMediaBuffer *pBuffer) = 0;
955
956};
957#ifdef __CRT_UUID_DECL
958__CRT_UUID_DECL(IMFSample, 0xc40a00f2, 0xb93a, 0x4d80, 0xae,0x8c, 0x5a,0x1c,0x63,0x4f,0x58,0xe4)
959#endif
960#else
961typedef struct IMFSampleVtbl {
962 BEGIN_INTERFACE
963
964 /*** IUnknown methods ***/
965 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
966 IMFSample *This,
967 REFIID riid,
968 void **ppvObject);
969
970 ULONG (STDMETHODCALLTYPE *AddRef)(
971 IMFSample *This);
972
973 ULONG (STDMETHODCALLTYPE *Release)(
974 IMFSample *This);
975
976 /*** IMFAttributes methods ***/
977 HRESULT (STDMETHODCALLTYPE *GetItem)(
978 IMFSample *This,
979 REFGUID guidKey,
980 PROPVARIANT *pValue);
981
982 HRESULT (STDMETHODCALLTYPE *GetItemType)(
983 IMFSample *This,
984 REFGUID guidKey,
985 MF_ATTRIBUTE_TYPE *pType);
986
987 HRESULT (STDMETHODCALLTYPE *CompareItem)(
988 IMFSample *This,
989 REFGUID guidKey,
990 REFPROPVARIANT Value,
991 WINBOOL *pbResult);
992
993 HRESULT (STDMETHODCALLTYPE *Compare)(
994 IMFSample *This,
995 IMFAttributes *pTheirs,
996 MF_ATTRIBUTES_MATCH_TYPE MatchType,
997 WINBOOL *pbResult);
998
999 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
1000 IMFSample *This,
1001 REFGUID guidKey,
1002 UINT32 *punValue);
1003
1004 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
1005 IMFSample *This,
1006 REFGUID guidKey,
1007 UINT64 *punValue);
1008
1009 HRESULT (STDMETHODCALLTYPE *GetDouble)(
1010 IMFSample *This,
1011 REFGUID guidKey,
1012 double *pfValue);
1013
1014 HRESULT (STDMETHODCALLTYPE *GetGUID)(
1015 IMFSample *This,
1016 REFGUID guidKey,
1017 GUID *pguidValue);
1018
1019 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
1020 IMFSample *This,
1021 REFGUID guidKey,
1022 UINT32 *pcchLength);
1023
1024 HRESULT (STDMETHODCALLTYPE *GetString)(
1025 IMFSample *This,
1026 REFGUID guidKey,
1027 LPWSTR pwszValue,
1028 UINT32 cchBufSize,
1029 UINT32 *pcchLength);
1030
1031 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
1032 IMFSample *This,
1033 REFGUID guidKey,
1034 LPWSTR *ppwszValue,
1035 UINT32 *pcchLength);
1036
1037 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
1038 IMFSample *This,
1039 REFGUID guidKey,
1040 UINT32 *pcbBlobSize);
1041
1042 HRESULT (STDMETHODCALLTYPE *GetBlob)(
1043 IMFSample *This,
1044 REFGUID guidKey,
1045 UINT8 *pBuf,
1046 UINT32 cbBufSize,
1047 UINT32 *pcbBlobSize);
1048
1049 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
1050 IMFSample *This,
1051 REFGUID guidKey,
1052 UINT8 **ppBuf,
1053 UINT32 *pcbSize);
1054
1055 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
1056 IMFSample *This,
1057 REFGUID guidKey,
1058 REFIID riid,
1059 LPVOID *ppv);
1060
1061 HRESULT (STDMETHODCALLTYPE *SetItem)(
1062 IMFSample *This,
1063 REFGUID guidKey,
1064 REFPROPVARIANT Value);
1065
1066 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
1067 IMFSample *This,
1068 REFGUID guidKey);
1069
1070 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
1071 IMFSample *This);
1072
1073 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
1074 IMFSample *This,
1075 REFGUID guidKey,
1076 UINT32 unValue);
1077
1078 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
1079 IMFSample *This,
1080 REFGUID guidKey,
1081 UINT64 unValue);
1082
1083 HRESULT (STDMETHODCALLTYPE *SetDouble)(
1084 IMFSample *This,
1085 REFGUID guidKey,
1086 double fValue);
1087
1088 HRESULT (STDMETHODCALLTYPE *SetGUID)(
1089 IMFSample *This,
1090 REFGUID guidKey,
1091 REFGUID guidValue);
1092
1093 HRESULT (STDMETHODCALLTYPE *SetString)(
1094 IMFSample *This,
1095 REFGUID guidKey,
1096 LPCWSTR wszValue);
1097
1098 HRESULT (STDMETHODCALLTYPE *SetBlob)(
1099 IMFSample *This,
1100 REFGUID guidKey,
1101 const UINT8 *pBuf,
1102 UINT32 cbBufSize);
1103
1104 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
1105 IMFSample *This,
1106 REFGUID guidKey,
1107 IUnknown *pUnknown);
1108
1109 HRESULT (STDMETHODCALLTYPE *LockStore)(
1110 IMFSample *This);
1111
1112 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
1113 IMFSample *This);
1114
1115 HRESULT (STDMETHODCALLTYPE *GetCount)(
1116 IMFSample *This,
1117 UINT32 *pcItems);
1118
1119 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
1120 IMFSample *This,
1121 UINT32 unIndex,
1122 GUID *pguidKey,
1123 PROPVARIANT *pValue);
1124
1125 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
1126 IMFSample *This,
1127 IMFAttributes *pDest);
1128
1129 /*** IMFSample methods ***/
1130 HRESULT (STDMETHODCALLTYPE *GetSampleFlags)(
1131 IMFSample *This,
1132 DWORD *pdwSampleFlags);
1133
1134 HRESULT (STDMETHODCALLTYPE *SetSampleFlags)(
1135 IMFSample *This,
1136 DWORD dwSampleFlags);
1137
1138 HRESULT (STDMETHODCALLTYPE *GetSampleTime)(
1139 IMFSample *This,
1140 LONGLONG *phnsSampleTime);
1141
1142 HRESULT (STDMETHODCALLTYPE *SetSampleTime)(
1143 IMFSample *This,
1144 LONGLONG hnsSampleTime);
1145
1146 HRESULT (STDMETHODCALLTYPE *GetSampleDuration)(
1147 IMFSample *This,
1148 LONGLONG *phnsSampleDuration);
1149
1150 HRESULT (STDMETHODCALLTYPE *SetSampleDuration)(
1151 IMFSample *This,
1152 LONGLONG hnsSampleDuration);
1153
1154 HRESULT (STDMETHODCALLTYPE *GetBufferCount)(
1155 IMFSample *This,
1156 DWORD *pdwBufferCount);
1157
1158 HRESULT (STDMETHODCALLTYPE *GetBufferByIndex)(
1159 IMFSample *This,
1160 DWORD dwIndex,
1161 IMFMediaBuffer **ppBuffer);
1162
1163 HRESULT (STDMETHODCALLTYPE *ConvertToContiguousBuffer)(
1164 IMFSample *This,
1165 IMFMediaBuffer **ppBuffer);
1166
1167 HRESULT (STDMETHODCALLTYPE *AddBuffer)(
1168 IMFSample *This,
1169 IMFMediaBuffer *pBuffer);
1170
1171 HRESULT (STDMETHODCALLTYPE *RemoveBufferByIndex)(
1172 IMFSample *This,
1173 DWORD dwIndex);
1174
1175 HRESULT (STDMETHODCALLTYPE *RemoveAllBuffers)(
1176 IMFSample *This);
1177
1178 HRESULT (STDMETHODCALLTYPE *GetTotalLength)(
1179 IMFSample *This,
1180 DWORD *pcbTotalLength);
1181
1182 HRESULT (STDMETHODCALLTYPE *CopyToBuffer)(
1183 IMFSample *This,
1184 IMFMediaBuffer *pBuffer);
1185
1186 END_INTERFACE
1187} IMFSampleVtbl;
1188
1189interface IMFSample {
1190 CONST_VTBL IMFSampleVtbl* lpVtbl;
1191};
1192
1193#ifdef COBJMACROS
1194#ifndef WIDL_C_INLINE_WRAPPERS
1195/*** IUnknown methods ***/
1196#define IMFSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1197#define IMFSample_AddRef(This) (This)->lpVtbl->AddRef(This)
1198#define IMFSample_Release(This) (This)->lpVtbl->Release(This)
1199/*** IMFAttributes methods ***/
1200#define IMFSample_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
1201#define IMFSample_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
1202#define IMFSample_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
1203#define IMFSample_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
1204#define IMFSample_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
1205#define IMFSample_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
1206#define IMFSample_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
1207#define IMFSample_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
1208#define IMFSample_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
1209#define IMFSample_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
1210#define IMFSample_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
1211#define IMFSample_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
1212#define IMFSample_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
1213#define IMFSample_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
1214#define IMFSample_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
1215#define IMFSample_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
1216#define IMFSample_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
1217#define IMFSample_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
1218#define IMFSample_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
1219#define IMFSample_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
1220#define IMFSample_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
1221#define IMFSample_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
1222#define IMFSample_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
1223#define IMFSample_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
1224#define IMFSample_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
1225#define IMFSample_LockStore(This) (This)->lpVtbl->LockStore(This)
1226#define IMFSample_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
1227#define IMFSample_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
1228#define IMFSample_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
1229#define IMFSample_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
1230/*** IMFSample methods ***/
1231#define IMFSample_GetSampleFlags(This,pdwSampleFlags) (This)->lpVtbl->GetSampleFlags(This,pdwSampleFlags)
1232#define IMFSample_SetSampleFlags(This,dwSampleFlags) (This)->lpVtbl->SetSampleFlags(This,dwSampleFlags)
1233#define IMFSample_GetSampleTime(This,phnsSampleTime) (This)->lpVtbl->GetSampleTime(This,phnsSampleTime)
1234#define IMFSample_SetSampleTime(This,hnsSampleTime) (This)->lpVtbl->SetSampleTime(This,hnsSampleTime)
1235#define IMFSample_GetSampleDuration(This,phnsSampleDuration) (This)->lpVtbl->GetSampleDuration(This,phnsSampleDuration)
1236#define IMFSample_SetSampleDuration(This,hnsSampleDuration) (This)->lpVtbl->SetSampleDuration(This,hnsSampleDuration)
1237#define IMFSample_GetBufferCount(This,pdwBufferCount) (This)->lpVtbl->GetBufferCount(This,pdwBufferCount)
1238#define IMFSample_GetBufferByIndex(This,dwIndex,ppBuffer) (This)->lpVtbl->GetBufferByIndex(This,dwIndex,ppBuffer)
1239#define IMFSample_ConvertToContiguousBuffer(This,ppBuffer) (This)->lpVtbl->ConvertToContiguousBuffer(This,ppBuffer)
1240#define IMFSample_AddBuffer(This,pBuffer) (This)->lpVtbl->AddBuffer(This,pBuffer)
1241#define IMFSample_RemoveBufferByIndex(This,dwIndex) (This)->lpVtbl->RemoveBufferByIndex(This,dwIndex)
1242#define IMFSample_RemoveAllBuffers(This) (This)->lpVtbl->RemoveAllBuffers(This)
1243#define IMFSample_GetTotalLength(This,pcbTotalLength) (This)->lpVtbl->GetTotalLength(This,pcbTotalLength)
1244#define IMFSample_CopyToBuffer(This,pBuffer) (This)->lpVtbl->CopyToBuffer(This,pBuffer)
1245#else
1246/*** IUnknown methods ***/
1247static FORCEINLINE HRESULT IMFSample_QueryInterface(IMFSample* This,REFIID riid,void **ppvObject) {
1248 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1249}
1250static FORCEINLINE ULONG IMFSample_AddRef(IMFSample* This) {
1251 return This->lpVtbl->AddRef(This);
1252}
1253static FORCEINLINE ULONG IMFSample_Release(IMFSample* This) {
1254 return This->lpVtbl->Release(This);
1255}
1256/*** IMFAttributes methods ***/
1257static FORCEINLINE HRESULT IMFSample_GetItem(IMFSample* This,REFGUID guidKey,PROPVARIANT *pValue) {
1258 return This->lpVtbl->GetItem(This,guidKey,pValue);
1259}
1260static FORCEINLINE HRESULT IMFSample_GetItemType(IMFSample* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
1261 return This->lpVtbl->GetItemType(This,guidKey,pType);
1262}
1263static FORCEINLINE HRESULT IMFSample_CompareItem(IMFSample* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
1264 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
1265}
1266static FORCEINLINE HRESULT IMFSample_Compare(IMFSample* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
1267 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
1268}
1269static FORCEINLINE HRESULT IMFSample_GetUINT32(IMFSample* This,REFGUID guidKey,UINT32 *punValue) {
1270 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
1271}
1272static FORCEINLINE HRESULT IMFSample_GetUINT64(IMFSample* This,REFGUID guidKey,UINT64 *punValue) {
1273 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
1274}
1275static FORCEINLINE HRESULT IMFSample_GetDouble(IMFSample* This,REFGUID guidKey,double *pfValue) {
1276 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
1277}
1278static FORCEINLINE HRESULT IMFSample_GetGUID(IMFSample* This,REFGUID guidKey,GUID *pguidValue) {
1279 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
1280}
1281static FORCEINLINE HRESULT IMFSample_GetStringLength(IMFSample* This,REFGUID guidKey,UINT32 *pcchLength) {
1282 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
1283}
1284static FORCEINLINE HRESULT IMFSample_GetString(IMFSample* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
1285 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
1286}
1287static FORCEINLINE HRESULT IMFSample_GetAllocatedString(IMFSample* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
1288 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
1289}
1290static FORCEINLINE HRESULT IMFSample_GetBlobSize(IMFSample* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
1291 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
1292}
1293static FORCEINLINE HRESULT IMFSample_GetBlob(IMFSample* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
1294 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
1295}
1296static FORCEINLINE HRESULT IMFSample_GetAllocatedBlob(IMFSample* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
1297 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
1298}
1299static FORCEINLINE HRESULT IMFSample_GetUnknown(IMFSample* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
1300 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
1301}
1302static FORCEINLINE HRESULT IMFSample_SetItem(IMFSample* This,REFGUID guidKey,REFPROPVARIANT Value) {
1303 return This->lpVtbl->SetItem(This,guidKey,Value);
1304}
1305static FORCEINLINE HRESULT IMFSample_DeleteItem(IMFSample* This,REFGUID guidKey) {
1306 return This->lpVtbl->DeleteItem(This,guidKey);
1307}
1308static FORCEINLINE HRESULT IMFSample_DeleteAllItems(IMFSample* This) {
1309 return This->lpVtbl->DeleteAllItems(This);
1310}
1311static FORCEINLINE HRESULT IMFSample_SetUINT32(IMFSample* This,REFGUID guidKey,UINT32 unValue) {
1312 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
1313}
1314static FORCEINLINE HRESULT IMFSample_SetUINT64(IMFSample* This,REFGUID guidKey,UINT64 unValue) {
1315 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
1316}
1317static FORCEINLINE HRESULT IMFSample_SetDouble(IMFSample* This,REFGUID guidKey,double fValue) {
1318 return This->lpVtbl->SetDouble(This,guidKey,fValue);
1319}
1320static FORCEINLINE HRESULT IMFSample_SetGUID(IMFSample* This,REFGUID guidKey,REFGUID guidValue) {
1321 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
1322}
1323static FORCEINLINE HRESULT IMFSample_SetString(IMFSample* This,REFGUID guidKey,LPCWSTR wszValue) {
1324 return This->lpVtbl->SetString(This,guidKey,wszValue);
1325}
1326static FORCEINLINE HRESULT IMFSample_SetBlob(IMFSample* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
1327 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
1328}
1329static FORCEINLINE HRESULT IMFSample_SetUnknown(IMFSample* This,REFGUID guidKey,IUnknown *pUnknown) {
1330 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
1331}
1332static FORCEINLINE HRESULT IMFSample_LockStore(IMFSample* This) {
1333 return This->lpVtbl->LockStore(This);
1334}
1335static FORCEINLINE HRESULT IMFSample_UnlockStore(IMFSample* This) {
1336 return This->lpVtbl->UnlockStore(This);
1337}
1338static FORCEINLINE HRESULT IMFSample_GetCount(IMFSample* This,UINT32 *pcItems) {
1339 return This->lpVtbl->GetCount(This,pcItems);
1340}
1341static FORCEINLINE HRESULT IMFSample_GetItemByIndex(IMFSample* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
1342 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
1343}
1344static FORCEINLINE HRESULT IMFSample_CopyAllItems(IMFSample* This,IMFAttributes *pDest) {
1345 return This->lpVtbl->CopyAllItems(This,pDest);
1346}
1347/*** IMFSample methods ***/
1348static FORCEINLINE HRESULT IMFSample_GetSampleFlags(IMFSample* This,DWORD *pdwSampleFlags) {
1349 return This->lpVtbl->GetSampleFlags(This,pdwSampleFlags);
1350}
1351static FORCEINLINE HRESULT IMFSample_SetSampleFlags(IMFSample* This,DWORD dwSampleFlags) {
1352 return This->lpVtbl->SetSampleFlags(This,dwSampleFlags);
1353}
1354static FORCEINLINE HRESULT IMFSample_GetSampleTime(IMFSample* This,LONGLONG *phnsSampleTime) {
1355 return This->lpVtbl->GetSampleTime(This,phnsSampleTime);
1356}
1357static FORCEINLINE HRESULT IMFSample_SetSampleTime(IMFSample* This,LONGLONG hnsSampleTime) {
1358 return This->lpVtbl->SetSampleTime(This,hnsSampleTime);
1359}
1360static FORCEINLINE HRESULT IMFSample_GetSampleDuration(IMFSample* This,LONGLONG *phnsSampleDuration) {
1361 return This->lpVtbl->GetSampleDuration(This,phnsSampleDuration);
1362}
1363static FORCEINLINE HRESULT IMFSample_SetSampleDuration(IMFSample* This,LONGLONG hnsSampleDuration) {
1364 return This->lpVtbl->SetSampleDuration(This,hnsSampleDuration);
1365}
1366static FORCEINLINE HRESULT IMFSample_GetBufferCount(IMFSample* This,DWORD *pdwBufferCount) {
1367 return This->lpVtbl->GetBufferCount(This,pdwBufferCount);
1368}
1369static FORCEINLINE HRESULT IMFSample_GetBufferByIndex(IMFSample* This,DWORD dwIndex,IMFMediaBuffer **ppBuffer) {
1370 return This->lpVtbl->GetBufferByIndex(This,dwIndex,ppBuffer);
1371}
1372static FORCEINLINE HRESULT IMFSample_ConvertToContiguousBuffer(IMFSample* This,IMFMediaBuffer **ppBuffer) {
1373 return This->lpVtbl->ConvertToContiguousBuffer(This,ppBuffer);
1374}
1375static FORCEINLINE HRESULT IMFSample_AddBuffer(IMFSample* This,IMFMediaBuffer *pBuffer) {
1376 return This->lpVtbl->AddBuffer(This,pBuffer);
1377}
1378static FORCEINLINE HRESULT IMFSample_RemoveBufferByIndex(IMFSample* This,DWORD dwIndex) {
1379 return This->lpVtbl->RemoveBufferByIndex(This,dwIndex);
1380}
1381static FORCEINLINE HRESULT IMFSample_RemoveAllBuffers(IMFSample* This) {
1382 return This->lpVtbl->RemoveAllBuffers(This);
1383}
1384static FORCEINLINE HRESULT IMFSample_GetTotalLength(IMFSample* This,DWORD *pcbTotalLength) {
1385 return This->lpVtbl->GetTotalLength(This,pcbTotalLength);
1386}
1387static FORCEINLINE HRESULT IMFSample_CopyToBuffer(IMFSample* This,IMFMediaBuffer *pBuffer) {
1388 return This->lpVtbl->CopyToBuffer(This,pBuffer);
1389}
1390#endif
1391#endif
1392
1393#endif
1394
1395
1396#endif /* __IMFSample_INTERFACE_DEFINED__ */
1397
1398
1399/*****************************************************************************
1400 * IMF2DBuffer interface
1401 */
1402#ifndef __IMF2DBuffer_INTERFACE_DEFINED__
1403#define __IMF2DBuffer_INTERFACE_DEFINED__
1404
1405DEFINE_GUID(IID_IMF2DBuffer, 0x7dc9d5f9, 0x9ed9, 0x44ec, 0x9b,0xbf, 0x06,0x00,0xbb,0x58,0x9f,0xbb);
1406#if defined(__cplusplus) && !defined(CINTERFACE)
1407MIDL_INTERFACE("7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb")
1408IMF2DBuffer : public IUnknown
1409{
1410 virtual HRESULT STDMETHODCALLTYPE Lock2D(
1411 BYTE **ppbScanline0,
1412 LONG *plPitch) = 0;
1413
1414 virtual HRESULT STDMETHODCALLTYPE Unlock2D(
1415 ) = 0;
1416
1417 virtual HRESULT STDMETHODCALLTYPE GetScanline0AndPitch(
1418 BYTE **pbScanline0,
1419 LONG *plPitch) = 0;
1420
1421 virtual HRESULT STDMETHODCALLTYPE IsContiguousFormat(
1422 WINBOOL *pfIsContiguous) = 0;
1423
1424 virtual HRESULT STDMETHODCALLTYPE GetContiguousLength(
1425 DWORD *pcbLength) = 0;
1426
1427 virtual HRESULT STDMETHODCALLTYPE ContiguousCopyTo(
1428 BYTE *pbDestBuffer,
1429 DWORD cbDestBuffer) = 0;
1430
1431 virtual HRESULT STDMETHODCALLTYPE ContiguousCopyFrom(
1432 const BYTE *pbSrcBuffer,
1433 DWORD cbSrcBuffer) = 0;
1434
1435};
1436#ifdef __CRT_UUID_DECL
1437__CRT_UUID_DECL(IMF2DBuffer, 0x7dc9d5f9, 0x9ed9, 0x44ec, 0x9b,0xbf, 0x06,0x00,0xbb,0x58,0x9f,0xbb)
1438#endif
1439#else
1440typedef struct IMF2DBufferVtbl {
1441 BEGIN_INTERFACE
1442
1443 /*** IUnknown methods ***/
1444 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1445 IMF2DBuffer *This,
1446 REFIID riid,
1447 void **ppvObject);
1448
1449 ULONG (STDMETHODCALLTYPE *AddRef)(
1450 IMF2DBuffer *This);
1451
1452 ULONG (STDMETHODCALLTYPE *Release)(
1453 IMF2DBuffer *This);
1454
1455 /*** IMF2DBuffer methods ***/
1456 HRESULT (STDMETHODCALLTYPE *Lock2D)(
1457 IMF2DBuffer *This,
1458 BYTE **ppbScanline0,
1459 LONG *plPitch);
1460
1461 HRESULT (STDMETHODCALLTYPE *Unlock2D)(
1462 IMF2DBuffer *This);
1463
1464 HRESULT (STDMETHODCALLTYPE *GetScanline0AndPitch)(
1465 IMF2DBuffer *This,
1466 BYTE **pbScanline0,
1467 LONG *plPitch);
1468
1469 HRESULT (STDMETHODCALLTYPE *IsContiguousFormat)(
1470 IMF2DBuffer *This,
1471 WINBOOL *pfIsContiguous);
1472
1473 HRESULT (STDMETHODCALLTYPE *GetContiguousLength)(
1474 IMF2DBuffer *This,
1475 DWORD *pcbLength);
1476
1477 HRESULT (STDMETHODCALLTYPE *ContiguousCopyTo)(
1478 IMF2DBuffer *This,
1479 BYTE *pbDestBuffer,
1480 DWORD cbDestBuffer);
1481
1482 HRESULT (STDMETHODCALLTYPE *ContiguousCopyFrom)(
1483 IMF2DBuffer *This,
1484 const BYTE *pbSrcBuffer,
1485 DWORD cbSrcBuffer);
1486
1487 END_INTERFACE
1488} IMF2DBufferVtbl;
1489
1490interface IMF2DBuffer {
1491 CONST_VTBL IMF2DBufferVtbl* lpVtbl;
1492};
1493
1494#ifdef COBJMACROS
1495#ifndef WIDL_C_INLINE_WRAPPERS
1496/*** IUnknown methods ***/
1497#define IMF2DBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1498#define IMF2DBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
1499#define IMF2DBuffer_Release(This) (This)->lpVtbl->Release(This)
1500/*** IMF2DBuffer methods ***/
1501#define IMF2DBuffer_Lock2D(This,ppbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,ppbScanline0,plPitch)
1502#define IMF2DBuffer_Unlock2D(This) (This)->lpVtbl->Unlock2D(This)
1503#define IMF2DBuffer_GetScanline0AndPitch(This,pbScanline0,plPitch) (This)->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch)
1504#define IMF2DBuffer_IsContiguousFormat(This,pfIsContiguous) (This)->lpVtbl->IsContiguousFormat(This,pfIsContiguous)
1505#define IMF2DBuffer_GetContiguousLength(This,pcbLength) (This)->lpVtbl->GetContiguousLength(This,pcbLength)
1506#define IMF2DBuffer_ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer) (This)->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer)
1507#define IMF2DBuffer_ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer) (This)->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer)
1508#else
1509/*** IUnknown methods ***/
1510static FORCEINLINE HRESULT IMF2DBuffer_QueryInterface(IMF2DBuffer* This,REFIID riid,void **ppvObject) {
1511 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1512}
1513static FORCEINLINE ULONG IMF2DBuffer_AddRef(IMF2DBuffer* This) {
1514 return This->lpVtbl->AddRef(This);
1515}
1516static FORCEINLINE ULONG IMF2DBuffer_Release(IMF2DBuffer* This) {
1517 return This->lpVtbl->Release(This);
1518}
1519/*** IMF2DBuffer methods ***/
1520static FORCEINLINE HRESULT IMF2DBuffer_Lock2D(IMF2DBuffer* This,BYTE **ppbScanline0,LONG *plPitch) {
1521 return This->lpVtbl->Lock2D(This,ppbScanline0,plPitch);
1522}
1523static FORCEINLINE HRESULT IMF2DBuffer_Unlock2D(IMF2DBuffer* This) {
1524 return This->lpVtbl->Unlock2D(This);
1525}
1526static FORCEINLINE HRESULT IMF2DBuffer_GetScanline0AndPitch(IMF2DBuffer* This,BYTE **pbScanline0,LONG *plPitch) {
1527 return This->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch);
1528}
1529static FORCEINLINE HRESULT IMF2DBuffer_IsContiguousFormat(IMF2DBuffer* This,WINBOOL *pfIsContiguous) {
1530 return This->lpVtbl->IsContiguousFormat(This,pfIsContiguous);
1531}
1532static FORCEINLINE HRESULT IMF2DBuffer_GetContiguousLength(IMF2DBuffer* This,DWORD *pcbLength) {
1533 return This->lpVtbl->GetContiguousLength(This,pcbLength);
1534}
1535static FORCEINLINE HRESULT IMF2DBuffer_ContiguousCopyTo(IMF2DBuffer* This,BYTE *pbDestBuffer,DWORD cbDestBuffer) {
1536 return This->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer);
1537}
1538static FORCEINLINE HRESULT IMF2DBuffer_ContiguousCopyFrom(IMF2DBuffer* This,const BYTE *pbSrcBuffer,DWORD cbSrcBuffer) {
1539 return This->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer);
1540}
1541#endif
1542#endif
1543
1544#endif
1545
1546
1547#endif /* __IMF2DBuffer_INTERFACE_DEFINED__ */
1548
1549
1550typedef enum _MF2DBuffer_LockFlags {
1551 MF2DBuffer_LockFlags_LockTypeMask = (0x1 | 0x2) | 0x3,
1552 MF2DBuffer_LockFlags_Read = 0x1,
1553 MF2DBuffer_LockFlags_Write = 0x2,
1554 MF2DBuffer_LockFlags_ReadWrite = 0x3,
1555 MF2DBuffer_LockFlags_ForceDWORD = 0x7fffffff
1556} MF2DBuffer_LockFlags;
1557
1558/*****************************************************************************
1559 * IMF2DBuffer2 interface
1560 */
1561#ifndef __IMF2DBuffer2_INTERFACE_DEFINED__
1562#define __IMF2DBuffer2_INTERFACE_DEFINED__
1563
1564DEFINE_GUID(IID_IMF2DBuffer2, 0x33ae5ea6, 0x4316, 0x436f, 0x8d,0xdd, 0xd7,0x3d,0x22,0xf8,0x29,0xec);
1565#if defined(__cplusplus) && !defined(CINTERFACE)
1566MIDL_INTERFACE("33ae5ea6-4316-436f-8ddd-d73d22f829ec")
1567IMF2DBuffer2 : public IMF2DBuffer
1568{
1569 virtual HRESULT STDMETHODCALLTYPE Lock2DSize(
1570 MF2DBuffer_LockFlags lockFlags,
1571 BYTE **ppbScanline0,
1572 LONG *plPitch,
1573 BYTE **ppbBufferStart,
1574 DWORD *pcbBufferLength) = 0;
1575
1576 virtual HRESULT STDMETHODCALLTYPE Copy2DTo(
1577 IMF2DBuffer2 *pDestBuffer) = 0;
1578
1579};
1580#ifdef __CRT_UUID_DECL
1581__CRT_UUID_DECL(IMF2DBuffer2, 0x33ae5ea6, 0x4316, 0x436f, 0x8d,0xdd, 0xd7,0x3d,0x22,0xf8,0x29,0xec)
1582#endif
1583#else
1584typedef struct IMF2DBuffer2Vtbl {
1585 BEGIN_INTERFACE
1586
1587 /*** IUnknown methods ***/
1588 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1589 IMF2DBuffer2 *This,
1590 REFIID riid,
1591 void **ppvObject);
1592
1593 ULONG (STDMETHODCALLTYPE *AddRef)(
1594 IMF2DBuffer2 *This);
1595
1596 ULONG (STDMETHODCALLTYPE *Release)(
1597 IMF2DBuffer2 *This);
1598
1599 /*** IMF2DBuffer methods ***/
1600 HRESULT (STDMETHODCALLTYPE *Lock2D)(
1601 IMF2DBuffer2 *This,
1602 BYTE **ppbScanline0,
1603 LONG *plPitch);
1604
1605 HRESULT (STDMETHODCALLTYPE *Unlock2D)(
1606 IMF2DBuffer2 *This);
1607
1608 HRESULT (STDMETHODCALLTYPE *GetScanline0AndPitch)(
1609 IMF2DBuffer2 *This,
1610 BYTE **pbScanline0,
1611 LONG *plPitch);
1612
1613 HRESULT (STDMETHODCALLTYPE *IsContiguousFormat)(
1614 IMF2DBuffer2 *This,
1615 WINBOOL *pfIsContiguous);
1616
1617 HRESULT (STDMETHODCALLTYPE *GetContiguousLength)(
1618 IMF2DBuffer2 *This,
1619 DWORD *pcbLength);
1620
1621 HRESULT (STDMETHODCALLTYPE *ContiguousCopyTo)(
1622 IMF2DBuffer2 *This,
1623 BYTE *pbDestBuffer,
1624 DWORD cbDestBuffer);
1625
1626 HRESULT (STDMETHODCALLTYPE *ContiguousCopyFrom)(
1627 IMF2DBuffer2 *This,
1628 const BYTE *pbSrcBuffer,
1629 DWORD cbSrcBuffer);
1630
1631 /*** IMF2DBuffer2 methods ***/
1632 HRESULT (STDMETHODCALLTYPE *Lock2DSize)(
1633 IMF2DBuffer2 *This,
1634 MF2DBuffer_LockFlags lockFlags,
1635 BYTE **ppbScanline0,
1636 LONG *plPitch,
1637 BYTE **ppbBufferStart,
1638 DWORD *pcbBufferLength);
1639
1640 HRESULT (STDMETHODCALLTYPE *Copy2DTo)(
1641 IMF2DBuffer2 *This,
1642 IMF2DBuffer2 *pDestBuffer);
1643
1644 END_INTERFACE
1645} IMF2DBuffer2Vtbl;
1646
1647interface IMF2DBuffer2 {
1648 CONST_VTBL IMF2DBuffer2Vtbl* lpVtbl;
1649};
1650
1651#ifdef COBJMACROS
1652#ifndef WIDL_C_INLINE_WRAPPERS
1653/*** IUnknown methods ***/
1654#define IMF2DBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1655#define IMF2DBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
1656#define IMF2DBuffer2_Release(This) (This)->lpVtbl->Release(This)
1657/*** IMF2DBuffer methods ***/
1658#define IMF2DBuffer2_Lock2D(This,ppbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,ppbScanline0,plPitch)
1659#define IMF2DBuffer2_Unlock2D(This) (This)->lpVtbl->Unlock2D(This)
1660#define IMF2DBuffer2_GetScanline0AndPitch(This,pbScanline0,plPitch) (This)->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch)
1661#define IMF2DBuffer2_IsContiguousFormat(This,pfIsContiguous) (This)->lpVtbl->IsContiguousFormat(This,pfIsContiguous)
1662#define IMF2DBuffer2_GetContiguousLength(This,pcbLength) (This)->lpVtbl->GetContiguousLength(This,pcbLength)
1663#define IMF2DBuffer2_ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer) (This)->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer)
1664#define IMF2DBuffer2_ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer) (This)->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer)
1665/*** IMF2DBuffer2 methods ***/
1666#define IMF2DBuffer2_Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength) (This)->lpVtbl->Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength)
1667#define IMF2DBuffer2_Copy2DTo(This,pDestBuffer) (This)->lpVtbl->Copy2DTo(This,pDestBuffer)
1668#else
1669/*** IUnknown methods ***/
1670static FORCEINLINE HRESULT IMF2DBuffer2_QueryInterface(IMF2DBuffer2* This,REFIID riid,void **ppvObject) {
1671 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1672}
1673static FORCEINLINE ULONG IMF2DBuffer2_AddRef(IMF2DBuffer2* This) {
1674 return This->lpVtbl->AddRef(This);
1675}
1676static FORCEINLINE ULONG IMF2DBuffer2_Release(IMF2DBuffer2* This) {
1677 return This->lpVtbl->Release(This);
1678}
1679/*** IMF2DBuffer methods ***/
1680static FORCEINLINE HRESULT IMF2DBuffer2_Lock2D(IMF2DBuffer2* This,BYTE **ppbScanline0,LONG *plPitch) {
1681 return This->lpVtbl->Lock2D(This,ppbScanline0,plPitch);
1682}
1683static FORCEINLINE HRESULT IMF2DBuffer2_Unlock2D(IMF2DBuffer2* This) {
1684 return This->lpVtbl->Unlock2D(This);
1685}
1686static FORCEINLINE HRESULT IMF2DBuffer2_GetScanline0AndPitch(IMF2DBuffer2* This,BYTE **pbScanline0,LONG *plPitch) {
1687 return This->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch);
1688}
1689static FORCEINLINE HRESULT IMF2DBuffer2_IsContiguousFormat(IMF2DBuffer2* This,WINBOOL *pfIsContiguous) {
1690 return This->lpVtbl->IsContiguousFormat(This,pfIsContiguous);
1691}
1692static FORCEINLINE HRESULT IMF2DBuffer2_GetContiguousLength(IMF2DBuffer2* This,DWORD *pcbLength) {
1693 return This->lpVtbl->GetContiguousLength(This,pcbLength);
1694}
1695static FORCEINLINE HRESULT IMF2DBuffer2_ContiguousCopyTo(IMF2DBuffer2* This,BYTE *pbDestBuffer,DWORD cbDestBuffer) {
1696 return This->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer);
1697}
1698static FORCEINLINE HRESULT IMF2DBuffer2_ContiguousCopyFrom(IMF2DBuffer2* This,const BYTE *pbSrcBuffer,DWORD cbSrcBuffer) {
1699 return This->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer);
1700}
1701/*** IMF2DBuffer2 methods ***/
1702static FORCEINLINE HRESULT IMF2DBuffer2_Lock2DSize(IMF2DBuffer2* This,MF2DBuffer_LockFlags lockFlags,BYTE **ppbScanline0,LONG *plPitch,BYTE **ppbBufferStart,DWORD *pcbBufferLength) {
1703 return This->lpVtbl->Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength);
1704}
1705static FORCEINLINE HRESULT IMF2DBuffer2_Copy2DTo(IMF2DBuffer2* This,IMF2DBuffer2 *pDestBuffer) {
1706 return This->lpVtbl->Copy2DTo(This,pDestBuffer);
1707}
1708#endif
1709#endif
1710
1711#endif
1712
1713
1714#endif /* __IMF2DBuffer2_INTERFACE_DEFINED__ */
1715
1716
1717/*****************************************************************************
1718 * IMFDXGIBuffer interface
1719 */
1720#ifndef __IMFDXGIBuffer_INTERFACE_DEFINED__
1721#define __IMFDXGIBuffer_INTERFACE_DEFINED__
1722
1723DEFINE_GUID(IID_IMFDXGIBuffer, 0xe7174cfa, 0x1c9e, 0x48b1, 0x88,0x66, 0x62,0x62,0x26,0xbf,0xc2,0x58);
1724#if defined(__cplusplus) && !defined(CINTERFACE)
1725MIDL_INTERFACE("e7174cfa-1c9e-48b1-8866-626226bfc258")
1726IMFDXGIBuffer : public IUnknown
1727{
1728 virtual HRESULT STDMETHODCALLTYPE GetResource(
1729 REFIID riid,
1730 LPVOID *ppvObject) = 0;
1731
1732 virtual HRESULT STDMETHODCALLTYPE GetSubresourceIndex(
1733 UINT *puSubresource) = 0;
1734
1735 virtual HRESULT STDMETHODCALLTYPE GetUnknown(
1736 REFIID guid,
1737 REFIID riid,
1738 LPVOID *ppvObject) = 0;
1739
1740 virtual HRESULT STDMETHODCALLTYPE SetUnknown(
1741 REFIID guid,
1742 IUnknown *pUnkData) = 0;
1743
1744};
1745#ifdef __CRT_UUID_DECL
1746__CRT_UUID_DECL(IMFDXGIBuffer, 0xe7174cfa, 0x1c9e, 0x48b1, 0x88,0x66, 0x62,0x62,0x26,0xbf,0xc2,0x58)
1747#endif
1748#else
1749typedef struct IMFDXGIBufferVtbl {
1750 BEGIN_INTERFACE
1751
1752 /*** IUnknown methods ***/
1753 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1754 IMFDXGIBuffer *This,
1755 REFIID riid,
1756 void **ppvObject);
1757
1758 ULONG (STDMETHODCALLTYPE *AddRef)(
1759 IMFDXGIBuffer *This);
1760
1761 ULONG (STDMETHODCALLTYPE *Release)(
1762 IMFDXGIBuffer *This);
1763
1764 /*** IMFDXGIBuffer methods ***/
1765 HRESULT (STDMETHODCALLTYPE *GetResource)(
1766 IMFDXGIBuffer *This,
1767 REFIID riid,
1768 LPVOID *ppvObject);
1769
1770 HRESULT (STDMETHODCALLTYPE *GetSubresourceIndex)(
1771 IMFDXGIBuffer *This,
1772 UINT *puSubresource);
1773
1774 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
1775 IMFDXGIBuffer *This,
1776 REFIID guid,
1777 REFIID riid,
1778 LPVOID *ppvObject);
1779
1780 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
1781 IMFDXGIBuffer *This,
1782 REFIID guid,
1783 IUnknown *pUnkData);
1784
1785 END_INTERFACE
1786} IMFDXGIBufferVtbl;
1787
1788interface IMFDXGIBuffer {
1789 CONST_VTBL IMFDXGIBufferVtbl* lpVtbl;
1790};
1791
1792#ifdef COBJMACROS
1793#ifndef WIDL_C_INLINE_WRAPPERS
1794/*** IUnknown methods ***/
1795#define IMFDXGIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1796#define IMFDXGIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
1797#define IMFDXGIBuffer_Release(This) (This)->lpVtbl->Release(This)
1798/*** IMFDXGIBuffer methods ***/
1799#define IMFDXGIBuffer_GetResource(This,riid,ppvObject) (This)->lpVtbl->GetResource(This,riid,ppvObject)
1800#define IMFDXGIBuffer_GetSubresourceIndex(This,puSubresource) (This)->lpVtbl->GetSubresourceIndex(This,puSubresource)
1801#define IMFDXGIBuffer_GetUnknown(This,guid,riid,ppvObject) (This)->lpVtbl->GetUnknown(This,guid,riid,ppvObject)
1802#define IMFDXGIBuffer_SetUnknown(This,guid,pUnkData) (This)->lpVtbl->SetUnknown(This,guid,pUnkData)
1803#else
1804/*** IUnknown methods ***/
1805static FORCEINLINE HRESULT IMFDXGIBuffer_QueryInterface(IMFDXGIBuffer* This,REFIID riid,void **ppvObject) {
1806 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1807}
1808static FORCEINLINE ULONG IMFDXGIBuffer_AddRef(IMFDXGIBuffer* This) {
1809 return This->lpVtbl->AddRef(This);
1810}
1811static FORCEINLINE ULONG IMFDXGIBuffer_Release(IMFDXGIBuffer* This) {
1812 return This->lpVtbl->Release(This);
1813}
1814/*** IMFDXGIBuffer methods ***/
1815static FORCEINLINE HRESULT IMFDXGIBuffer_GetResource(IMFDXGIBuffer* This,REFIID riid,LPVOID *ppvObject) {
1816 return This->lpVtbl->GetResource(This,riid,ppvObject);
1817}
1818static FORCEINLINE HRESULT IMFDXGIBuffer_GetSubresourceIndex(IMFDXGIBuffer* This,UINT *puSubresource) {
1819 return This->lpVtbl->GetSubresourceIndex(This,puSubresource);
1820}
1821static FORCEINLINE HRESULT IMFDXGIBuffer_GetUnknown(IMFDXGIBuffer* This,REFIID guid,REFIID riid,LPVOID *ppvObject) {
1822 return This->lpVtbl->GetUnknown(This,guid,riid,ppvObject);
1823}
1824static FORCEINLINE HRESULT IMFDXGIBuffer_SetUnknown(IMFDXGIBuffer* This,REFIID guid,IUnknown *pUnkData) {
1825 return This->lpVtbl->SetUnknown(This,guid,pUnkData);
1826}
1827#endif
1828#endif
1829
1830#endif
1831
1832
1833#endif /* __IMFDXGIBuffer_INTERFACE_DEFINED__ */
1834
1835
1836/*****************************************************************************
1837 * IMFMediaType interface
1838 */
1839#ifndef __IMFMediaType_INTERFACE_DEFINED__
1840#define __IMFMediaType_INTERFACE_DEFINED__
1841
1842DEFINE_GUID(IID_IMFMediaType, 0x44ae0fa8, 0xea31, 0x4109, 0x8d,0x2e, 0x4c,0xae,0x49,0x97,0xc5,0x55);
1843#if defined(__cplusplus) && !defined(CINTERFACE)
1844MIDL_INTERFACE("44ae0fa8-ea31-4109-8d2e-4cae4997c555")
1845IMFMediaType : public IMFAttributes
1846{
1847 virtual HRESULT STDMETHODCALLTYPE GetMajorType(
1848 GUID *pguidMajorType) = 0;
1849
1850 virtual HRESULT STDMETHODCALLTYPE IsCompressedFormat(
1851 WINBOOL *pfCompressed) = 0;
1852
1853 virtual HRESULT STDMETHODCALLTYPE IsEqual(
1854 IMFMediaType *pIMediaType,
1855 DWORD *pdwFlags) = 0;
1856
1857 virtual HRESULT STDMETHODCALLTYPE GetRepresentation(
1858 GUID guidRepresentation,
1859 LPVOID *ppvRepresentation) = 0;
1860
1861 virtual HRESULT STDMETHODCALLTYPE FreeRepresentation(
1862 GUID guidRepresentation,
1863 LPVOID pvRepresentation) = 0;
1864
1865};
1866#ifdef __CRT_UUID_DECL
1867__CRT_UUID_DECL(IMFMediaType, 0x44ae0fa8, 0xea31, 0x4109, 0x8d,0x2e, 0x4c,0xae,0x49,0x97,0xc5,0x55)
1868#endif
1869#else
1870typedef struct IMFMediaTypeVtbl {
1871 BEGIN_INTERFACE
1872
1873 /*** IUnknown methods ***/
1874 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1875 IMFMediaType *This,
1876 REFIID riid,
1877 void **ppvObject);
1878
1879 ULONG (STDMETHODCALLTYPE *AddRef)(
1880 IMFMediaType *This);
1881
1882 ULONG (STDMETHODCALLTYPE *Release)(
1883 IMFMediaType *This);
1884
1885 /*** IMFAttributes methods ***/
1886 HRESULT (STDMETHODCALLTYPE *GetItem)(
1887 IMFMediaType *This,
1888 REFGUID guidKey,
1889 PROPVARIANT *pValue);
1890
1891 HRESULT (STDMETHODCALLTYPE *GetItemType)(
1892 IMFMediaType *This,
1893 REFGUID guidKey,
1894 MF_ATTRIBUTE_TYPE *pType);
1895
1896 HRESULT (STDMETHODCALLTYPE *CompareItem)(
1897 IMFMediaType *This,
1898 REFGUID guidKey,
1899 REFPROPVARIANT Value,
1900 WINBOOL *pbResult);
1901
1902 HRESULT (STDMETHODCALLTYPE *Compare)(
1903 IMFMediaType *This,
1904 IMFAttributes *pTheirs,
1905 MF_ATTRIBUTES_MATCH_TYPE MatchType,
1906 WINBOOL *pbResult);
1907
1908 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
1909 IMFMediaType *This,
1910 REFGUID guidKey,
1911 UINT32 *punValue);
1912
1913 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
1914 IMFMediaType *This,
1915 REFGUID guidKey,
1916 UINT64 *punValue);
1917
1918 HRESULT (STDMETHODCALLTYPE *GetDouble)(
1919 IMFMediaType *This,
1920 REFGUID guidKey,
1921 double *pfValue);
1922
1923 HRESULT (STDMETHODCALLTYPE *GetGUID)(
1924 IMFMediaType *This,
1925 REFGUID guidKey,
1926 GUID *pguidValue);
1927
1928 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
1929 IMFMediaType *This,
1930 REFGUID guidKey,
1931 UINT32 *pcchLength);
1932
1933 HRESULT (STDMETHODCALLTYPE *GetString)(
1934 IMFMediaType *This,
1935 REFGUID guidKey,
1936 LPWSTR pwszValue,
1937 UINT32 cchBufSize,
1938 UINT32 *pcchLength);
1939
1940 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
1941 IMFMediaType *This,
1942 REFGUID guidKey,
1943 LPWSTR *ppwszValue,
1944 UINT32 *pcchLength);
1945
1946 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
1947 IMFMediaType *This,
1948 REFGUID guidKey,
1949 UINT32 *pcbBlobSize);
1950
1951 HRESULT (STDMETHODCALLTYPE *GetBlob)(
1952 IMFMediaType *This,
1953 REFGUID guidKey,
1954 UINT8 *pBuf,
1955 UINT32 cbBufSize,
1956 UINT32 *pcbBlobSize);
1957
1958 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
1959 IMFMediaType *This,
1960 REFGUID guidKey,
1961 UINT8 **ppBuf,
1962 UINT32 *pcbSize);
1963
1964 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
1965 IMFMediaType *This,
1966 REFGUID guidKey,
1967 REFIID riid,
1968 LPVOID *ppv);
1969
1970 HRESULT (STDMETHODCALLTYPE *SetItem)(
1971 IMFMediaType *This,
1972 REFGUID guidKey,
1973 REFPROPVARIANT Value);
1974
1975 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
1976 IMFMediaType *This,
1977 REFGUID guidKey);
1978
1979 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
1980 IMFMediaType *This);
1981
1982 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
1983 IMFMediaType *This,
1984 REFGUID guidKey,
1985 UINT32 unValue);
1986
1987 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
1988 IMFMediaType *This,
1989 REFGUID guidKey,
1990 UINT64 unValue);
1991
1992 HRESULT (STDMETHODCALLTYPE *SetDouble)(
1993 IMFMediaType *This,
1994 REFGUID guidKey,
1995 double fValue);
1996
1997 HRESULT (STDMETHODCALLTYPE *SetGUID)(
1998 IMFMediaType *This,
1999 REFGUID guidKey,
2000 REFGUID guidValue);
2001
2002 HRESULT (STDMETHODCALLTYPE *SetString)(
2003 IMFMediaType *This,
2004 REFGUID guidKey,
2005 LPCWSTR wszValue);
2006
2007 HRESULT (STDMETHODCALLTYPE *SetBlob)(
2008 IMFMediaType *This,
2009 REFGUID guidKey,
2010 const UINT8 *pBuf,
2011 UINT32 cbBufSize);
2012
2013 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
2014 IMFMediaType *This,
2015 REFGUID guidKey,
2016 IUnknown *pUnknown);
2017
2018 HRESULT (STDMETHODCALLTYPE *LockStore)(
2019 IMFMediaType *This);
2020
2021 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
2022 IMFMediaType *This);
2023
2024 HRESULT (STDMETHODCALLTYPE *GetCount)(
2025 IMFMediaType *This,
2026 UINT32 *pcItems);
2027
2028 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
2029 IMFMediaType *This,
2030 UINT32 unIndex,
2031 GUID *pguidKey,
2032 PROPVARIANT *pValue);
2033
2034 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
2035 IMFMediaType *This,
2036 IMFAttributes *pDest);
2037
2038 /*** IMFMediaType methods ***/
2039 HRESULT (STDMETHODCALLTYPE *GetMajorType)(
2040 IMFMediaType *This,
2041 GUID *pguidMajorType);
2042
2043 HRESULT (STDMETHODCALLTYPE *IsCompressedFormat)(
2044 IMFMediaType *This,
2045 WINBOOL *pfCompressed);
2046
2047 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2048 IMFMediaType *This,
2049 IMFMediaType *pIMediaType,
2050 DWORD *pdwFlags);
2051
2052 HRESULT (STDMETHODCALLTYPE *GetRepresentation)(
2053 IMFMediaType *This,
2054 GUID guidRepresentation,
2055 LPVOID *ppvRepresentation);
2056
2057 HRESULT (STDMETHODCALLTYPE *FreeRepresentation)(
2058 IMFMediaType *This,
2059 GUID guidRepresentation,
2060 LPVOID pvRepresentation);
2061
2062 END_INTERFACE
2063} IMFMediaTypeVtbl;
2064
2065interface IMFMediaType {
2066 CONST_VTBL IMFMediaTypeVtbl* lpVtbl;
2067};
2068
2069#ifdef COBJMACROS
2070#ifndef WIDL_C_INLINE_WRAPPERS
2071/*** IUnknown methods ***/
2072#define IMFMediaType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2073#define IMFMediaType_AddRef(This) (This)->lpVtbl->AddRef(This)
2074#define IMFMediaType_Release(This) (This)->lpVtbl->Release(This)
2075/*** IMFAttributes methods ***/
2076#define IMFMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
2077#define IMFMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
2078#define IMFMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
2079#define IMFMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
2080#define IMFMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
2081#define IMFMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
2082#define IMFMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
2083#define IMFMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
2084#define IMFMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
2085#define IMFMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
2086#define IMFMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
2087#define IMFMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
2088#define IMFMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
2089#define IMFMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
2090#define IMFMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
2091#define IMFMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
2092#define IMFMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
2093#define IMFMediaType_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
2094#define IMFMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
2095#define IMFMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
2096#define IMFMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
2097#define IMFMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
2098#define IMFMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
2099#define IMFMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
2100#define IMFMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
2101#define IMFMediaType_LockStore(This) (This)->lpVtbl->LockStore(This)
2102#define IMFMediaType_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
2103#define IMFMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
2104#define IMFMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
2105#define IMFMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
2106/*** IMFMediaType methods ***/
2107#define IMFMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
2108#define IMFMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
2109#define IMFMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
2110#define IMFMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
2111#define IMFMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
2112#else
2113/*** IUnknown methods ***/
2114static FORCEINLINE HRESULT IMFMediaType_QueryInterface(IMFMediaType* This,REFIID riid,void **ppvObject) {
2115 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2116}
2117static FORCEINLINE ULONG IMFMediaType_AddRef(IMFMediaType* This) {
2118 return This->lpVtbl->AddRef(This);
2119}
2120static FORCEINLINE ULONG IMFMediaType_Release(IMFMediaType* This) {
2121 return This->lpVtbl->Release(This);
2122}
2123/*** IMFAttributes methods ***/
2124static FORCEINLINE HRESULT IMFMediaType_GetItem(IMFMediaType* This,REFGUID guidKey,PROPVARIANT *pValue) {
2125 return This->lpVtbl->GetItem(This,guidKey,pValue);
2126}
2127static FORCEINLINE HRESULT IMFMediaType_GetItemType(IMFMediaType* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2128 return This->lpVtbl->GetItemType(This,guidKey,pType);
2129}
2130static FORCEINLINE HRESULT IMFMediaType_CompareItem(IMFMediaType* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2131 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2132}
2133static FORCEINLINE HRESULT IMFMediaType_Compare(IMFMediaType* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
2134 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
2135}
2136static FORCEINLINE HRESULT IMFMediaType_GetUINT32(IMFMediaType* This,REFGUID guidKey,UINT32 *punValue) {
2137 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2138}
2139static FORCEINLINE HRESULT IMFMediaType_GetUINT64(IMFMediaType* This,REFGUID guidKey,UINT64 *punValue) {
2140 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2141}
2142static FORCEINLINE HRESULT IMFMediaType_GetDouble(IMFMediaType* This,REFGUID guidKey,double *pfValue) {
2143 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2144}
2145static FORCEINLINE HRESULT IMFMediaType_GetGUID(IMFMediaType* This,REFGUID guidKey,GUID *pguidValue) {
2146 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2147}
2148static FORCEINLINE HRESULT IMFMediaType_GetStringLength(IMFMediaType* This,REFGUID guidKey,UINT32 *pcchLength) {
2149 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2150}
2151static FORCEINLINE HRESULT IMFMediaType_GetString(IMFMediaType* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
2152 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
2153}
2154static FORCEINLINE HRESULT IMFMediaType_GetAllocatedString(IMFMediaType* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2155 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2156}
2157static FORCEINLINE HRESULT IMFMediaType_GetBlobSize(IMFMediaType* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2158 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2159}
2160static FORCEINLINE HRESULT IMFMediaType_GetBlob(IMFMediaType* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
2161 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
2162}
2163static FORCEINLINE HRESULT IMFMediaType_GetAllocatedBlob(IMFMediaType* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2164 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2165}
2166static FORCEINLINE HRESULT IMFMediaType_GetUnknown(IMFMediaType* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2167 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2168}
2169static FORCEINLINE HRESULT IMFMediaType_SetItem(IMFMediaType* This,REFGUID guidKey,REFPROPVARIANT Value) {
2170 return This->lpVtbl->SetItem(This,guidKey,Value);
2171}
2172static FORCEINLINE HRESULT IMFMediaType_DeleteItem(IMFMediaType* This,REFGUID guidKey) {
2173 return This->lpVtbl->DeleteItem(This,guidKey);
2174}
2175static FORCEINLINE HRESULT IMFMediaType_DeleteAllItems(IMFMediaType* This) {
2176 return This->lpVtbl->DeleteAllItems(This);
2177}
2178static FORCEINLINE HRESULT IMFMediaType_SetUINT32(IMFMediaType* This,REFGUID guidKey,UINT32 unValue) {
2179 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2180}
2181static FORCEINLINE HRESULT IMFMediaType_SetUINT64(IMFMediaType* This,REFGUID guidKey,UINT64 unValue) {
2182 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2183}
2184static FORCEINLINE HRESULT IMFMediaType_SetDouble(IMFMediaType* This,REFGUID guidKey,double fValue) {
2185 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2186}
2187static FORCEINLINE HRESULT IMFMediaType_SetGUID(IMFMediaType* This,REFGUID guidKey,REFGUID guidValue) {
2188 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2189}
2190static FORCEINLINE HRESULT IMFMediaType_SetString(IMFMediaType* This,REFGUID guidKey,LPCWSTR wszValue) {
2191 return This->lpVtbl->SetString(This,guidKey,wszValue);
2192}
2193static FORCEINLINE HRESULT IMFMediaType_SetBlob(IMFMediaType* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2194 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2195}
2196static FORCEINLINE HRESULT IMFMediaType_SetUnknown(IMFMediaType* This,REFGUID guidKey,IUnknown *pUnknown) {
2197 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2198}
2199static FORCEINLINE HRESULT IMFMediaType_LockStore(IMFMediaType* This) {
2200 return This->lpVtbl->LockStore(This);
2201}
2202static FORCEINLINE HRESULT IMFMediaType_UnlockStore(IMFMediaType* This) {
2203 return This->lpVtbl->UnlockStore(This);
2204}
2205static FORCEINLINE HRESULT IMFMediaType_GetCount(IMFMediaType* This,UINT32 *pcItems) {
2206 return This->lpVtbl->GetCount(This,pcItems);
2207}
2208static FORCEINLINE HRESULT IMFMediaType_GetItemByIndex(IMFMediaType* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2209 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2210}
2211static FORCEINLINE HRESULT IMFMediaType_CopyAllItems(IMFMediaType* This,IMFAttributes *pDest) {
2212 return This->lpVtbl->CopyAllItems(This,pDest);
2213}
2214/*** IMFMediaType methods ***/
2215static FORCEINLINE HRESULT IMFMediaType_GetMajorType(IMFMediaType* This,GUID *pguidMajorType) {
2216 return This->lpVtbl->GetMajorType(This,pguidMajorType);
2217}
2218static FORCEINLINE HRESULT IMFMediaType_IsCompressedFormat(IMFMediaType* This,WINBOOL *pfCompressed) {
2219 return This->lpVtbl->IsCompressedFormat(This,pfCompressed);
2220}
2221static FORCEINLINE HRESULT IMFMediaType_IsEqual(IMFMediaType* This,IMFMediaType *pIMediaType,DWORD *pdwFlags) {
2222 return This->lpVtbl->IsEqual(This,pIMediaType,pdwFlags);
2223}
2224static FORCEINLINE HRESULT IMFMediaType_GetRepresentation(IMFMediaType* This,GUID guidRepresentation,LPVOID *ppvRepresentation) {
2225 return This->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation);
2226}
2227static FORCEINLINE HRESULT IMFMediaType_FreeRepresentation(IMFMediaType* This,GUID guidRepresentation,LPVOID pvRepresentation) {
2228 return This->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation);
2229}
2230#endif
2231#endif
2232
2233#endif
2234
2235
2236#endif /* __IMFMediaType_INTERFACE_DEFINED__ */
2237
2238
2239#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001
2240#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002
2241#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004
2242#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008
2243#endif
2244
2245#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2246/*****************************************************************************
2247 * IMFAudioMediaType interface
2248 */
2249#ifndef __IMFAudioMediaType_INTERFACE_DEFINED__
2250#define __IMFAudioMediaType_INTERFACE_DEFINED__
2251
2252DEFINE_GUID(IID_IMFAudioMediaType, 0x26a0adc3, 0xce26, 0x4672, 0x93,0x04, 0x69,0x55,0x2e,0xdd,0x3f,0xaf);
2253#if defined(__cplusplus) && !defined(CINTERFACE)
2254MIDL_INTERFACE("26a0adc3-ce26-4672-9304-69552edd3faf")
2255IMFAudioMediaType : public IMFMediaType
2256{
2257 virtual const WAVEFORMATEX * STDMETHODCALLTYPE GetAudioFormat(
2258 ) = 0;
2259
2260};
2261#ifdef __CRT_UUID_DECL
2262__CRT_UUID_DECL(IMFAudioMediaType, 0x26a0adc3, 0xce26, 0x4672, 0x93,0x04, 0x69,0x55,0x2e,0xdd,0x3f,0xaf)
2263#endif
2264#else
2265typedef struct IMFAudioMediaTypeVtbl {
2266 BEGIN_INTERFACE
2267
2268 /*** IUnknown methods ***/
2269 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2270 IMFAudioMediaType *This,
2271 REFIID riid,
2272 void **ppvObject);
2273
2274 ULONG (STDMETHODCALLTYPE *AddRef)(
2275 IMFAudioMediaType *This);
2276
2277 ULONG (STDMETHODCALLTYPE *Release)(
2278 IMFAudioMediaType *This);
2279
2280 /*** IMFAttributes methods ***/
2281 HRESULT (STDMETHODCALLTYPE *GetItem)(
2282 IMFAudioMediaType *This,
2283 REFGUID guidKey,
2284 PROPVARIANT *pValue);
2285
2286 HRESULT (STDMETHODCALLTYPE *GetItemType)(
2287 IMFAudioMediaType *This,
2288 REFGUID guidKey,
2289 MF_ATTRIBUTE_TYPE *pType);
2290
2291 HRESULT (STDMETHODCALLTYPE *CompareItem)(
2292 IMFAudioMediaType *This,
2293 REFGUID guidKey,
2294 REFPROPVARIANT Value,
2295 WINBOOL *pbResult);
2296
2297 HRESULT (STDMETHODCALLTYPE *Compare)(
2298 IMFAudioMediaType *This,
2299 IMFAttributes *pTheirs,
2300 MF_ATTRIBUTES_MATCH_TYPE MatchType,
2301 WINBOOL *pbResult);
2302
2303 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
2304 IMFAudioMediaType *This,
2305 REFGUID guidKey,
2306 UINT32 *punValue);
2307
2308 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
2309 IMFAudioMediaType *This,
2310 REFGUID guidKey,
2311 UINT64 *punValue);
2312
2313 HRESULT (STDMETHODCALLTYPE *GetDouble)(
2314 IMFAudioMediaType *This,
2315 REFGUID guidKey,
2316 double *pfValue);
2317
2318 HRESULT (STDMETHODCALLTYPE *GetGUID)(
2319 IMFAudioMediaType *This,
2320 REFGUID guidKey,
2321 GUID *pguidValue);
2322
2323 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
2324 IMFAudioMediaType *This,
2325 REFGUID guidKey,
2326 UINT32 *pcchLength);
2327
2328 HRESULT (STDMETHODCALLTYPE *GetString)(
2329 IMFAudioMediaType *This,
2330 REFGUID guidKey,
2331 LPWSTR pwszValue,
2332 UINT32 cchBufSize,
2333 UINT32 *pcchLength);
2334
2335 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
2336 IMFAudioMediaType *This,
2337 REFGUID guidKey,
2338 LPWSTR *ppwszValue,
2339 UINT32 *pcchLength);
2340
2341 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
2342 IMFAudioMediaType *This,
2343 REFGUID guidKey,
2344 UINT32 *pcbBlobSize);
2345
2346 HRESULT (STDMETHODCALLTYPE *GetBlob)(
2347 IMFAudioMediaType *This,
2348 REFGUID guidKey,
2349 UINT8 *pBuf,
2350 UINT32 cbBufSize,
2351 UINT32 *pcbBlobSize);
2352
2353 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
2354 IMFAudioMediaType *This,
2355 REFGUID guidKey,
2356 UINT8 **ppBuf,
2357 UINT32 *pcbSize);
2358
2359 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
2360 IMFAudioMediaType *This,
2361 REFGUID guidKey,
2362 REFIID riid,
2363 LPVOID *ppv);
2364
2365 HRESULT (STDMETHODCALLTYPE *SetItem)(
2366 IMFAudioMediaType *This,
2367 REFGUID guidKey,
2368 REFPROPVARIANT Value);
2369
2370 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
2371 IMFAudioMediaType *This,
2372 REFGUID guidKey);
2373
2374 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
2375 IMFAudioMediaType *This);
2376
2377 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
2378 IMFAudioMediaType *This,
2379 REFGUID guidKey,
2380 UINT32 unValue);
2381
2382 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
2383 IMFAudioMediaType *This,
2384 REFGUID guidKey,
2385 UINT64 unValue);
2386
2387 HRESULT (STDMETHODCALLTYPE *SetDouble)(
2388 IMFAudioMediaType *This,
2389 REFGUID guidKey,
2390 double fValue);
2391
2392 HRESULT (STDMETHODCALLTYPE *SetGUID)(
2393 IMFAudioMediaType *This,
2394 REFGUID guidKey,
2395 REFGUID guidValue);
2396
2397 HRESULT (STDMETHODCALLTYPE *SetString)(
2398 IMFAudioMediaType *This,
2399 REFGUID guidKey,
2400 LPCWSTR wszValue);
2401
2402 HRESULT (STDMETHODCALLTYPE *SetBlob)(
2403 IMFAudioMediaType *This,
2404 REFGUID guidKey,
2405 const UINT8 *pBuf,
2406 UINT32 cbBufSize);
2407
2408 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
2409 IMFAudioMediaType *This,
2410 REFGUID guidKey,
2411 IUnknown *pUnknown);
2412
2413 HRESULT (STDMETHODCALLTYPE *LockStore)(
2414 IMFAudioMediaType *This);
2415
2416 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
2417 IMFAudioMediaType *This);
2418
2419 HRESULT (STDMETHODCALLTYPE *GetCount)(
2420 IMFAudioMediaType *This,
2421 UINT32 *pcItems);
2422
2423 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
2424 IMFAudioMediaType *This,
2425 UINT32 unIndex,
2426 GUID *pguidKey,
2427 PROPVARIANT *pValue);
2428
2429 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
2430 IMFAudioMediaType *This,
2431 IMFAttributes *pDest);
2432
2433 /*** IMFMediaType methods ***/
2434 HRESULT (STDMETHODCALLTYPE *GetMajorType)(
2435 IMFAudioMediaType *This,
2436 GUID *pguidMajorType);
2437
2438 HRESULT (STDMETHODCALLTYPE *IsCompressedFormat)(
2439 IMFAudioMediaType *This,
2440 WINBOOL *pfCompressed);
2441
2442 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2443 IMFAudioMediaType *This,
2444 IMFMediaType *pIMediaType,
2445 DWORD *pdwFlags);
2446
2447 HRESULT (STDMETHODCALLTYPE *GetRepresentation)(
2448 IMFAudioMediaType *This,
2449 GUID guidRepresentation,
2450 LPVOID *ppvRepresentation);
2451
2452 HRESULT (STDMETHODCALLTYPE *FreeRepresentation)(
2453 IMFAudioMediaType *This,
2454 GUID guidRepresentation,
2455 LPVOID pvRepresentation);
2456
2457 /*** IMFAudioMediaType methods ***/
2458 const WAVEFORMATEX * (STDMETHODCALLTYPE *GetAudioFormat)(
2459 IMFAudioMediaType *This);
2460
2461 END_INTERFACE
2462} IMFAudioMediaTypeVtbl;
2463
2464interface IMFAudioMediaType {
2465 CONST_VTBL IMFAudioMediaTypeVtbl* lpVtbl;
2466};
2467
2468#ifdef COBJMACROS
2469#ifndef WIDL_C_INLINE_WRAPPERS
2470/*** IUnknown methods ***/
2471#define IMFAudioMediaType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2472#define IMFAudioMediaType_AddRef(This) (This)->lpVtbl->AddRef(This)
2473#define IMFAudioMediaType_Release(This) (This)->lpVtbl->Release(This)
2474/*** IMFAttributes methods ***/
2475#define IMFAudioMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
2476#define IMFAudioMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
2477#define IMFAudioMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
2478#define IMFAudioMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
2479#define IMFAudioMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
2480#define IMFAudioMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
2481#define IMFAudioMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
2482#define IMFAudioMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
2483#define IMFAudioMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
2484#define IMFAudioMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
2485#define IMFAudioMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
2486#define IMFAudioMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
2487#define IMFAudioMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
2488#define IMFAudioMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
2489#define IMFAudioMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
2490#define IMFAudioMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
2491#define IMFAudioMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
2492#define IMFAudioMediaType_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
2493#define IMFAudioMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
2494#define IMFAudioMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
2495#define IMFAudioMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
2496#define IMFAudioMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
2497#define IMFAudioMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
2498#define IMFAudioMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
2499#define IMFAudioMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
2500#define IMFAudioMediaType_LockStore(This) (This)->lpVtbl->LockStore(This)
2501#define IMFAudioMediaType_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
2502#define IMFAudioMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
2503#define IMFAudioMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
2504#define IMFAudioMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
2505/*** IMFMediaType methods ***/
2506#define IMFAudioMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
2507#define IMFAudioMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
2508#define IMFAudioMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
2509#define IMFAudioMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
2510#define IMFAudioMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
2511/*** IMFAudioMediaType methods ***/
2512#define IMFAudioMediaType_GetAudioFormat(This) (This)->lpVtbl->GetAudioFormat(This)
2513#else
2514/*** IUnknown methods ***/
2515static FORCEINLINE HRESULT IMFAudioMediaType_QueryInterface(IMFAudioMediaType* This,REFIID riid,void **ppvObject) {
2516 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2517}
2518static FORCEINLINE ULONG IMFAudioMediaType_AddRef(IMFAudioMediaType* This) {
2519 return This->lpVtbl->AddRef(This);
2520}
2521static FORCEINLINE ULONG IMFAudioMediaType_Release(IMFAudioMediaType* This) {
2522 return This->lpVtbl->Release(This);
2523}
2524/*** IMFAttributes methods ***/
2525static FORCEINLINE HRESULT IMFAudioMediaType_GetItem(IMFAudioMediaType* This,REFGUID guidKey,PROPVARIANT *pValue) {
2526 return This->lpVtbl->GetItem(This,guidKey,pValue);
2527}
2528static FORCEINLINE HRESULT IMFAudioMediaType_GetItemType(IMFAudioMediaType* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2529 return This->lpVtbl->GetItemType(This,guidKey,pType);
2530}
2531static FORCEINLINE HRESULT IMFAudioMediaType_CompareItem(IMFAudioMediaType* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2532 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2533}
2534static FORCEINLINE HRESULT IMFAudioMediaType_Compare(IMFAudioMediaType* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
2535 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
2536}
2537static FORCEINLINE HRESULT IMFAudioMediaType_GetUINT32(IMFAudioMediaType* This,REFGUID guidKey,UINT32 *punValue) {
2538 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2539}
2540static FORCEINLINE HRESULT IMFAudioMediaType_GetUINT64(IMFAudioMediaType* This,REFGUID guidKey,UINT64 *punValue) {
2541 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2542}
2543static FORCEINLINE HRESULT IMFAudioMediaType_GetDouble(IMFAudioMediaType* This,REFGUID guidKey,double *pfValue) {
2544 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2545}
2546static FORCEINLINE HRESULT IMFAudioMediaType_GetGUID(IMFAudioMediaType* This,REFGUID guidKey,GUID *pguidValue) {
2547 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2548}
2549static FORCEINLINE HRESULT IMFAudioMediaType_GetStringLength(IMFAudioMediaType* This,REFGUID guidKey,UINT32 *pcchLength) {
2550 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2551}
2552static FORCEINLINE HRESULT IMFAudioMediaType_GetString(IMFAudioMediaType* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
2553 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
2554}
2555static FORCEINLINE HRESULT IMFAudioMediaType_GetAllocatedString(IMFAudioMediaType* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2556 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2557}
2558static FORCEINLINE HRESULT IMFAudioMediaType_GetBlobSize(IMFAudioMediaType* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2559 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2560}
2561static FORCEINLINE HRESULT IMFAudioMediaType_GetBlob(IMFAudioMediaType* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
2562 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
2563}
2564static FORCEINLINE HRESULT IMFAudioMediaType_GetAllocatedBlob(IMFAudioMediaType* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2565 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2566}
2567static FORCEINLINE HRESULT IMFAudioMediaType_GetUnknown(IMFAudioMediaType* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2568 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2569}
2570static FORCEINLINE HRESULT IMFAudioMediaType_SetItem(IMFAudioMediaType* This,REFGUID guidKey,REFPROPVARIANT Value) {
2571 return This->lpVtbl->SetItem(This,guidKey,Value);
2572}
2573static FORCEINLINE HRESULT IMFAudioMediaType_DeleteItem(IMFAudioMediaType* This,REFGUID guidKey) {
2574 return This->lpVtbl->DeleteItem(This,guidKey);
2575}
2576static FORCEINLINE HRESULT IMFAudioMediaType_DeleteAllItems(IMFAudioMediaType* This) {
2577 return This->lpVtbl->DeleteAllItems(This);
2578}
2579static FORCEINLINE HRESULT IMFAudioMediaType_SetUINT32(IMFAudioMediaType* This,REFGUID guidKey,UINT32 unValue) {
2580 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2581}
2582static FORCEINLINE HRESULT IMFAudioMediaType_SetUINT64(IMFAudioMediaType* This,REFGUID guidKey,UINT64 unValue) {
2583 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2584}
2585static FORCEINLINE HRESULT IMFAudioMediaType_SetDouble(IMFAudioMediaType* This,REFGUID guidKey,double fValue) {
2586 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2587}
2588static FORCEINLINE HRESULT IMFAudioMediaType_SetGUID(IMFAudioMediaType* This,REFGUID guidKey,REFGUID guidValue) {
2589 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2590}
2591static FORCEINLINE HRESULT IMFAudioMediaType_SetString(IMFAudioMediaType* This,REFGUID guidKey,LPCWSTR wszValue) {
2592 return This->lpVtbl->SetString(This,guidKey,wszValue);
2593}
2594static FORCEINLINE HRESULT IMFAudioMediaType_SetBlob(IMFAudioMediaType* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2595 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2596}
2597static FORCEINLINE HRESULT IMFAudioMediaType_SetUnknown(IMFAudioMediaType* This,REFGUID guidKey,IUnknown *pUnknown) {
2598 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2599}
2600static FORCEINLINE HRESULT IMFAudioMediaType_LockStore(IMFAudioMediaType* This) {
2601 return This->lpVtbl->LockStore(This);
2602}
2603static FORCEINLINE HRESULT IMFAudioMediaType_UnlockStore(IMFAudioMediaType* This) {
2604 return This->lpVtbl->UnlockStore(This);
2605}
2606static FORCEINLINE HRESULT IMFAudioMediaType_GetCount(IMFAudioMediaType* This,UINT32 *pcItems) {
2607 return This->lpVtbl->GetCount(This,pcItems);
2608}
2609static FORCEINLINE HRESULT IMFAudioMediaType_GetItemByIndex(IMFAudioMediaType* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2610 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2611}
2612static FORCEINLINE HRESULT IMFAudioMediaType_CopyAllItems(IMFAudioMediaType* This,IMFAttributes *pDest) {
2613 return This->lpVtbl->CopyAllItems(This,pDest);
2614}
2615/*** IMFMediaType methods ***/
2616static FORCEINLINE HRESULT IMFAudioMediaType_GetMajorType(IMFAudioMediaType* This,GUID *pguidMajorType) {
2617 return This->lpVtbl->GetMajorType(This,pguidMajorType);
2618}
2619static FORCEINLINE HRESULT IMFAudioMediaType_IsCompressedFormat(IMFAudioMediaType* This,WINBOOL *pfCompressed) {
2620 return This->lpVtbl->IsCompressedFormat(This,pfCompressed);
2621}
2622static FORCEINLINE HRESULT IMFAudioMediaType_IsEqual(IMFAudioMediaType* This,IMFMediaType *pIMediaType,DWORD *pdwFlags) {
2623 return This->lpVtbl->IsEqual(This,pIMediaType,pdwFlags);
2624}
2625static FORCEINLINE HRESULT IMFAudioMediaType_GetRepresentation(IMFAudioMediaType* This,GUID guidRepresentation,LPVOID *ppvRepresentation) {
2626 return This->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation);
2627}
2628static FORCEINLINE HRESULT IMFAudioMediaType_FreeRepresentation(IMFAudioMediaType* This,GUID guidRepresentation,LPVOID pvRepresentation) {
2629 return This->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation);
2630}
2631/*** IMFAudioMediaType methods ***/
2632static FORCEINLINE const WAVEFORMATEX * IMFAudioMediaType_GetAudioFormat(IMFAudioMediaType* This) {
2633 return This->lpVtbl->GetAudioFormat(This);
2634}
2635#endif
2636#endif
2637
2638#endif
2639
2640
2641#endif /* __IMFAudioMediaType_INTERFACE_DEFINED__ */
2642
2643
2644#ifndef _WINGDI_
2645typedef DWORD RGBQUAD;
2646
2647typedef struct __WIDL_mfobjects_generated_name_00000028 {
2648 DWORD biSize;
2649 LONG biWidth;
2650 LONG biHeight;
2651 WORD biPlanes;
2652 WORD biBitCount;
2653 DWORD biCompression;
2654 DWORD biSizeImage;
2655 LONG biXPelsPerMeter;
2656 LONG biYPelsPerMeter;
2657 DWORD biClrUsed;
2658 DWORD biClrImportant;
2659} BITMAPINFOHEADER;
2660
2661typedef struct __WIDL_mfobjects_generated_name_00000029 {
2662 BITMAPINFOHEADER bmiHeader;
2663 RGBQUAD bmiColors[1];
2664} BITMAPINFO;
2665#endif
2666
2667typedef struct __WIDL_mfobjects_generated_name_0000002A {
2668 GUID guidMajorType;
2669 GUID guidSubtype;
2670} MFT_REGISTER_TYPE_INFO;
2671#endif
2672#ifndef _MFVIDEOFORMAT_
2673#define _MFVIDEOFORMAT_
2674
2675#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
2676typedef enum _MFVideoInterlaceMode {
2677 MFVideoInterlace_Unknown = 0,
2678 MFVideoInterlace_Progressive = 2,
2679 MFVideoInterlace_FieldInterleavedUpperFirst = 3,
2680 MFVideoInterlace_FieldInterleavedLowerFirst = 4,
2681 MFVideoInterlace_FieldSingleUpper = 5,
2682 MFVideoInterlace_FieldSingleLower = 6,
2683 MFVideoInterlace_MixedInterlaceOrProgressive = 7,
2684 MFVideoInterlace_Last = 8,
2685 MFVideoInterlace_ForceDWORD = 0x7fffffff
2686} MFVideoInterlaceMode;
2687
2688#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper
2689#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower
2690
2691typedef enum _MFVideoTransferFunction {
2692 MFVideoTransFunc_Unknown = 0,
2693 MFVideoTransFunc_10 = 1,
2694 MFVideoTransFunc_18 = 2,
2695 MFVideoTransFunc_20 = 3,
2696 MFVideoTransFunc_22 = 4,
2697 MFVideoTransFunc_709 = 5,
2698 MFVideoTransFunc_240M = 6,
2699 MFVideoTransFunc_sRGB = 7,
2700 MFVideoTransFunc_28 = 8,
2701 MFVideoTransFunc_Log_100 = 9,
2702 MFVideoTransFunc_Log_316 = 10,
2703 MFVideoTransFunc_709_sym = 11,
2704 MFVideoTransFunc_2020_const = 12,
2705 MFVideoTransFunc_2020 = 13,
2706 MFVideoTransFunc_26 = 14,
2707 MFVideoTransFunc_2084 = 15,
2708 MFVideoTransFunc_HLG = 16,
2709 MFVideoTransFunc_10_rel = 17,
2710 MFVideoTransFunc_Last = 18,
2711 MFVideoTransFunc_ForceDWORD = 0x7fffffff
2712} MFVideoTransferFunction;
2713
2714typedef enum _MFVideoPrimaries {
2715 MFVideoPrimaries_Unknown = 0,
2716 MFVideoPrimaries_reserved = 1,
2717 MFVideoPrimaries_BT709 = 2,
2718 MFVideoPrimaries_BT470_2_SysM = 3,
2719 MFVideoPrimaries_BT470_2_SysBG = 4,
2720 MFVideoPrimaries_SMPTE170M = 5,
2721 MFVideoPrimaries_SMPTE240M = 6,
2722 MFVideoPrimaries_EBU3213 = 7,
2723 MFVideoPrimaries_SMPTE_C = 8,
2724 MFVideoPrimaries_BT2020 = 9,
2725 MFVideoPrimaries_XYZ = 10,
2726 MFVideoPrimaries_DCI_P3 = 11,
2727 MFVideoPrimaries_ACES = 12,
2728 MFVideoPrimaries_Last = 13,
2729 MFVideoPrimaries_ForceDWORD = 0x7fffffff
2730} MFVideoPrimaries;
2731
2732typedef enum _MFVideoLighting {
2733 MFVideoLighting_Unknown = 0,
2734 MFVideoLighting_bright = 1,
2735 MFVideoLighting_office = 2,
2736 MFVideoLighting_dim = 3,
2737 MFVideoLighting_dark = 4,
2738 MFVideoLighting_Last = 5,
2739 MFVideoLighting_ForceDWORD = 0x7fffffff
2740} MFVideoLighting;
2741
2742typedef enum _MFVideoTransferMatrix {
2743 MFVideoTransferMatrix_Unknown = 0,
2744 MFVideoTransferMatrix_BT709 = 1,
2745 MFVideoTransferMatrix_BT601 = 2,
2746 MFVideoTransferMatrix_SMPTE240M = 3,
2747 MFVideoTransferMatrix_BT2020_10 = 4,
2748 MFVideoTransferMatrix_BT2020_12 = 5,
2749 MFVideoTransferMatrix_Last = 6,
2750 MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
2751} MFVideoTransferMatrix;
2752
2753typedef enum _MFVideoChromaSubsampling {
2754 MFVideoChromaSubsampling_Unknown = 0,
2755 MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
2756 MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
2757 MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
2758 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
2759 MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
2760 MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
2761 MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited,
2762 MFVideoChromaSubsampling_Cosited = (MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited) | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
2763 MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited + 1,
2764 MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
2765} MFVideoChromaSubsampling;
2766
2767typedef enum _MFNominalRange {
2768 MFNominalRange_Unknown = 0,
2769 MFNominalRange_Normal = 1,
2770 MFNominalRange_Wide = 2,
2771 MFNominalRange_0_255 = 1,
2772 MFNominalRange_16_235 = 2,
2773 MFNominalRange_48_208 = 3,
2774 MFNominalRange_64_127 = 4,
2775 MFNominalRange_Last = 5,
2776 MFNominalRange_ForceDWORD = 0x7fffffff
2777} MFNominalRange;
2778#endif
2779
2780#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2781typedef enum _MFVideoFlags {
2782 MFVideoFlag_PAD_TO_Mask = 0x1 | 0x2,
2783 MFVideoFlag_PAD_TO_None = 0 * 0x1,
2784 MFVideoFlag_PAD_TO_4x3 = 1 * 0x1,
2785 MFVideoFlag_PAD_TO_16x9 = 2 * 0x1,
2786 MFVideoFlag_SrcContentHintMask = (0x4 | 0x8) | 0x10,
2787 MFVideoFlag_SrcContentHintNone = 0 * 0x4,
2788 MFVideoFlag_SrcContentHint16x9 = 1 * 0x4,
2789 MFVideoFlag_SrcContentHint235_1 = 2 * 0x4,
2790 MFVideoFlag_AnalogProtected = 0x20,
2791 MFVideoFlag_DigitallyProtected = 0x40,
2792 MFVideoFlag_ProgressiveContent = 0x80,
2793 MFVideoFlag_FieldRepeatCountMask = (0x100 | 0x200) | 0x400,
2794 MFVideoFlag_FieldRepeatCountShift = 8,
2795 MFVideoFlag_ProgressiveSeqReset = 0x800,
2796 MFVideoFlag_PanScanEnabled = 0x20000,
2797 MFVideoFlag_LowerFieldFirst = 0x40000,
2798 MFVideoFlag_BottomUpLinearRep = 0x80000,
2799 MFVideoFlags_DXVASurface = 0x100000,
2800 MFVideoFlags_RenderTargetSurface = 0x400000,
2801 MFVideoFlags_ForceQWORD = 0x7fffffff
2802} MFVideoFlags;
2803#endif
2804
2805#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
2806typedef struct _MFRatio {
2807 DWORD Numerator;
2808 DWORD Denominator;
2809} MFRatio;
2810
2811typedef struct _MFOffset {
2812 WORD fract;
2813 short value;
2814} MFOffset;
2815typedef struct _MFVideoArea {
2816 MFOffset OffsetX;
2817 MFOffset OffsetY;
2818 SIZE Area;
2819} MFVideoArea;
2820#endif
2821
2822#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2823typedef struct _MFVideoInfo {
2824 DWORD dwWidth;
2825 DWORD dwHeight;
2826 MFRatio PixelAspectRatio;
2827 MFVideoChromaSubsampling SourceChromaSubsampling;
2828 MFVideoInterlaceMode InterlaceMode;
2829 MFVideoTransferFunction TransferFunction;
2830 MFVideoPrimaries ColorPrimaries;
2831 MFVideoTransferMatrix TransferMatrix;
2832 MFVideoLighting SourceLighting;
2833 MFRatio FramesPerSecond;
2834 MFNominalRange NominalRange;
2835 MFVideoArea GeometricAperture;
2836 MFVideoArea MinimumDisplayAperture;
2837 MFVideoArea PanScanAperture;
2838 UINT64 VideoFlags;
2839} MFVideoInfo;
2840#endif
2841
2842#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
2843typedef struct __MFAYUVSample {
2844 BYTE bCrValue;
2845 BYTE bCbValue;
2846 BYTE bYValue;
2847 BYTE bSampleAlpha8;
2848} MFAYUVSample;
2849
2850typedef struct _MFARGB {
2851 BYTE rgbBlue;
2852 BYTE rgbGreen;
2853 BYTE rgbRed;
2854 BYTE rgbAlpha;
2855} MFARGB;
2856
2857typedef union _MFPaletteEntry {
2858 MFARGB ARGB;
2859 MFAYUVSample AYCbCr;
2860} MFPaletteEntry;
2861#endif
2862
2863#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2864typedef struct _MFVideoSurfaceInfo {
2865 DWORD Format;
2866 DWORD PaletteEntries;
2867 MFPaletteEntry Palette[1];
2868} MFVideoSurfaceInfo;
2869
2870typedef struct _MFVideoCompressedInfo {
2871 LONGLONG AvgBitrate;
2872 LONGLONG AvgBitErrorRate;
2873 DWORD MaxKeyFrameSpacing;
2874} MFVideoCompressedInfo;
2875
2876typedef struct _MFVIDEOFORMAT {
2877 DWORD dwSize;
2878 MFVideoInfo videoInfo;
2879 GUID guidFormat;
2880 MFVideoCompressedInfo compressedInfo;
2881 MFVideoSurfaceInfo surfaceInfo;
2882} MFVIDEOFORMAT;
2883
2884typedef enum _MFStandardVideoFormat {
2885 MFStdVideoFormat_reserved = 0,
2886 MFStdVideoFormat_NTSC = 1,
2887 MFStdVideoFormat_PAL = 2,
2888 MFStdVideoFormat_DVD_NTSC = 3,
2889 MFStdVideoFormat_DVD_PAL = 4,
2890 MFStdVideoFormat_DV_PAL = 5,
2891 MFStdVideoFormat_DV_NTSC = 6,
2892 MFStdVideoFormat_ATSC_SD480i = 7,
2893 MFStdVideoFormat_ATSC_HD1080i = 8,
2894 MFStdVideoFormat_ATSC_HD720p = 9
2895} MFStandardVideoFormat;
2896#endif
2897#endif
2898
2899#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2900/*****************************************************************************
2901 * IMFVideoMediaType interface
2902 */
2903#ifndef __IMFVideoMediaType_INTERFACE_DEFINED__
2904#define __IMFVideoMediaType_INTERFACE_DEFINED__
2905
2906DEFINE_GUID(IID_IMFVideoMediaType, 0xb99f381f, 0xa8f9, 0x47a2, 0xa5,0xaf, 0xca,0x3a,0x22,0x5a,0x38,0x90);
2907#if defined(__cplusplus) && !defined(CINTERFACE)
2908MIDL_INTERFACE("b99f381f-a8f9-47a2-a5af-ca3a225a3890")
2909IMFVideoMediaType : public IMFMediaType
2910{
2911 virtual const MFVIDEOFORMAT * STDMETHODCALLTYPE GetVideoFormat(
2912 ) = 0;
2913
2914 virtual HRESULT STDMETHODCALLTYPE GetVideoRepresentation(
2915 GUID guidRepresentation,
2916 LPVOID *ppvRepresentation,
2917 LONG lStride) = 0;
2918
2919};
2920#ifdef __CRT_UUID_DECL
2921__CRT_UUID_DECL(IMFVideoMediaType, 0xb99f381f, 0xa8f9, 0x47a2, 0xa5,0xaf, 0xca,0x3a,0x22,0x5a,0x38,0x90)
2922#endif
2923#else
2924typedef struct IMFVideoMediaTypeVtbl {
2925 BEGIN_INTERFACE
2926
2927 /*** IUnknown methods ***/
2928 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2929 IMFVideoMediaType *This,
2930 REFIID riid,
2931 void **ppvObject);
2932
2933 ULONG (STDMETHODCALLTYPE *AddRef)(
2934 IMFVideoMediaType *This);
2935
2936 ULONG (STDMETHODCALLTYPE *Release)(
2937 IMFVideoMediaType *This);
2938
2939 /*** IMFAttributes methods ***/
2940 HRESULT (STDMETHODCALLTYPE *GetItem)(
2941 IMFVideoMediaType *This,
2942 REFGUID guidKey,
2943 PROPVARIANT *pValue);
2944
2945 HRESULT (STDMETHODCALLTYPE *GetItemType)(
2946 IMFVideoMediaType *This,
2947 REFGUID guidKey,
2948 MF_ATTRIBUTE_TYPE *pType);
2949
2950 HRESULT (STDMETHODCALLTYPE *CompareItem)(
2951 IMFVideoMediaType *This,
2952 REFGUID guidKey,
2953 REFPROPVARIANT Value,
2954 WINBOOL *pbResult);
2955
2956 HRESULT (STDMETHODCALLTYPE *Compare)(
2957 IMFVideoMediaType *This,
2958 IMFAttributes *pTheirs,
2959 MF_ATTRIBUTES_MATCH_TYPE MatchType,
2960 WINBOOL *pbResult);
2961
2962 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
2963 IMFVideoMediaType *This,
2964 REFGUID guidKey,
2965 UINT32 *punValue);
2966
2967 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
2968 IMFVideoMediaType *This,
2969 REFGUID guidKey,
2970 UINT64 *punValue);
2971
2972 HRESULT (STDMETHODCALLTYPE *GetDouble)(
2973 IMFVideoMediaType *This,
2974 REFGUID guidKey,
2975 double *pfValue);
2976
2977 HRESULT (STDMETHODCALLTYPE *GetGUID)(
2978 IMFVideoMediaType *This,
2979 REFGUID guidKey,
2980 GUID *pguidValue);
2981
2982 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
2983 IMFVideoMediaType *This,
2984 REFGUID guidKey,
2985 UINT32 *pcchLength);
2986
2987 HRESULT (STDMETHODCALLTYPE *GetString)(
2988 IMFVideoMediaType *This,
2989 REFGUID guidKey,
2990 LPWSTR pwszValue,
2991 UINT32 cchBufSize,
2992 UINT32 *pcchLength);
2993
2994 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
2995 IMFVideoMediaType *This,
2996 REFGUID guidKey,
2997 LPWSTR *ppwszValue,
2998 UINT32 *pcchLength);
2999
3000 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
3001 IMFVideoMediaType *This,
3002 REFGUID guidKey,
3003 UINT32 *pcbBlobSize);
3004
3005 HRESULT (STDMETHODCALLTYPE *GetBlob)(
3006 IMFVideoMediaType *This,
3007 REFGUID guidKey,
3008 UINT8 *pBuf,
3009 UINT32 cbBufSize,
3010 UINT32 *pcbBlobSize);
3011
3012 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
3013 IMFVideoMediaType *This,
3014 REFGUID guidKey,
3015 UINT8 **ppBuf,
3016 UINT32 *pcbSize);
3017
3018 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
3019 IMFVideoMediaType *This,
3020 REFGUID guidKey,
3021 REFIID riid,
3022 LPVOID *ppv);
3023
3024 HRESULT (STDMETHODCALLTYPE *SetItem)(
3025 IMFVideoMediaType *This,
3026 REFGUID guidKey,
3027 REFPROPVARIANT Value);
3028
3029 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
3030 IMFVideoMediaType *This,
3031 REFGUID guidKey);
3032
3033 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
3034 IMFVideoMediaType *This);
3035
3036 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
3037 IMFVideoMediaType *This,
3038 REFGUID guidKey,
3039 UINT32 unValue);
3040
3041 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
3042 IMFVideoMediaType *This,
3043 REFGUID guidKey,
3044 UINT64 unValue);
3045
3046 HRESULT (STDMETHODCALLTYPE *SetDouble)(
3047 IMFVideoMediaType *This,
3048 REFGUID guidKey,
3049 double fValue);
3050
3051 HRESULT (STDMETHODCALLTYPE *SetGUID)(
3052 IMFVideoMediaType *This,
3053 REFGUID guidKey,
3054 REFGUID guidValue);
3055
3056 HRESULT (STDMETHODCALLTYPE *SetString)(
3057 IMFVideoMediaType *This,
3058 REFGUID guidKey,
3059 LPCWSTR wszValue);
3060
3061 HRESULT (STDMETHODCALLTYPE *SetBlob)(
3062 IMFVideoMediaType *This,
3063 REFGUID guidKey,
3064 const UINT8 *pBuf,
3065 UINT32 cbBufSize);
3066
3067 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
3068 IMFVideoMediaType *This,
3069 REFGUID guidKey,
3070 IUnknown *pUnknown);
3071
3072 HRESULT (STDMETHODCALLTYPE *LockStore)(
3073 IMFVideoMediaType *This);
3074
3075 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
3076 IMFVideoMediaType *This);
3077
3078 HRESULT (STDMETHODCALLTYPE *GetCount)(
3079 IMFVideoMediaType *This,
3080 UINT32 *pcItems);
3081
3082 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
3083 IMFVideoMediaType *This,
3084 UINT32 unIndex,
3085 GUID *pguidKey,
3086 PROPVARIANT *pValue);
3087
3088 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
3089 IMFVideoMediaType *This,
3090 IMFAttributes *pDest);
3091
3092 /*** IMFMediaType methods ***/
3093 HRESULT (STDMETHODCALLTYPE *GetMajorType)(
3094 IMFVideoMediaType *This,
3095 GUID *pguidMajorType);
3096
3097 HRESULT (STDMETHODCALLTYPE *IsCompressedFormat)(
3098 IMFVideoMediaType *This,
3099 WINBOOL *pfCompressed);
3100
3101 HRESULT (STDMETHODCALLTYPE *IsEqual)(
3102 IMFVideoMediaType *This,
3103 IMFMediaType *pIMediaType,
3104 DWORD *pdwFlags);
3105
3106 HRESULT (STDMETHODCALLTYPE *GetRepresentation)(
3107 IMFVideoMediaType *This,
3108 GUID guidRepresentation,
3109 LPVOID *ppvRepresentation);
3110
3111 HRESULT (STDMETHODCALLTYPE *FreeRepresentation)(
3112 IMFVideoMediaType *This,
3113 GUID guidRepresentation,
3114 LPVOID pvRepresentation);
3115
3116 /*** IMFVideoMediaType methods ***/
3117 const MFVIDEOFORMAT * (STDMETHODCALLTYPE *GetVideoFormat)(
3118 IMFVideoMediaType *This);
3119
3120 HRESULT (STDMETHODCALLTYPE *GetVideoRepresentation)(
3121 IMFVideoMediaType *This,
3122 GUID guidRepresentation,
3123 LPVOID *ppvRepresentation,
3124 LONG lStride);
3125
3126 END_INTERFACE
3127} IMFVideoMediaTypeVtbl;
3128
3129interface IMFVideoMediaType {
3130 CONST_VTBL IMFVideoMediaTypeVtbl* lpVtbl;
3131};
3132
3133#ifdef COBJMACROS
3134#ifndef WIDL_C_INLINE_WRAPPERS
3135/*** IUnknown methods ***/
3136#define IMFVideoMediaType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3137#define IMFVideoMediaType_AddRef(This) (This)->lpVtbl->AddRef(This)
3138#define IMFVideoMediaType_Release(This) (This)->lpVtbl->Release(This)
3139/*** IMFAttributes methods ***/
3140#define IMFVideoMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
3141#define IMFVideoMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
3142#define IMFVideoMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
3143#define IMFVideoMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
3144#define IMFVideoMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
3145#define IMFVideoMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
3146#define IMFVideoMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
3147#define IMFVideoMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
3148#define IMFVideoMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
3149#define IMFVideoMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
3150#define IMFVideoMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
3151#define IMFVideoMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
3152#define IMFVideoMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
3153#define IMFVideoMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
3154#define IMFVideoMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
3155#define IMFVideoMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
3156#define IMFVideoMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
3157#define IMFVideoMediaType_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
3158#define IMFVideoMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
3159#define IMFVideoMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
3160#define IMFVideoMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
3161#define IMFVideoMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
3162#define IMFVideoMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
3163#define IMFVideoMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
3164#define IMFVideoMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
3165#define IMFVideoMediaType_LockStore(This) (This)->lpVtbl->LockStore(This)
3166#define IMFVideoMediaType_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
3167#define IMFVideoMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
3168#define IMFVideoMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
3169#define IMFVideoMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
3170/*** IMFMediaType methods ***/
3171#define IMFVideoMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
3172#define IMFVideoMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
3173#define IMFVideoMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
3174#define IMFVideoMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
3175#define IMFVideoMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
3176/*** IMFVideoMediaType methods ***/
3177#define IMFVideoMediaType_GetVideoFormat(This) (This)->lpVtbl->GetVideoFormat(This)
3178#define IMFVideoMediaType_GetVideoRepresentation(This,guidRepresentation,ppvRepresentation,lStride) (This)->lpVtbl->GetVideoRepresentation(This,guidRepresentation,ppvRepresentation,lStride)
3179#else
3180/*** IUnknown methods ***/
3181static FORCEINLINE HRESULT IMFVideoMediaType_QueryInterface(IMFVideoMediaType* This,REFIID riid,void **ppvObject) {
3182 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3183}
3184static FORCEINLINE ULONG IMFVideoMediaType_AddRef(IMFVideoMediaType* This) {
3185 return This->lpVtbl->AddRef(This);
3186}
3187static FORCEINLINE ULONG IMFVideoMediaType_Release(IMFVideoMediaType* This) {
3188 return This->lpVtbl->Release(This);
3189}
3190/*** IMFAttributes methods ***/
3191static FORCEINLINE HRESULT IMFVideoMediaType_GetItem(IMFVideoMediaType* This,REFGUID guidKey,PROPVARIANT *pValue) {
3192 return This->lpVtbl->GetItem(This,guidKey,pValue);
3193}
3194static FORCEINLINE HRESULT IMFVideoMediaType_GetItemType(IMFVideoMediaType* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
3195 return This->lpVtbl->GetItemType(This,guidKey,pType);
3196}
3197static FORCEINLINE HRESULT IMFVideoMediaType_CompareItem(IMFVideoMediaType* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
3198 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
3199}
3200static FORCEINLINE HRESULT IMFVideoMediaType_Compare(IMFVideoMediaType* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
3201 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
3202}
3203static FORCEINLINE HRESULT IMFVideoMediaType_GetUINT32(IMFVideoMediaType* This,REFGUID guidKey,UINT32 *punValue) {
3204 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
3205}
3206static FORCEINLINE HRESULT IMFVideoMediaType_GetUINT64(IMFVideoMediaType* This,REFGUID guidKey,UINT64 *punValue) {
3207 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
3208}
3209static FORCEINLINE HRESULT IMFVideoMediaType_GetDouble(IMFVideoMediaType* This,REFGUID guidKey,double *pfValue) {
3210 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
3211}
3212static FORCEINLINE HRESULT IMFVideoMediaType_GetGUID(IMFVideoMediaType* This,REFGUID guidKey,GUID *pguidValue) {
3213 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
3214}
3215static FORCEINLINE HRESULT IMFVideoMediaType_GetStringLength(IMFVideoMediaType* This,REFGUID guidKey,UINT32 *pcchLength) {
3216 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
3217}
3218static FORCEINLINE HRESULT IMFVideoMediaType_GetString(IMFVideoMediaType* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
3219 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
3220}
3221static FORCEINLINE HRESULT IMFVideoMediaType_GetAllocatedString(IMFVideoMediaType* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
3222 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
3223}
3224static FORCEINLINE HRESULT IMFVideoMediaType_GetBlobSize(IMFVideoMediaType* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
3225 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
3226}
3227static FORCEINLINE HRESULT IMFVideoMediaType_GetBlob(IMFVideoMediaType* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
3228 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
3229}
3230static FORCEINLINE HRESULT IMFVideoMediaType_GetAllocatedBlob(IMFVideoMediaType* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
3231 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
3232}
3233static FORCEINLINE HRESULT IMFVideoMediaType_GetUnknown(IMFVideoMediaType* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
3234 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
3235}
3236static FORCEINLINE HRESULT IMFVideoMediaType_SetItem(IMFVideoMediaType* This,REFGUID guidKey,REFPROPVARIANT Value) {
3237 return This->lpVtbl->SetItem(This,guidKey,Value);
3238}
3239static FORCEINLINE HRESULT IMFVideoMediaType_DeleteItem(IMFVideoMediaType* This,REFGUID guidKey) {
3240 return This->lpVtbl->DeleteItem(This,guidKey);
3241}
3242static FORCEINLINE HRESULT IMFVideoMediaType_DeleteAllItems(IMFVideoMediaType* This) {
3243 return This->lpVtbl->DeleteAllItems(This);
3244}
3245static FORCEINLINE HRESULT IMFVideoMediaType_SetUINT32(IMFVideoMediaType* This,REFGUID guidKey,UINT32 unValue) {
3246 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
3247}
3248static FORCEINLINE HRESULT IMFVideoMediaType_SetUINT64(IMFVideoMediaType* This,REFGUID guidKey,UINT64 unValue) {
3249 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
3250}
3251static FORCEINLINE HRESULT IMFVideoMediaType_SetDouble(IMFVideoMediaType* This,REFGUID guidKey,double fValue) {
3252 return This->lpVtbl->SetDouble(This,guidKey,fValue);
3253}
3254static FORCEINLINE HRESULT IMFVideoMediaType_SetGUID(IMFVideoMediaType* This,REFGUID guidKey,REFGUID guidValue) {
3255 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
3256}
3257static FORCEINLINE HRESULT IMFVideoMediaType_SetString(IMFVideoMediaType* This,REFGUID guidKey,LPCWSTR wszValue) {
3258 return This->lpVtbl->SetString(This,guidKey,wszValue);
3259}
3260static FORCEINLINE HRESULT IMFVideoMediaType_SetBlob(IMFVideoMediaType* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
3261 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
3262}
3263static FORCEINLINE HRESULT IMFVideoMediaType_SetUnknown(IMFVideoMediaType* This,REFGUID guidKey,IUnknown *pUnknown) {
3264 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
3265}
3266static FORCEINLINE HRESULT IMFVideoMediaType_LockStore(IMFVideoMediaType* This) {
3267 return This->lpVtbl->LockStore(This);
3268}
3269static FORCEINLINE HRESULT IMFVideoMediaType_UnlockStore(IMFVideoMediaType* This) {
3270 return This->lpVtbl->UnlockStore(This);
3271}
3272static FORCEINLINE HRESULT IMFVideoMediaType_GetCount(IMFVideoMediaType* This,UINT32 *pcItems) {
3273 return This->lpVtbl->GetCount(This,pcItems);
3274}
3275static FORCEINLINE HRESULT IMFVideoMediaType_GetItemByIndex(IMFVideoMediaType* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
3276 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
3277}
3278static FORCEINLINE HRESULT IMFVideoMediaType_CopyAllItems(IMFVideoMediaType* This,IMFAttributes *pDest) {
3279 return This->lpVtbl->CopyAllItems(This,pDest);
3280}
3281/*** IMFMediaType methods ***/
3282static FORCEINLINE HRESULT IMFVideoMediaType_GetMajorType(IMFVideoMediaType* This,GUID *pguidMajorType) {
3283 return This->lpVtbl->GetMajorType(This,pguidMajorType);
3284}
3285static FORCEINLINE HRESULT IMFVideoMediaType_IsCompressedFormat(IMFVideoMediaType* This,WINBOOL *pfCompressed) {
3286 return This->lpVtbl->IsCompressedFormat(This,pfCompressed);
3287}
3288static FORCEINLINE HRESULT IMFVideoMediaType_IsEqual(IMFVideoMediaType* This,IMFMediaType *pIMediaType,DWORD *pdwFlags) {
3289 return This->lpVtbl->IsEqual(This,pIMediaType,pdwFlags);
3290}
3291static FORCEINLINE HRESULT IMFVideoMediaType_GetRepresentation(IMFVideoMediaType* This,GUID guidRepresentation,LPVOID *ppvRepresentation) {
3292 return This->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation);
3293}
3294static FORCEINLINE HRESULT IMFVideoMediaType_FreeRepresentation(IMFVideoMediaType* This,GUID guidRepresentation,LPVOID pvRepresentation) {
3295 return This->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation);
3296}
3297/*** IMFVideoMediaType methods ***/
3298static FORCEINLINE const MFVIDEOFORMAT * IMFVideoMediaType_GetVideoFormat(IMFVideoMediaType* This) {
3299 return This->lpVtbl->GetVideoFormat(This);
3300}
3301static FORCEINLINE HRESULT IMFVideoMediaType_GetVideoRepresentation(IMFVideoMediaType* This,GUID guidRepresentation,LPVOID *ppvRepresentation,LONG lStride) {
3302 return This->lpVtbl->GetVideoRepresentation(This,guidRepresentation,ppvRepresentation,lStride);
3303}
3304#endif
3305#endif
3306
3307#endif
3308
3309
3310#endif /* __IMFVideoMediaType_INTERFACE_DEFINED__ */
3311
3312#endif
3313
3314#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3315/*****************************************************************************
3316 * IMFAsyncResult interface
3317 */
3318#ifndef __IMFAsyncResult_INTERFACE_DEFINED__
3319#define __IMFAsyncResult_INTERFACE_DEFINED__
3320
3321DEFINE_GUID(IID_IMFAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6);
3322#if defined(__cplusplus) && !defined(CINTERFACE)
3323MIDL_INTERFACE("ac6b7889-0740-4d51-8619-905994a55cc6")
3324IMFAsyncResult : public IUnknown
3325{
3326 virtual HRESULT STDMETHODCALLTYPE GetState(
3327 IUnknown **ppunkState) = 0;
3328
3329 virtual HRESULT STDMETHODCALLTYPE GetStatus(
3330 ) = 0;
3331
3332 virtual HRESULT STDMETHODCALLTYPE SetStatus(
3333 HRESULT hrStatus) = 0;
3334
3335 virtual HRESULT STDMETHODCALLTYPE GetObject(
3336 IUnknown **ppObject) = 0;
3337
3338 virtual IUnknown * STDMETHODCALLTYPE GetStateNoAddRef(
3339 ) = 0;
3340
3341};
3342#ifdef __CRT_UUID_DECL
3343__CRT_UUID_DECL(IMFAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6)
3344#endif
3345#else
3346typedef struct IMFAsyncResultVtbl {
3347 BEGIN_INTERFACE
3348
3349 /*** IUnknown methods ***/
3350 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3351 IMFAsyncResult *This,
3352 REFIID riid,
3353 void **ppvObject);
3354
3355 ULONG (STDMETHODCALLTYPE *AddRef)(
3356 IMFAsyncResult *This);
3357
3358 ULONG (STDMETHODCALLTYPE *Release)(
3359 IMFAsyncResult *This);
3360
3361 /*** IMFAsyncResult methods ***/
3362 HRESULT (STDMETHODCALLTYPE *GetState)(
3363 IMFAsyncResult *This,
3364 IUnknown **ppunkState);
3365
3366 HRESULT (STDMETHODCALLTYPE *GetStatus)(
3367 IMFAsyncResult *This);
3368
3369 HRESULT (STDMETHODCALLTYPE *SetStatus)(
3370 IMFAsyncResult *This,
3371 HRESULT hrStatus);
3372
3373 HRESULT (STDMETHODCALLTYPE *GetObject)(
3374 IMFAsyncResult *This,
3375 IUnknown **ppObject);
3376
3377 IUnknown * (STDMETHODCALLTYPE *GetStateNoAddRef)(
3378 IMFAsyncResult *This);
3379
3380 END_INTERFACE
3381} IMFAsyncResultVtbl;
3382
3383interface IMFAsyncResult {
3384 CONST_VTBL IMFAsyncResultVtbl* lpVtbl;
3385};
3386
3387#ifdef COBJMACROS
3388#ifndef WIDL_C_INLINE_WRAPPERS
3389/*** IUnknown methods ***/
3390#define IMFAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3391#define IMFAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
3392#define IMFAsyncResult_Release(This) (This)->lpVtbl->Release(This)
3393/*** IMFAsyncResult methods ***/
3394#define IMFAsyncResult_GetState(This,ppunkState) (This)->lpVtbl->GetState(This,ppunkState)
3395#define IMFAsyncResult_GetStatus(This) (This)->lpVtbl->GetStatus(This)
3396#define IMFAsyncResult_SetStatus(This,hrStatus) (This)->lpVtbl->SetStatus(This,hrStatus)
3397#define IMFAsyncResult_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject)
3398#define IMFAsyncResult_GetStateNoAddRef(This) (This)->lpVtbl->GetStateNoAddRef(This)
3399#else
3400/*** IUnknown methods ***/
3401static FORCEINLINE HRESULT IMFAsyncResult_QueryInterface(IMFAsyncResult* This,REFIID riid,void **ppvObject) {
3402 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3403}
3404static FORCEINLINE ULONG IMFAsyncResult_AddRef(IMFAsyncResult* This) {
3405 return This->lpVtbl->AddRef(This);
3406}
3407static FORCEINLINE ULONG IMFAsyncResult_Release(IMFAsyncResult* This) {
3408 return This->lpVtbl->Release(This);
3409}
3410/*** IMFAsyncResult methods ***/
3411static FORCEINLINE HRESULT IMFAsyncResult_GetState(IMFAsyncResult* This,IUnknown **ppunkState) {
3412 return This->lpVtbl->GetState(This,ppunkState);
3413}
3414static FORCEINLINE HRESULT IMFAsyncResult_GetStatus(IMFAsyncResult* This) {
3415 return This->lpVtbl->GetStatus(This);
3416}
3417static FORCEINLINE HRESULT IMFAsyncResult_SetStatus(IMFAsyncResult* This,HRESULT hrStatus) {
3418 return This->lpVtbl->SetStatus(This,hrStatus);
3419}
3420static FORCEINLINE HRESULT IMFAsyncResult_GetObject(IMFAsyncResult* This,IUnknown **ppObject) {
3421 return This->lpVtbl->GetObject(This,ppObject);
3422}
3423static FORCEINLINE IUnknown * IMFAsyncResult_GetStateNoAddRef(IMFAsyncResult* This) {
3424 return This->lpVtbl->GetStateNoAddRef(This);
3425}
3426#endif
3427#endif
3428
3429#endif
3430
3431
3432#endif /* __IMFAsyncResult_INTERFACE_DEFINED__ */
3433
3434
3435/*****************************************************************************
3436 * IMFAsyncCallback interface
3437 */
3438#ifndef __IMFAsyncCallback_INTERFACE_DEFINED__
3439#define __IMFAsyncCallback_INTERFACE_DEFINED__
3440
3441DEFINE_GUID(IID_IMFAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
3442#if defined(__cplusplus) && !defined(CINTERFACE)
3443MIDL_INTERFACE("a27003cf-2354-4f2a-8d6a-ab7cff15437e")
3444IMFAsyncCallback : public IUnknown
3445{
3446 virtual HRESULT STDMETHODCALLTYPE GetParameters(
3447 DWORD *pdwFlags,
3448 DWORD *pdwQueue) = 0;
3449
3450 virtual HRESULT STDMETHODCALLTYPE Invoke(
3451 IMFAsyncResult *pAsyncResult) = 0;
3452
3453};
3454#ifdef __CRT_UUID_DECL
3455__CRT_UUID_DECL(IMFAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
3456#endif
3457#else
3458typedef struct IMFAsyncCallbackVtbl {
3459 BEGIN_INTERFACE
3460
3461 /*** IUnknown methods ***/
3462 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3463 IMFAsyncCallback *This,
3464 REFIID riid,
3465 void **ppvObject);
3466
3467 ULONG (STDMETHODCALLTYPE *AddRef)(
3468 IMFAsyncCallback *This);
3469
3470 ULONG (STDMETHODCALLTYPE *Release)(
3471 IMFAsyncCallback *This);
3472
3473 /*** IMFAsyncCallback methods ***/
3474 HRESULT (STDMETHODCALLTYPE *GetParameters)(
3475 IMFAsyncCallback *This,
3476 DWORD *pdwFlags,
3477 DWORD *pdwQueue);
3478
3479 HRESULT (STDMETHODCALLTYPE *Invoke)(
3480 IMFAsyncCallback *This,
3481 IMFAsyncResult *pAsyncResult);
3482
3483 END_INTERFACE
3484} IMFAsyncCallbackVtbl;
3485
3486interface IMFAsyncCallback {
3487 CONST_VTBL IMFAsyncCallbackVtbl* lpVtbl;
3488};
3489
3490#ifdef COBJMACROS
3491#ifndef WIDL_C_INLINE_WRAPPERS
3492/*** IUnknown methods ***/
3493#define IMFAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3494#define IMFAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
3495#define IMFAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
3496/*** IMFAsyncCallback methods ***/
3497#define IMFAsyncCallback_GetParameters(This,pdwFlags,pdwQueue) (This)->lpVtbl->GetParameters(This,pdwFlags,pdwQueue)
3498#define IMFAsyncCallback_Invoke(This,pAsyncResult) (This)->lpVtbl->Invoke(This,pAsyncResult)
3499#else
3500/*** IUnknown methods ***/
3501static FORCEINLINE HRESULT IMFAsyncCallback_QueryInterface(IMFAsyncCallback* This,REFIID riid,void **ppvObject) {
3502 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3503}
3504static FORCEINLINE ULONG IMFAsyncCallback_AddRef(IMFAsyncCallback* This) {
3505 return This->lpVtbl->AddRef(This);
3506}
3507static FORCEINLINE ULONG IMFAsyncCallback_Release(IMFAsyncCallback* This) {
3508 return This->lpVtbl->Release(This);
3509}
3510/*** IMFAsyncCallback methods ***/
3511static FORCEINLINE HRESULT IMFAsyncCallback_GetParameters(IMFAsyncCallback* This,DWORD *pdwFlags,DWORD *pdwQueue) {
3512 return This->lpVtbl->GetParameters(This,pdwFlags,pdwQueue);
3513}
3514static FORCEINLINE HRESULT IMFAsyncCallback_Invoke(IMFAsyncCallback* This,IMFAsyncResult *pAsyncResult) {
3515 return This->lpVtbl->Invoke(This,pAsyncResult);
3516}
3517#endif
3518#endif
3519
3520#endif
3521
3522
3523#endif /* __IMFAsyncCallback_INTERFACE_DEFINED__ */
3524
3525#endif
3526
3527#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
3528/*****************************************************************************
3529 * IMFAsyncCallbackLogging interface
3530 */
3531#ifndef __IMFAsyncCallbackLogging_INTERFACE_DEFINED__
3532#define __IMFAsyncCallbackLogging_INTERFACE_DEFINED__
3533
3534DEFINE_GUID(IID_IMFAsyncCallbackLogging, 0xc7a4dca1, 0xf5f0, 0x47b6, 0xb9,0x2b, 0xbf,0x01,0x06,0xd2,0x57,0x91);
3535#if defined(__cplusplus) && !defined(CINTERFACE)
3536MIDL_INTERFACE("c7a4dca1-f5f0-47b6-b92b-bf0106d25791")
3537IMFAsyncCallbackLogging : public IMFAsyncCallback
3538{
3539 virtual void * STDMETHODCALLTYPE GetObjectPointer(
3540 ) = 0;
3541
3542 virtual DWORD STDMETHODCALLTYPE GetObjectTag(
3543 ) = 0;
3544
3545};
3546#ifdef __CRT_UUID_DECL
3547__CRT_UUID_DECL(IMFAsyncCallbackLogging, 0xc7a4dca1, 0xf5f0, 0x47b6, 0xb9,0x2b, 0xbf,0x01,0x06,0xd2,0x57,0x91)
3548#endif
3549#else
3550typedef struct IMFAsyncCallbackLoggingVtbl {
3551 BEGIN_INTERFACE
3552
3553 /*** IUnknown methods ***/
3554 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3555 IMFAsyncCallbackLogging *This,
3556 REFIID riid,
3557 void **ppvObject);
3558
3559 ULONG (STDMETHODCALLTYPE *AddRef)(
3560 IMFAsyncCallbackLogging *This);
3561
3562 ULONG (STDMETHODCALLTYPE *Release)(
3563 IMFAsyncCallbackLogging *This);
3564
3565 /*** IMFAsyncCallback methods ***/
3566 HRESULT (STDMETHODCALLTYPE *GetParameters)(
3567 IMFAsyncCallbackLogging *This,
3568 DWORD *pdwFlags,
3569 DWORD *pdwQueue);
3570
3571 HRESULT (STDMETHODCALLTYPE *Invoke)(
3572 IMFAsyncCallbackLogging *This,
3573 IMFAsyncResult *pAsyncResult);
3574
3575 /*** IMFAsyncCallbackLogging methods ***/
3576 void * (STDMETHODCALLTYPE *GetObjectPointer)(
3577 IMFAsyncCallbackLogging *This);
3578
3579 DWORD (STDMETHODCALLTYPE *GetObjectTag)(
3580 IMFAsyncCallbackLogging *This);
3581
3582 END_INTERFACE
3583} IMFAsyncCallbackLoggingVtbl;
3584
3585interface IMFAsyncCallbackLogging {
3586 CONST_VTBL IMFAsyncCallbackLoggingVtbl* lpVtbl;
3587};
3588
3589#ifdef COBJMACROS
3590#ifndef WIDL_C_INLINE_WRAPPERS
3591/*** IUnknown methods ***/
3592#define IMFAsyncCallbackLogging_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3593#define IMFAsyncCallbackLogging_AddRef(This) (This)->lpVtbl->AddRef(This)
3594#define IMFAsyncCallbackLogging_Release(This) (This)->lpVtbl->Release(This)
3595/*** IMFAsyncCallback methods ***/
3596#define IMFAsyncCallbackLogging_GetParameters(This,pdwFlags,pdwQueue) (This)->lpVtbl->GetParameters(This,pdwFlags,pdwQueue)
3597#define IMFAsyncCallbackLogging_Invoke(This,pAsyncResult) (This)->lpVtbl->Invoke(This,pAsyncResult)
3598/*** IMFAsyncCallbackLogging methods ***/
3599#define IMFAsyncCallbackLogging_GetObjectPointer(This) (This)->lpVtbl->GetObjectPointer(This)
3600#define IMFAsyncCallbackLogging_GetObjectTag(This) (This)->lpVtbl->GetObjectTag(This)
3601#else
3602/*** IUnknown methods ***/
3603static FORCEINLINE HRESULT IMFAsyncCallbackLogging_QueryInterface(IMFAsyncCallbackLogging* This,REFIID riid,void **ppvObject) {
3604 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3605}
3606static FORCEINLINE ULONG IMFAsyncCallbackLogging_AddRef(IMFAsyncCallbackLogging* This) {
3607 return This->lpVtbl->AddRef(This);
3608}
3609static FORCEINLINE ULONG IMFAsyncCallbackLogging_Release(IMFAsyncCallbackLogging* This) {
3610 return This->lpVtbl->Release(This);
3611}
3612/*** IMFAsyncCallback methods ***/
3613static FORCEINLINE HRESULT IMFAsyncCallbackLogging_GetParameters(IMFAsyncCallbackLogging* This,DWORD *pdwFlags,DWORD *pdwQueue) {
3614 return This->lpVtbl->GetParameters(This,pdwFlags,pdwQueue);
3615}
3616static FORCEINLINE HRESULT IMFAsyncCallbackLogging_Invoke(IMFAsyncCallbackLogging* This,IMFAsyncResult *pAsyncResult) {
3617 return This->lpVtbl->Invoke(This,pAsyncResult);
3618}
3619/*** IMFAsyncCallbackLogging methods ***/
3620static FORCEINLINE void * IMFAsyncCallbackLogging_GetObjectPointer(IMFAsyncCallbackLogging* This) {
3621 return This->lpVtbl->GetObjectPointer(This);
3622}
3623static FORCEINLINE DWORD IMFAsyncCallbackLogging_GetObjectTag(IMFAsyncCallbackLogging* This) {
3624 return This->lpVtbl->GetObjectTag(This);
3625}
3626#endif
3627#endif
3628
3629#endif
3630
3631
3632#endif /* __IMFAsyncCallbackLogging_INTERFACE_DEFINED__ */
3633
3634#endif
3635
3636#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
3637#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001
3638#define MFASYNC_SIGNAL_CALLBACK 0x00000002
3639#define MFASYNC_BLOCKING_CALLBACK 0x00000004
3640#define MFASYNC_REPLY_CALLBACK 0x00000008
3641#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010
3642
3643#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000
3644#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001
3645#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002
3646#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003
3647#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004
3648#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005
3649#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007
3650#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000
3651#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF
3652
3653enum {
3654 MEUnknown = 0,
3655 MEError = 1,
3656 MEExtendedType = 2,
3657 MENonFatalError = 3,
3658 MEGenericV1Anchor = MENonFatalError,
3659 MESessionUnknown = 100,
3660 MESessionTopologySet = 101,
3661 MESessionTopologiesCleared = 102,
3662 MESessionStarted = 103,
3663 MESessionPaused = 104,
3664 MESessionStopped = 105,
3665 MESessionClosed = 106,
3666 MESessionEnded = 107,
3667 MESessionRateChanged = 108,
3668 MESessionScrubSampleComplete = 109,
3669 MESessionCapabilitiesChanged = 110,
3670 MESessionTopologyStatus = 111,
3671 MESessionNotifyPresentationTime = 112,
3672 MENewPresentation = 113,
3673 MELicenseAcquisitionStart = 114,
3674 MELicenseAcquisitionCompleted = 115,
3675 MEIndividualizationStart = 116,
3676 MEIndividualizationCompleted = 117,
3677 MEEnablerProgress = 118,
3678 MEEnablerCompleted = 119,
3679 MEPolicyError = 120,
3680 MEPolicyReport = 121,
3681 MEBufferingStarted = 122,
3682 MEBufferingStopped = 123,
3683 MEConnectStart = 124,
3684 MEConnectEnd = 125,
3685 MEReconnectStart = 126,
3686 MEReconnectEnd = 127,
3687 MERendererEvent = 128,
3688 MESessionStreamSinkFormatChanged = 129,
3689 MESessionV1Anchor = MESessionStreamSinkFormatChanged,
3690 MESourceUnknown = 200,
3691 MESourceStarted = 201,
3692 MEStreamStarted = 202,
3693 MESourceSeeked = 203,
3694 MEStreamSeeked = 204,
3695 MENewStream = 205,
3696 MEUpdatedStream = 206,
3697 MESourceStopped = 207,
3698 MEStreamStopped = 208,
3699 MESourcePaused = 209,
3700 MEStreamPaused = 210,
3701 MEEndOfPresentation = 211,
3702 MEEndOfStream = 212,
3703 MEMediaSample = 213,
3704 MEStreamTick = 214,
3705 MEStreamThinMode = 215,
3706 MEStreamFormatChanged = 216,
3707 MESourceRateChanged = 217,
3708 MEEndOfPresentationSegment = 218,
3709 MESourceCharacteristicsChanged = 219,
3710 MESourceRateChangeRequested = 220,
3711 MESourceMetadataChanged = 221,
3712 MESequencerSourceTopologyUpdated = 222,
3713 MESourceV1Anchor = MESequencerSourceTopologyUpdated,
3714 MESinkUnknown = 300,
3715 MEStreamSinkStarted = 301,
3716 MEStreamSinkStopped = 302,
3717 MEStreamSinkPaused = 303,
3718 MEStreamSinkRateChanged = 304,
3719 MEStreamSinkRequestSample = 305,
3720 MEStreamSinkMarker = 306,
3721 MEStreamSinkPrerolled = 307,
3722 MEStreamSinkScrubSampleComplete = 308,
3723 MEStreamSinkFormatChanged = 309,
3724 MEStreamSinkDeviceChanged = 310,
3725 MEQualityNotify = 311,
3726 MESinkInvalidated = 312,
3727 MEAudioSessionNameChanged = 313,
3728 MEAudioSessionVolumeChanged = 314,
3729 MEAudioSessionDeviceRemoved = 315,
3730 MEAudioSessionServerShutdown = 316,
3731 MEAudioSessionGroupingParamChanged = 317,
3732 MEAudioSessionIconChanged = 318,
3733 MEAudioSessionFormatChanged = 319,
3734 MEAudioSessionDisconnected = 320,
3735 MEAudioSessionExclusiveModeOverride = 321,
3736 MESinkV1Anchor = MEAudioSessionExclusiveModeOverride,
3737 MECaptureAudioSessionVolumeChanged = 322,
3738 MECaptureAudioSessionDeviceRemoved = 323,
3739 MECaptureAudioSessionFormatChanged = 324,
3740 MECaptureAudioSessionDisconnected = 325,
3741 MECaptureAudioSessionExclusiveModeOverride = 326,
3742 MECaptureAudioSessionServerShutdown = 327,
3743 MESinkV2Anchor = MECaptureAudioSessionServerShutdown,
3744 METrustUnknown = 400,
3745 MEPolicyChanged = 401,
3746 MEContentProtectionMessage = 402,
3747 MEPolicySet = 403,
3748 METrustV1Anchor = MEPolicySet,
3749 MEWMDRMLicenseBackupCompleted = 500,
3750 MEWMDRMLicenseBackupProgress = 501,
3751 MEWMDRMLicenseRestoreCompleted = 502,
3752 MEWMDRMLicenseRestoreProgress = 503,
3753 MEWMDRMLicenseAcquisitionCompleted = 506,
3754 MEWMDRMIndividualizationCompleted = 508,
3755 MEWMDRMIndividualizationProgress = 513,
3756 MEWMDRMProximityCompleted = 514,
3757 MEWMDRMLicenseStoreCleaned = 515,
3758 MEWMDRMRevocationDownloadCompleted = 516,
3759 MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted,
3760 METransformUnknown = 600,
3761 METransformNeedInput = 601,
3762 METransformHaveOutput = 602,
3763 METransformDrainComplete = 603,
3764 METransformMarker = 604,
3765 METransformInputStreamStateChanged = 605,
3766 MEByteStreamCharacteristicsChanged = 700,
3767 MEVideoCaptureDeviceRemoved = 800,
3768 MEVideoCaptureDevicePreempted = 801,
3769 MEStreamSinkFormatInvalidated = 802,
3770 MEEncodingParameters = 803,
3771 MEContentProtectionMetadata = 900,
3772 MEDeviceThermalStateChanged = 950,
3773 MEReservedMax = 10000
3774};
3775
3776typedef DWORD MediaEventType;
3777
3778/*****************************************************************************
3779 * IMFMediaEvent interface
3780 */
3781#ifndef __IMFMediaEvent_INTERFACE_DEFINED__
3782#define __IMFMediaEvent_INTERFACE_DEFINED__
3783
3784DEFINE_GUID(IID_IMFMediaEvent, 0xdf598932, 0xf10c, 0x4e39, 0xbb,0xa2, 0xc3,0x08,0xf1,0x01,0xda,0xa3);
3785#if defined(__cplusplus) && !defined(CINTERFACE)
3786MIDL_INTERFACE("df598932-f10c-4e39-bba2-c308f101daa3")
3787IMFMediaEvent : public IMFAttributes
3788{
3789 virtual HRESULT STDMETHODCALLTYPE GetType(
3790 MediaEventType *pmet) = 0;
3791
3792 virtual HRESULT STDMETHODCALLTYPE GetExtendedType(
3793 GUID *pguidExtendedType) = 0;
3794
3795 virtual HRESULT STDMETHODCALLTYPE GetStatus(
3796 HRESULT *phrStatus) = 0;
3797
3798 virtual HRESULT STDMETHODCALLTYPE GetValue(
3799 PROPVARIANT *pvValue) = 0;
3800
3801};
3802#ifdef __CRT_UUID_DECL
3803__CRT_UUID_DECL(IMFMediaEvent, 0xdf598932, 0xf10c, 0x4e39, 0xbb,0xa2, 0xc3,0x08,0xf1,0x01,0xda,0xa3)
3804#endif
3805#else
3806typedef struct IMFMediaEventVtbl {
3807 BEGIN_INTERFACE
3808
3809 /*** IUnknown methods ***/
3810 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3811 IMFMediaEvent *This,
3812 REFIID riid,
3813 void **ppvObject);
3814
3815 ULONG (STDMETHODCALLTYPE *AddRef)(
3816 IMFMediaEvent *This);
3817
3818 ULONG (STDMETHODCALLTYPE *Release)(
3819 IMFMediaEvent *This);
3820
3821 /*** IMFAttributes methods ***/
3822 HRESULT (STDMETHODCALLTYPE *GetItem)(
3823 IMFMediaEvent *This,
3824 REFGUID guidKey,
3825 PROPVARIANT *pValue);
3826
3827 HRESULT (STDMETHODCALLTYPE *GetItemType)(
3828 IMFMediaEvent *This,
3829 REFGUID guidKey,
3830 MF_ATTRIBUTE_TYPE *pType);
3831
3832 HRESULT (STDMETHODCALLTYPE *CompareItem)(
3833 IMFMediaEvent *This,
3834 REFGUID guidKey,
3835 REFPROPVARIANT Value,
3836 WINBOOL *pbResult);
3837
3838 HRESULT (STDMETHODCALLTYPE *Compare)(
3839 IMFMediaEvent *This,
3840 IMFAttributes *pTheirs,
3841 MF_ATTRIBUTES_MATCH_TYPE MatchType,
3842 WINBOOL *pbResult);
3843
3844 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
3845 IMFMediaEvent *This,
3846 REFGUID guidKey,
3847 UINT32 *punValue);
3848
3849 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
3850 IMFMediaEvent *This,
3851 REFGUID guidKey,
3852 UINT64 *punValue);
3853
3854 HRESULT (STDMETHODCALLTYPE *GetDouble)(
3855 IMFMediaEvent *This,
3856 REFGUID guidKey,
3857 double *pfValue);
3858
3859 HRESULT (STDMETHODCALLTYPE *GetGUID)(
3860 IMFMediaEvent *This,
3861 REFGUID guidKey,
3862 GUID *pguidValue);
3863
3864 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
3865 IMFMediaEvent *This,
3866 REFGUID guidKey,
3867 UINT32 *pcchLength);
3868
3869 HRESULT (STDMETHODCALLTYPE *GetString)(
3870 IMFMediaEvent *This,
3871 REFGUID guidKey,
3872 LPWSTR pwszValue,
3873 UINT32 cchBufSize,
3874 UINT32 *pcchLength);
3875
3876 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
3877 IMFMediaEvent *This,
3878 REFGUID guidKey,
3879 LPWSTR *ppwszValue,
3880 UINT32 *pcchLength);
3881
3882 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
3883 IMFMediaEvent *This,
3884 REFGUID guidKey,
3885 UINT32 *pcbBlobSize);
3886
3887 HRESULT (STDMETHODCALLTYPE *GetBlob)(
3888 IMFMediaEvent *This,
3889 REFGUID guidKey,
3890 UINT8 *pBuf,
3891 UINT32 cbBufSize,
3892 UINT32 *pcbBlobSize);
3893
3894 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
3895 IMFMediaEvent *This,
3896 REFGUID guidKey,
3897 UINT8 **ppBuf,
3898 UINT32 *pcbSize);
3899
3900 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
3901 IMFMediaEvent *This,
3902 REFGUID guidKey,
3903 REFIID riid,
3904 LPVOID *ppv);
3905
3906 HRESULT (STDMETHODCALLTYPE *SetItem)(
3907 IMFMediaEvent *This,
3908 REFGUID guidKey,
3909 REFPROPVARIANT Value);
3910
3911 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
3912 IMFMediaEvent *This,
3913 REFGUID guidKey);
3914
3915 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
3916 IMFMediaEvent *This);
3917
3918 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
3919 IMFMediaEvent *This,
3920 REFGUID guidKey,
3921 UINT32 unValue);
3922
3923 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
3924 IMFMediaEvent *This,
3925 REFGUID guidKey,
3926 UINT64 unValue);
3927
3928 HRESULT (STDMETHODCALLTYPE *SetDouble)(
3929 IMFMediaEvent *This,
3930 REFGUID guidKey,
3931 double fValue);
3932
3933 HRESULT (STDMETHODCALLTYPE *SetGUID)(
3934 IMFMediaEvent *This,
3935 REFGUID guidKey,
3936 REFGUID guidValue);
3937
3938 HRESULT (STDMETHODCALLTYPE *SetString)(
3939 IMFMediaEvent *This,
3940 REFGUID guidKey,
3941 LPCWSTR wszValue);
3942
3943 HRESULT (STDMETHODCALLTYPE *SetBlob)(
3944 IMFMediaEvent *This,
3945 REFGUID guidKey,
3946 const UINT8 *pBuf,
3947 UINT32 cbBufSize);
3948
3949 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
3950 IMFMediaEvent *This,
3951 REFGUID guidKey,
3952 IUnknown *pUnknown);
3953
3954 HRESULT (STDMETHODCALLTYPE *LockStore)(
3955 IMFMediaEvent *This);
3956
3957 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
3958 IMFMediaEvent *This);
3959
3960 HRESULT (STDMETHODCALLTYPE *GetCount)(
3961 IMFMediaEvent *This,
3962 UINT32 *pcItems);
3963
3964 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
3965 IMFMediaEvent *This,
3966 UINT32 unIndex,
3967 GUID *pguidKey,
3968 PROPVARIANT *pValue);
3969
3970 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
3971 IMFMediaEvent *This,
3972 IMFAttributes *pDest);
3973
3974 /*** IMFMediaEvent methods ***/
3975 HRESULT (STDMETHODCALLTYPE *GetType)(
3976 IMFMediaEvent *This,
3977 MediaEventType *pmet);
3978
3979 HRESULT (STDMETHODCALLTYPE *GetExtendedType)(
3980 IMFMediaEvent *This,
3981 GUID *pguidExtendedType);
3982
3983 HRESULT (STDMETHODCALLTYPE *GetStatus)(
3984 IMFMediaEvent *This,
3985 HRESULT *phrStatus);
3986
3987 HRESULT (STDMETHODCALLTYPE *GetValue)(
3988 IMFMediaEvent *This,
3989 PROPVARIANT *pvValue);
3990
3991 END_INTERFACE
3992} IMFMediaEventVtbl;
3993
3994interface IMFMediaEvent {
3995 CONST_VTBL IMFMediaEventVtbl* lpVtbl;
3996};
3997
3998#ifdef COBJMACROS
3999#ifndef WIDL_C_INLINE_WRAPPERS
4000/*** IUnknown methods ***/
4001#define IMFMediaEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4002#define IMFMediaEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
4003#define IMFMediaEvent_Release(This) (This)->lpVtbl->Release(This)
4004/*** IMFAttributes methods ***/
4005#define IMFMediaEvent_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
4006#define IMFMediaEvent_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
4007#define IMFMediaEvent_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
4008#define IMFMediaEvent_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
4009#define IMFMediaEvent_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
4010#define IMFMediaEvent_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
4011#define IMFMediaEvent_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
4012#define IMFMediaEvent_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
4013#define IMFMediaEvent_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
4014#define IMFMediaEvent_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
4015#define IMFMediaEvent_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
4016#define IMFMediaEvent_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
4017#define IMFMediaEvent_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
4018#define IMFMediaEvent_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
4019#define IMFMediaEvent_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
4020#define IMFMediaEvent_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
4021#define IMFMediaEvent_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
4022#define IMFMediaEvent_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
4023#define IMFMediaEvent_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
4024#define IMFMediaEvent_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
4025#define IMFMediaEvent_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
4026#define IMFMediaEvent_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
4027#define IMFMediaEvent_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
4028#define IMFMediaEvent_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
4029#define IMFMediaEvent_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
4030#define IMFMediaEvent_LockStore(This) (This)->lpVtbl->LockStore(This)
4031#define IMFMediaEvent_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
4032#define IMFMediaEvent_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
4033#define IMFMediaEvent_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
4034#define IMFMediaEvent_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
4035/*** IMFMediaEvent methods ***/
4036#define IMFMediaEvent_GetType(This,pmet) (This)->lpVtbl->GetType(This,pmet)
4037#define IMFMediaEvent_GetExtendedType(This,pguidExtendedType) (This)->lpVtbl->GetExtendedType(This,pguidExtendedType)
4038#define IMFMediaEvent_GetStatus(This,phrStatus) (This)->lpVtbl->GetStatus(This,phrStatus)
4039#define IMFMediaEvent_GetValue(This,pvValue) (This)->lpVtbl->GetValue(This,pvValue)
4040#else
4041/*** IUnknown methods ***/
4042static FORCEINLINE HRESULT IMFMediaEvent_QueryInterface(IMFMediaEvent* This,REFIID riid,void **ppvObject) {
4043 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4044}
4045static FORCEINLINE ULONG IMFMediaEvent_AddRef(IMFMediaEvent* This) {
4046 return This->lpVtbl->AddRef(This);
4047}
4048static FORCEINLINE ULONG IMFMediaEvent_Release(IMFMediaEvent* This) {
4049 return This->lpVtbl->Release(This);
4050}
4051/*** IMFAttributes methods ***/
4052static FORCEINLINE HRESULT IMFMediaEvent_GetItem(IMFMediaEvent* This,REFGUID guidKey,PROPVARIANT *pValue) {
4053 return This->lpVtbl->GetItem(This,guidKey,pValue);
4054}
4055static FORCEINLINE HRESULT IMFMediaEvent_GetItemType(IMFMediaEvent* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
4056 return This->lpVtbl->GetItemType(This,guidKey,pType);
4057}
4058static FORCEINLINE HRESULT IMFMediaEvent_CompareItem(IMFMediaEvent* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
4059 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
4060}
4061static FORCEINLINE HRESULT IMFMediaEvent_Compare(IMFMediaEvent* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
4062 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
4063}
4064static FORCEINLINE HRESULT IMFMediaEvent_GetUINT32(IMFMediaEvent* This,REFGUID guidKey,UINT32 *punValue) {
4065 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
4066}
4067static FORCEINLINE HRESULT IMFMediaEvent_GetUINT64(IMFMediaEvent* This,REFGUID guidKey,UINT64 *punValue) {
4068 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
4069}
4070static FORCEINLINE HRESULT IMFMediaEvent_GetDouble(IMFMediaEvent* This,REFGUID guidKey,double *pfValue) {
4071 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
4072}
4073static FORCEINLINE HRESULT IMFMediaEvent_GetGUID(IMFMediaEvent* This,REFGUID guidKey,GUID *pguidValue) {
4074 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
4075}
4076static FORCEINLINE HRESULT IMFMediaEvent_GetStringLength(IMFMediaEvent* This,REFGUID guidKey,UINT32 *pcchLength) {
4077 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
4078}
4079static FORCEINLINE HRESULT IMFMediaEvent_GetString(IMFMediaEvent* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
4080 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
4081}
4082static FORCEINLINE HRESULT IMFMediaEvent_GetAllocatedString(IMFMediaEvent* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
4083 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
4084}
4085static FORCEINLINE HRESULT IMFMediaEvent_GetBlobSize(IMFMediaEvent* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
4086 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
4087}
4088static FORCEINLINE HRESULT IMFMediaEvent_GetBlob(IMFMediaEvent* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
4089 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
4090}
4091static FORCEINLINE HRESULT IMFMediaEvent_GetAllocatedBlob(IMFMediaEvent* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
4092 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
4093}
4094static FORCEINLINE HRESULT IMFMediaEvent_GetUnknown(IMFMediaEvent* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
4095 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
4096}
4097static FORCEINLINE HRESULT IMFMediaEvent_SetItem(IMFMediaEvent* This,REFGUID guidKey,REFPROPVARIANT Value) {
4098 return This->lpVtbl->SetItem(This,guidKey,Value);
4099}
4100static FORCEINLINE HRESULT IMFMediaEvent_DeleteItem(IMFMediaEvent* This,REFGUID guidKey) {
4101 return This->lpVtbl->DeleteItem(This,guidKey);
4102}
4103static FORCEINLINE HRESULT IMFMediaEvent_DeleteAllItems(IMFMediaEvent* This) {
4104 return This->lpVtbl->DeleteAllItems(This);
4105}
4106static FORCEINLINE HRESULT IMFMediaEvent_SetUINT32(IMFMediaEvent* This,REFGUID guidKey,UINT32 unValue) {
4107 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
4108}
4109static FORCEINLINE HRESULT IMFMediaEvent_SetUINT64(IMFMediaEvent* This,REFGUID guidKey,UINT64 unValue) {
4110 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
4111}
4112static FORCEINLINE HRESULT IMFMediaEvent_SetDouble(IMFMediaEvent* This,REFGUID guidKey,double fValue) {
4113 return This->lpVtbl->SetDouble(This,guidKey,fValue);
4114}
4115static FORCEINLINE HRESULT IMFMediaEvent_SetGUID(IMFMediaEvent* This,REFGUID guidKey,REFGUID guidValue) {
4116 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
4117}
4118static FORCEINLINE HRESULT IMFMediaEvent_SetString(IMFMediaEvent* This,REFGUID guidKey,LPCWSTR wszValue) {
4119 return This->lpVtbl->SetString(This,guidKey,wszValue);
4120}
4121static FORCEINLINE HRESULT IMFMediaEvent_SetBlob(IMFMediaEvent* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
4122 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
4123}
4124static FORCEINLINE HRESULT IMFMediaEvent_SetUnknown(IMFMediaEvent* This,REFGUID guidKey,IUnknown *pUnknown) {
4125 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
4126}
4127static FORCEINLINE HRESULT IMFMediaEvent_LockStore(IMFMediaEvent* This) {
4128 return This->lpVtbl->LockStore(This);
4129}
4130static FORCEINLINE HRESULT IMFMediaEvent_UnlockStore(IMFMediaEvent* This) {
4131 return This->lpVtbl->UnlockStore(This);
4132}
4133static FORCEINLINE HRESULT IMFMediaEvent_GetCount(IMFMediaEvent* This,UINT32 *pcItems) {
4134 return This->lpVtbl->GetCount(This,pcItems);
4135}
4136static FORCEINLINE HRESULT IMFMediaEvent_GetItemByIndex(IMFMediaEvent* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
4137 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
4138}
4139static FORCEINLINE HRESULT IMFMediaEvent_CopyAllItems(IMFMediaEvent* This,IMFAttributes *pDest) {
4140 return This->lpVtbl->CopyAllItems(This,pDest);
4141}
4142/*** IMFMediaEvent methods ***/
4143static FORCEINLINE HRESULT IMFMediaEvent_GetType(IMFMediaEvent* This,MediaEventType *pmet) {
4144 return This->lpVtbl->GetType(This,pmet);
4145}
4146static FORCEINLINE HRESULT IMFMediaEvent_GetExtendedType(IMFMediaEvent* This,GUID *pguidExtendedType) {
4147 return This->lpVtbl->GetExtendedType(This,pguidExtendedType);
4148}
4149static FORCEINLINE HRESULT IMFMediaEvent_GetStatus(IMFMediaEvent* This,HRESULT *phrStatus) {
4150 return This->lpVtbl->GetStatus(This,phrStatus);
4151}
4152static FORCEINLINE HRESULT IMFMediaEvent_GetValue(IMFMediaEvent* This,PROPVARIANT *pvValue) {
4153 return This->lpVtbl->GetValue(This,pvValue);
4154}
4155#endif
4156#endif
4157
4158#endif
4159
4160
4161#endif /* __IMFMediaEvent_INTERFACE_DEFINED__ */
4162
4163
4164#define MF_EVENT_FLAG_NO_WAIT 0x00000001
4165
4166#ifndef __IMFRemoteAsyncCallback_FWD_DEFINED__
4167#define __IMFRemoteAsyncCallback_FWD_DEFINED__
4168typedef interface IMFRemoteAsyncCallback IMFRemoteAsyncCallback;
4169#ifdef __cplusplus
4170interface IMFRemoteAsyncCallback;
4171#endif /* __cplusplus */
4172#endif
4173
4174
4175/*****************************************************************************
4176 * IMFMediaEventGenerator interface
4177 */
4178#ifndef __IMFMediaEventGenerator_INTERFACE_DEFINED__
4179#define __IMFMediaEventGenerator_INTERFACE_DEFINED__
4180
4181DEFINE_GUID(IID_IMFMediaEventGenerator, 0x2cd0bd52, 0xbcd5, 0x4b89, 0xb6,0x2c, 0xea,0xdc,0x0c,0x03,0x1e,0x7d);
4182#if defined(__cplusplus) && !defined(CINTERFACE)
4183MIDL_INTERFACE("2cd0bd52-bcd5-4b89-b62c-eadc0c031e7d")
4184IMFMediaEventGenerator : public IUnknown
4185{
4186 virtual HRESULT STDMETHODCALLTYPE GetEvent(
4187 DWORD dwFlags,
4188 IMFMediaEvent **ppEvent) = 0;
4189
4190 virtual HRESULT STDMETHODCALLTYPE BeginGetEvent(
4191 IMFAsyncCallback *pCallback,
4192 IUnknown *punkState) = 0;
4193
4194 virtual HRESULT STDMETHODCALLTYPE EndGetEvent(
4195 IMFAsyncResult *pResult,
4196 IMFMediaEvent **ppEvent) = 0;
4197
4198 virtual HRESULT STDMETHODCALLTYPE QueueEvent(
4199 MediaEventType met,
4200 REFGUID guidExtendedType,
4201 HRESULT hrStatus,
4202 const PROPVARIANT *pvValue) = 0;
4203
4204};
4205#ifdef __CRT_UUID_DECL
4206__CRT_UUID_DECL(IMFMediaEventGenerator, 0x2cd0bd52, 0xbcd5, 0x4b89, 0xb6,0x2c, 0xea,0xdc,0x0c,0x03,0x1e,0x7d)
4207#endif
4208#else
4209typedef struct IMFMediaEventGeneratorVtbl {
4210 BEGIN_INTERFACE
4211
4212 /*** IUnknown methods ***/
4213 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4214 IMFMediaEventGenerator *This,
4215 REFIID riid,
4216 void **ppvObject);
4217
4218 ULONG (STDMETHODCALLTYPE *AddRef)(
4219 IMFMediaEventGenerator *This);
4220
4221 ULONG (STDMETHODCALLTYPE *Release)(
4222 IMFMediaEventGenerator *This);
4223
4224 /*** IMFMediaEventGenerator methods ***/
4225 HRESULT (STDMETHODCALLTYPE *GetEvent)(
4226 IMFMediaEventGenerator *This,
4227 DWORD dwFlags,
4228 IMFMediaEvent **ppEvent);
4229
4230 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
4231 IMFMediaEventGenerator *This,
4232 IMFAsyncCallback *pCallback,
4233 IUnknown *punkState);
4234
4235 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
4236 IMFMediaEventGenerator *This,
4237 IMFAsyncResult *pResult,
4238 IMFMediaEvent **ppEvent);
4239
4240 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
4241 IMFMediaEventGenerator *This,
4242 MediaEventType met,
4243 REFGUID guidExtendedType,
4244 HRESULT hrStatus,
4245 const PROPVARIANT *pvValue);
4246
4247 END_INTERFACE
4248} IMFMediaEventGeneratorVtbl;
4249
4250interface IMFMediaEventGenerator {
4251 CONST_VTBL IMFMediaEventGeneratorVtbl* lpVtbl;
4252};
4253
4254#ifdef COBJMACROS
4255#ifndef WIDL_C_INLINE_WRAPPERS
4256/*** IUnknown methods ***/
4257#define IMFMediaEventGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4258#define IMFMediaEventGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
4259#define IMFMediaEventGenerator_Release(This) (This)->lpVtbl->Release(This)
4260/*** IMFMediaEventGenerator methods ***/
4261#define IMFMediaEventGenerator_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
4262#define IMFMediaEventGenerator_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
4263#define IMFMediaEventGenerator_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
4264#define IMFMediaEventGenerator_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
4265#else
4266/*** IUnknown methods ***/
4267static FORCEINLINE HRESULT IMFMediaEventGenerator_QueryInterface(IMFMediaEventGenerator* This,REFIID riid,void **ppvObject) {
4268 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4269}
4270static FORCEINLINE ULONG IMFMediaEventGenerator_AddRef(IMFMediaEventGenerator* This) {
4271 return This->lpVtbl->AddRef(This);
4272}
4273static FORCEINLINE ULONG IMFMediaEventGenerator_Release(IMFMediaEventGenerator* This) {
4274 return This->lpVtbl->Release(This);
4275}
4276/*** IMFMediaEventGenerator methods ***/
4277static FORCEINLINE HRESULT IMFMediaEventGenerator_GetEvent(IMFMediaEventGenerator* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
4278 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
4279}
4280static FORCEINLINE HRESULT IMFMediaEventGenerator_BeginGetEvent(IMFMediaEventGenerator* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
4281 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
4282}
4283static FORCEINLINE HRESULT IMFMediaEventGenerator_EndGetEvent(IMFMediaEventGenerator* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
4284 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
4285}
4286static FORCEINLINE HRESULT IMFMediaEventGenerator_QueueEvent(IMFMediaEventGenerator* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
4287 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
4288}
4289#endif
4290#endif
4291
4292#endif
4293
4294HRESULT STDMETHODCALLTYPE IMFMediaEventGenerator_RemoteBeginGetEvent_Proxy(
4295 IMFMediaEventGenerator* This,
4296 IMFRemoteAsyncCallback *pCallback);
4297void __RPC_STUB IMFMediaEventGenerator_RemoteBeginGetEvent_Stub(
4298 IRpcStubBuffer* This,
4299 IRpcChannelBuffer* pRpcChannelBuffer,
4300 PRPC_MESSAGE pRpcMessage,
4301 DWORD* pdwStubPhase);
4302HRESULT STDMETHODCALLTYPE IMFMediaEventGenerator_RemoteEndGetEvent_Proxy(
4303 IMFMediaEventGenerator* This,
4304 IUnknown *pResult,
4305 DWORD *pcbEvent,
4306 BYTE **ppbEvent);
4307void __RPC_STUB IMFMediaEventGenerator_RemoteEndGetEvent_Stub(
4308 IRpcStubBuffer* This,
4309 IRpcChannelBuffer* pRpcChannelBuffer,
4310 PRPC_MESSAGE pRpcMessage,
4311 DWORD* pdwStubPhase);
4312HRESULT CALLBACK IMFMediaEventGenerator_BeginGetEvent_Proxy(
4313 IMFMediaEventGenerator* This,
4314 IMFAsyncCallback *pCallback,
4315 IUnknown *punkState);
4316HRESULT __RPC_STUB IMFMediaEventGenerator_BeginGetEvent_Stub(
4317 IMFMediaEventGenerator* This,
4318 IMFRemoteAsyncCallback *pCallback);
4319HRESULT CALLBACK IMFMediaEventGenerator_EndGetEvent_Proxy(
4320 IMFMediaEventGenerator* This,
4321 IMFAsyncResult *pResult,
4322 IMFMediaEvent **ppEvent);
4323HRESULT __RPC_STUB IMFMediaEventGenerator_EndGetEvent_Stub(
4324 IMFMediaEventGenerator* This,
4325 IUnknown *pResult,
4326 DWORD *pcbEvent,
4327 BYTE **ppbEvent);
4328
4329#endif /* __IMFMediaEventGenerator_INTERFACE_DEFINED__ */
4330
4331#endif
4332
4333#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4334/*****************************************************************************
4335 * IMFRemoteAsyncCallback interface
4336 */
4337#ifndef __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
4338#define __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
4339
4340DEFINE_GUID(IID_IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
4341#if defined(__cplusplus) && !defined(CINTERFACE)
4342MIDL_INTERFACE("a27003d0-2354-4f2a-8d6a-ab7cff15437e")
4343IMFRemoteAsyncCallback : public IUnknown
4344{
4345 virtual HRESULT STDMETHODCALLTYPE Invoke(
4346 HRESULT hr,
4347 IUnknown *pRemoteResult) = 0;
4348
4349};
4350#ifdef __CRT_UUID_DECL
4351__CRT_UUID_DECL(IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
4352#endif
4353#else
4354typedef struct IMFRemoteAsyncCallbackVtbl {
4355 BEGIN_INTERFACE
4356
4357 /*** IUnknown methods ***/
4358 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4359 IMFRemoteAsyncCallback *This,
4360 REFIID riid,
4361 void **ppvObject);
4362
4363 ULONG (STDMETHODCALLTYPE *AddRef)(
4364 IMFRemoteAsyncCallback *This);
4365
4366 ULONG (STDMETHODCALLTYPE *Release)(
4367 IMFRemoteAsyncCallback *This);
4368
4369 /*** IMFRemoteAsyncCallback methods ***/
4370 HRESULT (STDMETHODCALLTYPE *Invoke)(
4371 IMFRemoteAsyncCallback *This,
4372 HRESULT hr,
4373 IUnknown *pRemoteResult);
4374
4375 END_INTERFACE
4376} IMFRemoteAsyncCallbackVtbl;
4377
4378interface IMFRemoteAsyncCallback {
4379 CONST_VTBL IMFRemoteAsyncCallbackVtbl* lpVtbl;
4380};
4381
4382#ifdef COBJMACROS
4383#ifndef WIDL_C_INLINE_WRAPPERS
4384/*** IUnknown methods ***/
4385#define IMFRemoteAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4386#define IMFRemoteAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
4387#define IMFRemoteAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
4388/*** IMFRemoteAsyncCallback methods ***/
4389#define IMFRemoteAsyncCallback_Invoke(This,hr,pRemoteResult) (This)->lpVtbl->Invoke(This,hr,pRemoteResult)
4390#else
4391/*** IUnknown methods ***/
4392static FORCEINLINE HRESULT IMFRemoteAsyncCallback_QueryInterface(IMFRemoteAsyncCallback* This,REFIID riid,void **ppvObject) {
4393 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4394}
4395static FORCEINLINE ULONG IMFRemoteAsyncCallback_AddRef(IMFRemoteAsyncCallback* This) {
4396 return This->lpVtbl->AddRef(This);
4397}
4398static FORCEINLINE ULONG IMFRemoteAsyncCallback_Release(IMFRemoteAsyncCallback* This) {
4399 return This->lpVtbl->Release(This);
4400}
4401/*** IMFRemoteAsyncCallback methods ***/
4402static FORCEINLINE HRESULT IMFRemoteAsyncCallback_Invoke(IMFRemoteAsyncCallback* This,HRESULT hr,IUnknown *pRemoteResult) {
4403 return This->lpVtbl->Invoke(This,hr,pRemoteResult);
4404}
4405#endif
4406#endif
4407
4408#endif
4409
4410
4411#endif /* __IMFRemoteAsyncCallback_INTERFACE_DEFINED__ */
4412
4413#endif
4414
4415#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4416
4417typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
4418 msoBegin = 0,
4419 msoCurrent = 1
4420} MFBYTESTREAM_SEEK_ORIGIN;
4421
4422/*****************************************************************************
4423 * IMFByteStream interface
4424 */
4425#ifndef __IMFByteStream_INTERFACE_DEFINED__
4426#define __IMFByteStream_INTERFACE_DEFINED__
4427
4428DEFINE_GUID(IID_IMFByteStream, 0xad4c1b00, 0x4bf7, 0x422f, 0x91,0x75, 0x75,0x66,0x93,0xd9,0x13,0x0d);
4429#if defined(__cplusplus) && !defined(CINTERFACE)
4430MIDL_INTERFACE("ad4c1b00-4bf7-422f-9175-756693d9130d")
4431IMFByteStream : public IUnknown
4432{
4433 virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
4434 DWORD *pdwCapabilities) = 0;
4435
4436 virtual HRESULT STDMETHODCALLTYPE GetLength(
4437 QWORD *pqwLength) = 0;
4438
4439 virtual HRESULT STDMETHODCALLTYPE SetLength(
4440 QWORD qwLength) = 0;
4441
4442 virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
4443 QWORD *pqwPosition) = 0;
4444
4445 virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
4446 QWORD qwPosition) = 0;
4447
4448 virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(
4449 WINBOOL *pfEndOfStream) = 0;
4450
4451 virtual HRESULT STDMETHODCALLTYPE Read(
4452 BYTE *pb,
4453 ULONG cb,
4454 ULONG *pcbRead) = 0;
4455
4456 virtual HRESULT STDMETHODCALLTYPE BeginRead(
4457 BYTE *pb,
4458 ULONG cb,
4459 IMFAsyncCallback *pCallback,
4460 IUnknown *punkState) = 0;
4461
4462 virtual HRESULT STDMETHODCALLTYPE EndRead(
4463 IMFAsyncResult *pResult,
4464 ULONG *pcbRead) = 0;
4465
4466 virtual HRESULT STDMETHODCALLTYPE Write(
4467 const BYTE *pb,
4468 ULONG cb,
4469 ULONG *pcbWritten) = 0;
4470
4471 virtual HRESULT STDMETHODCALLTYPE BeginWrite(
4472 const BYTE *pb,
4473 ULONG cb,
4474 IMFAsyncCallback *pCallback,
4475 IUnknown *punkState) = 0;
4476
4477 virtual HRESULT STDMETHODCALLTYPE EndWrite(
4478 IMFAsyncResult *pResult,
4479 ULONG *pcbWritten) = 0;
4480
4481 virtual HRESULT STDMETHODCALLTYPE Seek(
4482 MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,
4483 LONGLONG llSeekOffset,
4484 DWORD dwSeekFlags,
4485 QWORD *pqwCurrentPosition) = 0;
4486
4487 virtual HRESULT STDMETHODCALLTYPE Flush(
4488 ) = 0;
4489
4490 virtual HRESULT STDMETHODCALLTYPE Close(
4491 ) = 0;
4492
4493};
4494#ifdef __CRT_UUID_DECL
4495__CRT_UUID_DECL(IMFByteStream, 0xad4c1b00, 0x4bf7, 0x422f, 0x91,0x75, 0x75,0x66,0x93,0xd9,0x13,0x0d)
4496#endif
4497#else
4498typedef struct IMFByteStreamVtbl {
4499 BEGIN_INTERFACE
4500
4501 /*** IUnknown methods ***/
4502 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4503 IMFByteStream *This,
4504 REFIID riid,
4505 void **ppvObject);
4506
4507 ULONG (STDMETHODCALLTYPE *AddRef)(
4508 IMFByteStream *This);
4509
4510 ULONG (STDMETHODCALLTYPE *Release)(
4511 IMFByteStream *This);
4512
4513 /*** IMFByteStream methods ***/
4514 HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
4515 IMFByteStream *This,
4516 DWORD *pdwCapabilities);
4517
4518 HRESULT (STDMETHODCALLTYPE *GetLength)(
4519 IMFByteStream *This,
4520 QWORD *pqwLength);
4521
4522 HRESULT (STDMETHODCALLTYPE *SetLength)(
4523 IMFByteStream *This,
4524 QWORD qwLength);
4525
4526 HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
4527 IMFByteStream *This,
4528 QWORD *pqwPosition);
4529
4530 HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
4531 IMFByteStream *This,
4532 QWORD qwPosition);
4533
4534 HRESULT (STDMETHODCALLTYPE *IsEndOfStream)(
4535 IMFByteStream *This,
4536 WINBOOL *pfEndOfStream);
4537
4538 HRESULT (STDMETHODCALLTYPE *Read)(
4539 IMFByteStream *This,
4540 BYTE *pb,
4541 ULONG cb,
4542 ULONG *pcbRead);
4543
4544 HRESULT (STDMETHODCALLTYPE *BeginRead)(
4545 IMFByteStream *This,
4546 BYTE *pb,
4547 ULONG cb,
4548 IMFAsyncCallback *pCallback,
4549 IUnknown *punkState);
4550
4551 HRESULT (STDMETHODCALLTYPE *EndRead)(
4552 IMFByteStream *This,
4553 IMFAsyncResult *pResult,
4554 ULONG *pcbRead);
4555
4556 HRESULT (STDMETHODCALLTYPE *Write)(
4557 IMFByteStream *This,
4558 const BYTE *pb,
4559 ULONG cb,
4560 ULONG *pcbWritten);
4561
4562 HRESULT (STDMETHODCALLTYPE *BeginWrite)(
4563 IMFByteStream *This,
4564 const BYTE *pb,
4565 ULONG cb,
4566 IMFAsyncCallback *pCallback,
4567 IUnknown *punkState);
4568
4569 HRESULT (STDMETHODCALLTYPE *EndWrite)(
4570 IMFByteStream *This,
4571 IMFAsyncResult *pResult,
4572 ULONG *pcbWritten);
4573
4574 HRESULT (STDMETHODCALLTYPE *Seek)(
4575 IMFByteStream *This,
4576 MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,
4577 LONGLONG llSeekOffset,
4578 DWORD dwSeekFlags,
4579 QWORD *pqwCurrentPosition);
4580
4581 HRESULT (STDMETHODCALLTYPE *Flush)(
4582 IMFByteStream *This);
4583
4584 HRESULT (STDMETHODCALLTYPE *Close)(
4585 IMFByteStream *This);
4586
4587 END_INTERFACE
4588} IMFByteStreamVtbl;
4589
4590interface IMFByteStream {
4591 CONST_VTBL IMFByteStreamVtbl* lpVtbl;
4592};
4593
4594#ifdef COBJMACROS
4595#ifndef WIDL_C_INLINE_WRAPPERS
4596/*** IUnknown methods ***/
4597#define IMFByteStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4598#define IMFByteStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4599#define IMFByteStream_Release(This) (This)->lpVtbl->Release(This)
4600/*** IMFByteStream methods ***/
4601#define IMFByteStream_GetCapabilities(This,pdwCapabilities) (This)->lpVtbl->GetCapabilities(This,pdwCapabilities)
4602#define IMFByteStream_GetLength(This,pqwLength) (This)->lpVtbl->GetLength(This,pqwLength)
4603#define IMFByteStream_SetLength(This,qwLength) (This)->lpVtbl->SetLength(This,qwLength)
4604#define IMFByteStream_GetCurrentPosition(This,pqwPosition) (This)->lpVtbl->GetCurrentPosition(This,pqwPosition)
4605#define IMFByteStream_SetCurrentPosition(This,qwPosition) (This)->lpVtbl->SetCurrentPosition(This,qwPosition)
4606#define IMFByteStream_IsEndOfStream(This,pfEndOfStream) (This)->lpVtbl->IsEndOfStream(This,pfEndOfStream)
4607#define IMFByteStream_Read(This,pb,cb,pcbRead) (This)->lpVtbl->Read(This,pb,cb,pcbRead)
4608#define IMFByteStream_BeginRead(This,pb,cb,pCallback,punkState) (This)->lpVtbl->BeginRead(This,pb,cb,pCallback,punkState)
4609#define IMFByteStream_EndRead(This,pResult,pcbRead) (This)->lpVtbl->EndRead(This,pResult,pcbRead)
4610#define IMFByteStream_Write(This,pb,cb,pcbWritten) (This)->lpVtbl->Write(This,pb,cb,pcbWritten)
4611#define IMFByteStream_BeginWrite(This,pb,cb,pCallback,punkState) (This)->lpVtbl->BeginWrite(This,pb,cb,pCallback,punkState)
4612#define IMFByteStream_EndWrite(This,pResult,pcbWritten) (This)->lpVtbl->EndWrite(This,pResult,pcbWritten)
4613#define IMFByteStream_Seek(This,SeekOrigin,llSeekOffset,dwSeekFlags,pqwCurrentPosition) (This)->lpVtbl->Seek(This,SeekOrigin,llSeekOffset,dwSeekFlags,pqwCurrentPosition)
4614#define IMFByteStream_Flush(This) (This)->lpVtbl->Flush(This)
4615#define IMFByteStream_Close(This) (This)->lpVtbl->Close(This)
4616#else
4617/*** IUnknown methods ***/
4618static FORCEINLINE HRESULT IMFByteStream_QueryInterface(IMFByteStream* This,REFIID riid,void **ppvObject) {
4619 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4620}
4621static FORCEINLINE ULONG IMFByteStream_AddRef(IMFByteStream* This) {
4622 return This->lpVtbl->AddRef(This);
4623}
4624static FORCEINLINE ULONG IMFByteStream_Release(IMFByteStream* This) {
4625 return This->lpVtbl->Release(This);
4626}
4627/*** IMFByteStream methods ***/
4628static FORCEINLINE HRESULT IMFByteStream_GetCapabilities(IMFByteStream* This,DWORD *pdwCapabilities) {
4629 return This->lpVtbl->GetCapabilities(This,pdwCapabilities);
4630}
4631static FORCEINLINE HRESULT IMFByteStream_GetLength(IMFByteStream* This,QWORD *pqwLength) {
4632 return This->lpVtbl->GetLength(This,pqwLength);
4633}
4634static FORCEINLINE HRESULT IMFByteStream_SetLength(IMFByteStream* This,QWORD qwLength) {
4635 return This->lpVtbl->SetLength(This,qwLength);
4636}
4637static FORCEINLINE HRESULT IMFByteStream_GetCurrentPosition(IMFByteStream* This,QWORD *pqwPosition) {
4638 return This->lpVtbl->GetCurrentPosition(This,pqwPosition);
4639}
4640static FORCEINLINE HRESULT IMFByteStream_SetCurrentPosition(IMFByteStream* This,QWORD qwPosition) {
4641 return This->lpVtbl->SetCurrentPosition(This,qwPosition);
4642}
4643static FORCEINLINE HRESULT IMFByteStream_IsEndOfStream(IMFByteStream* This,WINBOOL *pfEndOfStream) {
4644 return This->lpVtbl->IsEndOfStream(This,pfEndOfStream);
4645}
4646static FORCEINLINE HRESULT IMFByteStream_Read(IMFByteStream* This,BYTE *pb,ULONG cb,ULONG *pcbRead) {
4647 return This->lpVtbl->Read(This,pb,cb,pcbRead);
4648}
4649static FORCEINLINE HRESULT IMFByteStream_BeginRead(IMFByteStream* This,BYTE *pb,ULONG cb,IMFAsyncCallback *pCallback,IUnknown *punkState) {
4650 return This->lpVtbl->BeginRead(This,pb,cb,pCallback,punkState);
4651}
4652static FORCEINLINE HRESULT IMFByteStream_EndRead(IMFByteStream* This,IMFAsyncResult *pResult,ULONG *pcbRead) {
4653 return This->lpVtbl->EndRead(This,pResult,pcbRead);
4654}
4655static FORCEINLINE HRESULT IMFByteStream_Write(IMFByteStream* This,const BYTE *pb,ULONG cb,ULONG *pcbWritten) {
4656 return This->lpVtbl->Write(This,pb,cb,pcbWritten);
4657}
4658static FORCEINLINE HRESULT IMFByteStream_BeginWrite(IMFByteStream* This,const BYTE *pb,ULONG cb,IMFAsyncCallback *pCallback,IUnknown *punkState) {
4659 return This->lpVtbl->BeginWrite(This,pb,cb,pCallback,punkState);
4660}
4661static FORCEINLINE HRESULT IMFByteStream_EndWrite(IMFByteStream* This,IMFAsyncResult *pResult,ULONG *pcbWritten) {
4662 return This->lpVtbl->EndWrite(This,pResult,pcbWritten);
4663}
4664static FORCEINLINE HRESULT IMFByteStream_Seek(IMFByteStream* This,MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,LONGLONG llSeekOffset,DWORD dwSeekFlags,QWORD *pqwCurrentPosition) {
4665 return This->lpVtbl->Seek(This,SeekOrigin,llSeekOffset,dwSeekFlags,pqwCurrentPosition);
4666}
4667static FORCEINLINE HRESULT IMFByteStream_Flush(IMFByteStream* This) {
4668 return This->lpVtbl->Flush(This);
4669}
4670static FORCEINLINE HRESULT IMFByteStream_Close(IMFByteStream* This) {
4671 return This->lpVtbl->Close(This);
4672}
4673#endif
4674#endif
4675
4676#endif
4677
4678HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteBeginRead_Proxy(
4679 IMFByteStream* This,
4680 ULONG cb,
4681 IMFRemoteAsyncCallback *pCallback);
4682void __RPC_STUB IMFByteStream_RemoteBeginRead_Stub(
4683 IRpcStubBuffer* This,
4684 IRpcChannelBuffer* pRpcChannelBuffer,
4685 PRPC_MESSAGE pRpcMessage,
4686 DWORD* pdwStubPhase);
4687HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteEndRead_Proxy(
4688 IMFByteStream* This,
4689 IUnknown *punkResult,
4690 BYTE *pb,
4691 ULONG cb,
4692 ULONG *pcbRead);
4693void __RPC_STUB IMFByteStream_RemoteEndRead_Stub(
4694 IRpcStubBuffer* This,
4695 IRpcChannelBuffer* pRpcChannelBuffer,
4696 PRPC_MESSAGE pRpcMessage,
4697 DWORD* pdwStubPhase);
4698HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteBeginWrite_Proxy(
4699 IMFByteStream* This,
4700 const BYTE *pb,
4701 ULONG cb,
4702 IMFRemoteAsyncCallback *pCallback);
4703void __RPC_STUB IMFByteStream_RemoteBeginWrite_Stub(
4704 IRpcStubBuffer* This,
4705 IRpcChannelBuffer* pRpcChannelBuffer,
4706 PRPC_MESSAGE pRpcMessage,
4707 DWORD* pdwStubPhase);
4708HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteEndWrite_Proxy(
4709 IMFByteStream* This,
4710 IUnknown *punkResult,
4711 ULONG *pcbWritten);
4712void __RPC_STUB IMFByteStream_RemoteEndWrite_Stub(
4713 IRpcStubBuffer* This,
4714 IRpcChannelBuffer* pRpcChannelBuffer,
4715 PRPC_MESSAGE pRpcMessage,
4716 DWORD* pdwStubPhase);
4717HRESULT CALLBACK IMFByteStream_BeginRead_Proxy(
4718 IMFByteStream* This,
4719 BYTE *pb,
4720 ULONG cb,
4721 IMFAsyncCallback *pCallback,
4722 IUnknown *punkState);
4723HRESULT __RPC_STUB IMFByteStream_BeginRead_Stub(
4724 IMFByteStream* This,
4725 ULONG cb,
4726 IMFRemoteAsyncCallback *pCallback);
4727HRESULT CALLBACK IMFByteStream_EndRead_Proxy(
4728 IMFByteStream* This,
4729 IMFAsyncResult *pResult,
4730 ULONG *pcbRead);
4731HRESULT __RPC_STUB IMFByteStream_EndRead_Stub(
4732 IMFByteStream* This,
4733 IUnknown *punkResult,
4734 BYTE *pb,
4735 ULONG cb,
4736 ULONG *pcbRead);
4737HRESULT CALLBACK IMFByteStream_BeginWrite_Proxy(
4738 IMFByteStream* This,
4739 const BYTE *pb,
4740 ULONG cb,
4741 IMFAsyncCallback *pCallback,
4742 IUnknown *punkState);
4743HRESULT __RPC_STUB IMFByteStream_BeginWrite_Stub(
4744 IMFByteStream* This,
4745 const BYTE *pb,
4746 ULONG cb,
4747 IMFRemoteAsyncCallback *pCallback);
4748HRESULT CALLBACK IMFByteStream_EndWrite_Proxy(
4749 IMFByteStream* This,
4750 IMFAsyncResult *pResult,
4751 ULONG *pcbWritten);
4752HRESULT __RPC_STUB IMFByteStream_EndWrite_Stub(
4753 IMFByteStream* This,
4754 IUnknown *punkResult,
4755 ULONG *pcbWritten);
4756
4757#endif /* __IMFByteStream_INTERFACE_DEFINED__ */
4758
4759
4760#define MFBYTESTREAM_IS_READABLE 0x00000001
4761#define MFBYTESTREAM_IS_WRITABLE 0x00000002
4762#define MFBYTESTREAM_IS_SEEKABLE 0x00000004
4763#define MFBYTESTREAM_IS_REMOTE 0x00000008
4764#define MFBYTESTREAM_IS_DIRECTORY 0x00000080
4765#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100
4766#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200
4767#if WINVER >= _WIN32_WINNT_WIN7
4768#define MFBYTESTREAM_SHARE_WRITE 0x00000400
4769#endif
4770#if WINVER >= _WIN32_WINNT_WIN8
4771#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800
4772#endif
4773
4774#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001
4775
4776EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4777EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4778EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4779EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4780#if (WINVER >= _WIN32_WINNT_WIN7)
4781EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4782EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
4783EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);
4784EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );
4785#endif
4786#endif
4787
4788#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
4789EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );
4790
4791/*****************************************************************************
4792 * IMFByteStreamProxyClassFactory interface
4793 */
4794#ifndef __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__
4795#define __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__
4796
4797DEFINE_GUID(IID_IMFByteStreamProxyClassFactory, 0xa6b43f84, 0x5c0a, 0x42e8, 0xa4,0x4d, 0xb1,0x85,0x7a,0x76,0x99,0x2f);
4798#if defined(__cplusplus) && !defined(CINTERFACE)
4799MIDL_INTERFACE("a6b43f84-5c0a-42e8-a44d-b1857a76992f")
4800IMFByteStreamProxyClassFactory : public IUnknown
4801{
4802 virtual HRESULT STDMETHODCALLTYPE CreateByteStreamProxy(
4803 IMFByteStream *pByteStream,
4804 IMFAttributes *pAttributes,
4805 REFIID riid,
4806 LPVOID *ppvObject) = 0;
4807
4808};
4809#ifdef __CRT_UUID_DECL
4810__CRT_UUID_DECL(IMFByteStreamProxyClassFactory, 0xa6b43f84, 0x5c0a, 0x42e8, 0xa4,0x4d, 0xb1,0x85,0x7a,0x76,0x99,0x2f)
4811#endif
4812#else
4813typedef struct IMFByteStreamProxyClassFactoryVtbl {
4814 BEGIN_INTERFACE
4815
4816 /*** IUnknown methods ***/
4817 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4818 IMFByteStreamProxyClassFactory *This,
4819 REFIID riid,
4820 void **ppvObject);
4821
4822 ULONG (STDMETHODCALLTYPE *AddRef)(
4823 IMFByteStreamProxyClassFactory *This);
4824
4825 ULONG (STDMETHODCALLTYPE *Release)(
4826 IMFByteStreamProxyClassFactory *This);
4827
4828 /*** IMFByteStreamProxyClassFactory methods ***/
4829 HRESULT (STDMETHODCALLTYPE *CreateByteStreamProxy)(
4830 IMFByteStreamProxyClassFactory *This,
4831 IMFByteStream *pByteStream,
4832 IMFAttributes *pAttributes,
4833 REFIID riid,
4834 LPVOID *ppvObject);
4835
4836 END_INTERFACE
4837} IMFByteStreamProxyClassFactoryVtbl;
4838
4839interface IMFByteStreamProxyClassFactory {
4840 CONST_VTBL IMFByteStreamProxyClassFactoryVtbl* lpVtbl;
4841};
4842
4843#ifdef COBJMACROS
4844#ifndef WIDL_C_INLINE_WRAPPERS
4845/*** IUnknown methods ***/
4846#define IMFByteStreamProxyClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4847#define IMFByteStreamProxyClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
4848#define IMFByteStreamProxyClassFactory_Release(This) (This)->lpVtbl->Release(This)
4849/*** IMFByteStreamProxyClassFactory methods ***/
4850#define IMFByteStreamProxyClassFactory_CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject) (This)->lpVtbl->CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject)
4851#else
4852/*** IUnknown methods ***/
4853static FORCEINLINE HRESULT IMFByteStreamProxyClassFactory_QueryInterface(IMFByteStreamProxyClassFactory* This,REFIID riid,void **ppvObject) {
4854 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4855}
4856static FORCEINLINE ULONG IMFByteStreamProxyClassFactory_AddRef(IMFByteStreamProxyClassFactory* This) {
4857 return This->lpVtbl->AddRef(This);
4858}
4859static FORCEINLINE ULONG IMFByteStreamProxyClassFactory_Release(IMFByteStreamProxyClassFactory* This) {
4860 return This->lpVtbl->Release(This);
4861}
4862/*** IMFByteStreamProxyClassFactory methods ***/
4863static FORCEINLINE HRESULT IMFByteStreamProxyClassFactory_CreateByteStreamProxy(IMFByteStreamProxyClassFactory* This,IMFByteStream *pByteStream,IMFAttributes *pAttributes,REFIID riid,LPVOID *ppvObject) {
4864 return This->lpVtbl->CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject);
4865}
4866#endif
4867#endif
4868
4869#endif
4870
4871
4872#endif /* __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__ */
4873
4874
4875typedef enum __WIDL_mfobjects_generated_name_0000002B {
4876 MF_ACCESSMODE_READ = 1,
4877 MF_ACCESSMODE_WRITE = 2,
4878 MF_ACCESSMODE_READWRITE = 3
4879} MF_FILE_ACCESSMODE;
4880
4881typedef enum __WIDL_mfobjects_generated_name_0000002C {
4882 MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
4883 MF_OPENMODE_FAIL_IF_EXIST = 1,
4884 MF_OPENMODE_RESET_IF_EXIST = 2,
4885 MF_OPENMODE_APPEND_IF_EXIST = 3,
4886 MF_OPENMODE_DELETE_IF_EXIST = 4
4887} MF_FILE_OPENMODE;
4888
4889typedef enum __WIDL_mfobjects_generated_name_0000002D {
4890 MF_FILEFLAGS_NONE = 0x0,
4891 MF_FILEFLAGS_NOBUFFERING = 0x1,
4892 MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x2
4893} MF_FILE_FLAGS;
4894#endif
4895
4896#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
4897/*****************************************************************************
4898 * IMFSampleOutputStream interface
4899 */
4900#ifndef __IMFSampleOutputStream_INTERFACE_DEFINED__
4901#define __IMFSampleOutputStream_INTERFACE_DEFINED__
4902
4903DEFINE_GUID(IID_IMFSampleOutputStream, 0x8feed468, 0x6f7e, 0x440d, 0x86,0x9a, 0x49,0xbd,0xd2,0x83,0xad,0x0d);
4904#if defined(__cplusplus) && !defined(CINTERFACE)
4905MIDL_INTERFACE("8feed468-6f7e-440d-869a-49bdd283ad0d")
4906IMFSampleOutputStream : public IUnknown
4907{
4908 virtual HRESULT STDMETHODCALLTYPE BeginWriteSample(
4909 IMFSample *pSample,
4910 IMFAsyncCallback *pCallback,
4911 IUnknown *punkState) = 0;
4912
4913 virtual HRESULT STDMETHODCALLTYPE EndWriteSample(
4914 IMFAsyncResult *pResult) = 0;
4915
4916 virtual HRESULT STDMETHODCALLTYPE Close(
4917 ) = 0;
4918
4919};
4920#ifdef __CRT_UUID_DECL
4921__CRT_UUID_DECL(IMFSampleOutputStream, 0x8feed468, 0x6f7e, 0x440d, 0x86,0x9a, 0x49,0xbd,0xd2,0x83,0xad,0x0d)
4922#endif
4923#else
4924typedef struct IMFSampleOutputStreamVtbl {
4925 BEGIN_INTERFACE
4926
4927 /*** IUnknown methods ***/
4928 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4929 IMFSampleOutputStream *This,
4930 REFIID riid,
4931 void **ppvObject);
4932
4933 ULONG (STDMETHODCALLTYPE *AddRef)(
4934 IMFSampleOutputStream *This);
4935
4936 ULONG (STDMETHODCALLTYPE *Release)(
4937 IMFSampleOutputStream *This);
4938
4939 /*** IMFSampleOutputStream methods ***/
4940 HRESULT (STDMETHODCALLTYPE *BeginWriteSample)(
4941 IMFSampleOutputStream *This,
4942 IMFSample *pSample,
4943 IMFAsyncCallback *pCallback,
4944 IUnknown *punkState);
4945
4946 HRESULT (STDMETHODCALLTYPE *EndWriteSample)(
4947 IMFSampleOutputStream *This,
4948 IMFAsyncResult *pResult);
4949
4950 HRESULT (STDMETHODCALLTYPE *Close)(
4951 IMFSampleOutputStream *This);
4952
4953 END_INTERFACE
4954} IMFSampleOutputStreamVtbl;
4955
4956interface IMFSampleOutputStream {
4957 CONST_VTBL IMFSampleOutputStreamVtbl* lpVtbl;
4958};
4959
4960#ifdef COBJMACROS
4961#ifndef WIDL_C_INLINE_WRAPPERS
4962/*** IUnknown methods ***/
4963#define IMFSampleOutputStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4964#define IMFSampleOutputStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4965#define IMFSampleOutputStream_Release(This) (This)->lpVtbl->Release(This)
4966/*** IMFSampleOutputStream methods ***/
4967#define IMFSampleOutputStream_BeginWriteSample(This,pSample,pCallback,punkState) (This)->lpVtbl->BeginWriteSample(This,pSample,pCallback,punkState)
4968#define IMFSampleOutputStream_EndWriteSample(This,pResult) (This)->lpVtbl->EndWriteSample(This,pResult)
4969#define IMFSampleOutputStream_Close(This) (This)->lpVtbl->Close(This)
4970#else
4971/*** IUnknown methods ***/
4972static FORCEINLINE HRESULT IMFSampleOutputStream_QueryInterface(IMFSampleOutputStream* This,REFIID riid,void **ppvObject) {
4973 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4974}
4975static FORCEINLINE ULONG IMFSampleOutputStream_AddRef(IMFSampleOutputStream* This) {
4976 return This->lpVtbl->AddRef(This);
4977}
4978static FORCEINLINE ULONG IMFSampleOutputStream_Release(IMFSampleOutputStream* This) {
4979 return This->lpVtbl->Release(This);
4980}
4981/*** IMFSampleOutputStream methods ***/
4982static FORCEINLINE HRESULT IMFSampleOutputStream_BeginWriteSample(IMFSampleOutputStream* This,IMFSample *pSample,IMFAsyncCallback *pCallback,IUnknown *punkState) {
4983 return This->lpVtbl->BeginWriteSample(This,pSample,pCallback,punkState);
4984}
4985static FORCEINLINE HRESULT IMFSampleOutputStream_EndWriteSample(IMFSampleOutputStream* This,IMFAsyncResult *pResult) {
4986 return This->lpVtbl->EndWriteSample(This,pResult);
4987}
4988static FORCEINLINE HRESULT IMFSampleOutputStream_Close(IMFSampleOutputStream* This) {
4989 return This->lpVtbl->Close(This);
4990}
4991#endif
4992#endif
4993
4994#endif
4995
4996
4997#endif /* __IMFSampleOutputStream_INTERFACE_DEFINED__ */
4998
4999
5000/*****************************************************************************
5001 * IMFCollection interface
5002 */
5003#ifndef __IMFCollection_INTERFACE_DEFINED__
5004#define __IMFCollection_INTERFACE_DEFINED__
5005
5006DEFINE_GUID(IID_IMFCollection, 0x5bc8a76b, 0x869a, 0x46a3, 0x9b,0x03, 0xfa,0x21,0x8a,0x66,0xae,0xbe);
5007#if defined(__cplusplus) && !defined(CINTERFACE)
5008MIDL_INTERFACE("5bc8a76b-869a-46a3-9b03-fa218a66aebe")
5009IMFCollection : public IUnknown
5010{
5011 virtual HRESULT STDMETHODCALLTYPE GetElementCount(
5012 DWORD *pcElements) = 0;
5013
5014 virtual HRESULT STDMETHODCALLTYPE GetElement(
5015 DWORD dwElementIndex,
5016 IUnknown **ppUnkElement) = 0;
5017
5018 virtual HRESULT STDMETHODCALLTYPE AddElement(
5019 IUnknown *pUnkElement) = 0;
5020
5021 virtual HRESULT STDMETHODCALLTYPE RemoveElement(
5022 DWORD dwElementIndex,
5023 IUnknown **ppUnkElement) = 0;
5024
5025 virtual HRESULT STDMETHODCALLTYPE InsertElementAt(
5026 DWORD dwIndex,
5027 IUnknown *pUnknown) = 0;
5028
5029 virtual HRESULT STDMETHODCALLTYPE RemoveAllElements(
5030 ) = 0;
5031
5032};
5033#ifdef __CRT_UUID_DECL
5034__CRT_UUID_DECL(IMFCollection, 0x5bc8a76b, 0x869a, 0x46a3, 0x9b,0x03, 0xfa,0x21,0x8a,0x66,0xae,0xbe)
5035#endif
5036#else
5037typedef struct IMFCollectionVtbl {
5038 BEGIN_INTERFACE
5039
5040 /*** IUnknown methods ***/
5041 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5042 IMFCollection *This,
5043 REFIID riid,
5044 void **ppvObject);
5045
5046 ULONG (STDMETHODCALLTYPE *AddRef)(
5047 IMFCollection *This);
5048
5049 ULONG (STDMETHODCALLTYPE *Release)(
5050 IMFCollection *This);
5051
5052 /*** IMFCollection methods ***/
5053 HRESULT (STDMETHODCALLTYPE *GetElementCount)(
5054 IMFCollection *This,
5055 DWORD *pcElements);
5056
5057 HRESULT (STDMETHODCALLTYPE *GetElement)(
5058 IMFCollection *This,
5059 DWORD dwElementIndex,
5060 IUnknown **ppUnkElement);
5061
5062 HRESULT (STDMETHODCALLTYPE *AddElement)(
5063 IMFCollection *This,
5064 IUnknown *pUnkElement);
5065
5066 HRESULT (STDMETHODCALLTYPE *RemoveElement)(
5067 IMFCollection *This,
5068 DWORD dwElementIndex,
5069 IUnknown **ppUnkElement);
5070
5071 HRESULT (STDMETHODCALLTYPE *InsertElementAt)(
5072 IMFCollection *This,
5073 DWORD dwIndex,
5074 IUnknown *pUnknown);
5075
5076 HRESULT (STDMETHODCALLTYPE *RemoveAllElements)(
5077 IMFCollection *This);
5078
5079 END_INTERFACE
5080} IMFCollectionVtbl;
5081
5082interface IMFCollection {
5083 CONST_VTBL IMFCollectionVtbl* lpVtbl;
5084};
5085
5086#ifdef COBJMACROS
5087#ifndef WIDL_C_INLINE_WRAPPERS
5088/*** IUnknown methods ***/
5089#define IMFCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5090#define IMFCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
5091#define IMFCollection_Release(This) (This)->lpVtbl->Release(This)
5092/*** IMFCollection methods ***/
5093#define IMFCollection_GetElementCount(This,pcElements) (This)->lpVtbl->GetElementCount(This,pcElements)
5094#define IMFCollection_GetElement(This,dwElementIndex,ppUnkElement) (This)->lpVtbl->GetElement(This,dwElementIndex,ppUnkElement)
5095#define IMFCollection_AddElement(This,pUnkElement) (This)->lpVtbl->AddElement(This,pUnkElement)
5096#define IMFCollection_RemoveElement(This,dwElementIndex,ppUnkElement) (This)->lpVtbl->RemoveElement(This,dwElementIndex,ppUnkElement)
5097#define IMFCollection_InsertElementAt(This,dwIndex,pUnknown) (This)->lpVtbl->InsertElementAt(This,dwIndex,pUnknown)
5098#define IMFCollection_RemoveAllElements(This) (This)->lpVtbl->RemoveAllElements(This)
5099#else
5100/*** IUnknown methods ***/
5101static FORCEINLINE HRESULT IMFCollection_QueryInterface(IMFCollection* This,REFIID riid,void **ppvObject) {
5102 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5103}
5104static FORCEINLINE ULONG IMFCollection_AddRef(IMFCollection* This) {
5105 return This->lpVtbl->AddRef(This);
5106}
5107static FORCEINLINE ULONG IMFCollection_Release(IMFCollection* This) {
5108 return This->lpVtbl->Release(This);
5109}
5110/*** IMFCollection methods ***/
5111static FORCEINLINE HRESULT IMFCollection_GetElementCount(IMFCollection* This,DWORD *pcElements) {
5112 return This->lpVtbl->GetElementCount(This,pcElements);
5113}
5114static FORCEINLINE HRESULT IMFCollection_GetElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
5115 return This->lpVtbl->GetElement(This,dwElementIndex,ppUnkElement);
5116}
5117static FORCEINLINE HRESULT IMFCollection_AddElement(IMFCollection* This,IUnknown *pUnkElement) {
5118 return This->lpVtbl->AddElement(This,pUnkElement);
5119}
5120static FORCEINLINE HRESULT IMFCollection_RemoveElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
5121 return This->lpVtbl->RemoveElement(This,dwElementIndex,ppUnkElement);
5122}
5123static FORCEINLINE HRESULT IMFCollection_InsertElementAt(IMFCollection* This,DWORD dwIndex,IUnknown *pUnknown) {
5124 return This->lpVtbl->InsertElementAt(This,dwIndex,pUnknown);
5125}
5126static FORCEINLINE HRESULT IMFCollection_RemoveAllElements(IMFCollection* This) {
5127 return This->lpVtbl->RemoveAllElements(This);
5128}
5129#endif
5130#endif
5131
5132#endif
5133
5134
5135#endif /* __IMFCollection_INTERFACE_DEFINED__ */
5136
5137
5138/*****************************************************************************
5139 * IMFMediaEventQueue interface
5140 */
5141#ifndef __IMFMediaEventQueue_INTERFACE_DEFINED__
5142#define __IMFMediaEventQueue_INTERFACE_DEFINED__
5143
5144DEFINE_GUID(IID_IMFMediaEventQueue, 0x36f846fc, 0x2256, 0x48b6, 0xb5,0x8e, 0xe2,0xb6,0x38,0x31,0x65,0x81);
5145#if defined(__cplusplus) && !defined(CINTERFACE)
5146MIDL_INTERFACE("36f846fc-2256-48b6-b58e-e2b638316581")
5147IMFMediaEventQueue : public IUnknown
5148{
5149 virtual HRESULT STDMETHODCALLTYPE GetEvent(
5150 DWORD dwFlags,
5151 IMFMediaEvent **ppEvent) = 0;
5152
5153 virtual HRESULT STDMETHODCALLTYPE BeginGetEvent(
5154 IMFAsyncCallback *pCallback,
5155 IUnknown *punkState) = 0;
5156
5157 virtual HRESULT STDMETHODCALLTYPE EndGetEvent(
5158 IMFAsyncResult *pResult,
5159 IMFMediaEvent **ppEvent) = 0;
5160
5161 virtual HRESULT STDMETHODCALLTYPE QueueEvent(
5162 IMFMediaEvent *pEvent) = 0;
5163
5164 virtual HRESULT STDMETHODCALLTYPE QueueEventParamVar(
5165 MediaEventType met,
5166 REFGUID guidExtendedType,
5167 HRESULT hrStatus,
5168 const PROPVARIANT *pvValue) = 0;
5169
5170 virtual HRESULT STDMETHODCALLTYPE QueueEventParamUnk(
5171 MediaEventType met,
5172 REFGUID guidExtendedType,
5173 HRESULT hrStatus,
5174 IUnknown *pUnk) = 0;
5175
5176 virtual HRESULT STDMETHODCALLTYPE Shutdown(
5177 ) = 0;
5178
5179};
5180#ifdef __CRT_UUID_DECL
5181__CRT_UUID_DECL(IMFMediaEventQueue, 0x36f846fc, 0x2256, 0x48b6, 0xb5,0x8e, 0xe2,0xb6,0x38,0x31,0x65,0x81)
5182#endif
5183#else
5184typedef struct IMFMediaEventQueueVtbl {
5185 BEGIN_INTERFACE
5186
5187 /*** IUnknown methods ***/
5188 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5189 IMFMediaEventQueue *This,
5190 REFIID riid,
5191 void **ppvObject);
5192
5193 ULONG (STDMETHODCALLTYPE *AddRef)(
5194 IMFMediaEventQueue *This);
5195
5196 ULONG (STDMETHODCALLTYPE *Release)(
5197 IMFMediaEventQueue *This);
5198
5199 /*** IMFMediaEventQueue methods ***/
5200 HRESULT (STDMETHODCALLTYPE *GetEvent)(
5201 IMFMediaEventQueue *This,
5202 DWORD dwFlags,
5203 IMFMediaEvent **ppEvent);
5204
5205 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
5206 IMFMediaEventQueue *This,
5207 IMFAsyncCallback *pCallback,
5208 IUnknown *punkState);
5209
5210 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
5211 IMFMediaEventQueue *This,
5212 IMFAsyncResult *pResult,
5213 IMFMediaEvent **ppEvent);
5214
5215 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
5216 IMFMediaEventQueue *This,
5217 IMFMediaEvent *pEvent);
5218
5219 HRESULT (STDMETHODCALLTYPE *QueueEventParamVar)(
5220 IMFMediaEventQueue *This,
5221 MediaEventType met,
5222 REFGUID guidExtendedType,
5223 HRESULT hrStatus,
5224 const PROPVARIANT *pvValue);
5225
5226 HRESULT (STDMETHODCALLTYPE *QueueEventParamUnk)(
5227 IMFMediaEventQueue *This,
5228 MediaEventType met,
5229 REFGUID guidExtendedType,
5230 HRESULT hrStatus,
5231 IUnknown *pUnk);
5232
5233 HRESULT (STDMETHODCALLTYPE *Shutdown)(
5234 IMFMediaEventQueue *This);
5235
5236 END_INTERFACE
5237} IMFMediaEventQueueVtbl;
5238
5239interface IMFMediaEventQueue {
5240 CONST_VTBL IMFMediaEventQueueVtbl* lpVtbl;
5241};
5242
5243#ifdef COBJMACROS
5244#ifndef WIDL_C_INLINE_WRAPPERS
5245/*** IUnknown methods ***/
5246#define IMFMediaEventQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5247#define IMFMediaEventQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
5248#define IMFMediaEventQueue_Release(This) (This)->lpVtbl->Release(This)
5249/*** IMFMediaEventQueue methods ***/
5250#define IMFMediaEventQueue_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
5251#define IMFMediaEventQueue_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
5252#define IMFMediaEventQueue_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
5253#define IMFMediaEventQueue_QueueEvent(This,pEvent) (This)->lpVtbl->QueueEvent(This,pEvent)
5254#define IMFMediaEventQueue_QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue)
5255#define IMFMediaEventQueue_QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk) (This)->lpVtbl->QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk)
5256#define IMFMediaEventQueue_Shutdown(This) (This)->lpVtbl->Shutdown(This)
5257#else
5258/*** IUnknown methods ***/
5259static FORCEINLINE HRESULT IMFMediaEventQueue_QueryInterface(IMFMediaEventQueue* This,REFIID riid,void **ppvObject) {
5260 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5261}
5262static FORCEINLINE ULONG IMFMediaEventQueue_AddRef(IMFMediaEventQueue* This) {
5263 return This->lpVtbl->AddRef(This);
5264}
5265static FORCEINLINE ULONG IMFMediaEventQueue_Release(IMFMediaEventQueue* This) {
5266 return This->lpVtbl->Release(This);
5267}
5268/*** IMFMediaEventQueue methods ***/
5269static FORCEINLINE HRESULT IMFMediaEventQueue_GetEvent(IMFMediaEventQueue* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
5270 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
5271}
5272static FORCEINLINE HRESULT IMFMediaEventQueue_BeginGetEvent(IMFMediaEventQueue* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
5273 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
5274}
5275static FORCEINLINE HRESULT IMFMediaEventQueue_EndGetEvent(IMFMediaEventQueue* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
5276 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
5277}
5278static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEvent(IMFMediaEventQueue* This,IMFMediaEvent *pEvent) {
5279 return This->lpVtbl->QueueEvent(This,pEvent);
5280}
5281static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEventParamVar(IMFMediaEventQueue* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
5282 return This->lpVtbl->QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue);
5283}
5284static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEventParamUnk(IMFMediaEventQueue* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,IUnknown *pUnk) {
5285 return This->lpVtbl->QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk);
5286}
5287static FORCEINLINE HRESULT IMFMediaEventQueue_Shutdown(IMFMediaEventQueue* This) {
5288 return This->lpVtbl->Shutdown(This);
5289}
5290#endif
5291#endif
5292
5293#endif
5294
5295
5296#endif /* __IMFMediaEventQueue_INTERFACE_DEFINED__ */
5297
5298
5299/*****************************************************************************
5300 * IMFActivate interface
5301 */
5302#ifndef __IMFActivate_INTERFACE_DEFINED__
5303#define __IMFActivate_INTERFACE_DEFINED__
5304
5305DEFINE_GUID(IID_IMFActivate, 0x7fee9e9a, 0x4a89, 0x47a6, 0x89,0x9c, 0xb6,0xa5,0x3a,0x70,0xfb,0x67);
5306#if defined(__cplusplus) && !defined(CINTERFACE)
5307MIDL_INTERFACE("7fee9e9a-4a89-47a6-899c-b6a53a70fb67")
5308IMFActivate : public IMFAttributes
5309{
5310 virtual HRESULT STDMETHODCALLTYPE ActivateObject(
5311 REFIID riid,
5312 void **ppv) = 0;
5313
5314 virtual HRESULT STDMETHODCALLTYPE ShutdownObject(
5315 ) = 0;
5316
5317 virtual HRESULT STDMETHODCALLTYPE DetachObject(
5318 ) = 0;
5319
5320};
5321#ifdef __CRT_UUID_DECL
5322__CRT_UUID_DECL(IMFActivate, 0x7fee9e9a, 0x4a89, 0x47a6, 0x89,0x9c, 0xb6,0xa5,0x3a,0x70,0xfb,0x67)
5323#endif
5324#else
5325typedef struct IMFActivateVtbl {
5326 BEGIN_INTERFACE
5327
5328 /*** IUnknown methods ***/
5329 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5330 IMFActivate *This,
5331 REFIID riid,
5332 void **ppvObject);
5333
5334 ULONG (STDMETHODCALLTYPE *AddRef)(
5335 IMFActivate *This);
5336
5337 ULONG (STDMETHODCALLTYPE *Release)(
5338 IMFActivate *This);
5339
5340 /*** IMFAttributes methods ***/
5341 HRESULT (STDMETHODCALLTYPE *GetItem)(
5342 IMFActivate *This,
5343 REFGUID guidKey,
5344 PROPVARIANT *pValue);
5345
5346 HRESULT (STDMETHODCALLTYPE *GetItemType)(
5347 IMFActivate *This,
5348 REFGUID guidKey,
5349 MF_ATTRIBUTE_TYPE *pType);
5350
5351 HRESULT (STDMETHODCALLTYPE *CompareItem)(
5352 IMFActivate *This,
5353 REFGUID guidKey,
5354 REFPROPVARIANT Value,
5355 WINBOOL *pbResult);
5356
5357 HRESULT (STDMETHODCALLTYPE *Compare)(
5358 IMFActivate *This,
5359 IMFAttributes *pTheirs,
5360 MF_ATTRIBUTES_MATCH_TYPE MatchType,
5361 WINBOOL *pbResult);
5362
5363 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
5364 IMFActivate *This,
5365 REFGUID guidKey,
5366 UINT32 *punValue);
5367
5368 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
5369 IMFActivate *This,
5370 REFGUID guidKey,
5371 UINT64 *punValue);
5372
5373 HRESULT (STDMETHODCALLTYPE *GetDouble)(
5374 IMFActivate *This,
5375 REFGUID guidKey,
5376 double *pfValue);
5377
5378 HRESULT (STDMETHODCALLTYPE *GetGUID)(
5379 IMFActivate *This,
5380 REFGUID guidKey,
5381 GUID *pguidValue);
5382
5383 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
5384 IMFActivate *This,
5385 REFGUID guidKey,
5386 UINT32 *pcchLength);
5387
5388 HRESULT (STDMETHODCALLTYPE *GetString)(
5389 IMFActivate *This,
5390 REFGUID guidKey,
5391 LPWSTR pwszValue,
5392 UINT32 cchBufSize,
5393 UINT32 *pcchLength);
5394
5395 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
5396 IMFActivate *This,
5397 REFGUID guidKey,
5398 LPWSTR *ppwszValue,
5399 UINT32 *pcchLength);
5400
5401 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
5402 IMFActivate *This,
5403 REFGUID guidKey,
5404 UINT32 *pcbBlobSize);
5405
5406 HRESULT (STDMETHODCALLTYPE *GetBlob)(
5407 IMFActivate *This,
5408 REFGUID guidKey,
5409 UINT8 *pBuf,
5410 UINT32 cbBufSize,
5411 UINT32 *pcbBlobSize);
5412
5413 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
5414 IMFActivate *This,
5415 REFGUID guidKey,
5416 UINT8 **ppBuf,
5417 UINT32 *pcbSize);
5418
5419 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
5420 IMFActivate *This,
5421 REFGUID guidKey,
5422 REFIID riid,
5423 LPVOID *ppv);
5424
5425 HRESULT (STDMETHODCALLTYPE *SetItem)(
5426 IMFActivate *This,
5427 REFGUID guidKey,
5428 REFPROPVARIANT Value);
5429
5430 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
5431 IMFActivate *This,
5432 REFGUID guidKey);
5433
5434 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
5435 IMFActivate *This);
5436
5437 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
5438 IMFActivate *This,
5439 REFGUID guidKey,
5440 UINT32 unValue);
5441
5442 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
5443 IMFActivate *This,
5444 REFGUID guidKey,
5445 UINT64 unValue);
5446
5447 HRESULT (STDMETHODCALLTYPE *SetDouble)(
5448 IMFActivate *This,
5449 REFGUID guidKey,
5450 double fValue);
5451
5452 HRESULT (STDMETHODCALLTYPE *SetGUID)(
5453 IMFActivate *This,
5454 REFGUID guidKey,
5455 REFGUID guidValue);
5456
5457 HRESULT (STDMETHODCALLTYPE *SetString)(
5458 IMFActivate *This,
5459 REFGUID guidKey,
5460 LPCWSTR wszValue);
5461
5462 HRESULT (STDMETHODCALLTYPE *SetBlob)(
5463 IMFActivate *This,
5464 REFGUID guidKey,
5465 const UINT8 *pBuf,
5466 UINT32 cbBufSize);
5467
5468 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
5469 IMFActivate *This,
5470 REFGUID guidKey,
5471 IUnknown *pUnknown);
5472
5473 HRESULT (STDMETHODCALLTYPE *LockStore)(
5474 IMFActivate *This);
5475
5476 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
5477 IMFActivate *This);
5478
5479 HRESULT (STDMETHODCALLTYPE *GetCount)(
5480 IMFActivate *This,
5481 UINT32 *pcItems);
5482
5483 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
5484 IMFActivate *This,
5485 UINT32 unIndex,
5486 GUID *pguidKey,
5487 PROPVARIANT *pValue);
5488
5489 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
5490 IMFActivate *This,
5491 IMFAttributes *pDest);
5492
5493 /*** IMFActivate methods ***/
5494 HRESULT (STDMETHODCALLTYPE *ActivateObject)(
5495 IMFActivate *This,
5496 REFIID riid,
5497 void **ppv);
5498
5499 HRESULT (STDMETHODCALLTYPE *ShutdownObject)(
5500 IMFActivate *This);
5501
5502 HRESULT (STDMETHODCALLTYPE *DetachObject)(
5503 IMFActivate *This);
5504
5505 END_INTERFACE
5506} IMFActivateVtbl;
5507
5508interface IMFActivate {
5509 CONST_VTBL IMFActivateVtbl* lpVtbl;
5510};
5511
5512#ifdef COBJMACROS
5513#ifndef WIDL_C_INLINE_WRAPPERS
5514/*** IUnknown methods ***/
5515#define IMFActivate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5516#define IMFActivate_AddRef(This) (This)->lpVtbl->AddRef(This)
5517#define IMFActivate_Release(This) (This)->lpVtbl->Release(This)
5518/*** IMFAttributes methods ***/
5519#define IMFActivate_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
5520#define IMFActivate_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
5521#define IMFActivate_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
5522#define IMFActivate_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
5523#define IMFActivate_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
5524#define IMFActivate_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
5525#define IMFActivate_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
5526#define IMFActivate_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
5527#define IMFActivate_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
5528#define IMFActivate_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
5529#define IMFActivate_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
5530#define IMFActivate_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
5531#define IMFActivate_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
5532#define IMFActivate_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
5533#define IMFActivate_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
5534#define IMFActivate_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
5535#define IMFActivate_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
5536#define IMFActivate_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
5537#define IMFActivate_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
5538#define IMFActivate_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
5539#define IMFActivate_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
5540#define IMFActivate_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
5541#define IMFActivate_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
5542#define IMFActivate_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
5543#define IMFActivate_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
5544#define IMFActivate_LockStore(This) (This)->lpVtbl->LockStore(This)
5545#define IMFActivate_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
5546#define IMFActivate_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
5547#define IMFActivate_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
5548#define IMFActivate_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
5549/*** IMFActivate methods ***/
5550#define IMFActivate_ActivateObject(This,riid,ppv) (This)->lpVtbl->ActivateObject(This,riid,ppv)
5551#define IMFActivate_ShutdownObject(This) (This)->lpVtbl->ShutdownObject(This)
5552#define IMFActivate_DetachObject(This) (This)->lpVtbl->DetachObject(This)
5553#else
5554/*** IUnknown methods ***/
5555static FORCEINLINE HRESULT IMFActivate_QueryInterface(IMFActivate* This,REFIID riid,void **ppvObject) {
5556 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5557}
5558static FORCEINLINE ULONG IMFActivate_AddRef(IMFActivate* This) {
5559 return This->lpVtbl->AddRef(This);
5560}
5561static FORCEINLINE ULONG IMFActivate_Release(IMFActivate* This) {
5562 return This->lpVtbl->Release(This);
5563}
5564/*** IMFAttributes methods ***/
5565static FORCEINLINE HRESULT IMFActivate_GetItem(IMFActivate* This,REFGUID guidKey,PROPVARIANT *pValue) {
5566 return This->lpVtbl->GetItem(This,guidKey,pValue);
5567}
5568static FORCEINLINE HRESULT IMFActivate_GetItemType(IMFActivate* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
5569 return This->lpVtbl->GetItemType(This,guidKey,pType);
5570}
5571static FORCEINLINE HRESULT IMFActivate_CompareItem(IMFActivate* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
5572 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
5573}
5574static FORCEINLINE HRESULT IMFActivate_Compare(IMFActivate* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
5575 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
5576}
5577static FORCEINLINE HRESULT IMFActivate_GetUINT32(IMFActivate* This,REFGUID guidKey,UINT32 *punValue) {
5578 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
5579}
5580static FORCEINLINE HRESULT IMFActivate_GetUINT64(IMFActivate* This,REFGUID guidKey,UINT64 *punValue) {
5581 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
5582}
5583static FORCEINLINE HRESULT IMFActivate_GetDouble(IMFActivate* This,REFGUID guidKey,double *pfValue) {
5584 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
5585}
5586static FORCEINLINE HRESULT IMFActivate_GetGUID(IMFActivate* This,REFGUID guidKey,GUID *pguidValue) {
5587 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
5588}
5589static FORCEINLINE HRESULT IMFActivate_GetStringLength(IMFActivate* This,REFGUID guidKey,UINT32 *pcchLength) {
5590 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
5591}
5592static FORCEINLINE HRESULT IMFActivate_GetString(IMFActivate* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
5593 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
5594}
5595static FORCEINLINE HRESULT IMFActivate_GetAllocatedString(IMFActivate* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
5596 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
5597}
5598static FORCEINLINE HRESULT IMFActivate_GetBlobSize(IMFActivate* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
5599 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
5600}
5601static FORCEINLINE HRESULT IMFActivate_GetBlob(IMFActivate* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
5602 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
5603}
5604static FORCEINLINE HRESULT IMFActivate_GetAllocatedBlob(IMFActivate* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
5605 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
5606}
5607static FORCEINLINE HRESULT IMFActivate_GetUnknown(IMFActivate* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
5608 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
5609}
5610static FORCEINLINE HRESULT IMFActivate_SetItem(IMFActivate* This,REFGUID guidKey,REFPROPVARIANT Value) {
5611 return This->lpVtbl->SetItem(This,guidKey,Value);
5612}
5613static FORCEINLINE HRESULT IMFActivate_DeleteItem(IMFActivate* This,REFGUID guidKey) {
5614 return This->lpVtbl->DeleteItem(This,guidKey);
5615}
5616static FORCEINLINE HRESULT IMFActivate_DeleteAllItems(IMFActivate* This) {
5617 return This->lpVtbl->DeleteAllItems(This);
5618}
5619static FORCEINLINE HRESULT IMFActivate_SetUINT32(IMFActivate* This,REFGUID guidKey,UINT32 unValue) {
5620 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
5621}
5622static FORCEINLINE HRESULT IMFActivate_SetUINT64(IMFActivate* This,REFGUID guidKey,UINT64 unValue) {
5623 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
5624}
5625static FORCEINLINE HRESULT IMFActivate_SetDouble(IMFActivate* This,REFGUID guidKey,double fValue) {
5626 return This->lpVtbl->SetDouble(This,guidKey,fValue);
5627}
5628static FORCEINLINE HRESULT IMFActivate_SetGUID(IMFActivate* This,REFGUID guidKey,REFGUID guidValue) {
5629 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
5630}
5631static FORCEINLINE HRESULT IMFActivate_SetString(IMFActivate* This,REFGUID guidKey,LPCWSTR wszValue) {
5632 return This->lpVtbl->SetString(This,guidKey,wszValue);
5633}
5634static FORCEINLINE HRESULT IMFActivate_SetBlob(IMFActivate* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
5635 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
5636}
5637static FORCEINLINE HRESULT IMFActivate_SetUnknown(IMFActivate* This,REFGUID guidKey,IUnknown *pUnknown) {
5638 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
5639}
5640static FORCEINLINE HRESULT IMFActivate_LockStore(IMFActivate* This) {
5641 return This->lpVtbl->LockStore(This);
5642}
5643static FORCEINLINE HRESULT IMFActivate_UnlockStore(IMFActivate* This) {
5644 return This->lpVtbl->UnlockStore(This);
5645}
5646static FORCEINLINE HRESULT IMFActivate_GetCount(IMFActivate* This,UINT32 *pcItems) {
5647 return This->lpVtbl->GetCount(This,pcItems);
5648}
5649static FORCEINLINE HRESULT IMFActivate_GetItemByIndex(IMFActivate* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
5650 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
5651}
5652static FORCEINLINE HRESULT IMFActivate_CopyAllItems(IMFActivate* This,IMFAttributes *pDest) {
5653 return This->lpVtbl->CopyAllItems(This,pDest);
5654}
5655/*** IMFActivate methods ***/
5656static FORCEINLINE HRESULT IMFActivate_ActivateObject(IMFActivate* This,REFIID riid,void **ppv) {
5657 return This->lpVtbl->ActivateObject(This,riid,ppv);
5658}
5659static FORCEINLINE HRESULT IMFActivate_ShutdownObject(IMFActivate* This) {
5660 return This->lpVtbl->ShutdownObject(This);
5661}
5662static FORCEINLINE HRESULT IMFActivate_DetachObject(IMFActivate* This) {
5663 return This->lpVtbl->DetachObject(This);
5664}
5665#endif
5666#endif
5667
5668#endif
5669
5670
5671#endif /* __IMFActivate_INTERFACE_DEFINED__ */
5672
5673#endif
5674
5675#if WINVER >= _WIN32_WINNT_WIN7
5676#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
5677typedef enum _MF_Plugin_Type {
5678 MF_Plugin_Type_MFT = 0,
5679 MF_Plugin_Type_MediaSource = 1,
5680 MF_Plugin_Type_MFT_MatchOutputType = 2,
5681 MF_Plugin_Type_Other = (DWORD)-1
5682} MF_Plugin_Type;
5683
5684/*****************************************************************************
5685 * IMFPluginControl interface
5686 */
5687#ifndef __IMFPluginControl_INTERFACE_DEFINED__
5688#define __IMFPluginControl_INTERFACE_DEFINED__
5689
5690DEFINE_GUID(IID_IMFPluginControl, 0x5c6c44bf, 0x1db6, 0x435b, 0x92,0x49, 0xe8,0xcd,0x10,0xfd,0xec,0x96);
5691#if defined(__cplusplus) && !defined(CINTERFACE)
5692MIDL_INTERFACE("5c6c44bf-1db6-435b-9249-e8cd10fdec96")
5693IMFPluginControl : public IUnknown
5694{
5695 virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
5696 DWORD pluginType,
5697 LPCWSTR selector,
5698 CLSID *clsid) = 0;
5699
5700 virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
5701 DWORD pluginType,
5702 DWORD index,
5703 LPWSTR *selector,
5704 CLSID *clsid) = 0;
5705
5706 virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
5707 DWORD pluginType,
5708 LPCWSTR selector,
5709 const CLSID *clsid) = 0;
5710
5711 virtual HRESULT STDMETHODCALLTYPE IsDisabled(
5712 DWORD pluginType,
5713 REFCLSID clsid) = 0;
5714
5715 virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
5716 DWORD pluginType,
5717 DWORD index,
5718 CLSID *clsid) = 0;
5719
5720 virtual HRESULT STDMETHODCALLTYPE SetDisabled(
5721 DWORD pluginType,
5722 REFCLSID clsid,
5723 WINBOOL disabled) = 0;
5724
5725};
5726#ifdef __CRT_UUID_DECL
5727__CRT_UUID_DECL(IMFPluginControl, 0x5c6c44bf, 0x1db6, 0x435b, 0x92,0x49, 0xe8,0xcd,0x10,0xfd,0xec,0x96)
5728#endif
5729#else
5730typedef struct IMFPluginControlVtbl {
5731 BEGIN_INTERFACE
5732
5733 /*** IUnknown methods ***/
5734 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5735 IMFPluginControl *This,
5736 REFIID riid,
5737 void **ppvObject);
5738
5739 ULONG (STDMETHODCALLTYPE *AddRef)(
5740 IMFPluginControl *This);
5741
5742 ULONG (STDMETHODCALLTYPE *Release)(
5743 IMFPluginControl *This);
5744
5745 /*** IMFPluginControl methods ***/
5746 HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
5747 IMFPluginControl *This,
5748 DWORD pluginType,
5749 LPCWSTR selector,
5750 CLSID *clsid);
5751
5752 HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
5753 IMFPluginControl *This,
5754 DWORD pluginType,
5755 DWORD index,
5756 LPWSTR *selector,
5757 CLSID *clsid);
5758
5759 HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
5760 IMFPluginControl *This,
5761 DWORD pluginType,
5762 LPCWSTR selector,
5763 const CLSID *clsid);
5764
5765 HRESULT (STDMETHODCALLTYPE *IsDisabled)(
5766 IMFPluginControl *This,
5767 DWORD pluginType,
5768 REFCLSID clsid);
5769
5770 HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
5771 IMFPluginControl *This,
5772 DWORD pluginType,
5773 DWORD index,
5774 CLSID *clsid);
5775
5776 HRESULT (STDMETHODCALLTYPE *SetDisabled)(
5777 IMFPluginControl *This,
5778 DWORD pluginType,
5779 REFCLSID clsid,
5780 WINBOOL disabled);
5781
5782 END_INTERFACE
5783} IMFPluginControlVtbl;
5784
5785interface IMFPluginControl {
5786 CONST_VTBL IMFPluginControlVtbl* lpVtbl;
5787};
5788
5789#ifdef COBJMACROS
5790#ifndef WIDL_C_INLINE_WRAPPERS
5791/*** IUnknown methods ***/
5792#define IMFPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5793#define IMFPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
5794#define IMFPluginControl_Release(This) (This)->lpVtbl->Release(This)
5795/*** IMFPluginControl methods ***/
5796#define IMFPluginControl_GetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid)
5797#define IMFPluginControl_GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid)
5798#define IMFPluginControl_SetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid)
5799#define IMFPluginControl_IsDisabled(This,pluginType,clsid) (This)->lpVtbl->IsDisabled(This,pluginType,clsid)
5800#define IMFPluginControl_GetDisabledByIndex(This,pluginType,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid)
5801#define IMFPluginControl_SetDisabled(This,pluginType,clsid,disabled) (This)->lpVtbl->SetDisabled(This,pluginType,clsid,disabled)
5802#else
5803/*** IUnknown methods ***/
5804static FORCEINLINE HRESULT IMFPluginControl_QueryInterface(IMFPluginControl* This,REFIID riid,void **ppvObject) {
5805 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5806}
5807static FORCEINLINE ULONG IMFPluginControl_AddRef(IMFPluginControl* This) {
5808 return This->lpVtbl->AddRef(This);
5809}
5810static FORCEINLINE ULONG IMFPluginControl_Release(IMFPluginControl* This) {
5811 return This->lpVtbl->Release(This);
5812}
5813/*** IMFPluginControl methods ***/
5814static FORCEINLINE HRESULT IMFPluginControl_GetPreferredClsid(IMFPluginControl* This,DWORD pluginType,LPCWSTR selector,CLSID *clsid) {
5815 return This->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid);
5816}
5817static FORCEINLINE HRESULT IMFPluginControl_GetPreferredClsidByIndex(IMFPluginControl* This,DWORD pluginType,DWORD index,LPWSTR *selector,CLSID *clsid) {
5818 return This->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid);
5819}
5820static FORCEINLINE HRESULT IMFPluginControl_SetPreferredClsid(IMFPluginControl* This,DWORD pluginType,LPCWSTR selector,const CLSID *clsid) {
5821 return This->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid);
5822}
5823static FORCEINLINE HRESULT IMFPluginControl_IsDisabled(IMFPluginControl* This,DWORD pluginType,REFCLSID clsid) {
5824 return This->lpVtbl->IsDisabled(This,pluginType,clsid);
5825}
5826static FORCEINLINE HRESULT IMFPluginControl_GetDisabledByIndex(IMFPluginControl* This,DWORD pluginType,DWORD index,CLSID *clsid) {
5827 return This->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid);
5828}
5829static FORCEINLINE HRESULT IMFPluginControl_SetDisabled(IMFPluginControl* This,DWORD pluginType,REFCLSID clsid,WINBOOL disabled) {
5830 return This->lpVtbl->SetDisabled(This,pluginType,clsid,disabled);
5831}
5832#endif
5833#endif
5834
5835#endif
5836
5837
5838#endif /* __IMFPluginControl_INTERFACE_DEFINED__ */
5839
5840
5841typedef enum MF_PLUGIN_CONTROL_POLICY {
5842 MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0,
5843 MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1,
5844 MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2,
5845 MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS_EDGEMODE = 3
5846} MF_PLUGIN_CONTROL_POLICY;
5847
5848/*****************************************************************************
5849 * IMFPluginControl2 interface
5850 */
5851#ifndef __IMFPluginControl2_INTERFACE_DEFINED__
5852#define __IMFPluginControl2_INTERFACE_DEFINED__
5853
5854DEFINE_GUID(IID_IMFPluginControl2, 0xc6982083, 0x3ddc, 0x45cb, 0xaf,0x5e, 0x0f,0x7a,0x8c,0xe4,0xde,0x77);
5855#if defined(__cplusplus) && !defined(CINTERFACE)
5856MIDL_INTERFACE("c6982083-3ddc-45cb-af5e-0f7a8ce4de77")
5857IMFPluginControl2 : public IMFPluginControl
5858{
5859 virtual HRESULT STDMETHODCALLTYPE SetPolicy(
5860 MF_PLUGIN_CONTROL_POLICY policy) = 0;
5861
5862};
5863#ifdef __CRT_UUID_DECL
5864__CRT_UUID_DECL(IMFPluginControl2, 0xc6982083, 0x3ddc, 0x45cb, 0xaf,0x5e, 0x0f,0x7a,0x8c,0xe4,0xde,0x77)
5865#endif
5866#else
5867typedef struct IMFPluginControl2Vtbl {
5868 BEGIN_INTERFACE
5869
5870 /*** IUnknown methods ***/
5871 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5872 IMFPluginControl2 *This,
5873 REFIID riid,
5874 void **ppvObject);
5875
5876 ULONG (STDMETHODCALLTYPE *AddRef)(
5877 IMFPluginControl2 *This);
5878
5879 ULONG (STDMETHODCALLTYPE *Release)(
5880 IMFPluginControl2 *This);
5881
5882 /*** IMFPluginControl methods ***/
5883 HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
5884 IMFPluginControl2 *This,
5885 DWORD pluginType,
5886 LPCWSTR selector,
5887 CLSID *clsid);
5888
5889 HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
5890 IMFPluginControl2 *This,
5891 DWORD pluginType,
5892 DWORD index,
5893 LPWSTR *selector,
5894 CLSID *clsid);
5895
5896 HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
5897 IMFPluginControl2 *This,
5898 DWORD pluginType,
5899 LPCWSTR selector,
5900 const CLSID *clsid);
5901
5902 HRESULT (STDMETHODCALLTYPE *IsDisabled)(
5903 IMFPluginControl2 *This,
5904 DWORD pluginType,
5905 REFCLSID clsid);
5906
5907 HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
5908 IMFPluginControl2 *This,
5909 DWORD pluginType,
5910 DWORD index,
5911 CLSID *clsid);
5912
5913 HRESULT (STDMETHODCALLTYPE *SetDisabled)(
5914 IMFPluginControl2 *This,
5915 DWORD pluginType,
5916 REFCLSID clsid,
5917 WINBOOL disabled);
5918
5919 /*** IMFPluginControl2 methods ***/
5920 HRESULT (STDMETHODCALLTYPE *SetPolicy)(
5921 IMFPluginControl2 *This,
5922 MF_PLUGIN_CONTROL_POLICY policy);
5923
5924 END_INTERFACE
5925} IMFPluginControl2Vtbl;
5926
5927interface IMFPluginControl2 {
5928 CONST_VTBL IMFPluginControl2Vtbl* lpVtbl;
5929};
5930
5931#ifdef COBJMACROS
5932#ifndef WIDL_C_INLINE_WRAPPERS
5933/*** IUnknown methods ***/
5934#define IMFPluginControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5935#define IMFPluginControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
5936#define IMFPluginControl2_Release(This) (This)->lpVtbl->Release(This)
5937/*** IMFPluginControl methods ***/
5938#define IMFPluginControl2_GetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid)
5939#define IMFPluginControl2_GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid)
5940#define IMFPluginControl2_SetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid)
5941#define IMFPluginControl2_IsDisabled(This,pluginType,clsid) (This)->lpVtbl->IsDisabled(This,pluginType,clsid)
5942#define IMFPluginControl2_GetDisabledByIndex(This,pluginType,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid)
5943#define IMFPluginControl2_SetDisabled(This,pluginType,clsid,disabled) (This)->lpVtbl->SetDisabled(This,pluginType,clsid,disabled)
5944/*** IMFPluginControl2 methods ***/
5945#define IMFPluginControl2_SetPolicy(This,policy) (This)->lpVtbl->SetPolicy(This,policy)
5946#else
5947/*** IUnknown methods ***/
5948static FORCEINLINE HRESULT IMFPluginControl2_QueryInterface(IMFPluginControl2* This,REFIID riid,void **ppvObject) {
5949 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5950}
5951static FORCEINLINE ULONG IMFPluginControl2_AddRef(IMFPluginControl2* This) {
5952 return This->lpVtbl->AddRef(This);
5953}
5954static FORCEINLINE ULONG IMFPluginControl2_Release(IMFPluginControl2* This) {
5955 return This->lpVtbl->Release(This);
5956}
5957/*** IMFPluginControl methods ***/
5958static FORCEINLINE HRESULT IMFPluginControl2_GetPreferredClsid(IMFPluginControl2* This,DWORD pluginType,LPCWSTR selector,CLSID *clsid) {
5959 return This->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid);
5960}
5961static FORCEINLINE HRESULT IMFPluginControl2_GetPreferredClsidByIndex(IMFPluginControl2* This,DWORD pluginType,DWORD index,LPWSTR *selector,CLSID *clsid) {
5962 return This->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid);
5963}
5964static FORCEINLINE HRESULT IMFPluginControl2_SetPreferredClsid(IMFPluginControl2* This,DWORD pluginType,LPCWSTR selector,const CLSID *clsid) {
5965 return This->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid);
5966}
5967static FORCEINLINE HRESULT IMFPluginControl2_IsDisabled(IMFPluginControl2* This,DWORD pluginType,REFCLSID clsid) {
5968 return This->lpVtbl->IsDisabled(This,pluginType,clsid);
5969}
5970static FORCEINLINE HRESULT IMFPluginControl2_GetDisabledByIndex(IMFPluginControl2* This,DWORD pluginType,DWORD index,CLSID *clsid) {
5971 return This->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid);
5972}
5973static FORCEINLINE HRESULT IMFPluginControl2_SetDisabled(IMFPluginControl2* This,DWORD pluginType,REFCLSID clsid,WINBOOL disabled) {
5974 return This->lpVtbl->SetDisabled(This,pluginType,clsid,disabled);
5975}
5976/*** IMFPluginControl2 methods ***/
5977static FORCEINLINE HRESULT IMFPluginControl2_SetPolicy(IMFPluginControl2* This,MF_PLUGIN_CONTROL_POLICY policy) {
5978 return This->lpVtbl->SetPolicy(This,policy);
5979}
5980#endif
5981#endif
5982
5983#endif
5984
5985
5986#endif /* __IMFPluginControl2_INTERFACE_DEFINED__ */
5987
5988#endif
5989
5990#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
5991/*****************************************************************************
5992 * IMFDXGIDeviceManager interface
5993 */
5994#ifndef __IMFDXGIDeviceManager_INTERFACE_DEFINED__
5995#define __IMFDXGIDeviceManager_INTERFACE_DEFINED__
5996
5997DEFINE_GUID(IID_IMFDXGIDeviceManager, 0xeb533d5d, 0x2db6, 0x40f8, 0x97,0xa9, 0x49,0x46,0x92,0x01,0x4f,0x07);
5998#if defined(__cplusplus) && !defined(CINTERFACE)
5999MIDL_INTERFACE("eb533d5d-2db6-40f8-97a9-494692014f07")
6000IMFDXGIDeviceManager : public IUnknown
6001{
6002 virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle(
6003 HANDLE hDevice) = 0;
6004
6005 virtual HRESULT STDMETHODCALLTYPE GetVideoService(
6006 HANDLE hDevice,
6007 REFIID riid,
6008 void **ppService) = 0;
6009
6010 virtual HRESULT STDMETHODCALLTYPE LockDevice(
6011 HANDLE hDevice,
6012 REFIID riid,
6013 void **ppUnkDevice,
6014 WINBOOL fBlock) = 0;
6015
6016 virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle(
6017 HANDLE *phDevice) = 0;
6018
6019 virtual HRESULT STDMETHODCALLTYPE ResetDevice(
6020 IUnknown *pUnkDevice,
6021 UINT resetToken) = 0;
6022
6023 virtual HRESULT STDMETHODCALLTYPE TestDevice(
6024 HANDLE hDevice) = 0;
6025
6026 virtual HRESULT STDMETHODCALLTYPE UnlockDevice(
6027 HANDLE hDevice,
6028 WINBOOL fSaveState) = 0;
6029
6030};
6031#ifdef __CRT_UUID_DECL
6032__CRT_UUID_DECL(IMFDXGIDeviceManager, 0xeb533d5d, 0x2db6, 0x40f8, 0x97,0xa9, 0x49,0x46,0x92,0x01,0x4f,0x07)
6033#endif
6034#else
6035typedef struct IMFDXGIDeviceManagerVtbl {
6036 BEGIN_INTERFACE
6037
6038 /*** IUnknown methods ***/
6039 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6040 IMFDXGIDeviceManager *This,
6041 REFIID riid,
6042 void **ppvObject);
6043
6044 ULONG (STDMETHODCALLTYPE *AddRef)(
6045 IMFDXGIDeviceManager *This);
6046
6047 ULONG (STDMETHODCALLTYPE *Release)(
6048 IMFDXGIDeviceManager *This);
6049
6050 /*** IMFDXGIDeviceManager methods ***/
6051 HRESULT (STDMETHODCALLTYPE *CloseDeviceHandle)(
6052 IMFDXGIDeviceManager *This,
6053 HANDLE hDevice);
6054
6055 HRESULT (STDMETHODCALLTYPE *GetVideoService)(
6056 IMFDXGIDeviceManager *This,
6057 HANDLE hDevice,
6058 REFIID riid,
6059 void **ppService);
6060
6061 HRESULT (STDMETHODCALLTYPE *LockDevice)(
6062 IMFDXGIDeviceManager *This,
6063 HANDLE hDevice,
6064 REFIID riid,
6065 void **ppUnkDevice,
6066 WINBOOL fBlock);
6067
6068 HRESULT (STDMETHODCALLTYPE *OpenDeviceHandle)(
6069 IMFDXGIDeviceManager *This,
6070 HANDLE *phDevice);
6071
6072 HRESULT (STDMETHODCALLTYPE *ResetDevice)(
6073 IMFDXGIDeviceManager *This,
6074 IUnknown *pUnkDevice,
6075 UINT resetToken);
6076
6077 HRESULT (STDMETHODCALLTYPE *TestDevice)(
6078 IMFDXGIDeviceManager *This,
6079 HANDLE hDevice);
6080
6081 HRESULT (STDMETHODCALLTYPE *UnlockDevice)(
6082 IMFDXGIDeviceManager *This,
6083 HANDLE hDevice,
6084 WINBOOL fSaveState);
6085
6086 END_INTERFACE
6087} IMFDXGIDeviceManagerVtbl;
6088
6089interface IMFDXGIDeviceManager {
6090 CONST_VTBL IMFDXGIDeviceManagerVtbl* lpVtbl;
6091};
6092
6093#ifdef COBJMACROS
6094#ifndef WIDL_C_INLINE_WRAPPERS
6095/*** IUnknown methods ***/
6096#define IMFDXGIDeviceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6097#define IMFDXGIDeviceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
6098#define IMFDXGIDeviceManager_Release(This) (This)->lpVtbl->Release(This)
6099/*** IMFDXGIDeviceManager methods ***/
6100#define IMFDXGIDeviceManager_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
6101#define IMFDXGIDeviceManager_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService)
6102#define IMFDXGIDeviceManager_LockDevice(This,hDevice,riid,ppUnkDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,riid,ppUnkDevice,fBlock)
6103#define IMFDXGIDeviceManager_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
6104#define IMFDXGIDeviceManager_ResetDevice(This,pUnkDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pUnkDevice,resetToken)
6105#define IMFDXGIDeviceManager_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice)
6106#define IMFDXGIDeviceManager_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState)
6107#else
6108/*** IUnknown methods ***/
6109static FORCEINLINE HRESULT IMFDXGIDeviceManager_QueryInterface(IMFDXGIDeviceManager* This,REFIID riid,void **ppvObject) {
6110 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6111}
6112static FORCEINLINE ULONG IMFDXGIDeviceManager_AddRef(IMFDXGIDeviceManager* This) {
6113 return This->lpVtbl->AddRef(This);
6114}
6115static FORCEINLINE ULONG IMFDXGIDeviceManager_Release(IMFDXGIDeviceManager* This) {
6116 return This->lpVtbl->Release(This);
6117}
6118/*** IMFDXGIDeviceManager methods ***/
6119static FORCEINLINE HRESULT IMFDXGIDeviceManager_CloseDeviceHandle(IMFDXGIDeviceManager* This,HANDLE hDevice) {
6120 return This->lpVtbl->CloseDeviceHandle(This,hDevice);
6121}
6122static FORCEINLINE HRESULT IMFDXGIDeviceManager_GetVideoService(IMFDXGIDeviceManager* This,HANDLE hDevice,REFIID riid,void **ppService) {
6123 return This->lpVtbl->GetVideoService(This,hDevice,riid,ppService);
6124}
6125static FORCEINLINE HRESULT IMFDXGIDeviceManager_LockDevice(IMFDXGIDeviceManager* This,HANDLE hDevice,REFIID riid,void **ppUnkDevice,WINBOOL fBlock) {
6126 return This->lpVtbl->LockDevice(This,hDevice,riid,ppUnkDevice,fBlock);
6127}
6128static FORCEINLINE HRESULT IMFDXGIDeviceManager_OpenDeviceHandle(IMFDXGIDeviceManager* This,HANDLE *phDevice) {
6129 return This->lpVtbl->OpenDeviceHandle(This,phDevice);
6130}
6131static FORCEINLINE HRESULT IMFDXGIDeviceManager_ResetDevice(IMFDXGIDeviceManager* This,IUnknown *pUnkDevice,UINT resetToken) {
6132 return This->lpVtbl->ResetDevice(This,pUnkDevice,resetToken);
6133}
6134static FORCEINLINE HRESULT IMFDXGIDeviceManager_TestDevice(IMFDXGIDeviceManager* This,HANDLE hDevice) {
6135 return This->lpVtbl->TestDevice(This,hDevice);
6136}
6137static FORCEINLINE HRESULT IMFDXGIDeviceManager_UnlockDevice(IMFDXGIDeviceManager* This,HANDLE hDevice,WINBOOL fSaveState) {
6138 return This->lpVtbl->UnlockDevice(This,hDevice,fSaveState);
6139}
6140#endif
6141#endif
6142
6143#endif
6144
6145
6146#endif /* __IMFDXGIDeviceManager_INTERFACE_DEFINED__ */
6147
6148
6149typedef enum _MF_STREAM_STATE {
6150 MF_STREAM_STATE_STOPPED = 0,
6151 MF_STREAM_STATE_PAUSED = 1,
6152 MF_STREAM_STATE_RUNNING = 2
6153} MF_STREAM_STATE;
6154#endif
6155
6156#endif
6157#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
6158#if NTDDI_VERSION >= NTDDI_WIN10_RS2
6159
6160/*****************************************************************************
6161 * IMFMuxStreamAttributesManager interface
6162 */
6163#ifndef __IMFMuxStreamAttributesManager_INTERFACE_DEFINED__
6164#define __IMFMuxStreamAttributesManager_INTERFACE_DEFINED__
6165
6166DEFINE_GUID(IID_IMFMuxStreamAttributesManager, 0xce8bd576, 0xe440, 0x43b3, 0xbe,0x34, 0x1e,0x53,0xf5,0x65,0xf7,0xe8);
6167#if defined(__cplusplus) && !defined(CINTERFACE)
6168MIDL_INTERFACE("ce8bd576-e440-43b3-be34-1e53f565f7e8")
6169IMFMuxStreamAttributesManager : public IUnknown
6170{
6171 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
6172 DWORD *pdwMuxStreamCount) = 0;
6173
6174 virtual HRESULT STDMETHODCALLTYPE GetAttributes(
6175 DWORD dwMuxStreamIndex,
6176 IMFAttributes **ppStreamAttributes) = 0;
6177
6178};
6179#ifdef __CRT_UUID_DECL
6180__CRT_UUID_DECL(IMFMuxStreamAttributesManager, 0xce8bd576, 0xe440, 0x43b3, 0xbe,0x34, 0x1e,0x53,0xf5,0x65,0xf7,0xe8)
6181#endif
6182#else
6183typedef struct IMFMuxStreamAttributesManagerVtbl {
6184 BEGIN_INTERFACE
6185
6186 /*** IUnknown methods ***/
6187 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6188 IMFMuxStreamAttributesManager *This,
6189 REFIID riid,
6190 void **ppvObject);
6191
6192 ULONG (STDMETHODCALLTYPE *AddRef)(
6193 IMFMuxStreamAttributesManager *This);
6194
6195 ULONG (STDMETHODCALLTYPE *Release)(
6196 IMFMuxStreamAttributesManager *This);
6197
6198 /*** IMFMuxStreamAttributesManager methods ***/
6199 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
6200 IMFMuxStreamAttributesManager *This,
6201 DWORD *pdwMuxStreamCount);
6202
6203 HRESULT (STDMETHODCALLTYPE *GetAttributes)(
6204 IMFMuxStreamAttributesManager *This,
6205 DWORD dwMuxStreamIndex,
6206 IMFAttributes **ppStreamAttributes);
6207
6208 END_INTERFACE
6209} IMFMuxStreamAttributesManagerVtbl;
6210
6211interface IMFMuxStreamAttributesManager {
6212 CONST_VTBL IMFMuxStreamAttributesManagerVtbl* lpVtbl;
6213};
6214
6215#ifdef COBJMACROS
6216#ifndef WIDL_C_INLINE_WRAPPERS
6217/*** IUnknown methods ***/
6218#define IMFMuxStreamAttributesManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6219#define IMFMuxStreamAttributesManager_AddRef(This) (This)->lpVtbl->AddRef(This)
6220#define IMFMuxStreamAttributesManager_Release(This) (This)->lpVtbl->Release(This)
6221/*** IMFMuxStreamAttributesManager methods ***/
6222#define IMFMuxStreamAttributesManager_GetStreamCount(This,pdwMuxStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwMuxStreamCount)
6223#define IMFMuxStreamAttributesManager_GetAttributes(This,dwMuxStreamIndex,ppStreamAttributes) (This)->lpVtbl->GetAttributes(This,dwMuxStreamIndex,ppStreamAttributes)
6224#else
6225/*** IUnknown methods ***/
6226static FORCEINLINE HRESULT IMFMuxStreamAttributesManager_QueryInterface(IMFMuxStreamAttributesManager* This,REFIID riid,void **ppvObject) {
6227 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6228}
6229static FORCEINLINE ULONG IMFMuxStreamAttributesManager_AddRef(IMFMuxStreamAttributesManager* This) {
6230 return This->lpVtbl->AddRef(This);
6231}
6232static FORCEINLINE ULONG IMFMuxStreamAttributesManager_Release(IMFMuxStreamAttributesManager* This) {
6233 return This->lpVtbl->Release(This);
6234}
6235/*** IMFMuxStreamAttributesManager methods ***/
6236static FORCEINLINE HRESULT IMFMuxStreamAttributesManager_GetStreamCount(IMFMuxStreamAttributesManager* This,DWORD *pdwMuxStreamCount) {
6237 return This->lpVtbl->GetStreamCount(This,pdwMuxStreamCount);
6238}
6239static FORCEINLINE HRESULT IMFMuxStreamAttributesManager_GetAttributes(IMFMuxStreamAttributesManager* This,DWORD dwMuxStreamIndex,IMFAttributes **ppStreamAttributes) {
6240 return This->lpVtbl->GetAttributes(This,dwMuxStreamIndex,ppStreamAttributes);
6241}
6242#endif
6243#endif
6244
6245#endif
6246
6247
6248#endif /* __IMFMuxStreamAttributesManager_INTERFACE_DEFINED__ */
6249
6250
6251/*****************************************************************************
6252 * IMFMuxStreamMediaTypeManager interface
6253 */
6254#ifndef __IMFMuxStreamMediaTypeManager_INTERFACE_DEFINED__
6255#define __IMFMuxStreamMediaTypeManager_INTERFACE_DEFINED__
6256
6257DEFINE_GUID(IID_IMFMuxStreamMediaTypeManager, 0x505a2c72, 0x42f7, 0x4690, 0xae,0xab, 0x8f,0x51,0x3d,0x0f,0xfd,0xb8);
6258#if defined(__cplusplus) && !defined(CINTERFACE)
6259MIDL_INTERFACE("505a2c72-42f7-4690-aeab-8f513d0ffdb8")
6260IMFMuxStreamMediaTypeManager : public IUnknown
6261{
6262 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
6263 DWORD *pdwMuxStreamCount) = 0;
6264
6265 virtual HRESULT STDMETHODCALLTYPE GetMediaType(
6266 DWORD dwMuxStreamIndex,
6267 IMFMediaType **ppMediaType) = 0;
6268
6269 virtual HRESULT STDMETHODCALLTYPE GetStreamConfigurationCount(
6270 DWORD *pdwCount) = 0;
6271
6272 virtual HRESULT STDMETHODCALLTYPE AddStreamConfiguration(
6273 ULONGLONG ullStreamMask) = 0;
6274
6275 virtual HRESULT STDMETHODCALLTYPE RemoveStreamConfiguration(
6276 ULONGLONG ullStreamMask) = 0;
6277
6278 virtual HRESULT STDMETHODCALLTYPE GetStreamConfiguration(
6279 DWORD ulIndex,
6280 ULONGLONG *pullStreamMask) = 0;
6281
6282};
6283#ifdef __CRT_UUID_DECL
6284__CRT_UUID_DECL(IMFMuxStreamMediaTypeManager, 0x505a2c72, 0x42f7, 0x4690, 0xae,0xab, 0x8f,0x51,0x3d,0x0f,0xfd,0xb8)
6285#endif
6286#else
6287typedef struct IMFMuxStreamMediaTypeManagerVtbl {
6288 BEGIN_INTERFACE
6289
6290 /*** IUnknown methods ***/
6291 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6292 IMFMuxStreamMediaTypeManager *This,
6293 REFIID riid,
6294 void **ppvObject);
6295
6296 ULONG (STDMETHODCALLTYPE *AddRef)(
6297 IMFMuxStreamMediaTypeManager *This);
6298
6299 ULONG (STDMETHODCALLTYPE *Release)(
6300 IMFMuxStreamMediaTypeManager *This);
6301
6302 /*** IMFMuxStreamMediaTypeManager methods ***/
6303 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
6304 IMFMuxStreamMediaTypeManager *This,
6305 DWORD *pdwMuxStreamCount);
6306
6307 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
6308 IMFMuxStreamMediaTypeManager *This,
6309 DWORD dwMuxStreamIndex,
6310 IMFMediaType **ppMediaType);
6311
6312 HRESULT (STDMETHODCALLTYPE *GetStreamConfigurationCount)(
6313 IMFMuxStreamMediaTypeManager *This,
6314 DWORD *pdwCount);
6315
6316 HRESULT (STDMETHODCALLTYPE *AddStreamConfiguration)(
6317 IMFMuxStreamMediaTypeManager *This,
6318 ULONGLONG ullStreamMask);
6319
6320 HRESULT (STDMETHODCALLTYPE *RemoveStreamConfiguration)(
6321 IMFMuxStreamMediaTypeManager *This,
6322 ULONGLONG ullStreamMask);
6323
6324 HRESULT (STDMETHODCALLTYPE *GetStreamConfiguration)(
6325 IMFMuxStreamMediaTypeManager *This,
6326 DWORD ulIndex,
6327 ULONGLONG *pullStreamMask);
6328
6329 END_INTERFACE
6330} IMFMuxStreamMediaTypeManagerVtbl;
6331
6332interface IMFMuxStreamMediaTypeManager {
6333 CONST_VTBL IMFMuxStreamMediaTypeManagerVtbl* lpVtbl;
6334};
6335
6336#ifdef COBJMACROS
6337#ifndef WIDL_C_INLINE_WRAPPERS
6338/*** IUnknown methods ***/
6339#define IMFMuxStreamMediaTypeManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6340#define IMFMuxStreamMediaTypeManager_AddRef(This) (This)->lpVtbl->AddRef(This)
6341#define IMFMuxStreamMediaTypeManager_Release(This) (This)->lpVtbl->Release(This)
6342/*** IMFMuxStreamMediaTypeManager methods ***/
6343#define IMFMuxStreamMediaTypeManager_GetStreamCount(This,pdwMuxStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwMuxStreamCount)
6344#define IMFMuxStreamMediaTypeManager_GetMediaType(This,dwMuxStreamIndex,ppMediaType) (This)->lpVtbl->GetMediaType(This,dwMuxStreamIndex,ppMediaType)
6345#define IMFMuxStreamMediaTypeManager_GetStreamConfigurationCount(This,pdwCount) (This)->lpVtbl->GetStreamConfigurationCount(This,pdwCount)
6346#define IMFMuxStreamMediaTypeManager_AddStreamConfiguration(This,ullStreamMask) (This)->lpVtbl->AddStreamConfiguration(This,ullStreamMask)
6347#define IMFMuxStreamMediaTypeManager_RemoveStreamConfiguration(This,ullStreamMask) (This)->lpVtbl->RemoveStreamConfiguration(This,ullStreamMask)
6348#define IMFMuxStreamMediaTypeManager_GetStreamConfiguration(This,ulIndex,pullStreamMask) (This)->lpVtbl->GetStreamConfiguration(This,ulIndex,pullStreamMask)
6349#else
6350/*** IUnknown methods ***/
6351static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_QueryInterface(IMFMuxStreamMediaTypeManager* This,REFIID riid,void **ppvObject) {
6352 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6353}
6354static FORCEINLINE ULONG IMFMuxStreamMediaTypeManager_AddRef(IMFMuxStreamMediaTypeManager* This) {
6355 return This->lpVtbl->AddRef(This);
6356}
6357static FORCEINLINE ULONG IMFMuxStreamMediaTypeManager_Release(IMFMuxStreamMediaTypeManager* This) {
6358 return This->lpVtbl->Release(This);
6359}
6360/*** IMFMuxStreamMediaTypeManager methods ***/
6361static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_GetStreamCount(IMFMuxStreamMediaTypeManager* This,DWORD *pdwMuxStreamCount) {
6362 return This->lpVtbl->GetStreamCount(This,pdwMuxStreamCount);
6363}
6364static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_GetMediaType(IMFMuxStreamMediaTypeManager* This,DWORD dwMuxStreamIndex,IMFMediaType **ppMediaType) {
6365 return This->lpVtbl->GetMediaType(This,dwMuxStreamIndex,ppMediaType);
6366}
6367static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_GetStreamConfigurationCount(IMFMuxStreamMediaTypeManager* This,DWORD *pdwCount) {
6368 return This->lpVtbl->GetStreamConfigurationCount(This,pdwCount);
6369}
6370static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_AddStreamConfiguration(IMFMuxStreamMediaTypeManager* This,ULONGLONG ullStreamMask) {
6371 return This->lpVtbl->AddStreamConfiguration(This,ullStreamMask);
6372}
6373static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_RemoveStreamConfiguration(IMFMuxStreamMediaTypeManager* This,ULONGLONG ullStreamMask) {
6374 return This->lpVtbl->RemoveStreamConfiguration(This,ullStreamMask);
6375}
6376static FORCEINLINE HRESULT IMFMuxStreamMediaTypeManager_GetStreamConfiguration(IMFMuxStreamMediaTypeManager* This,DWORD ulIndex,ULONGLONG *pullStreamMask) {
6377 return This->lpVtbl->GetStreamConfiguration(This,ulIndex,pullStreamMask);
6378}
6379#endif
6380#endif
6381
6382#endif
6383
6384
6385#endif /* __IMFMuxStreamMediaTypeManager_INTERFACE_DEFINED__ */
6386
6387
6388/*****************************************************************************
6389 * IMFMuxStreamSampleManager interface
6390 */
6391#ifndef __IMFMuxStreamSampleManager_INTERFACE_DEFINED__
6392#define __IMFMuxStreamSampleManager_INTERFACE_DEFINED__
6393
6394DEFINE_GUID(IID_IMFMuxStreamSampleManager, 0x74abbc19, 0xb1cc, 0x4e41, 0xbb,0x8b, 0x9d,0x9b,0x86,0xa8,0xf6,0xca);
6395#if defined(__cplusplus) && !defined(CINTERFACE)
6396MIDL_INTERFACE("74abbc19-b1cc-4e41-bb8b-9d9b86a8f6ca")
6397IMFMuxStreamSampleManager : public IUnknown
6398{
6399 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
6400 DWORD *pdwMuxStreamCount) = 0;
6401
6402 virtual HRESULT STDMETHODCALLTYPE GetSample(
6403 DWORD dwMuxStreamIndex,
6404 IMFSample **ppSample) = 0;
6405
6406 virtual ULONGLONG STDMETHODCALLTYPE GetStreamConfiguration(
6407 ) = 0;
6408
6409};
6410#ifdef __CRT_UUID_DECL
6411__CRT_UUID_DECL(IMFMuxStreamSampleManager, 0x74abbc19, 0xb1cc, 0x4e41, 0xbb,0x8b, 0x9d,0x9b,0x86,0xa8,0xf6,0xca)
6412#endif
6413#else
6414typedef struct IMFMuxStreamSampleManagerVtbl {
6415 BEGIN_INTERFACE
6416
6417 /*** IUnknown methods ***/
6418 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6419 IMFMuxStreamSampleManager *This,
6420 REFIID riid,
6421 void **ppvObject);
6422
6423 ULONG (STDMETHODCALLTYPE *AddRef)(
6424 IMFMuxStreamSampleManager *This);
6425
6426 ULONG (STDMETHODCALLTYPE *Release)(
6427 IMFMuxStreamSampleManager *This);
6428
6429 /*** IMFMuxStreamSampleManager methods ***/
6430 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
6431 IMFMuxStreamSampleManager *This,
6432 DWORD *pdwMuxStreamCount);
6433
6434 HRESULT (STDMETHODCALLTYPE *GetSample)(
6435 IMFMuxStreamSampleManager *This,
6436 DWORD dwMuxStreamIndex,
6437 IMFSample **ppSample);
6438
6439 ULONGLONG (STDMETHODCALLTYPE *GetStreamConfiguration)(
6440 IMFMuxStreamSampleManager *This);
6441
6442 END_INTERFACE
6443} IMFMuxStreamSampleManagerVtbl;
6444
6445interface IMFMuxStreamSampleManager {
6446 CONST_VTBL IMFMuxStreamSampleManagerVtbl* lpVtbl;
6447};
6448
6449#ifdef COBJMACROS
6450#ifndef WIDL_C_INLINE_WRAPPERS
6451/*** IUnknown methods ***/
6452#define IMFMuxStreamSampleManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6453#define IMFMuxStreamSampleManager_AddRef(This) (This)->lpVtbl->AddRef(This)
6454#define IMFMuxStreamSampleManager_Release(This) (This)->lpVtbl->Release(This)
6455/*** IMFMuxStreamSampleManager methods ***/
6456#define IMFMuxStreamSampleManager_GetStreamCount(This,pdwMuxStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwMuxStreamCount)
6457#define IMFMuxStreamSampleManager_GetSample(This,dwMuxStreamIndex,ppSample) (This)->lpVtbl->GetSample(This,dwMuxStreamIndex,ppSample)
6458#define IMFMuxStreamSampleManager_GetStreamConfiguration(This) (This)->lpVtbl->GetStreamConfiguration(This)
6459#else
6460/*** IUnknown methods ***/
6461static FORCEINLINE HRESULT IMFMuxStreamSampleManager_QueryInterface(IMFMuxStreamSampleManager* This,REFIID riid,void **ppvObject) {
6462 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6463}
6464static FORCEINLINE ULONG IMFMuxStreamSampleManager_AddRef(IMFMuxStreamSampleManager* This) {
6465 return This->lpVtbl->AddRef(This);
6466}
6467static FORCEINLINE ULONG IMFMuxStreamSampleManager_Release(IMFMuxStreamSampleManager* This) {
6468 return This->lpVtbl->Release(This);
6469}
6470/*** IMFMuxStreamSampleManager methods ***/
6471static FORCEINLINE HRESULT IMFMuxStreamSampleManager_GetStreamCount(IMFMuxStreamSampleManager* This,DWORD *pdwMuxStreamCount) {
6472 return This->lpVtbl->GetStreamCount(This,pdwMuxStreamCount);
6473}
6474static FORCEINLINE HRESULT IMFMuxStreamSampleManager_GetSample(IMFMuxStreamSampleManager* This,DWORD dwMuxStreamIndex,IMFSample **ppSample) {
6475 return This->lpVtbl->GetSample(This,dwMuxStreamIndex,ppSample);
6476}
6477static FORCEINLINE ULONGLONG IMFMuxStreamSampleManager_GetStreamConfiguration(IMFMuxStreamSampleManager* This) {
6478 return This->lpVtbl->GetStreamConfiguration(This);
6479}
6480#endif
6481#endif
6482
6483#endif
6484
6485
6486#endif /* __IMFMuxStreamSampleManager_INTERFACE_DEFINED__ */
6487
6488#endif
6489#endif
6490/* Begin additional prototypes for all interfaces */
6491
6492ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
6493unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
6494unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
6495void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
6496ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
6497unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
6498unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
6499void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
6500
6501/* End additional prototypes */
6502
6503#ifdef __cplusplus
6504}
6505#endif
6506
6507#endif /* __mfobjects_h__ */
Note: See TracBrowser for help on using the repository browser.