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