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#if WINVER >= 0x0601 242 MFVideoTransFunc_Log_100 = 9, 243 MFVideoTransFunc_Log_316 = 10, 244 MFVideoTransFunc_709_sym = 11, 245#endif 246 MFVideoTransFunc_Last, 247 MFVideoTransFunc_ForceDWORD = 0x7fffffff 248} MFVideoTransferFunction; 249 250cpp_quote("") 251typedef enum _MFVideoPrimaries { 252 MFVideoPrimaries_Unknown = 0, 253 MFVideoPrimaries_reserved = 1, 254 MFVideoPrimaries_BT709 = 2, 255 MFVideoPrimaries_BT470_2_SysM = 3, 256 MFVideoPrimaries_BT470_2_SysBG = 4, 257 MFVideoPrimaries_SMPTE170M = 5, 258 MFVideoPrimaries_SMPTE240M = 6, 259 MFVideoPrimaries_EBU3213 = 7, 260 MFVideoPrimaries_SMPTE_C = 8, 261 MFVideoPrimaries_Last, 262 MFVideoPrimaries_ForceDWORD = 0x7fffffff 263} MFVideoPrimaries; 264 265cpp_quote("") 266typedef enum _MFVideoLighting { 267 MFVideoLighting_Unknown = 0, 268 MFVideoLighting_bright=1, 269 MFVideoLighting_office=2, 270 MFVideoLighting_dim=3, 271 MFVideoLighting_dark=4, 272 MFVideoLighting_Last, 273 MFVideoLighting_ForceDWORD = 0x7fffffff 274} MFVideoLighting; 275 276cpp_quote("") 277typedef enum _MFVideoTransferMatrix { 278 MFVideoTransferMatrix_Unknown = 0, 279 MFVideoTransferMatrix_BT709 = 1, 280 MFVideoTransferMatrix_BT601 = 2, 281 MFVideoTransferMatrix_SMPTE240M = 3, 282 MFVideoTransferMatrix_BT2020_10 = 4, 283 MFVideoTransferMatrix_BT2020_12 = 5, 284 MFVideoTransferMatrix_Last, 285 MFVideoTransferMatrix_ForceDWORD = 0x7fffffff 286} MFVideoTransferMatrix; 287 288cpp_quote("") 289typedef enum _MFVideoChromaSubsampling { 290 MFVideoChromaSubsampling_Unknown = 0, 291 MFVideoChromaSubsampling_ProgressiveChroma = 0x8, 292 MFVideoChromaSubsampling_Horizontally_Cosited = 0x4, 293 MFVideoChromaSubsampling_Vertically_Cosited = 0x2, 294 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, 295 MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited | 296 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes, 297 MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes, 298 MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited | 299 MFVideoChromaSubsampling_Vertically_Cosited, 300 MFVideoChromaSubsampling_Cosited = MFVideoChromaSubsampling_Horizontally_Cosited | 301 MFVideoChromaSubsampling_Vertically_Cosited | 302 MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes, 303 MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited+1, 304 MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff 305} MFVideoChromaSubsampling; 306 307cpp_quote("") 308typedef enum _MFNominalRange { 309 MFNominalRange_Unknown = 0, 310 MFNominalRange_Normal = 1, 311 MFNominalRange_Wide = 2, 312 MFNominalRange_0_255 = 1, 313 MFNominalRange_16_235 = 2, 314 MFNominalRange_48_208 = 3, 315#if WINVER >= 0x0601 316 MFNominalRange_64_127 = 4, 317#endif 318 MFNominalRange_Last, 319 MFNominalRange_ForceDWORD = 0x7fffffff 320} MFNominalRange; 321cpp_quote("#endif") 322cpp_quote("") 323cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 324 325typedef enum _MFVideoFlags { 326 MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002, 327 MFVideoFlag_PAD_TO_None = 0 *0x0001, 328 MFVideoFlag_PAD_TO_4x3 = 1 *0x0001, 329 MFVideoFlag_PAD_TO_16x9 = 2 *0x0001, 330 MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010, 331 MFVideoFlag_SrcContentHintNone = 0 *0x0004, 332 MFVideoFlag_SrcContentHint16x9 = 1 *0x0004, 333 MFVideoFlag_SrcContentHint235_1 = 2 *0x0004, 334 MFVideoFlag_AnalogProtected = 0x0020, 335 MFVideoFlag_DigitallyProtected = 0x0040, 336 MFVideoFlag_ProgressiveContent = 0x0080, 337 MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400, 338 MFVideoFlag_FieldRepeatCountShift = 8, 339 MFVideoFlag_ProgressiveSeqReset = 0x0800, 340 MFVideoFlag_PanScanEnabled = 0x20000, 341 MFVideoFlag_LowerFieldFirst = 0x40000, 342 MFVideoFlag_BottomUpLinearRep = 0x80000, 343 MFVideoFlags_DXVASurface = 0x100000, 344 MFVideoFlags_RenderTargetSurface = 0x400000, 345 MFVideoFlags_ForceQWORD = 0x7fffffff 346} MFVideoFlags; 347cpp_quote("#endif") 348cpp_quote("") 349cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 350typedef struct _MFRatio { 351 DWORD Numerator; 352 DWORD Denominator; 353} MFRatio; 354 355cpp_quote("") 356typedef struct _MFOffset { 357 WORD fract; 358 short value; 359} MFOffset; 360typedef struct _MFVideoArea { 361 MFOffset OffsetX; 362 MFOffset OffsetY; 363 SIZE Area; 364} MFVideoArea; 365cpp_quote("#endif") 366cpp_quote("") 367cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 368typedef struct _MFVideoInfo { 369 DWORD dwWidth; 370 DWORD dwHeight; 371 MFRatio PixelAspectRatio; 372 MFVideoChromaSubsampling SourceChromaSubsampling; 373 MFVideoInterlaceMode InterlaceMode; 374 MFVideoTransferFunction TransferFunction; 375 MFVideoPrimaries ColorPrimaries; 376 MFVideoTransferMatrix TransferMatrix; 377 MFVideoLighting SourceLighting; 378 MFRatio FramesPerSecond; 379 MFNominalRange NominalRange; 380 MFVideoArea GeometricAperture; 381 MFVideoArea MinimumDisplayAperture; 382 MFVideoArea PanScanAperture; 383 unsigned __int64 VideoFlags; 384} MFVideoInfo; 385cpp_quote("#endif") 386cpp_quote("") 387cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 388typedef struct __MFAYUVSample { 389 BYTE bCrValue; 390 BYTE bCbValue; 391 BYTE bYValue; 392 BYTE bSampleAlpha8; 393} MFAYUVSample; 394 395cpp_quote("") 396typedef struct _MFARGB { 397 BYTE rgbBlue; 398 BYTE rgbGreen; 399 BYTE rgbRed; 400 BYTE rgbAlpha; 401} MFARGB; 402 403cpp_quote("") 404typedef union _MFPaletteEntry { 405 MFARGB ARGB; 406 MFAYUVSample AYCbCr; 407} MFPaletteEntry; 408cpp_quote("#endif") 409cpp_quote("") 410cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 411typedef struct _MFVideoSurfaceInfo { 412 DWORD Format; 413 DWORD PaletteEntries; 414 [size_is (PaletteEntries)] MFPaletteEntry Palette[]; 415} MFVideoSurfaceInfo; 416 417cpp_quote("") 418typedef struct _MFVideoCompressedInfo { 419 LONGLONG AvgBitrate; 420 LONGLONG AvgBitErrorRate; 421 DWORD MaxKeyFrameSpacing; 422} MFVideoCompressedInfo; 423 424cpp_quote("") 425typedef struct _MFVIDEOFORMAT { 426 DWORD dwSize; 427 MFVideoInfo videoInfo; 428 GUID guidFormat; 429 MFVideoCompressedInfo compressedInfo; 430 MFVideoSurfaceInfo surfaceInfo; 431} MFVIDEOFORMAT; 432 433cpp_quote("") 434typedef enum _MFStandardVideoFormat { 435 MFStdVideoFormat_reserved = 0, 436 MFStdVideoFormat_NTSC, 437 MFStdVideoFormat_PAL, 438 MFStdVideoFormat_DVD_NTSC, 439 MFStdVideoFormat_DVD_PAL, 440 MFStdVideoFormat_DV_PAL, 441 MFStdVideoFormat_DV_NTSC, 442 MFStdVideoFormat_ATSC_SD480i, 443 MFStdVideoFormat_ATSC_HD1080i, 444 MFStdVideoFormat_ATSC_HD720p, 445} MFStandardVideoFormat; 446cpp_quote("#endif") 447cpp_quote("#endif") 448cpp_quote("") 449cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 450[object, uuid (b99f381f-a8f9-47a2-a5af-ca3a225a3890), local] 451interface IMFVideoMediaType : IMFMediaType { 452 const MFVIDEOFORMAT *GetVideoFormat (); 453 HRESULT GetVideoRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation,[in] LONG lStride); 454}; 455cpp_quote("#endif") 456cpp_quote("") 457cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 458[object, uuid (ac6b7889-0740-4d51-8619-905994a55cc6)] 459interface IMFAsyncResult : IUnknown { 460 HRESULT GetState ([out] IUnknown **ppunkState); 461 HRESULT GetStatus (); 462 HRESULT SetStatus ([in] HRESULT hrStatus); 463 HRESULT GetObject ([out] IUnknown **ppObject); 464 [local] IUnknown *GetStateNoAddRef (); 465}; 466 467cpp_quote("") 468[object, uuid (a27003cf-2354-4f2a-8d6a-ab7cff15437e),] 469interface IMFAsyncCallback : IUnknown { 470 HRESULT GetParameters ([out] DWORD *pdwFlags,[out] DWORD *pdwQueue); 471 HRESULT Invoke ([in] IMFAsyncResult *pAsyncResult); 472} 473cpp_quote("#endif") 474cpp_quote("") 475cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 476[object, uuid (c7a4dca1-f5f0-47b6-b92b-bf0106d25791), local] 477interface IMFAsyncCallbackLogging : IMFAsyncCallback { 478 void *GetObjectPointer (); 479 DWORD GetObjectTag (); 480} 481cpp_quote("#endif") 482cpp_quote("") 483cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 484cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001") 485cpp_quote("#define MFASYNC_SIGNAL_CALLBACK 0x00000002") 486cpp_quote("#define MFASYNC_BLOCKING_CALLBACK 0x00000004") 487cpp_quote("#define MFASYNC_REPLY_CALLBACK 0x00000008") 488cpp_quote("#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010") 489cpp_quote("") 490cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000") 491cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001") 492cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002") 493cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003") 494cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004") 495cpp_quote("#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005") 496cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007") 497cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000") 498cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF") 499 500cpp_quote("") 501enum { 502 MEUnknown = 0, 503 MEError = 1, 504 MEExtendedType = 2, 505 MENonFatalError = 3, 506 MEGenericV1Anchor = MENonFatalError, 507 MESessionUnknown = 100, 508 MESessionTopologySet = 101, 509 MESessionTopologiesCleared = 102, 510 MESessionStarted = 103, 511 MESessionPaused = 104, 512 MESessionStopped = 105, 513 MESessionClosed = 106, 514 MESessionEnded = 107, 515 MESessionRateChanged = 108, 516 MESessionScrubSampleComplete = 109, 517 MESessionCapabilitiesChanged = 110, 518 MESessionTopologyStatus = 111, 519 MESessionNotifyPresentationTime = 112, 520 MENewPresentation = 113, 521 MELicenseAcquisitionStart = 114, 522 MELicenseAcquisitionCompleted = 115, 523 MEIndividualizationStart = 116, 524 MEIndividualizationCompleted = 117, 525 MEEnablerProgress = 118, 526 MEEnablerCompleted = 119, 527 MEPolicyError = 120, 528 MEPolicyReport = 121, 529 MEBufferingStarted = 122, 530 MEBufferingStopped = 123, 531 MEConnectStart = 124, 532 MEConnectEnd = 125, 533 MEReconnectStart = 126, 534 MEReconnectEnd = 127, 535 MERendererEvent = 128, 536 MESessionStreamSinkFormatChanged = 129, 537 MESessionV1Anchor = MESessionStreamSinkFormatChanged, 538 MESourceUnknown = 200, 539 MESourceStarted = 201, 540 MEStreamStarted = 202, 541 MESourceSeeked = 203, 542 MEStreamSeeked = 204, 543 MENewStream = 205, 544 MEUpdatedStream = 206, 545 MESourceStopped = 207, 546 MEStreamStopped = 208, 547 MESourcePaused = 209, 548 MEStreamPaused = 210, 549 MEEndOfPresentation = 211, 550 MEEndOfStream = 212, 551 MEMediaSample = 213, 552 MEStreamTick = 214, 553 MEStreamThinMode = 215, 554 MEStreamFormatChanged = 216, 555 MESourceRateChanged = 217, 556 MEEndOfPresentationSegment = 218, 557 MESourceCharacteristicsChanged = 219, 558 MESourceRateChangeRequested = 220, 559 MESourceMetadataChanged = 221, 560 MESequencerSourceTopologyUpdated = 222, 561 MESourceV1Anchor = MESequencerSourceTopologyUpdated, 562 MESinkUnknown = 300, 563 MEStreamSinkStarted = 301, 564 MEStreamSinkStopped = 302, 565 MEStreamSinkPaused = 303, 566 MEStreamSinkRateChanged = 304, 567 MEStreamSinkRequestSample = 305, 568 MEStreamSinkMarker = 306, 569 MEStreamSinkPrerolled = 307, 570 MEStreamSinkScrubSampleComplete = 308, 571 MEStreamSinkFormatChanged = 309, 572 MEStreamSinkDeviceChanged = 310, 573 MEQualityNotify = 311, 574 MESinkInvalidated = 312, 575 MEAudioSessionNameChanged = 313, 576 MEAudioSessionVolumeChanged = 314, 577 MEAudioSessionDeviceRemoved = 315, 578 MEAudioSessionServerShutdown = 316, 579 MEAudioSessionGroupingParamChanged = 317, 580 MEAudioSessionIconChanged = 318, 581 MEAudioSessionFormatChanged = 319, 582 MEAudioSessionDisconnected = 320, 583 MEAudioSessionExclusiveModeOverride = 321, 584 MESinkV1Anchor = MEAudioSessionExclusiveModeOverride, 585#if WINVER >= 0x0602 586 MECaptureAudioSessionVolumeChanged = 322, 587 MECaptureAudioSessionDeviceRemoved = 323, 588 MECaptureAudioSessionFormatChanged = 324, 589 MECaptureAudioSessionDisconnected = 325, 590 MECaptureAudioSessionExclusiveModeOverride = 326, 591 MECaptureAudioSessionServerShutdown = 327, 592 MESinkV2Anchor = MECaptureAudioSessionServerShutdown, 593#endif 594 METrustUnknown = 400, 595 MEPolicyChanged = 401, 596 MEContentProtectionMessage = 402, 597 MEPolicySet = 403, 598 METrustV1Anchor = MEPolicySet, 599 MEWMDRMLicenseBackupCompleted = 500, 600 MEWMDRMLicenseBackupProgress = 501, 601 MEWMDRMLicenseRestoreCompleted = 502, 602 MEWMDRMLicenseRestoreProgress = 503, 603 MEWMDRMLicenseAcquisitionCompleted = 506, 604 MEWMDRMIndividualizationCompleted = 508, 605 MEWMDRMIndividualizationProgress = 513, 606 MEWMDRMProximityCompleted = 514, 607 MEWMDRMLicenseStoreCleaned = 515, 608 MEWMDRMRevocationDownloadCompleted = 516, 609 MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted, 610#if WINVER >= 0x0601 611 METransformUnknown = 600, 612 METransformNeedInput, 613 METransformHaveOutput, 614 METransformDrainComplete, 615 METransformMarker, 616#endif 617#if WINVER >= 0x0602 618 MEByteStreamCharacteristicsChanged = 700, 619 MEVideoCaptureDeviceRemoved = 800, 620 MEVideoCaptureDevicePreempted = 801, 621#endif 622 MEReservedMax = 10000 623}; 624 625cpp_quote("") 626typedef DWORD MediaEventType; 627 628cpp_quote("") 629[object, uuid (DF598932-F10C-4e39-BBA2-C308F101DAA3)] 630interface IMFMediaEvent : IMFAttributes { 631 HRESULT GetType ([out] MediaEventType *pmet); 632 HRESULT GetExtendedType ([out] GUID *pguidExtendedType); 633 HRESULT GetStatus ([out] HRESULT *phrStatus); 634 HRESULT GetValue ([out] PROPVARIANT *pvValue); 635} 636 637cpp_quote("") 638cpp_quote("#define MF_EVENT_FLAG_NO_WAIT 0x00000001") 639 640cpp_quote("") 641interface IMFRemoteAsyncCallback; 642 643cpp_quote("") 644[object, uuid (2cd0bd52-BCD5-4b89-B62C-EADC0C031E7D)] 645interface IMFMediaEventGenerator : IUnknown { 646 HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent); 647 [local] HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState); 648 [call_as (BeginGetEvent)] HRESULT RemoteBeginGetEvent ([in] IMFRemoteAsyncCallback *pCallback); 649 [local] HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent); 650 [call_as (EndGetEvent)] HRESULT RemoteEndGetEvent ([in] IUnknown *pResult,[out] DWORD *pcbEvent,[out, size_is (,*pcbEvent)] BYTE **ppbEvent); 651 HRESULT QueueEvent ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue); 652} 653cpp_quote("#endif") 654cpp_quote("") 655cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 656[object, uuid (a27003d0-2354-4f2a-8d6a-ab7cff15437e),] 657interface IMFRemoteAsyncCallback : IUnknown { 658 HRESULT Invoke ([in] HRESULT hr,[in] IUnknown *pRemoteResult); 659}; 660cpp_quote("#endif") 661cpp_quote("") 662cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 663 664cpp_quote("") 665typedef enum _MFBYTESTREAM_SEEK_ORIGIN { 666 msoBegin, 667 msoCurrent 668} MFBYTESTREAM_SEEK_ORIGIN; 669 670cpp_quote("") 671[object, uuid (ad4c1b00-4bf7-422f-9175-756693d9130d),] 672interface IMFByteStream : IUnknown { 673 HRESULT GetCapabilities ([out] DWORD *pdwCapabilities); 674 HRESULT GetLength ([out] QWORD *pqwLength); 675 HRESULT SetLength ([in] QWORD qwLength); 676 HRESULT GetCurrentPosition ([out] QWORD *pqwPosition); 677 HRESULT SetCurrentPosition ([in] QWORD qwPosition); 678 HRESULT IsEndOfStream ([out] WINBOOL *pfEndOfStream); 679 HRESULT Read ([out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead); 680 [local] HRESULT BeginRead ([out] BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState); 681 [call_as (BeginRead)] HRESULT RemoteBeginRead ([in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback); 682 [local] HRESULT EndRead ([in] IMFAsyncResult *pResult,[out] ULONG *pcbRead); 683 [call_as (EndRead)] HRESULT RemoteEndRead ([in] IUnknown *punkResult,[out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead); 684 HRESULT Write ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[out] ULONG *pcbWritten); 685 [local] HRESULT BeginWrite ([in] const BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState); 686 [call_as (BeginWrite)] HRESULT RemoteBeginWrite ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback); 687 [local] HRESULT EndWrite ([in] IMFAsyncResult *pResult,[out] ULONG *pcbWritten); 688 [call_as (EndWrite)] HRESULT RemoteEndWrite ([in] IUnknown *punkResult,[out] ULONG *pcbWritten); 689 HRESULT Seek ([in] MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,[in] LONGLONG llSeekOffset,[in] DWORD dwSeekFlags,[out] QWORD *pqwCurrentPosition); 690 HRESULT Flush (); 691 HRESULT Close (); 692}; 693 694cpp_quote("") 695cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001") 696cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002") 697cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004") 698cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008") 699cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080") 700cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100") 701cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200") 702cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7") 703cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400") 704cpp_quote("#endif") 705cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8") 706cpp_quote("#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800") 707cpp_quote("#endif") 708 709cpp_quote("") 710cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001") 711cpp_quote("") 712cpp_quote("EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 713cpp_quote("EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 714cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 715cpp_quote("EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 716cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)") 717cpp_quote("EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 718cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);") 719cpp_quote("EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);") 720cpp_quote("EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );") 721cpp_quote("#endif") 722cpp_quote("#endif") 723cpp_quote("") 724cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 725cpp_quote("EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );") 726 727cpp_quote("") 728[object, uuid (a6b43f84-5c0a-42e8-a44d-b1857a76992f)] 729interface IMFByteStreamProxyClassFactory : IUnknown { 730 HRESULT CreateByteStreamProxy ([in] IMFByteStream *pByteStream,[in, unique] IMFAttributes *pAttributes,[in] REFIID riid,[out, iid_is (riid)] LPVOID *ppvObject); 731}; 732 733cpp_quote("") 734typedef enum { 735 MF_ACCESSMODE_READ = 1, 736 MF_ACCESSMODE_WRITE = 2, 737 MF_ACCESSMODE_READWRITE = 3 738} MF_FILE_ACCESSMODE; 739 740cpp_quote("") 741typedef enum { 742 MF_OPENMODE_FAIL_IF_NOT_EXIST = 0, 743 MF_OPENMODE_FAIL_IF_EXIST = 1, 744 MF_OPENMODE_RESET_IF_EXIST = 2, 745 MF_OPENMODE_APPEND_IF_EXIST = 3, 746 MF_OPENMODE_DELETE_IF_EXIST = 4 747} MF_FILE_OPENMODE; 748 749cpp_quote("") 750typedef enum { 751 MF_FILEFLAGS_NONE = 0x00000000, 752 MF_FILEFLAGS_NOBUFFERING = 0x00000001 753#if WINVER >= 0x0601 754 , MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002 755#endif 756} MF_FILE_FLAGS; 757cpp_quote("#endif") 758cpp_quote("") 759cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 760[object, uuid (8feed468-6f7e-440d-869a-49bdd283ad0d),] 761interface IMFSampleOutputStream : IUnknown { 762 HRESULT BeginWriteSample ([in] IMFSample *pSample,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState); 763 HRESULT EndWriteSample ([in] IMFAsyncResult *pResult); 764 HRESULT Close (); 765}; 766 767cpp_quote("") 768[object, uuid (5bc8a76b-869a-46a3-9b03-FA218A66AEBE)] 769interface IMFCollection : IUnknown { 770 HRESULT GetElementCount ([out] DWORD *pcElements); 771 HRESULT GetElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement); 772 HRESULT AddElement ([in] IUnknown *pUnkElement); 773 HRESULT RemoveElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement); 774 HRESULT InsertElementAt ([in] DWORD dwIndex,[in]IUnknown *pUnknown); 775 HRESULT RemoveAllElements (); 776} 777 778cpp_quote("") 779[object, uuid (36f846fc-2256-48b6-b58e-e2b638316581), local] 780interface IMFMediaEventQueue : IUnknown { 781 HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent); 782 HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState); 783 HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent); 784 HRESULT QueueEvent ([in] IMFMediaEvent *pEvent); 785 HRESULT QueueEventParamVar ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue); 786 HRESULT QueueEventParamUnk ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] IUnknown *pUnk); 787 HRESULT Shutdown (); 788} 789 790cpp_quote("") 791[object, uuid (7fee9e9a-4a89-47a6-899c-B6A53A70FB67), helpstring ("IMFActivate Interface"), pointer_default (unique)] 792interface IMFActivate : IMFAttributes { 793 HRESULT ActivateObject ([in] REFIID riid,[out, iid_is (riid), retval] void **ppv); 794 HRESULT ShutdownObject (); 795 HRESULT DetachObject (); 796}; 797cpp_quote("#endif") 798cpp_quote("") 799cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7") 800cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 801typedef enum _MF_Plugin_Type { 802 MF_Plugin_Type_MFT = 0, 803 MF_Plugin_Type_MediaSource = 1, 804 MF_Plugin_Type_MFT_MatchOutputType = 2, 805 MF_Plugin_Type_Other = (DWORD)-1, 806} MF_Plugin_Type; 807 808cpp_quote("") 809[object, local, uuid (5c6c44bf-1db6-435b-9249-e8cd10fdec96), helpstring ("IMFPluginControl Interface"), pointer_default (unique)] 810interface IMFPluginControl : IUnknown { 811 HRESULT GetPreferredClsid (DWORD pluginType, LPCWSTR selector, CLSID *clsid); 812 HRESULT GetPreferredClsidByIndex (DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid); 813 HRESULT SetPreferredClsid (DWORD pluginType, LPCWSTR selector, const CLSID *clsid); 814 HRESULT IsDisabled (DWORD pluginType, REFCLSID clsid); 815 HRESULT GetDisabledByIndex (DWORD pluginType, DWORD index, CLSID *clsid); 816 HRESULT SetDisabled (DWORD pluginType, REFCLSID clsid, WINBOOL disabled); 817} 818 819cpp_quote("") 820typedef enum MF_PLUGIN_CONTROL_POLICY { 821 MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0, 822 MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1, 823 MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2 824} MF_PLUGIN_CONTROL_POLICY; 825 826cpp_quote("") 827[object, local, uuid (C6982083-3ddc-45cb-AF5E-0f7a8ce4de77), helpstring ("IMFPluginControl2 Interface"), pointer_default (unique)] 828interface IMFPluginControl2 : IMFPluginControl { 829 HRESULT SetPolicy ([in] MF_PLUGIN_CONTROL_POLICY policy); 830} 831cpp_quote("#endif") 832cpp_quote("") 833cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 834[object, local, uuid (eb533d5d-2db6-40f8-97a9-494692014f07), helpstring ("IMFDXGIDeviceManager Interface"), pointer_default (unique)] 835interface IMFDXGIDeviceManager : IUnknown { 836 HRESULT CloseDeviceHandle (HANDLE hDevice); 837 HRESULT GetVideoService (HANDLE hDevice, REFIID riid, void **ppService); 838 HRESULT LockDevice (HANDLE hDevice, REFIID riid, void **ppUnkDevice, WINBOOL fBlock); 839 HRESULT OpenDeviceHandle (HANDLE *phDevice); 840 HRESULT ResetDevice (IUnknown *pUnkDevice, UINT resetToken); 841 HRESULT TestDevice (HANDLE hDevice); 842 HRESULT UnlockDevice (HANDLE hDevice, WINBOOL fSaveState); 843} 844cpp_quote("#endif") 845cpp_quote("") 846cpp_quote("#endif") 847