| 1 |
cpp_quote("/**") |
| 2 |
cpp_quote(" * This file is part of the mingw-w64 runtime package.") |
| 3 |
cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") |
| 4 |
cpp_quote(" */") |
| 5 |
cpp_quote("") |
| 6 |
cpp_quote("#include <winapifamily.h>") |
| 7 |
cpp_quote("") |
| 8 |
|
| 9 |
import "unknwn.idl"; |
| 10 |
import "propsys.idl"; |
| 11 |
import "mediaobj.idl"; |
| 12 |
|
| 13 |
#ifndef __QWORD_DEFINED |
| 14 |
#define __QWORD_DEFINED |
| 15 |
cpp_quote("") |
| 16 |
typedef ULONGLONG QWORD; |
| 17 |
#endif |
| 18 |
|
| 19 |
cpp_quote("") |
| 20 |
cpp_quote("#include <mmreg.h>") |
| 21 |
#include <mmreg.h> |
| 22 |
|
| 23 |
cpp_quote("") |
| 24 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 25 |
typedef 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 |
|
| 35 |
cpp_quote("") |
| 36 |
typedef 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 |
|
| 44 |
cpp_quote("") |
| 45 |
[object, uuid (2cd2d921-c447-44a7-a13c-4adabfc247e3)] |
| 46 |
interface 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 |
|
| 79 |
cpp_quote("") |
| 80 |
enum MF_ATTRIBUTE_SERIALIZE_OPTIONS { |
| 81 |
MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001 |
| 82 |
}; |
| 83 |
|
| 84 |
cpp_quote("") |
| 85 |
cpp_quote("STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);") |
| 86 |
cpp_quote("STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);") |
| 87 |
|
| 88 |
cpp_quote("") |
| 89 |
[object, uuid (045fa593-8799-42b8-BC8D-8968c6453507), local,] |
| 90 |
interface 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 |
|
| 98 |
cpp_quote("") |
| 99 |
[object, uuid (c40a00f2-b93a-4d80-ae8c-5a1c634f58e4), local,] |
| 100 |
interface 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 |
|
| 117 |
cpp_quote("") |
| 118 |
[object, uuid (7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb), local] |
| 119 |
interface 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 |
|
| 129 |
cpp_quote("") |
| 130 |
typedef 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 |
|
| 138 |
cpp_quote("") |
| 139 |
[object, uuid (33ae5ea6-4316-436f-8ddd-d73d22f829ec), local] |
| 140 |
interface 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 |
|
| 145 |
cpp_quote("") |
| 146 |
[object, uuid (e7174cfa-1c9e-48b1-8866-626226bfc258), local] |
| 147 |
interface 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 |
|
| 154 |
cpp_quote("") |
| 155 |
[object, uuid (44ae0fa8-ea31-4109-8d2e-4cae4997c555), local] |
| 156 |
interface 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 |
|
| 164 |
cpp_quote("") |
| 165 |
cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001") |
| 166 |
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002") |
| 167 |
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004") |
| 168 |
cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008") |
| 169 |
cpp_quote("#endif") |
| 170 |
cpp_quote("") |
| 171 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 172 |
[object, uuid (26a0adc3-ce26-4672-9304-69552edd3faf), local] |
| 173 |
interface IMFAudioMediaType : IMFMediaType { |
| 174 |
const WAVEFORMATEX *GetAudioFormat (); |
| 175 |
}; |
| 176 |
cpp_quote("") |
| 177 |
cpp_quote("#ifndef _WINGDI_") |
| 178 |
#ifndef RGBQUAD |
| 179 |
typedef DWORD RGBQUAD; |
| 180 |
#endif |
| 181 |
|
| 182 |
cpp_quote("") |
| 183 |
typedef 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 |
|
| 197 |
cpp_quote("") |
| 198 |
typedef struct { |
| 199 |
BITMAPINFOHEADER bmiHeader; |
| 200 |
RGBQUAD bmiColors[1]; |
| 201 |
} BITMAPINFO; |
| 202 |
cpp_quote("#endif") |
| 203 |
|
| 204 |
cpp_quote("") |
| 205 |
typedef struct { |
| 206 |
GUID guidMajorType; |
| 207 |
GUID guidSubtype; |
| 208 |
} MFT_REGISTER_TYPE_INFO; |
| 209 |
cpp_quote("#endif") |
| 210 |
|
| 211 |
cpp_quote("#ifndef _MFVIDEOFORMAT_") |
| 212 |
cpp_quote("#define _MFVIDEOFORMAT_") |
| 213 |
cpp_quote("") |
| 214 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 215 |
typedef 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; |
| 226 |
cpp_quote("") |
| 227 |
cpp_quote("#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper") |
| 228 |
cpp_quote("#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower") |
| 229 |
|
| 230 |
cpp_quote("") |
| 231 |
typedef 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 |
|
| 254 |
cpp_quote("") |
| 255 |
typedef 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 |
|
| 273 |
cpp_quote("") |
| 274 |
typedef 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 |
|
| 284 |
cpp_quote("") |
| 285 |
typedef 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 |
|
| 296 |
cpp_quote("") |
| 297 |
typedef 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 |
|
| 315 |
cpp_quote("") |
| 316 |
typedef 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; |
| 327 |
cpp_quote("#endif") |
| 328 |
cpp_quote("") |
| 329 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 330 |
|
| 331 |
typedef 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; |
| 353 |
cpp_quote("#endif") |
| 354 |
cpp_quote("") |
| 355 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 356 |
typedef struct _MFRatio { |
| 357 |
DWORD Numerator; |
| 358 |
DWORD Denominator; |
| 359 |
} MFRatio; |
| 360 |
|
| 361 |
cpp_quote("") |
| 362 |
typedef struct _MFOffset { |
| 363 |
WORD fract; |
| 364 |
short value; |
| 365 |
} MFOffset; |
| 366 |
typedef struct _MFVideoArea { |
| 367 |
MFOffset OffsetX; |
| 368 |
MFOffset OffsetY; |
| 369 |
SIZE Area; |
| 370 |
} MFVideoArea; |
| 371 |
cpp_quote("#endif") |
| 372 |
cpp_quote("") |
| 373 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 374 |
typedef 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; |
| 391 |
cpp_quote("#endif") |
| 392 |
cpp_quote("") |
| 393 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 394 |
typedef struct __MFAYUVSample { |
| 395 |
BYTE bCrValue; |
| 396 |
BYTE bCbValue; |
| 397 |
BYTE bYValue; |
| 398 |
BYTE bSampleAlpha8; |
| 399 |
} MFAYUVSample; |
| 400 |
|
| 401 |
cpp_quote("") |
| 402 |
typedef struct _MFARGB { |
| 403 |
BYTE rgbBlue; |
| 404 |
BYTE rgbGreen; |
| 405 |
BYTE rgbRed; |
| 406 |
BYTE rgbAlpha; |
| 407 |
} MFARGB; |
| 408 |
|
| 409 |
cpp_quote("") |
| 410 |
typedef union _MFPaletteEntry { |
| 411 |
MFARGB ARGB; |
| 412 |
MFAYUVSample AYCbCr; |
| 413 |
} MFPaletteEntry; |
| 414 |
cpp_quote("#endif") |
| 415 |
cpp_quote("") |
| 416 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 417 |
typedef struct _MFVideoSurfaceInfo { |
| 418 |
DWORD Format; |
| 419 |
DWORD PaletteEntries; |
| 420 |
[size_is (PaletteEntries)] MFPaletteEntry Palette[]; |
| 421 |
} MFVideoSurfaceInfo; |
| 422 |
|
| 423 |
cpp_quote("") |
| 424 |
typedef struct _MFVideoCompressedInfo { |
| 425 |
LONGLONG AvgBitrate; |
| 426 |
LONGLONG AvgBitErrorRate; |
| 427 |
DWORD MaxKeyFrameSpacing; |
| 428 |
} MFVideoCompressedInfo; |
| 429 |
|
| 430 |
cpp_quote("") |
| 431 |
typedef struct _MFVIDEOFORMAT { |
| 432 |
DWORD dwSize; |
| 433 |
MFVideoInfo videoInfo; |
| 434 |
GUID guidFormat; |
| 435 |
MFVideoCompressedInfo compressedInfo; |
| 436 |
MFVideoSurfaceInfo surfaceInfo; |
| 437 |
} MFVIDEOFORMAT; |
| 438 |
|
| 439 |
cpp_quote("") |
| 440 |
typedef 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; |
| 452 |
cpp_quote("#endif") |
| 453 |
cpp_quote("#endif") |
| 454 |
cpp_quote("") |
| 455 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 456 |
[object, uuid (b99f381f-a8f9-47a2-a5af-ca3a225a3890), local] |
| 457 |
interface IMFVideoMediaType : IMFMediaType { |
| 458 |
const MFVIDEOFORMAT *GetVideoFormat (); |
| 459 |
HRESULT GetVideoRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation,[in] LONG lStride); |
| 460 |
}; |
| 461 |
cpp_quote("#endif") |
| 462 |
cpp_quote("") |
| 463 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 464 |
[object, uuid (ac6b7889-0740-4d51-8619-905994a55cc6)] |
| 465 |
interface 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 |
|
| 473 |
cpp_quote("") |
| 474 |
[object, uuid (a27003cf-2354-4f2a-8d6a-ab7cff15437e),] |
| 475 |
interface IMFAsyncCallback : IUnknown { |
| 476 |
HRESULT GetParameters ([out] DWORD *pdwFlags,[out] DWORD *pdwQueue); |
| 477 |
HRESULT Invoke ([in] IMFAsyncResult *pAsyncResult); |
| 478 |
} |
| 479 |
cpp_quote("#endif") |
| 480 |
cpp_quote("") |
| 481 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 482 |
[object, uuid (c7a4dca1-f5f0-47b6-b92b-bf0106d25791), local] |
| 483 |
interface IMFAsyncCallbackLogging : IMFAsyncCallback { |
| 484 |
void *GetObjectPointer (); |
| 485 |
DWORD GetObjectTag (); |
| 486 |
} |
| 487 |
cpp_quote("#endif") |
| 488 |
cpp_quote("") |
| 489 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 490 |
cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001") |
| 491 |
cpp_quote("#define MFASYNC_SIGNAL_CALLBACK 0x00000002") |
| 492 |
cpp_quote("#define MFASYNC_BLOCKING_CALLBACK 0x00000004") |
| 493 |
cpp_quote("#define MFASYNC_REPLY_CALLBACK 0x00000008") |
| 494 |
cpp_quote("#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010") |
| 495 |
cpp_quote("") |
| 496 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000") |
| 497 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001") |
| 498 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002") |
| 499 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003") |
| 500 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004") |
| 501 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005") |
| 502 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007") |
| 503 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000") |
| 504 |
cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF") |
| 505 |
|
| 506 |
cpp_quote("") |
| 507 |
enum { |
| 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 |
|
| 630 |
cpp_quote("") |
| 631 |
typedef DWORD MediaEventType; |
| 632 |
|
| 633 |
cpp_quote("") |
| 634 |
[object, uuid (DF598932-F10C-4e39-BBA2-C308F101DAA3)] |
| 635 |
interface 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 |
|
| 642 |
cpp_quote("") |
| 643 |
cpp_quote("#define MF_EVENT_FLAG_NO_WAIT 0x00000001") |
| 644 |
|
| 645 |
cpp_quote("") |
| 646 |
interface IMFRemoteAsyncCallback; |
| 647 |
|
| 648 |
cpp_quote("") |
| 649 |
[object, uuid (2cd0bd52-BCD5-4b89-B62C-EADC0C031E7D)] |
| 650 |
interface 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 |
} |
| 658 |
cpp_quote("#endif") |
| 659 |
cpp_quote("") |
| 660 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 661 |
[object, uuid (a27003d0-2354-4f2a-8d6a-ab7cff15437e),] |
| 662 |
interface IMFRemoteAsyncCallback : IUnknown { |
| 663 |
HRESULT Invoke ([in] HRESULT hr,[in] IUnknown *pRemoteResult); |
| 664 |
}; |
| 665 |
cpp_quote("#endif") |
| 666 |
cpp_quote("") |
| 667 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 668 |
|
| 669 |
cpp_quote("") |
| 670 |
typedef enum _MFBYTESTREAM_SEEK_ORIGIN { |
| 671 |
msoBegin, |
| 672 |
msoCurrent |
| 673 |
} MFBYTESTREAM_SEEK_ORIGIN; |
| 674 |
|
| 675 |
cpp_quote("") |
| 676 |
[object, uuid (ad4c1b00-4bf7-422f-9175-756693d9130d),] |
| 677 |
interface 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 |
|
| 699 |
cpp_quote("") |
| 700 |
cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001") |
| 701 |
cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002") |
| 702 |
cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004") |
| 703 |
cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008") |
| 704 |
cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080") |
| 705 |
cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100") |
| 706 |
cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200") |
| 707 |
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7") |
| 708 |
cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400") |
| 709 |
cpp_quote("#endif") |
| 710 |
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8") |
| 711 |
cpp_quote("#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800") |
| 712 |
cpp_quote("#endif") |
| 713 |
|
| 714 |
cpp_quote("") |
| 715 |
cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001") |
| 716 |
cpp_quote("") |
| 717 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 718 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 719 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 720 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 721 |
cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)") |
| 722 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 723 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") |
| 724 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);") |
| 725 |
cpp_quote("EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );") |
| 726 |
cpp_quote("#endif") |
| 727 |
cpp_quote("#endif") |
| 728 |
cpp_quote("") |
| 729 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 730 |
cpp_quote("EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );") |
| 731 |
|
| 732 |
cpp_quote("") |
| 733 |
[object, uuid (a6b43f84-5c0a-42e8-a44d-b1857a76992f)] |
| 734 |
interface IMFByteStreamProxyClassFactory : IUnknown { |
| 735 |
HRESULT CreateByteStreamProxy ([in] IMFByteStream *pByteStream,[in, unique] IMFAttributes *pAttributes,[in] REFIID riid,[out, iid_is (riid)] LPVOID *ppvObject); |
| 736 |
}; |
| 737 |
|
| 738 |
cpp_quote("") |
| 739 |
typedef enum { |
| 740 |
MF_ACCESSMODE_READ = 1, |
| 741 |
MF_ACCESSMODE_WRITE = 2, |
| 742 |
MF_ACCESSMODE_READWRITE = 3 |
| 743 |
} MF_FILE_ACCESSMODE; |
| 744 |
|
| 745 |
cpp_quote("") |
| 746 |
typedef 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 |
|
| 754 |
cpp_quote("") |
| 755 |
typedef enum { |
| 756 |
MF_FILEFLAGS_NONE = 0x00000000, |
| 757 |
MF_FILEFLAGS_NOBUFFERING = 0x00000001, |
| 758 |
MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002 |
| 759 |
} MF_FILE_FLAGS; |
| 760 |
cpp_quote("#endif") |
| 761 |
cpp_quote("") |
| 762 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 763 |
[object, uuid (8feed468-6f7e-440d-869a-49bdd283ad0d),] |
| 764 |
interface 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 |
|
| 770 |
cpp_quote("") |
| 771 |
[object, uuid (5bc8a76b-869a-46a3-9b03-FA218A66AEBE)] |
| 772 |
interface 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 |
|
| 781 |
cpp_quote("") |
| 782 |
[object, uuid (36f846fc-2256-48b6-b58e-e2b638316581), local] |
| 783 |
interface 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 |
|
| 793 |
cpp_quote("") |
| 794 |
[object, uuid (7fee9e9a-4a89-47a6-899c-B6A53A70FB67), helpstring ("IMFActivate Interface"), pointer_default (unique)] |
| 795 |
interface IMFActivate : IMFAttributes { |
| 796 |
HRESULT ActivateObject ([in] REFIID riid,[out, iid_is (riid), retval] void **ppv); |
| 797 |
HRESULT ShutdownObject (); |
| 798 |
HRESULT DetachObject (); |
| 799 |
}; |
| 800 |
cpp_quote("#endif") |
| 801 |
cpp_quote("") |
| 802 |
cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7") |
| 803 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 804 |
typedef 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 |
|
| 811 |
cpp_quote("") |
| 812 |
[object, local, uuid (5c6c44bf-1db6-435b-9249-e8cd10fdec96), helpstring ("IMFPluginControl Interface"), pointer_default (unique)] |
| 813 |
interface 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 |
|
| 822 |
cpp_quote("") |
| 823 |
typedef 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 |
|
| 830 |
cpp_quote("") |
| 831 |
[object, local, uuid (C6982083-3ddc-45cb-AF5E-0f7a8ce4de77), helpstring ("IMFPluginControl2 Interface"), pointer_default (unique)] |
| 832 |
interface IMFPluginControl2 : IMFPluginControl { |
| 833 |
HRESULT SetPolicy ([in] MF_PLUGIN_CONTROL_POLICY policy); |
| 834 |
} |
| 835 |
cpp_quote("#endif") |
| 836 |
cpp_quote("") |
| 837 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") |
| 838 |
[object, local, uuid (eb533d5d-2db6-40f8-97a9-494692014f07), helpstring ("IMFDXGIDeviceManager Interface"), pointer_default (unique)] |
| 839 |
interface 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 |
|
| 849 |
cpp_quote("") |
| 850 |
typedef 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 |
|
| 856 |
cpp_quote("#endif") |
| 857 |
cpp_quote("") |
| 858 |
cpp_quote("#endif") |
| 859 |
|
| 860 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 861 |
cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN10_RS2") |
| 862 |
|
| 863 |
cpp_quote("") |
| 864 |
[object, local, uuid(ce8bd576-e440-43b3-be34-1e53f565f7e8), helpstring("IMFMuxStreamAttributesManager Interface"), pointer_default(unique)] |
| 865 |
interface IMFMuxStreamAttributesManager : IUnknown { |
| 866 |
HRESULT GetStreamCount (DWORD *pdwMuxStreamCount); |
| 867 |
HRESULT GetAttributes (DWORD dwMuxStreamIndex, IMFAttributes **ppStreamAttributes); |
| 868 |
} |
| 869 |
|
| 870 |
cpp_quote("") |
| 871 |
[object, local, uuid(505a2c72-42f7-4690-aeab-8f513d0ffdb8), helpstring("IMFMuxStreamMediaTypeManager Interface"), pointer_default(unique)] |
| 872 |
interface 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 |
|
| 881 |
cpp_quote("") |
| 882 |
[object, local, uuid(74abbc19-b1cc-4e41-bb8b-9d9b86a8f6ca), helpstring("IMFMuxStreamSampleManager Interface"), pointer_default(unique)] |
| 883 |
interface IMFMuxStreamSampleManager : IUnknown { |
| 884 |
HRESULT GetStreamCount (DWORD *pdwMuxStreamCount); |
| 885 |
HRESULT GetSample (DWORD dwMuxStreamIndex, IMFSample **ppSample); |
| 886 |
ULONGLONG GetStreamConfiguration (); |
| 887 |
} |
| 888 |
|
| 889 |
cpp_quote("#endif") |
| 890 |
cpp_quote("#endif") |