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

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: 33.3 KB
Line 
1cpp_quote("/**")
2cpp_quote(" * This file is part of the mingw-w64 runtime package.")
3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
4cpp_quote(" */")
5cpp_quote("")
6cpp_quote("#include <winapifamily.h>")
7cpp_quote("")
8
9import "unknwn.idl";
10import "propsys.idl";
11import "mediaobj.idl";
12
13#ifndef __QWORD_DEFINED
14#define __QWORD_DEFINED
15cpp_quote("")
16typedef ULONGLONG QWORD;
17#endif
18
19cpp_quote("")
20cpp_quote("#include <mmreg.h>")
21#include <mmreg.h>
22
23cpp_quote("")
24cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
25typedef enum _MF_ATTRIBUTE_TYPE {
26 MF_ATTRIBUTE_UINT32 = VT_UI4,
27 MF_ATTRIBUTE_UINT64 = VT_UI8,
28 MF_ATTRIBUTE_DOUBLE = VT_R8,
29 MF_ATTRIBUTE_GUID = VT_CLSID,
30 MF_ATTRIBUTE_STRING = VT_LPWSTR,
31 MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
32 MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
33} MF_ATTRIBUTE_TYPE;
34
35cpp_quote("")
36typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
37 MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
38 MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
39 MF_ATTRIBUTES_MATCH_ALL_ITEMS = 2,
40 MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
41 MF_ATTRIBUTES_MATCH_SMALLER = 4
42} MF_ATTRIBUTES_MATCH_TYPE;
43
44cpp_quote("")
45[object, uuid (2cd2d921-c447-44a7-a13c-4adabfc247e3)]
46interface IMFAttributes : IUnknown {
47 HRESULT GetItem (REFGUID guidKey,[in, out, ptr] PROPVARIANT *pValue);
48 HRESULT GetItemType (REFGUID guidKey,[out] MF_ATTRIBUTE_TYPE *pType);
49 HRESULT CompareItem (REFGUID guidKey, REFPROPVARIANT Value,[out] WINBOOL *pbResult);
50 HRESULT Compare (IMFAttributes *pTheirs, MF_ATTRIBUTES_MATCH_TYPE MatchType,[out] WINBOOL *pbResult);
51 HRESULT GetUINT32 (REFGUID guidKey,[out] UINT32 *punValue);
52 HRESULT GetUINT64 (REFGUID guidKey,[out] UINT64 *punValue);
53 HRESULT GetDouble (REFGUID guidKey,[out] double *pfValue);
54 HRESULT GetGUID (REFGUID guidKey,[out] GUID *pguidValue);
55 HRESULT GetStringLength (REFGUID guidKey,[out] UINT32 *pcchLength);
56 HRESULT GetString (REFGUID guidKey,[out, size_is (cchBufSize)] LPWSTR pwszValue, UINT32 cchBufSize,[in, out, ptr] UINT32 *pcchLength);
57 HRESULT GetAllocatedString (REFGUID guidKey,[out, size_is (,*pcchLength + 1)] LPWSTR *ppwszValue,[out] UINT32 *pcchLength);
58 HRESULT GetBlobSize (REFGUID guidKey,[out] UINT32 *pcbBlobSize);
59 HRESULT GetBlob (REFGUID guidKey,[out, size_is (cbBufSize)] UINT8 *pBuf, UINT32 cbBufSize,[in, out, ptr] UINT32 *pcbBlobSize);
60 HRESULT GetAllocatedBlob (REFGUID guidKey,[out, size_is (,*pcbSize)] UINT8 **ppBuf,[out] UINT32 *pcbSize);
61 HRESULT GetUnknown (REFGUID guidKey, REFIID riid,[out, iid_is (riid)] LPVOID *ppv);
62 HRESULT SetItem (REFGUID guidKey, REFPROPVARIANT Value);
63 HRESULT DeleteItem (REFGUID guidKey);
64 HRESULT DeleteAllItems ();
65 HRESULT SetUINT32 (REFGUID guidKey, UINT32 unValue);
66 HRESULT SetUINT64 (REFGUID guidKey, UINT64 unValue);
67 HRESULT SetDouble (REFGUID guidKey, double fValue);
68 HRESULT SetGUID (REFGUID guidKey, REFGUID guidValue);
69 HRESULT SetString (REFGUID guidKey,[in, string] LPCWSTR wszValue);
70 HRESULT SetBlob (REFGUID guidKey,[in, size_is (cbBufSize)] const UINT8 *pBuf, UINT32 cbBufSize);
71 HRESULT SetUnknown (REFGUID guidKey,[in] IUnknown *pUnknown);
72 HRESULT LockStore ();
73 HRESULT UnlockStore ();
74 HRESULT GetCount ([out] UINT32 *pcItems);
75 HRESULT GetItemByIndex (UINT32 unIndex,[out] GUID *pguidKey,[in, out, ptr] PROPVARIANT *pValue);
76 HRESULT CopyAllItems ([in] IMFAttributes *pDest);
77};
78
79cpp_quote("")
80enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
81 MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001
82};
83
84cpp_quote("")
85cpp_quote("STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
86cpp_quote("STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
87
88cpp_quote("")
89[object, uuid (045fa593-8799-42b8-BC8D-8968c6453507), local,]
90interface IMFMediaBuffer : IUnknown {
91 HRESULT Lock ([out] BYTE **ppbBuffer,[out] DWORD *pcbMaxLength,[out] DWORD *pcbCurrentLength);
92 HRESULT Unlock ();
93 HRESULT GetCurrentLength ([out] DWORD *pcbCurrentLength);
94 HRESULT SetCurrentLength ([in] DWORD cbCurrentLength);
95 HRESULT GetMaxLength ([out] DWORD *pcbMaxLength);
96}
97
98cpp_quote("")
99[object, uuid (c40a00f2-b93a-4d80-ae8c-5a1c634f58e4), local,]
100interface IMFSample : IMFAttributes {
101 HRESULT GetSampleFlags ([out] DWORD *pdwSampleFlags);
102 HRESULT SetSampleFlags ([in] DWORD dwSampleFlags);
103 HRESULT GetSampleTime ([out] LONGLONG *phnsSampleTime);
104 HRESULT SetSampleTime ([in] LONGLONG hnsSampleTime);
105 HRESULT GetSampleDuration ([out] LONGLONG *phnsSampleDuration);
106 HRESULT SetSampleDuration ([in] LONGLONG hnsSampleDuration);
107 HRESULT GetBufferCount ([out] DWORD *pdwBufferCount);
108 HRESULT GetBufferByIndex ([in] DWORD dwIndex,[out] IMFMediaBuffer **ppBuffer);
109 HRESULT ConvertToContiguousBuffer ([out] IMFMediaBuffer **ppBuffer);
110 HRESULT AddBuffer ([in] IMFMediaBuffer *pBuffer);
111 HRESULT RemoveBufferByIndex ([in] DWORD dwIndex);
112 HRESULT RemoveAllBuffers (void);
113 HRESULT GetTotalLength ([out] DWORD *pcbTotalLength);
114 HRESULT CopyToBuffer ([in] IMFMediaBuffer *pBuffer);
115};
116
117cpp_quote("")
118[object, uuid (7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb), local]
119interface IMF2DBuffer : IUnknown {
120 HRESULT Lock2D ([out] BYTE **ppbScanline0,[out] LONG *plPitch);
121 HRESULT Unlock2D ();
122 HRESULT GetScanline0AndPitch ([out] BYTE **pbScanline0,[out] LONG *plPitch);
123 HRESULT IsContiguousFormat ([out] WINBOOL *pfIsContiguous);
124 HRESULT GetContiguousLength ([out] DWORD *pcbLength);
125 HRESULT ContiguousCopyTo ([out, size_is (cbDestBuffer)] BYTE *pbDestBuffer,[in] DWORD cbDestBuffer);
126 HRESULT ContiguousCopyFrom ([in, size_is (cbSrcBuffer)] const BYTE *pbSrcBuffer,[in] DWORD cbSrcBuffer);
127}
128
129cpp_quote("")
130typedef enum _MF2DBuffer_LockFlags {
131 MF2DBuffer_LockFlags_LockTypeMask = 0x1 | 0x2 | 0x3,
132 MF2DBuffer_LockFlags_Read = 0x1,
133 MF2DBuffer_LockFlags_Write = 0x2,
134 MF2DBuffer_LockFlags_ReadWrite = 0x3,
135 MF2DBuffer_LockFlags_ForceDWORD = 0x7fffffff
136} MF2DBuffer_LockFlags;
137
138cpp_quote("")
139[object, uuid (33ae5ea6-4316-436f-8ddd-d73d22f829ec), local]
140interface IMF2DBuffer2 : IMF2DBuffer {
141 HRESULT Lock2DSize ([in] MF2DBuffer_LockFlags lockFlags,[out] BYTE **ppbScanline0,[out] LONG *plPitch,[out] BYTE **ppbBufferStart,[out] DWORD *pcbBufferLength);
142 HRESULT Copy2DTo ([in] IMF2DBuffer2 *pDestBuffer);
143};
144
145cpp_quote("")
146[object, uuid (e7174cfa-1c9e-48b1-8866-626226bfc258), local]
147interface IMFDXGIBuffer : IUnknown {
148 HRESULT GetResource ([in] REFIID riid,[out] LPVOID *ppvObject);
149 HRESULT GetSubresourceIndex ([out] UINT *puSubresource);
150 HRESULT GetUnknown ([in] REFIID guid,[in] REFIID riid,[out] LPVOID *ppvObject);
151 HRESULT SetUnknown ([in] REFIID guid,[in] IUnknown *pUnkData);
152};
153
154cpp_quote("")
155[object, uuid (44ae0fa8-ea31-4109-8d2e-4cae4997c555), local]
156interface IMFMediaType : IMFAttributes {
157 HRESULT GetMajorType ([out] GUID *pguidMajorType);
158 HRESULT IsCompressedFormat ([out] WINBOOL *pfCompressed);
159 HRESULT IsEqual ([in] IMFMediaType *pIMediaType,[out] DWORD *pdwFlags);
160 HRESULT GetRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation);
161 HRESULT FreeRepresentation ([in] GUID guidRepresentation,[in] LPVOID pvRepresentation);
162};
163
164cpp_quote("")
165cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001")
166cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002")
167cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004")
168cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008")
169cpp_quote("#endif")
170cpp_quote("")
171cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
172[object, uuid (26a0adc3-ce26-4672-9304-69552edd3faf), local]
173interface IMFAudioMediaType : IMFMediaType {
174 const WAVEFORMATEX *GetAudioFormat ();
175};
176cpp_quote("")
177cpp_quote("#ifndef _WINGDI_")
178#ifndef RGBQUAD
179typedef DWORD RGBQUAD;
180#endif
181
182cpp_quote("")
183typedef struct {
184 DWORD biSize;
185 LONG biWidth;
186 LONG biHeight;
187 WORD biPlanes;
188 WORD biBitCount;
189 DWORD biCompression;
190 DWORD biSizeImage;
191 LONG biXPelsPerMeter;
192 LONG biYPelsPerMeter;
193 DWORD biClrUsed;
194 DWORD biClrImportant;
195} BITMAPINFOHEADER;
196
197cpp_quote("")
198typedef struct {
199 BITMAPINFOHEADER bmiHeader;
200 RGBQUAD bmiColors[1];
201} BITMAPINFO;
202cpp_quote("#endif")
203
204cpp_quote("")
205typedef struct {
206 GUID guidMajorType;
207 GUID guidSubtype;
208} MFT_REGISTER_TYPE_INFO;
209cpp_quote("#endif")
210
211cpp_quote("#ifndef _MFVIDEOFORMAT_")
212cpp_quote("#define _MFVIDEOFORMAT_")
213cpp_quote("")
214cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
215typedef enum _MFVideoInterlaceMode {
216 MFVideoInterlace_Unknown = 0,
217 MFVideoInterlace_Progressive = 2,
218 MFVideoInterlace_FieldInterleavedUpperFirst = 3,
219 MFVideoInterlace_FieldInterleavedLowerFirst = 4,
220 MFVideoInterlace_FieldSingleUpper = 5,
221 MFVideoInterlace_FieldSingleLower = 6,
222 MFVideoInterlace_MixedInterlaceOrProgressive= 7,
223 MFVideoInterlace_Last,
224 MFVideoInterlace_ForceDWORD = 0x7fffffff
225} MFVideoInterlaceMode;
226cpp_quote("")
227cpp_quote("#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper")
228cpp_quote("#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower")
229
230cpp_quote("")
231typedef enum _MFVideoTransferFunction {
232 MFVideoTransFunc_Unknown = 0,
233 MFVideoTransFunc_10 = 1,
234 MFVideoTransFunc_18 = 2,
235 MFVideoTransFunc_20 = 3,
236 MFVideoTransFunc_22 = 4,
237 MFVideoTransFunc_709 = 5,
238 MFVideoTransFunc_240M = 6,
239 MFVideoTransFunc_sRGB = 7,
240 MFVideoTransFunc_28 = 8,
241 MFVideoTransFunc_Log_100 = 9,
242 MFVideoTransFunc_Log_316 = 10,
243 MFVideoTransFunc_709_sym = 11,
244 MFVideoTransFunc_2020_const = 12,
245 MFVideoTransFunc_2020 = 13,
246 MFVideoTransFunc_26 = 14,
247 MFVideoTransFunc_2084 = 15,
248 MFVideoTransFunc_HLG = 16,
249 MFVideoTransFunc_10_rel = 17,
250 MFVideoTransFunc_Last,
251 MFVideoTransFunc_ForceDWORD = 0x7fffffff
252} MFVideoTransferFunction;
253
254cpp_quote("")
255typedef enum _MFVideoPrimaries {
256 MFVideoPrimaries_Unknown = 0,
257 MFVideoPrimaries_reserved = 1,
258 MFVideoPrimaries_BT709 = 2,
259 MFVideoPrimaries_BT470_2_SysM = 3,
260 MFVideoPrimaries_BT470_2_SysBG = 4,
261 MFVideoPrimaries_SMPTE170M = 5,
262 MFVideoPrimaries_SMPTE240M = 6,
263 MFVideoPrimaries_EBU3213 = 7,
264 MFVideoPrimaries_SMPTE_C = 8,
265 MFVideoPrimaries_BT2020 = 9,
266 MFVideoPrimaries_XYZ = 10,
267 MFVideoPrimaries_DCI_P3 = 11,
268 MFVideoPrimaries_ACES = 12,
269 MFVideoPrimaries_Last,
270 MFVideoPrimaries_ForceDWORD = 0x7fffffff
271} MFVideoPrimaries;
272
273cpp_quote("")
274typedef enum _MFVideoLighting {
275 MFVideoLighting_Unknown = 0,
276 MFVideoLighting_bright=1,
277 MFVideoLighting_office=2,
278 MFVideoLighting_dim=3,
279 MFVideoLighting_dark=4,
280 MFVideoLighting_Last,
281 MFVideoLighting_ForceDWORD = 0x7fffffff
282} MFVideoLighting;
283
284cpp_quote("")
285typedef enum _MFVideoTransferMatrix {
286 MFVideoTransferMatrix_Unknown = 0,
287 MFVideoTransferMatrix_BT709 = 1,
288 MFVideoTransferMatrix_BT601 = 2,
289 MFVideoTransferMatrix_SMPTE240M = 3,
290 MFVideoTransferMatrix_BT2020_10 = 4,
291 MFVideoTransferMatrix_BT2020_12 = 5,
292 MFVideoTransferMatrix_Last,
293 MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
294} MFVideoTransferMatrix;
295
296cpp_quote("")
297typedef enum _MFVideoChromaSubsampling {
298 MFVideoChromaSubsampling_Unknown = 0,
299 MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
300 MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
301 MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
302 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
303 MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited |
304 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
305 MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
306 MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited |
307 MFVideoChromaSubsampling_Vertically_Cosited,
308 MFVideoChromaSubsampling_Cosited = MFVideoChromaSubsampling_Horizontally_Cosited |
309 MFVideoChromaSubsampling_Vertically_Cosited |
310 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
311 MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited+1,
312 MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
313} MFVideoChromaSubsampling;
314
315cpp_quote("")
316typedef enum _MFNominalRange {
317 MFNominalRange_Unknown = 0,
318 MFNominalRange_Normal = 1,
319 MFNominalRange_Wide = 2,
320 MFNominalRange_0_255 = 1,
321 MFNominalRange_16_235 = 2,
322 MFNominalRange_48_208 = 3,
323 MFNominalRange_64_127 = 4,
324 MFNominalRange_Last,
325 MFNominalRange_ForceDWORD = 0x7fffffff
326} MFNominalRange;
327cpp_quote("#endif")
328cpp_quote("")
329cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
330
331typedef enum _MFVideoFlags {
332 MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002,
333 MFVideoFlag_PAD_TO_None = 0 *0x0001,
334 MFVideoFlag_PAD_TO_4x3 = 1 *0x0001,
335 MFVideoFlag_PAD_TO_16x9 = 2 *0x0001,
336 MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010,
337 MFVideoFlag_SrcContentHintNone = 0 *0x0004,
338 MFVideoFlag_SrcContentHint16x9 = 1 *0x0004,
339 MFVideoFlag_SrcContentHint235_1 = 2 *0x0004,
340 MFVideoFlag_AnalogProtected = 0x0020,
341 MFVideoFlag_DigitallyProtected = 0x0040,
342 MFVideoFlag_ProgressiveContent = 0x0080,
343 MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400,
344 MFVideoFlag_FieldRepeatCountShift = 8,
345 MFVideoFlag_ProgressiveSeqReset = 0x0800,
346 MFVideoFlag_PanScanEnabled = 0x20000,
347 MFVideoFlag_LowerFieldFirst = 0x40000,
348 MFVideoFlag_BottomUpLinearRep = 0x80000,
349 MFVideoFlags_DXVASurface = 0x100000,
350 MFVideoFlags_RenderTargetSurface = 0x400000,
351 MFVideoFlags_ForceQWORD = 0x7fffffff
352} MFVideoFlags;
353cpp_quote("#endif")
354cpp_quote("")
355cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
356typedef struct _MFRatio {
357 DWORD Numerator;
358 DWORD Denominator;
359} MFRatio;
360
361cpp_quote("")
362typedef struct _MFOffset {
363 WORD fract;
364 short value;
365} MFOffset;
366typedef struct _MFVideoArea {
367 MFOffset OffsetX;
368 MFOffset OffsetY;
369 SIZE Area;
370} MFVideoArea;
371cpp_quote("#endif")
372cpp_quote("")
373cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
374typedef struct _MFVideoInfo {
375 DWORD dwWidth;
376 DWORD dwHeight;
377 MFRatio PixelAspectRatio;
378 MFVideoChromaSubsampling SourceChromaSubsampling;
379 MFVideoInterlaceMode InterlaceMode;
380 MFVideoTransferFunction TransferFunction;
381 MFVideoPrimaries ColorPrimaries;
382 MFVideoTransferMatrix TransferMatrix;
383 MFVideoLighting SourceLighting;
384 MFRatio FramesPerSecond;
385 MFNominalRange NominalRange;
386 MFVideoArea GeometricAperture;
387 MFVideoArea MinimumDisplayAperture;
388 MFVideoArea PanScanAperture;
389 unsigned __int64 VideoFlags;
390} MFVideoInfo;
391cpp_quote("#endif")
392cpp_quote("")
393cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
394typedef struct __MFAYUVSample {
395 BYTE bCrValue;
396 BYTE bCbValue;
397 BYTE bYValue;
398 BYTE bSampleAlpha8;
399} MFAYUVSample;
400
401cpp_quote("")
402typedef struct _MFARGB {
403 BYTE rgbBlue;
404 BYTE rgbGreen;
405 BYTE rgbRed;
406 BYTE rgbAlpha;
407} MFARGB;
408
409cpp_quote("")
410typedef union _MFPaletteEntry {
411 MFARGB ARGB;
412 MFAYUVSample AYCbCr;
413} MFPaletteEntry;
414cpp_quote("#endif")
415cpp_quote("")
416cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
417typedef struct _MFVideoSurfaceInfo {
418 DWORD Format;
419 DWORD PaletteEntries;
420 [size_is (PaletteEntries)] MFPaletteEntry Palette[];
421} MFVideoSurfaceInfo;
422
423cpp_quote("")
424typedef struct _MFVideoCompressedInfo {
425 LONGLONG AvgBitrate;
426 LONGLONG AvgBitErrorRate;
427 DWORD MaxKeyFrameSpacing;
428} MFVideoCompressedInfo;
429
430cpp_quote("")
431typedef struct _MFVIDEOFORMAT {
432 DWORD dwSize;
433 MFVideoInfo videoInfo;
434 GUID guidFormat;
435 MFVideoCompressedInfo compressedInfo;
436 MFVideoSurfaceInfo surfaceInfo;
437} MFVIDEOFORMAT;
438
439cpp_quote("")
440typedef enum _MFStandardVideoFormat {
441 MFStdVideoFormat_reserved = 0,
442 MFStdVideoFormat_NTSC,
443 MFStdVideoFormat_PAL,
444 MFStdVideoFormat_DVD_NTSC,
445 MFStdVideoFormat_DVD_PAL,
446 MFStdVideoFormat_DV_PAL,
447 MFStdVideoFormat_DV_NTSC,
448 MFStdVideoFormat_ATSC_SD480i,
449 MFStdVideoFormat_ATSC_HD1080i,
450 MFStdVideoFormat_ATSC_HD720p,
451} MFStandardVideoFormat;
452cpp_quote("#endif")
453cpp_quote("#endif")
454cpp_quote("")
455cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
456[object, uuid (b99f381f-a8f9-47a2-a5af-ca3a225a3890), local]
457interface IMFVideoMediaType : IMFMediaType {
458 const MFVIDEOFORMAT *GetVideoFormat ();
459 HRESULT GetVideoRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation,[in] LONG lStride);
460};
461cpp_quote("#endif")
462cpp_quote("")
463cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
464[object, uuid (ac6b7889-0740-4d51-8619-905994a55cc6)]
465interface IMFAsyncResult : IUnknown {
466 HRESULT GetState ([out] IUnknown **ppunkState);
467 HRESULT GetStatus ();
468 HRESULT SetStatus ([in] HRESULT hrStatus);
469 HRESULT GetObject ([out] IUnknown **ppObject);
470 [local] IUnknown *GetStateNoAddRef ();
471};
472
473cpp_quote("")
474[object, uuid (a27003cf-2354-4f2a-8d6a-ab7cff15437e),]
475interface IMFAsyncCallback : IUnknown {
476 HRESULT GetParameters ([out] DWORD *pdwFlags,[out] DWORD *pdwQueue);
477 HRESULT Invoke ([in] IMFAsyncResult *pAsyncResult);
478}
479cpp_quote("#endif")
480cpp_quote("")
481cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
482[object, uuid (c7a4dca1-f5f0-47b6-b92b-bf0106d25791), local]
483interface IMFAsyncCallbackLogging : IMFAsyncCallback {
484 void *GetObjectPointer ();
485 DWORD GetObjectTag ();
486}
487cpp_quote("#endif")
488cpp_quote("")
489cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
490cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001")
491cpp_quote("#define MFASYNC_SIGNAL_CALLBACK 0x00000002")
492cpp_quote("#define MFASYNC_BLOCKING_CALLBACK 0x00000004")
493cpp_quote("#define MFASYNC_REPLY_CALLBACK 0x00000008")
494cpp_quote("#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010")
495cpp_quote("")
496cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000")
497cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001")
498cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002")
499cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003")
500cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004")
501cpp_quote("#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005")
502cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007")
503cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000")
504cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF")
505
506cpp_quote("")
507enum {
508 MEUnknown = 0,
509 MEError = 1,
510 MEExtendedType = 2,
511 MENonFatalError = 3,
512 MEGenericV1Anchor = MENonFatalError,
513 MESessionUnknown = 100,
514 MESessionTopologySet = 101,
515 MESessionTopologiesCleared = 102,
516 MESessionStarted = 103,
517 MESessionPaused = 104,
518 MESessionStopped = 105,
519 MESessionClosed = 106,
520 MESessionEnded = 107,
521 MESessionRateChanged = 108,
522 MESessionScrubSampleComplete = 109,
523 MESessionCapabilitiesChanged = 110,
524 MESessionTopologyStatus = 111,
525 MESessionNotifyPresentationTime = 112,
526 MENewPresentation = 113,
527 MELicenseAcquisitionStart = 114,
528 MELicenseAcquisitionCompleted = 115,
529 MEIndividualizationStart = 116,
530 MEIndividualizationCompleted = 117,
531 MEEnablerProgress = 118,
532 MEEnablerCompleted = 119,
533 MEPolicyError = 120,
534 MEPolicyReport = 121,
535 MEBufferingStarted = 122,
536 MEBufferingStopped = 123,
537 MEConnectStart = 124,
538 MEConnectEnd = 125,
539 MEReconnectStart = 126,
540 MEReconnectEnd = 127,
541 MERendererEvent = 128,
542 MESessionStreamSinkFormatChanged = 129,
543 MESessionV1Anchor = MESessionStreamSinkFormatChanged,
544 MESourceUnknown = 200,
545 MESourceStarted = 201,
546 MEStreamStarted = 202,
547 MESourceSeeked = 203,
548 MEStreamSeeked = 204,
549 MENewStream = 205,
550 MEUpdatedStream = 206,
551 MESourceStopped = 207,
552 MEStreamStopped = 208,
553 MESourcePaused = 209,
554 MEStreamPaused = 210,
555 MEEndOfPresentation = 211,
556 MEEndOfStream = 212,
557 MEMediaSample = 213,
558 MEStreamTick = 214,
559 MEStreamThinMode = 215,
560 MEStreamFormatChanged = 216,
561 MESourceRateChanged = 217,
562 MEEndOfPresentationSegment = 218,
563 MESourceCharacteristicsChanged = 219,
564 MESourceRateChangeRequested = 220,
565 MESourceMetadataChanged = 221,
566 MESequencerSourceTopologyUpdated = 222,
567 MESourceV1Anchor = MESequencerSourceTopologyUpdated,
568 MESinkUnknown = 300,
569 MEStreamSinkStarted = 301,
570 MEStreamSinkStopped = 302,
571 MEStreamSinkPaused = 303,
572 MEStreamSinkRateChanged = 304,
573 MEStreamSinkRequestSample = 305,
574 MEStreamSinkMarker = 306,
575 MEStreamSinkPrerolled = 307,
576 MEStreamSinkScrubSampleComplete = 308,
577 MEStreamSinkFormatChanged = 309,
578 MEStreamSinkDeviceChanged = 310,
579 MEQualityNotify = 311,
580 MESinkInvalidated = 312,
581 MEAudioSessionNameChanged = 313,
582 MEAudioSessionVolumeChanged = 314,
583 MEAudioSessionDeviceRemoved = 315,
584 MEAudioSessionServerShutdown = 316,
585 MEAudioSessionGroupingParamChanged = 317,
586 MEAudioSessionIconChanged = 318,
587 MEAudioSessionFormatChanged = 319,
588 MEAudioSessionDisconnected = 320,
589 MEAudioSessionExclusiveModeOverride = 321,
590 MESinkV1Anchor = MEAudioSessionExclusiveModeOverride,
591 MECaptureAudioSessionVolumeChanged = 322,
592 MECaptureAudioSessionDeviceRemoved = 323,
593 MECaptureAudioSessionFormatChanged = 324,
594 MECaptureAudioSessionDisconnected = 325,
595 MECaptureAudioSessionExclusiveModeOverride = 326,
596 MECaptureAudioSessionServerShutdown = 327,
597 MESinkV2Anchor = MECaptureAudioSessionServerShutdown,
598 METrustUnknown = 400,
599 MEPolicyChanged = 401,
600 MEContentProtectionMessage = 402,
601 MEPolicySet = 403,
602 METrustV1Anchor = MEPolicySet,
603 MEWMDRMLicenseBackupCompleted = 500,
604 MEWMDRMLicenseBackupProgress = 501,
605 MEWMDRMLicenseRestoreCompleted = 502,
606 MEWMDRMLicenseRestoreProgress = 503,
607 MEWMDRMLicenseAcquisitionCompleted = 506,
608 MEWMDRMIndividualizationCompleted = 508,
609 MEWMDRMIndividualizationProgress = 513,
610 MEWMDRMProximityCompleted = 514,
611 MEWMDRMLicenseStoreCleaned = 515,
612 MEWMDRMRevocationDownloadCompleted = 516,
613 MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted,
614 METransformUnknown = 600,
615 METransformNeedInput,
616 METransformHaveOutput,
617 METransformDrainComplete,
618 METransformMarker,
619 METransformInputStreamStateChanged,
620 MEByteStreamCharacteristicsChanged = 700,
621 MEVideoCaptureDeviceRemoved = 800,
622 MEVideoCaptureDevicePreempted = 801,
623 MEStreamSinkFormatInvalidated = 802,
624 MEEncodingParameters = 803,
625 MEContentProtectionMetadata = 900,
626 MEDeviceThermalStateChanged = 950,
627 MEReservedMax = 10000
628};
629
630cpp_quote("")
631typedef DWORD MediaEventType;
632
633cpp_quote("")
634[object, uuid (DF598932-F10C-4e39-BBA2-C308F101DAA3)]
635interface IMFMediaEvent : IMFAttributes {
636 HRESULT GetType ([out] MediaEventType *pmet);
637 HRESULT GetExtendedType ([out] GUID *pguidExtendedType);
638 HRESULT GetStatus ([out] HRESULT *phrStatus);
639 HRESULT GetValue ([out] PROPVARIANT *pvValue);
640}
641
642cpp_quote("")
643cpp_quote("#define MF_EVENT_FLAG_NO_WAIT 0x00000001")
644
645cpp_quote("")
646interface IMFRemoteAsyncCallback;
647
648cpp_quote("")
649[object, uuid (2cd0bd52-BCD5-4b89-B62C-EADC0C031E7D)]
650interface IMFMediaEventGenerator : IUnknown {
651 HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
652 [local] HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
653 [call_as (BeginGetEvent)] HRESULT RemoteBeginGetEvent ([in] IMFRemoteAsyncCallback *pCallback);
654 [local] HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
655 [call_as (EndGetEvent)] HRESULT RemoteEndGetEvent ([in] IUnknown *pResult,[out] DWORD *pcbEvent,[out, size_is (,*pcbEvent)] BYTE **ppbEvent);
656 HRESULT QueueEvent ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
657}
658cpp_quote("#endif")
659cpp_quote("")
660cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
661[object, uuid (a27003d0-2354-4f2a-8d6a-ab7cff15437e),]
662interface IMFRemoteAsyncCallback : IUnknown {
663 HRESULT Invoke ([in] HRESULT hr,[in] IUnknown *pRemoteResult);
664};
665cpp_quote("#endif")
666cpp_quote("")
667cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
668
669cpp_quote("")
670typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
671 msoBegin,
672 msoCurrent
673} MFBYTESTREAM_SEEK_ORIGIN;
674
675cpp_quote("")
676[object, uuid (ad4c1b00-4bf7-422f-9175-756693d9130d),]
677interface IMFByteStream : IUnknown {
678 HRESULT GetCapabilities ([out] DWORD *pdwCapabilities);
679 HRESULT GetLength ([out] QWORD *pqwLength);
680 HRESULT SetLength ([in] QWORD qwLength);
681 HRESULT GetCurrentPosition ([out] QWORD *pqwPosition);
682 HRESULT SetCurrentPosition ([in] QWORD qwPosition);
683 HRESULT IsEndOfStream ([out] WINBOOL *pfEndOfStream);
684 HRESULT Read ([out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
685 [local] HRESULT BeginRead ([out] BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
686 [call_as (BeginRead)] HRESULT RemoteBeginRead ([in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
687 [local] HRESULT EndRead ([in] IMFAsyncResult *pResult,[out] ULONG *pcbRead);
688 [call_as (EndRead)] HRESULT RemoteEndRead ([in] IUnknown *punkResult,[out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
689 HRESULT Write ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[out] ULONG *pcbWritten);
690 [local] HRESULT BeginWrite ([in] const BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
691 [call_as (BeginWrite)] HRESULT RemoteBeginWrite ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
692 [local] HRESULT EndWrite ([in] IMFAsyncResult *pResult,[out] ULONG *pcbWritten);
693 [call_as (EndWrite)] HRESULT RemoteEndWrite ([in] IUnknown *punkResult,[out] ULONG *pcbWritten);
694 HRESULT Seek ([in] MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,[in] LONGLONG llSeekOffset,[in] DWORD dwSeekFlags,[out] QWORD *pqwCurrentPosition);
695 HRESULT Flush ();
696 HRESULT Close ();
697};
698
699cpp_quote("")
700cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001")
701cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002")
702cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004")
703cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008")
704cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080")
705cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100")
706cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200")
707cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
708cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400")
709cpp_quote("#endif")
710cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8")
711cpp_quote("#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800")
712cpp_quote("#endif")
713
714cpp_quote("")
715cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001")
716cpp_quote("")
717cpp_quote("EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
718cpp_quote("EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
719cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
720cpp_quote("EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
721cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
722cpp_quote("EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
723cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
724cpp_quote("EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);")
725cpp_quote("EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );")
726cpp_quote("#endif")
727cpp_quote("#endif")
728cpp_quote("")
729cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
730cpp_quote("EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );")
731
732cpp_quote("")
733[object, uuid (a6b43f84-5c0a-42e8-a44d-b1857a76992f)]
734interface IMFByteStreamProxyClassFactory : IUnknown {
735 HRESULT CreateByteStreamProxy ([in] IMFByteStream *pByteStream,[in, unique] IMFAttributes *pAttributes,[in] REFIID riid,[out, iid_is (riid)] LPVOID *ppvObject);
736};
737
738cpp_quote("")
739typedef enum {
740 MF_ACCESSMODE_READ = 1,
741 MF_ACCESSMODE_WRITE = 2,
742 MF_ACCESSMODE_READWRITE = 3
743} MF_FILE_ACCESSMODE;
744
745cpp_quote("")
746typedef enum {
747 MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
748 MF_OPENMODE_FAIL_IF_EXIST = 1,
749 MF_OPENMODE_RESET_IF_EXIST = 2,
750 MF_OPENMODE_APPEND_IF_EXIST = 3,
751 MF_OPENMODE_DELETE_IF_EXIST = 4
752} MF_FILE_OPENMODE;
753
754cpp_quote("")
755typedef enum {
756 MF_FILEFLAGS_NONE = 0x00000000,
757 MF_FILEFLAGS_NOBUFFERING = 0x00000001,
758 MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002
759} MF_FILE_FLAGS;
760cpp_quote("#endif")
761cpp_quote("")
762cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
763[object, uuid (8feed468-6f7e-440d-869a-49bdd283ad0d),]
764interface IMFSampleOutputStream : IUnknown {
765 HRESULT BeginWriteSample ([in] IMFSample *pSample,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
766 HRESULT EndWriteSample ([in] IMFAsyncResult *pResult);
767 HRESULT Close ();
768};
769
770cpp_quote("")
771[object, uuid (5bc8a76b-869a-46a3-9b03-FA218A66AEBE)]
772interface IMFCollection : IUnknown {
773 HRESULT GetElementCount ([out] DWORD *pcElements);
774 HRESULT GetElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
775 HRESULT AddElement ([in] IUnknown *pUnkElement);
776 HRESULT RemoveElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
777 HRESULT InsertElementAt ([in] DWORD dwIndex,[in]IUnknown *pUnknown);
778 HRESULT RemoveAllElements ();
779}
780
781cpp_quote("")
782[object, uuid (36f846fc-2256-48b6-b58e-e2b638316581), local]
783interface IMFMediaEventQueue : IUnknown {
784 HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
785 HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
786 HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
787 HRESULT QueueEvent ([in] IMFMediaEvent *pEvent);
788 HRESULT QueueEventParamVar ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
789 HRESULT QueueEventParamUnk ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] IUnknown *pUnk);
790 HRESULT Shutdown ();
791}
792
793cpp_quote("")
794[object, uuid (7fee9e9a-4a89-47a6-899c-B6A53A70FB67), helpstring ("IMFActivate Interface"), pointer_default (unique)]
795interface IMFActivate : IMFAttributes {
796 HRESULT ActivateObject ([in] REFIID riid,[out, iid_is (riid), retval] void **ppv);
797 HRESULT ShutdownObject ();
798 HRESULT DetachObject ();
799};
800cpp_quote("#endif")
801cpp_quote("")
802cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
803cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
804typedef enum _MF_Plugin_Type {
805 MF_Plugin_Type_MFT = 0,
806 MF_Plugin_Type_MediaSource = 1,
807 MF_Plugin_Type_MFT_MatchOutputType = 2,
808 MF_Plugin_Type_Other = (DWORD)-1,
809} MF_Plugin_Type;
810
811cpp_quote("")
812[object, local, uuid (5c6c44bf-1db6-435b-9249-e8cd10fdec96), helpstring ("IMFPluginControl Interface"), pointer_default (unique)]
813interface IMFPluginControl : IUnknown {
814 HRESULT GetPreferredClsid (DWORD pluginType, LPCWSTR selector, CLSID *clsid);
815 HRESULT GetPreferredClsidByIndex (DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid);
816 HRESULT SetPreferredClsid (DWORD pluginType, LPCWSTR selector, const CLSID *clsid);
817 HRESULT IsDisabled (DWORD pluginType, REFCLSID clsid);
818 HRESULT GetDisabledByIndex (DWORD pluginType, DWORD index, CLSID *clsid);
819 HRESULT SetDisabled (DWORD pluginType, REFCLSID clsid, WINBOOL disabled);
820}
821
822cpp_quote("")
823typedef enum MF_PLUGIN_CONTROL_POLICY {
824 MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0,
825 MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1,
826 MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2,
827 MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS_EDGEMODE = 3
828} MF_PLUGIN_CONTROL_POLICY;
829
830cpp_quote("")
831[object, local, uuid (C6982083-3ddc-45cb-AF5E-0f7a8ce4de77), helpstring ("IMFPluginControl2 Interface"), pointer_default (unique)]
832interface IMFPluginControl2 : IMFPluginControl {
833 HRESULT SetPolicy ([in] MF_PLUGIN_CONTROL_POLICY policy);
834}
835cpp_quote("#endif")
836cpp_quote("")
837cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
838[object, local, uuid (eb533d5d-2db6-40f8-97a9-494692014f07), helpstring ("IMFDXGIDeviceManager Interface"), pointer_default (unique)]
839interface IMFDXGIDeviceManager : IUnknown {
840 HRESULT CloseDeviceHandle (HANDLE hDevice);
841 HRESULT GetVideoService (HANDLE hDevice, REFIID riid, void **ppService);
842 HRESULT LockDevice (HANDLE hDevice, REFIID riid, void **ppUnkDevice, WINBOOL fBlock);
843 HRESULT OpenDeviceHandle (HANDLE *phDevice);
844 HRESULT ResetDevice (IUnknown *pUnkDevice, UINT resetToken);
845 HRESULT TestDevice (HANDLE hDevice);
846 HRESULT UnlockDevice (HANDLE hDevice, WINBOOL fSaveState);
847}
848
849cpp_quote("")
850typedef enum _MF_STREAM_STATE {
851 MF_STREAM_STATE_STOPPED = 0,
852 MF_STREAM_STATE_PAUSED,
853 MF_STREAM_STATE_RUNNING
854} MF_STREAM_STATE;
855
856cpp_quote("#endif")
857cpp_quote("")
858cpp_quote("#endif")
859
860cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
861cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN10_RS2")
862
863cpp_quote("")
864[object, local, uuid(ce8bd576-e440-43b3-be34-1e53f565f7e8), helpstring("IMFMuxStreamAttributesManager Interface"), pointer_default(unique)]
865interface IMFMuxStreamAttributesManager : IUnknown {
866 HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
867 HRESULT GetAttributes (DWORD dwMuxStreamIndex, IMFAttributes **ppStreamAttributes);
868}
869
870cpp_quote("")
871[object, local, uuid(505a2c72-42f7-4690-aeab-8f513d0ffdb8), helpstring("IMFMuxStreamMediaTypeManager Interface"), pointer_default(unique)]
872interface IMFMuxStreamMediaTypeManager : IUnknown {
873 HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
874 HRESULT GetMediaType (DWORD dwMuxStreamIndex, IMFMediaType **ppMediaType);
875 HRESULT GetStreamConfigurationCount (DWORD *pdwCount);
876 HRESULT AddStreamConfiguration (ULONGLONG ullStreamMask);
877 HRESULT RemoveStreamConfiguration (ULONGLONG ullStreamMask);
878 HRESULT GetStreamConfiguration (DWORD ulIndex, ULONGLONG *pullStreamMask);
879}
880
881cpp_quote("")
882[object, local, uuid(74abbc19-b1cc-4e41-bb8b-9d9b86a8f6ca), helpstring("IMFMuxStreamSampleManager Interface"), pointer_default(unique)]
883interface IMFMuxStreamSampleManager : IUnknown {
884 HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
885 HRESULT GetSample (DWORD dwMuxStreamIndex, IMFSample **ppSample);
886 ULONGLONG GetStreamConfiguration ();
887}
888
889cpp_quote("#endif")
890cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.