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