blob: efd4921e592f6431da82416f5198a56ff50c9d10 [file] [log] [blame]
cpp_quote("/**")
cpp_quote(" * This file is part of the mingw-w64 runtime package.")
cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
cpp_quote(" */")
cpp_quote("")
cpp_quote("#include <winapifamily.h>")
cpp_quote("")
import "unknwn.idl";
import "propsys.idl";
import "mediaobj.idl";
#ifndef __QWORD_DEFINED
#define __QWORD_DEFINED
cpp_quote("")
typedef ULONGLONG QWORD;
#endif
cpp_quote("")
cpp_quote("#include <mmreg.h>")
#include <mmreg.h>
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
typedef enum _MF_ATTRIBUTE_TYPE {
MF_ATTRIBUTE_UINT32 = VT_UI4,
MF_ATTRIBUTE_UINT64 = VT_UI8,
MF_ATTRIBUTE_DOUBLE = VT_R8,
MF_ATTRIBUTE_GUID = VT_CLSID,
MF_ATTRIBUTE_STRING = VT_LPWSTR,
MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
} MF_ATTRIBUTE_TYPE;
cpp_quote("")
typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
MF_ATTRIBUTES_MATCH_ALL_ITEMS = 2,
MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
MF_ATTRIBUTES_MATCH_SMALLER = 4
} MF_ATTRIBUTES_MATCH_TYPE;
cpp_quote("")
[object, uuid (2cd2d921-c447-44a7-a13c-4adabfc247e3)]
interface IMFAttributes : IUnknown {
HRESULT GetItem (REFGUID guidKey,[in, out, ptr] PROPVARIANT *pValue);
HRESULT GetItemType (REFGUID guidKey,[out] MF_ATTRIBUTE_TYPE *pType);
HRESULT CompareItem (REFGUID guidKey, REFPROPVARIANT Value,[out] WINBOOL *pbResult);
HRESULT Compare (IMFAttributes *pTheirs, MF_ATTRIBUTES_MATCH_TYPE MatchType,[out] WINBOOL *pbResult);
HRESULT GetUINT32 (REFGUID guidKey,[out] UINT32 *punValue);
HRESULT GetUINT64 (REFGUID guidKey,[out] UINT64 *punValue);
HRESULT GetDouble (REFGUID guidKey,[out] double *pfValue);
HRESULT GetGUID (REFGUID guidKey,[out] GUID *pguidValue);
HRESULT GetStringLength (REFGUID guidKey,[out] UINT32 *pcchLength);
HRESULT GetString (REFGUID guidKey,[out, size_is (cchBufSize)] LPWSTR pwszValue, UINT32 cchBufSize,[in, out, ptr] UINT32 *pcchLength);
HRESULT GetAllocatedString (REFGUID guidKey,[out, size_is (,*pcchLength + 1)] LPWSTR *ppwszValue,[out] UINT32 *pcchLength);
HRESULT GetBlobSize (REFGUID guidKey,[out] UINT32 *pcbBlobSize);
HRESULT GetBlob (REFGUID guidKey,[out, size_is (cbBufSize)] UINT8 *pBuf, UINT32 cbBufSize,[in, out, ptr] UINT32 *pcbBlobSize);
HRESULT GetAllocatedBlob (REFGUID guidKey,[out, size_is (,*pcbSize)] UINT8 **ppBuf,[out] UINT32 *pcbSize);
HRESULT GetUnknown (REFGUID guidKey, REFIID riid,[out, iid_is (riid)] LPVOID *ppv);
HRESULT SetItem (REFGUID guidKey, REFPROPVARIANT Value);
HRESULT DeleteItem (REFGUID guidKey);
HRESULT DeleteAllItems ();
HRESULT SetUINT32 (REFGUID guidKey, UINT32 unValue);
HRESULT SetUINT64 (REFGUID guidKey, UINT64 unValue);
HRESULT SetDouble (REFGUID guidKey, double fValue);
HRESULT SetGUID (REFGUID guidKey, REFGUID guidValue);
HRESULT SetString (REFGUID guidKey,[in, string] LPCWSTR wszValue);
HRESULT SetBlob (REFGUID guidKey,[in, size_is (cbBufSize)] const UINT8 *pBuf, UINT32 cbBufSize);
HRESULT SetUnknown (REFGUID guidKey,[in] IUnknown *pUnknown);
HRESULT LockStore ();
HRESULT UnlockStore ();
HRESULT GetCount ([out] UINT32 *pcItems);
HRESULT GetItemByIndex (UINT32 unIndex,[out] GUID *pguidKey,[in, out, ptr] PROPVARIANT *pValue);
HRESULT CopyAllItems ([in] IMFAttributes *pDest);
};
cpp_quote("")
enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001
};
cpp_quote("")
cpp_quote("STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
cpp_quote("STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
cpp_quote("")
[object, uuid (045fa593-8799-42b8-BC8D-8968c6453507), local,]
interface IMFMediaBuffer : IUnknown {
HRESULT Lock ([out] BYTE **ppbBuffer,[out] DWORD *pcbMaxLength,[out] DWORD *pcbCurrentLength);
HRESULT Unlock ();
HRESULT GetCurrentLength ([out] DWORD *pcbCurrentLength);
HRESULT SetCurrentLength ([in] DWORD cbCurrentLength);
HRESULT GetMaxLength ([out] DWORD *pcbMaxLength);
}
cpp_quote("")
[object, uuid (c40a00f2-b93a-4d80-ae8c-5a1c634f58e4), local,]
interface IMFSample : IMFAttributes {
HRESULT GetSampleFlags ([out] DWORD *pdwSampleFlags);
HRESULT SetSampleFlags ([in] DWORD dwSampleFlags);
HRESULT GetSampleTime ([out] LONGLONG *phnsSampleTime);
HRESULT SetSampleTime ([in] LONGLONG hnsSampleTime);
HRESULT GetSampleDuration ([out] LONGLONG *phnsSampleDuration);
HRESULT SetSampleDuration ([in] LONGLONG hnsSampleDuration);
HRESULT GetBufferCount ([out] DWORD *pdwBufferCount);
HRESULT GetBufferByIndex ([in] DWORD dwIndex,[out] IMFMediaBuffer **ppBuffer);
HRESULT ConvertToContiguousBuffer ([out] IMFMediaBuffer **ppBuffer);
HRESULT AddBuffer ([in] IMFMediaBuffer *pBuffer);
HRESULT RemoveBufferByIndex ([in] DWORD dwIndex);
HRESULT RemoveAllBuffers (void);
HRESULT GetTotalLength ([out] DWORD *pcbTotalLength);
HRESULT CopyToBuffer ([in] IMFMediaBuffer *pBuffer);
};
cpp_quote("")
[object, uuid (7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb), local]
interface IMF2DBuffer : IUnknown {
HRESULT Lock2D ([out] BYTE **ppbScanline0,[out] LONG *plPitch);
HRESULT Unlock2D ();
HRESULT GetScanline0AndPitch ([out] BYTE **pbScanline0,[out] LONG *plPitch);
HRESULT IsContiguousFormat ([out] WINBOOL *pfIsContiguous);
HRESULT GetContiguousLength ([out] DWORD *pcbLength);
HRESULT ContiguousCopyTo ([out, size_is (cbDestBuffer)] BYTE *pbDestBuffer,[in] DWORD cbDestBuffer);
HRESULT ContiguousCopyFrom ([in, size_is (cbSrcBuffer)] const BYTE *pbSrcBuffer,[in] DWORD cbSrcBuffer);
}
cpp_quote("")
typedef enum _MF2DBuffer_LockFlags {
MF2DBuffer_LockFlags_LockTypeMask = 0x1 | 0x2 | 0x3,
MF2DBuffer_LockFlags_Read = 0x1,
MF2DBuffer_LockFlags_Write = 0x2,
MF2DBuffer_LockFlags_ReadWrite = 0x3,
MF2DBuffer_LockFlags_ForceDWORD = 0x7fffffff
} MF2DBuffer_LockFlags;
cpp_quote("")
[object, uuid (33ae5ea6-4316-436f-8ddd-d73d22f829ec), local]
interface IMF2DBuffer2 : IMF2DBuffer {
HRESULT Lock2DSize ([in] MF2DBuffer_LockFlags lockFlags,[out] BYTE **ppbScanline0,[out] LONG *plPitch,[out] BYTE **ppbBufferStart,[out] DWORD *pcbBufferLength);
HRESULT Copy2DTo ([in] IMF2DBuffer2 *pDestBuffer);
};
cpp_quote("")
[object, uuid (e7174cfa-1c9e-48b1-8866-626226bfc258), local]
interface IMFDXGIBuffer : IUnknown {
HRESULT GetResource ([in] REFIID riid,[out] LPVOID *ppvObject);
HRESULT GetSubresourceIndex ([out] UINT *puSubresource);
HRESULT GetUnknown ([in] REFIID guid,[in] REFIID riid,[out] LPVOID *ppvObject);
HRESULT SetUnknown ([in] REFIID guid,[in] IUnknown *pUnkData);
};
cpp_quote("")
[object, uuid (44ae0fa8-ea31-4109-8d2e-4cae4997c555), local]
interface IMFMediaType : IMFAttributes {
HRESULT GetMajorType ([out] GUID *pguidMajorType);
HRESULT IsCompressedFormat ([out] WINBOOL *pfCompressed);
HRESULT IsEqual ([in] IMFMediaType *pIMediaType,[out] DWORD *pdwFlags);
HRESULT GetRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation);
HRESULT FreeRepresentation ([in] GUID guidRepresentation,[in] LPVOID pvRepresentation);
};
cpp_quote("")
cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001")
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002")
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004")
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
[object, uuid (26a0adc3-ce26-4672-9304-69552edd3faf), local]
interface IMFAudioMediaType : IMFMediaType {
const WAVEFORMATEX *GetAudioFormat ();
};
cpp_quote("")
cpp_quote("#ifndef _WINGDI_")
#ifndef RGBQUAD
typedef DWORD RGBQUAD;
#endif
cpp_quote("")
typedef struct {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
cpp_quote("")
typedef struct {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
cpp_quote("#endif")
cpp_quote("")
typedef struct {
GUID guidMajorType;
GUID guidSubtype;
} MFT_REGISTER_TYPE_INFO;
cpp_quote("#endif")
cpp_quote("#ifndef _MFVIDEOFORMAT_")
cpp_quote("#define _MFVIDEOFORMAT_")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
typedef enum _MFVideoInterlaceMode {
MFVideoInterlace_Unknown = 0,
MFVideoInterlace_Progressive = 2,
MFVideoInterlace_FieldInterleavedUpperFirst = 3,
MFVideoInterlace_FieldInterleavedLowerFirst = 4,
MFVideoInterlace_FieldSingleUpper = 5,
MFVideoInterlace_FieldSingleLower = 6,
MFVideoInterlace_MixedInterlaceOrProgressive= 7,
MFVideoInterlace_Last,
MFVideoInterlace_ForceDWORD = 0x7fffffff
} MFVideoInterlaceMode;
cpp_quote("")
cpp_quote("#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper")
cpp_quote("#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower")
cpp_quote("")
typedef enum _MFVideoTransferFunction {
MFVideoTransFunc_Unknown = 0,
MFVideoTransFunc_10 = 1,
MFVideoTransFunc_18 = 2,
MFVideoTransFunc_20 = 3,
MFVideoTransFunc_22 = 4,
MFVideoTransFunc_709 = 5,
MFVideoTransFunc_240M = 6,
MFVideoTransFunc_sRGB = 7,
MFVideoTransFunc_28 = 8,
MFVideoTransFunc_Log_100 = 9,
MFVideoTransFunc_Log_316 = 10,
MFVideoTransFunc_709_sym = 11,
MFVideoTransFunc_2020_const = 12,
MFVideoTransFunc_2020 = 13,
MFVideoTransFunc_26 = 14,
MFVideoTransFunc_2084 = 15,
MFVideoTransFunc_HLG = 16,
MFVideoTransFunc_10_rel = 17,
MFVideoTransFunc_Last,
MFVideoTransFunc_ForceDWORD = 0x7fffffff
} MFVideoTransferFunction;
cpp_quote("")
typedef enum _MFVideoPrimaries {
MFVideoPrimaries_Unknown = 0,
MFVideoPrimaries_reserved = 1,
MFVideoPrimaries_BT709 = 2,
MFVideoPrimaries_BT470_2_SysM = 3,
MFVideoPrimaries_BT470_2_SysBG = 4,
MFVideoPrimaries_SMPTE170M = 5,
MFVideoPrimaries_SMPTE240M = 6,
MFVideoPrimaries_EBU3213 = 7,
MFVideoPrimaries_SMPTE_C = 8,
MFVideoPrimaries_BT2020 = 9,
MFVideoPrimaries_XYZ = 10,
MFVideoPrimaries_DCI_P3 = 11,
MFVideoPrimaries_ACES = 12,
MFVideoPrimaries_Last,
MFVideoPrimaries_ForceDWORD = 0x7fffffff
} MFVideoPrimaries;
cpp_quote("")
typedef enum _MFVideoLighting {
MFVideoLighting_Unknown = 0,
MFVideoLighting_bright=1,
MFVideoLighting_office=2,
MFVideoLighting_dim=3,
MFVideoLighting_dark=4,
MFVideoLighting_Last,
MFVideoLighting_ForceDWORD = 0x7fffffff
} MFVideoLighting;
cpp_quote("")
typedef enum _MFVideoTransferMatrix {
MFVideoTransferMatrix_Unknown = 0,
MFVideoTransferMatrix_BT709 = 1,
MFVideoTransferMatrix_BT601 = 2,
MFVideoTransferMatrix_SMPTE240M = 3,
MFVideoTransferMatrix_BT2020_10 = 4,
MFVideoTransferMatrix_BT2020_12 = 5,
MFVideoTransferMatrix_Last,
MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
} MFVideoTransferMatrix;
cpp_quote("")
typedef enum _MFVideoChromaSubsampling {
MFVideoChromaSubsampling_Unknown = 0,
MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited |
MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited |
MFVideoChromaSubsampling_Vertically_Cosited,
MFVideoChromaSubsampling_Cosited = MFVideoChromaSubsampling_Horizontally_Cosited |
MFVideoChromaSubsampling_Vertically_Cosited |
MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited+1,
MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
} MFVideoChromaSubsampling;
cpp_quote("")
typedef enum _MFNominalRange {
MFNominalRange_Unknown = 0,
MFNominalRange_Normal = 1,
MFNominalRange_Wide = 2,
MFNominalRange_0_255 = 1,
MFNominalRange_16_235 = 2,
MFNominalRange_48_208 = 3,
MFNominalRange_64_127 = 4,
MFNominalRange_Last,
MFNominalRange_ForceDWORD = 0x7fffffff
} MFNominalRange;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
typedef enum _MFVideoFlags {
MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002,
MFVideoFlag_PAD_TO_None = 0 *0x0001,
MFVideoFlag_PAD_TO_4x3 = 1 *0x0001,
MFVideoFlag_PAD_TO_16x9 = 2 *0x0001,
MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010,
MFVideoFlag_SrcContentHintNone = 0 *0x0004,
MFVideoFlag_SrcContentHint16x9 = 1 *0x0004,
MFVideoFlag_SrcContentHint235_1 = 2 *0x0004,
MFVideoFlag_AnalogProtected = 0x0020,
MFVideoFlag_DigitallyProtected = 0x0040,
MFVideoFlag_ProgressiveContent = 0x0080,
MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400,
MFVideoFlag_FieldRepeatCountShift = 8,
MFVideoFlag_ProgressiveSeqReset = 0x0800,
MFVideoFlag_PanScanEnabled = 0x20000,
MFVideoFlag_LowerFieldFirst = 0x40000,
MFVideoFlag_BottomUpLinearRep = 0x80000,
MFVideoFlags_DXVASurface = 0x100000,
MFVideoFlags_RenderTargetSurface = 0x400000,
MFVideoFlags_ForceQWORD = 0x7fffffff
} MFVideoFlags;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
typedef struct _MFRatio {
DWORD Numerator;
DWORD Denominator;
} MFRatio;
cpp_quote("")
typedef struct _MFOffset {
WORD fract;
short value;
} MFOffset;
typedef struct _MFVideoArea {
MFOffset OffsetX;
MFOffset OffsetY;
SIZE Area;
} MFVideoArea;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
typedef struct _MFVideoInfo {
DWORD dwWidth;
DWORD dwHeight;
MFRatio PixelAspectRatio;
MFVideoChromaSubsampling SourceChromaSubsampling;
MFVideoInterlaceMode InterlaceMode;
MFVideoTransferFunction TransferFunction;
MFVideoPrimaries ColorPrimaries;
MFVideoTransferMatrix TransferMatrix;
MFVideoLighting SourceLighting;
MFRatio FramesPerSecond;
MFNominalRange NominalRange;
MFVideoArea GeometricAperture;
MFVideoArea MinimumDisplayAperture;
MFVideoArea PanScanAperture;
unsigned __int64 VideoFlags;
} MFVideoInfo;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
typedef struct __MFAYUVSample {
BYTE bCrValue;
BYTE bCbValue;
BYTE bYValue;
BYTE bSampleAlpha8;
} MFAYUVSample;
cpp_quote("")
typedef struct _MFARGB {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbAlpha;
} MFARGB;
cpp_quote("")
typedef union _MFPaletteEntry {
MFARGB ARGB;
MFAYUVSample AYCbCr;
} MFPaletteEntry;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
typedef struct _MFVideoSurfaceInfo {
DWORD Format;
DWORD PaletteEntries;
[size_is (PaletteEntries)] MFPaletteEntry Palette[];
} MFVideoSurfaceInfo;
cpp_quote("")
typedef struct _MFVideoCompressedInfo {
LONGLONG AvgBitrate;
LONGLONG AvgBitErrorRate;
DWORD MaxKeyFrameSpacing;
} MFVideoCompressedInfo;
cpp_quote("")
typedef struct _MFVIDEOFORMAT {
DWORD dwSize;
MFVideoInfo videoInfo;
GUID guidFormat;
MFVideoCompressedInfo compressedInfo;
MFVideoSurfaceInfo surfaceInfo;
} MFVIDEOFORMAT;
cpp_quote("")
typedef enum _MFStandardVideoFormat {
MFStdVideoFormat_reserved = 0,
MFStdVideoFormat_NTSC,
MFStdVideoFormat_PAL,
MFStdVideoFormat_DVD_NTSC,
MFStdVideoFormat_DVD_PAL,
MFStdVideoFormat_DV_PAL,
MFStdVideoFormat_DV_NTSC,
MFStdVideoFormat_ATSC_SD480i,
MFStdVideoFormat_ATSC_HD1080i,
MFStdVideoFormat_ATSC_HD720p,
} MFStandardVideoFormat;
cpp_quote("#endif")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
[object, uuid (b99f381f-a8f9-47a2-a5af-ca3a225a3890), local]
interface IMFVideoMediaType : IMFMediaType {
const MFVIDEOFORMAT *GetVideoFormat ();
HRESULT GetVideoRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation,[in] LONG lStride);
};
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
[object, uuid (ac6b7889-0740-4d51-8619-905994a55cc6)]
interface IMFAsyncResult : IUnknown {
HRESULT GetState ([out] IUnknown **ppunkState);
HRESULT GetStatus ();
HRESULT SetStatus ([in] HRESULT hrStatus);
HRESULT GetObject ([out] IUnknown **ppObject);
[local] IUnknown *GetStateNoAddRef ();
};
cpp_quote("")
[object, uuid (a27003cf-2354-4f2a-8d6a-ab7cff15437e),]
interface IMFAsyncCallback : IUnknown {
HRESULT GetParameters ([out] DWORD *pdwFlags,[out] DWORD *pdwQueue);
HRESULT Invoke ([in] IMFAsyncResult *pAsyncResult);
}
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
[object, uuid (c7a4dca1-f5f0-47b6-b92b-bf0106d25791), local]
interface IMFAsyncCallbackLogging : IMFAsyncCallback {
void *GetObjectPointer ();
DWORD GetObjectTag ();
}
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001")
cpp_quote("#define MFASYNC_SIGNAL_CALLBACK 0x00000002")
cpp_quote("#define MFASYNC_BLOCKING_CALLBACK 0x00000004")
cpp_quote("#define MFASYNC_REPLY_CALLBACK 0x00000008")
cpp_quote("#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010")
cpp_quote("")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000")
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF")
cpp_quote("")
enum {
MEUnknown = 0,
MEError = 1,
MEExtendedType = 2,
MENonFatalError = 3,
MEGenericV1Anchor = MENonFatalError,
MESessionUnknown = 100,
MESessionTopologySet = 101,
MESessionTopologiesCleared = 102,
MESessionStarted = 103,
MESessionPaused = 104,
MESessionStopped = 105,
MESessionClosed = 106,
MESessionEnded = 107,
MESessionRateChanged = 108,
MESessionScrubSampleComplete = 109,
MESessionCapabilitiesChanged = 110,
MESessionTopologyStatus = 111,
MESessionNotifyPresentationTime = 112,
MENewPresentation = 113,
MELicenseAcquisitionStart = 114,
MELicenseAcquisitionCompleted = 115,
MEIndividualizationStart = 116,
MEIndividualizationCompleted = 117,
MEEnablerProgress = 118,
MEEnablerCompleted = 119,
MEPolicyError = 120,
MEPolicyReport = 121,
MEBufferingStarted = 122,
MEBufferingStopped = 123,
MEConnectStart = 124,
MEConnectEnd = 125,
MEReconnectStart = 126,
MEReconnectEnd = 127,
MERendererEvent = 128,
MESessionStreamSinkFormatChanged = 129,
MESessionV1Anchor = MESessionStreamSinkFormatChanged,
MESourceUnknown = 200,
MESourceStarted = 201,
MEStreamStarted = 202,
MESourceSeeked = 203,
MEStreamSeeked = 204,
MENewStream = 205,
MEUpdatedStream = 206,
MESourceStopped = 207,
MEStreamStopped = 208,
MESourcePaused = 209,
MEStreamPaused = 210,
MEEndOfPresentation = 211,
MEEndOfStream = 212,
MEMediaSample = 213,
MEStreamTick = 214,
MEStreamThinMode = 215,
MEStreamFormatChanged = 216,
MESourceRateChanged = 217,
MEEndOfPresentationSegment = 218,
MESourceCharacteristicsChanged = 219,
MESourceRateChangeRequested = 220,
MESourceMetadataChanged = 221,
MESequencerSourceTopologyUpdated = 222,
MESourceV1Anchor = MESequencerSourceTopologyUpdated,
MESinkUnknown = 300,
MEStreamSinkStarted = 301,
MEStreamSinkStopped = 302,
MEStreamSinkPaused = 303,
MEStreamSinkRateChanged = 304,
MEStreamSinkRequestSample = 305,
MEStreamSinkMarker = 306,
MEStreamSinkPrerolled = 307,
MEStreamSinkScrubSampleComplete = 308,
MEStreamSinkFormatChanged = 309,
MEStreamSinkDeviceChanged = 310,
MEQualityNotify = 311,
MESinkInvalidated = 312,
MEAudioSessionNameChanged = 313,
MEAudioSessionVolumeChanged = 314,
MEAudioSessionDeviceRemoved = 315,
MEAudioSessionServerShutdown = 316,
MEAudioSessionGroupingParamChanged = 317,
MEAudioSessionIconChanged = 318,
MEAudioSessionFormatChanged = 319,
MEAudioSessionDisconnected = 320,
MEAudioSessionExclusiveModeOverride = 321,
MESinkV1Anchor = MEAudioSessionExclusiveModeOverride,
MECaptureAudioSessionVolumeChanged = 322,
MECaptureAudioSessionDeviceRemoved = 323,
MECaptureAudioSessionFormatChanged = 324,
MECaptureAudioSessionDisconnected = 325,
MECaptureAudioSessionExclusiveModeOverride = 326,
MECaptureAudioSessionServerShutdown = 327,
MESinkV2Anchor = MECaptureAudioSessionServerShutdown,
METrustUnknown = 400,
MEPolicyChanged = 401,
MEContentProtectionMessage = 402,
MEPolicySet = 403,
METrustV1Anchor = MEPolicySet,
MEWMDRMLicenseBackupCompleted = 500,
MEWMDRMLicenseBackupProgress = 501,
MEWMDRMLicenseRestoreCompleted = 502,
MEWMDRMLicenseRestoreProgress = 503,
MEWMDRMLicenseAcquisitionCompleted = 506,
MEWMDRMIndividualizationCompleted = 508,
MEWMDRMIndividualizationProgress = 513,
MEWMDRMProximityCompleted = 514,
MEWMDRMLicenseStoreCleaned = 515,
MEWMDRMRevocationDownloadCompleted = 516,
MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted,
METransformUnknown = 600,
METransformNeedInput,
METransformHaveOutput,
METransformDrainComplete,
METransformMarker,
METransformInputStreamStateChanged,
MEByteStreamCharacteristicsChanged = 700,
MEVideoCaptureDeviceRemoved = 800,
MEVideoCaptureDevicePreempted = 801,
MEStreamSinkFormatInvalidated = 802,
MEEncodingParameters = 803,
MEContentProtectionMetadata = 900,
MEDeviceThermalStateChanged = 950,
MEReservedMax = 10000
};
cpp_quote("")
typedef DWORD MediaEventType;
cpp_quote("")
[object, uuid (DF598932-F10C-4e39-BBA2-C308F101DAA3)]
interface IMFMediaEvent : IMFAttributes {
HRESULT GetType ([out] MediaEventType *pmet);
HRESULT GetExtendedType ([out] GUID *pguidExtendedType);
HRESULT GetStatus ([out] HRESULT *phrStatus);
HRESULT GetValue ([out] PROPVARIANT *pvValue);
}
cpp_quote("")
cpp_quote("#define MF_EVENT_FLAG_NO_WAIT 0x00000001")
cpp_quote("")
interface IMFRemoteAsyncCallback;
cpp_quote("")
[object, uuid (2cd0bd52-BCD5-4b89-B62C-EADC0C031E7D)]
interface IMFMediaEventGenerator : IUnknown {
HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
[local] HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
[call_as (BeginGetEvent)] HRESULT RemoteBeginGetEvent ([in] IMFRemoteAsyncCallback *pCallback);
[local] HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
[call_as (EndGetEvent)] HRESULT RemoteEndGetEvent ([in] IUnknown *pResult,[out] DWORD *pcbEvent,[out, size_is (,*pcbEvent)] BYTE **ppbEvent);
HRESULT QueueEvent ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
}
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
[object, uuid (a27003d0-2354-4f2a-8d6a-ab7cff15437e),]
interface IMFRemoteAsyncCallback : IUnknown {
HRESULT Invoke ([in] HRESULT hr,[in] IUnknown *pRemoteResult);
};
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
cpp_quote("")
typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
msoBegin,
msoCurrent
} MFBYTESTREAM_SEEK_ORIGIN;
cpp_quote("")
[object, uuid (ad4c1b00-4bf7-422f-9175-756693d9130d),]
interface IMFByteStream : IUnknown {
HRESULT GetCapabilities ([out] DWORD *pdwCapabilities);
HRESULT GetLength ([out] QWORD *pqwLength);
HRESULT SetLength ([in] QWORD qwLength);
HRESULT GetCurrentPosition ([out] QWORD *pqwPosition);
HRESULT SetCurrentPosition ([in] QWORD qwPosition);
HRESULT IsEndOfStream ([out] WINBOOL *pfEndOfStream);
HRESULT Read ([out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
[local] HRESULT BeginRead ([out] BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
[call_as (BeginRead)] HRESULT RemoteBeginRead ([in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
[local] HRESULT EndRead ([in] IMFAsyncResult *pResult,[out] ULONG *pcbRead);
[call_as (EndRead)] HRESULT RemoteEndRead ([in] IUnknown *punkResult,[out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
HRESULT Write ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[out] ULONG *pcbWritten);
[local] HRESULT BeginWrite ([in] const BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
[call_as (BeginWrite)] HRESULT RemoteBeginWrite ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
[local] HRESULT EndWrite ([in] IMFAsyncResult *pResult,[out] ULONG *pcbWritten);
[call_as (EndWrite)] HRESULT RemoteEndWrite ([in] IUnknown *punkResult,[out] ULONG *pcbWritten);
HRESULT Seek ([in] MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,[in] LONGLONG llSeekOffset,[in] DWORD dwSeekFlags,[out] QWORD *pqwCurrentPosition);
HRESULT Flush ();
HRESULT Close ();
};
cpp_quote("")
cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001")
cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002")
cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004")
cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008")
cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080")
cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100")
cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200")
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400")
cpp_quote("#endif")
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8")
cpp_quote("#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001")
cpp_quote("")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);")
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );")
cpp_quote("#endif")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
cpp_quote("EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );")
cpp_quote("")
[object, uuid (a6b43f84-5c0a-42e8-a44d-b1857a76992f)]
interface IMFByteStreamProxyClassFactory : IUnknown {
HRESULT CreateByteStreamProxy ([in] IMFByteStream *pByteStream,[in, unique] IMFAttributes *pAttributes,[in] REFIID riid,[out, iid_is (riid)] LPVOID *ppvObject);
};
cpp_quote("")
typedef enum {
MF_ACCESSMODE_READ = 1,
MF_ACCESSMODE_WRITE = 2,
MF_ACCESSMODE_READWRITE = 3
} MF_FILE_ACCESSMODE;
cpp_quote("")
typedef enum {
MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
MF_OPENMODE_FAIL_IF_EXIST = 1,
MF_OPENMODE_RESET_IF_EXIST = 2,
MF_OPENMODE_APPEND_IF_EXIST = 3,
MF_OPENMODE_DELETE_IF_EXIST = 4
} MF_FILE_OPENMODE;
cpp_quote("")
typedef enum {
MF_FILEFLAGS_NONE = 0x00000000,
MF_FILEFLAGS_NOBUFFERING = 0x00000001,
MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002
} MF_FILE_FLAGS;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
[object, uuid (8feed468-6f7e-440d-869a-49bdd283ad0d),]
interface IMFSampleOutputStream : IUnknown {
HRESULT BeginWriteSample ([in] IMFSample *pSample,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
HRESULT EndWriteSample ([in] IMFAsyncResult *pResult);
HRESULT Close ();
};
cpp_quote("")
[object, uuid (5bc8a76b-869a-46a3-9b03-FA218A66AEBE)]
interface IMFCollection : IUnknown {
HRESULT GetElementCount ([out] DWORD *pcElements);
HRESULT GetElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
HRESULT AddElement ([in] IUnknown *pUnkElement);
HRESULT RemoveElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
HRESULT InsertElementAt ([in] DWORD dwIndex,[in]IUnknown *pUnknown);
HRESULT RemoveAllElements ();
}
cpp_quote("")
[object, uuid (36f846fc-2256-48b6-b58e-e2b638316581), local]
interface IMFMediaEventQueue : IUnknown {
HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
HRESULT QueueEvent ([in] IMFMediaEvent *pEvent);
HRESULT QueueEventParamVar ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
HRESULT QueueEventParamUnk ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] IUnknown *pUnk);
HRESULT Shutdown ();
}
cpp_quote("")
[object, uuid (7fee9e9a-4a89-47a6-899c-B6A53A70FB67), helpstring ("IMFActivate Interface"), pointer_default (unique)]
interface IMFActivate : IMFAttributes {
HRESULT ActivateObject ([in] REFIID riid,[out, iid_is (riid), retval] void **ppv);
HRESULT ShutdownObject ();
HRESULT DetachObject ();
};
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
typedef enum _MF_Plugin_Type {
MF_Plugin_Type_MFT = 0,
MF_Plugin_Type_MediaSource = 1,
MF_Plugin_Type_MFT_MatchOutputType = 2,
MF_Plugin_Type_Other = (DWORD)-1,
} MF_Plugin_Type;
cpp_quote("")
[object, local, uuid (5c6c44bf-1db6-435b-9249-e8cd10fdec96), helpstring ("IMFPluginControl Interface"), pointer_default (unique)]
interface IMFPluginControl : IUnknown {
HRESULT GetPreferredClsid (DWORD pluginType, LPCWSTR selector, CLSID *clsid);
HRESULT GetPreferredClsidByIndex (DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid);
HRESULT SetPreferredClsid (DWORD pluginType, LPCWSTR selector, const CLSID *clsid);
HRESULT IsDisabled (DWORD pluginType, REFCLSID clsid);
HRESULT GetDisabledByIndex (DWORD pluginType, DWORD index, CLSID *clsid);
HRESULT SetDisabled (DWORD pluginType, REFCLSID clsid, WINBOOL disabled);
}
cpp_quote("")
typedef enum MF_PLUGIN_CONTROL_POLICY {
MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0,
MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1,
MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2,
MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS_EDGEMODE = 3
} MF_PLUGIN_CONTROL_POLICY;
cpp_quote("")
[object, local, uuid (C6982083-3ddc-45cb-AF5E-0f7a8ce4de77), helpstring ("IMFPluginControl2 Interface"), pointer_default (unique)]
interface IMFPluginControl2 : IMFPluginControl {
HRESULT SetPolicy ([in] MF_PLUGIN_CONTROL_POLICY policy);
}
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
[object, local, uuid (eb533d5d-2db6-40f8-97a9-494692014f07), helpstring ("IMFDXGIDeviceManager Interface"), pointer_default (unique)]
interface IMFDXGIDeviceManager : IUnknown {
HRESULT CloseDeviceHandle (HANDLE hDevice);
HRESULT GetVideoService (HANDLE hDevice, REFIID riid, void **ppService);
HRESULT LockDevice (HANDLE hDevice, REFIID riid, void **ppUnkDevice, WINBOOL fBlock);
HRESULT OpenDeviceHandle (HANDLE *phDevice);
HRESULT ResetDevice (IUnknown *pUnkDevice, UINT resetToken);
HRESULT TestDevice (HANDLE hDevice);
HRESULT UnlockDevice (HANDLE hDevice, WINBOOL fSaveState);
}
cpp_quote("")
typedef enum _MF_STREAM_STATE {
MF_STREAM_STATE_STOPPED = 0,
MF_STREAM_STATE_PAUSED,
MF_STREAM_STATE_RUNNING
} MF_STREAM_STATE;
cpp_quote("#endif")
cpp_quote("")
cpp_quote("#endif")
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN10_RS2")
cpp_quote("")
[object, local, uuid(ce8bd576-e440-43b3-be34-1e53f565f7e8), helpstring("IMFMuxStreamAttributesManager Interface"), pointer_default(unique)]
interface IMFMuxStreamAttributesManager : IUnknown {
HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
HRESULT GetAttributes (DWORD dwMuxStreamIndex, IMFAttributes **ppStreamAttributes);
}
cpp_quote("")
[object, local, uuid(505a2c72-42f7-4690-aeab-8f513d0ffdb8), helpstring("IMFMuxStreamMediaTypeManager Interface"), pointer_default(unique)]
interface IMFMuxStreamMediaTypeManager : IUnknown {
HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
HRESULT GetMediaType (DWORD dwMuxStreamIndex, IMFMediaType **ppMediaType);
HRESULT GetStreamConfigurationCount (DWORD *pdwCount);
HRESULT AddStreamConfiguration (ULONGLONG ullStreamMask);
HRESULT RemoveStreamConfiguration (ULONGLONG ullStreamMask);
HRESULT GetStreamConfiguration (DWORD ulIndex, ULONGLONG *pullStreamMask);
}
cpp_quote("")
[object, local, uuid(74abbc19-b1cc-4e41-bb8b-9d9b86a8f6ca), helpstring("IMFMuxStreamSampleManager Interface"), pointer_default(unique)]
interface IMFMuxStreamSampleManager : IUnknown {
HRESULT GetStreamCount (DWORD *pdwMuxStreamCount);
HRESULT GetSample (DWORD dwMuxStreamIndex, IMFSample **ppSample);
ULONGLONG GetStreamConfiguration ();
}
cpp_quote("#endif")
cpp_quote("#endif")