1 /*** Autogenerated by WIDL 6.4 from include/mfidl.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 __mfidl_h__ 17 #define __mfidl_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IMFTopologyNode_FWD_DEFINED__ 22 #define __IMFTopologyNode_FWD_DEFINED__ 23 typedef interface IMFTopologyNode IMFTopologyNode; 24 #ifdef __cplusplus 25 interface IMFTopologyNode; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IMFTopology_FWD_DEFINED__ 30 #define __IMFTopology_FWD_DEFINED__ 31 typedef interface IMFTopology IMFTopology; 32 #ifdef __cplusplus 33 interface IMFTopology; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IMFGetService_FWD_DEFINED__ 38 #define __IMFGetService_FWD_DEFINED__ 39 typedef interface IMFGetService IMFGetService; 40 #ifdef __cplusplus 41 interface IMFGetService; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IMFClock_FWD_DEFINED__ 46 #define __IMFClock_FWD_DEFINED__ 47 typedef interface IMFClock IMFClock; 48 #ifdef __cplusplus 49 interface IMFClock; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IMFMediaSession_FWD_DEFINED__ 54 #define __IMFMediaSession_FWD_DEFINED__ 55 typedef interface IMFMediaSession IMFMediaSession; 56 #ifdef __cplusplus 57 interface IMFMediaSession; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IMFMediaTypeHandler_FWD_DEFINED__ 62 #define __IMFMediaTypeHandler_FWD_DEFINED__ 63 typedef interface IMFMediaTypeHandler IMFMediaTypeHandler; 64 #ifdef __cplusplus 65 interface IMFMediaTypeHandler; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IMFStreamDescriptor_FWD_DEFINED__ 70 #define __IMFStreamDescriptor_FWD_DEFINED__ 71 typedef interface IMFStreamDescriptor IMFStreamDescriptor; 72 #ifdef __cplusplus 73 interface IMFStreamDescriptor; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IMFPresentationDescriptor_FWD_DEFINED__ 78 #define __IMFPresentationDescriptor_FWD_DEFINED__ 79 typedef interface IMFPresentationDescriptor IMFPresentationDescriptor; 80 #ifdef __cplusplus 81 interface IMFPresentationDescriptor; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __IMFMediaSource_FWD_DEFINED__ 86 #define __IMFMediaSource_FWD_DEFINED__ 87 typedef interface IMFMediaSource IMFMediaSource; 88 #ifdef __cplusplus 89 interface IMFMediaSource; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __IMFByteStreamBuffering_FWD_DEFINED__ 94 #define __IMFByteStreamBuffering_FWD_DEFINED__ 95 typedef interface IMFByteStreamBuffering IMFByteStreamBuffering; 96 #ifdef __cplusplus 97 interface IMFByteStreamBuffering; 98 #endif /* __cplusplus */ 99 #endif 100 101 #ifndef __IMFClockStateSink_FWD_DEFINED__ 102 #define __IMFClockStateSink_FWD_DEFINED__ 103 typedef interface IMFClockStateSink IMFClockStateSink; 104 #ifdef __cplusplus 105 interface IMFClockStateSink; 106 #endif /* __cplusplus */ 107 #endif 108 109 #ifndef __IMFAudioStreamVolume_FWD_DEFINED__ 110 #define __IMFAudioStreamVolume_FWD_DEFINED__ 111 typedef interface IMFAudioStreamVolume IMFAudioStreamVolume; 112 #ifdef __cplusplus 113 interface IMFAudioStreamVolume; 114 #endif /* __cplusplus */ 115 #endif 116 117 #ifndef __IMFMediaSink_FWD_DEFINED__ 118 #define __IMFMediaSink_FWD_DEFINED__ 119 typedef interface IMFMediaSink IMFMediaSink; 120 #ifdef __cplusplus 121 interface IMFMediaSink; 122 #endif /* __cplusplus */ 123 #endif 124 125 #ifndef __IMFFinalizableMediaSink_FWD_DEFINED__ 126 #define __IMFFinalizableMediaSink_FWD_DEFINED__ 127 typedef interface IMFFinalizableMediaSink IMFFinalizableMediaSink; 128 #ifdef __cplusplus 129 interface IMFFinalizableMediaSink; 130 #endif /* __cplusplus */ 131 #endif 132 133 #ifndef __IMFMediaSinkPreroll_FWD_DEFINED__ 134 #define __IMFMediaSinkPreroll_FWD_DEFINED__ 135 typedef interface IMFMediaSinkPreroll IMFMediaSinkPreroll; 136 #ifdef __cplusplus 137 interface IMFMediaSinkPreroll; 138 #endif /* __cplusplus */ 139 #endif 140 141 #ifndef __IMFMediaStream_FWD_DEFINED__ 142 #define __IMFMediaStream_FWD_DEFINED__ 143 typedef interface IMFMediaStream IMFMediaStream; 144 #ifdef __cplusplus 145 interface IMFMediaStream; 146 #endif /* __cplusplus */ 147 #endif 148 149 #ifndef __IMFMetadata_FWD_DEFINED__ 150 #define __IMFMetadata_FWD_DEFINED__ 151 typedef interface IMFMetadata IMFMetadata; 152 #ifdef __cplusplus 153 interface IMFMetadata; 154 #endif /* __cplusplus */ 155 #endif 156 157 #ifndef __IMFMetadataProvider_FWD_DEFINED__ 158 #define __IMFMetadataProvider_FWD_DEFINED__ 159 typedef interface IMFMetadataProvider IMFMetadataProvider; 160 #ifdef __cplusplus 161 interface IMFMetadataProvider; 162 #endif /* __cplusplus */ 163 #endif 164 165 #ifndef __IMFPresentationTimeSource_FWD_DEFINED__ 166 #define __IMFPresentationTimeSource_FWD_DEFINED__ 167 typedef interface IMFPresentationTimeSource IMFPresentationTimeSource; 168 #ifdef __cplusplus 169 interface IMFPresentationTimeSource; 170 #endif /* __cplusplus */ 171 #endif 172 173 #ifndef __IMFPresentationClock_FWD_DEFINED__ 174 #define __IMFPresentationClock_FWD_DEFINED__ 175 typedef interface IMFPresentationClock IMFPresentationClock; 176 #ifdef __cplusplus 177 interface IMFPresentationClock; 178 #endif /* __cplusplus */ 179 #endif 180 181 #ifndef __IMFRateControl_FWD_DEFINED__ 182 #define __IMFRateControl_FWD_DEFINED__ 183 typedef interface IMFRateControl IMFRateControl; 184 #ifdef __cplusplus 185 interface IMFRateControl; 186 #endif /* __cplusplus */ 187 #endif 188 189 #ifndef __IMFRateSupport_FWD_DEFINED__ 190 #define __IMFRateSupport_FWD_DEFINED__ 191 typedef interface IMFRateSupport IMFRateSupport; 192 #ifdef __cplusplus 193 interface IMFRateSupport; 194 #endif /* __cplusplus */ 195 #endif 196 197 #ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 198 #define __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 199 typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback; 200 #ifdef __cplusplus 201 interface IMFSampleGrabberSinkCallback; 202 #endif /* __cplusplus */ 203 #endif 204 205 #ifndef __IMFSourceResolver_FWD_DEFINED__ 206 #define __IMFSourceResolver_FWD_DEFINED__ 207 typedef interface IMFSourceResolver IMFSourceResolver; 208 #ifdef __cplusplus 209 interface IMFSourceResolver; 210 #endif /* __cplusplus */ 211 #endif 212 213 #ifndef __IMFStreamSink_FWD_DEFINED__ 214 #define __IMFStreamSink_FWD_DEFINED__ 215 typedef interface IMFStreamSink IMFStreamSink; 216 #ifdef __cplusplus 217 interface IMFStreamSink; 218 #endif /* __cplusplus */ 219 #endif 220 221 #ifndef __IMFTopoLoader_FWD_DEFINED__ 222 #define __IMFTopoLoader_FWD_DEFINED__ 223 typedef interface IMFTopoLoader IMFTopoLoader; 224 #ifdef __cplusplus 225 interface IMFTopoLoader; 226 #endif /* __cplusplus */ 227 #endif 228 229 /* Headers for imported files */ 230 231 #include <mfobjects.h> 232 233 #ifdef __cplusplus 234 extern "C" { 235 #endif 236 237 #include <mftransform.h> 238 #include <windef.h> 239 typedef enum MFSESSION_SETTOPOLOGY_FLAGS { 240 MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1, 241 MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2, 242 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4 243 } MFSESSION_SETTOPOLOGY_FLAGS; 244 typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS { 245 MFSESSION_GETFULLTOPOLOGY_CURRENT = 0 246 } MFSESSION_GETFULLTOPOLOGY_FLAGS; 247 typedef enum MFPMPSESSION_CREATION_FLAGS { 248 MFPMPSESSION_UNPROTECTED_PROCESS = 0x1 249 } MFPMPSESSION_CREATION_FLAGS; 250 typedef UINT64 TOPOID; 251 typedef enum MF_TOPOLOGY_TYPE { 252 MF_TOPOLOGY_OUTPUT_NODE = 0, 253 MF_TOPOLOGY_SOURCESTREAM_NODE = 1, 254 MF_TOPOLOGY_TRANSFORM_NODE = 2, 255 MF_TOPOLOGY_TEE_NODE = 3, 256 MF_TOPOLOGY_MAX = 0xffffffff 257 } MF_TOPOLOGY_TYPE; 258 /***************************************************************************** 259 * IMFTopologyNode interface 260 */ 261 #ifndef __IMFTopologyNode_INTERFACE_DEFINED__ 262 #define __IMFTopologyNode_INTERFACE_DEFINED__ 263 264 DEFINE_GUID(IID_IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30); 265 #if defined(__cplusplus) && !defined(CINTERFACE) 266 MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc430") 267 IMFTopologyNode : public IMFAttributes 268 { 269 virtual HRESULT STDMETHODCALLTYPE SetObject( 270 IUnknown *pObject) = 0; 271 272 virtual HRESULT STDMETHODCALLTYPE GetObject( 273 IUnknown **ppObject) = 0; 274 275 virtual HRESULT STDMETHODCALLTYPE GetNodeType( 276 MF_TOPOLOGY_TYPE *pType) = 0; 277 278 virtual HRESULT STDMETHODCALLTYPE GetTopoNodeID( 279 TOPOID *pID) = 0; 280 281 virtual HRESULT STDMETHODCALLTYPE SetTopoNodeID( 282 TOPOID ullTopoID) = 0; 283 284 virtual HRESULT STDMETHODCALLTYPE GetInputCount( 285 DWORD *pcInputs) = 0; 286 287 virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 288 DWORD *pcOutputs) = 0; 289 290 virtual HRESULT STDMETHODCALLTYPE ConnectOutput( 291 DWORD dwOutputIndex, 292 IMFTopologyNode *pDownstreamNode, 293 DWORD dwInputIndexOnDownstreamNode) = 0; 294 295 virtual HRESULT STDMETHODCALLTYPE DisconnectOutput( 296 DWORD dwOutputIndex) = 0; 297 298 virtual HRESULT STDMETHODCALLTYPE GetInput( 299 DWORD dwInputIndex, 300 IMFTopologyNode **ppUpstreamNode, 301 DWORD *pdwOutputIndexOnUpstreamNode) = 0; 302 303 virtual HRESULT STDMETHODCALLTYPE GetOutput( 304 DWORD dwOutputIndex, 305 IMFTopologyNode **ppDownstreamNode, 306 DWORD *pdwInputIndexOnDownstreamNode) = 0; 307 308 virtual HRESULT STDMETHODCALLTYPE SetOutputPrefType( 309 DWORD dwOutputIndex, 310 IMFMediaType *pType) = 0; 311 312 virtual HRESULT STDMETHODCALLTYPE GetOutputPrefType( 313 DWORD dwOutputIndex, 314 IMFMediaType **ppType) = 0; 315 316 virtual HRESULT STDMETHODCALLTYPE SetInputPrefType( 317 DWORD dwInputIndex, 318 IMFMediaType *pType) = 0; 319 320 virtual HRESULT STDMETHODCALLTYPE GetInputPrefType( 321 DWORD dwInputIndex, 322 IMFMediaType **ppType) = 0; 323 324 virtual HRESULT STDMETHODCALLTYPE CloneFrom( 325 IMFTopologyNode *pNode) = 0; 326 327 }; 328 #ifdef __CRT_UUID_DECL 329 __CRT_UUID_DECL(IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30) 330 #endif 331 #else 332 typedef struct IMFTopologyNodeVtbl { 333 BEGIN_INTERFACE 334 335 /*** IUnknown methods ***/ 336 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 337 IMFTopologyNode *This, 338 REFIID riid, 339 void **ppvObject); 340 341 ULONG (STDMETHODCALLTYPE *AddRef)( 342 IMFTopologyNode *This); 343 344 ULONG (STDMETHODCALLTYPE *Release)( 345 IMFTopologyNode *This); 346 347 /*** IMFAttributes methods ***/ 348 HRESULT (STDMETHODCALLTYPE *GetItem)( 349 IMFTopologyNode *This, 350 REFGUID guidKey, 351 PROPVARIANT *pValue); 352 353 HRESULT (STDMETHODCALLTYPE *GetItemType)( 354 IMFTopologyNode *This, 355 REFGUID guidKey, 356 MF_ATTRIBUTE_TYPE *pType); 357 358 HRESULT (STDMETHODCALLTYPE *CompareItem)( 359 IMFTopologyNode *This, 360 REFGUID guidKey, 361 REFPROPVARIANT Value, 362 WINBOOL *pbResult); 363 364 HRESULT (STDMETHODCALLTYPE *Compare)( 365 IMFTopologyNode *This, 366 IMFAttributes *pTheirs, 367 MF_ATTRIBUTES_MATCH_TYPE MatchType, 368 WINBOOL *pbResult); 369 370 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 371 IMFTopologyNode *This, 372 REFGUID guidKey, 373 UINT32 *punValue); 374 375 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 376 IMFTopologyNode *This, 377 REFGUID guidKey, 378 UINT64 *punValue); 379 380 HRESULT (STDMETHODCALLTYPE *GetDouble)( 381 IMFTopologyNode *This, 382 REFGUID guidKey, 383 double *pfValue); 384 385 HRESULT (STDMETHODCALLTYPE *GetGUID)( 386 IMFTopologyNode *This, 387 REFGUID guidKey, 388 GUID *pguidValue); 389 390 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 391 IMFTopologyNode *This, 392 REFGUID guidKey, 393 UINT32 *pcchLength); 394 395 HRESULT (STDMETHODCALLTYPE *GetString)( 396 IMFTopologyNode *This, 397 REFGUID guidKey, 398 LPWSTR pwszValue, 399 UINT32 cchBufSize, 400 UINT32 *pcchLength); 401 402 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 403 IMFTopologyNode *This, 404 REFGUID guidKey, 405 LPWSTR *ppwszValue, 406 UINT32 *pcchLength); 407 408 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 409 IMFTopologyNode *This, 410 REFGUID guidKey, 411 UINT32 *pcbBlobSize); 412 413 HRESULT (STDMETHODCALLTYPE *GetBlob)( 414 IMFTopologyNode *This, 415 REFGUID guidKey, 416 UINT8 *pBuf, 417 UINT32 cbBufSize, 418 UINT32 *pcbBlobSize); 419 420 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 421 IMFTopologyNode *This, 422 REFGUID guidKey, 423 UINT8 **ppBuf, 424 UINT32 *pcbSize); 425 426 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 427 IMFTopologyNode *This, 428 REFGUID guidKey, 429 REFIID riid, 430 LPVOID *ppv); 431 432 HRESULT (STDMETHODCALLTYPE *SetItem)( 433 IMFTopologyNode *This, 434 REFGUID guidKey, 435 REFPROPVARIANT Value); 436 437 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 438 IMFTopologyNode *This, 439 REFGUID guidKey); 440 441 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 442 IMFTopologyNode *This); 443 444 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 445 IMFTopologyNode *This, 446 REFGUID guidKey, 447 UINT32 unValue); 448 449 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 450 IMFTopologyNode *This, 451 REFGUID guidKey, 452 UINT64 unValue); 453 454 HRESULT (STDMETHODCALLTYPE *SetDouble)( 455 IMFTopologyNode *This, 456 REFGUID guidKey, 457 double fValue); 458 459 HRESULT (STDMETHODCALLTYPE *SetGUID)( 460 IMFTopologyNode *This, 461 REFGUID guidKey, 462 REFGUID guidValue); 463 464 HRESULT (STDMETHODCALLTYPE *SetString)( 465 IMFTopologyNode *This, 466 REFGUID guidKey, 467 LPCWSTR wszValue); 468 469 HRESULT (STDMETHODCALLTYPE *SetBlob)( 470 IMFTopologyNode *This, 471 REFGUID guidKey, 472 const UINT8 *pBuf, 473 UINT32 cbBufSize); 474 475 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 476 IMFTopologyNode *This, 477 REFGUID guidKey, 478 IUnknown *pUnknown); 479 480 HRESULT (STDMETHODCALLTYPE *LockStore)( 481 IMFTopologyNode *This); 482 483 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 484 IMFTopologyNode *This); 485 486 HRESULT (STDMETHODCALLTYPE *GetCount)( 487 IMFTopologyNode *This, 488 UINT32 *pcItems); 489 490 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 491 IMFTopologyNode *This, 492 UINT32 unIndex, 493 GUID *pguidKey, 494 PROPVARIANT *pValue); 495 496 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 497 IMFTopologyNode *This, 498 IMFAttributes *pDest); 499 500 /*** IMFTopologyNode methods ***/ 501 HRESULT (STDMETHODCALLTYPE *SetObject)( 502 IMFTopologyNode *This, 503 IUnknown *pObject); 504 505 HRESULT (STDMETHODCALLTYPE *GetObject)( 506 IMFTopologyNode *This, 507 IUnknown **ppObject); 508 509 HRESULT (STDMETHODCALLTYPE *GetNodeType)( 510 IMFTopologyNode *This, 511 MF_TOPOLOGY_TYPE *pType); 512 513 HRESULT (STDMETHODCALLTYPE *GetTopoNodeID)( 514 IMFTopologyNode *This, 515 TOPOID *pID); 516 517 HRESULT (STDMETHODCALLTYPE *SetTopoNodeID)( 518 IMFTopologyNode *This, 519 TOPOID ullTopoID); 520 521 HRESULT (STDMETHODCALLTYPE *GetInputCount)( 522 IMFTopologyNode *This, 523 DWORD *pcInputs); 524 525 HRESULT (STDMETHODCALLTYPE *GetOutputCount)( 526 IMFTopologyNode *This, 527 DWORD *pcOutputs); 528 529 HRESULT (STDMETHODCALLTYPE *ConnectOutput)( 530 IMFTopologyNode *This, 531 DWORD dwOutputIndex, 532 IMFTopologyNode *pDownstreamNode, 533 DWORD dwInputIndexOnDownstreamNode); 534 535 HRESULT (STDMETHODCALLTYPE *DisconnectOutput)( 536 IMFTopologyNode *This, 537 DWORD dwOutputIndex); 538 539 HRESULT (STDMETHODCALLTYPE *GetInput)( 540 IMFTopologyNode *This, 541 DWORD dwInputIndex, 542 IMFTopologyNode **ppUpstreamNode, 543 DWORD *pdwOutputIndexOnUpstreamNode); 544 545 HRESULT (STDMETHODCALLTYPE *GetOutput)( 546 IMFTopologyNode *This, 547 DWORD dwOutputIndex, 548 IMFTopologyNode **ppDownstreamNode, 549 DWORD *pdwInputIndexOnDownstreamNode); 550 551 HRESULT (STDMETHODCALLTYPE *SetOutputPrefType)( 552 IMFTopologyNode *This, 553 DWORD dwOutputIndex, 554 IMFMediaType *pType); 555 556 HRESULT (STDMETHODCALLTYPE *GetOutputPrefType)( 557 IMFTopologyNode *This, 558 DWORD dwOutputIndex, 559 IMFMediaType **ppType); 560 561 HRESULT (STDMETHODCALLTYPE *SetInputPrefType)( 562 IMFTopologyNode *This, 563 DWORD dwInputIndex, 564 IMFMediaType *pType); 565 566 HRESULT (STDMETHODCALLTYPE *GetInputPrefType)( 567 IMFTopologyNode *This, 568 DWORD dwInputIndex, 569 IMFMediaType **ppType); 570 571 HRESULT (STDMETHODCALLTYPE *CloneFrom)( 572 IMFTopologyNode *This, 573 IMFTopologyNode *pNode); 574 575 END_INTERFACE 576 } IMFTopologyNodeVtbl; 577 578 interface IMFTopologyNode { 579 CONST_VTBL IMFTopologyNodeVtbl* lpVtbl; 580 }; 581 582 #ifdef COBJMACROS 583 #ifndef WIDL_C_INLINE_WRAPPERS 584 /*** IUnknown methods ***/ 585 #define IMFTopologyNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 586 #define IMFTopologyNode_AddRef(This) (This)->lpVtbl->AddRef(This) 587 #define IMFTopologyNode_Release(This) (This)->lpVtbl->Release(This) 588 /*** IMFAttributes methods ***/ 589 #define IMFTopologyNode_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 590 #define IMFTopologyNode_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 591 #define IMFTopologyNode_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 592 #define IMFTopologyNode_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 593 #define IMFTopologyNode_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 594 #define IMFTopologyNode_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 595 #define IMFTopologyNode_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 596 #define IMFTopologyNode_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 597 #define IMFTopologyNode_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 598 #define IMFTopologyNode_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 599 #define IMFTopologyNode_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 600 #define IMFTopologyNode_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 601 #define IMFTopologyNode_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 602 #define IMFTopologyNode_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 603 #define IMFTopologyNode_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 604 #define IMFTopologyNode_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 605 #define IMFTopologyNode_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 606 #define IMFTopologyNode_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 607 #define IMFTopologyNode_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 608 #define IMFTopologyNode_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 609 #define IMFTopologyNode_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 610 #define IMFTopologyNode_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 611 #define IMFTopologyNode_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 612 #define IMFTopologyNode_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 613 #define IMFTopologyNode_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 614 #define IMFTopologyNode_LockStore(This) (This)->lpVtbl->LockStore(This) 615 #define IMFTopologyNode_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 616 #define IMFTopologyNode_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 617 #define IMFTopologyNode_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 618 #define IMFTopologyNode_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 619 /*** IMFTopologyNode methods ***/ 620 #define IMFTopologyNode_SetObject(This,pObject) (This)->lpVtbl->SetObject(This,pObject) 621 #define IMFTopologyNode_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject) 622 #define IMFTopologyNode_GetNodeType(This,pType) (This)->lpVtbl->GetNodeType(This,pType) 623 #define IMFTopologyNode_GetTopoNodeID(This,pID) (This)->lpVtbl->GetTopoNodeID(This,pID) 624 #define IMFTopologyNode_SetTopoNodeID(This,ullTopoID) (This)->lpVtbl->SetTopoNodeID(This,ullTopoID) 625 #define IMFTopologyNode_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs) 626 #define IMFTopologyNode_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) 627 #define IMFTopologyNode_ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) (This)->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) 628 #define IMFTopologyNode_DisconnectOutput(This,dwOutputIndex) (This)->lpVtbl->DisconnectOutput(This,dwOutputIndex) 629 #define IMFTopologyNode_GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) (This)->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) 630 #define IMFTopologyNode_GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) (This)->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) 631 #define IMFTopologyNode_SetOutputPrefType(This,dwOutputIndex,pType) (This)->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType) 632 #define IMFTopologyNode_GetOutputPrefType(This,dwOutputIndex,ppType) (This)->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType) 633 #define IMFTopologyNode_SetInputPrefType(This,dwInputIndex,pType) (This)->lpVtbl->SetInputPrefType(This,dwInputIndex,pType) 634 #define IMFTopologyNode_GetInputPrefType(This,dwInputIndex,ppType) (This)->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType) 635 #define IMFTopologyNode_CloneFrom(This,pNode) (This)->lpVtbl->CloneFrom(This,pNode) 636 #else 637 /*** IUnknown methods ***/ 638 static FORCEINLINE HRESULT IMFTopologyNode_QueryInterface(IMFTopologyNode* This,REFIID riid,void **ppvObject) { 639 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 640 } 641 static FORCEINLINE ULONG IMFTopologyNode_AddRef(IMFTopologyNode* This) { 642 return This->lpVtbl->AddRef(This); 643 } 644 static FORCEINLINE ULONG IMFTopologyNode_Release(IMFTopologyNode* This) { 645 return This->lpVtbl->Release(This); 646 } 647 /*** IMFAttributes methods ***/ 648 static FORCEINLINE HRESULT IMFTopologyNode_GetItem(IMFTopologyNode* This,REFGUID guidKey,PROPVARIANT *pValue) { 649 return This->lpVtbl->GetItem(This,guidKey,pValue); 650 } 651 static FORCEINLINE HRESULT IMFTopologyNode_GetItemType(IMFTopologyNode* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 652 return This->lpVtbl->GetItemType(This,guidKey,pType); 653 } 654 static FORCEINLINE HRESULT IMFTopologyNode_CompareItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 655 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 656 } 657 static FORCEINLINE HRESULT IMFTopologyNode_Compare(IMFTopologyNode* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 658 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 659 } 660 static FORCEINLINE HRESULT IMFTopologyNode_GetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 *punValue) { 661 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 662 } 663 static FORCEINLINE HRESULT IMFTopologyNode_GetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 *punValue) { 664 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 665 } 666 static FORCEINLINE HRESULT IMFTopologyNode_GetDouble(IMFTopologyNode* This,REFGUID guidKey,double *pfValue) { 667 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 668 } 669 static FORCEINLINE HRESULT IMFTopologyNode_GetGUID(IMFTopologyNode* This,REFGUID guidKey,GUID *pguidValue) { 670 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 671 } 672 static FORCEINLINE HRESULT IMFTopologyNode_GetStringLength(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcchLength) { 673 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 674 } 675 static FORCEINLINE HRESULT IMFTopologyNode_GetString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 676 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 677 } 678 static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 679 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 680 } 681 static FORCEINLINE HRESULT IMFTopologyNode_GetBlobSize(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 682 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 683 } 684 static FORCEINLINE HRESULT IMFTopologyNode_GetBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 685 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 686 } 687 static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 688 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 689 } 690 static FORCEINLINE HRESULT IMFTopologyNode_GetUnknown(IMFTopologyNode* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 691 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 692 } 693 static FORCEINLINE HRESULT IMFTopologyNode_SetItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value) { 694 return This->lpVtbl->SetItem(This,guidKey,Value); 695 } 696 static FORCEINLINE HRESULT IMFTopologyNode_DeleteItem(IMFTopologyNode* This,REFGUID guidKey) { 697 return This->lpVtbl->DeleteItem(This,guidKey); 698 } 699 static FORCEINLINE HRESULT IMFTopologyNode_DeleteAllItems(IMFTopologyNode* This) { 700 return This->lpVtbl->DeleteAllItems(This); 701 } 702 static FORCEINLINE HRESULT IMFTopologyNode_SetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 unValue) { 703 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 704 } 705 static FORCEINLINE HRESULT IMFTopologyNode_SetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 unValue) { 706 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 707 } 708 static FORCEINLINE HRESULT IMFTopologyNode_SetDouble(IMFTopologyNode* This,REFGUID guidKey,double fValue) { 709 return This->lpVtbl->SetDouble(This,guidKey,fValue); 710 } 711 static FORCEINLINE HRESULT IMFTopologyNode_SetGUID(IMFTopologyNode* This,REFGUID guidKey,REFGUID guidValue) { 712 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 713 } 714 static FORCEINLINE HRESULT IMFTopologyNode_SetString(IMFTopologyNode* This,REFGUID guidKey,LPCWSTR wszValue) { 715 return This->lpVtbl->SetString(This,guidKey,wszValue); 716 } 717 static FORCEINLINE HRESULT IMFTopologyNode_SetBlob(IMFTopologyNode* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 718 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 719 } 720 static FORCEINLINE HRESULT IMFTopologyNode_SetUnknown(IMFTopologyNode* This,REFGUID guidKey,IUnknown *pUnknown) { 721 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 722 } 723 static FORCEINLINE HRESULT IMFTopologyNode_LockStore(IMFTopologyNode* This) { 724 return This->lpVtbl->LockStore(This); 725 } 726 static FORCEINLINE HRESULT IMFTopologyNode_UnlockStore(IMFTopologyNode* This) { 727 return This->lpVtbl->UnlockStore(This); 728 } 729 static FORCEINLINE HRESULT IMFTopologyNode_GetCount(IMFTopologyNode* This,UINT32 *pcItems) { 730 return This->lpVtbl->GetCount(This,pcItems); 731 } 732 static FORCEINLINE HRESULT IMFTopologyNode_GetItemByIndex(IMFTopologyNode* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 733 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 734 } 735 static FORCEINLINE HRESULT IMFTopologyNode_CopyAllItems(IMFTopologyNode* This,IMFAttributes *pDest) { 736 return This->lpVtbl->CopyAllItems(This,pDest); 737 } 738 /*** IMFTopologyNode methods ***/ 739 static FORCEINLINE HRESULT IMFTopologyNode_SetObject(IMFTopologyNode* This,IUnknown *pObject) { 740 return This->lpVtbl->SetObject(This,pObject); 741 } 742 static FORCEINLINE HRESULT IMFTopologyNode_GetObject(IMFTopologyNode* This,IUnknown **ppObject) { 743 return This->lpVtbl->GetObject(This,ppObject); 744 } 745 static FORCEINLINE HRESULT IMFTopologyNode_GetNodeType(IMFTopologyNode* This,MF_TOPOLOGY_TYPE *pType) { 746 return This->lpVtbl->GetNodeType(This,pType); 747 } 748 static FORCEINLINE HRESULT IMFTopologyNode_GetTopoNodeID(IMFTopologyNode* This,TOPOID *pID) { 749 return This->lpVtbl->GetTopoNodeID(This,pID); 750 } 751 static FORCEINLINE HRESULT IMFTopologyNode_SetTopoNodeID(IMFTopologyNode* This,TOPOID ullTopoID) { 752 return This->lpVtbl->SetTopoNodeID(This,ullTopoID); 753 } 754 static FORCEINLINE HRESULT IMFTopologyNode_GetInputCount(IMFTopologyNode* This,DWORD *pcInputs) { 755 return This->lpVtbl->GetInputCount(This,pcInputs); 756 } 757 static FORCEINLINE HRESULT IMFTopologyNode_GetOutputCount(IMFTopologyNode* This,DWORD *pcOutputs) { 758 return This->lpVtbl->GetOutputCount(This,pcOutputs); 759 } 760 static FORCEINLINE HRESULT IMFTopologyNode_ConnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) { 761 return This->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode); 762 } 763 static FORCEINLINE HRESULT IMFTopologyNode_DisconnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex) { 764 return This->lpVtbl->DisconnectOutput(This,dwOutputIndex); 765 } 766 static FORCEINLINE HRESULT IMFTopologyNode_GetInput(IMFTopologyNode* This,DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) { 767 return This->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode); 768 } 769 static FORCEINLINE HRESULT IMFTopologyNode_GetOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) { 770 return This->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode); 771 } 772 static FORCEINLINE HRESULT IMFTopologyNode_SetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType *pType) { 773 return This->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType); 774 } 775 static FORCEINLINE HRESULT IMFTopologyNode_GetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType **ppType) { 776 return This->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType); 777 } 778 static FORCEINLINE HRESULT IMFTopologyNode_SetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType *pType) { 779 return This->lpVtbl->SetInputPrefType(This,dwInputIndex,pType); 780 } 781 static FORCEINLINE HRESULT IMFTopologyNode_GetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType **ppType) { 782 return This->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType); 783 } 784 static FORCEINLINE HRESULT IMFTopologyNode_CloneFrom(IMFTopologyNode* This,IMFTopologyNode *pNode) { 785 return This->lpVtbl->CloneFrom(This,pNode); 786 } 787 #endif 788 #endif 789 790 #endif 791 792 HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetOutputPrefType_Proxy( 793 IMFTopologyNode* This, 794 DWORD dwOutputIndex, 795 DWORD *pcbData, 796 BYTE **ppbData); 797 void __RPC_STUB IMFTopologyNode_RemoteGetOutputPrefType_Stub( 798 IRpcStubBuffer* This, 799 IRpcChannelBuffer* pRpcChannelBuffer, 800 PRPC_MESSAGE pRpcMessage, 801 DWORD* pdwStubPhase); 802 HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetInputPrefType_Proxy( 803 IMFTopologyNode* This, 804 DWORD dwInputIndex, 805 DWORD *pcbData, 806 BYTE **ppbData); 807 void __RPC_STUB IMFTopologyNode_RemoteGetInputPrefType_Stub( 808 IRpcStubBuffer* This, 809 IRpcChannelBuffer* pRpcChannelBuffer, 810 PRPC_MESSAGE pRpcMessage, 811 DWORD* pdwStubPhase); 812 HRESULT CALLBACK IMFTopologyNode_GetOutputPrefType_Proxy( 813 IMFTopologyNode* This, 814 DWORD dwOutputIndex, 815 IMFMediaType **ppType); 816 HRESULT __RPC_STUB IMFTopologyNode_GetOutputPrefType_Stub( 817 IMFTopologyNode* This, 818 DWORD dwOutputIndex, 819 DWORD *pcbData, 820 BYTE **ppbData); 821 HRESULT CALLBACK IMFTopologyNode_GetInputPrefType_Proxy( 822 IMFTopologyNode* This, 823 DWORD dwInputIndex, 824 IMFMediaType **ppType); 825 HRESULT __RPC_STUB IMFTopologyNode_GetInputPrefType_Stub( 826 IMFTopologyNode* This, 827 DWORD dwInputIndex, 828 DWORD *pcbData, 829 BYTE **ppbData); 830 831 #endif /* __IMFTopologyNode_INTERFACE_DEFINED__ */ 832 833 /***************************************************************************** 834 * IMFTopology interface 835 */ 836 #ifndef __IMFTopology_INTERFACE_DEFINED__ 837 #define __IMFTopology_INTERFACE_DEFINED__ 838 839 DEFINE_GUID(IID_IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33); 840 #if defined(__cplusplus) && !defined(CINTERFACE) 841 MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc433") 842 IMFTopology : public IMFAttributes 843 { 844 virtual HRESULT STDMETHODCALLTYPE GetTopologyID( 845 TOPOID *pID) = 0; 846 847 virtual HRESULT STDMETHODCALLTYPE AddNode( 848 IMFTopologyNode *pNode) = 0; 849 850 virtual HRESULT STDMETHODCALLTYPE RemoveNode( 851 IMFTopologyNode *pNode) = 0; 852 853 virtual HRESULT STDMETHODCALLTYPE GetNodeCount( 854 WORD *pwNodes) = 0; 855 856 virtual HRESULT STDMETHODCALLTYPE GetNode( 857 WORD wIndex, 858 IMFTopologyNode **ppNode) = 0; 859 860 virtual HRESULT STDMETHODCALLTYPE Clear( 861 ) = 0; 862 863 virtual HRESULT STDMETHODCALLTYPE CloneFrom( 864 IMFTopology *pTopology) = 0; 865 866 virtual HRESULT STDMETHODCALLTYPE GetNodeByID( 867 TOPOID qwTopoNodeID, 868 IMFTopologyNode **ppNode) = 0; 869 870 virtual HRESULT STDMETHODCALLTYPE GetSourceNodeCollection( 871 IMFCollection **ppCollection) = 0; 872 873 virtual HRESULT STDMETHODCALLTYPE GetOutputNodeCollection( 874 IMFCollection **ppCollection) = 0; 875 876 }; 877 #ifdef __CRT_UUID_DECL 878 __CRT_UUID_DECL(IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33) 879 #endif 880 #else 881 typedef struct IMFTopologyVtbl { 882 BEGIN_INTERFACE 883 884 /*** IUnknown methods ***/ 885 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 886 IMFTopology *This, 887 REFIID riid, 888 void **ppvObject); 889 890 ULONG (STDMETHODCALLTYPE *AddRef)( 891 IMFTopology *This); 892 893 ULONG (STDMETHODCALLTYPE *Release)( 894 IMFTopology *This); 895 896 /*** IMFAttributes methods ***/ 897 HRESULT (STDMETHODCALLTYPE *GetItem)( 898 IMFTopology *This, 899 REFGUID guidKey, 900 PROPVARIANT *pValue); 901 902 HRESULT (STDMETHODCALLTYPE *GetItemType)( 903 IMFTopology *This, 904 REFGUID guidKey, 905 MF_ATTRIBUTE_TYPE *pType); 906 907 HRESULT (STDMETHODCALLTYPE *CompareItem)( 908 IMFTopology *This, 909 REFGUID guidKey, 910 REFPROPVARIANT Value, 911 WINBOOL *pbResult); 912 913 HRESULT (STDMETHODCALLTYPE *Compare)( 914 IMFTopology *This, 915 IMFAttributes *pTheirs, 916 MF_ATTRIBUTES_MATCH_TYPE MatchType, 917 WINBOOL *pbResult); 918 919 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 920 IMFTopology *This, 921 REFGUID guidKey, 922 UINT32 *punValue); 923 924 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 925 IMFTopology *This, 926 REFGUID guidKey, 927 UINT64 *punValue); 928 929 HRESULT (STDMETHODCALLTYPE *GetDouble)( 930 IMFTopology *This, 931 REFGUID guidKey, 932 double *pfValue); 933 934 HRESULT (STDMETHODCALLTYPE *GetGUID)( 935 IMFTopology *This, 936 REFGUID guidKey, 937 GUID *pguidValue); 938 939 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 940 IMFTopology *This, 941 REFGUID guidKey, 942 UINT32 *pcchLength); 943 944 HRESULT (STDMETHODCALLTYPE *GetString)( 945 IMFTopology *This, 946 REFGUID guidKey, 947 LPWSTR pwszValue, 948 UINT32 cchBufSize, 949 UINT32 *pcchLength); 950 951 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 952 IMFTopology *This, 953 REFGUID guidKey, 954 LPWSTR *ppwszValue, 955 UINT32 *pcchLength); 956 957 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 958 IMFTopology *This, 959 REFGUID guidKey, 960 UINT32 *pcbBlobSize); 961 962 HRESULT (STDMETHODCALLTYPE *GetBlob)( 963 IMFTopology *This, 964 REFGUID guidKey, 965 UINT8 *pBuf, 966 UINT32 cbBufSize, 967 UINT32 *pcbBlobSize); 968 969 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 970 IMFTopology *This, 971 REFGUID guidKey, 972 UINT8 **ppBuf, 973 UINT32 *pcbSize); 974 975 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 976 IMFTopology *This, 977 REFGUID guidKey, 978 REFIID riid, 979 LPVOID *ppv); 980 981 HRESULT (STDMETHODCALLTYPE *SetItem)( 982 IMFTopology *This, 983 REFGUID guidKey, 984 REFPROPVARIANT Value); 985 986 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 987 IMFTopology *This, 988 REFGUID guidKey); 989 990 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 991 IMFTopology *This); 992 993 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 994 IMFTopology *This, 995 REFGUID guidKey, 996 UINT32 unValue); 997 998 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 999 IMFTopology *This, 1000 REFGUID guidKey, 1001 UINT64 unValue); 1002 1003 HRESULT (STDMETHODCALLTYPE *SetDouble)( 1004 IMFTopology *This, 1005 REFGUID guidKey, 1006 double fValue); 1007 1008 HRESULT (STDMETHODCALLTYPE *SetGUID)( 1009 IMFTopology *This, 1010 REFGUID guidKey, 1011 REFGUID guidValue); 1012 1013 HRESULT (STDMETHODCALLTYPE *SetString)( 1014 IMFTopology *This, 1015 REFGUID guidKey, 1016 LPCWSTR wszValue); 1017 1018 HRESULT (STDMETHODCALLTYPE *SetBlob)( 1019 IMFTopology *This, 1020 REFGUID guidKey, 1021 const UINT8 *pBuf, 1022 UINT32 cbBufSize); 1023 1024 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 1025 IMFTopology *This, 1026 REFGUID guidKey, 1027 IUnknown *pUnknown); 1028 1029 HRESULT (STDMETHODCALLTYPE *LockStore)( 1030 IMFTopology *This); 1031 1032 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 1033 IMFTopology *This); 1034 1035 HRESULT (STDMETHODCALLTYPE *GetCount)( 1036 IMFTopology *This, 1037 UINT32 *pcItems); 1038 1039 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 1040 IMFTopology *This, 1041 UINT32 unIndex, 1042 GUID *pguidKey, 1043 PROPVARIANT *pValue); 1044 1045 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 1046 IMFTopology *This, 1047 IMFAttributes *pDest); 1048 1049 /*** IMFTopology methods ***/ 1050 HRESULT (STDMETHODCALLTYPE *GetTopologyID)( 1051 IMFTopology *This, 1052 TOPOID *pID); 1053 1054 HRESULT (STDMETHODCALLTYPE *AddNode)( 1055 IMFTopology *This, 1056 IMFTopologyNode *pNode); 1057 1058 HRESULT (STDMETHODCALLTYPE *RemoveNode)( 1059 IMFTopology *This, 1060 IMFTopologyNode *pNode); 1061 1062 HRESULT (STDMETHODCALLTYPE *GetNodeCount)( 1063 IMFTopology *This, 1064 WORD *pwNodes); 1065 1066 HRESULT (STDMETHODCALLTYPE *GetNode)( 1067 IMFTopology *This, 1068 WORD wIndex, 1069 IMFTopologyNode **ppNode); 1070 1071 HRESULT (STDMETHODCALLTYPE *Clear)( 1072 IMFTopology *This); 1073 1074 HRESULT (STDMETHODCALLTYPE *CloneFrom)( 1075 IMFTopology *This, 1076 IMFTopology *pTopology); 1077 1078 HRESULT (STDMETHODCALLTYPE *GetNodeByID)( 1079 IMFTopology *This, 1080 TOPOID qwTopoNodeID, 1081 IMFTopologyNode **ppNode); 1082 1083 HRESULT (STDMETHODCALLTYPE *GetSourceNodeCollection)( 1084 IMFTopology *This, 1085 IMFCollection **ppCollection); 1086 1087 HRESULT (STDMETHODCALLTYPE *GetOutputNodeCollection)( 1088 IMFTopology *This, 1089 IMFCollection **ppCollection); 1090 1091 END_INTERFACE 1092 } IMFTopologyVtbl; 1093 1094 interface IMFTopology { 1095 CONST_VTBL IMFTopologyVtbl* lpVtbl; 1096 }; 1097 1098 #ifdef COBJMACROS 1099 #ifndef WIDL_C_INLINE_WRAPPERS 1100 /*** IUnknown methods ***/ 1101 #define IMFTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1102 #define IMFTopology_AddRef(This) (This)->lpVtbl->AddRef(This) 1103 #define IMFTopology_Release(This) (This)->lpVtbl->Release(This) 1104 /*** IMFAttributes methods ***/ 1105 #define IMFTopology_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 1106 #define IMFTopology_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 1107 #define IMFTopology_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 1108 #define IMFTopology_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 1109 #define IMFTopology_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 1110 #define IMFTopology_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 1111 #define IMFTopology_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 1112 #define IMFTopology_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 1113 #define IMFTopology_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 1114 #define IMFTopology_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 1115 #define IMFTopology_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 1116 #define IMFTopology_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 1117 #define IMFTopology_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 1118 #define IMFTopology_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 1119 #define IMFTopology_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 1120 #define IMFTopology_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 1121 #define IMFTopology_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 1122 #define IMFTopology_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 1123 #define IMFTopology_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 1124 #define IMFTopology_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 1125 #define IMFTopology_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 1126 #define IMFTopology_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 1127 #define IMFTopology_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 1128 #define IMFTopology_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 1129 #define IMFTopology_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 1130 #define IMFTopology_LockStore(This) (This)->lpVtbl->LockStore(This) 1131 #define IMFTopology_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 1132 #define IMFTopology_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 1133 #define IMFTopology_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 1134 #define IMFTopology_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 1135 /*** IMFTopology methods ***/ 1136 #define IMFTopology_GetTopologyID(This,pID) (This)->lpVtbl->GetTopologyID(This,pID) 1137 #define IMFTopology_AddNode(This,pNode) (This)->lpVtbl->AddNode(This,pNode) 1138 #define IMFTopology_RemoveNode(This,pNode) (This)->lpVtbl->RemoveNode(This,pNode) 1139 #define IMFTopology_GetNodeCount(This,pwNodes) (This)->lpVtbl->GetNodeCount(This,pwNodes) 1140 #define IMFTopology_GetNode(This,wIndex,ppNode) (This)->lpVtbl->GetNode(This,wIndex,ppNode) 1141 #define IMFTopology_Clear(This) (This)->lpVtbl->Clear(This) 1142 #define IMFTopology_CloneFrom(This,pTopology) (This)->lpVtbl->CloneFrom(This,pTopology) 1143 #define IMFTopology_GetNodeByID(This,qwTopoNodeID,ppNode) (This)->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode) 1144 #define IMFTopology_GetSourceNodeCollection(This,ppCollection) (This)->lpVtbl->GetSourceNodeCollection(This,ppCollection) 1145 #define IMFTopology_GetOutputNodeCollection(This,ppCollection) (This)->lpVtbl->GetOutputNodeCollection(This,ppCollection) 1146 #else 1147 /*** IUnknown methods ***/ 1148 static FORCEINLINE HRESULT IMFTopology_QueryInterface(IMFTopology* This,REFIID riid,void **ppvObject) { 1149 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1150 } 1151 static FORCEINLINE ULONG IMFTopology_AddRef(IMFTopology* This) { 1152 return This->lpVtbl->AddRef(This); 1153 } 1154 static FORCEINLINE ULONG IMFTopology_Release(IMFTopology* This) { 1155 return This->lpVtbl->Release(This); 1156 } 1157 /*** IMFAttributes methods ***/ 1158 static FORCEINLINE HRESULT IMFTopology_GetItem(IMFTopology* This,REFGUID guidKey,PROPVARIANT *pValue) { 1159 return This->lpVtbl->GetItem(This,guidKey,pValue); 1160 } 1161 static FORCEINLINE HRESULT IMFTopology_GetItemType(IMFTopology* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 1162 return This->lpVtbl->GetItemType(This,guidKey,pType); 1163 } 1164 static FORCEINLINE HRESULT IMFTopology_CompareItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 1165 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 1166 } 1167 static FORCEINLINE HRESULT IMFTopology_Compare(IMFTopology* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 1168 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 1169 } 1170 static FORCEINLINE HRESULT IMFTopology_GetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 *punValue) { 1171 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 1172 } 1173 static FORCEINLINE HRESULT IMFTopology_GetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 *punValue) { 1174 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 1175 } 1176 static FORCEINLINE HRESULT IMFTopology_GetDouble(IMFTopology* This,REFGUID guidKey,double *pfValue) { 1177 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 1178 } 1179 static FORCEINLINE HRESULT IMFTopology_GetGUID(IMFTopology* This,REFGUID guidKey,GUID *pguidValue) { 1180 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 1181 } 1182 static FORCEINLINE HRESULT IMFTopology_GetStringLength(IMFTopology* This,REFGUID guidKey,UINT32 *pcchLength) { 1183 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 1184 } 1185 static FORCEINLINE HRESULT IMFTopology_GetString(IMFTopology* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 1186 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 1187 } 1188 static FORCEINLINE HRESULT IMFTopology_GetAllocatedString(IMFTopology* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 1189 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 1190 } 1191 static FORCEINLINE HRESULT IMFTopology_GetBlobSize(IMFTopology* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 1192 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 1193 } 1194 static FORCEINLINE HRESULT IMFTopology_GetBlob(IMFTopology* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 1195 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 1196 } 1197 static FORCEINLINE HRESULT IMFTopology_GetAllocatedBlob(IMFTopology* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 1198 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 1199 } 1200 static FORCEINLINE HRESULT IMFTopology_GetUnknown(IMFTopology* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 1201 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 1202 } 1203 static FORCEINLINE HRESULT IMFTopology_SetItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value) { 1204 return This->lpVtbl->SetItem(This,guidKey,Value); 1205 } 1206 static FORCEINLINE HRESULT IMFTopology_DeleteItem(IMFTopology* This,REFGUID guidKey) { 1207 return This->lpVtbl->DeleteItem(This,guidKey); 1208 } 1209 static FORCEINLINE HRESULT IMFTopology_DeleteAllItems(IMFTopology* This) { 1210 return This->lpVtbl->DeleteAllItems(This); 1211 } 1212 static FORCEINLINE HRESULT IMFTopology_SetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 unValue) { 1213 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 1214 } 1215 static FORCEINLINE HRESULT IMFTopology_SetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 unValue) { 1216 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 1217 } 1218 static FORCEINLINE HRESULT IMFTopology_SetDouble(IMFTopology* This,REFGUID guidKey,double fValue) { 1219 return This->lpVtbl->SetDouble(This,guidKey,fValue); 1220 } 1221 static FORCEINLINE HRESULT IMFTopology_SetGUID(IMFTopology* This,REFGUID guidKey,REFGUID guidValue) { 1222 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 1223 } 1224 static FORCEINLINE HRESULT IMFTopology_SetString(IMFTopology* This,REFGUID guidKey,LPCWSTR wszValue) { 1225 return This->lpVtbl->SetString(This,guidKey,wszValue); 1226 } 1227 static FORCEINLINE HRESULT IMFTopology_SetBlob(IMFTopology* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 1228 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 1229 } 1230 static FORCEINLINE HRESULT IMFTopology_SetUnknown(IMFTopology* This,REFGUID guidKey,IUnknown *pUnknown) { 1231 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 1232 } 1233 static FORCEINLINE HRESULT IMFTopology_LockStore(IMFTopology* This) { 1234 return This->lpVtbl->LockStore(This); 1235 } 1236 static FORCEINLINE HRESULT IMFTopology_UnlockStore(IMFTopology* This) { 1237 return This->lpVtbl->UnlockStore(This); 1238 } 1239 static FORCEINLINE HRESULT IMFTopology_GetCount(IMFTopology* This,UINT32 *pcItems) { 1240 return This->lpVtbl->GetCount(This,pcItems); 1241 } 1242 static FORCEINLINE HRESULT IMFTopology_GetItemByIndex(IMFTopology* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 1243 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 1244 } 1245 static FORCEINLINE HRESULT IMFTopology_CopyAllItems(IMFTopology* This,IMFAttributes *pDest) { 1246 return This->lpVtbl->CopyAllItems(This,pDest); 1247 } 1248 /*** IMFTopology methods ***/ 1249 static FORCEINLINE HRESULT IMFTopology_GetTopologyID(IMFTopology* This,TOPOID *pID) { 1250 return This->lpVtbl->GetTopologyID(This,pID); 1251 } 1252 static FORCEINLINE HRESULT IMFTopology_AddNode(IMFTopology* This,IMFTopologyNode *pNode) { 1253 return This->lpVtbl->AddNode(This,pNode); 1254 } 1255 static FORCEINLINE HRESULT IMFTopology_RemoveNode(IMFTopology* This,IMFTopologyNode *pNode) { 1256 return This->lpVtbl->RemoveNode(This,pNode); 1257 } 1258 static FORCEINLINE HRESULT IMFTopology_GetNodeCount(IMFTopology* This,WORD *pwNodes) { 1259 return This->lpVtbl->GetNodeCount(This,pwNodes); 1260 } 1261 static FORCEINLINE HRESULT IMFTopology_GetNode(IMFTopology* This,WORD wIndex,IMFTopologyNode **ppNode) { 1262 return This->lpVtbl->GetNode(This,wIndex,ppNode); 1263 } 1264 static FORCEINLINE HRESULT IMFTopology_Clear(IMFTopology* This) { 1265 return This->lpVtbl->Clear(This); 1266 } 1267 static FORCEINLINE HRESULT IMFTopology_CloneFrom(IMFTopology* This,IMFTopology *pTopology) { 1268 return This->lpVtbl->CloneFrom(This,pTopology); 1269 } 1270 static FORCEINLINE HRESULT IMFTopology_GetNodeByID(IMFTopology* This,TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) { 1271 return This->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode); 1272 } 1273 static FORCEINLINE HRESULT IMFTopology_GetSourceNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1274 return This->lpVtbl->GetSourceNodeCollection(This,ppCollection); 1275 } 1276 static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1277 return This->lpVtbl->GetOutputNodeCollection(This,ppCollection); 1278 } 1279 #endif 1280 #endif 1281 1282 #endif 1283 1284 1285 #endif /* __IMFTopology_INTERFACE_DEFINED__ */ 1286 1287 /***************************************************************************** 1288 * IMFGetService interface 1289 */ 1290 #ifndef __IMFGetService_INTERFACE_DEFINED__ 1291 #define __IMFGetService_INTERFACE_DEFINED__ 1292 1293 DEFINE_GUID(IID_IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7); 1294 #if defined(__cplusplus) && !defined(CINTERFACE) 1295 MIDL_INTERFACE("fa993888-4383-415a-a930-dd472a8cf6f7") 1296 IMFGetService : public IUnknown 1297 { 1298 virtual HRESULT STDMETHODCALLTYPE GetService( 1299 REFGUID guidService, 1300 REFIID riid, 1301 LPVOID *ppvObject) = 0; 1302 1303 }; 1304 #ifdef __CRT_UUID_DECL 1305 __CRT_UUID_DECL(IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7) 1306 #endif 1307 #else 1308 typedef struct IMFGetServiceVtbl { 1309 BEGIN_INTERFACE 1310 1311 /*** IUnknown methods ***/ 1312 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1313 IMFGetService *This, 1314 REFIID riid, 1315 void **ppvObject); 1316 1317 ULONG (STDMETHODCALLTYPE *AddRef)( 1318 IMFGetService *This); 1319 1320 ULONG (STDMETHODCALLTYPE *Release)( 1321 IMFGetService *This); 1322 1323 /*** IMFGetService methods ***/ 1324 HRESULT (STDMETHODCALLTYPE *GetService)( 1325 IMFGetService *This, 1326 REFGUID guidService, 1327 REFIID riid, 1328 LPVOID *ppvObject); 1329 1330 END_INTERFACE 1331 } IMFGetServiceVtbl; 1332 1333 interface IMFGetService { 1334 CONST_VTBL IMFGetServiceVtbl* lpVtbl; 1335 }; 1336 1337 #ifdef COBJMACROS 1338 #ifndef WIDL_C_INLINE_WRAPPERS 1339 /*** IUnknown methods ***/ 1340 #define IMFGetService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1341 #define IMFGetService_AddRef(This) (This)->lpVtbl->AddRef(This) 1342 #define IMFGetService_Release(This) (This)->lpVtbl->Release(This) 1343 /*** IMFGetService methods ***/ 1344 #define IMFGetService_GetService(This,guidService,riid,ppvObject) (This)->lpVtbl->GetService(This,guidService,riid,ppvObject) 1345 #else 1346 /*** IUnknown methods ***/ 1347 static FORCEINLINE HRESULT IMFGetService_QueryInterface(IMFGetService* This,REFIID riid,void **ppvObject) { 1348 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1349 } 1350 static FORCEINLINE ULONG IMFGetService_AddRef(IMFGetService* This) { 1351 return This->lpVtbl->AddRef(This); 1352 } 1353 static FORCEINLINE ULONG IMFGetService_Release(IMFGetService* This) { 1354 return This->lpVtbl->Release(This); 1355 } 1356 /*** IMFGetService methods ***/ 1357 static FORCEINLINE HRESULT IMFGetService_GetService(IMFGetService* This,REFGUID guidService,REFIID riid,LPVOID *ppvObject) { 1358 return This->lpVtbl->GetService(This,guidService,riid,ppvObject); 1359 } 1360 #endif 1361 #endif 1362 1363 #endif 1364 1365 1366 #endif /* __IMFGetService_INTERFACE_DEFINED__ */ 1367 1368 typedef LONGLONG MFTIME; 1369 typedef enum _MF_CLOCK_STATE { 1370 MFCLOCK_STATE_INVALID = 0, 1371 MFCLOCK_STATE_RUNNING = 1, 1372 MFCLOCK_STATE_STOPPED = 2, 1373 MFCLOCK_STATE_PAUSED = 3 1374 } MF_CLOCK_STATE; 1375 typedef enum _MF_CLOCK_STATE MFCLOCK_STATE; 1376 typedef struct _MFCLOCK_PROPERTIES { 1377 UINT64 qwCorrelationRate; 1378 GUID guidClockId; 1379 DWORD dwClockFlags; 1380 UINT64 qwClockFrequency; 1381 DWORD dwClockTolerance; 1382 DWORD dwClockJitter; 1383 } MFCLOCK_PROPERTIES; 1384 /***************************************************************************** 1385 * IMFClock interface 1386 */ 1387 #ifndef __IMFClock_INTERFACE_DEFINED__ 1388 #define __IMFClock_INTERFACE_DEFINED__ 1389 1390 DEFINE_GUID(IID_IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30); 1391 #if defined(__cplusplus) && !defined(CINTERFACE) 1392 MIDL_INTERFACE("2eb1e945-18b8-4139-9b1a-d5d584818530") 1393 IMFClock : public IUnknown 1394 { 1395 virtual HRESULT STDMETHODCALLTYPE GetClockCharacteristics( 1396 DWORD *pdwCharacteristics) = 0; 1397 1398 virtual HRESULT STDMETHODCALLTYPE GetCorrelatedTime( 1399 DWORD dwReserved, 1400 LONGLONG *pllClockTime, 1401 MFTIME *phnsSystemTime) = 0; 1402 1403 virtual HRESULT STDMETHODCALLTYPE GetContinuityKey( 1404 DWORD *pdwContinuityKey) = 0; 1405 1406 virtual HRESULT STDMETHODCALLTYPE GetState( 1407 DWORD dwReserved, 1408 MFCLOCK_STATE *peClockState) = 0; 1409 1410 virtual HRESULT STDMETHODCALLTYPE GetProperties( 1411 MFCLOCK_PROPERTIES *pClockProperties) = 0; 1412 1413 }; 1414 #ifdef __CRT_UUID_DECL 1415 __CRT_UUID_DECL(IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30) 1416 #endif 1417 #else 1418 typedef struct IMFClockVtbl { 1419 BEGIN_INTERFACE 1420 1421 /*** IUnknown methods ***/ 1422 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1423 IMFClock *This, 1424 REFIID riid, 1425 void **ppvObject); 1426 1427 ULONG (STDMETHODCALLTYPE *AddRef)( 1428 IMFClock *This); 1429 1430 ULONG (STDMETHODCALLTYPE *Release)( 1431 IMFClock *This); 1432 1433 /*** IMFClock methods ***/ 1434 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)( 1435 IMFClock *This, 1436 DWORD *pdwCharacteristics); 1437 1438 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)( 1439 IMFClock *This, 1440 DWORD dwReserved, 1441 LONGLONG *pllClockTime, 1442 MFTIME *phnsSystemTime); 1443 1444 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)( 1445 IMFClock *This, 1446 DWORD *pdwContinuityKey); 1447 1448 HRESULT (STDMETHODCALLTYPE *GetState)( 1449 IMFClock *This, 1450 DWORD dwReserved, 1451 MFCLOCK_STATE *peClockState); 1452 1453 HRESULT (STDMETHODCALLTYPE *GetProperties)( 1454 IMFClock *This, 1455 MFCLOCK_PROPERTIES *pClockProperties); 1456 1457 END_INTERFACE 1458 } IMFClockVtbl; 1459 1460 interface IMFClock { 1461 CONST_VTBL IMFClockVtbl* lpVtbl; 1462 }; 1463 1464 #ifdef COBJMACROS 1465 #ifndef WIDL_C_INLINE_WRAPPERS 1466 /*** IUnknown methods ***/ 1467 #define IMFClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1468 #define IMFClock_AddRef(This) (This)->lpVtbl->AddRef(This) 1469 #define IMFClock_Release(This) (This)->lpVtbl->Release(This) 1470 /*** IMFClock methods ***/ 1471 #define IMFClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics) 1472 #define IMFClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) 1473 #define IMFClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey) 1474 #define IMFClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState) 1475 #define IMFClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties) 1476 #else 1477 /*** IUnknown methods ***/ 1478 static FORCEINLINE HRESULT IMFClock_QueryInterface(IMFClock* This,REFIID riid,void **ppvObject) { 1479 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1480 } 1481 static FORCEINLINE ULONG IMFClock_AddRef(IMFClock* This) { 1482 return This->lpVtbl->AddRef(This); 1483 } 1484 static FORCEINLINE ULONG IMFClock_Release(IMFClock* This) { 1485 return This->lpVtbl->Release(This); 1486 } 1487 /*** IMFClock methods ***/ 1488 static FORCEINLINE HRESULT IMFClock_GetClockCharacteristics(IMFClock* This,DWORD *pdwCharacteristics) { 1489 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics); 1490 } 1491 static FORCEINLINE HRESULT IMFClock_GetCorrelatedTime(IMFClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) { 1492 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime); 1493 } 1494 static FORCEINLINE HRESULT IMFClock_GetContinuityKey(IMFClock* This,DWORD *pdwContinuityKey) { 1495 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey); 1496 } 1497 static FORCEINLINE HRESULT IMFClock_GetState(IMFClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) { 1498 return This->lpVtbl->GetState(This,dwReserved,peClockState); 1499 } 1500 static FORCEINLINE HRESULT IMFClock_GetProperties(IMFClock* This,MFCLOCK_PROPERTIES *pClockProperties) { 1501 return This->lpVtbl->GetProperties(This,pClockProperties); 1502 } 1503 #endif 1504 #endif 1505 1506 #endif 1507 1508 1509 #endif /* __IMFClock_INTERFACE_DEFINED__ */ 1510 1511 #define SHA_HASH_LEN 20 1512 #define STR_HASH_LEN (SHA_HASH_LEN*2+3) 1513 typedef struct _MFRR_COMPONENT_HASH_INFO { 1514 DWORD ulReason; 1515 WCHAR rgHeaderHash[STR_HASH_LEN]; 1516 WCHAR rgPublicKeyHash[STR_HASH_LEN]; 1517 WCHAR wszName[MAX_PATH]; 1518 } MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO; 1519 EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a); 1520 typedef enum _MF_CONNECT_METHOD { 1521 MF_CONNECT_DIRECT = 0x0, 1522 MF_CONNECT_ALLOW_CONVERTER = 0x1, 1523 MF_CONNECT_ALLOW_DECODER = 0x3, 1524 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x4, 1525 MF_CONNECT_AS_OPTIONAL = 0x10000, 1526 MF_CONNECT_AS_OPTIONAL_BRANCH = 0x20000 1527 } MF_CONNECT_METHOD; 1528 /***************************************************************************** 1529 * IMFMediaSession interface 1530 */ 1531 #ifndef __IMFMediaSession_INTERFACE_DEFINED__ 1532 #define __IMFMediaSession_INTERFACE_DEFINED__ 1533 1534 DEFINE_GUID(IID_IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27); 1535 #if defined(__cplusplus) && !defined(CINTERFACE) 1536 MIDL_INTERFACE("90377834-21d0-4dee-8214-ba2e3e6c1127") 1537 IMFMediaSession : public IMFMediaEventGenerator 1538 { 1539 virtual HRESULT STDMETHODCALLTYPE SetTopology( 1540 DWORD dwSetTopologyFlags, 1541 IMFTopology *pTopology) = 0; 1542 1543 virtual HRESULT STDMETHODCALLTYPE ClearTopologies( 1544 ) = 0; 1545 1546 virtual HRESULT STDMETHODCALLTYPE Start( 1547 const GUID *pguidTimeFormat, 1548 const PROPVARIANT *pvarStartPosition) = 0; 1549 1550 virtual HRESULT STDMETHODCALLTYPE Pause( 1551 ) = 0; 1552 1553 virtual HRESULT STDMETHODCALLTYPE Stop( 1554 ) = 0; 1555 1556 virtual HRESULT STDMETHODCALLTYPE Close( 1557 ) = 0; 1558 1559 virtual HRESULT STDMETHODCALLTYPE Shutdown( 1560 ) = 0; 1561 1562 virtual HRESULT STDMETHODCALLTYPE GetClock( 1563 IMFClock **ppClock) = 0; 1564 1565 virtual HRESULT STDMETHODCALLTYPE GetSessionCapabilities( 1566 DWORD *pdwCaps) = 0; 1567 1568 virtual HRESULT STDMETHODCALLTYPE GetFullTopology( 1569 DWORD dwGetFullTopologyFlags, 1570 TOPOID TopoId, 1571 IMFTopology **ppFullTopology) = 0; 1572 1573 }; 1574 #ifdef __CRT_UUID_DECL 1575 __CRT_UUID_DECL(IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27) 1576 #endif 1577 #else 1578 typedef struct IMFMediaSessionVtbl { 1579 BEGIN_INTERFACE 1580 1581 /*** IUnknown methods ***/ 1582 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1583 IMFMediaSession *This, 1584 REFIID riid, 1585 void **ppvObject); 1586 1587 ULONG (STDMETHODCALLTYPE *AddRef)( 1588 IMFMediaSession *This); 1589 1590 ULONG (STDMETHODCALLTYPE *Release)( 1591 IMFMediaSession *This); 1592 1593 /*** IMFMediaEventGenerator methods ***/ 1594 HRESULT (STDMETHODCALLTYPE *GetEvent)( 1595 IMFMediaSession *This, 1596 DWORD dwFlags, 1597 IMFMediaEvent **ppEvent); 1598 1599 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 1600 IMFMediaSession *This, 1601 IMFAsyncCallback *pCallback, 1602 IUnknown *punkState); 1603 1604 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 1605 IMFMediaSession *This, 1606 IMFAsyncResult *pResult, 1607 IMFMediaEvent **ppEvent); 1608 1609 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 1610 IMFMediaSession *This, 1611 MediaEventType met, 1612 REFGUID guidExtendedType, 1613 HRESULT hrStatus, 1614 const PROPVARIANT *pvValue); 1615 1616 /*** IMFMediaSession methods ***/ 1617 HRESULT (STDMETHODCALLTYPE *SetTopology)( 1618 IMFMediaSession *This, 1619 DWORD dwSetTopologyFlags, 1620 IMFTopology *pTopology); 1621 1622 HRESULT (STDMETHODCALLTYPE *ClearTopologies)( 1623 IMFMediaSession *This); 1624 1625 HRESULT (STDMETHODCALLTYPE *Start)( 1626 IMFMediaSession *This, 1627 const GUID *pguidTimeFormat, 1628 const PROPVARIANT *pvarStartPosition); 1629 1630 HRESULT (STDMETHODCALLTYPE *Pause)( 1631 IMFMediaSession *This); 1632 1633 HRESULT (STDMETHODCALLTYPE *Stop)( 1634 IMFMediaSession *This); 1635 1636 HRESULT (STDMETHODCALLTYPE *Close)( 1637 IMFMediaSession *This); 1638 1639 HRESULT (STDMETHODCALLTYPE *Shutdown)( 1640 IMFMediaSession *This); 1641 1642 HRESULT (STDMETHODCALLTYPE *GetClock)( 1643 IMFMediaSession *This, 1644 IMFClock **ppClock); 1645 1646 HRESULT (STDMETHODCALLTYPE *GetSessionCapabilities)( 1647 IMFMediaSession *This, 1648 DWORD *pdwCaps); 1649 1650 HRESULT (STDMETHODCALLTYPE *GetFullTopology)( 1651 IMFMediaSession *This, 1652 DWORD dwGetFullTopologyFlags, 1653 TOPOID TopoId, 1654 IMFTopology **ppFullTopology); 1655 1656 END_INTERFACE 1657 } IMFMediaSessionVtbl; 1658 1659 interface IMFMediaSession { 1660 CONST_VTBL IMFMediaSessionVtbl* lpVtbl; 1661 }; 1662 1663 #ifdef COBJMACROS 1664 #ifndef WIDL_C_INLINE_WRAPPERS 1665 /*** IUnknown methods ***/ 1666 #define IMFMediaSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1667 #define IMFMediaSession_AddRef(This) (This)->lpVtbl->AddRef(This) 1668 #define IMFMediaSession_Release(This) (This)->lpVtbl->Release(This) 1669 /*** IMFMediaEventGenerator methods ***/ 1670 #define IMFMediaSession_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 1671 #define IMFMediaSession_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 1672 #define IMFMediaSession_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 1673 #define IMFMediaSession_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 1674 /*** IMFMediaSession methods ***/ 1675 #define IMFMediaSession_SetTopology(This,dwSetTopologyFlags,pTopology) (This)->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology) 1676 #define IMFMediaSession_ClearTopologies(This) (This)->lpVtbl->ClearTopologies(This) 1677 #define IMFMediaSession_Start(This,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition) 1678 #define IMFMediaSession_Pause(This) (This)->lpVtbl->Pause(This) 1679 #define IMFMediaSession_Stop(This) (This)->lpVtbl->Stop(This) 1680 #define IMFMediaSession_Close(This) (This)->lpVtbl->Close(This) 1681 #define IMFMediaSession_Shutdown(This) (This)->lpVtbl->Shutdown(This) 1682 #define IMFMediaSession_GetClock(This,ppClock) (This)->lpVtbl->GetClock(This,ppClock) 1683 #define IMFMediaSession_GetSessionCapabilities(This,pdwCaps) (This)->lpVtbl->GetSessionCapabilities(This,pdwCaps) 1684 #define IMFMediaSession_GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) (This)->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) 1685 #else 1686 /*** IUnknown methods ***/ 1687 static FORCEINLINE HRESULT IMFMediaSession_QueryInterface(IMFMediaSession* This,REFIID riid,void **ppvObject) { 1688 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1689 } 1690 static FORCEINLINE ULONG IMFMediaSession_AddRef(IMFMediaSession* This) { 1691 return This->lpVtbl->AddRef(This); 1692 } 1693 static FORCEINLINE ULONG IMFMediaSession_Release(IMFMediaSession* This) { 1694 return This->lpVtbl->Release(This); 1695 } 1696 /*** IMFMediaEventGenerator methods ***/ 1697 static FORCEINLINE HRESULT IMFMediaSession_GetEvent(IMFMediaSession* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 1698 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 1699 } 1700 static FORCEINLINE HRESULT IMFMediaSession_BeginGetEvent(IMFMediaSession* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 1701 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 1702 } 1703 static FORCEINLINE HRESULT IMFMediaSession_EndGetEvent(IMFMediaSession* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 1704 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 1705 } 1706 static FORCEINLINE HRESULT IMFMediaSession_QueueEvent(IMFMediaSession* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 1707 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 1708 } 1709 /*** IMFMediaSession methods ***/ 1710 static FORCEINLINE HRESULT IMFMediaSession_SetTopology(IMFMediaSession* This,DWORD dwSetTopologyFlags,IMFTopology *pTopology) { 1711 return This->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology); 1712 } 1713 static FORCEINLINE HRESULT IMFMediaSession_ClearTopologies(IMFMediaSession* This) { 1714 return This->lpVtbl->ClearTopologies(This); 1715 } 1716 static FORCEINLINE HRESULT IMFMediaSession_Start(IMFMediaSession* This,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 1717 return This->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition); 1718 } 1719 static FORCEINLINE HRESULT IMFMediaSession_Pause(IMFMediaSession* This) { 1720 return This->lpVtbl->Pause(This); 1721 } 1722 static FORCEINLINE HRESULT IMFMediaSession_Stop(IMFMediaSession* This) { 1723 return This->lpVtbl->Stop(This); 1724 } 1725 static FORCEINLINE HRESULT IMFMediaSession_Close(IMFMediaSession* This) { 1726 return This->lpVtbl->Close(This); 1727 } 1728 static FORCEINLINE HRESULT IMFMediaSession_Shutdown(IMFMediaSession* This) { 1729 return This->lpVtbl->Shutdown(This); 1730 } 1731 static FORCEINLINE HRESULT IMFMediaSession_GetClock(IMFMediaSession* This,IMFClock **ppClock) { 1732 return This->lpVtbl->GetClock(This,ppClock); 1733 } 1734 static FORCEINLINE HRESULT IMFMediaSession_GetSessionCapabilities(IMFMediaSession* This,DWORD *pdwCaps) { 1735 return This->lpVtbl->GetSessionCapabilities(This,pdwCaps); 1736 } 1737 static FORCEINLINE HRESULT IMFMediaSession_GetFullTopology(IMFMediaSession* This,DWORD dwGetFullTopologyFlags,TOPOID TopoId,IMFTopology **ppFullTopology) { 1738 return This->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology); 1739 } 1740 #endif 1741 #endif 1742 1743 #endif 1744 1745 1746 #endif /* __IMFMediaSession_INTERFACE_DEFINED__ */ 1747 1748 /***************************************************************************** 1749 * IMFMediaTypeHandler interface 1750 */ 1751 #ifndef __IMFMediaTypeHandler_INTERFACE_DEFINED__ 1752 #define __IMFMediaTypeHandler_INTERFACE_DEFINED__ 1753 1754 DEFINE_GUID(IID_IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5); 1755 #if defined(__cplusplus) && !defined(CINTERFACE) 1756 MIDL_INTERFACE("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5") 1757 IMFMediaTypeHandler : public IUnknown 1758 { 1759 virtual HRESULT STDMETHODCALLTYPE IsMediaTypeSupported( 1760 IMFMediaType *pMediaType, 1761 IMFMediaType **ppMediaType) = 0; 1762 1763 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeCount( 1764 DWORD *pdwTypeCount) = 0; 1765 1766 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeByIndex( 1767 DWORD dwIndex, 1768 IMFMediaType **ppType) = 0; 1769 1770 virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType( 1771 IMFMediaType *pMediaType) = 0; 1772 1773 virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType( 1774 IMFMediaType **ppMediaType) = 0; 1775 1776 virtual HRESULT STDMETHODCALLTYPE GetMajorType( 1777 GUID *pguidMajorType) = 0; 1778 1779 }; 1780 #ifdef __CRT_UUID_DECL 1781 __CRT_UUID_DECL(IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5) 1782 #endif 1783 #else 1784 typedef struct IMFMediaTypeHandlerVtbl { 1785 BEGIN_INTERFACE 1786 1787 /*** IUnknown methods ***/ 1788 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1789 IMFMediaTypeHandler *This, 1790 REFIID riid, 1791 void **ppvObject); 1792 1793 ULONG (STDMETHODCALLTYPE *AddRef)( 1794 IMFMediaTypeHandler *This); 1795 1796 ULONG (STDMETHODCALLTYPE *Release)( 1797 IMFMediaTypeHandler *This); 1798 1799 /*** IMFMediaTypeHandler methods ***/ 1800 HRESULT (STDMETHODCALLTYPE *IsMediaTypeSupported)( 1801 IMFMediaTypeHandler *This, 1802 IMFMediaType *pMediaType, 1803 IMFMediaType **ppMediaType); 1804 1805 HRESULT (STDMETHODCALLTYPE *GetMediaTypeCount)( 1806 IMFMediaTypeHandler *This, 1807 DWORD *pdwTypeCount); 1808 1809 HRESULT (STDMETHODCALLTYPE *GetMediaTypeByIndex)( 1810 IMFMediaTypeHandler *This, 1811 DWORD dwIndex, 1812 IMFMediaType **ppType); 1813 1814 HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)( 1815 IMFMediaTypeHandler *This, 1816 IMFMediaType *pMediaType); 1817 1818 HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)( 1819 IMFMediaTypeHandler *This, 1820 IMFMediaType **ppMediaType); 1821 1822 HRESULT (STDMETHODCALLTYPE *GetMajorType)( 1823 IMFMediaTypeHandler *This, 1824 GUID *pguidMajorType); 1825 1826 END_INTERFACE 1827 } IMFMediaTypeHandlerVtbl; 1828 1829 interface IMFMediaTypeHandler { 1830 CONST_VTBL IMFMediaTypeHandlerVtbl* lpVtbl; 1831 }; 1832 1833 #ifdef COBJMACROS 1834 #ifndef WIDL_C_INLINE_WRAPPERS 1835 /*** IUnknown methods ***/ 1836 #define IMFMediaTypeHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1837 #define IMFMediaTypeHandler_AddRef(This) (This)->lpVtbl->AddRef(This) 1838 #define IMFMediaTypeHandler_Release(This) (This)->lpVtbl->Release(This) 1839 /*** IMFMediaTypeHandler methods ***/ 1840 #define IMFMediaTypeHandler_IsMediaTypeSupported(This,pMediaType,ppMediaType) (This)->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType) 1841 #define IMFMediaTypeHandler_GetMediaTypeCount(This,pdwTypeCount) (This)->lpVtbl->GetMediaTypeCount(This,pdwTypeCount) 1842 #define IMFMediaTypeHandler_GetMediaTypeByIndex(This,dwIndex,ppType) (This)->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType) 1843 #define IMFMediaTypeHandler_SetCurrentMediaType(This,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,pMediaType) 1844 #define IMFMediaTypeHandler_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType) 1845 #define IMFMediaTypeHandler_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType) 1846 #else 1847 /*** IUnknown methods ***/ 1848 static FORCEINLINE HRESULT IMFMediaTypeHandler_QueryInterface(IMFMediaTypeHandler* This,REFIID riid,void **ppvObject) { 1849 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1850 } 1851 static FORCEINLINE ULONG IMFMediaTypeHandler_AddRef(IMFMediaTypeHandler* This) { 1852 return This->lpVtbl->AddRef(This); 1853 } 1854 static FORCEINLINE ULONG IMFMediaTypeHandler_Release(IMFMediaTypeHandler* This) { 1855 return This->lpVtbl->Release(This); 1856 } 1857 /*** IMFMediaTypeHandler methods ***/ 1858 static FORCEINLINE HRESULT IMFMediaTypeHandler_IsMediaTypeSupported(IMFMediaTypeHandler* This,IMFMediaType *pMediaType,IMFMediaType **ppMediaType) { 1859 return This->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType); 1860 } 1861 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeCount(IMFMediaTypeHandler* This,DWORD *pdwTypeCount) { 1862 return This->lpVtbl->GetMediaTypeCount(This,pdwTypeCount); 1863 } 1864 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeByIndex(IMFMediaTypeHandler* This,DWORD dwIndex,IMFMediaType **ppType) { 1865 return This->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType); 1866 } 1867 static FORCEINLINE HRESULT IMFMediaTypeHandler_SetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType *pMediaType) { 1868 return This->lpVtbl->SetCurrentMediaType(This,pMediaType); 1869 } 1870 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType **ppMediaType) { 1871 return This->lpVtbl->GetCurrentMediaType(This,ppMediaType); 1872 } 1873 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMajorType(IMFMediaTypeHandler* This,GUID *pguidMajorType) { 1874 return This->lpVtbl->GetMajorType(This,pguidMajorType); 1875 } 1876 #endif 1877 #endif 1878 1879 #endif 1880 1881 HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_RemoteGetCurrentMediaType_Proxy( 1882 IMFMediaTypeHandler* This, 1883 BYTE **ppbData, 1884 DWORD *pcbData); 1885 void __RPC_STUB IMFMediaTypeHandler_RemoteGetCurrentMediaType_Stub( 1886 IRpcStubBuffer* This, 1887 IRpcChannelBuffer* pRpcChannelBuffer, 1888 PRPC_MESSAGE pRpcMessage, 1889 DWORD* pdwStubPhase); 1890 HRESULT CALLBACK IMFMediaTypeHandler_GetCurrentMediaType_Proxy( 1891 IMFMediaTypeHandler* This, 1892 IMFMediaType **ppMediaType); 1893 HRESULT __RPC_STUB IMFMediaTypeHandler_GetCurrentMediaType_Stub( 1894 IMFMediaTypeHandler* This, 1895 BYTE **ppbData, 1896 DWORD *pcbData); 1897 1898 #endif /* __IMFMediaTypeHandler_INTERFACE_DEFINED__ */ 1899 1900 /***************************************************************************** 1901 * IMFStreamDescriptor interface 1902 */ 1903 #ifndef __IMFStreamDescriptor_INTERFACE_DEFINED__ 1904 #define __IMFStreamDescriptor_INTERFACE_DEFINED__ 1905 1906 DEFINE_GUID(IID_IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38); 1907 #if defined(__cplusplus) && !defined(CINTERFACE) 1908 MIDL_INTERFACE("56c03d9c-9dbb-45f5-ab4b-d80f47c05938") 1909 IMFStreamDescriptor : public IMFAttributes 1910 { 1911 virtual HRESULT STDMETHODCALLTYPE GetStreamIdentifier( 1912 DWORD *pdwStreamIdentifier) = 0; 1913 1914 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler( 1915 IMFMediaTypeHandler **ppMediaTypeHandler) = 0; 1916 1917 }; 1918 #ifdef __CRT_UUID_DECL 1919 __CRT_UUID_DECL(IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38) 1920 #endif 1921 #else 1922 typedef struct IMFStreamDescriptorVtbl { 1923 BEGIN_INTERFACE 1924 1925 /*** IUnknown methods ***/ 1926 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1927 IMFStreamDescriptor *This, 1928 REFIID riid, 1929 void **ppvObject); 1930 1931 ULONG (STDMETHODCALLTYPE *AddRef)( 1932 IMFStreamDescriptor *This); 1933 1934 ULONG (STDMETHODCALLTYPE *Release)( 1935 IMFStreamDescriptor *This); 1936 1937 /*** IMFAttributes methods ***/ 1938 HRESULT (STDMETHODCALLTYPE *GetItem)( 1939 IMFStreamDescriptor *This, 1940 REFGUID guidKey, 1941 PROPVARIANT *pValue); 1942 1943 HRESULT (STDMETHODCALLTYPE *GetItemType)( 1944 IMFStreamDescriptor *This, 1945 REFGUID guidKey, 1946 MF_ATTRIBUTE_TYPE *pType); 1947 1948 HRESULT (STDMETHODCALLTYPE *CompareItem)( 1949 IMFStreamDescriptor *This, 1950 REFGUID guidKey, 1951 REFPROPVARIANT Value, 1952 WINBOOL *pbResult); 1953 1954 HRESULT (STDMETHODCALLTYPE *Compare)( 1955 IMFStreamDescriptor *This, 1956 IMFAttributes *pTheirs, 1957 MF_ATTRIBUTES_MATCH_TYPE MatchType, 1958 WINBOOL *pbResult); 1959 1960 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 1961 IMFStreamDescriptor *This, 1962 REFGUID guidKey, 1963 UINT32 *punValue); 1964 1965 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 1966 IMFStreamDescriptor *This, 1967 REFGUID guidKey, 1968 UINT64 *punValue); 1969 1970 HRESULT (STDMETHODCALLTYPE *GetDouble)( 1971 IMFStreamDescriptor *This, 1972 REFGUID guidKey, 1973 double *pfValue); 1974 1975 HRESULT (STDMETHODCALLTYPE *GetGUID)( 1976 IMFStreamDescriptor *This, 1977 REFGUID guidKey, 1978 GUID *pguidValue); 1979 1980 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 1981 IMFStreamDescriptor *This, 1982 REFGUID guidKey, 1983 UINT32 *pcchLength); 1984 1985 HRESULT (STDMETHODCALLTYPE *GetString)( 1986 IMFStreamDescriptor *This, 1987 REFGUID guidKey, 1988 LPWSTR pwszValue, 1989 UINT32 cchBufSize, 1990 UINT32 *pcchLength); 1991 1992 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 1993 IMFStreamDescriptor *This, 1994 REFGUID guidKey, 1995 LPWSTR *ppwszValue, 1996 UINT32 *pcchLength); 1997 1998 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 1999 IMFStreamDescriptor *This, 2000 REFGUID guidKey, 2001 UINT32 *pcbBlobSize); 2002 2003 HRESULT (STDMETHODCALLTYPE *GetBlob)( 2004 IMFStreamDescriptor *This, 2005 REFGUID guidKey, 2006 UINT8 *pBuf, 2007 UINT32 cbBufSize, 2008 UINT32 *pcbBlobSize); 2009 2010 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 2011 IMFStreamDescriptor *This, 2012 REFGUID guidKey, 2013 UINT8 **ppBuf, 2014 UINT32 *pcbSize); 2015 2016 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 2017 IMFStreamDescriptor *This, 2018 REFGUID guidKey, 2019 REFIID riid, 2020 LPVOID *ppv); 2021 2022 HRESULT (STDMETHODCALLTYPE *SetItem)( 2023 IMFStreamDescriptor *This, 2024 REFGUID guidKey, 2025 REFPROPVARIANT Value); 2026 2027 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 2028 IMFStreamDescriptor *This, 2029 REFGUID guidKey); 2030 2031 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 2032 IMFStreamDescriptor *This); 2033 2034 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 2035 IMFStreamDescriptor *This, 2036 REFGUID guidKey, 2037 UINT32 unValue); 2038 2039 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 2040 IMFStreamDescriptor *This, 2041 REFGUID guidKey, 2042 UINT64 unValue); 2043 2044 HRESULT (STDMETHODCALLTYPE *SetDouble)( 2045 IMFStreamDescriptor *This, 2046 REFGUID guidKey, 2047 double fValue); 2048 2049 HRESULT (STDMETHODCALLTYPE *SetGUID)( 2050 IMFStreamDescriptor *This, 2051 REFGUID guidKey, 2052 REFGUID guidValue); 2053 2054 HRESULT (STDMETHODCALLTYPE *SetString)( 2055 IMFStreamDescriptor *This, 2056 REFGUID guidKey, 2057 LPCWSTR wszValue); 2058 2059 HRESULT (STDMETHODCALLTYPE *SetBlob)( 2060 IMFStreamDescriptor *This, 2061 REFGUID guidKey, 2062 const UINT8 *pBuf, 2063 UINT32 cbBufSize); 2064 2065 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 2066 IMFStreamDescriptor *This, 2067 REFGUID guidKey, 2068 IUnknown *pUnknown); 2069 2070 HRESULT (STDMETHODCALLTYPE *LockStore)( 2071 IMFStreamDescriptor *This); 2072 2073 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 2074 IMFStreamDescriptor *This); 2075 2076 HRESULT (STDMETHODCALLTYPE *GetCount)( 2077 IMFStreamDescriptor *This, 2078 UINT32 *pcItems); 2079 2080 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 2081 IMFStreamDescriptor *This, 2082 UINT32 unIndex, 2083 GUID *pguidKey, 2084 PROPVARIANT *pValue); 2085 2086 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 2087 IMFStreamDescriptor *This, 2088 IMFAttributes *pDest); 2089 2090 /*** IMFStreamDescriptor methods ***/ 2091 HRESULT (STDMETHODCALLTYPE *GetStreamIdentifier)( 2092 IMFStreamDescriptor *This, 2093 DWORD *pdwStreamIdentifier); 2094 2095 HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)( 2096 IMFStreamDescriptor *This, 2097 IMFMediaTypeHandler **ppMediaTypeHandler); 2098 2099 END_INTERFACE 2100 } IMFStreamDescriptorVtbl; 2101 2102 interface IMFStreamDescriptor { 2103 CONST_VTBL IMFStreamDescriptorVtbl* lpVtbl; 2104 }; 2105 2106 #ifdef COBJMACROS 2107 #ifndef WIDL_C_INLINE_WRAPPERS 2108 /*** IUnknown methods ***/ 2109 #define IMFStreamDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2110 #define IMFStreamDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This) 2111 #define IMFStreamDescriptor_Release(This) (This)->lpVtbl->Release(This) 2112 /*** IMFAttributes methods ***/ 2113 #define IMFStreamDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 2114 #define IMFStreamDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 2115 #define IMFStreamDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 2116 #define IMFStreamDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 2117 #define IMFStreamDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 2118 #define IMFStreamDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 2119 #define IMFStreamDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 2120 #define IMFStreamDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 2121 #define IMFStreamDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 2122 #define IMFStreamDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 2123 #define IMFStreamDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 2124 #define IMFStreamDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 2125 #define IMFStreamDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 2126 #define IMFStreamDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 2127 #define IMFStreamDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 2128 #define IMFStreamDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 2129 #define IMFStreamDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 2130 #define IMFStreamDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 2131 #define IMFStreamDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 2132 #define IMFStreamDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 2133 #define IMFStreamDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 2134 #define IMFStreamDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 2135 #define IMFStreamDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 2136 #define IMFStreamDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 2137 #define IMFStreamDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 2138 #define IMFStreamDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This) 2139 #define IMFStreamDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 2140 #define IMFStreamDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 2141 #define IMFStreamDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 2142 #define IMFStreamDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 2143 /*** IMFStreamDescriptor methods ***/ 2144 #define IMFStreamDescriptor_GetStreamIdentifier(This,pdwStreamIdentifier) (This)->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier) 2145 #define IMFStreamDescriptor_GetMediaTypeHandler(This,ppMediaTypeHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler) 2146 #else 2147 /*** IUnknown methods ***/ 2148 static FORCEINLINE HRESULT IMFStreamDescriptor_QueryInterface(IMFStreamDescriptor* This,REFIID riid,void **ppvObject) { 2149 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2150 } 2151 static FORCEINLINE ULONG IMFStreamDescriptor_AddRef(IMFStreamDescriptor* This) { 2152 return This->lpVtbl->AddRef(This); 2153 } 2154 static FORCEINLINE ULONG IMFStreamDescriptor_Release(IMFStreamDescriptor* This) { 2155 return This->lpVtbl->Release(This); 2156 } 2157 /*** IMFAttributes methods ***/ 2158 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItem(IMFStreamDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 2159 return This->lpVtbl->GetItem(This,guidKey,pValue); 2160 } 2161 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemType(IMFStreamDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2162 return This->lpVtbl->GetItemType(This,guidKey,pType); 2163 } 2164 static FORCEINLINE HRESULT IMFStreamDescriptor_CompareItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2165 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2166 } 2167 static FORCEINLINE HRESULT IMFStreamDescriptor_Compare(IMFStreamDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 2168 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 2169 } 2170 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 2171 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2172 } 2173 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 2174 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2175 } 2176 static FORCEINLINE HRESULT IMFStreamDescriptor_GetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double *pfValue) { 2177 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2178 } 2179 static FORCEINLINE HRESULT IMFStreamDescriptor_GetGUID(IMFStreamDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 2180 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2181 } 2182 static FORCEINLINE HRESULT IMFStreamDescriptor_GetStringLength(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 2183 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2184 } 2185 static FORCEINLINE HRESULT IMFStreamDescriptor_GetString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 2186 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 2187 } 2188 static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2189 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2190 } 2191 static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlobSize(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2192 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2193 } 2194 static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 2195 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 2196 } 2197 static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2198 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2199 } 2200 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2201 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2202 } 2203 static FORCEINLINE HRESULT IMFStreamDescriptor_SetItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 2204 return This->lpVtbl->SetItem(This,guidKey,Value); 2205 } 2206 static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteItem(IMFStreamDescriptor* This,REFGUID guidKey) { 2207 return This->lpVtbl->DeleteItem(This,guidKey); 2208 } 2209 static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteAllItems(IMFStreamDescriptor* This) { 2210 return This->lpVtbl->DeleteAllItems(This); 2211 } 2212 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2213 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2214 } 2215 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2216 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2217 } 2218 static FORCEINLINE HRESULT IMFStreamDescriptor_SetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double fValue) { 2219 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2220 } 2221 static FORCEINLINE HRESULT IMFStreamDescriptor_SetGUID(IMFStreamDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2222 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2223 } 2224 static FORCEINLINE HRESULT IMFStreamDescriptor_SetString(IMFStreamDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2225 return This->lpVtbl->SetString(This,guidKey,wszValue); 2226 } 2227 static FORCEINLINE HRESULT IMFStreamDescriptor_SetBlob(IMFStreamDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2228 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2229 } 2230 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2231 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2232 } 2233 static FORCEINLINE HRESULT IMFStreamDescriptor_LockStore(IMFStreamDescriptor* This) { 2234 return This->lpVtbl->LockStore(This); 2235 } 2236 static FORCEINLINE HRESULT IMFStreamDescriptor_UnlockStore(IMFStreamDescriptor* This) { 2237 return This->lpVtbl->UnlockStore(This); 2238 } 2239 static FORCEINLINE HRESULT IMFStreamDescriptor_GetCount(IMFStreamDescriptor* This,UINT32 *pcItems) { 2240 return This->lpVtbl->GetCount(This,pcItems); 2241 } 2242 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemByIndex(IMFStreamDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2243 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2244 } 2245 static FORCEINLINE HRESULT IMFStreamDescriptor_CopyAllItems(IMFStreamDescriptor* This,IMFAttributes *pDest) { 2246 return This->lpVtbl->CopyAllItems(This,pDest); 2247 } 2248 /*** IMFStreamDescriptor methods ***/ 2249 static FORCEINLINE HRESULT IMFStreamDescriptor_GetStreamIdentifier(IMFStreamDescriptor* This,DWORD *pdwStreamIdentifier) { 2250 return This->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier); 2251 } 2252 static FORCEINLINE HRESULT IMFStreamDescriptor_GetMediaTypeHandler(IMFStreamDescriptor* This,IMFMediaTypeHandler **ppMediaTypeHandler) { 2253 return This->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler); 2254 } 2255 #endif 2256 #endif 2257 2258 #endif 2259 2260 2261 #endif /* __IMFStreamDescriptor_INTERFACE_DEFINED__ */ 2262 2263 /***************************************************************************** 2264 * IMFPresentationDescriptor interface 2265 */ 2266 #ifndef __IMFPresentationDescriptor_INTERFACE_DEFINED__ 2267 #define __IMFPresentationDescriptor_INTERFACE_DEFINED__ 2268 2269 DEFINE_GUID(IID_IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36); 2270 #if defined(__cplusplus) && !defined(CINTERFACE) 2271 MIDL_INTERFACE("03cb2711-24d7-4db6-a17f-f3a7a479a536") 2272 IMFPresentationDescriptor : public IMFAttributes 2273 { 2274 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorCount( 2275 DWORD *pdwDescriptorCount) = 0; 2276 2277 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorByIndex( 2278 DWORD dwIndex, 2279 WINBOOL *pfSelected, 2280 IMFStreamDescriptor **ppDescriptor) = 0; 2281 2282 virtual HRESULT STDMETHODCALLTYPE SelectStream( 2283 DWORD dwDescriptorIndex) = 0; 2284 2285 virtual HRESULT STDMETHODCALLTYPE DeselectStream( 2286 DWORD dwDescriptorIndex) = 0; 2287 2288 virtual HRESULT STDMETHODCALLTYPE Clone( 2289 IMFPresentationDescriptor **ppPresentationDescriptor) = 0; 2290 2291 }; 2292 #ifdef __CRT_UUID_DECL 2293 __CRT_UUID_DECL(IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36) 2294 #endif 2295 #else 2296 typedef struct IMFPresentationDescriptorVtbl { 2297 BEGIN_INTERFACE 2298 2299 /*** IUnknown methods ***/ 2300 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2301 IMFPresentationDescriptor *This, 2302 REFIID riid, 2303 void **ppvObject); 2304 2305 ULONG (STDMETHODCALLTYPE *AddRef)( 2306 IMFPresentationDescriptor *This); 2307 2308 ULONG (STDMETHODCALLTYPE *Release)( 2309 IMFPresentationDescriptor *This); 2310 2311 /*** IMFAttributes methods ***/ 2312 HRESULT (STDMETHODCALLTYPE *GetItem)( 2313 IMFPresentationDescriptor *This, 2314 REFGUID guidKey, 2315 PROPVARIANT *pValue); 2316 2317 HRESULT (STDMETHODCALLTYPE *GetItemType)( 2318 IMFPresentationDescriptor *This, 2319 REFGUID guidKey, 2320 MF_ATTRIBUTE_TYPE *pType); 2321 2322 HRESULT (STDMETHODCALLTYPE *CompareItem)( 2323 IMFPresentationDescriptor *This, 2324 REFGUID guidKey, 2325 REFPROPVARIANT Value, 2326 WINBOOL *pbResult); 2327 2328 HRESULT (STDMETHODCALLTYPE *Compare)( 2329 IMFPresentationDescriptor *This, 2330 IMFAttributes *pTheirs, 2331 MF_ATTRIBUTES_MATCH_TYPE MatchType, 2332 WINBOOL *pbResult); 2333 2334 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 2335 IMFPresentationDescriptor *This, 2336 REFGUID guidKey, 2337 UINT32 *punValue); 2338 2339 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 2340 IMFPresentationDescriptor *This, 2341 REFGUID guidKey, 2342 UINT64 *punValue); 2343 2344 HRESULT (STDMETHODCALLTYPE *GetDouble)( 2345 IMFPresentationDescriptor *This, 2346 REFGUID guidKey, 2347 double *pfValue); 2348 2349 HRESULT (STDMETHODCALLTYPE *GetGUID)( 2350 IMFPresentationDescriptor *This, 2351 REFGUID guidKey, 2352 GUID *pguidValue); 2353 2354 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 2355 IMFPresentationDescriptor *This, 2356 REFGUID guidKey, 2357 UINT32 *pcchLength); 2358 2359 HRESULT (STDMETHODCALLTYPE *GetString)( 2360 IMFPresentationDescriptor *This, 2361 REFGUID guidKey, 2362 LPWSTR pwszValue, 2363 UINT32 cchBufSize, 2364 UINT32 *pcchLength); 2365 2366 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 2367 IMFPresentationDescriptor *This, 2368 REFGUID guidKey, 2369 LPWSTR *ppwszValue, 2370 UINT32 *pcchLength); 2371 2372 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 2373 IMFPresentationDescriptor *This, 2374 REFGUID guidKey, 2375 UINT32 *pcbBlobSize); 2376 2377 HRESULT (STDMETHODCALLTYPE *GetBlob)( 2378 IMFPresentationDescriptor *This, 2379 REFGUID guidKey, 2380 UINT8 *pBuf, 2381 UINT32 cbBufSize, 2382 UINT32 *pcbBlobSize); 2383 2384 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 2385 IMFPresentationDescriptor *This, 2386 REFGUID guidKey, 2387 UINT8 **ppBuf, 2388 UINT32 *pcbSize); 2389 2390 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 2391 IMFPresentationDescriptor *This, 2392 REFGUID guidKey, 2393 REFIID riid, 2394 LPVOID *ppv); 2395 2396 HRESULT (STDMETHODCALLTYPE *SetItem)( 2397 IMFPresentationDescriptor *This, 2398 REFGUID guidKey, 2399 REFPROPVARIANT Value); 2400 2401 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 2402 IMFPresentationDescriptor *This, 2403 REFGUID guidKey); 2404 2405 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 2406 IMFPresentationDescriptor *This); 2407 2408 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 2409 IMFPresentationDescriptor *This, 2410 REFGUID guidKey, 2411 UINT32 unValue); 2412 2413 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 2414 IMFPresentationDescriptor *This, 2415 REFGUID guidKey, 2416 UINT64 unValue); 2417 2418 HRESULT (STDMETHODCALLTYPE *SetDouble)( 2419 IMFPresentationDescriptor *This, 2420 REFGUID guidKey, 2421 double fValue); 2422 2423 HRESULT (STDMETHODCALLTYPE *SetGUID)( 2424 IMFPresentationDescriptor *This, 2425 REFGUID guidKey, 2426 REFGUID guidValue); 2427 2428 HRESULT (STDMETHODCALLTYPE *SetString)( 2429 IMFPresentationDescriptor *This, 2430 REFGUID guidKey, 2431 LPCWSTR wszValue); 2432 2433 HRESULT (STDMETHODCALLTYPE *SetBlob)( 2434 IMFPresentationDescriptor *This, 2435 REFGUID guidKey, 2436 const UINT8 *pBuf, 2437 UINT32 cbBufSize); 2438 2439 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 2440 IMFPresentationDescriptor *This, 2441 REFGUID guidKey, 2442 IUnknown *pUnknown); 2443 2444 HRESULT (STDMETHODCALLTYPE *LockStore)( 2445 IMFPresentationDescriptor *This); 2446 2447 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 2448 IMFPresentationDescriptor *This); 2449 2450 HRESULT (STDMETHODCALLTYPE *GetCount)( 2451 IMFPresentationDescriptor *This, 2452 UINT32 *pcItems); 2453 2454 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 2455 IMFPresentationDescriptor *This, 2456 UINT32 unIndex, 2457 GUID *pguidKey, 2458 PROPVARIANT *pValue); 2459 2460 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 2461 IMFPresentationDescriptor *This, 2462 IMFAttributes *pDest); 2463 2464 /*** IMFPresentationDescriptor methods ***/ 2465 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorCount)( 2466 IMFPresentationDescriptor *This, 2467 DWORD *pdwDescriptorCount); 2468 2469 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorByIndex)( 2470 IMFPresentationDescriptor *This, 2471 DWORD dwIndex, 2472 WINBOOL *pfSelected, 2473 IMFStreamDescriptor **ppDescriptor); 2474 2475 HRESULT (STDMETHODCALLTYPE *SelectStream)( 2476 IMFPresentationDescriptor *This, 2477 DWORD dwDescriptorIndex); 2478 2479 HRESULT (STDMETHODCALLTYPE *DeselectStream)( 2480 IMFPresentationDescriptor *This, 2481 DWORD dwDescriptorIndex); 2482 2483 HRESULT (STDMETHODCALLTYPE *Clone)( 2484 IMFPresentationDescriptor *This, 2485 IMFPresentationDescriptor **ppPresentationDescriptor); 2486 2487 END_INTERFACE 2488 } IMFPresentationDescriptorVtbl; 2489 2490 interface IMFPresentationDescriptor { 2491 CONST_VTBL IMFPresentationDescriptorVtbl* lpVtbl; 2492 }; 2493 2494 #ifdef COBJMACROS 2495 #ifndef WIDL_C_INLINE_WRAPPERS 2496 /*** IUnknown methods ***/ 2497 #define IMFPresentationDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2498 #define IMFPresentationDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This) 2499 #define IMFPresentationDescriptor_Release(This) (This)->lpVtbl->Release(This) 2500 /*** IMFAttributes methods ***/ 2501 #define IMFPresentationDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 2502 #define IMFPresentationDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 2503 #define IMFPresentationDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 2504 #define IMFPresentationDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 2505 #define IMFPresentationDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 2506 #define IMFPresentationDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 2507 #define IMFPresentationDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 2508 #define IMFPresentationDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 2509 #define IMFPresentationDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 2510 #define IMFPresentationDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 2511 #define IMFPresentationDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 2512 #define IMFPresentationDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 2513 #define IMFPresentationDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 2514 #define IMFPresentationDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 2515 #define IMFPresentationDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 2516 #define IMFPresentationDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 2517 #define IMFPresentationDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 2518 #define IMFPresentationDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 2519 #define IMFPresentationDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 2520 #define IMFPresentationDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 2521 #define IMFPresentationDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 2522 #define IMFPresentationDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 2523 #define IMFPresentationDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 2524 #define IMFPresentationDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 2525 #define IMFPresentationDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 2526 #define IMFPresentationDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This) 2527 #define IMFPresentationDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 2528 #define IMFPresentationDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 2529 #define IMFPresentationDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 2530 #define IMFPresentationDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 2531 /*** IMFPresentationDescriptor methods ***/ 2532 #define IMFPresentationDescriptor_GetStreamDescriptorCount(This,pdwDescriptorCount) (This)->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount) 2533 #define IMFPresentationDescriptor_GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) (This)->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) 2534 #define IMFPresentationDescriptor_SelectStream(This,dwDescriptorIndex) (This)->lpVtbl->SelectStream(This,dwDescriptorIndex) 2535 #define IMFPresentationDescriptor_DeselectStream(This,dwDescriptorIndex) (This)->lpVtbl->DeselectStream(This,dwDescriptorIndex) 2536 #define IMFPresentationDescriptor_Clone(This,ppPresentationDescriptor) (This)->lpVtbl->Clone(This,ppPresentationDescriptor) 2537 #else 2538 /*** IUnknown methods ***/ 2539 static FORCEINLINE HRESULT IMFPresentationDescriptor_QueryInterface(IMFPresentationDescriptor* This,REFIID riid,void **ppvObject) { 2540 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2541 } 2542 static FORCEINLINE ULONG IMFPresentationDescriptor_AddRef(IMFPresentationDescriptor* This) { 2543 return This->lpVtbl->AddRef(This); 2544 } 2545 static FORCEINLINE ULONG IMFPresentationDescriptor_Release(IMFPresentationDescriptor* This) { 2546 return This->lpVtbl->Release(This); 2547 } 2548 /*** IMFAttributes methods ***/ 2549 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItem(IMFPresentationDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 2550 return This->lpVtbl->GetItem(This,guidKey,pValue); 2551 } 2552 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemType(IMFPresentationDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2553 return This->lpVtbl->GetItemType(This,guidKey,pType); 2554 } 2555 static FORCEINLINE HRESULT IMFPresentationDescriptor_CompareItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2556 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2557 } 2558 static FORCEINLINE HRESULT IMFPresentationDescriptor_Compare(IMFPresentationDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 2559 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 2560 } 2561 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 2562 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2563 } 2564 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 2565 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2566 } 2567 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double *pfValue) { 2568 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2569 } 2570 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 2571 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2572 } 2573 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStringLength(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 2574 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2575 } 2576 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 2577 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 2578 } 2579 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2580 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2581 } 2582 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlobSize(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2583 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2584 } 2585 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 2586 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 2587 } 2588 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2589 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2590 } 2591 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2592 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2593 } 2594 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 2595 return This->lpVtbl->SetItem(This,guidKey,Value); 2596 } 2597 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteItem(IMFPresentationDescriptor* This,REFGUID guidKey) { 2598 return This->lpVtbl->DeleteItem(This,guidKey); 2599 } 2600 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteAllItems(IMFPresentationDescriptor* This) { 2601 return This->lpVtbl->DeleteAllItems(This); 2602 } 2603 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2604 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2605 } 2606 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2607 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2608 } 2609 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double fValue) { 2610 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2611 } 2612 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2613 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2614 } 2615 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2616 return This->lpVtbl->SetString(This,guidKey,wszValue); 2617 } 2618 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2619 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2620 } 2621 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2622 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2623 } 2624 static FORCEINLINE HRESULT IMFPresentationDescriptor_LockStore(IMFPresentationDescriptor* This) { 2625 return This->lpVtbl->LockStore(This); 2626 } 2627 static FORCEINLINE HRESULT IMFPresentationDescriptor_UnlockStore(IMFPresentationDescriptor* This) { 2628 return This->lpVtbl->UnlockStore(This); 2629 } 2630 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetCount(IMFPresentationDescriptor* This,UINT32 *pcItems) { 2631 return This->lpVtbl->GetCount(This,pcItems); 2632 } 2633 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemByIndex(IMFPresentationDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2634 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2635 } 2636 static FORCEINLINE HRESULT IMFPresentationDescriptor_CopyAllItems(IMFPresentationDescriptor* This,IMFAttributes *pDest) { 2637 return This->lpVtbl->CopyAllItems(This,pDest); 2638 } 2639 /*** IMFPresentationDescriptor methods ***/ 2640 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorCount(IMFPresentationDescriptor* This,DWORD *pdwDescriptorCount) { 2641 return This->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount); 2642 } 2643 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorByIndex(IMFPresentationDescriptor* This,DWORD dwIndex,WINBOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) { 2644 return This->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor); 2645 } 2646 static FORCEINLINE HRESULT IMFPresentationDescriptor_SelectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2647 return This->lpVtbl->SelectStream(This,dwDescriptorIndex); 2648 } 2649 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeselectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2650 return This->lpVtbl->DeselectStream(This,dwDescriptorIndex); 2651 } 2652 static FORCEINLINE HRESULT IMFPresentationDescriptor_Clone(IMFPresentationDescriptor* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2653 return This->lpVtbl->Clone(This,ppPresentationDescriptor); 2654 } 2655 #endif 2656 #endif 2657 2658 #endif 2659 2660 2661 #endif /* __IMFPresentationDescriptor_INTERFACE_DEFINED__ */ 2662 2663 /***************************************************************************** 2664 * IMFMediaSource interface 2665 */ 2666 #ifndef __IMFMediaSource_INTERFACE_DEFINED__ 2667 #define __IMFMediaSource_INTERFACE_DEFINED__ 2668 2669 DEFINE_GUID(IID_IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66); 2670 #if defined(__cplusplus) && !defined(CINTERFACE) 2671 MIDL_INTERFACE("279a808d-aec7-40c8-9c6b-a6b492c78a66") 2672 IMFMediaSource : public IMFMediaEventGenerator 2673 { 2674 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 2675 DWORD *pdwCharacteristics) = 0; 2676 2677 virtual HRESULT STDMETHODCALLTYPE CreatePresentationDescriptor( 2678 IMFPresentationDescriptor **ppPresentationDescriptor) = 0; 2679 2680 virtual HRESULT STDMETHODCALLTYPE Start( 2681 IMFPresentationDescriptor *pPresentationDescriptor, 2682 const GUID *pguidTimeFormat, 2683 const PROPVARIANT *pvarStartPosition) = 0; 2684 2685 virtual HRESULT STDMETHODCALLTYPE Stop( 2686 ) = 0; 2687 2688 virtual HRESULT STDMETHODCALLTYPE Pause( 2689 ) = 0; 2690 2691 virtual HRESULT STDMETHODCALLTYPE Shutdown( 2692 ) = 0; 2693 2694 }; 2695 #ifdef __CRT_UUID_DECL 2696 __CRT_UUID_DECL(IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66) 2697 #endif 2698 #else 2699 typedef struct IMFMediaSourceVtbl { 2700 BEGIN_INTERFACE 2701 2702 /*** IUnknown methods ***/ 2703 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2704 IMFMediaSource *This, 2705 REFIID riid, 2706 void **ppvObject); 2707 2708 ULONG (STDMETHODCALLTYPE *AddRef)( 2709 IMFMediaSource *This); 2710 2711 ULONG (STDMETHODCALLTYPE *Release)( 2712 IMFMediaSource *This); 2713 2714 /*** IMFMediaEventGenerator methods ***/ 2715 HRESULT (STDMETHODCALLTYPE *GetEvent)( 2716 IMFMediaSource *This, 2717 DWORD dwFlags, 2718 IMFMediaEvent **ppEvent); 2719 2720 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 2721 IMFMediaSource *This, 2722 IMFAsyncCallback *pCallback, 2723 IUnknown *punkState); 2724 2725 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 2726 IMFMediaSource *This, 2727 IMFAsyncResult *pResult, 2728 IMFMediaEvent **ppEvent); 2729 2730 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 2731 IMFMediaSource *This, 2732 MediaEventType met, 2733 REFGUID guidExtendedType, 2734 HRESULT hrStatus, 2735 const PROPVARIANT *pvValue); 2736 2737 /*** IMFMediaSource methods ***/ 2738 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( 2739 IMFMediaSource *This, 2740 DWORD *pdwCharacteristics); 2741 2742 HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)( 2743 IMFMediaSource *This, 2744 IMFPresentationDescriptor **ppPresentationDescriptor); 2745 2746 HRESULT (STDMETHODCALLTYPE *Start)( 2747 IMFMediaSource *This, 2748 IMFPresentationDescriptor *pPresentationDescriptor, 2749 const GUID *pguidTimeFormat, 2750 const PROPVARIANT *pvarStartPosition); 2751 2752 HRESULT (STDMETHODCALLTYPE *Stop)( 2753 IMFMediaSource *This); 2754 2755 HRESULT (STDMETHODCALLTYPE *Pause)( 2756 IMFMediaSource *This); 2757 2758 HRESULT (STDMETHODCALLTYPE *Shutdown)( 2759 IMFMediaSource *This); 2760 2761 END_INTERFACE 2762 } IMFMediaSourceVtbl; 2763 2764 interface IMFMediaSource { 2765 CONST_VTBL IMFMediaSourceVtbl* lpVtbl; 2766 }; 2767 2768 #ifdef COBJMACROS 2769 #ifndef WIDL_C_INLINE_WRAPPERS 2770 /*** IUnknown methods ***/ 2771 #define IMFMediaSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2772 #define IMFMediaSource_AddRef(This) (This)->lpVtbl->AddRef(This) 2773 #define IMFMediaSource_Release(This) (This)->lpVtbl->Release(This) 2774 /*** IMFMediaEventGenerator methods ***/ 2775 #define IMFMediaSource_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 2776 #define IMFMediaSource_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 2777 #define IMFMediaSource_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 2778 #define IMFMediaSource_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 2779 /*** IMFMediaSource methods ***/ 2780 #define IMFMediaSource_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) 2781 #define IMFMediaSource_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor) 2782 #define IMFMediaSource_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) 2783 #define IMFMediaSource_Stop(This) (This)->lpVtbl->Stop(This) 2784 #define IMFMediaSource_Pause(This) (This)->lpVtbl->Pause(This) 2785 #define IMFMediaSource_Shutdown(This) (This)->lpVtbl->Shutdown(This) 2786 #else 2787 /*** IUnknown methods ***/ 2788 static FORCEINLINE HRESULT IMFMediaSource_QueryInterface(IMFMediaSource* This,REFIID riid,void **ppvObject) { 2789 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2790 } 2791 static FORCEINLINE ULONG IMFMediaSource_AddRef(IMFMediaSource* This) { 2792 return This->lpVtbl->AddRef(This); 2793 } 2794 static FORCEINLINE ULONG IMFMediaSource_Release(IMFMediaSource* This) { 2795 return This->lpVtbl->Release(This); 2796 } 2797 /*** IMFMediaEventGenerator methods ***/ 2798 static FORCEINLINE HRESULT IMFMediaSource_GetEvent(IMFMediaSource* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 2799 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 2800 } 2801 static FORCEINLINE HRESULT IMFMediaSource_BeginGetEvent(IMFMediaSource* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 2802 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 2803 } 2804 static FORCEINLINE HRESULT IMFMediaSource_EndGetEvent(IMFMediaSource* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 2805 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 2806 } 2807 static FORCEINLINE HRESULT IMFMediaSource_QueueEvent(IMFMediaSource* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 2808 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 2809 } 2810 /*** IMFMediaSource methods ***/ 2811 static FORCEINLINE HRESULT IMFMediaSource_GetCharacteristics(IMFMediaSource* This,DWORD *pdwCharacteristics) { 2812 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 2813 } 2814 static FORCEINLINE HRESULT IMFMediaSource_CreatePresentationDescriptor(IMFMediaSource* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2815 return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor); 2816 } 2817 static FORCEINLINE HRESULT IMFMediaSource_Start(IMFMediaSource* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 2818 return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition); 2819 } 2820 static FORCEINLINE HRESULT IMFMediaSource_Stop(IMFMediaSource* This) { 2821 return This->lpVtbl->Stop(This); 2822 } 2823 static FORCEINLINE HRESULT IMFMediaSource_Pause(IMFMediaSource* This) { 2824 return This->lpVtbl->Pause(This); 2825 } 2826 static FORCEINLINE HRESULT IMFMediaSource_Shutdown(IMFMediaSource* This) { 2827 return This->lpVtbl->Shutdown(This); 2828 } 2829 #endif 2830 #endif 2831 2832 #endif 2833 2834 HRESULT STDMETHODCALLTYPE IMFMediaSource_RemoteCreatePresentationDescriptor_Proxy( 2835 IMFMediaSource* This, 2836 DWORD *pcbPD, 2837 BYTE **pbPD, 2838 IMFPresentationDescriptor **ppRemotePD); 2839 void __RPC_STUB IMFMediaSource_RemoteCreatePresentationDescriptor_Stub( 2840 IRpcStubBuffer* This, 2841 IRpcChannelBuffer* pRpcChannelBuffer, 2842 PRPC_MESSAGE pRpcMessage, 2843 DWORD* pdwStubPhase); 2844 HRESULT CALLBACK IMFMediaSource_CreatePresentationDescriptor_Proxy( 2845 IMFMediaSource* This, 2846 IMFPresentationDescriptor **ppPresentationDescriptor); 2847 HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub( 2848 IMFMediaSource* This, 2849 DWORD *pcbPD, 2850 BYTE **pbPD, 2851 IMFPresentationDescriptor **ppRemotePD); 2852 2853 #endif /* __IMFMediaSource_INTERFACE_DEFINED__ */ 2854 2855 typedef struct _MF_LEAKY_BUCKET_PAIR { 2856 DWORD dwBitrate; 2857 DWORD msBufferWindow; 2858 } MF_LEAKY_BUCKET_PAIR; 2859 typedef struct _MFBYTESTREAM_BUFFERING_PARAMS { 2860 QWORD cbTotalFileSize; 2861 QWORD cbPlayableDataSize; 2862 MF_LEAKY_BUCKET_PAIR *prgBuckets; 2863 DWORD cBuckets; 2864 QWORD qwNetBufferingTime; 2865 QWORD qwExtraBufferingTimeDuringSeek; 2866 QWORD qwPlayDuration; 2867 float dRate; 2868 } MFBYTESTREAM_BUFFERING_PARAMS; 2869 /***************************************************************************** 2870 * IMFByteStreamBuffering interface 2871 */ 2872 #ifndef __IMFByteStreamBuffering_INTERFACE_DEFINED__ 2873 #define __IMFByteStreamBuffering_INTERFACE_DEFINED__ 2874 2875 DEFINE_GUID(IID_IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e); 2876 #if defined(__cplusplus) && !defined(CINTERFACE) 2877 MIDL_INTERFACE("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e") 2878 IMFByteStreamBuffering : public IUnknown 2879 { 2880 virtual HRESULT STDMETHODCALLTYPE SetBufferingParams( 2881 MFBYTESTREAM_BUFFERING_PARAMS *pParams) = 0; 2882 2883 virtual HRESULT STDMETHODCALLTYPE EnableBuffering( 2884 WINBOOL fEnable) = 0; 2885 2886 virtual HRESULT STDMETHODCALLTYPE StopBuffering( 2887 ) = 0; 2888 2889 }; 2890 #ifdef __CRT_UUID_DECL 2891 __CRT_UUID_DECL(IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e) 2892 #endif 2893 #else 2894 typedef struct IMFByteStreamBufferingVtbl { 2895 BEGIN_INTERFACE 2896 2897 /*** IUnknown methods ***/ 2898 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2899 IMFByteStreamBuffering *This, 2900 REFIID riid, 2901 void **ppvObject); 2902 2903 ULONG (STDMETHODCALLTYPE *AddRef)( 2904 IMFByteStreamBuffering *This); 2905 2906 ULONG (STDMETHODCALLTYPE *Release)( 2907 IMFByteStreamBuffering *This); 2908 2909 /*** IMFByteStreamBuffering methods ***/ 2910 HRESULT (STDMETHODCALLTYPE *SetBufferingParams)( 2911 IMFByteStreamBuffering *This, 2912 MFBYTESTREAM_BUFFERING_PARAMS *pParams); 2913 2914 HRESULT (STDMETHODCALLTYPE *EnableBuffering)( 2915 IMFByteStreamBuffering *This, 2916 WINBOOL fEnable); 2917 2918 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 2919 IMFByteStreamBuffering *This); 2920 2921 END_INTERFACE 2922 } IMFByteStreamBufferingVtbl; 2923 2924 interface IMFByteStreamBuffering { 2925 CONST_VTBL IMFByteStreamBufferingVtbl* lpVtbl; 2926 }; 2927 2928 #ifdef COBJMACROS 2929 #ifndef WIDL_C_INLINE_WRAPPERS 2930 /*** IUnknown methods ***/ 2931 #define IMFByteStreamBuffering_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2932 #define IMFByteStreamBuffering_AddRef(This) (This)->lpVtbl->AddRef(This) 2933 #define IMFByteStreamBuffering_Release(This) (This)->lpVtbl->Release(This) 2934 /*** IMFByteStreamBuffering methods ***/ 2935 #define IMFByteStreamBuffering_SetBufferingParams(This,pParams) (This)->lpVtbl->SetBufferingParams(This,pParams) 2936 #define IMFByteStreamBuffering_EnableBuffering(This,fEnable) (This)->lpVtbl->EnableBuffering(This,fEnable) 2937 #define IMFByteStreamBuffering_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 2938 #else 2939 /*** IUnknown methods ***/ 2940 static FORCEINLINE HRESULT IMFByteStreamBuffering_QueryInterface(IMFByteStreamBuffering* This,REFIID riid,void **ppvObject) { 2941 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2942 } 2943 static FORCEINLINE ULONG IMFByteStreamBuffering_AddRef(IMFByteStreamBuffering* This) { 2944 return This->lpVtbl->AddRef(This); 2945 } 2946 static FORCEINLINE ULONG IMFByteStreamBuffering_Release(IMFByteStreamBuffering* This) { 2947 return This->lpVtbl->Release(This); 2948 } 2949 /*** IMFByteStreamBuffering methods ***/ 2950 static FORCEINLINE HRESULT IMFByteStreamBuffering_SetBufferingParams(IMFByteStreamBuffering* This,MFBYTESTREAM_BUFFERING_PARAMS *pParams) { 2951 return This->lpVtbl->SetBufferingParams(This,pParams); 2952 } 2953 static FORCEINLINE HRESULT IMFByteStreamBuffering_EnableBuffering(IMFByteStreamBuffering* This,WINBOOL fEnable) { 2954 return This->lpVtbl->EnableBuffering(This,fEnable); 2955 } 2956 static FORCEINLINE HRESULT IMFByteStreamBuffering_StopBuffering(IMFByteStreamBuffering* This) { 2957 return This->lpVtbl->StopBuffering(This); 2958 } 2959 #endif 2960 #endif 2961 2962 #endif 2963 2964 2965 #endif /* __IMFByteStreamBuffering_INTERFACE_DEFINED__ */ 2966 2967 /***************************************************************************** 2968 * IMFClockStateSink interface 2969 */ 2970 #ifndef __IMFClockStateSink_INTERFACE_DEFINED__ 2971 #define __IMFClockStateSink_INTERFACE_DEFINED__ 2972 2973 DEFINE_GUID(IID_IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f); 2974 #if defined(__cplusplus) && !defined(CINTERFACE) 2975 MIDL_INTERFACE("f6696e82-74f7-4f3d-a178-8a5e09c3659f") 2976 IMFClockStateSink : public IUnknown 2977 { 2978 virtual HRESULT STDMETHODCALLTYPE OnClockStart( 2979 MFTIME hnsSystemTime, 2980 LONGLONG llClockStartOffset) = 0; 2981 2982 virtual HRESULT STDMETHODCALLTYPE OnClockStop( 2983 MFTIME hnsSystemTime) = 0; 2984 2985 virtual HRESULT STDMETHODCALLTYPE OnClockPause( 2986 MFTIME hnsSystemTime) = 0; 2987 2988 virtual HRESULT STDMETHODCALLTYPE OnClockRestart( 2989 MFTIME hnsSystemTime) = 0; 2990 2991 virtual HRESULT STDMETHODCALLTYPE OnClockSetRate( 2992 MFTIME hnsSystemTime, 2993 float flRate) = 0; 2994 2995 }; 2996 #ifdef __CRT_UUID_DECL 2997 __CRT_UUID_DECL(IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f) 2998 #endif 2999 #else 3000 typedef struct IMFClockStateSinkVtbl { 3001 BEGIN_INTERFACE 3002 3003 /*** IUnknown methods ***/ 3004 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3005 IMFClockStateSink *This, 3006 REFIID riid, 3007 void **ppvObject); 3008 3009 ULONG (STDMETHODCALLTYPE *AddRef)( 3010 IMFClockStateSink *This); 3011 3012 ULONG (STDMETHODCALLTYPE *Release)( 3013 IMFClockStateSink *This); 3014 3015 /*** IMFClockStateSink methods ***/ 3016 HRESULT (STDMETHODCALLTYPE *OnClockStart)( 3017 IMFClockStateSink *This, 3018 MFTIME hnsSystemTime, 3019 LONGLONG llClockStartOffset); 3020 3021 HRESULT (STDMETHODCALLTYPE *OnClockStop)( 3022 IMFClockStateSink *This, 3023 MFTIME hnsSystemTime); 3024 3025 HRESULT (STDMETHODCALLTYPE *OnClockPause)( 3026 IMFClockStateSink *This, 3027 MFTIME hnsSystemTime); 3028 3029 HRESULT (STDMETHODCALLTYPE *OnClockRestart)( 3030 IMFClockStateSink *This, 3031 MFTIME hnsSystemTime); 3032 3033 HRESULT (STDMETHODCALLTYPE *OnClockSetRate)( 3034 IMFClockStateSink *This, 3035 MFTIME hnsSystemTime, 3036 float flRate); 3037 3038 END_INTERFACE 3039 } IMFClockStateSinkVtbl; 3040 3041 interface IMFClockStateSink { 3042 CONST_VTBL IMFClockStateSinkVtbl* lpVtbl; 3043 }; 3044 3045 #ifdef COBJMACROS 3046 #ifndef WIDL_C_INLINE_WRAPPERS 3047 /*** IUnknown methods ***/ 3048 #define IMFClockStateSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3049 #define IMFClockStateSink_AddRef(This) (This)->lpVtbl->AddRef(This) 3050 #define IMFClockStateSink_Release(This) (This)->lpVtbl->Release(This) 3051 /*** IMFClockStateSink methods ***/ 3052 #define IMFClockStateSink_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset) 3053 #define IMFClockStateSink_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime) 3054 #define IMFClockStateSink_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime) 3055 #define IMFClockStateSink_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime) 3056 #define IMFClockStateSink_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate) 3057 #else 3058 /*** IUnknown methods ***/ 3059 static FORCEINLINE HRESULT IMFClockStateSink_QueryInterface(IMFClockStateSink* This,REFIID riid,void **ppvObject) { 3060 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3061 } 3062 static FORCEINLINE ULONG IMFClockStateSink_AddRef(IMFClockStateSink* This) { 3063 return This->lpVtbl->AddRef(This); 3064 } 3065 static FORCEINLINE ULONG IMFClockStateSink_Release(IMFClockStateSink* This) { 3066 return This->lpVtbl->Release(This); 3067 } 3068 /*** IMFClockStateSink methods ***/ 3069 static FORCEINLINE HRESULT IMFClockStateSink_OnClockStart(IMFClockStateSink* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) { 3070 return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset); 3071 } 3072 static FORCEINLINE HRESULT IMFClockStateSink_OnClockStop(IMFClockStateSink* This,MFTIME hnsSystemTime) { 3073 return This->lpVtbl->OnClockStop(This,hnsSystemTime); 3074 } 3075 static FORCEINLINE HRESULT IMFClockStateSink_OnClockPause(IMFClockStateSink* This,MFTIME hnsSystemTime) { 3076 return This->lpVtbl->OnClockPause(This,hnsSystemTime); 3077 } 3078 static FORCEINLINE HRESULT IMFClockStateSink_OnClockRestart(IMFClockStateSink* This,MFTIME hnsSystemTime) { 3079 return This->lpVtbl->OnClockRestart(This,hnsSystemTime); 3080 } 3081 static FORCEINLINE HRESULT IMFClockStateSink_OnClockSetRate(IMFClockStateSink* This,MFTIME hnsSystemTime,float flRate) { 3082 return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate); 3083 } 3084 #endif 3085 #endif 3086 3087 #endif 3088 3089 3090 #endif /* __IMFClockStateSink_INTERFACE_DEFINED__ */ 3091 3092 HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor); 3093 HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData); 3094 typedef DWORD MFSequencerElementId; 3095 typedef enum _MFCLOCK_CHARACTERISTICS_FLAGS { 3096 MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2, 3097 MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4, 3098 MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8 3099 } MFCLOCK_CHARACTERISTICS_FLAGS; 3100 #if (WINVER >= 0x0601) 3101 typedef enum _MF_QUALITY_ADVISE_FLAGS { 3102 MF_QUALITY_CANNOT_KEEP_UP = 0x1 3103 } MF_QUALITY_ADVISE_FLAGS; 3104 #endif /*(WINVER >= 0x0601)*/ 3105 typedef enum _MF_QUALITY_DROP_MODE { 3106 MF_DROP_MODE_NONE = 0x0, 3107 MF_DROP_MODE_1 = 0x1, 3108 MF_DROP_MODE_2 = 0x2, 3109 MF_DROP_MODE_3 = 0x3, 3110 MF_DROP_MODE_4 = 0x4, 3111 MF_DROP_MODE_5 = 0x5, 3112 MF_NUM_DROP_MODES = 0x6 3113 } MF_QUALITY_DROP_MODE; 3114 typedef enum _MF_QUALITY_LEVEL { 3115 MF_QUALITY_NORMAL = 0x0, 3116 MF_QUALITY_NORMAL_MINUS_1 = 0x1, 3117 MF_QUALITY_NORMAL_MINUS_2 = 0x2, 3118 MF_QUALITY_NORMAL_MINUS_3 = 0x3, 3119 MF_QUALITY_NORMAL_MINUS_4 = 0x4, 3120 MF_QUALITY_NORMAL_MINUS_5 = 0x5, 3121 MF_NUM_QUALITY_LEVELS = 0x6 3122 } MF_QUALITY_LEVEL; 3123 typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS { 3124 MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x0, 3125 MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x1, 3126 MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x2 3127 } MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS; 3128 typedef enum _MF_TOPONODE_DRAIN_MODE { 3129 MF_TOPONODE_DRAIN_DEFAULT = 0, 3130 MF_TOPONODE_DRAIN_ALWAYS = 1, 3131 MF_TOPONODE_DRAIN_NEVER = 2 3132 } MF_TOPONODE_DRAIN_MODE; 3133 typedef enum _MF_TOPONODE_FLUSH_MODE { 3134 MF_TOPONODE_FLUSH_ALWAYS = 0, 3135 MF_TOPONODE_FLUSH_SEEK = 1, 3136 MF_TOPONODE_FLUSH_NEVER = 2 3137 } MF_TOPONODE_FLUSH_MODE; 3138 #if (WINVER >= 0x0601) 3139 typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS { 3140 MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0, 3141 MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1 3142 } MF_TRANSCODE_TOPOLOGYMODE_FLAGS; 3143 #endif 3144 typedef enum __WIDL_mfidl_generated_name_0000002E { 3145 MF_LICENSE_URL_UNTRUSTED = 0, 3146 MF_LICENSE_URL_TRUSTED = 1, 3147 MF_LICENSE_URL_TAMPERED = 2 3148 } MF_URL_TRUST_STATUS; 3149 typedef enum _MFCLOCK_RELATIONAL_FLAGS { 3150 MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1 3151 } MFCLOCK_RELATIONAL_FLAGS; 3152 typedef enum _MFMEDIASOURCE_CHARACTERISTICS { 3153 MFMEDIASOURCE_IS_LIVE = 0x1, 3154 MFMEDIASOURCE_CAN_SEEK = 0x2, 3155 MFMEDIASOURCE_CAN_PAUSE = 0x4, 3156 MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8, 3157 MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10, 3158 MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20, 3159 MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40 3160 } MFMEDIASOURCE_CHARACTERISTICS; 3161 typedef enum _MFNET_PROXYSETTINGS { 3162 MFNET_PROXYSETTING_NONE = 0, 3163 MFNET_PROXYSETTING_MANUAL = 1, 3164 MFNET_PROXYSETTING_AUTO = 2, 3165 MFNET_PROXYSETTING_BROWSER = 3 3166 } MFNET_PROXYSETTINGS; 3167 typedef enum _MFNetAuthenticationFlags { 3168 MFNET_AUTHENTICATION_PROXY = 0x1, 3169 MFNET_AUTHENTICATION_CLEAR_TEXT = 0x2, 3170 MFNET_AUTHENTICATION_LOGGED_ON_USER = 0x4 3171 } MFNetAuthenticationFlags; 3172 typedef enum _MFNetCredentialOptions { 3173 MFNET_CREDENTIAL_SAVE = 0x1, 3174 MFNET_CREDENTIAL_DONT_CACHE = 0x2, 3175 MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x4 3176 } MFNetCredentialOptions; 3177 typedef enum _MFNetCredentialRequirements { 3178 REQUIRE_PROMPT = 0x1, 3179 REQUIRE_SAVE_SELECTED = 0x2 3180 } MFNetCredentialRequirements; 3181 typedef enum _MFNETSOURCE_CACHE_STATE { 3182 MFNETSOURCE_CACHE_UNAVAILABLE = 0, 3183 MFNETSOURCE_CACHE_ACTIVE_WRITING = 1, 3184 MFNETSOURCE_CACHE_ACTIVE_COMPLETE = 2 3185 } MFNETSOURCE_CACHE_STATE; 3186 typedef enum _MFNETSOURCE_PROTOCOL_TYPE { 3187 MFNETSOURCE_UNDEFINED = 0x0, 3188 MFNETSOURCE_HTTP = 0x1, 3189 MFNETSOURCE_RTSP = 0x2, 3190 MFNETSOURCE_FILE = 0x3, 3191 MFNETSOURCE_MULTICAST = 0x4 3192 } MFNETSOURCE_PROTOCOL_TYPE; 3193 typedef enum _MFNETSOURCE_STATISTICS_IDS { 3194 MFNETSOURCE_RECVPACKETS_ID = 0, 3195 MFNETSOURCE_LOSTPACKETS_ID = 1, 3196 MFNETSOURCE_RESENDSREQUESTED_ID = 2, 3197 MFNETSOURCE_RESENDSRECEIVED_ID = 3, 3198 MFNETSOURCE_RECOVEREDBYECCPACKETS_ID = 4, 3199 MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID = 5, 3200 MFNETSOURCE_OUTPACKETS_ID = 6, 3201 MFNETSOURCE_RECVRATE_ID = 7, 3202 MFNETSOURCE_AVGBANDWIDTHBPS_ID = 8, 3203 MFNETSOURCE_BYTESRECEIVED_ID = 9, 3204 MFNETSOURCE_PROTOCOL_ID = 10, 3205 MFNETSOURCE_TRANSPORT_ID = 11, 3206 MFNETSOURCE_CACHE_STATE_ID = 12, 3207 MFNETSOURCE_LINKBANDWIDTH_ID = 13, 3208 MFNETSOURCE_CONTENTBITRATE_ID = 14, 3209 MFNETSOURCE_SPEEDFACTOR_ID = 15, 3210 MFNETSOURCE_BUFFERSIZE_ID = 16, 3211 MFNETSOURCE_BUFFERPROGRESS_ID = 17, 3212 MFNETSOURCE_LASTBWSWITCHTS_ID = 18, 3213 MFNETSOURCE_SEEKRANGESTART_ID = 19, 3214 MFNETSOURCE_SEEKRANGEEND_ID = 20, 3215 MFNETSOURCE_BUFFERINGCOUNT_ID = 21, 3216 MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID = 22, 3217 MFNETSOURCE_SIGNEDSESSION_ID = 23, 3218 MFNETSOURCE_MAXBITRATE_ID = 24, 3219 MFNETSOURCE_RECEPTION_QUALITY_ID = 25, 3220 MFNETSOURCE_RECOVEREDPACKETS_ID = 26, 3221 MFNETSOURCE_VBR_ID = 27, 3222 MFNETSOURCE_DOWNLOADPROGRESS_ID = 28 3223 } MFNETSOURCE_STATISTICS_IDS; 3224 typedef enum _MFNETSOURCE_TRANSPORT_TYPE { 3225 MFNETSOURCE_UDP = 0, 3226 MFNETSOURCE_TCP = 1 3227 } MFNETSOURCE_TRANSPORT_TYPE; 3228 typedef enum MF_OBJECT_TYPE { 3229 MF_OBJECT_MEDIASOURCE = 0, 3230 MF_OBJECT_BYTESTREAM = 1, 3231 MF_OBJECT_INVALID = 2 3232 } MF_OBJECT_TYPE; 3233 typedef enum _MFPOLICYMANAGER_ACTION { 3234 PEACTION_NO = 0, 3235 PEACTION_PLAY = 1, 3236 PEACTION_COPY = 2, 3237 PEACTION_EXPORT = 3, 3238 PEACTION_EXTRACT = 4, 3239 PEACTION_RESERVED1 = 5, 3240 PEACTION_RESERVED2 = 6, 3241 PEACTION_RESERVED3 = 7, 3242 PEACTION_LAST = 7 3243 } MFPOLICYMANAGER_ACTION; 3244 typedef enum _MFRATE_DIRECTION { 3245 MFRATE_FORWARD = 0, 3246 MFRATE_REVERSE = 1 3247 } MFRATE_DIRECTION; 3248 typedef enum _MFSequencerTopologyFlags { 3249 SequencerTopologyFlags_Last = 0x1 3250 } MFSequencerTopologyFlags; 3251 typedef enum _MFSHUTDOWN_STATUS { 3252 MFSHUTDOWN_INITIATED = 0, 3253 MFSHUTDOWN_COMPLETED = 1 3254 } MFSHUTDOWN_STATUS; 3255 typedef enum MFSTREAMSINK_MARKER_TYPE { 3256 MFSTREAMSINK_MARKER_DEFAULT = 0, 3257 MFSTREAMSINK_MARKER_ENDOFSEGMENT = 1, 3258 MFSTREAMSINK_MARKER_TICK = 2, 3259 MFSTREAMSINK_MARKER_EVENT = 3 3260 } MFSTREAMSINK_MARKER_TYPE; 3261 typedef enum MFTIMER_FLAGS { 3262 MFTIMER_RELATIVE = 0x1 3263 } MFTIMER_FLAGS; 3264 #if (WINVER >= 0x0601) 3265 typedef enum MFTOPOLOGY_DXVA_MODE { 3266 MFTOPOLOGY_DXVA_DEFAULT = 0, 3267 MFTOPOLOGY_DXVA_NONE = 1, 3268 MFTOPOLOGY_DXVA_FULL = 2 3269 } MFTOPOLOGY_DXVA_MODE; 3270 typedef enum MFTOPOLOGY_HARDWARE_MODE { 3271 MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0, 3272 MFTOPOLOGY_HWMODE_USE_HARDWARE = 1 3273 } MFTOPOLOGY_HARDWARE_MODE; 3274 typedef struct _MFT_REGISTRATION_INFO { 3275 CLSID clsid; 3276 GUID guidCategory; 3277 UINT32 uiFlags; 3278 LPCWSTR pszName; 3279 DWORD cInTypes; 3280 MFT_REGISTER_TYPE_INFO *pInTypes; 3281 DWORD cOutTypes; 3282 MFT_REGISTER_TYPE_INFO *pOutTypes; 3283 } MFT_REGISTRATION_INFO; 3284 #endif /*(WINVER >= 0x0601)*/ 3285 typedef struct _ASFFlatPicture { 3286 BYTE bPictureType; 3287 DWORD dwDataLen; 3288 } ASF_FLAT_PICTURE; 3289 3290 typedef struct _ASFFlatSynchronisedLyrics { 3291 BYTE bTimeStampFormat; 3292 BYTE bContentType; 3293 DWORD dwLyricsLen; 3294 } ASF_FLAT_SYNCHRONISED_LYRICS; 3295 typedef enum SAMPLE_PROTECTION_VERSION { 3296 SAMPLE_PROTECTION_VERSION_NO = 0, 3297 SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1, 3298 SAMPLE_PROTECTION_VERSION_SCATTER = 2, 3299 SAMPLE_PROTECTION_VERSION_RC4 = 3 3300 } SAMPLE_PROTECTION_VERSION; 3301 typedef struct _MFINPUTTRUSTAUTHORITY_ACTION { 3302 MFPOLICYMANAGER_ACTION Action; 3303 BYTE *pbTicket; 3304 DWORD cbTicket; 3305 } MFINPUTTRUSTAUTHORITY_ACCESS_ACTION; 3306 typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS { 3307 DWORD dwSize; 3308 DWORD dwVer; 3309 DWORD cbSignatureOffset; 3310 DWORD cbSignatureSize; 3311 DWORD cbExtensionOffset; 3312 DWORD cbExtensionSize; 3313 DWORD cActions; 3314 MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1]; 3315 } MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS; 3316 typedef struct _MFNetCredentialManagerGetParam { 3317 HRESULT hrOp; 3318 WINBOOL fAllowLoggedOnUser; 3319 WINBOOL fClearTextPackage; 3320 LPCWSTR pszUrl; 3321 LPCWSTR pszSite; 3322 LPCWSTR pszRealm; 3323 LPCWSTR pszPackage; 3324 LONG nRetries; 3325 } MFNetCredentialManagerGetParam; 3326 #define MEDIASINK_FIXED_STREAMS 0x00000001 3327 #define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002 3328 #define MEDIASINK_RATELESS 0x00000004 3329 #define MEDIASINK_CLOCK_REQUIRED 0x00000008 3330 #define MEDIASINK_CAN_PREROLL 0x00000010 3331 #define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020 3332 enum { 3333 MF_RESOLUTION_MEDIASOURCE = 0x1, 3334 MF_RESOLUTION_BYTESTREAM = 0x2, 3335 MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 0x10, 3336 MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL = 0x20, 3337 MF_RESOLUTION_READ = 0x10000, 3338 MF_RESOLUTION_WRITE = 0x20000 3339 }; 3340 #ifndef __IMFASFContentInfo_FWD_DEFINED__ 3341 #define __IMFASFContentInfo_FWD_DEFINED__ 3342 typedef interface IMFASFContentInfo IMFASFContentInfo; 3343 #ifdef __cplusplus 3344 interface IMFASFContentInfo; 3345 #endif /* __cplusplus */ 3346 #endif 3347 3348 #ifndef __IMFASFIndexer_FWD_DEFINED__ 3349 #define __IMFASFIndexer_FWD_DEFINED__ 3350 typedef interface IMFASFIndexer IMFASFIndexer; 3351 #ifdef __cplusplus 3352 interface IMFASFIndexer; 3353 #endif /* __cplusplus */ 3354 #endif 3355 3356 #ifndef __IMFASFMultiplexer_FWD_DEFINED__ 3357 #define __IMFASFMultiplexer_FWD_DEFINED__ 3358 typedef interface IMFASFMultiplexer IMFASFMultiplexer; 3359 #ifdef __cplusplus 3360 interface IMFASFMultiplexer; 3361 #endif /* __cplusplus */ 3362 #endif 3363 3364 #ifndef __IMFASFProfile_FWD_DEFINED__ 3365 #define __IMFASFProfile_FWD_DEFINED__ 3366 typedef interface IMFASFProfile IMFASFProfile; 3367 #ifdef __cplusplus 3368 interface IMFASFProfile; 3369 #endif /* __cplusplus */ 3370 #endif 3371 3372 #ifndef __IMFASFSplitter_FWD_DEFINED__ 3373 #define __IMFASFSplitter_FWD_DEFINED__ 3374 typedef interface IMFASFSplitter IMFASFSplitter; 3375 #ifdef __cplusplus 3376 interface IMFASFSplitter; 3377 #endif /* __cplusplus */ 3378 #endif 3379 3380 #ifndef __IMFPMPServer_FWD_DEFINED__ 3381 #define __IMFPMPServer_FWD_DEFINED__ 3382 typedef interface IMFPMPServer IMFPMPServer; 3383 #ifdef __cplusplus 3384 interface IMFPMPServer; 3385 #endif /* __cplusplus */ 3386 #endif 3387 3388 #ifndef __IMFPresentationClock_FWD_DEFINED__ 3389 #define __IMFPresentationClock_FWD_DEFINED__ 3390 typedef interface IMFPresentationClock IMFPresentationClock; 3391 #ifdef __cplusplus 3392 interface IMFPresentationClock; 3393 #endif /* __cplusplus */ 3394 #endif 3395 3396 #ifndef __IMFNetProxyLocator_FWD_DEFINED__ 3397 #define __IMFNetProxyLocator_FWD_DEFINED__ 3398 typedef interface IMFNetProxyLocator IMFNetProxyLocator; 3399 #ifdef __cplusplus 3400 interface IMFNetProxyLocator; 3401 #endif /* __cplusplus */ 3402 #endif 3403 3404 #ifndef __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3405 #define __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3406 typedef interface IMFRemoteDesktopPlugin IMFRemoteDesktopPlugin; 3407 #ifdef __cplusplus 3408 interface IMFRemoteDesktopPlugin; 3409 #endif /* __cplusplus */ 3410 #endif 3411 3412 #ifndef __IMFTransform_FWD_DEFINED__ 3413 #define __IMFTransform_FWD_DEFINED__ 3414 typedef interface IMFTransform IMFTransform; 3415 #ifdef __cplusplus 3416 interface IMFTransform; 3417 #endif /* __cplusplus */ 3418 #endif 3419 3420 #ifndef __IMFSequencerSource_FWD_DEFINED__ 3421 #define __IMFSequencerSource_FWD_DEFINED__ 3422 typedef interface IMFSequencerSource IMFSequencerSource; 3423 #ifdef __cplusplus 3424 interface IMFSequencerSource; 3425 #endif /* __cplusplus */ 3426 #endif 3427 3428 #ifndef __IMFStreamSink_FWD_DEFINED__ 3429 #define __IMFStreamSink_FWD_DEFINED__ 3430 typedef interface IMFStreamSink IMFStreamSink; 3431 #ifdef __cplusplus 3432 interface IMFStreamSink; 3433 #endif /* __cplusplus */ 3434 #endif 3435 3436 #ifndef __IMFQualityManager_FWD_DEFINED__ 3437 #define __IMFQualityManager_FWD_DEFINED__ 3438 typedef interface IMFQualityManager IMFQualityManager; 3439 #ifdef __cplusplus 3440 interface IMFQualityManager; 3441 #endif /* __cplusplus */ 3442 #endif 3443 3444 #ifndef __IMFTranscodeProfile_FWD_DEFINED__ 3445 #define __IMFTranscodeProfile_FWD_DEFINED__ 3446 typedef interface IMFTranscodeProfile IMFTranscodeProfile; 3447 #ifdef __cplusplus 3448 interface IMFTranscodeProfile; 3449 #endif /* __cplusplus */ 3450 #endif 3451 3452 /***************************************************************************** 3453 * IMFAudioStreamVolume interface 3454 */ 3455 #ifndef __IMFAudioStreamVolume_INTERFACE_DEFINED__ 3456 #define __IMFAudioStreamVolume_INTERFACE_DEFINED__ 3457 3458 DEFINE_GUID(IID_IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93); 3459 #if defined(__cplusplus) && !defined(CINTERFACE) 3460 MIDL_INTERFACE("76b1bbdb-4ec8-4f36-b106-70a9316df593") 3461 IMFAudioStreamVolume : public IUnknown 3462 { 3463 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 3464 UINT32 *pdwCount) = 0; 3465 3466 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 3467 UINT32 dwIndex, 3468 const float fLevel) = 0; 3469 3470 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 3471 UINT32 dwIndex, 3472 float *pfLevel) = 0; 3473 3474 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 3475 UINT32 dwCount, 3476 const float *pfVolumes) = 0; 3477 3478 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 3479 UINT32 dwCount, 3480 float *pfVolumes) = 0; 3481 3482 }; 3483 #ifdef __CRT_UUID_DECL 3484 __CRT_UUID_DECL(IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93) 3485 #endif 3486 #else 3487 typedef struct IMFAudioStreamVolumeVtbl { 3488 BEGIN_INTERFACE 3489 3490 /*** IUnknown methods ***/ 3491 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3492 IMFAudioStreamVolume *This, 3493 REFIID riid, 3494 void **ppvObject); 3495 3496 ULONG (STDMETHODCALLTYPE *AddRef)( 3497 IMFAudioStreamVolume *This); 3498 3499 ULONG (STDMETHODCALLTYPE *Release)( 3500 IMFAudioStreamVolume *This); 3501 3502 /*** IMFAudioStreamVolume methods ***/ 3503 HRESULT (STDMETHODCALLTYPE *GetChannelCount)( 3504 IMFAudioStreamVolume *This, 3505 UINT32 *pdwCount); 3506 3507 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)( 3508 IMFAudioStreamVolume *This, 3509 UINT32 dwIndex, 3510 const float fLevel); 3511 3512 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)( 3513 IMFAudioStreamVolume *This, 3514 UINT32 dwIndex, 3515 float *pfLevel); 3516 3517 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)( 3518 IMFAudioStreamVolume *This, 3519 UINT32 dwCount, 3520 const float *pfVolumes); 3521 3522 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)( 3523 IMFAudioStreamVolume *This, 3524 UINT32 dwCount, 3525 float *pfVolumes); 3526 3527 END_INTERFACE 3528 } IMFAudioStreamVolumeVtbl; 3529 3530 interface IMFAudioStreamVolume { 3531 CONST_VTBL IMFAudioStreamVolumeVtbl* lpVtbl; 3532 }; 3533 3534 #ifdef COBJMACROS 3535 #ifndef WIDL_C_INLINE_WRAPPERS 3536 /*** IUnknown methods ***/ 3537 #define IMFAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3538 #define IMFAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This) 3539 #define IMFAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This) 3540 /*** IMFAudioStreamVolume methods ***/ 3541 #define IMFAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount) 3542 #define IMFAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel) 3543 #define IMFAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel) 3544 #define IMFAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes) 3545 #define IMFAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes) 3546 #else 3547 /*** IUnknown methods ***/ 3548 static FORCEINLINE HRESULT IMFAudioStreamVolume_QueryInterface(IMFAudioStreamVolume* This,REFIID riid,void **ppvObject) { 3549 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3550 } 3551 static FORCEINLINE ULONG IMFAudioStreamVolume_AddRef(IMFAudioStreamVolume* This) { 3552 return This->lpVtbl->AddRef(This); 3553 } 3554 static FORCEINLINE ULONG IMFAudioStreamVolume_Release(IMFAudioStreamVolume* This) { 3555 return This->lpVtbl->Release(This); 3556 } 3557 /*** IMFAudioStreamVolume methods ***/ 3558 static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelCount(IMFAudioStreamVolume* This,UINT32 *pdwCount) { 3559 return This->lpVtbl->GetChannelCount(This,pdwCount); 3560 } 3561 static FORCEINLINE HRESULT IMFAudioStreamVolume_SetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) { 3562 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel); 3563 } 3564 static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) { 3565 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel); 3566 } 3567 static FORCEINLINE HRESULT IMFAudioStreamVolume_SetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) { 3568 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes); 3569 } 3570 static FORCEINLINE HRESULT IMFAudioStreamVolume_GetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) { 3571 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes); 3572 } 3573 #endif 3574 #endif 3575 3576 #endif 3577 3578 3579 #endif /* __IMFAudioStreamVolume_INTERFACE_DEFINED__ */ 3580 3581 /***************************************************************************** 3582 * IMFMediaSink interface 3583 */ 3584 #ifndef __IMFMediaSink_INTERFACE_DEFINED__ 3585 #define __IMFMediaSink_INTERFACE_DEFINED__ 3586 3587 DEFINE_GUID(IID_IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c); 3588 #if defined(__cplusplus) && !defined(CINTERFACE) 3589 MIDL_INTERFACE("6ef2a660-47c0-4666-b13d-cbb717f2fa2c") 3590 IMFMediaSink : public IUnknown 3591 { 3592 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 3593 DWORD *pdwCharacteristics) = 0; 3594 3595 virtual HRESULT STDMETHODCALLTYPE AddStreamSink( 3596 DWORD dwStreamSinkIdentifier, 3597 IMFMediaType *pMediaType, 3598 IMFStreamSink **ppStreamSink) = 0; 3599 3600 virtual HRESULT STDMETHODCALLTYPE RemoveStreamSink( 3601 DWORD dwStreamSinkIdentifier) = 0; 3602 3603 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkCount( 3604 DWORD *pcStreamSinkCount) = 0; 3605 3606 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkByIndex( 3607 DWORD dwIndex, 3608 IMFStreamSink **ppStreamSink) = 0; 3609 3610 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkById( 3611 DWORD dwStreamSinkIdentifier, 3612 IMFStreamSink **ppStreamSink) = 0; 3613 3614 virtual HRESULT STDMETHODCALLTYPE SetPresentationClock( 3615 IMFPresentationClock *pPresentationClock) = 0; 3616 3617 virtual HRESULT STDMETHODCALLTYPE GetPresentationClock( 3618 IMFPresentationClock **ppPresentationClock) = 0; 3619 3620 virtual HRESULT STDMETHODCALLTYPE Shutdown( 3621 ) = 0; 3622 3623 }; 3624 #ifdef __CRT_UUID_DECL 3625 __CRT_UUID_DECL(IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c) 3626 #endif 3627 #else 3628 typedef struct IMFMediaSinkVtbl { 3629 BEGIN_INTERFACE 3630 3631 /*** IUnknown methods ***/ 3632 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3633 IMFMediaSink *This, 3634 REFIID riid, 3635 void **ppvObject); 3636 3637 ULONG (STDMETHODCALLTYPE *AddRef)( 3638 IMFMediaSink *This); 3639 3640 ULONG (STDMETHODCALLTYPE *Release)( 3641 IMFMediaSink *This); 3642 3643 /*** IMFMediaSink methods ***/ 3644 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( 3645 IMFMediaSink *This, 3646 DWORD *pdwCharacteristics); 3647 3648 HRESULT (STDMETHODCALLTYPE *AddStreamSink)( 3649 IMFMediaSink *This, 3650 DWORD dwStreamSinkIdentifier, 3651 IMFMediaType *pMediaType, 3652 IMFStreamSink **ppStreamSink); 3653 3654 HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)( 3655 IMFMediaSink *This, 3656 DWORD dwStreamSinkIdentifier); 3657 3658 HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)( 3659 IMFMediaSink *This, 3660 DWORD *pcStreamSinkCount); 3661 3662 HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)( 3663 IMFMediaSink *This, 3664 DWORD dwIndex, 3665 IMFStreamSink **ppStreamSink); 3666 3667 HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)( 3668 IMFMediaSink *This, 3669 DWORD dwStreamSinkIdentifier, 3670 IMFStreamSink **ppStreamSink); 3671 3672 HRESULT (STDMETHODCALLTYPE *SetPresentationClock)( 3673 IMFMediaSink *This, 3674 IMFPresentationClock *pPresentationClock); 3675 3676 HRESULT (STDMETHODCALLTYPE *GetPresentationClock)( 3677 IMFMediaSink *This, 3678 IMFPresentationClock **ppPresentationClock); 3679 3680 HRESULT (STDMETHODCALLTYPE *Shutdown)( 3681 IMFMediaSink *This); 3682 3683 END_INTERFACE 3684 } IMFMediaSinkVtbl; 3685 3686 interface IMFMediaSink { 3687 CONST_VTBL IMFMediaSinkVtbl* lpVtbl; 3688 }; 3689 3690 #ifdef COBJMACROS 3691 #ifndef WIDL_C_INLINE_WRAPPERS 3692 /*** IUnknown methods ***/ 3693 #define IMFMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3694 #define IMFMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This) 3695 #define IMFMediaSink_Release(This) (This)->lpVtbl->Release(This) 3696 /*** IMFMediaSink methods ***/ 3697 #define IMFMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) 3698 #define IMFMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) 3699 #define IMFMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier) 3700 #define IMFMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount) 3701 #define IMFMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink) 3702 #define IMFMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) 3703 #define IMFMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock) 3704 #define IMFMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock) 3705 #define IMFMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This) 3706 #else 3707 /*** IUnknown methods ***/ 3708 static FORCEINLINE HRESULT IMFMediaSink_QueryInterface(IMFMediaSink* This,REFIID riid,void **ppvObject) { 3709 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3710 } 3711 static FORCEINLINE ULONG IMFMediaSink_AddRef(IMFMediaSink* This) { 3712 return This->lpVtbl->AddRef(This); 3713 } 3714 static FORCEINLINE ULONG IMFMediaSink_Release(IMFMediaSink* This) { 3715 return This->lpVtbl->Release(This); 3716 } 3717 /*** IMFMediaSink methods ***/ 3718 static FORCEINLINE HRESULT IMFMediaSink_GetCharacteristics(IMFMediaSink* This,DWORD *pdwCharacteristics) { 3719 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 3720 } 3721 static FORCEINLINE HRESULT IMFMediaSink_AddStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) { 3722 return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink); 3723 } 3724 static FORCEINLINE HRESULT IMFMediaSink_RemoveStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier) { 3725 return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier); 3726 } 3727 static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkCount(IMFMediaSink* This,DWORD *pcStreamSinkCount) { 3728 return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount); 3729 } 3730 static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkByIndex(IMFMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) { 3731 return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink); 3732 } 3733 static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkById(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) { 3734 return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink); 3735 } 3736 static FORCEINLINE HRESULT IMFMediaSink_SetPresentationClock(IMFMediaSink* This,IMFPresentationClock *pPresentationClock) { 3737 return This->lpVtbl->SetPresentationClock(This,pPresentationClock); 3738 } 3739 static FORCEINLINE HRESULT IMFMediaSink_GetPresentationClock(IMFMediaSink* This,IMFPresentationClock **ppPresentationClock) { 3740 return This->lpVtbl->GetPresentationClock(This,ppPresentationClock); 3741 } 3742 static FORCEINLINE HRESULT IMFMediaSink_Shutdown(IMFMediaSink* This) { 3743 return This->lpVtbl->Shutdown(This); 3744 } 3745 #endif 3746 #endif 3747 3748 #endif 3749 3750 3751 #endif /* __IMFMediaSink_INTERFACE_DEFINED__ */ 3752 3753 /***************************************************************************** 3754 * IMFFinalizableMediaSink interface 3755 */ 3756 #ifndef __IMFFinalizableMediaSink_INTERFACE_DEFINED__ 3757 #define __IMFFinalizableMediaSink_INTERFACE_DEFINED__ 3758 3759 DEFINE_GUID(IID_IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7); 3760 #if defined(__cplusplus) && !defined(CINTERFACE) 3761 MIDL_INTERFACE("eaecb74a-9a50-42ce-9541-6a7f57aa4ad7") 3762 IMFFinalizableMediaSink : public IMFMediaSink 3763 { 3764 virtual HRESULT STDMETHODCALLTYPE BeginFinalize( 3765 IMFAsyncCallback *pCallback, 3766 IUnknown *punkState) = 0; 3767 3768 virtual HRESULT STDMETHODCALLTYPE EndFinalize( 3769 IMFAsyncResult *pResult) = 0; 3770 3771 }; 3772 #ifdef __CRT_UUID_DECL 3773 __CRT_UUID_DECL(IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7) 3774 #endif 3775 #else 3776 typedef struct IMFFinalizableMediaSinkVtbl { 3777 BEGIN_INTERFACE 3778 3779 /*** IUnknown methods ***/ 3780 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3781 IMFFinalizableMediaSink *This, 3782 REFIID riid, 3783 void **ppvObject); 3784 3785 ULONG (STDMETHODCALLTYPE *AddRef)( 3786 IMFFinalizableMediaSink *This); 3787 3788 ULONG (STDMETHODCALLTYPE *Release)( 3789 IMFFinalizableMediaSink *This); 3790 3791 /*** IMFMediaSink methods ***/ 3792 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( 3793 IMFFinalizableMediaSink *This, 3794 DWORD *pdwCharacteristics); 3795 3796 HRESULT (STDMETHODCALLTYPE *AddStreamSink)( 3797 IMFFinalizableMediaSink *This, 3798 DWORD dwStreamSinkIdentifier, 3799 IMFMediaType *pMediaType, 3800 IMFStreamSink **ppStreamSink); 3801 3802 HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)( 3803 IMFFinalizableMediaSink *This, 3804 DWORD dwStreamSinkIdentifier); 3805 3806 HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)( 3807 IMFFinalizableMediaSink *This, 3808 DWORD *pcStreamSinkCount); 3809 3810 HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)( 3811 IMFFinalizableMediaSink *This, 3812 DWORD dwIndex, 3813 IMFStreamSink **ppStreamSink); 3814 3815 HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)( 3816 IMFFinalizableMediaSink *This, 3817 DWORD dwStreamSinkIdentifier, 3818 IMFStreamSink **ppStreamSink); 3819 3820 HRESULT (STDMETHODCALLTYPE *SetPresentationClock)( 3821 IMFFinalizableMediaSink *This, 3822 IMFPresentationClock *pPresentationClock); 3823 3824 HRESULT (STDMETHODCALLTYPE *GetPresentationClock)( 3825 IMFFinalizableMediaSink *This, 3826 IMFPresentationClock **ppPresentationClock); 3827 3828 HRESULT (STDMETHODCALLTYPE *Shutdown)( 3829 IMFFinalizableMediaSink *This); 3830 3831 /*** IMFFinalizableMediaSink methods ***/ 3832 HRESULT (STDMETHODCALLTYPE *BeginFinalize)( 3833 IMFFinalizableMediaSink *This, 3834 IMFAsyncCallback *pCallback, 3835 IUnknown *punkState); 3836 3837 HRESULT (STDMETHODCALLTYPE *EndFinalize)( 3838 IMFFinalizableMediaSink *This, 3839 IMFAsyncResult *pResult); 3840 3841 END_INTERFACE 3842 } IMFFinalizableMediaSinkVtbl; 3843 3844 interface IMFFinalizableMediaSink { 3845 CONST_VTBL IMFFinalizableMediaSinkVtbl* lpVtbl; 3846 }; 3847 3848 #ifdef COBJMACROS 3849 #ifndef WIDL_C_INLINE_WRAPPERS 3850 /*** IUnknown methods ***/ 3851 #define IMFFinalizableMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3852 #define IMFFinalizableMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This) 3853 #define IMFFinalizableMediaSink_Release(This) (This)->lpVtbl->Release(This) 3854 /*** IMFMediaSink methods ***/ 3855 #define IMFFinalizableMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) 3856 #define IMFFinalizableMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) 3857 #define IMFFinalizableMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier) 3858 #define IMFFinalizableMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount) 3859 #define IMFFinalizableMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink) 3860 #define IMFFinalizableMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) 3861 #define IMFFinalizableMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock) 3862 #define IMFFinalizableMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock) 3863 #define IMFFinalizableMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This) 3864 /*** IMFFinalizableMediaSink methods ***/ 3865 #define IMFFinalizableMediaSink_BeginFinalize(This,pCallback,punkState) (This)->lpVtbl->BeginFinalize(This,pCallback,punkState) 3866 #define IMFFinalizableMediaSink_EndFinalize(This,pResult) (This)->lpVtbl->EndFinalize(This,pResult) 3867 #else 3868 /*** IUnknown methods ***/ 3869 static FORCEINLINE HRESULT IMFFinalizableMediaSink_QueryInterface(IMFFinalizableMediaSink* This,REFIID riid,void **ppvObject) { 3870 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3871 } 3872 static FORCEINLINE ULONG IMFFinalizableMediaSink_AddRef(IMFFinalizableMediaSink* This) { 3873 return This->lpVtbl->AddRef(This); 3874 } 3875 static FORCEINLINE ULONG IMFFinalizableMediaSink_Release(IMFFinalizableMediaSink* This) { 3876 return This->lpVtbl->Release(This); 3877 } 3878 /*** IMFMediaSink methods ***/ 3879 static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetCharacteristics(IMFFinalizableMediaSink* This,DWORD *pdwCharacteristics) { 3880 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 3881 } 3882 static FORCEINLINE HRESULT IMFFinalizableMediaSink_AddStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) { 3883 return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink); 3884 } 3885 static FORCEINLINE HRESULT IMFFinalizableMediaSink_RemoveStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier) { 3886 return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier); 3887 } 3888 static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkCount(IMFFinalizableMediaSink* This,DWORD *pcStreamSinkCount) { 3889 return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount); 3890 } 3891 static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkByIndex(IMFFinalizableMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) { 3892 return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink); 3893 } 3894 static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkById(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) { 3895 return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink); 3896 } 3897 static FORCEINLINE HRESULT IMFFinalizableMediaSink_SetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock *pPresentationClock) { 3898 return This->lpVtbl->SetPresentationClock(This,pPresentationClock); 3899 } 3900 static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock **ppPresentationClock) { 3901 return This->lpVtbl->GetPresentationClock(This,ppPresentationClock); 3902 } 3903 static FORCEINLINE HRESULT IMFFinalizableMediaSink_Shutdown(IMFFinalizableMediaSink* This) { 3904 return This->lpVtbl->Shutdown(This); 3905 } 3906 /*** IMFFinalizableMediaSink methods ***/ 3907 static FORCEINLINE HRESULT IMFFinalizableMediaSink_BeginFinalize(IMFFinalizableMediaSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 3908 return This->lpVtbl->BeginFinalize(This,pCallback,punkState); 3909 } 3910 static FORCEINLINE HRESULT IMFFinalizableMediaSink_EndFinalize(IMFFinalizableMediaSink* This,IMFAsyncResult *pResult) { 3911 return This->lpVtbl->EndFinalize(This,pResult); 3912 } 3913 #endif 3914 #endif 3915 3916 #endif 3917 3918 3919 #endif /* __IMFFinalizableMediaSink_INTERFACE_DEFINED__ */ 3920 3921 /***************************************************************************** 3922 * IMFMediaSinkPreroll interface 3923 */ 3924 #ifndef __IMFMediaSinkPreroll_INTERFACE_DEFINED__ 3925 #define __IMFMediaSinkPreroll_INTERFACE_DEFINED__ 3926 3927 DEFINE_GUID(IID_IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88); 3928 #if defined(__cplusplus) && !defined(CINTERFACE) 3929 MIDL_INTERFACE("5dfd4b2a-7674-4110-a4e6-8a68fd5f3688") 3930 IMFMediaSinkPreroll : public IUnknown 3931 { 3932 virtual HRESULT STDMETHODCALLTYPE NotifyPreroll( 3933 MFTIME hnsUpcomingStartTime) = 0; 3934 3935 }; 3936 #ifdef __CRT_UUID_DECL 3937 __CRT_UUID_DECL(IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88) 3938 #endif 3939 #else 3940 typedef struct IMFMediaSinkPrerollVtbl { 3941 BEGIN_INTERFACE 3942 3943 /*** IUnknown methods ***/ 3944 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3945 IMFMediaSinkPreroll *This, 3946 REFIID riid, 3947 void **ppvObject); 3948 3949 ULONG (STDMETHODCALLTYPE *AddRef)( 3950 IMFMediaSinkPreroll *This); 3951 3952 ULONG (STDMETHODCALLTYPE *Release)( 3953 IMFMediaSinkPreroll *This); 3954 3955 /*** IMFMediaSinkPreroll methods ***/ 3956 HRESULT (STDMETHODCALLTYPE *NotifyPreroll)( 3957 IMFMediaSinkPreroll *This, 3958 MFTIME hnsUpcomingStartTime); 3959 3960 END_INTERFACE 3961 } IMFMediaSinkPrerollVtbl; 3962 3963 interface IMFMediaSinkPreroll { 3964 CONST_VTBL IMFMediaSinkPrerollVtbl* lpVtbl; 3965 }; 3966 3967 #ifdef COBJMACROS 3968 #ifndef WIDL_C_INLINE_WRAPPERS 3969 /*** IUnknown methods ***/ 3970 #define IMFMediaSinkPreroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3971 #define IMFMediaSinkPreroll_AddRef(This) (This)->lpVtbl->AddRef(This) 3972 #define IMFMediaSinkPreroll_Release(This) (This)->lpVtbl->Release(This) 3973 /*** IMFMediaSinkPreroll methods ***/ 3974 #define IMFMediaSinkPreroll_NotifyPreroll(This,hnsUpcomingStartTime) (This)->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime) 3975 #else 3976 /*** IUnknown methods ***/ 3977 static FORCEINLINE HRESULT IMFMediaSinkPreroll_QueryInterface(IMFMediaSinkPreroll* This,REFIID riid,void **ppvObject) { 3978 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3979 } 3980 static FORCEINLINE ULONG IMFMediaSinkPreroll_AddRef(IMFMediaSinkPreroll* This) { 3981 return This->lpVtbl->AddRef(This); 3982 } 3983 static FORCEINLINE ULONG IMFMediaSinkPreroll_Release(IMFMediaSinkPreroll* This) { 3984 return This->lpVtbl->Release(This); 3985 } 3986 /*** IMFMediaSinkPreroll methods ***/ 3987 static FORCEINLINE HRESULT IMFMediaSinkPreroll_NotifyPreroll(IMFMediaSinkPreroll* This,MFTIME hnsUpcomingStartTime) { 3988 return This->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime); 3989 } 3990 #endif 3991 #endif 3992 3993 #endif 3994 3995 3996 #endif /* __IMFMediaSinkPreroll_INTERFACE_DEFINED__ */ 3997 3998 /***************************************************************************** 3999 * IMFMediaStream interface 4000 */ 4001 #ifndef __IMFMediaStream_INTERFACE_DEFINED__ 4002 #define __IMFMediaStream_INTERFACE_DEFINED__ 4003 4004 DEFINE_GUID(IID_IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f); 4005 #if defined(__cplusplus) && !defined(CINTERFACE) 4006 MIDL_INTERFACE("d182108f-4ec6-443f-aa42-a71106ec825f") 4007 IMFMediaStream : public IMFMediaEventGenerator 4008 { 4009 virtual HRESULT STDMETHODCALLTYPE GetMediaSource( 4010 IMFMediaSource **ppMediaSource) = 0; 4011 4012 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptor( 4013 IMFStreamDescriptor **ppStreamDescriptor) = 0; 4014 4015 virtual HRESULT STDMETHODCALLTYPE RequestSample( 4016 IUnknown *pToken) = 0; 4017 4018 }; 4019 #ifdef __CRT_UUID_DECL 4020 __CRT_UUID_DECL(IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f) 4021 #endif 4022 #else 4023 typedef struct IMFMediaStreamVtbl { 4024 BEGIN_INTERFACE 4025 4026 /*** IUnknown methods ***/ 4027 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4028 IMFMediaStream *This, 4029 REFIID riid, 4030 void **ppvObject); 4031 4032 ULONG (STDMETHODCALLTYPE *AddRef)( 4033 IMFMediaStream *This); 4034 4035 ULONG (STDMETHODCALLTYPE *Release)( 4036 IMFMediaStream *This); 4037 4038 /*** IMFMediaEventGenerator methods ***/ 4039 HRESULT (STDMETHODCALLTYPE *GetEvent)( 4040 IMFMediaStream *This, 4041 DWORD dwFlags, 4042 IMFMediaEvent **ppEvent); 4043 4044 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 4045 IMFMediaStream *This, 4046 IMFAsyncCallback *pCallback, 4047 IUnknown *punkState); 4048 4049 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 4050 IMFMediaStream *This, 4051 IMFAsyncResult *pResult, 4052 IMFMediaEvent **ppEvent); 4053 4054 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 4055 IMFMediaStream *This, 4056 MediaEventType met, 4057 REFGUID guidExtendedType, 4058 HRESULT hrStatus, 4059 const PROPVARIANT *pvValue); 4060 4061 /*** IMFMediaStream methods ***/ 4062 HRESULT (STDMETHODCALLTYPE *GetMediaSource)( 4063 IMFMediaStream *This, 4064 IMFMediaSource **ppMediaSource); 4065 4066 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptor)( 4067 IMFMediaStream *This, 4068 IMFStreamDescriptor **ppStreamDescriptor); 4069 4070 HRESULT (STDMETHODCALLTYPE *RequestSample)( 4071 IMFMediaStream *This, 4072 IUnknown *pToken); 4073 4074 END_INTERFACE 4075 } IMFMediaStreamVtbl; 4076 4077 interface IMFMediaStream { 4078 CONST_VTBL IMFMediaStreamVtbl* lpVtbl; 4079 }; 4080 4081 #ifdef COBJMACROS 4082 #ifndef WIDL_C_INLINE_WRAPPERS 4083 /*** IUnknown methods ***/ 4084 #define IMFMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4085 #define IMFMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) 4086 #define IMFMediaStream_Release(This) (This)->lpVtbl->Release(This) 4087 /*** IMFMediaEventGenerator methods ***/ 4088 #define IMFMediaStream_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 4089 #define IMFMediaStream_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 4090 #define IMFMediaStream_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 4091 #define IMFMediaStream_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 4092 /*** IMFMediaStream methods ***/ 4093 #define IMFMediaStream_GetMediaSource(This,ppMediaSource) (This)->lpVtbl->GetMediaSource(This,ppMediaSource) 4094 #define IMFMediaStream_GetStreamDescriptor(This,ppStreamDescriptor) (This)->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor) 4095 #define IMFMediaStream_RequestSample(This,pToken) (This)->lpVtbl->RequestSample(This,pToken) 4096 #else 4097 /*** IUnknown methods ***/ 4098 static FORCEINLINE HRESULT IMFMediaStream_QueryInterface(IMFMediaStream* This,REFIID riid,void **ppvObject) { 4099 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4100 } 4101 static FORCEINLINE ULONG IMFMediaStream_AddRef(IMFMediaStream* This) { 4102 return This->lpVtbl->AddRef(This); 4103 } 4104 static FORCEINLINE ULONG IMFMediaStream_Release(IMFMediaStream* This) { 4105 return This->lpVtbl->Release(This); 4106 } 4107 /*** IMFMediaEventGenerator methods ***/ 4108 static FORCEINLINE HRESULT IMFMediaStream_GetEvent(IMFMediaStream* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 4109 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 4110 } 4111 static FORCEINLINE HRESULT IMFMediaStream_BeginGetEvent(IMFMediaStream* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 4112 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 4113 } 4114 static FORCEINLINE HRESULT IMFMediaStream_EndGetEvent(IMFMediaStream* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 4115 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 4116 } 4117 static FORCEINLINE HRESULT IMFMediaStream_QueueEvent(IMFMediaStream* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 4118 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 4119 } 4120 /*** IMFMediaStream methods ***/ 4121 static FORCEINLINE HRESULT IMFMediaStream_GetMediaSource(IMFMediaStream* This,IMFMediaSource **ppMediaSource) { 4122 return This->lpVtbl->GetMediaSource(This,ppMediaSource); 4123 } 4124 static FORCEINLINE HRESULT IMFMediaStream_GetStreamDescriptor(IMFMediaStream* This,IMFStreamDescriptor **ppStreamDescriptor) { 4125 return This->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor); 4126 } 4127 static FORCEINLINE HRESULT IMFMediaStream_RequestSample(IMFMediaStream* This,IUnknown *pToken) { 4128 return This->lpVtbl->RequestSample(This,pToken); 4129 } 4130 #endif 4131 #endif 4132 4133 #endif 4134 4135 HRESULT STDMETHODCALLTYPE IMFMediaStream_RemoteRequestSample_Proxy( 4136 IMFMediaStream* This); 4137 void __RPC_STUB IMFMediaStream_RemoteRequestSample_Stub( 4138 IRpcStubBuffer* This, 4139 IRpcChannelBuffer* pRpcChannelBuffer, 4140 PRPC_MESSAGE pRpcMessage, 4141 DWORD* pdwStubPhase); 4142 HRESULT CALLBACK IMFMediaStream_RequestSample_Proxy( 4143 IMFMediaStream* This, 4144 IUnknown *pToken); 4145 HRESULT __RPC_STUB IMFMediaStream_RequestSample_Stub( 4146 IMFMediaStream* This); 4147 4148 #endif /* __IMFMediaStream_INTERFACE_DEFINED__ */ 4149 4150 /***************************************************************************** 4151 * IMFMetadata interface 4152 */ 4153 #ifndef __IMFMetadata_INTERFACE_DEFINED__ 4154 #define __IMFMetadata_INTERFACE_DEFINED__ 4155 4156 DEFINE_GUID(IID_IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04); 4157 #if defined(__cplusplus) && !defined(CINTERFACE) 4158 MIDL_INTERFACE("f88cfb8c-ef16-4991-b450-cb8c69e51704") 4159 IMFMetadata : public IUnknown 4160 { 4161 virtual HRESULT STDMETHODCALLTYPE SetLanguage( 4162 LPCWSTR pwszRFC1766) = 0; 4163 4164 virtual HRESULT STDMETHODCALLTYPE GetLanguage( 4165 LPWSTR *ppwszRFC1766) = 0; 4166 4167 virtual HRESULT STDMETHODCALLTYPE GetAllLanguages( 4168 PROPVARIANT *ppvLanguages) = 0; 4169 4170 virtual HRESULT STDMETHODCALLTYPE SetProperty( 4171 LPCWSTR pwszName, 4172 const PROPVARIANT *ppvValue) = 0; 4173 4174 virtual HRESULT STDMETHODCALLTYPE GetProperty( 4175 LPCWSTR pwszName, 4176 PROPVARIANT *ppvValue) = 0; 4177 4178 virtual HRESULT STDMETHODCALLTYPE DeleteProperty( 4179 LPCWSTR pwszName) = 0; 4180 4181 virtual HRESULT STDMETHODCALLTYPE GetAllPropertyNames( 4182 PROPVARIANT *ppvNames) = 0; 4183 4184 }; 4185 #ifdef __CRT_UUID_DECL 4186 __CRT_UUID_DECL(IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04) 4187 #endif 4188 #else 4189 typedef struct IMFMetadataVtbl { 4190 BEGIN_INTERFACE 4191 4192 /*** IUnknown methods ***/ 4193 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4194 IMFMetadata *This, 4195 REFIID riid, 4196 void **ppvObject); 4197 4198 ULONG (STDMETHODCALLTYPE *AddRef)( 4199 IMFMetadata *This); 4200 4201 ULONG (STDMETHODCALLTYPE *Release)( 4202 IMFMetadata *This); 4203 4204 /*** IMFMetadata methods ***/ 4205 HRESULT (STDMETHODCALLTYPE *SetLanguage)( 4206 IMFMetadata *This, 4207 LPCWSTR pwszRFC1766); 4208 4209 HRESULT (STDMETHODCALLTYPE *GetLanguage)( 4210 IMFMetadata *This, 4211 LPWSTR *ppwszRFC1766); 4212 4213 HRESULT (STDMETHODCALLTYPE *GetAllLanguages)( 4214 IMFMetadata *This, 4215 PROPVARIANT *ppvLanguages); 4216 4217 HRESULT (STDMETHODCALLTYPE *SetProperty)( 4218 IMFMetadata *This, 4219 LPCWSTR pwszName, 4220 const PROPVARIANT *ppvValue); 4221 4222 HRESULT (STDMETHODCALLTYPE *GetProperty)( 4223 IMFMetadata *This, 4224 LPCWSTR pwszName, 4225 PROPVARIANT *ppvValue); 4226 4227 HRESULT (STDMETHODCALLTYPE *DeleteProperty)( 4228 IMFMetadata *This, 4229 LPCWSTR pwszName); 4230 4231 HRESULT (STDMETHODCALLTYPE *GetAllPropertyNames)( 4232 IMFMetadata *This, 4233 PROPVARIANT *ppvNames); 4234 4235 END_INTERFACE 4236 } IMFMetadataVtbl; 4237 4238 interface IMFMetadata { 4239 CONST_VTBL IMFMetadataVtbl* lpVtbl; 4240 }; 4241 4242 #ifdef COBJMACROS 4243 #ifndef WIDL_C_INLINE_WRAPPERS 4244 /*** IUnknown methods ***/ 4245 #define IMFMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4246 #define IMFMetadata_AddRef(This) (This)->lpVtbl->AddRef(This) 4247 #define IMFMetadata_Release(This) (This)->lpVtbl->Release(This) 4248 /*** IMFMetadata methods ***/ 4249 #define IMFMetadata_SetLanguage(This,pwszRFC1766) (This)->lpVtbl->SetLanguage(This,pwszRFC1766) 4250 #define IMFMetadata_GetLanguage(This,ppwszRFC1766) (This)->lpVtbl->GetLanguage(This,ppwszRFC1766) 4251 #define IMFMetadata_GetAllLanguages(This,ppvLanguages) (This)->lpVtbl->GetAllLanguages(This,ppvLanguages) 4252 #define IMFMetadata_SetProperty(This,pwszName,ppvValue) (This)->lpVtbl->SetProperty(This,pwszName,ppvValue) 4253 #define IMFMetadata_GetProperty(This,pwszName,ppvValue) (This)->lpVtbl->GetProperty(This,pwszName,ppvValue) 4254 #define IMFMetadata_DeleteProperty(This,pwszName) (This)->lpVtbl->DeleteProperty(This,pwszName) 4255 #define IMFMetadata_GetAllPropertyNames(This,ppvNames) (This)->lpVtbl->GetAllPropertyNames(This,ppvNames) 4256 #else 4257 /*** IUnknown methods ***/ 4258 static FORCEINLINE HRESULT IMFMetadata_QueryInterface(IMFMetadata* This,REFIID riid,void **ppvObject) { 4259 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4260 } 4261 static FORCEINLINE ULONG IMFMetadata_AddRef(IMFMetadata* This) { 4262 return This->lpVtbl->AddRef(This); 4263 } 4264 static FORCEINLINE ULONG IMFMetadata_Release(IMFMetadata* This) { 4265 return This->lpVtbl->Release(This); 4266 } 4267 /*** IMFMetadata methods ***/ 4268 static FORCEINLINE HRESULT IMFMetadata_SetLanguage(IMFMetadata* This,LPCWSTR pwszRFC1766) { 4269 return This->lpVtbl->SetLanguage(This,pwszRFC1766); 4270 } 4271 static FORCEINLINE HRESULT IMFMetadata_GetLanguage(IMFMetadata* This,LPWSTR *ppwszRFC1766) { 4272 return This->lpVtbl->GetLanguage(This,ppwszRFC1766); 4273 } 4274 static FORCEINLINE HRESULT IMFMetadata_GetAllLanguages(IMFMetadata* This,PROPVARIANT *ppvLanguages) { 4275 return This->lpVtbl->GetAllLanguages(This,ppvLanguages); 4276 } 4277 static FORCEINLINE HRESULT IMFMetadata_SetProperty(IMFMetadata* This,LPCWSTR pwszName,const PROPVARIANT *ppvValue) { 4278 return This->lpVtbl->SetProperty(This,pwszName,ppvValue); 4279 } 4280 static FORCEINLINE HRESULT IMFMetadata_GetProperty(IMFMetadata* This,LPCWSTR pwszName,PROPVARIANT *ppvValue) { 4281 return This->lpVtbl->GetProperty(This,pwszName,ppvValue); 4282 } 4283 static FORCEINLINE HRESULT IMFMetadata_DeleteProperty(IMFMetadata* This,LPCWSTR pwszName) { 4284 return This->lpVtbl->DeleteProperty(This,pwszName); 4285 } 4286 static FORCEINLINE HRESULT IMFMetadata_GetAllPropertyNames(IMFMetadata* This,PROPVARIANT *ppvNames) { 4287 return This->lpVtbl->GetAllPropertyNames(This,ppvNames); 4288 } 4289 #endif 4290 #endif 4291 4292 #endif 4293 4294 4295 #endif /* __IMFMetadata_INTERFACE_DEFINED__ */ 4296 4297 /***************************************************************************** 4298 * IMFMetadataProvider interface 4299 */ 4300 #ifndef __IMFMetadataProvider_INTERFACE_DEFINED__ 4301 #define __IMFMetadataProvider_INTERFACE_DEFINED__ 4302 4303 DEFINE_GUID(IID_IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f); 4304 #if defined(__cplusplus) && !defined(CINTERFACE) 4305 MIDL_INTERFACE("56181d2d-e221-4adb-b1c8-3cee6a53f76f") 4306 IMFMetadataProvider : public IUnknown 4307 { 4308 virtual HRESULT STDMETHODCALLTYPE GetMFMetadata( 4309 IMFPresentationDescriptor *pPresentationDescriptor, 4310 DWORD dwStreamIdentifier, 4311 DWORD dwFlags, 4312 IMFMetadata **ppMFMetadata) = 0; 4313 4314 }; 4315 #ifdef __CRT_UUID_DECL 4316 __CRT_UUID_DECL(IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f) 4317 #endif 4318 #else 4319 typedef struct IMFMetadataProviderVtbl { 4320 BEGIN_INTERFACE 4321 4322 /*** IUnknown methods ***/ 4323 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4324 IMFMetadataProvider *This, 4325 REFIID riid, 4326 void **ppvObject); 4327 4328 ULONG (STDMETHODCALLTYPE *AddRef)( 4329 IMFMetadataProvider *This); 4330 4331 ULONG (STDMETHODCALLTYPE *Release)( 4332 IMFMetadataProvider *This); 4333 4334 /*** IMFMetadataProvider methods ***/ 4335 HRESULT (STDMETHODCALLTYPE *GetMFMetadata)( 4336 IMFMetadataProvider *This, 4337 IMFPresentationDescriptor *pPresentationDescriptor, 4338 DWORD dwStreamIdentifier, 4339 DWORD dwFlags, 4340 IMFMetadata **ppMFMetadata); 4341 4342 END_INTERFACE 4343 } IMFMetadataProviderVtbl; 4344 4345 interface IMFMetadataProvider { 4346 CONST_VTBL IMFMetadataProviderVtbl* lpVtbl; 4347 }; 4348 4349 #ifdef COBJMACROS 4350 #ifndef WIDL_C_INLINE_WRAPPERS 4351 /*** IUnknown methods ***/ 4352 #define IMFMetadataProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4353 #define IMFMetadataProvider_AddRef(This) (This)->lpVtbl->AddRef(This) 4354 #define IMFMetadataProvider_Release(This) (This)->lpVtbl->Release(This) 4355 /*** IMFMetadataProvider methods ***/ 4356 #define IMFMetadataProvider_GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata) (This)->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata) 4357 #else 4358 /*** IUnknown methods ***/ 4359 static FORCEINLINE HRESULT IMFMetadataProvider_QueryInterface(IMFMetadataProvider* This,REFIID riid,void **ppvObject) { 4360 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4361 } 4362 static FORCEINLINE ULONG IMFMetadataProvider_AddRef(IMFMetadataProvider* This) { 4363 return This->lpVtbl->AddRef(This); 4364 } 4365 static FORCEINLINE ULONG IMFMetadataProvider_Release(IMFMetadataProvider* This) { 4366 return This->lpVtbl->Release(This); 4367 } 4368 /*** IMFMetadataProvider methods ***/ 4369 static FORCEINLINE HRESULT IMFMetadataProvider_GetMFMetadata(IMFMetadataProvider* This,IMFPresentationDescriptor *pPresentationDescriptor,DWORD dwStreamIdentifier,DWORD dwFlags,IMFMetadata **ppMFMetadata) { 4370 return This->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata); 4371 } 4372 #endif 4373 #endif 4374 4375 #endif 4376 4377 4378 #endif /* __IMFMetadataProvider_INTERFACE_DEFINED__ */ 4379 4380 /***************************************************************************** 4381 * IMFPresentationTimeSource interface 4382 */ 4383 #ifndef __IMFPresentationTimeSource_INTERFACE_DEFINED__ 4384 #define __IMFPresentationTimeSource_INTERFACE_DEFINED__ 4385 4386 DEFINE_GUID(IID_IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39); 4387 #if defined(__cplusplus) && !defined(CINTERFACE) 4388 MIDL_INTERFACE("7ff12cce-f76f-41c2-863b-1666c8e5e139") 4389 IMFPresentationTimeSource : public IMFClock 4390 { 4391 virtual HRESULT STDMETHODCALLTYPE GetUnderlyingClock( 4392 IMFClock **ppClock) = 0; 4393 4394 }; 4395 #ifdef __CRT_UUID_DECL 4396 __CRT_UUID_DECL(IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39) 4397 #endif 4398 #else 4399 typedef struct IMFPresentationTimeSourceVtbl { 4400 BEGIN_INTERFACE 4401 4402 /*** IUnknown methods ***/ 4403 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4404 IMFPresentationTimeSource *This, 4405 REFIID riid, 4406 void **ppvObject); 4407 4408 ULONG (STDMETHODCALLTYPE *AddRef)( 4409 IMFPresentationTimeSource *This); 4410 4411 ULONG (STDMETHODCALLTYPE *Release)( 4412 IMFPresentationTimeSource *This); 4413 4414 /*** IMFClock methods ***/ 4415 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)( 4416 IMFPresentationTimeSource *This, 4417 DWORD *pdwCharacteristics); 4418 4419 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)( 4420 IMFPresentationTimeSource *This, 4421 DWORD dwReserved, 4422 LONGLONG *pllClockTime, 4423 MFTIME *phnsSystemTime); 4424 4425 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)( 4426 IMFPresentationTimeSource *This, 4427 DWORD *pdwContinuityKey); 4428 4429 HRESULT (STDMETHODCALLTYPE *GetState)( 4430 IMFPresentationTimeSource *This, 4431 DWORD dwReserved, 4432 MFCLOCK_STATE *peClockState); 4433 4434 HRESULT (STDMETHODCALLTYPE *GetProperties)( 4435 IMFPresentationTimeSource *This, 4436 MFCLOCK_PROPERTIES *pClockProperties); 4437 4438 /*** IMFPresentationTimeSource methods ***/ 4439 HRESULT (STDMETHODCALLTYPE *GetUnderlyingClock)( 4440 IMFPresentationTimeSource *This, 4441 IMFClock **ppClock); 4442 4443 END_INTERFACE 4444 } IMFPresentationTimeSourceVtbl; 4445 4446 interface IMFPresentationTimeSource { 4447 CONST_VTBL IMFPresentationTimeSourceVtbl* lpVtbl; 4448 }; 4449 4450 #ifdef COBJMACROS 4451 #ifndef WIDL_C_INLINE_WRAPPERS 4452 /*** IUnknown methods ***/ 4453 #define IMFPresentationTimeSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4454 #define IMFPresentationTimeSource_AddRef(This) (This)->lpVtbl->AddRef(This) 4455 #define IMFPresentationTimeSource_Release(This) (This)->lpVtbl->Release(This) 4456 /*** IMFClock methods ***/ 4457 #define IMFPresentationTimeSource_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics) 4458 #define IMFPresentationTimeSource_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) 4459 #define IMFPresentationTimeSource_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey) 4460 #define IMFPresentationTimeSource_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState) 4461 #define IMFPresentationTimeSource_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties) 4462 /*** IMFPresentationTimeSource methods ***/ 4463 #define IMFPresentationTimeSource_GetUnderlyingClock(This,ppClock) (This)->lpVtbl->GetUnderlyingClock(This,ppClock) 4464 #else 4465 /*** IUnknown methods ***/ 4466 static FORCEINLINE HRESULT IMFPresentationTimeSource_QueryInterface(IMFPresentationTimeSource* This,REFIID riid,void **ppvObject) { 4467 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4468 } 4469 static FORCEINLINE ULONG IMFPresentationTimeSource_AddRef(IMFPresentationTimeSource* This) { 4470 return This->lpVtbl->AddRef(This); 4471 } 4472 static FORCEINLINE ULONG IMFPresentationTimeSource_Release(IMFPresentationTimeSource* This) { 4473 return This->lpVtbl->Release(This); 4474 } 4475 /*** IMFClock methods ***/ 4476 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetClockCharacteristics(IMFPresentationTimeSource* This,DWORD *pdwCharacteristics) { 4477 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics); 4478 } 4479 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetCorrelatedTime(IMFPresentationTimeSource* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) { 4480 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime); 4481 } 4482 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetContinuityKey(IMFPresentationTimeSource* This,DWORD *pdwContinuityKey) { 4483 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey); 4484 } 4485 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetState(IMFPresentationTimeSource* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) { 4486 return This->lpVtbl->GetState(This,dwReserved,peClockState); 4487 } 4488 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetProperties(IMFPresentationTimeSource* This,MFCLOCK_PROPERTIES *pClockProperties) { 4489 return This->lpVtbl->GetProperties(This,pClockProperties); 4490 } 4491 /*** IMFPresentationTimeSource methods ***/ 4492 static FORCEINLINE HRESULT IMFPresentationTimeSource_GetUnderlyingClock(IMFPresentationTimeSource* This,IMFClock **ppClock) { 4493 return This->lpVtbl->GetUnderlyingClock(This,ppClock); 4494 } 4495 #endif 4496 #endif 4497 4498 #endif 4499 4500 4501 #endif /* __IMFPresentationTimeSource_INTERFACE_DEFINED__ */ 4502 4503 /***************************************************************************** 4504 * IMFPresentationClock interface 4505 */ 4506 #ifndef __IMFPresentationClock_INTERFACE_DEFINED__ 4507 #define __IMFPresentationClock_INTERFACE_DEFINED__ 4508 4509 DEFINE_GUID(IID_IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05); 4510 #if defined(__cplusplus) && !defined(CINTERFACE) 4511 MIDL_INTERFACE("868ce85c-8ea9-4f55-ab82-b009a910a805") 4512 IMFPresentationClock : public IMFClock 4513 { 4514 virtual HRESULT STDMETHODCALLTYPE SetTimeSource( 4515 IMFPresentationTimeSource *pTimeSource) = 0; 4516 4517 virtual HRESULT STDMETHODCALLTYPE GetTimeSource( 4518 IMFPresentationTimeSource **ppTimeSource) = 0; 4519 4520 virtual HRESULT STDMETHODCALLTYPE GetTime( 4521 MFTIME *phnsClockTime) = 0; 4522 4523 virtual HRESULT STDMETHODCALLTYPE AddClockStateSink( 4524 IMFClockStateSink *pStateSink) = 0; 4525 4526 virtual HRESULT STDMETHODCALLTYPE RemoveClockStateSink( 4527 IMFClockStateSink *pStateSink) = 0; 4528 4529 virtual HRESULT STDMETHODCALLTYPE Start( 4530 LONGLONG llClockStartOffset) = 0; 4531 4532 virtual HRESULT STDMETHODCALLTYPE Stop( 4533 ) = 0; 4534 4535 virtual HRESULT STDMETHODCALLTYPE Pause( 4536 ) = 0; 4537 4538 }; 4539 #ifdef __CRT_UUID_DECL 4540 __CRT_UUID_DECL(IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05) 4541 #endif 4542 #else 4543 typedef struct IMFPresentationClockVtbl { 4544 BEGIN_INTERFACE 4545 4546 /*** IUnknown methods ***/ 4547 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4548 IMFPresentationClock *This, 4549 REFIID riid, 4550 void **ppvObject); 4551 4552 ULONG (STDMETHODCALLTYPE *AddRef)( 4553 IMFPresentationClock *This); 4554 4555 ULONG (STDMETHODCALLTYPE *Release)( 4556 IMFPresentationClock *This); 4557 4558 /*** IMFClock methods ***/ 4559 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)( 4560 IMFPresentationClock *This, 4561 DWORD *pdwCharacteristics); 4562 4563 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)( 4564 IMFPresentationClock *This, 4565 DWORD dwReserved, 4566 LONGLONG *pllClockTime, 4567 MFTIME *phnsSystemTime); 4568 4569 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)( 4570 IMFPresentationClock *This, 4571 DWORD *pdwContinuityKey); 4572 4573 HRESULT (STDMETHODCALLTYPE *GetState)( 4574 IMFPresentationClock *This, 4575 DWORD dwReserved, 4576 MFCLOCK_STATE *peClockState); 4577 4578 HRESULT (STDMETHODCALLTYPE *GetProperties)( 4579 IMFPresentationClock *This, 4580 MFCLOCK_PROPERTIES *pClockProperties); 4581 4582 /*** IMFPresentationClock methods ***/ 4583 HRESULT (STDMETHODCALLTYPE *SetTimeSource)( 4584 IMFPresentationClock *This, 4585 IMFPresentationTimeSource *pTimeSource); 4586 4587 HRESULT (STDMETHODCALLTYPE *GetTimeSource)( 4588 IMFPresentationClock *This, 4589 IMFPresentationTimeSource **ppTimeSource); 4590 4591 HRESULT (STDMETHODCALLTYPE *GetTime)( 4592 IMFPresentationClock *This, 4593 MFTIME *phnsClockTime); 4594 4595 HRESULT (STDMETHODCALLTYPE *AddClockStateSink)( 4596 IMFPresentationClock *This, 4597 IMFClockStateSink *pStateSink); 4598 4599 HRESULT (STDMETHODCALLTYPE *RemoveClockStateSink)( 4600 IMFPresentationClock *This, 4601 IMFClockStateSink *pStateSink); 4602 4603 HRESULT (STDMETHODCALLTYPE *Start)( 4604 IMFPresentationClock *This, 4605 LONGLONG llClockStartOffset); 4606 4607 HRESULT (STDMETHODCALLTYPE *Stop)( 4608 IMFPresentationClock *This); 4609 4610 HRESULT (STDMETHODCALLTYPE *Pause)( 4611 IMFPresentationClock *This); 4612 4613 END_INTERFACE 4614 } IMFPresentationClockVtbl; 4615 4616 interface IMFPresentationClock { 4617 CONST_VTBL IMFPresentationClockVtbl* lpVtbl; 4618 }; 4619 4620 #ifdef COBJMACROS 4621 #ifndef WIDL_C_INLINE_WRAPPERS 4622 /*** IUnknown methods ***/ 4623 #define IMFPresentationClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4624 #define IMFPresentationClock_AddRef(This) (This)->lpVtbl->AddRef(This) 4625 #define IMFPresentationClock_Release(This) (This)->lpVtbl->Release(This) 4626 /*** IMFClock methods ***/ 4627 #define IMFPresentationClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics) 4628 #define IMFPresentationClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) 4629 #define IMFPresentationClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey) 4630 #define IMFPresentationClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState) 4631 #define IMFPresentationClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties) 4632 /*** IMFPresentationClock methods ***/ 4633 #define IMFPresentationClock_SetTimeSource(This,pTimeSource) (This)->lpVtbl->SetTimeSource(This,pTimeSource) 4634 #define IMFPresentationClock_GetTimeSource(This,ppTimeSource) (This)->lpVtbl->GetTimeSource(This,ppTimeSource) 4635 #define IMFPresentationClock_GetTime(This,phnsClockTime) (This)->lpVtbl->GetTime(This,phnsClockTime) 4636 #define IMFPresentationClock_AddClockStateSink(This,pStateSink) (This)->lpVtbl->AddClockStateSink(This,pStateSink) 4637 #define IMFPresentationClock_RemoveClockStateSink(This,pStateSink) (This)->lpVtbl->RemoveClockStateSink(This,pStateSink) 4638 #define IMFPresentationClock_Start(This,llClockStartOffset) (This)->lpVtbl->Start(This,llClockStartOffset) 4639 #define IMFPresentationClock_Stop(This) (This)->lpVtbl->Stop(This) 4640 #define IMFPresentationClock_Pause(This) (This)->lpVtbl->Pause(This) 4641 #else 4642 /*** IUnknown methods ***/ 4643 static FORCEINLINE HRESULT IMFPresentationClock_QueryInterface(IMFPresentationClock* This,REFIID riid,void **ppvObject) { 4644 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4645 } 4646 static FORCEINLINE ULONG IMFPresentationClock_AddRef(IMFPresentationClock* This) { 4647 return This->lpVtbl->AddRef(This); 4648 } 4649 static FORCEINLINE ULONG IMFPresentationClock_Release(IMFPresentationClock* This) { 4650 return This->lpVtbl->Release(This); 4651 } 4652 /*** IMFClock methods ***/ 4653 static FORCEINLINE HRESULT IMFPresentationClock_GetClockCharacteristics(IMFPresentationClock* This,DWORD *pdwCharacteristics) { 4654 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics); 4655 } 4656 static FORCEINLINE HRESULT IMFPresentationClock_GetCorrelatedTime(IMFPresentationClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) { 4657 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime); 4658 } 4659 static FORCEINLINE HRESULT IMFPresentationClock_GetContinuityKey(IMFPresentationClock* This,DWORD *pdwContinuityKey) { 4660 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey); 4661 } 4662 static FORCEINLINE HRESULT IMFPresentationClock_GetState(IMFPresentationClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) { 4663 return This->lpVtbl->GetState(This,dwReserved,peClockState); 4664 } 4665 static FORCEINLINE HRESULT IMFPresentationClock_GetProperties(IMFPresentationClock* This,MFCLOCK_PROPERTIES *pClockProperties) { 4666 return This->lpVtbl->GetProperties(This,pClockProperties); 4667 } 4668 /*** IMFPresentationClock methods ***/ 4669 static FORCEINLINE HRESULT IMFPresentationClock_SetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource *pTimeSource) { 4670 return This->lpVtbl->SetTimeSource(This,pTimeSource); 4671 } 4672 static FORCEINLINE HRESULT IMFPresentationClock_GetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource **ppTimeSource) { 4673 return This->lpVtbl->GetTimeSource(This,ppTimeSource); 4674 } 4675 static FORCEINLINE HRESULT IMFPresentationClock_GetTime(IMFPresentationClock* This,MFTIME *phnsClockTime) { 4676 return This->lpVtbl->GetTime(This,phnsClockTime); 4677 } 4678 static FORCEINLINE HRESULT IMFPresentationClock_AddClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) { 4679 return This->lpVtbl->AddClockStateSink(This,pStateSink); 4680 } 4681 static FORCEINLINE HRESULT IMFPresentationClock_RemoveClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) { 4682 return This->lpVtbl->RemoveClockStateSink(This,pStateSink); 4683 } 4684 static FORCEINLINE HRESULT IMFPresentationClock_Start(IMFPresentationClock* This,LONGLONG llClockStartOffset) { 4685 return This->lpVtbl->Start(This,llClockStartOffset); 4686 } 4687 static FORCEINLINE HRESULT IMFPresentationClock_Stop(IMFPresentationClock* This) { 4688 return This->lpVtbl->Stop(This); 4689 } 4690 static FORCEINLINE HRESULT IMFPresentationClock_Pause(IMFPresentationClock* This) { 4691 return This->lpVtbl->Pause(This); 4692 } 4693 #endif 4694 #endif 4695 4696 #endif 4697 4698 4699 #endif /* __IMFPresentationClock_INTERFACE_DEFINED__ */ 4700 4701 /***************************************************************************** 4702 * IMFRateControl interface 4703 */ 4704 #ifndef __IMFRateControl_INTERFACE_DEFINED__ 4705 #define __IMFRateControl_INTERFACE_DEFINED__ 4706 4707 DEFINE_GUID(IID_IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f); 4708 #if defined(__cplusplus) && !defined(CINTERFACE) 4709 MIDL_INTERFACE("88ddcd21-03c3-4275-91ed-55ee3929328f") 4710 IMFRateControl : public IUnknown 4711 { 4712 virtual HRESULT STDMETHODCALLTYPE SetRate( 4713 WINBOOL fThin, 4714 float flRate) = 0; 4715 4716 virtual HRESULT STDMETHODCALLTYPE GetRate( 4717 WINBOOL *pfThin, 4718 float *pflRate) = 0; 4719 4720 }; 4721 #ifdef __CRT_UUID_DECL 4722 __CRT_UUID_DECL(IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f) 4723 #endif 4724 #else 4725 typedef struct IMFRateControlVtbl { 4726 BEGIN_INTERFACE 4727 4728 /*** IUnknown methods ***/ 4729 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4730 IMFRateControl *This, 4731 REFIID riid, 4732 void **ppvObject); 4733 4734 ULONG (STDMETHODCALLTYPE *AddRef)( 4735 IMFRateControl *This); 4736 4737 ULONG (STDMETHODCALLTYPE *Release)( 4738 IMFRateControl *This); 4739 4740 /*** IMFRateControl methods ***/ 4741 HRESULT (STDMETHODCALLTYPE *SetRate)( 4742 IMFRateControl *This, 4743 WINBOOL fThin, 4744 float flRate); 4745 4746 HRESULT (STDMETHODCALLTYPE *GetRate)( 4747 IMFRateControl *This, 4748 WINBOOL *pfThin, 4749 float *pflRate); 4750 4751 END_INTERFACE 4752 } IMFRateControlVtbl; 4753 4754 interface IMFRateControl { 4755 CONST_VTBL IMFRateControlVtbl* lpVtbl; 4756 }; 4757 4758 #ifdef COBJMACROS 4759 #ifndef WIDL_C_INLINE_WRAPPERS 4760 /*** IUnknown methods ***/ 4761 #define IMFRateControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4762 #define IMFRateControl_AddRef(This) (This)->lpVtbl->AddRef(This) 4763 #define IMFRateControl_Release(This) (This)->lpVtbl->Release(This) 4764 /*** IMFRateControl methods ***/ 4765 #define IMFRateControl_SetRate(This,fThin,flRate) (This)->lpVtbl->SetRate(This,fThin,flRate) 4766 #define IMFRateControl_GetRate(This,pfThin,pflRate) (This)->lpVtbl->GetRate(This,pfThin,pflRate) 4767 #else 4768 /*** IUnknown methods ***/ 4769 static FORCEINLINE HRESULT IMFRateControl_QueryInterface(IMFRateControl* This,REFIID riid,void **ppvObject) { 4770 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4771 } 4772 static FORCEINLINE ULONG IMFRateControl_AddRef(IMFRateControl* This) { 4773 return This->lpVtbl->AddRef(This); 4774 } 4775 static FORCEINLINE ULONG IMFRateControl_Release(IMFRateControl* This) { 4776 return This->lpVtbl->Release(This); 4777 } 4778 /*** IMFRateControl methods ***/ 4779 static FORCEINLINE HRESULT IMFRateControl_SetRate(IMFRateControl* This,WINBOOL fThin,float flRate) { 4780 return This->lpVtbl->SetRate(This,fThin,flRate); 4781 } 4782 static FORCEINLINE HRESULT IMFRateControl_GetRate(IMFRateControl* This,WINBOOL *pfThin,float *pflRate) { 4783 return This->lpVtbl->GetRate(This,pfThin,pflRate); 4784 } 4785 #endif 4786 #endif 4787 4788 #endif 4789 4790 4791 #endif /* __IMFRateControl_INTERFACE_DEFINED__ */ 4792 4793 /***************************************************************************** 4794 * IMFRateSupport interface 4795 */ 4796 #ifndef __IMFRateSupport_INTERFACE_DEFINED__ 4797 #define __IMFRateSupport_INTERFACE_DEFINED__ 4798 4799 DEFINE_GUID(IID_IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d); 4800 #if defined(__cplusplus) && !defined(CINTERFACE) 4801 MIDL_INTERFACE("0a9ccdbc-d797-4563-9667-94ec5d79292d") 4802 IMFRateSupport : public IUnknown 4803 { 4804 virtual HRESULT STDMETHODCALLTYPE GetSlowestRate( 4805 MFRATE_DIRECTION eDirection, 4806 WINBOOL fThin, 4807 float *pflRate) = 0; 4808 4809 virtual HRESULT STDMETHODCALLTYPE GetFastestRate( 4810 MFRATE_DIRECTION eDirection, 4811 WINBOOL fThin, 4812 float *pflRate) = 0; 4813 4814 virtual HRESULT STDMETHODCALLTYPE IsRateSupported( 4815 WINBOOL fThin, 4816 float flRate, 4817 float *pflNearestSupportedRate) = 0; 4818 4819 }; 4820 #ifdef __CRT_UUID_DECL 4821 __CRT_UUID_DECL(IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d) 4822 #endif 4823 #else 4824 typedef struct IMFRateSupportVtbl { 4825 BEGIN_INTERFACE 4826 4827 /*** IUnknown methods ***/ 4828 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4829 IMFRateSupport *This, 4830 REFIID riid, 4831 void **ppvObject); 4832 4833 ULONG (STDMETHODCALLTYPE *AddRef)( 4834 IMFRateSupport *This); 4835 4836 ULONG (STDMETHODCALLTYPE *Release)( 4837 IMFRateSupport *This); 4838 4839 /*** IMFRateSupport methods ***/ 4840 HRESULT (STDMETHODCALLTYPE *GetSlowestRate)( 4841 IMFRateSupport *This, 4842 MFRATE_DIRECTION eDirection, 4843 WINBOOL fThin, 4844 float *pflRate); 4845 4846 HRESULT (STDMETHODCALLTYPE *GetFastestRate)( 4847 IMFRateSupport *This, 4848 MFRATE_DIRECTION eDirection, 4849 WINBOOL fThin, 4850 float *pflRate); 4851 4852 HRESULT (STDMETHODCALLTYPE *IsRateSupported)( 4853 IMFRateSupport *This, 4854 WINBOOL fThin, 4855 float flRate, 4856 float *pflNearestSupportedRate); 4857 4858 END_INTERFACE 4859 } IMFRateSupportVtbl; 4860 4861 interface IMFRateSupport { 4862 CONST_VTBL IMFRateSupportVtbl* lpVtbl; 4863 }; 4864 4865 #ifdef COBJMACROS 4866 #ifndef WIDL_C_INLINE_WRAPPERS 4867 /*** IUnknown methods ***/ 4868 #define IMFRateSupport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4869 #define IMFRateSupport_AddRef(This) (This)->lpVtbl->AddRef(This) 4870 #define IMFRateSupport_Release(This) (This)->lpVtbl->Release(This) 4871 /*** IMFRateSupport methods ***/ 4872 #define IMFRateSupport_GetSlowestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate) 4873 #define IMFRateSupport_GetFastestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate) 4874 #define IMFRateSupport_IsRateSupported(This,fThin,flRate,pflNearestSupportedRate) (This)->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate) 4875 #else 4876 /*** IUnknown methods ***/ 4877 static FORCEINLINE HRESULT IMFRateSupport_QueryInterface(IMFRateSupport* This,REFIID riid,void **ppvObject) { 4878 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4879 } 4880 static FORCEINLINE ULONG IMFRateSupport_AddRef(IMFRateSupport* This) { 4881 return This->lpVtbl->AddRef(This); 4882 } 4883 static FORCEINLINE ULONG IMFRateSupport_Release(IMFRateSupport* This) { 4884 return This->lpVtbl->Release(This); 4885 } 4886 /*** IMFRateSupport methods ***/ 4887 static FORCEINLINE HRESULT IMFRateSupport_GetSlowestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) { 4888 return This->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate); 4889 } 4890 static FORCEINLINE HRESULT IMFRateSupport_GetFastestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) { 4891 return This->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate); 4892 } 4893 static FORCEINLINE HRESULT IMFRateSupport_IsRateSupported(IMFRateSupport* This,WINBOOL fThin,float flRate,float *pflNearestSupportedRate) { 4894 return This->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate); 4895 } 4896 #endif 4897 #endif 4898 4899 #endif 4900 4901 4902 #endif /* __IMFRateSupport_INTERFACE_DEFINED__ */ 4903 4904 /***************************************************************************** 4905 * IMFSampleGrabberSinkCallback interface 4906 */ 4907 #ifndef __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ 4908 #define __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ 4909 4910 DEFINE_GUID(IID_IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8); 4911 #if defined(__cplusplus) && !defined(CINTERFACE) 4912 MIDL_INTERFACE("8c7b80bf-ee42-4b59-b1df-55668e1bdca8") 4913 IMFSampleGrabberSinkCallback : public IMFClockStateSink 4914 { 4915 virtual HRESULT STDMETHODCALLTYPE OnSetPresentationClock( 4916 IMFPresentationClock *pPresentationClock) = 0; 4917 4918 virtual HRESULT STDMETHODCALLTYPE OnProcessSample( 4919 REFGUID guidMajorMediaType, 4920 DWORD dwSampleFlags, 4921 LONGLONG llSampleTime, 4922 LONGLONG llSampleDuration, 4923 const BYTE *pSampleBuffer, 4924 DWORD dwSampleSize) = 0; 4925 4926 virtual HRESULT STDMETHODCALLTYPE OnShutdown( 4927 ) = 0; 4928 4929 }; 4930 #ifdef __CRT_UUID_DECL 4931 __CRT_UUID_DECL(IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8) 4932 #endif 4933 #else 4934 typedef struct IMFSampleGrabberSinkCallbackVtbl { 4935 BEGIN_INTERFACE 4936 4937 /*** IUnknown methods ***/ 4938 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4939 IMFSampleGrabberSinkCallback *This, 4940 REFIID riid, 4941 void **ppvObject); 4942 4943 ULONG (STDMETHODCALLTYPE *AddRef)( 4944 IMFSampleGrabberSinkCallback *This); 4945 4946 ULONG (STDMETHODCALLTYPE *Release)( 4947 IMFSampleGrabberSinkCallback *This); 4948 4949 /*** IMFClockStateSink methods ***/ 4950 HRESULT (STDMETHODCALLTYPE *OnClockStart)( 4951 IMFSampleGrabberSinkCallback *This, 4952 MFTIME hnsSystemTime, 4953 LONGLONG llClockStartOffset); 4954 4955 HRESULT (STDMETHODCALLTYPE *OnClockStop)( 4956 IMFSampleGrabberSinkCallback *This, 4957 MFTIME hnsSystemTime); 4958 4959 HRESULT (STDMETHODCALLTYPE *OnClockPause)( 4960 IMFSampleGrabberSinkCallback *This, 4961 MFTIME hnsSystemTime); 4962 4963 HRESULT (STDMETHODCALLTYPE *OnClockRestart)( 4964 IMFSampleGrabberSinkCallback *This, 4965 MFTIME hnsSystemTime); 4966 4967 HRESULT (STDMETHODCALLTYPE *OnClockSetRate)( 4968 IMFSampleGrabberSinkCallback *This, 4969 MFTIME hnsSystemTime, 4970 float flRate); 4971 4972 /*** IMFSampleGrabberSinkCallback methods ***/ 4973 HRESULT (STDMETHODCALLTYPE *OnSetPresentationClock)( 4974 IMFSampleGrabberSinkCallback *This, 4975 IMFPresentationClock *pPresentationClock); 4976 4977 HRESULT (STDMETHODCALLTYPE *OnProcessSample)( 4978 IMFSampleGrabberSinkCallback *This, 4979 REFGUID guidMajorMediaType, 4980 DWORD dwSampleFlags, 4981 LONGLONG llSampleTime, 4982 LONGLONG llSampleDuration, 4983 const BYTE *pSampleBuffer, 4984 DWORD dwSampleSize); 4985 4986 HRESULT (STDMETHODCALLTYPE *OnShutdown)( 4987 IMFSampleGrabberSinkCallback *This); 4988 4989 END_INTERFACE 4990 } IMFSampleGrabberSinkCallbackVtbl; 4991 4992 interface IMFSampleGrabberSinkCallback { 4993 CONST_VTBL IMFSampleGrabberSinkCallbackVtbl* lpVtbl; 4994 }; 4995 4996 #ifdef COBJMACROS 4997 #ifndef WIDL_C_INLINE_WRAPPERS 4998 /*** IUnknown methods ***/ 4999 #define IMFSampleGrabberSinkCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5000 #define IMFSampleGrabberSinkCallback_AddRef(This) (This)->lpVtbl->AddRef(This) 5001 #define IMFSampleGrabberSinkCallback_Release(This) (This)->lpVtbl->Release(This) 5002 /*** IMFClockStateSink methods ***/ 5003 #define IMFSampleGrabberSinkCallback_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset) 5004 #define IMFSampleGrabberSinkCallback_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime) 5005 #define IMFSampleGrabberSinkCallback_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime) 5006 #define IMFSampleGrabberSinkCallback_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime) 5007 #define IMFSampleGrabberSinkCallback_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate) 5008 /*** IMFSampleGrabberSinkCallback methods ***/ 5009 #define IMFSampleGrabberSinkCallback_OnSetPresentationClock(This,pPresentationClock) (This)->lpVtbl->OnSetPresentationClock(This,pPresentationClock) 5010 #define IMFSampleGrabberSinkCallback_OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize) (This)->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize) 5011 #define IMFSampleGrabberSinkCallback_OnShutdown(This) (This)->lpVtbl->OnShutdown(This) 5012 #else 5013 /*** IUnknown methods ***/ 5014 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_QueryInterface(IMFSampleGrabberSinkCallback* This,REFIID riid,void **ppvObject) { 5015 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5016 } 5017 static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_AddRef(IMFSampleGrabberSinkCallback* This) { 5018 return This->lpVtbl->AddRef(This); 5019 } 5020 static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_Release(IMFSampleGrabberSinkCallback* This) { 5021 return This->lpVtbl->Release(This); 5022 } 5023 /*** IMFClockStateSink methods ***/ 5024 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) { 5025 return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset); 5026 } 5027 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStop(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) { 5028 return This->lpVtbl->OnClockStop(This,hnsSystemTime); 5029 } 5030 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockPause(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) { 5031 return This->lpVtbl->OnClockPause(This,hnsSystemTime); 5032 } 5033 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockRestart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) { 5034 return This->lpVtbl->OnClockRestart(This,hnsSystemTime); 5035 } 5036 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockSetRate(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,float flRate) { 5037 return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate); 5038 } 5039 /*** IMFSampleGrabberSinkCallback methods ***/ 5040 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnSetPresentationClock(IMFSampleGrabberSinkCallback* This,IMFPresentationClock *pPresentationClock) { 5041 return This->lpVtbl->OnSetPresentationClock(This,pPresentationClock); 5042 } 5043 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnProcessSample(IMFSampleGrabberSinkCallback* This,REFGUID guidMajorMediaType,DWORD dwSampleFlags,LONGLONG llSampleTime,LONGLONG llSampleDuration,const BYTE *pSampleBuffer,DWORD dwSampleSize) { 5044 return This->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize); 5045 } 5046 static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnShutdown(IMFSampleGrabberSinkCallback* This) { 5047 return This->lpVtbl->OnShutdown(This); 5048 } 5049 #endif 5050 #endif 5051 5052 #endif 5053 5054 5055 #endif /* __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ */ 5056 5057 /***************************************************************************** 5058 * IMFSourceResolver interface 5059 */ 5060 #ifndef __IMFSourceResolver_INTERFACE_DEFINED__ 5061 #define __IMFSourceResolver_INTERFACE_DEFINED__ 5062 5063 DEFINE_GUID(IID_IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3); 5064 #if defined(__cplusplus) && !defined(CINTERFACE) 5065 MIDL_INTERFACE("fbe5a32d-a497-4b61-bb85-97b1a848a6e3") 5066 IMFSourceResolver : public IUnknown 5067 { 5068 virtual HRESULT STDMETHODCALLTYPE CreateObjectFromURL( 5069 LPCWSTR pwszURL, 5070 DWORD dwFlags, 5071 IPropertyStore *pProps, 5072 MF_OBJECT_TYPE *pObjectType, 5073 IUnknown **ppObject) = 0; 5074 5075 virtual HRESULT STDMETHODCALLTYPE CreateObjectFromByteStream( 5076 IMFByteStream *pByteStream, 5077 LPCWSTR pwszURL, 5078 DWORD dwFlags, 5079 IPropertyStore *pProps, 5080 MF_OBJECT_TYPE *pObjectType, 5081 IUnknown **ppObject) = 0; 5082 5083 virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromURL( 5084 LPCWSTR pwszURL, 5085 DWORD dwFlags, 5086 IPropertyStore *pProps, 5087 IUnknown **ppIUnknownCancelCookie, 5088 IMFAsyncCallback *pCallback, 5089 IUnknown *punkState) = 0; 5090 5091 virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromURL( 5092 IMFAsyncResult *pResult, 5093 MF_OBJECT_TYPE *pObjectType, 5094 IUnknown **ppObject) = 0; 5095 5096 virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromByteStream( 5097 IMFByteStream *pByteStream, 5098 LPCWSTR pwszURL, 5099 DWORD dwFlags, 5100 IPropertyStore *pProps, 5101 IUnknown **ppIUnknownCancelCookie, 5102 IMFAsyncCallback *pCallback, 5103 IUnknown *punkState) = 0; 5104 5105 virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromByteStream( 5106 IMFAsyncResult *pResult, 5107 MF_OBJECT_TYPE *pObjectType, 5108 IUnknown **ppObject) = 0; 5109 5110 virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation( 5111 IUnknown *pIUnknownCancelCookie) = 0; 5112 5113 }; 5114 #ifdef __CRT_UUID_DECL 5115 __CRT_UUID_DECL(IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3) 5116 #endif 5117 #else 5118 typedef struct IMFSourceResolverVtbl { 5119 BEGIN_INTERFACE 5120 5121 /*** IUnknown methods ***/ 5122 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5123 IMFSourceResolver *This, 5124 REFIID riid, 5125 void **ppvObject); 5126 5127 ULONG (STDMETHODCALLTYPE *AddRef)( 5128 IMFSourceResolver *This); 5129 5130 ULONG (STDMETHODCALLTYPE *Release)( 5131 IMFSourceResolver *This); 5132 5133 /*** IMFSourceResolver methods ***/ 5134 HRESULT (STDMETHODCALLTYPE *CreateObjectFromURL)( 5135 IMFSourceResolver *This, 5136 LPCWSTR pwszURL, 5137 DWORD dwFlags, 5138 IPropertyStore *pProps, 5139 MF_OBJECT_TYPE *pObjectType, 5140 IUnknown **ppObject); 5141 5142 HRESULT (STDMETHODCALLTYPE *CreateObjectFromByteStream)( 5143 IMFSourceResolver *This, 5144 IMFByteStream *pByteStream, 5145 LPCWSTR pwszURL, 5146 DWORD dwFlags, 5147 IPropertyStore *pProps, 5148 MF_OBJECT_TYPE *pObjectType, 5149 IUnknown **ppObject); 5150 5151 HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromURL)( 5152 IMFSourceResolver *This, 5153 LPCWSTR pwszURL, 5154 DWORD dwFlags, 5155 IPropertyStore *pProps, 5156 IUnknown **ppIUnknownCancelCookie, 5157 IMFAsyncCallback *pCallback, 5158 IUnknown *punkState); 5159 5160 HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromURL)( 5161 IMFSourceResolver *This, 5162 IMFAsyncResult *pResult, 5163 MF_OBJECT_TYPE *pObjectType, 5164 IUnknown **ppObject); 5165 5166 HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromByteStream)( 5167 IMFSourceResolver *This, 5168 IMFByteStream *pByteStream, 5169 LPCWSTR pwszURL, 5170 DWORD dwFlags, 5171 IPropertyStore *pProps, 5172 IUnknown **ppIUnknownCancelCookie, 5173 IMFAsyncCallback *pCallback, 5174 IUnknown *punkState); 5175 5176 HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromByteStream)( 5177 IMFSourceResolver *This, 5178 IMFAsyncResult *pResult, 5179 MF_OBJECT_TYPE *pObjectType, 5180 IUnknown **ppObject); 5181 5182 HRESULT (STDMETHODCALLTYPE *CancelObjectCreation)( 5183 IMFSourceResolver *This, 5184 IUnknown *pIUnknownCancelCookie); 5185 5186 END_INTERFACE 5187 } IMFSourceResolverVtbl; 5188 5189 interface IMFSourceResolver { 5190 CONST_VTBL IMFSourceResolverVtbl* lpVtbl; 5191 }; 5192 5193 #ifdef COBJMACROS 5194 #ifndef WIDL_C_INLINE_WRAPPERS 5195 /*** IUnknown methods ***/ 5196 #define IMFSourceResolver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5197 #define IMFSourceResolver_AddRef(This) (This)->lpVtbl->AddRef(This) 5198 #define IMFSourceResolver_Release(This) (This)->lpVtbl->Release(This) 5199 /*** IMFSourceResolver methods ***/ 5200 #define IMFSourceResolver_CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject) 5201 #define IMFSourceResolver_CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject) 5202 #define IMFSourceResolver_BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) 5203 #define IMFSourceResolver_EndCreateObjectFromURL(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject) 5204 #define IMFSourceResolver_BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) 5205 #define IMFSourceResolver_EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject) 5206 #define IMFSourceResolver_CancelObjectCreation(This,pIUnknownCancelCookie) (This)->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie) 5207 #else 5208 /*** IUnknown methods ***/ 5209 static FORCEINLINE HRESULT IMFSourceResolver_QueryInterface(IMFSourceResolver* This,REFIID riid,void **ppvObject) { 5210 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5211 } 5212 static FORCEINLINE ULONG IMFSourceResolver_AddRef(IMFSourceResolver* This) { 5213 return This->lpVtbl->AddRef(This); 5214 } 5215 static FORCEINLINE ULONG IMFSourceResolver_Release(IMFSourceResolver* This) { 5216 return This->lpVtbl->Release(This); 5217 } 5218 /*** IMFSourceResolver methods ***/ 5219 static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) { 5220 return This->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject); 5221 } 5222 static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) { 5223 return This->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject); 5224 } 5225 static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) { 5226 return This->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState); 5227 } 5228 static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromURL(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) { 5229 return This->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject); 5230 } 5231 static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) { 5232 return This->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState); 5233 } 5234 static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromByteStream(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) { 5235 return This->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject); 5236 } 5237 static FORCEINLINE HRESULT IMFSourceResolver_CancelObjectCreation(IMFSourceResolver* This,IUnknown *pIUnknownCancelCookie) { 5238 return This->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie); 5239 } 5240 #endif 5241 #endif 5242 5243 #endif 5244 5245 HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromURL_Proxy( 5246 IMFSourceResolver* This, 5247 LPCWSTR pwszURL, 5248 DWORD dwFlags, 5249 IPropertyStore *pProps, 5250 IMFRemoteAsyncCallback *pCallback); 5251 void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromURL_Stub( 5252 IRpcStubBuffer* This, 5253 IRpcChannelBuffer* pRpcChannelBuffer, 5254 PRPC_MESSAGE pRpcMessage, 5255 DWORD* pdwStubPhase); 5256 HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromURL_Proxy( 5257 IMFSourceResolver* This, 5258 IUnknown *pResult, 5259 MF_OBJECT_TYPE *pObjectType, 5260 IUnknown **ppObject); 5261 void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromURL_Stub( 5262 IRpcStubBuffer* This, 5263 IRpcChannelBuffer* pRpcChannelBuffer, 5264 PRPC_MESSAGE pRpcMessage, 5265 DWORD* pdwStubPhase); 5266 HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Proxy( 5267 IMFSourceResolver* This, 5268 IMFByteStream *pByteStream, 5269 LPCWSTR pwszURL, 5270 DWORD dwFlags, 5271 IPropertyStore *pProps, 5272 IMFRemoteAsyncCallback *pCallback); 5273 void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Stub( 5274 IRpcStubBuffer* This, 5275 IRpcChannelBuffer* pRpcChannelBuffer, 5276 PRPC_MESSAGE pRpcMessage, 5277 DWORD* pdwStubPhase); 5278 HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Proxy( 5279 IMFSourceResolver* This, 5280 IUnknown *pResult, 5281 MF_OBJECT_TYPE *pObjectType, 5282 IUnknown **ppObject); 5283 void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Stub( 5284 IRpcStubBuffer* This, 5285 IRpcChannelBuffer* pRpcChannelBuffer, 5286 PRPC_MESSAGE pRpcMessage, 5287 DWORD* pdwStubPhase); 5288 HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromURL_Proxy( 5289 IMFSourceResolver* This, 5290 LPCWSTR pwszURL, 5291 DWORD dwFlags, 5292 IPropertyStore *pProps, 5293 IUnknown **ppIUnknownCancelCookie, 5294 IMFAsyncCallback *pCallback, 5295 IUnknown *punkState); 5296 HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromURL_Stub( 5297 IMFSourceResolver* This, 5298 LPCWSTR pwszURL, 5299 DWORD dwFlags, 5300 IPropertyStore *pProps, 5301 IMFRemoteAsyncCallback *pCallback); 5302 HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromURL_Proxy( 5303 IMFSourceResolver* This, 5304 IMFAsyncResult *pResult, 5305 MF_OBJECT_TYPE *pObjectType, 5306 IUnknown **ppObject); 5307 HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromURL_Stub( 5308 IMFSourceResolver* This, 5309 IUnknown *pResult, 5310 MF_OBJECT_TYPE *pObjectType, 5311 IUnknown **ppObject); 5312 HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromByteStream_Proxy( 5313 IMFSourceResolver* This, 5314 IMFByteStream *pByteStream, 5315 LPCWSTR pwszURL, 5316 DWORD dwFlags, 5317 IPropertyStore *pProps, 5318 IUnknown **ppIUnknownCancelCookie, 5319 IMFAsyncCallback *pCallback, 5320 IUnknown *punkState); 5321 HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromByteStream_Stub( 5322 IMFSourceResolver* This, 5323 IMFByteStream *pByteStream, 5324 LPCWSTR pwszURL, 5325 DWORD dwFlags, 5326 IPropertyStore *pProps, 5327 IMFRemoteAsyncCallback *pCallback); 5328 HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromByteStream_Proxy( 5329 IMFSourceResolver* This, 5330 IMFAsyncResult *pResult, 5331 MF_OBJECT_TYPE *pObjectType, 5332 IUnknown **ppObject); 5333 HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromByteStream_Stub( 5334 IMFSourceResolver* This, 5335 IUnknown *pResult, 5336 MF_OBJECT_TYPE *pObjectType, 5337 IUnknown **ppObject); 5338 5339 #endif /* __IMFSourceResolver_INTERFACE_DEFINED__ */ 5340 5341 /***************************************************************************** 5342 * IMFStreamSink interface 5343 */ 5344 #ifndef __IMFStreamSink_INTERFACE_DEFINED__ 5345 #define __IMFStreamSink_INTERFACE_DEFINED__ 5346 5347 DEFINE_GUID(IID_IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb); 5348 #if defined(__cplusplus) && !defined(CINTERFACE) 5349 MIDL_INTERFACE("0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb") 5350 IMFStreamSink : public IMFMediaEventGenerator 5351 { 5352 virtual HRESULT STDMETHODCALLTYPE GetMediaSink( 5353 IMFMediaSink **ppMediaSink) = 0; 5354 5355 virtual HRESULT STDMETHODCALLTYPE GetIdentifier( 5356 DWORD *pdwIdentifier) = 0; 5357 5358 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler( 5359 IMFMediaTypeHandler **ppHandler) = 0; 5360 5361 virtual HRESULT STDMETHODCALLTYPE ProcessSample( 5362 IMFSample *pSample) = 0; 5363 5364 virtual HRESULT STDMETHODCALLTYPE PlaceMarker( 5365 MFSTREAMSINK_MARKER_TYPE eMarkerType, 5366 const PROPVARIANT *pvarMarkerValue, 5367 const PROPVARIANT *pvarContextValue) = 0; 5368 5369 virtual HRESULT STDMETHODCALLTYPE Flush( 5370 ) = 0; 5371 5372 }; 5373 #ifdef __CRT_UUID_DECL 5374 __CRT_UUID_DECL(IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb) 5375 #endif 5376 #else 5377 typedef struct IMFStreamSinkVtbl { 5378 BEGIN_INTERFACE 5379 5380 /*** IUnknown methods ***/ 5381 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5382 IMFStreamSink *This, 5383 REFIID riid, 5384 void **ppvObject); 5385 5386 ULONG (STDMETHODCALLTYPE *AddRef)( 5387 IMFStreamSink *This); 5388 5389 ULONG (STDMETHODCALLTYPE *Release)( 5390 IMFStreamSink *This); 5391 5392 /*** IMFMediaEventGenerator methods ***/ 5393 HRESULT (STDMETHODCALLTYPE *GetEvent)( 5394 IMFStreamSink *This, 5395 DWORD dwFlags, 5396 IMFMediaEvent **ppEvent); 5397 5398 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 5399 IMFStreamSink *This, 5400 IMFAsyncCallback *pCallback, 5401 IUnknown *punkState); 5402 5403 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 5404 IMFStreamSink *This, 5405 IMFAsyncResult *pResult, 5406 IMFMediaEvent **ppEvent); 5407 5408 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 5409 IMFStreamSink *This, 5410 MediaEventType met, 5411 REFGUID guidExtendedType, 5412 HRESULT hrStatus, 5413 const PROPVARIANT *pvValue); 5414 5415 /*** IMFStreamSink methods ***/ 5416 HRESULT (STDMETHODCALLTYPE *GetMediaSink)( 5417 IMFStreamSink *This, 5418 IMFMediaSink **ppMediaSink); 5419 5420 HRESULT (STDMETHODCALLTYPE *GetIdentifier)( 5421 IMFStreamSink *This, 5422 DWORD *pdwIdentifier); 5423 5424 HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)( 5425 IMFStreamSink *This, 5426 IMFMediaTypeHandler **ppHandler); 5427 5428 HRESULT (STDMETHODCALLTYPE *ProcessSample)( 5429 IMFStreamSink *This, 5430 IMFSample *pSample); 5431 5432 HRESULT (STDMETHODCALLTYPE *PlaceMarker)( 5433 IMFStreamSink *This, 5434 MFSTREAMSINK_MARKER_TYPE eMarkerType, 5435 const PROPVARIANT *pvarMarkerValue, 5436 const PROPVARIANT *pvarContextValue); 5437 5438 HRESULT (STDMETHODCALLTYPE *Flush)( 5439 IMFStreamSink *This); 5440 5441 END_INTERFACE 5442 } IMFStreamSinkVtbl; 5443 5444 interface IMFStreamSink { 5445 CONST_VTBL IMFStreamSinkVtbl* lpVtbl; 5446 }; 5447 5448 #ifdef COBJMACROS 5449 #ifndef WIDL_C_INLINE_WRAPPERS 5450 /*** IUnknown methods ***/ 5451 #define IMFStreamSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5452 #define IMFStreamSink_AddRef(This) (This)->lpVtbl->AddRef(This) 5453 #define IMFStreamSink_Release(This) (This)->lpVtbl->Release(This) 5454 /*** IMFMediaEventGenerator methods ***/ 5455 #define IMFStreamSink_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 5456 #define IMFStreamSink_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 5457 #define IMFStreamSink_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 5458 #define IMFStreamSink_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 5459 /*** IMFStreamSink methods ***/ 5460 #define IMFStreamSink_GetMediaSink(This,ppMediaSink) (This)->lpVtbl->GetMediaSink(This,ppMediaSink) 5461 #define IMFStreamSink_GetIdentifier(This,pdwIdentifier) (This)->lpVtbl->GetIdentifier(This,pdwIdentifier) 5462 #define IMFStreamSink_GetMediaTypeHandler(This,ppHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppHandler) 5463 #define IMFStreamSink_ProcessSample(This,pSample) (This)->lpVtbl->ProcessSample(This,pSample) 5464 #define IMFStreamSink_PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue) (This)->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue) 5465 #define IMFStreamSink_Flush(This) (This)->lpVtbl->Flush(This) 5466 #else 5467 /*** IUnknown methods ***/ 5468 static FORCEINLINE HRESULT IMFStreamSink_QueryInterface(IMFStreamSink* This,REFIID riid,void **ppvObject) { 5469 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5470 } 5471 static FORCEINLINE ULONG IMFStreamSink_AddRef(IMFStreamSink* This) { 5472 return This->lpVtbl->AddRef(This); 5473 } 5474 static FORCEINLINE ULONG IMFStreamSink_Release(IMFStreamSink* This) { 5475 return This->lpVtbl->Release(This); 5476 } 5477 /*** IMFMediaEventGenerator methods ***/ 5478 static FORCEINLINE HRESULT IMFStreamSink_GetEvent(IMFStreamSink* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 5479 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 5480 } 5481 static FORCEINLINE HRESULT IMFStreamSink_BeginGetEvent(IMFStreamSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 5482 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 5483 } 5484 static FORCEINLINE HRESULT IMFStreamSink_EndGetEvent(IMFStreamSink* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 5485 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 5486 } 5487 static FORCEINLINE HRESULT IMFStreamSink_QueueEvent(IMFStreamSink* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 5488 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 5489 } 5490 /*** IMFStreamSink methods ***/ 5491 static FORCEINLINE HRESULT IMFStreamSink_GetMediaSink(IMFStreamSink* This,IMFMediaSink **ppMediaSink) { 5492 return This->lpVtbl->GetMediaSink(This,ppMediaSink); 5493 } 5494 static FORCEINLINE HRESULT IMFStreamSink_GetIdentifier(IMFStreamSink* This,DWORD *pdwIdentifier) { 5495 return This->lpVtbl->GetIdentifier(This,pdwIdentifier); 5496 } 5497 static FORCEINLINE HRESULT IMFStreamSink_GetMediaTypeHandler(IMFStreamSink* This,IMFMediaTypeHandler **ppHandler) { 5498 return This->lpVtbl->GetMediaTypeHandler(This,ppHandler); 5499 } 5500 static FORCEINLINE HRESULT IMFStreamSink_ProcessSample(IMFStreamSink* This,IMFSample *pSample) { 5501 return This->lpVtbl->ProcessSample(This,pSample); 5502 } 5503 static FORCEINLINE HRESULT IMFStreamSink_PlaceMarker(IMFStreamSink* This,MFSTREAMSINK_MARKER_TYPE eMarkerType,const PROPVARIANT *pvarMarkerValue,const PROPVARIANT *pvarContextValue) { 5504 return This->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue); 5505 } 5506 static FORCEINLINE HRESULT IMFStreamSink_Flush(IMFStreamSink* This) { 5507 return This->lpVtbl->Flush(This); 5508 } 5509 #endif 5510 #endif 5511 5512 #endif 5513 5514 5515 #endif /* __IMFStreamSink_INTERFACE_DEFINED__ */ 5516 5517 /***************************************************************************** 5518 * IMFTopoLoader interface 5519 */ 5520 #ifndef __IMFTopoLoader_INTERFACE_DEFINED__ 5521 #define __IMFTopoLoader_INTERFACE_DEFINED__ 5522 5523 DEFINE_GUID(IID_IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd); 5524 #if defined(__cplusplus) && !defined(CINTERFACE) 5525 MIDL_INTERFACE("de9a6157-f660-4643-b56a-df9f7998c7cd") 5526 IMFTopoLoader : public IUnknown 5527 { 5528 virtual HRESULT STDMETHODCALLTYPE Load( 5529 IMFTopology *pInputTopo, 5530 IMFTopology **ppOutputTopo, 5531 IMFTopology *pCurrentTopo) = 0; 5532 5533 }; 5534 #ifdef __CRT_UUID_DECL 5535 __CRT_UUID_DECL(IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd) 5536 #endif 5537 #else 5538 typedef struct IMFTopoLoaderVtbl { 5539 BEGIN_INTERFACE 5540 5541 /*** IUnknown methods ***/ 5542 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5543 IMFTopoLoader *This, 5544 REFIID riid, 5545 void **ppvObject); 5546 5547 ULONG (STDMETHODCALLTYPE *AddRef)( 5548 IMFTopoLoader *This); 5549 5550 ULONG (STDMETHODCALLTYPE *Release)( 5551 IMFTopoLoader *This); 5552 5553 /*** IMFTopoLoader methods ***/ 5554 HRESULT (STDMETHODCALLTYPE *Load)( 5555 IMFTopoLoader *This, 5556 IMFTopology *pInputTopo, 5557 IMFTopology **ppOutputTopo, 5558 IMFTopology *pCurrentTopo); 5559 5560 END_INTERFACE 5561 } IMFTopoLoaderVtbl; 5562 5563 interface IMFTopoLoader { 5564 CONST_VTBL IMFTopoLoaderVtbl* lpVtbl; 5565 }; 5566 5567 #ifdef COBJMACROS 5568 #ifndef WIDL_C_INLINE_WRAPPERS 5569 /*** IUnknown methods ***/ 5570 #define IMFTopoLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5571 #define IMFTopoLoader_AddRef(This) (This)->lpVtbl->AddRef(This) 5572 #define IMFTopoLoader_Release(This) (This)->lpVtbl->Release(This) 5573 /*** IMFTopoLoader methods ***/ 5574 #define IMFTopoLoader_Load(This,pInputTopo,ppOutputTopo,pCurrentTopo) (This)->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo) 5575 #else 5576 /*** IUnknown methods ***/ 5577 static FORCEINLINE HRESULT IMFTopoLoader_QueryInterface(IMFTopoLoader* This,REFIID riid,void **ppvObject) { 5578 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5579 } 5580 static FORCEINLINE ULONG IMFTopoLoader_AddRef(IMFTopoLoader* This) { 5581 return This->lpVtbl->AddRef(This); 5582 } 5583 static FORCEINLINE ULONG IMFTopoLoader_Release(IMFTopoLoader* This) { 5584 return This->lpVtbl->Release(This); 5585 } 5586 /*** IMFTopoLoader methods ***/ 5587 static FORCEINLINE HRESULT IMFTopoLoader_Load(IMFTopoLoader* This,IMFTopology *pInputTopo,IMFTopology **ppOutputTopo,IMFTopology *pCurrentTopo) { 5588 return This->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo); 5589 } 5590 #endif 5591 #endif 5592 5593 #endif 5594 5595 5596 #endif /* __IMFTopoLoader_INTERFACE_DEFINED__ */ 5597 5598 HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 5599 HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource); 5600 5601 HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer); 5602 HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); 5603 HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); 5604 HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream); 5605 HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink); 5606 HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate); 5607 HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); 5608 HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); 5609 HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile); 5610 HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); 5611 HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *pAudioAttributes, IMFMediaSink **ppSink); 5612 HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **ppActivate); 5613 HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS); 5614 HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink); 5615 HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 5616 HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler); 5617 HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer); 5618 HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate); 5619 HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath); 5620 HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock); 5621 HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor); 5622 HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD); 5623 HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator); 5624 HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin); 5625 HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample); 5626 HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT); 5627 HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate); 5628 HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource); 5629 HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler); 5630 HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager); 5631 HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor); 5632 HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver); 5633 HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource); 5634 HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj); 5635 HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo); 5636 HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode); 5637 HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer); 5638 HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate); 5639 HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject); 5640 HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray); 5641 HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray); 5642 MFTIME WINAPI MFGetSystemTime(void); 5643 HRESULT WINAPI MFShutdownObject(IUnknown *pUnk); 5644 HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore); 5645 HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore); 5646 #if (WINVER >= 0x0601) 5647 5648 HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile); 5649 HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate); 5650 HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo); 5651 HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate); 5652 HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType); 5653 HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes); 5654 #endif 5655 EXTERN_GUID(MFNETSOURCE_STATISTICS, 0x3cb1f274, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1); 5656 EXTERN_GUID(MFNETSOURCE_STATISTICS_SERVICE, 0x3cb1f275, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1); 5657 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_CLSID, 0xba491360, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5658 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_ACTIVATE, 0xba491361, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5659 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_FLAGS, 0xba491362, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5660 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_CLSID, 0xba491364, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5661 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE, 0xba491365, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5662 EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS, 0xba491366, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 ); 5663 EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_SESSION_ID, 0xede4b5e3, 0xf805, 0x4d6c, 0x99, 0xb3, 0xdb, 0x01, 0xbf, 0x95, 0xdf, 0xab); 5664 EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID, 0xb10aaec3, 0xef71, 0x4cc3, 0xb8, 0x73, 0x5, 0xa9, 0xa0, 0x8b, 0x9f, 0x8e); 5665 EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE, 0x6ba644ff, 0x27c5, 0x4d02, 0x98, 0x87, 0xc2, 0x86, 0x19, 0xfd, 0xb9, 0x1b); 5666 EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY, 0xa9770471, 0x92ec, 0x4df4, 0x94, 0xfe, 0x81, 0xc3, 0x6f, 0xc, 0x3a, 0x7a); 5667 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1); 5668 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4); 5669 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f); 5670 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52); 5671 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e); 5672 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63); 5673 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26); 5674 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f); 5675 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3); 5676 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f); 5677 EXTERN_GUID(MF_METADATA_PROVIDER_SERVICE, 0xdb214084, 0x58a4, 0x4d2e, 0xb8, 0x4f, 0x6f, 0x75, 0x5b, 0x2f, 0x7a, 0xd); 5678 EXTERN_GUID(MF_PROPERTY_HANDLER_SERVICE, 0xa3face02, 0x32b8, 0x41dd, 0x90, 0xe7, 0x5f, 0xef, 0x7c, 0x89, 0x91, 0xb5); 5679 EXTERN_GUID(MF_RATE_CONTROL_SERVICE, 0x866fa297, 0xb802, 0x4bf8, 0x9d, 0xc9, 0x5e, 0x3b, 0x6a, 0x9f, 0x53, 0xc9); 5680 EXTERN_GUID(MF_SAMPLEGRABBERSINK_IGNORE_CLOCK, 0x0efda2c0, 0x2b69, 0x4e2e, 0xab, 0x8d, 0x46, 0xdc, 0xbf, 0xf7, 0xd2, 0x5d); 5681 EXTERN_GUID(MF_TOPONODE_DRAIN, 0x494bbce9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5682 EXTERN_GUID(MF_TOPONODE_D3DAWARE, 0x494bbced, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5683 EXTERN_GUID(MF_TOPOLOGY_RESOLUTION_STATUS, 0x494bbcde, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5684 EXTERN_GUID(MF_TOPONODE_ERRORCODE, 0x494bbcee, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5685 EXTERN_GUID(MF_TOPONODE_CONNECT_METHOD, 0x494bbcf1, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5686 EXTERN_GUID(MF_TOPONODE_LOCKED, 0x494bbcf7, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5687 EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ID, 0x494bbcf8, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5688 EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_CLASS, 0x494bbcf9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5689 EXTERN_GUID(MF_TOPONODE_DECRYPTOR, 0x494bbcfa, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5690 EXTERN_GUID(MF_TOPONODE_DISCARDABLE, 0x494bbcfb, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5691 EXTERN_GUID(MF_TOPONODE_ERROR_MAJORTYPE, 0x494bbcfd, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5692 EXTERN_GUID(MF_TOPONODE_ERROR_SUBTYPE, 0x494bbcfe, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5693 EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_TASKID, 0x494bbcff, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5694 EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY, 0x5001f840, 0x2816, 0x48f4, 0x93, 0x64, 0xad, 0x1e, 0xf6, 0x61, 0xa1, 0x23); 5695 EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ITEM_PRIORITY, 0xa1ff99be, 0x5e97, 0x4a53, 0xb4, 0x94, 0x56, 0x8c, 0x64, 0x2c, 0x0f, 0xf3); 5696 EXTERN_GUID(MF_TOPONODE_MARKIN_HERE, 0x494bbd00, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5697 EXTERN_GUID(MF_TOPONODE_MARKOUT_HERE, 0x494bbd01, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5698 EXTERN_GUID(MF_TOPONODE_DECODER, 0x494bbd02, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); 5699 EXTERN_GUID(MF_TOPONODE_MEDIASTART, 0x835c58ea, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5700 EXTERN_GUID(MF_TOPONODE_MEDIASTOP, 0x835c58eb, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5701 EXTERN_GUID(MF_TOPONODE_SOURCE, 0x835c58ec, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5702 EXTERN_GUID(MF_TOPONODE_PRESENTATION_DESCRIPTOR, 0x835c58ed, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5703 EXTERN_GUID(MF_TOPONODE_STREAM_DESCRIPTOR, 0x835c58ee, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5704 EXTERN_GUID(MF_TOPONODE_SEQUENCE_ELEMENTID, 0x835c58ef, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6); 5705 EXTERN_GUID(MF_TOPONODE_TRANSFORM_OBJECTID, 0x88dcc0c9, 0x293e, 0x4e8b, 0x9a, 0xeb, 0xa, 0xd6, 0x4c, 0xc0, 0x16, 0xb0); 5706 EXTERN_GUID(MF_TOPONODE_STREAMID, 0x14932f9b, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); 5707 EXTERN_GUID(MF_TOPONODE_NOSHUTDOWN_ON_REMOVE, 0x14932f9c, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); 5708 EXTERN_GUID(MF_TOPONODE_RATELESS, 0x14932f9d, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); 5709 EXTERN_GUID(MF_TOPONODE_DISABLE_PREROLL, 0x14932f9e, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); 5710 EXTERN_GUID(MF_TOPONODE_PRIMARYOUTPUT, 0x6304ef99, 0x16b2, 0x4ebe, 0x9d, 0x67, 0xe4, 0xc5, 0x39, 0xb3, 0xa2, 0x59); 5711 EXTERN_GUID(MR_STREAM_VOLUME_SERVICE, 0xf8b5fa2f, 0x32ef, 0x46f5, 0xb1, 0x72, 0x13, 0x21, 0x21, 0x2f, 0xb2, 0xc4); 5712 /* Begin additional prototypes for all interfaces */ 5713 5714 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 5715 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 5716 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 5717 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 5718 ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *); 5719 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *); 5720 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *); 5721 void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *); 5722 5723 /* End additional prototypes */ 5724 5725 #ifdef __cplusplus 5726 } 5727 #endif 5728 5729 #endif /* __mfidl_h__ */ 5730