1 /*** Autogenerated by WIDL 3.1 from include/mfidl.idl - Do not edit ***/ 2 3 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 4 #define __REQUIRED_RPCNDR_H_VERSION__ 475 5 #endif 6 7 #include <rpc.h> 8 #include <rpcndr.h> 9 10 #ifndef COM_NO_WINDOWS_H 11 #include <windows.h> 12 #include <ole2.h> 13 #endif 14 15 #ifndef __mfidl_h__ 16 #define __mfidl_h__ 17 18 /* Forward declarations */ 19 20 #ifndef __IMFTopologyNode_FWD_DEFINED__ 21 #define __IMFTopologyNode_FWD_DEFINED__ 22 typedef interface IMFTopologyNode IMFTopologyNode; 23 #ifdef __cplusplus 24 interface IMFTopologyNode; 25 #endif /* __cplusplus */ 26 #endif 27 28 #ifndef __IMFTopology_FWD_DEFINED__ 29 #define __IMFTopology_FWD_DEFINED__ 30 typedef interface IMFTopology IMFTopology; 31 #ifdef __cplusplus 32 interface IMFTopology; 33 #endif /* __cplusplus */ 34 #endif 35 36 #ifndef __IMFClock_FWD_DEFINED__ 37 #define __IMFClock_FWD_DEFINED__ 38 typedef interface IMFClock IMFClock; 39 #ifdef __cplusplus 40 interface IMFClock; 41 #endif /* __cplusplus */ 42 #endif 43 44 #ifndef __IMFMediaSession_FWD_DEFINED__ 45 #define __IMFMediaSession_FWD_DEFINED__ 46 typedef interface IMFMediaSession IMFMediaSession; 47 #ifdef __cplusplus 48 interface IMFMediaSession; 49 #endif /* __cplusplus */ 50 #endif 51 52 #ifndef __IMFMediaTypeHandler_FWD_DEFINED__ 53 #define __IMFMediaTypeHandler_FWD_DEFINED__ 54 typedef interface IMFMediaTypeHandler IMFMediaTypeHandler; 55 #ifdef __cplusplus 56 interface IMFMediaTypeHandler; 57 #endif /* __cplusplus */ 58 #endif 59 60 #ifndef __IMFStreamDescriptor_FWD_DEFINED__ 61 #define __IMFStreamDescriptor_FWD_DEFINED__ 62 typedef interface IMFStreamDescriptor IMFStreamDescriptor; 63 #ifdef __cplusplus 64 interface IMFStreamDescriptor; 65 #endif /* __cplusplus */ 66 #endif 67 68 #ifndef __IMFPresentationDescriptor_FWD_DEFINED__ 69 #define __IMFPresentationDescriptor_FWD_DEFINED__ 70 typedef interface IMFPresentationDescriptor IMFPresentationDescriptor; 71 #ifdef __cplusplus 72 interface IMFPresentationDescriptor; 73 #endif /* __cplusplus */ 74 #endif 75 76 #ifndef __IMFMediaSource_FWD_DEFINED__ 77 #define __IMFMediaSource_FWD_DEFINED__ 78 typedef interface IMFMediaSource IMFMediaSource; 79 #ifdef __cplusplus 80 interface IMFMediaSource; 81 #endif /* __cplusplus */ 82 #endif 83 84 #ifndef __IMFByteStreamBuffering_FWD_DEFINED__ 85 #define __IMFByteStreamBuffering_FWD_DEFINED__ 86 typedef interface IMFByteStreamBuffering IMFByteStreamBuffering; 87 #ifdef __cplusplus 88 interface IMFByteStreamBuffering; 89 #endif /* __cplusplus */ 90 #endif 91 92 #ifndef __IMFClockStateSink_FWD_DEFINED__ 93 #define __IMFClockStateSink_FWD_DEFINED__ 94 typedef interface IMFClockStateSink IMFClockStateSink; 95 #ifdef __cplusplus 96 interface IMFClockStateSink; 97 #endif /* __cplusplus */ 98 #endif 99 100 /* Headers for imported files */ 101 102 #include <mfobjects.h> 103 104 #ifdef __cplusplus 105 extern "C" { 106 #endif 107 108 #include <mftransform.h> 109 #include <windef.h> 110 typedef enum MFSESSION_SETTOPOLOGY_FLAGS { 111 MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1, 112 MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2, 113 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4 114 } MFSESSION_SETTOPOLOGY_FLAGS; 115 typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS { 116 MFSESSION_GETFULLTOPOLOGY_CURRENT = 0 117 } MFSESSION_GETFULLTOPOLOGY_FLAGS; 118 typedef enum MFPMPSESSION_CREATION_FLAGS { 119 MFPMPSESSION_UNPROTECTED_PROCESS = 0x1 120 } MFPMPSESSION_CREATION_FLAGS; 121 typedef UINT64 TOPOID; 122 typedef enum MF_TOPOLOGY_TYPE { 123 MF_TOPOLOGY_OUTPUT_NODE = 0, 124 MF_TOPOLOGY_SOURCESTREAM_NODE = 1, 125 MF_TOPOLOGY_TRANSFORM_NODE = 2, 126 MF_TOPOLOGY_TEE_NODE = 3, 127 MF_TOPOLOGY_MAX = 0xffffffff 128 } MF_TOPOLOGY_TYPE; 129 /***************************************************************************** 130 * IMFTopologyNode interface 131 */ 132 #ifndef __IMFTopologyNode_INTERFACE_DEFINED__ 133 #define __IMFTopologyNode_INTERFACE_DEFINED__ 134 135 DEFINE_GUID(IID_IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30); 136 #if defined(__cplusplus) && !defined(CINTERFACE) 137 MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc430") 138 IMFTopologyNode : public IMFAttributes 139 { 140 virtual HRESULT STDMETHODCALLTYPE SetObject( 141 IUnknown *pObject) = 0; 142 143 virtual HRESULT STDMETHODCALLTYPE GetObject( 144 IUnknown **ppObject) = 0; 145 146 virtual HRESULT STDMETHODCALLTYPE GetNodeType( 147 MF_TOPOLOGY_TYPE *pType) = 0; 148 149 virtual HRESULT STDMETHODCALLTYPE GetTopoNodeID( 150 TOPOID *pID) = 0; 151 152 virtual HRESULT STDMETHODCALLTYPE SetTopoNodeID( 153 TOPOID ullTopoID) = 0; 154 155 virtual HRESULT STDMETHODCALLTYPE GetInputCount( 156 DWORD *pcInputs) = 0; 157 158 virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 159 DWORD *pcOutputs) = 0; 160 161 virtual HRESULT STDMETHODCALLTYPE ConnectOutput( 162 DWORD dwOutputIndex, 163 IMFTopologyNode *pDownstreamNode, 164 DWORD dwInputIndexOnDownstreamNode) = 0; 165 166 virtual HRESULT STDMETHODCALLTYPE DisconnectOutput( 167 DWORD dwOutputIndex) = 0; 168 169 virtual HRESULT STDMETHODCALLTYPE GetInput( 170 DWORD dwInputIndex, 171 IMFTopologyNode **ppUpstreamNode, 172 DWORD *pdwOutputIndexOnUpstreamNode) = 0; 173 174 virtual HRESULT STDMETHODCALLTYPE GetOutput( 175 DWORD dwOutputIndex, 176 IMFTopologyNode **ppDownstreamNode, 177 DWORD *pdwInputIndexOnDownstreamNode) = 0; 178 179 virtual HRESULT STDMETHODCALLTYPE SetOutputPrefType( 180 DWORD dwOutputIndex, 181 IMFMediaType *pType) = 0; 182 183 virtual HRESULT STDMETHODCALLTYPE GetOutputPrefType( 184 DWORD dwOutputIndex, 185 IMFMediaType **ppType) = 0; 186 187 virtual HRESULT STDMETHODCALLTYPE SetInputPrefType( 188 DWORD dwInputIndex, 189 IMFMediaType *pType) = 0; 190 191 virtual HRESULT STDMETHODCALLTYPE GetInputPrefType( 192 DWORD dwInputIndex, 193 IMFMediaType **ppType) = 0; 194 195 virtual HRESULT STDMETHODCALLTYPE CloneFrom( 196 IMFTopologyNode *pNode) = 0; 197 198 }; 199 #ifdef __CRT_UUID_DECL 200 __CRT_UUID_DECL(IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30) 201 #endif 202 #else 203 typedef struct IMFTopologyNodeVtbl { 204 BEGIN_INTERFACE 205 206 /*** IUnknown methods ***/ 207 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 208 IMFTopologyNode *This, 209 REFIID riid, 210 void **ppvObject); 211 212 ULONG (STDMETHODCALLTYPE *AddRef)( 213 IMFTopologyNode *This); 214 215 ULONG (STDMETHODCALLTYPE *Release)( 216 IMFTopologyNode *This); 217 218 /*** IMFAttributes methods ***/ 219 HRESULT (STDMETHODCALLTYPE *GetItem)( 220 IMFTopologyNode *This, 221 REFGUID guidKey, 222 PROPVARIANT *pValue); 223 224 HRESULT (STDMETHODCALLTYPE *GetItemType)( 225 IMFTopologyNode *This, 226 REFGUID guidKey, 227 MF_ATTRIBUTE_TYPE *pType); 228 229 HRESULT (STDMETHODCALLTYPE *CompareItem)( 230 IMFTopologyNode *This, 231 REFGUID guidKey, 232 REFPROPVARIANT Value, 233 WINBOOL *pbResult); 234 235 HRESULT (STDMETHODCALLTYPE *Compare)( 236 IMFTopologyNode *This, 237 IMFAttributes *pTheirs, 238 MF_ATTRIBUTES_MATCH_TYPE MatchType, 239 WINBOOL *pbResult); 240 241 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 242 IMFTopologyNode *This, 243 REFGUID guidKey, 244 UINT32 *punValue); 245 246 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 247 IMFTopologyNode *This, 248 REFGUID guidKey, 249 UINT64 *punValue); 250 251 HRESULT (STDMETHODCALLTYPE *GetDouble)( 252 IMFTopologyNode *This, 253 REFGUID guidKey, 254 double *pfValue); 255 256 HRESULT (STDMETHODCALLTYPE *GetGUID)( 257 IMFTopologyNode *This, 258 REFGUID guidKey, 259 GUID *pguidValue); 260 261 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 262 IMFTopologyNode *This, 263 REFGUID guidKey, 264 UINT32 *pcchLength); 265 266 HRESULT (STDMETHODCALLTYPE *GetString)( 267 IMFTopologyNode *This, 268 REFGUID guidKey, 269 LPWSTR pwszValue, 270 UINT32 cchBufSize, 271 UINT32 *pcchLength); 272 273 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 274 IMFTopologyNode *This, 275 REFGUID guidKey, 276 LPWSTR *ppwszValue, 277 UINT32 *pcchLength); 278 279 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 280 IMFTopologyNode *This, 281 REFGUID guidKey, 282 UINT32 *pcbBlobSize); 283 284 HRESULT (STDMETHODCALLTYPE *GetBlob)( 285 IMFTopologyNode *This, 286 REFGUID guidKey, 287 UINT8 *pBuf, 288 UINT32 cbBufSize, 289 UINT32 *pcbBlobSize); 290 291 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 292 IMFTopologyNode *This, 293 REFGUID guidKey, 294 UINT8 **ppBuf, 295 UINT32 *pcbSize); 296 297 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 298 IMFTopologyNode *This, 299 REFGUID guidKey, 300 REFIID riid, 301 LPVOID *ppv); 302 303 HRESULT (STDMETHODCALLTYPE *SetItem)( 304 IMFTopologyNode *This, 305 REFGUID guidKey, 306 REFPROPVARIANT Value); 307 308 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 309 IMFTopologyNode *This, 310 REFGUID guidKey); 311 312 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 313 IMFTopologyNode *This); 314 315 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 316 IMFTopologyNode *This, 317 REFGUID guidKey, 318 UINT32 unValue); 319 320 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 321 IMFTopologyNode *This, 322 REFGUID guidKey, 323 UINT64 unValue); 324 325 HRESULT (STDMETHODCALLTYPE *SetDouble)( 326 IMFTopologyNode *This, 327 REFGUID guidKey, 328 double fValue); 329 330 HRESULT (STDMETHODCALLTYPE *SetGUID)( 331 IMFTopologyNode *This, 332 REFGUID guidKey, 333 REFGUID guidValue); 334 335 HRESULT (STDMETHODCALLTYPE *SetString)( 336 IMFTopologyNode *This, 337 REFGUID guidKey, 338 LPCWSTR wszValue); 339 340 HRESULT (STDMETHODCALLTYPE *SetBlob)( 341 IMFTopologyNode *This, 342 REFGUID guidKey, 343 const UINT8 *pBuf, 344 UINT32 cbBufSize); 345 346 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 347 IMFTopologyNode *This, 348 REFGUID guidKey, 349 IUnknown *pUnknown); 350 351 HRESULT (STDMETHODCALLTYPE *LockStore)( 352 IMFTopologyNode *This); 353 354 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 355 IMFTopologyNode *This); 356 357 HRESULT (STDMETHODCALLTYPE *GetCount)( 358 IMFTopologyNode *This, 359 UINT32 *pcItems); 360 361 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 362 IMFTopologyNode *This, 363 UINT32 unIndex, 364 GUID *pguidKey, 365 PROPVARIANT *pValue); 366 367 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 368 IMFTopologyNode *This, 369 IMFAttributes *pDest); 370 371 /*** IMFTopologyNode methods ***/ 372 HRESULT (STDMETHODCALLTYPE *SetObject)( 373 IMFTopologyNode *This, 374 IUnknown *pObject); 375 376 HRESULT (STDMETHODCALLTYPE *GetObject)( 377 IMFTopologyNode *This, 378 IUnknown **ppObject); 379 380 HRESULT (STDMETHODCALLTYPE *GetNodeType)( 381 IMFTopologyNode *This, 382 MF_TOPOLOGY_TYPE *pType); 383 384 HRESULT (STDMETHODCALLTYPE *GetTopoNodeID)( 385 IMFTopologyNode *This, 386 TOPOID *pID); 387 388 HRESULT (STDMETHODCALLTYPE *SetTopoNodeID)( 389 IMFTopologyNode *This, 390 TOPOID ullTopoID); 391 392 HRESULT (STDMETHODCALLTYPE *GetInputCount)( 393 IMFTopologyNode *This, 394 DWORD *pcInputs); 395 396 HRESULT (STDMETHODCALLTYPE *GetOutputCount)( 397 IMFTopologyNode *This, 398 DWORD *pcOutputs); 399 400 HRESULT (STDMETHODCALLTYPE *ConnectOutput)( 401 IMFTopologyNode *This, 402 DWORD dwOutputIndex, 403 IMFTopologyNode *pDownstreamNode, 404 DWORD dwInputIndexOnDownstreamNode); 405 406 HRESULT (STDMETHODCALLTYPE *DisconnectOutput)( 407 IMFTopologyNode *This, 408 DWORD dwOutputIndex); 409 410 HRESULT (STDMETHODCALLTYPE *GetInput)( 411 IMFTopologyNode *This, 412 DWORD dwInputIndex, 413 IMFTopologyNode **ppUpstreamNode, 414 DWORD *pdwOutputIndexOnUpstreamNode); 415 416 HRESULT (STDMETHODCALLTYPE *GetOutput)( 417 IMFTopologyNode *This, 418 DWORD dwOutputIndex, 419 IMFTopologyNode **ppDownstreamNode, 420 DWORD *pdwInputIndexOnDownstreamNode); 421 422 HRESULT (STDMETHODCALLTYPE *SetOutputPrefType)( 423 IMFTopologyNode *This, 424 DWORD dwOutputIndex, 425 IMFMediaType *pType); 426 427 HRESULT (STDMETHODCALLTYPE *GetOutputPrefType)( 428 IMFTopologyNode *This, 429 DWORD dwOutputIndex, 430 IMFMediaType **ppType); 431 432 HRESULT (STDMETHODCALLTYPE *SetInputPrefType)( 433 IMFTopologyNode *This, 434 DWORD dwInputIndex, 435 IMFMediaType *pType); 436 437 HRESULT (STDMETHODCALLTYPE *GetInputPrefType)( 438 IMFTopologyNode *This, 439 DWORD dwInputIndex, 440 IMFMediaType **ppType); 441 442 HRESULT (STDMETHODCALLTYPE *CloneFrom)( 443 IMFTopologyNode *This, 444 IMFTopologyNode *pNode); 445 446 END_INTERFACE 447 } IMFTopologyNodeVtbl; 448 449 interface IMFTopologyNode { 450 CONST_VTBL IMFTopologyNodeVtbl* lpVtbl; 451 }; 452 453 #ifdef COBJMACROS 454 #ifndef WIDL_C_INLINE_WRAPPERS 455 /*** IUnknown methods ***/ 456 #define IMFTopologyNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 457 #define IMFTopologyNode_AddRef(This) (This)->lpVtbl->AddRef(This) 458 #define IMFTopologyNode_Release(This) (This)->lpVtbl->Release(This) 459 /*** IMFAttributes methods ***/ 460 #define IMFTopologyNode_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 461 #define IMFTopologyNode_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 462 #define IMFTopologyNode_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 463 #define IMFTopologyNode_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 464 #define IMFTopologyNode_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 465 #define IMFTopologyNode_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 466 #define IMFTopologyNode_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 467 #define IMFTopologyNode_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 468 #define IMFTopologyNode_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 469 #define IMFTopologyNode_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 470 #define IMFTopologyNode_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 471 #define IMFTopologyNode_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 472 #define IMFTopologyNode_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 473 #define IMFTopologyNode_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 474 #define IMFTopologyNode_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 475 #define IMFTopologyNode_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 476 #define IMFTopologyNode_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 477 #define IMFTopologyNode_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 478 #define IMFTopologyNode_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 479 #define IMFTopologyNode_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 480 #define IMFTopologyNode_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 481 #define IMFTopologyNode_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 482 #define IMFTopologyNode_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 483 #define IMFTopologyNode_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 484 #define IMFTopologyNode_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 485 #define IMFTopologyNode_LockStore(This) (This)->lpVtbl->LockStore(This) 486 #define IMFTopologyNode_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 487 #define IMFTopologyNode_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 488 #define IMFTopologyNode_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 489 #define IMFTopologyNode_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 490 /*** IMFTopologyNode methods ***/ 491 #define IMFTopologyNode_SetObject(This,pObject) (This)->lpVtbl->SetObject(This,pObject) 492 #define IMFTopologyNode_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject) 493 #define IMFTopologyNode_GetNodeType(This,pType) (This)->lpVtbl->GetNodeType(This,pType) 494 #define IMFTopologyNode_GetTopoNodeID(This,pID) (This)->lpVtbl->GetTopoNodeID(This,pID) 495 #define IMFTopologyNode_SetTopoNodeID(This,ullTopoID) (This)->lpVtbl->SetTopoNodeID(This,ullTopoID) 496 #define IMFTopologyNode_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs) 497 #define IMFTopologyNode_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) 498 #define IMFTopologyNode_ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) (This)->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) 499 #define IMFTopologyNode_DisconnectOutput(This,dwOutputIndex) (This)->lpVtbl->DisconnectOutput(This,dwOutputIndex) 500 #define IMFTopologyNode_GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) (This)->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) 501 #define IMFTopologyNode_GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) (This)->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) 502 #define IMFTopologyNode_SetOutputPrefType(This,dwOutputIndex,pType) (This)->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType) 503 #define IMFTopologyNode_GetOutputPrefType(This,dwOutputIndex,ppType) (This)->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType) 504 #define IMFTopologyNode_SetInputPrefType(This,dwInputIndex,pType) (This)->lpVtbl->SetInputPrefType(This,dwInputIndex,pType) 505 #define IMFTopologyNode_GetInputPrefType(This,dwInputIndex,ppType) (This)->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType) 506 #define IMFTopologyNode_CloneFrom(This,pNode) (This)->lpVtbl->CloneFrom(This,pNode) 507 #else 508 /*** IUnknown methods ***/ 509 static FORCEINLINE HRESULT IMFTopologyNode_QueryInterface(IMFTopologyNode* This,REFIID riid,void **ppvObject) { 510 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 511 } 512 static FORCEINLINE ULONG IMFTopologyNode_AddRef(IMFTopologyNode* This) { 513 return This->lpVtbl->AddRef(This); 514 } 515 static FORCEINLINE ULONG IMFTopologyNode_Release(IMFTopologyNode* This) { 516 return This->lpVtbl->Release(This); 517 } 518 /*** IMFAttributes methods ***/ 519 static FORCEINLINE HRESULT IMFTopologyNode_GetItem(IMFTopologyNode* This,REFGUID guidKey,PROPVARIANT *pValue) { 520 return This->lpVtbl->GetItem(This,guidKey,pValue); 521 } 522 static FORCEINLINE HRESULT IMFTopologyNode_GetItemType(IMFTopologyNode* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 523 return This->lpVtbl->GetItemType(This,guidKey,pType); 524 } 525 static FORCEINLINE HRESULT IMFTopologyNode_CompareItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 526 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 527 } 528 static FORCEINLINE HRESULT IMFTopologyNode_Compare(IMFTopologyNode* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 529 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 530 } 531 static FORCEINLINE HRESULT IMFTopologyNode_GetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 *punValue) { 532 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 533 } 534 static FORCEINLINE HRESULT IMFTopologyNode_GetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 *punValue) { 535 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 536 } 537 static FORCEINLINE HRESULT IMFTopologyNode_GetDouble(IMFTopologyNode* This,REFGUID guidKey,double *pfValue) { 538 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 539 } 540 static FORCEINLINE HRESULT IMFTopologyNode_GetGUID(IMFTopologyNode* This,REFGUID guidKey,GUID *pguidValue) { 541 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 542 } 543 static FORCEINLINE HRESULT IMFTopologyNode_GetStringLength(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcchLength) { 544 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 545 } 546 static FORCEINLINE HRESULT IMFTopologyNode_GetString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 547 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 548 } 549 static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 550 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 551 } 552 static FORCEINLINE HRESULT IMFTopologyNode_GetBlobSize(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 553 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 554 } 555 static FORCEINLINE HRESULT IMFTopologyNode_GetBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 556 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 557 } 558 static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 559 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 560 } 561 static FORCEINLINE HRESULT IMFTopologyNode_GetUnknown(IMFTopologyNode* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 562 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 563 } 564 static FORCEINLINE HRESULT IMFTopologyNode_SetItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value) { 565 return This->lpVtbl->SetItem(This,guidKey,Value); 566 } 567 static FORCEINLINE HRESULT IMFTopologyNode_DeleteItem(IMFTopologyNode* This,REFGUID guidKey) { 568 return This->lpVtbl->DeleteItem(This,guidKey); 569 } 570 static FORCEINLINE HRESULT IMFTopologyNode_DeleteAllItems(IMFTopologyNode* This) { 571 return This->lpVtbl->DeleteAllItems(This); 572 } 573 static FORCEINLINE HRESULT IMFTopologyNode_SetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 unValue) { 574 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 575 } 576 static FORCEINLINE HRESULT IMFTopologyNode_SetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 unValue) { 577 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 578 } 579 static FORCEINLINE HRESULT IMFTopologyNode_SetDouble(IMFTopologyNode* This,REFGUID guidKey,double fValue) { 580 return This->lpVtbl->SetDouble(This,guidKey,fValue); 581 } 582 static FORCEINLINE HRESULT IMFTopologyNode_SetGUID(IMFTopologyNode* This,REFGUID guidKey,REFGUID guidValue) { 583 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 584 } 585 static FORCEINLINE HRESULT IMFTopologyNode_SetString(IMFTopologyNode* This,REFGUID guidKey,LPCWSTR wszValue) { 586 return This->lpVtbl->SetString(This,guidKey,wszValue); 587 } 588 static FORCEINLINE HRESULT IMFTopologyNode_SetBlob(IMFTopologyNode* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 589 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 590 } 591 static FORCEINLINE HRESULT IMFTopologyNode_SetUnknown(IMFTopologyNode* This,REFGUID guidKey,IUnknown *pUnknown) { 592 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 593 } 594 static FORCEINLINE HRESULT IMFTopologyNode_LockStore(IMFTopologyNode* This) { 595 return This->lpVtbl->LockStore(This); 596 } 597 static FORCEINLINE HRESULT IMFTopologyNode_UnlockStore(IMFTopologyNode* This) { 598 return This->lpVtbl->UnlockStore(This); 599 } 600 static FORCEINLINE HRESULT IMFTopologyNode_GetCount(IMFTopologyNode* This,UINT32 *pcItems) { 601 return This->lpVtbl->GetCount(This,pcItems); 602 } 603 static FORCEINLINE HRESULT IMFTopologyNode_GetItemByIndex(IMFTopologyNode* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 604 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 605 } 606 static FORCEINLINE HRESULT IMFTopologyNode_CopyAllItems(IMFTopologyNode* This,IMFAttributes *pDest) { 607 return This->lpVtbl->CopyAllItems(This,pDest); 608 } 609 /*** IMFTopologyNode methods ***/ 610 static FORCEINLINE HRESULT IMFTopologyNode_SetObject(IMFTopologyNode* This,IUnknown *pObject) { 611 return This->lpVtbl->SetObject(This,pObject); 612 } 613 static FORCEINLINE HRESULT IMFTopologyNode_GetObject(IMFTopologyNode* This,IUnknown **ppObject) { 614 return This->lpVtbl->GetObject(This,ppObject); 615 } 616 static FORCEINLINE HRESULT IMFTopologyNode_GetNodeType(IMFTopologyNode* This,MF_TOPOLOGY_TYPE *pType) { 617 return This->lpVtbl->GetNodeType(This,pType); 618 } 619 static FORCEINLINE HRESULT IMFTopologyNode_GetTopoNodeID(IMFTopologyNode* This,TOPOID *pID) { 620 return This->lpVtbl->GetTopoNodeID(This,pID); 621 } 622 static FORCEINLINE HRESULT IMFTopologyNode_SetTopoNodeID(IMFTopologyNode* This,TOPOID ullTopoID) { 623 return This->lpVtbl->SetTopoNodeID(This,ullTopoID); 624 } 625 static FORCEINLINE HRESULT IMFTopologyNode_GetInputCount(IMFTopologyNode* This,DWORD *pcInputs) { 626 return This->lpVtbl->GetInputCount(This,pcInputs); 627 } 628 static FORCEINLINE HRESULT IMFTopologyNode_GetOutputCount(IMFTopologyNode* This,DWORD *pcOutputs) { 629 return This->lpVtbl->GetOutputCount(This,pcOutputs); 630 } 631 static FORCEINLINE HRESULT IMFTopologyNode_ConnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) { 632 return This->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode); 633 } 634 static FORCEINLINE HRESULT IMFTopologyNode_DisconnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex) { 635 return This->lpVtbl->DisconnectOutput(This,dwOutputIndex); 636 } 637 static FORCEINLINE HRESULT IMFTopologyNode_GetInput(IMFTopologyNode* This,DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) { 638 return This->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode); 639 } 640 static FORCEINLINE HRESULT IMFTopologyNode_GetOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) { 641 return This->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode); 642 } 643 static FORCEINLINE HRESULT IMFTopologyNode_SetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType *pType) { 644 return This->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType); 645 } 646 static FORCEINLINE HRESULT IMFTopologyNode_GetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType **ppType) { 647 return This->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType); 648 } 649 static FORCEINLINE HRESULT IMFTopologyNode_SetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType *pType) { 650 return This->lpVtbl->SetInputPrefType(This,dwInputIndex,pType); 651 } 652 static FORCEINLINE HRESULT IMFTopologyNode_GetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType **ppType) { 653 return This->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType); 654 } 655 static FORCEINLINE HRESULT IMFTopologyNode_CloneFrom(IMFTopologyNode* This,IMFTopologyNode *pNode) { 656 return This->lpVtbl->CloneFrom(This,pNode); 657 } 658 #endif 659 #endif 660 661 #endif 662 663 HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetOutputPrefType_Proxy( 664 IMFTopologyNode* This, 665 DWORD dwOutputIndex, 666 DWORD *pcbData, 667 BYTE **ppbData); 668 void __RPC_STUB IMFTopologyNode_RemoteGetOutputPrefType_Stub( 669 IRpcStubBuffer* This, 670 IRpcChannelBuffer* pRpcChannelBuffer, 671 PRPC_MESSAGE pRpcMessage, 672 DWORD* pdwStubPhase); 673 HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetInputPrefType_Proxy( 674 IMFTopologyNode* This, 675 DWORD dwInputIndex, 676 DWORD *pcbData, 677 BYTE **ppbData); 678 void __RPC_STUB IMFTopologyNode_RemoteGetInputPrefType_Stub( 679 IRpcStubBuffer* This, 680 IRpcChannelBuffer* pRpcChannelBuffer, 681 PRPC_MESSAGE pRpcMessage, 682 DWORD* pdwStubPhase); 683 HRESULT CALLBACK IMFTopologyNode_GetOutputPrefType_Proxy( 684 IMFTopologyNode* This, 685 DWORD dwOutputIndex, 686 IMFMediaType **ppType); 687 HRESULT __RPC_STUB IMFTopologyNode_GetOutputPrefType_Stub( 688 IMFTopologyNode* This, 689 DWORD dwOutputIndex, 690 DWORD *pcbData, 691 BYTE **ppbData); 692 HRESULT CALLBACK IMFTopologyNode_GetInputPrefType_Proxy( 693 IMFTopologyNode* This, 694 DWORD dwInputIndex, 695 IMFMediaType **ppType); 696 HRESULT __RPC_STUB IMFTopologyNode_GetInputPrefType_Stub( 697 IMFTopologyNode* This, 698 DWORD dwInputIndex, 699 DWORD *pcbData, 700 BYTE **ppbData); 701 702 #endif /* __IMFTopologyNode_INTERFACE_DEFINED__ */ 703 704 /***************************************************************************** 705 * IMFTopology interface 706 */ 707 #ifndef __IMFTopology_INTERFACE_DEFINED__ 708 #define __IMFTopology_INTERFACE_DEFINED__ 709 710 DEFINE_GUID(IID_IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33); 711 #if defined(__cplusplus) && !defined(CINTERFACE) 712 MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc433") 713 IMFTopology : public IMFAttributes 714 { 715 virtual HRESULT STDMETHODCALLTYPE GetTopologyID( 716 TOPOID *pID) = 0; 717 718 virtual HRESULT STDMETHODCALLTYPE AddNode( 719 IMFTopologyNode *pNode) = 0; 720 721 virtual HRESULT STDMETHODCALLTYPE RemoveNode( 722 IMFTopologyNode *pNode) = 0; 723 724 virtual HRESULT STDMETHODCALLTYPE GetNodeCount( 725 WORD *pwNodes) = 0; 726 727 virtual HRESULT STDMETHODCALLTYPE GetNode( 728 WORD wIndex, 729 IMFTopologyNode **ppNode) = 0; 730 731 virtual HRESULT STDMETHODCALLTYPE Clear( 732 ) = 0; 733 734 virtual HRESULT STDMETHODCALLTYPE CloneFrom( 735 IMFTopology *pTopology) = 0; 736 737 virtual HRESULT STDMETHODCALLTYPE GetNodeByID( 738 TOPOID qwTopoNodeID, 739 IMFTopologyNode **ppNode) = 0; 740 741 virtual HRESULT STDMETHODCALLTYPE GetSourceNodeCollection( 742 IMFCollection **ppCollection) = 0; 743 744 virtual HRESULT STDMETHODCALLTYPE GetOutputNodeCollection( 745 IMFCollection **ppCollection) = 0; 746 747 }; 748 #ifdef __CRT_UUID_DECL 749 __CRT_UUID_DECL(IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33) 750 #endif 751 #else 752 typedef struct IMFTopologyVtbl { 753 BEGIN_INTERFACE 754 755 /*** IUnknown methods ***/ 756 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 757 IMFTopology *This, 758 REFIID riid, 759 void **ppvObject); 760 761 ULONG (STDMETHODCALLTYPE *AddRef)( 762 IMFTopology *This); 763 764 ULONG (STDMETHODCALLTYPE *Release)( 765 IMFTopology *This); 766 767 /*** IMFAttributes methods ***/ 768 HRESULT (STDMETHODCALLTYPE *GetItem)( 769 IMFTopology *This, 770 REFGUID guidKey, 771 PROPVARIANT *pValue); 772 773 HRESULT (STDMETHODCALLTYPE *GetItemType)( 774 IMFTopology *This, 775 REFGUID guidKey, 776 MF_ATTRIBUTE_TYPE *pType); 777 778 HRESULT (STDMETHODCALLTYPE *CompareItem)( 779 IMFTopology *This, 780 REFGUID guidKey, 781 REFPROPVARIANT Value, 782 WINBOOL *pbResult); 783 784 HRESULT (STDMETHODCALLTYPE *Compare)( 785 IMFTopology *This, 786 IMFAttributes *pTheirs, 787 MF_ATTRIBUTES_MATCH_TYPE MatchType, 788 WINBOOL *pbResult); 789 790 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 791 IMFTopology *This, 792 REFGUID guidKey, 793 UINT32 *punValue); 794 795 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 796 IMFTopology *This, 797 REFGUID guidKey, 798 UINT64 *punValue); 799 800 HRESULT (STDMETHODCALLTYPE *GetDouble)( 801 IMFTopology *This, 802 REFGUID guidKey, 803 double *pfValue); 804 805 HRESULT (STDMETHODCALLTYPE *GetGUID)( 806 IMFTopology *This, 807 REFGUID guidKey, 808 GUID *pguidValue); 809 810 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 811 IMFTopology *This, 812 REFGUID guidKey, 813 UINT32 *pcchLength); 814 815 HRESULT (STDMETHODCALLTYPE *GetString)( 816 IMFTopology *This, 817 REFGUID guidKey, 818 LPWSTR pwszValue, 819 UINT32 cchBufSize, 820 UINT32 *pcchLength); 821 822 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 823 IMFTopology *This, 824 REFGUID guidKey, 825 LPWSTR *ppwszValue, 826 UINT32 *pcchLength); 827 828 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 829 IMFTopology *This, 830 REFGUID guidKey, 831 UINT32 *pcbBlobSize); 832 833 HRESULT (STDMETHODCALLTYPE *GetBlob)( 834 IMFTopology *This, 835 REFGUID guidKey, 836 UINT8 *pBuf, 837 UINT32 cbBufSize, 838 UINT32 *pcbBlobSize); 839 840 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 841 IMFTopology *This, 842 REFGUID guidKey, 843 UINT8 **ppBuf, 844 UINT32 *pcbSize); 845 846 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 847 IMFTopology *This, 848 REFGUID guidKey, 849 REFIID riid, 850 LPVOID *ppv); 851 852 HRESULT (STDMETHODCALLTYPE *SetItem)( 853 IMFTopology *This, 854 REFGUID guidKey, 855 REFPROPVARIANT Value); 856 857 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 858 IMFTopology *This, 859 REFGUID guidKey); 860 861 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 862 IMFTopology *This); 863 864 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 865 IMFTopology *This, 866 REFGUID guidKey, 867 UINT32 unValue); 868 869 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 870 IMFTopology *This, 871 REFGUID guidKey, 872 UINT64 unValue); 873 874 HRESULT (STDMETHODCALLTYPE *SetDouble)( 875 IMFTopology *This, 876 REFGUID guidKey, 877 double fValue); 878 879 HRESULT (STDMETHODCALLTYPE *SetGUID)( 880 IMFTopology *This, 881 REFGUID guidKey, 882 REFGUID guidValue); 883 884 HRESULT (STDMETHODCALLTYPE *SetString)( 885 IMFTopology *This, 886 REFGUID guidKey, 887 LPCWSTR wszValue); 888 889 HRESULT (STDMETHODCALLTYPE *SetBlob)( 890 IMFTopology *This, 891 REFGUID guidKey, 892 const UINT8 *pBuf, 893 UINT32 cbBufSize); 894 895 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 896 IMFTopology *This, 897 REFGUID guidKey, 898 IUnknown *pUnknown); 899 900 HRESULT (STDMETHODCALLTYPE *LockStore)( 901 IMFTopology *This); 902 903 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 904 IMFTopology *This); 905 906 HRESULT (STDMETHODCALLTYPE *GetCount)( 907 IMFTopology *This, 908 UINT32 *pcItems); 909 910 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 911 IMFTopology *This, 912 UINT32 unIndex, 913 GUID *pguidKey, 914 PROPVARIANT *pValue); 915 916 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 917 IMFTopology *This, 918 IMFAttributes *pDest); 919 920 /*** IMFTopology methods ***/ 921 HRESULT (STDMETHODCALLTYPE *GetTopologyID)( 922 IMFTopology *This, 923 TOPOID *pID); 924 925 HRESULT (STDMETHODCALLTYPE *AddNode)( 926 IMFTopology *This, 927 IMFTopologyNode *pNode); 928 929 HRESULT (STDMETHODCALLTYPE *RemoveNode)( 930 IMFTopology *This, 931 IMFTopologyNode *pNode); 932 933 HRESULT (STDMETHODCALLTYPE *GetNodeCount)( 934 IMFTopology *This, 935 WORD *pwNodes); 936 937 HRESULT (STDMETHODCALLTYPE *GetNode)( 938 IMFTopology *This, 939 WORD wIndex, 940 IMFTopologyNode **ppNode); 941 942 HRESULT (STDMETHODCALLTYPE *Clear)( 943 IMFTopology *This); 944 945 HRESULT (STDMETHODCALLTYPE *CloneFrom)( 946 IMFTopology *This, 947 IMFTopology *pTopology); 948 949 HRESULT (STDMETHODCALLTYPE *GetNodeByID)( 950 IMFTopology *This, 951 TOPOID qwTopoNodeID, 952 IMFTopologyNode **ppNode); 953 954 HRESULT (STDMETHODCALLTYPE *GetSourceNodeCollection)( 955 IMFTopology *This, 956 IMFCollection **ppCollection); 957 958 HRESULT (STDMETHODCALLTYPE *GetOutputNodeCollection)( 959 IMFTopology *This, 960 IMFCollection **ppCollection); 961 962 END_INTERFACE 963 } IMFTopologyVtbl; 964 965 interface IMFTopology { 966 CONST_VTBL IMFTopologyVtbl* lpVtbl; 967 }; 968 969 #ifdef COBJMACROS 970 #ifndef WIDL_C_INLINE_WRAPPERS 971 /*** IUnknown methods ***/ 972 #define IMFTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 973 #define IMFTopology_AddRef(This) (This)->lpVtbl->AddRef(This) 974 #define IMFTopology_Release(This) (This)->lpVtbl->Release(This) 975 /*** IMFAttributes methods ***/ 976 #define IMFTopology_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 977 #define IMFTopology_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 978 #define IMFTopology_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 979 #define IMFTopology_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 980 #define IMFTopology_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 981 #define IMFTopology_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 982 #define IMFTopology_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 983 #define IMFTopology_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 984 #define IMFTopology_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 985 #define IMFTopology_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 986 #define IMFTopology_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 987 #define IMFTopology_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 988 #define IMFTopology_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 989 #define IMFTopology_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 990 #define IMFTopology_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 991 #define IMFTopology_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 992 #define IMFTopology_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 993 #define IMFTopology_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 994 #define IMFTopology_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 995 #define IMFTopology_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 996 #define IMFTopology_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 997 #define IMFTopology_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 998 #define IMFTopology_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 999 #define IMFTopology_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 1000 #define IMFTopology_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 1001 #define IMFTopology_LockStore(This) (This)->lpVtbl->LockStore(This) 1002 #define IMFTopology_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 1003 #define IMFTopology_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 1004 #define IMFTopology_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 1005 #define IMFTopology_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 1006 /*** IMFTopology methods ***/ 1007 #define IMFTopology_GetTopologyID(This,pID) (This)->lpVtbl->GetTopologyID(This,pID) 1008 #define IMFTopology_AddNode(This,pNode) (This)->lpVtbl->AddNode(This,pNode) 1009 #define IMFTopology_RemoveNode(This,pNode) (This)->lpVtbl->RemoveNode(This,pNode) 1010 #define IMFTopology_GetNodeCount(This,pwNodes) (This)->lpVtbl->GetNodeCount(This,pwNodes) 1011 #define IMFTopology_GetNode(This,wIndex,ppNode) (This)->lpVtbl->GetNode(This,wIndex,ppNode) 1012 #define IMFTopology_Clear(This) (This)->lpVtbl->Clear(This) 1013 #define IMFTopology_CloneFrom(This,pTopology) (This)->lpVtbl->CloneFrom(This,pTopology) 1014 #define IMFTopology_GetNodeByID(This,qwTopoNodeID,ppNode) (This)->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode) 1015 #define IMFTopology_GetSourceNodeCollection(This,ppCollection) (This)->lpVtbl->GetSourceNodeCollection(This,ppCollection) 1016 #define IMFTopology_GetOutputNodeCollection(This,ppCollection) (This)->lpVtbl->GetOutputNodeCollection(This,ppCollection) 1017 #else 1018 /*** IUnknown methods ***/ 1019 static FORCEINLINE HRESULT IMFTopology_QueryInterface(IMFTopology* This,REFIID riid,void **ppvObject) { 1020 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1021 } 1022 static FORCEINLINE ULONG IMFTopology_AddRef(IMFTopology* This) { 1023 return This->lpVtbl->AddRef(This); 1024 } 1025 static FORCEINLINE ULONG IMFTopology_Release(IMFTopology* This) { 1026 return This->lpVtbl->Release(This); 1027 } 1028 /*** IMFAttributes methods ***/ 1029 static FORCEINLINE HRESULT IMFTopology_GetItem(IMFTopology* This,REFGUID guidKey,PROPVARIANT *pValue) { 1030 return This->lpVtbl->GetItem(This,guidKey,pValue); 1031 } 1032 static FORCEINLINE HRESULT IMFTopology_GetItemType(IMFTopology* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 1033 return This->lpVtbl->GetItemType(This,guidKey,pType); 1034 } 1035 static FORCEINLINE HRESULT IMFTopology_CompareItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 1036 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 1037 } 1038 static FORCEINLINE HRESULT IMFTopology_Compare(IMFTopology* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 1039 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 1040 } 1041 static FORCEINLINE HRESULT IMFTopology_GetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 *punValue) { 1042 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 1043 } 1044 static FORCEINLINE HRESULT IMFTopology_GetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 *punValue) { 1045 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 1046 } 1047 static FORCEINLINE HRESULT IMFTopology_GetDouble(IMFTopology* This,REFGUID guidKey,double *pfValue) { 1048 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 1049 } 1050 static FORCEINLINE HRESULT IMFTopology_GetGUID(IMFTopology* This,REFGUID guidKey,GUID *pguidValue) { 1051 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 1052 } 1053 static FORCEINLINE HRESULT IMFTopology_GetStringLength(IMFTopology* This,REFGUID guidKey,UINT32 *pcchLength) { 1054 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 1055 } 1056 static FORCEINLINE HRESULT IMFTopology_GetString(IMFTopology* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 1057 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 1058 } 1059 static FORCEINLINE HRESULT IMFTopology_GetAllocatedString(IMFTopology* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 1060 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 1061 } 1062 static FORCEINLINE HRESULT IMFTopology_GetBlobSize(IMFTopology* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 1063 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 1064 } 1065 static FORCEINLINE HRESULT IMFTopology_GetBlob(IMFTopology* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 1066 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 1067 } 1068 static FORCEINLINE HRESULT IMFTopology_GetAllocatedBlob(IMFTopology* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 1069 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 1070 } 1071 static FORCEINLINE HRESULT IMFTopology_GetUnknown(IMFTopology* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 1072 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 1073 } 1074 static FORCEINLINE HRESULT IMFTopology_SetItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value) { 1075 return This->lpVtbl->SetItem(This,guidKey,Value); 1076 } 1077 static FORCEINLINE HRESULT IMFTopology_DeleteItem(IMFTopology* This,REFGUID guidKey) { 1078 return This->lpVtbl->DeleteItem(This,guidKey); 1079 } 1080 static FORCEINLINE HRESULT IMFTopology_DeleteAllItems(IMFTopology* This) { 1081 return This->lpVtbl->DeleteAllItems(This); 1082 } 1083 static FORCEINLINE HRESULT IMFTopology_SetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 unValue) { 1084 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 1085 } 1086 static FORCEINLINE HRESULT IMFTopology_SetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 unValue) { 1087 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 1088 } 1089 static FORCEINLINE HRESULT IMFTopology_SetDouble(IMFTopology* This,REFGUID guidKey,double fValue) { 1090 return This->lpVtbl->SetDouble(This,guidKey,fValue); 1091 } 1092 static FORCEINLINE HRESULT IMFTopology_SetGUID(IMFTopology* This,REFGUID guidKey,REFGUID guidValue) { 1093 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 1094 } 1095 static FORCEINLINE HRESULT IMFTopology_SetString(IMFTopology* This,REFGUID guidKey,LPCWSTR wszValue) { 1096 return This->lpVtbl->SetString(This,guidKey,wszValue); 1097 } 1098 static FORCEINLINE HRESULT IMFTopology_SetBlob(IMFTopology* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 1099 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 1100 } 1101 static FORCEINLINE HRESULT IMFTopology_SetUnknown(IMFTopology* This,REFGUID guidKey,IUnknown *pUnknown) { 1102 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 1103 } 1104 static FORCEINLINE HRESULT IMFTopology_LockStore(IMFTopology* This) { 1105 return This->lpVtbl->LockStore(This); 1106 } 1107 static FORCEINLINE HRESULT IMFTopology_UnlockStore(IMFTopology* This) { 1108 return This->lpVtbl->UnlockStore(This); 1109 } 1110 static FORCEINLINE HRESULT IMFTopology_GetCount(IMFTopology* This,UINT32 *pcItems) { 1111 return This->lpVtbl->GetCount(This,pcItems); 1112 } 1113 static FORCEINLINE HRESULT IMFTopology_GetItemByIndex(IMFTopology* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 1114 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 1115 } 1116 static FORCEINLINE HRESULT IMFTopology_CopyAllItems(IMFTopology* This,IMFAttributes *pDest) { 1117 return This->lpVtbl->CopyAllItems(This,pDest); 1118 } 1119 /*** IMFTopology methods ***/ 1120 static FORCEINLINE HRESULT IMFTopology_GetTopologyID(IMFTopology* This,TOPOID *pID) { 1121 return This->lpVtbl->GetTopologyID(This,pID); 1122 } 1123 static FORCEINLINE HRESULT IMFTopology_AddNode(IMFTopology* This,IMFTopologyNode *pNode) { 1124 return This->lpVtbl->AddNode(This,pNode); 1125 } 1126 static FORCEINLINE HRESULT IMFTopology_RemoveNode(IMFTopology* This,IMFTopologyNode *pNode) { 1127 return This->lpVtbl->RemoveNode(This,pNode); 1128 } 1129 static FORCEINLINE HRESULT IMFTopology_GetNodeCount(IMFTopology* This,WORD *pwNodes) { 1130 return This->lpVtbl->GetNodeCount(This,pwNodes); 1131 } 1132 static FORCEINLINE HRESULT IMFTopology_GetNode(IMFTopology* This,WORD wIndex,IMFTopologyNode **ppNode) { 1133 return This->lpVtbl->GetNode(This,wIndex,ppNode); 1134 } 1135 static FORCEINLINE HRESULT IMFTopology_Clear(IMFTopology* This) { 1136 return This->lpVtbl->Clear(This); 1137 } 1138 static FORCEINLINE HRESULT IMFTopology_CloneFrom(IMFTopology* This,IMFTopology *pTopology) { 1139 return This->lpVtbl->CloneFrom(This,pTopology); 1140 } 1141 static FORCEINLINE HRESULT IMFTopology_GetNodeByID(IMFTopology* This,TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) { 1142 return This->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode); 1143 } 1144 static FORCEINLINE HRESULT IMFTopology_GetSourceNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1145 return This->lpVtbl->GetSourceNodeCollection(This,ppCollection); 1146 } 1147 static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1148 return This->lpVtbl->GetOutputNodeCollection(This,ppCollection); 1149 } 1150 #endif 1151 #endif 1152 1153 #endif 1154 1155 1156 #endif /* __IMFTopology_INTERFACE_DEFINED__ */ 1157 1158 typedef LONGLONG MFTIME; 1159 typedef enum _MF_CLOCK_STATE { 1160 MFCLOCK_STATE_INVALID = 0, 1161 MFCLOCK_STATE_RUNNING = 1, 1162 MFCLOCK_STATE_STOPPED = 2, 1163 MFCLOCK_STATE_PAUSED = 3 1164 } MF_CLOCK_STATE; 1165 typedef enum _MF_CLOCK_STATE MFCLOCK_STATE; 1166 typedef struct _MFCLOCK_PROPERTIES { 1167 UINT64 qwCorrelationRate; 1168 GUID guidClockId; 1169 DWORD dwClockFlags; 1170 UINT64 qwClockFrequency; 1171 DWORD dwClockTolerance; 1172 DWORD dwClockJitter; 1173 } MFCLOCK_PROPERTIES; 1174 /***************************************************************************** 1175 * IMFClock interface 1176 */ 1177 #ifndef __IMFClock_INTERFACE_DEFINED__ 1178 #define __IMFClock_INTERFACE_DEFINED__ 1179 1180 DEFINE_GUID(IID_IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30); 1181 #if defined(__cplusplus) && !defined(CINTERFACE) 1182 MIDL_INTERFACE("2eb1e945-18b8-4139-9b1a-d5d584818530") 1183 IMFClock : public IUnknown 1184 { 1185 virtual HRESULT STDMETHODCALLTYPE GetClockCharacteristics( 1186 DWORD *pdwCharacteristics) = 0; 1187 1188 virtual HRESULT STDMETHODCALLTYPE GetCorrelatedTime( 1189 DWORD dwReserved, 1190 LONGLONG *pllClockTime, 1191 MFTIME *phnsSystemTime) = 0; 1192 1193 virtual HRESULT STDMETHODCALLTYPE GetContinuityKey( 1194 DWORD *pdwContinuityKey) = 0; 1195 1196 virtual HRESULT STDMETHODCALLTYPE GetState( 1197 DWORD dwReserved, 1198 MFCLOCK_STATE *peClockState) = 0; 1199 1200 virtual HRESULT STDMETHODCALLTYPE GetProperties( 1201 MFCLOCK_PROPERTIES *pClockProperties) = 0; 1202 1203 }; 1204 #ifdef __CRT_UUID_DECL 1205 __CRT_UUID_DECL(IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30) 1206 #endif 1207 #else 1208 typedef struct IMFClockVtbl { 1209 BEGIN_INTERFACE 1210 1211 /*** IUnknown methods ***/ 1212 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1213 IMFClock *This, 1214 REFIID riid, 1215 void **ppvObject); 1216 1217 ULONG (STDMETHODCALLTYPE *AddRef)( 1218 IMFClock *This); 1219 1220 ULONG (STDMETHODCALLTYPE *Release)( 1221 IMFClock *This); 1222 1223 /*** IMFClock methods ***/ 1224 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)( 1225 IMFClock *This, 1226 DWORD *pdwCharacteristics); 1227 1228 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)( 1229 IMFClock *This, 1230 DWORD dwReserved, 1231 LONGLONG *pllClockTime, 1232 MFTIME *phnsSystemTime); 1233 1234 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)( 1235 IMFClock *This, 1236 DWORD *pdwContinuityKey); 1237 1238 HRESULT (STDMETHODCALLTYPE *GetState)( 1239 IMFClock *This, 1240 DWORD dwReserved, 1241 MFCLOCK_STATE *peClockState); 1242 1243 HRESULT (STDMETHODCALLTYPE *GetProperties)( 1244 IMFClock *This, 1245 MFCLOCK_PROPERTIES *pClockProperties); 1246 1247 END_INTERFACE 1248 } IMFClockVtbl; 1249 1250 interface IMFClock { 1251 CONST_VTBL IMFClockVtbl* lpVtbl; 1252 }; 1253 1254 #ifdef COBJMACROS 1255 #ifndef WIDL_C_INLINE_WRAPPERS 1256 /*** IUnknown methods ***/ 1257 #define IMFClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1258 #define IMFClock_AddRef(This) (This)->lpVtbl->AddRef(This) 1259 #define IMFClock_Release(This) (This)->lpVtbl->Release(This) 1260 /*** IMFClock methods ***/ 1261 #define IMFClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics) 1262 #define IMFClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) 1263 #define IMFClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey) 1264 #define IMFClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState) 1265 #define IMFClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties) 1266 #else 1267 /*** IUnknown methods ***/ 1268 static FORCEINLINE HRESULT IMFClock_QueryInterface(IMFClock* This,REFIID riid,void **ppvObject) { 1269 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1270 } 1271 static FORCEINLINE ULONG IMFClock_AddRef(IMFClock* This) { 1272 return This->lpVtbl->AddRef(This); 1273 } 1274 static FORCEINLINE ULONG IMFClock_Release(IMFClock* This) { 1275 return This->lpVtbl->Release(This); 1276 } 1277 /*** IMFClock methods ***/ 1278 static FORCEINLINE HRESULT IMFClock_GetClockCharacteristics(IMFClock* This,DWORD *pdwCharacteristics) { 1279 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics); 1280 } 1281 static FORCEINLINE HRESULT IMFClock_GetCorrelatedTime(IMFClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) { 1282 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime); 1283 } 1284 static FORCEINLINE HRESULT IMFClock_GetContinuityKey(IMFClock* This,DWORD *pdwContinuityKey) { 1285 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey); 1286 } 1287 static FORCEINLINE HRESULT IMFClock_GetState(IMFClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) { 1288 return This->lpVtbl->GetState(This,dwReserved,peClockState); 1289 } 1290 static FORCEINLINE HRESULT IMFClock_GetProperties(IMFClock* This,MFCLOCK_PROPERTIES *pClockProperties) { 1291 return This->lpVtbl->GetProperties(This,pClockProperties); 1292 } 1293 #endif 1294 #endif 1295 1296 #endif 1297 1298 1299 #endif /* __IMFClock_INTERFACE_DEFINED__ */ 1300 1301 #define SHA_HASH_LEN 20 1302 #define STR_HASH_LEN (SHA_HASH_LEN*2+3) 1303 typedef struct _MFRR_COMPONENT_HASH_INFO { 1304 DWORD ulReason; 1305 WCHAR rgHeaderHash[STR_HASH_LEN]; 1306 WCHAR rgPublicKeyHash[STR_HASH_LEN]; 1307 WCHAR wszName[MAX_PATH]; 1308 } MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO; 1309 EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a); 1310 typedef enum _MF_CONNECT_METHOD { 1311 MF_CONNECT_DIRECT = 0x0, 1312 MF_CONNECT_ALLOW_CONVERTER = 0x1, 1313 MF_CONNECT_ALLOW_DECODER = 0x3, 1314 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x4, 1315 MF_CONNECT_AS_OPTIONAL = 0x10000, 1316 MF_CONNECT_AS_OPTIONAL_BRANCH = 0x20000 1317 } MF_CONNECT_METHOD; 1318 /***************************************************************************** 1319 * IMFMediaSession interface 1320 */ 1321 #ifndef __IMFMediaSession_INTERFACE_DEFINED__ 1322 #define __IMFMediaSession_INTERFACE_DEFINED__ 1323 1324 DEFINE_GUID(IID_IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27); 1325 #if defined(__cplusplus) && !defined(CINTERFACE) 1326 MIDL_INTERFACE("90377834-21d0-4dee-8214-ba2e3e6c1127") 1327 IMFMediaSession : public IMFMediaEventGenerator 1328 { 1329 virtual HRESULT STDMETHODCALLTYPE SetTopology( 1330 DWORD dwSetTopologyFlags, 1331 IMFTopology *pTopology) = 0; 1332 1333 virtual HRESULT STDMETHODCALLTYPE ClearTopologies( 1334 ) = 0; 1335 1336 virtual HRESULT STDMETHODCALLTYPE Start( 1337 const GUID *pguidTimeFormat, 1338 const PROPVARIANT *pvarStartPosition) = 0; 1339 1340 virtual HRESULT STDMETHODCALLTYPE Pause( 1341 ) = 0; 1342 1343 virtual HRESULT STDMETHODCALLTYPE Stop( 1344 ) = 0; 1345 1346 virtual HRESULT STDMETHODCALLTYPE Close( 1347 ) = 0; 1348 1349 virtual HRESULT STDMETHODCALLTYPE Shutdown( 1350 ) = 0; 1351 1352 virtual HRESULT STDMETHODCALLTYPE GetClock( 1353 IMFClock **ppClock) = 0; 1354 1355 virtual HRESULT STDMETHODCALLTYPE GetSessionCapabilities( 1356 DWORD *pdwCaps) = 0; 1357 1358 virtual HRESULT STDMETHODCALLTYPE GetFullTopology( 1359 DWORD dwGetFullTopologyFlags, 1360 TOPOID TopoId, 1361 IMFTopology **ppFullTopology) = 0; 1362 1363 }; 1364 #ifdef __CRT_UUID_DECL 1365 __CRT_UUID_DECL(IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27) 1366 #endif 1367 #else 1368 typedef struct IMFMediaSessionVtbl { 1369 BEGIN_INTERFACE 1370 1371 /*** IUnknown methods ***/ 1372 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1373 IMFMediaSession *This, 1374 REFIID riid, 1375 void **ppvObject); 1376 1377 ULONG (STDMETHODCALLTYPE *AddRef)( 1378 IMFMediaSession *This); 1379 1380 ULONG (STDMETHODCALLTYPE *Release)( 1381 IMFMediaSession *This); 1382 1383 /*** IMFMediaEventGenerator methods ***/ 1384 HRESULT (STDMETHODCALLTYPE *GetEvent)( 1385 IMFMediaSession *This, 1386 DWORD dwFlags, 1387 IMFMediaEvent **ppEvent); 1388 1389 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 1390 IMFMediaSession *This, 1391 IMFAsyncCallback *pCallback, 1392 IUnknown *punkState); 1393 1394 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 1395 IMFMediaSession *This, 1396 IMFAsyncResult *pResult, 1397 IMFMediaEvent **ppEvent); 1398 1399 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 1400 IMFMediaSession *This, 1401 MediaEventType met, 1402 REFGUID guidExtendedType, 1403 HRESULT hrStatus, 1404 const PROPVARIANT *pvValue); 1405 1406 /*** IMFMediaSession methods ***/ 1407 HRESULT (STDMETHODCALLTYPE *SetTopology)( 1408 IMFMediaSession *This, 1409 DWORD dwSetTopologyFlags, 1410 IMFTopology *pTopology); 1411 1412 HRESULT (STDMETHODCALLTYPE *ClearTopologies)( 1413 IMFMediaSession *This); 1414 1415 HRESULT (STDMETHODCALLTYPE *Start)( 1416 IMFMediaSession *This, 1417 const GUID *pguidTimeFormat, 1418 const PROPVARIANT *pvarStartPosition); 1419 1420 HRESULT (STDMETHODCALLTYPE *Pause)( 1421 IMFMediaSession *This); 1422 1423 HRESULT (STDMETHODCALLTYPE *Stop)( 1424 IMFMediaSession *This); 1425 1426 HRESULT (STDMETHODCALLTYPE *Close)( 1427 IMFMediaSession *This); 1428 1429 HRESULT (STDMETHODCALLTYPE *Shutdown)( 1430 IMFMediaSession *This); 1431 1432 HRESULT (STDMETHODCALLTYPE *GetClock)( 1433 IMFMediaSession *This, 1434 IMFClock **ppClock); 1435 1436 HRESULT (STDMETHODCALLTYPE *GetSessionCapabilities)( 1437 IMFMediaSession *This, 1438 DWORD *pdwCaps); 1439 1440 HRESULT (STDMETHODCALLTYPE *GetFullTopology)( 1441 IMFMediaSession *This, 1442 DWORD dwGetFullTopologyFlags, 1443 TOPOID TopoId, 1444 IMFTopology **ppFullTopology); 1445 1446 END_INTERFACE 1447 } IMFMediaSessionVtbl; 1448 1449 interface IMFMediaSession { 1450 CONST_VTBL IMFMediaSessionVtbl* lpVtbl; 1451 }; 1452 1453 #ifdef COBJMACROS 1454 #ifndef WIDL_C_INLINE_WRAPPERS 1455 /*** IUnknown methods ***/ 1456 #define IMFMediaSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1457 #define IMFMediaSession_AddRef(This) (This)->lpVtbl->AddRef(This) 1458 #define IMFMediaSession_Release(This) (This)->lpVtbl->Release(This) 1459 /*** IMFMediaEventGenerator methods ***/ 1460 #define IMFMediaSession_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 1461 #define IMFMediaSession_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 1462 #define IMFMediaSession_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 1463 #define IMFMediaSession_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 1464 /*** IMFMediaSession methods ***/ 1465 #define IMFMediaSession_SetTopology(This,dwSetTopologyFlags,pTopology) (This)->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology) 1466 #define IMFMediaSession_ClearTopologies(This) (This)->lpVtbl->ClearTopologies(This) 1467 #define IMFMediaSession_Start(This,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition) 1468 #define IMFMediaSession_Pause(This) (This)->lpVtbl->Pause(This) 1469 #define IMFMediaSession_Stop(This) (This)->lpVtbl->Stop(This) 1470 #define IMFMediaSession_Close(This) (This)->lpVtbl->Close(This) 1471 #define IMFMediaSession_Shutdown(This) (This)->lpVtbl->Shutdown(This) 1472 #define IMFMediaSession_GetClock(This,ppClock) (This)->lpVtbl->GetClock(This,ppClock) 1473 #define IMFMediaSession_GetSessionCapabilities(This,pdwCaps) (This)->lpVtbl->GetSessionCapabilities(This,pdwCaps) 1474 #define IMFMediaSession_GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) (This)->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) 1475 #else 1476 /*** IUnknown methods ***/ 1477 static FORCEINLINE HRESULT IMFMediaSession_QueryInterface(IMFMediaSession* This,REFIID riid,void **ppvObject) { 1478 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1479 } 1480 static FORCEINLINE ULONG IMFMediaSession_AddRef(IMFMediaSession* This) { 1481 return This->lpVtbl->AddRef(This); 1482 } 1483 static FORCEINLINE ULONG IMFMediaSession_Release(IMFMediaSession* This) { 1484 return This->lpVtbl->Release(This); 1485 } 1486 /*** IMFMediaEventGenerator methods ***/ 1487 static FORCEINLINE HRESULT IMFMediaSession_GetEvent(IMFMediaSession* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 1488 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 1489 } 1490 static FORCEINLINE HRESULT IMFMediaSession_BeginGetEvent(IMFMediaSession* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 1491 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 1492 } 1493 static FORCEINLINE HRESULT IMFMediaSession_EndGetEvent(IMFMediaSession* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 1494 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 1495 } 1496 static FORCEINLINE HRESULT IMFMediaSession_QueueEvent(IMFMediaSession* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 1497 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 1498 } 1499 /*** IMFMediaSession methods ***/ 1500 static FORCEINLINE HRESULT IMFMediaSession_SetTopology(IMFMediaSession* This,DWORD dwSetTopologyFlags,IMFTopology *pTopology) { 1501 return This->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology); 1502 } 1503 static FORCEINLINE HRESULT IMFMediaSession_ClearTopologies(IMFMediaSession* This) { 1504 return This->lpVtbl->ClearTopologies(This); 1505 } 1506 static FORCEINLINE HRESULT IMFMediaSession_Start(IMFMediaSession* This,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 1507 return This->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition); 1508 } 1509 static FORCEINLINE HRESULT IMFMediaSession_Pause(IMFMediaSession* This) { 1510 return This->lpVtbl->Pause(This); 1511 } 1512 static FORCEINLINE HRESULT IMFMediaSession_Stop(IMFMediaSession* This) { 1513 return This->lpVtbl->Stop(This); 1514 } 1515 static FORCEINLINE HRESULT IMFMediaSession_Close(IMFMediaSession* This) { 1516 return This->lpVtbl->Close(This); 1517 } 1518 static FORCEINLINE HRESULT IMFMediaSession_Shutdown(IMFMediaSession* This) { 1519 return This->lpVtbl->Shutdown(This); 1520 } 1521 static FORCEINLINE HRESULT IMFMediaSession_GetClock(IMFMediaSession* This,IMFClock **ppClock) { 1522 return This->lpVtbl->GetClock(This,ppClock); 1523 } 1524 static FORCEINLINE HRESULT IMFMediaSession_GetSessionCapabilities(IMFMediaSession* This,DWORD *pdwCaps) { 1525 return This->lpVtbl->GetSessionCapabilities(This,pdwCaps); 1526 } 1527 static FORCEINLINE HRESULT IMFMediaSession_GetFullTopology(IMFMediaSession* This,DWORD dwGetFullTopologyFlags,TOPOID TopoId,IMFTopology **ppFullTopology) { 1528 return This->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology); 1529 } 1530 #endif 1531 #endif 1532 1533 #endif 1534 1535 1536 #endif /* __IMFMediaSession_INTERFACE_DEFINED__ */ 1537 1538 /***************************************************************************** 1539 * IMFMediaTypeHandler interface 1540 */ 1541 #ifndef __IMFMediaTypeHandler_INTERFACE_DEFINED__ 1542 #define __IMFMediaTypeHandler_INTERFACE_DEFINED__ 1543 1544 DEFINE_GUID(IID_IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5); 1545 #if defined(__cplusplus) && !defined(CINTERFACE) 1546 MIDL_INTERFACE("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5") 1547 IMFMediaTypeHandler : public IUnknown 1548 { 1549 virtual HRESULT STDMETHODCALLTYPE IsMediaTypeSupported( 1550 IMFMediaType *pMediaType, 1551 IMFMediaType **ppMediaType) = 0; 1552 1553 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeCount( 1554 DWORD *pdwTypeCount) = 0; 1555 1556 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeByIndex( 1557 DWORD dwIndex, 1558 IMFMediaType **ppType) = 0; 1559 1560 virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType( 1561 IMFMediaType *pMediaType) = 0; 1562 1563 virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType( 1564 IMFMediaType **ppMediaType) = 0; 1565 1566 virtual HRESULT STDMETHODCALLTYPE GetMajorType( 1567 GUID *pguidMajorType) = 0; 1568 1569 }; 1570 #ifdef __CRT_UUID_DECL 1571 __CRT_UUID_DECL(IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5) 1572 #endif 1573 #else 1574 typedef struct IMFMediaTypeHandlerVtbl { 1575 BEGIN_INTERFACE 1576 1577 /*** IUnknown methods ***/ 1578 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1579 IMFMediaTypeHandler *This, 1580 REFIID riid, 1581 void **ppvObject); 1582 1583 ULONG (STDMETHODCALLTYPE *AddRef)( 1584 IMFMediaTypeHandler *This); 1585 1586 ULONG (STDMETHODCALLTYPE *Release)( 1587 IMFMediaTypeHandler *This); 1588 1589 /*** IMFMediaTypeHandler methods ***/ 1590 HRESULT (STDMETHODCALLTYPE *IsMediaTypeSupported)( 1591 IMFMediaTypeHandler *This, 1592 IMFMediaType *pMediaType, 1593 IMFMediaType **ppMediaType); 1594 1595 HRESULT (STDMETHODCALLTYPE *GetMediaTypeCount)( 1596 IMFMediaTypeHandler *This, 1597 DWORD *pdwTypeCount); 1598 1599 HRESULT (STDMETHODCALLTYPE *GetMediaTypeByIndex)( 1600 IMFMediaTypeHandler *This, 1601 DWORD dwIndex, 1602 IMFMediaType **ppType); 1603 1604 HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)( 1605 IMFMediaTypeHandler *This, 1606 IMFMediaType *pMediaType); 1607 1608 HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)( 1609 IMFMediaTypeHandler *This, 1610 IMFMediaType **ppMediaType); 1611 1612 HRESULT (STDMETHODCALLTYPE *GetMajorType)( 1613 IMFMediaTypeHandler *This, 1614 GUID *pguidMajorType); 1615 1616 END_INTERFACE 1617 } IMFMediaTypeHandlerVtbl; 1618 1619 interface IMFMediaTypeHandler { 1620 CONST_VTBL IMFMediaTypeHandlerVtbl* lpVtbl; 1621 }; 1622 1623 #ifdef COBJMACROS 1624 #ifndef WIDL_C_INLINE_WRAPPERS 1625 /*** IUnknown methods ***/ 1626 #define IMFMediaTypeHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1627 #define IMFMediaTypeHandler_AddRef(This) (This)->lpVtbl->AddRef(This) 1628 #define IMFMediaTypeHandler_Release(This) (This)->lpVtbl->Release(This) 1629 /*** IMFMediaTypeHandler methods ***/ 1630 #define IMFMediaTypeHandler_IsMediaTypeSupported(This,pMediaType,ppMediaType) (This)->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType) 1631 #define IMFMediaTypeHandler_GetMediaTypeCount(This,pdwTypeCount) (This)->lpVtbl->GetMediaTypeCount(This,pdwTypeCount) 1632 #define IMFMediaTypeHandler_GetMediaTypeByIndex(This,dwIndex,ppType) (This)->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType) 1633 #define IMFMediaTypeHandler_SetCurrentMediaType(This,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,pMediaType) 1634 #define IMFMediaTypeHandler_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType) 1635 #define IMFMediaTypeHandler_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType) 1636 #else 1637 /*** IUnknown methods ***/ 1638 static FORCEINLINE HRESULT IMFMediaTypeHandler_QueryInterface(IMFMediaTypeHandler* This,REFIID riid,void **ppvObject) { 1639 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1640 } 1641 static FORCEINLINE ULONG IMFMediaTypeHandler_AddRef(IMFMediaTypeHandler* This) { 1642 return This->lpVtbl->AddRef(This); 1643 } 1644 static FORCEINLINE ULONG IMFMediaTypeHandler_Release(IMFMediaTypeHandler* This) { 1645 return This->lpVtbl->Release(This); 1646 } 1647 /*** IMFMediaTypeHandler methods ***/ 1648 static FORCEINLINE HRESULT IMFMediaTypeHandler_IsMediaTypeSupported(IMFMediaTypeHandler* This,IMFMediaType *pMediaType,IMFMediaType **ppMediaType) { 1649 return This->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType); 1650 } 1651 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeCount(IMFMediaTypeHandler* This,DWORD *pdwTypeCount) { 1652 return This->lpVtbl->GetMediaTypeCount(This,pdwTypeCount); 1653 } 1654 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeByIndex(IMFMediaTypeHandler* This,DWORD dwIndex,IMFMediaType **ppType) { 1655 return This->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType); 1656 } 1657 static FORCEINLINE HRESULT IMFMediaTypeHandler_SetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType *pMediaType) { 1658 return This->lpVtbl->SetCurrentMediaType(This,pMediaType); 1659 } 1660 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType **ppMediaType) { 1661 return This->lpVtbl->GetCurrentMediaType(This,ppMediaType); 1662 } 1663 static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMajorType(IMFMediaTypeHandler* This,GUID *pguidMajorType) { 1664 return This->lpVtbl->GetMajorType(This,pguidMajorType); 1665 } 1666 #endif 1667 #endif 1668 1669 #endif 1670 1671 HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_RemoteGetCurrentMediaType_Proxy( 1672 IMFMediaTypeHandler* This, 1673 BYTE **ppbData, 1674 DWORD *pcbData); 1675 void __RPC_STUB IMFMediaTypeHandler_RemoteGetCurrentMediaType_Stub( 1676 IRpcStubBuffer* This, 1677 IRpcChannelBuffer* pRpcChannelBuffer, 1678 PRPC_MESSAGE pRpcMessage, 1679 DWORD* pdwStubPhase); 1680 HRESULT CALLBACK IMFMediaTypeHandler_GetCurrentMediaType_Proxy( 1681 IMFMediaTypeHandler* This, 1682 IMFMediaType **ppMediaType); 1683 HRESULT __RPC_STUB IMFMediaTypeHandler_GetCurrentMediaType_Stub( 1684 IMFMediaTypeHandler* This, 1685 BYTE **ppbData, 1686 DWORD *pcbData); 1687 1688 #endif /* __IMFMediaTypeHandler_INTERFACE_DEFINED__ */ 1689 1690 /***************************************************************************** 1691 * IMFStreamDescriptor interface 1692 */ 1693 #ifndef __IMFStreamDescriptor_INTERFACE_DEFINED__ 1694 #define __IMFStreamDescriptor_INTERFACE_DEFINED__ 1695 1696 DEFINE_GUID(IID_IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38); 1697 #if defined(__cplusplus) && !defined(CINTERFACE) 1698 MIDL_INTERFACE("56c03d9c-9dbb-45f5-ab4b-d80f47c05938") 1699 IMFStreamDescriptor : public IMFAttributes 1700 { 1701 virtual HRESULT STDMETHODCALLTYPE GetStreamIdentifier( 1702 DWORD *pdwStreamIdentifier) = 0; 1703 1704 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler( 1705 IMFMediaTypeHandler **ppMediaTypeHandler) = 0; 1706 1707 }; 1708 #ifdef __CRT_UUID_DECL 1709 __CRT_UUID_DECL(IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38) 1710 #endif 1711 #else 1712 typedef struct IMFStreamDescriptorVtbl { 1713 BEGIN_INTERFACE 1714 1715 /*** IUnknown methods ***/ 1716 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1717 IMFStreamDescriptor *This, 1718 REFIID riid, 1719 void **ppvObject); 1720 1721 ULONG (STDMETHODCALLTYPE *AddRef)( 1722 IMFStreamDescriptor *This); 1723 1724 ULONG (STDMETHODCALLTYPE *Release)( 1725 IMFStreamDescriptor *This); 1726 1727 /*** IMFAttributes methods ***/ 1728 HRESULT (STDMETHODCALLTYPE *GetItem)( 1729 IMFStreamDescriptor *This, 1730 REFGUID guidKey, 1731 PROPVARIANT *pValue); 1732 1733 HRESULT (STDMETHODCALLTYPE *GetItemType)( 1734 IMFStreamDescriptor *This, 1735 REFGUID guidKey, 1736 MF_ATTRIBUTE_TYPE *pType); 1737 1738 HRESULT (STDMETHODCALLTYPE *CompareItem)( 1739 IMFStreamDescriptor *This, 1740 REFGUID guidKey, 1741 REFPROPVARIANT Value, 1742 WINBOOL *pbResult); 1743 1744 HRESULT (STDMETHODCALLTYPE *Compare)( 1745 IMFStreamDescriptor *This, 1746 IMFAttributes *pTheirs, 1747 MF_ATTRIBUTES_MATCH_TYPE MatchType, 1748 WINBOOL *pbResult); 1749 1750 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 1751 IMFStreamDescriptor *This, 1752 REFGUID guidKey, 1753 UINT32 *punValue); 1754 1755 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 1756 IMFStreamDescriptor *This, 1757 REFGUID guidKey, 1758 UINT64 *punValue); 1759 1760 HRESULT (STDMETHODCALLTYPE *GetDouble)( 1761 IMFStreamDescriptor *This, 1762 REFGUID guidKey, 1763 double *pfValue); 1764 1765 HRESULT (STDMETHODCALLTYPE *GetGUID)( 1766 IMFStreamDescriptor *This, 1767 REFGUID guidKey, 1768 GUID *pguidValue); 1769 1770 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 1771 IMFStreamDescriptor *This, 1772 REFGUID guidKey, 1773 UINT32 *pcchLength); 1774 1775 HRESULT (STDMETHODCALLTYPE *GetString)( 1776 IMFStreamDescriptor *This, 1777 REFGUID guidKey, 1778 LPWSTR pwszValue, 1779 UINT32 cchBufSize, 1780 UINT32 *pcchLength); 1781 1782 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 1783 IMFStreamDescriptor *This, 1784 REFGUID guidKey, 1785 LPWSTR *ppwszValue, 1786 UINT32 *pcchLength); 1787 1788 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 1789 IMFStreamDescriptor *This, 1790 REFGUID guidKey, 1791 UINT32 *pcbBlobSize); 1792 1793 HRESULT (STDMETHODCALLTYPE *GetBlob)( 1794 IMFStreamDescriptor *This, 1795 REFGUID guidKey, 1796 UINT8 *pBuf, 1797 UINT32 cbBufSize, 1798 UINT32 *pcbBlobSize); 1799 1800 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 1801 IMFStreamDescriptor *This, 1802 REFGUID guidKey, 1803 UINT8 **ppBuf, 1804 UINT32 *pcbSize); 1805 1806 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 1807 IMFStreamDescriptor *This, 1808 REFGUID guidKey, 1809 REFIID riid, 1810 LPVOID *ppv); 1811 1812 HRESULT (STDMETHODCALLTYPE *SetItem)( 1813 IMFStreamDescriptor *This, 1814 REFGUID guidKey, 1815 REFPROPVARIANT Value); 1816 1817 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 1818 IMFStreamDescriptor *This, 1819 REFGUID guidKey); 1820 1821 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 1822 IMFStreamDescriptor *This); 1823 1824 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 1825 IMFStreamDescriptor *This, 1826 REFGUID guidKey, 1827 UINT32 unValue); 1828 1829 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 1830 IMFStreamDescriptor *This, 1831 REFGUID guidKey, 1832 UINT64 unValue); 1833 1834 HRESULT (STDMETHODCALLTYPE *SetDouble)( 1835 IMFStreamDescriptor *This, 1836 REFGUID guidKey, 1837 double fValue); 1838 1839 HRESULT (STDMETHODCALLTYPE *SetGUID)( 1840 IMFStreamDescriptor *This, 1841 REFGUID guidKey, 1842 REFGUID guidValue); 1843 1844 HRESULT (STDMETHODCALLTYPE *SetString)( 1845 IMFStreamDescriptor *This, 1846 REFGUID guidKey, 1847 LPCWSTR wszValue); 1848 1849 HRESULT (STDMETHODCALLTYPE *SetBlob)( 1850 IMFStreamDescriptor *This, 1851 REFGUID guidKey, 1852 const UINT8 *pBuf, 1853 UINT32 cbBufSize); 1854 1855 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 1856 IMFStreamDescriptor *This, 1857 REFGUID guidKey, 1858 IUnknown *pUnknown); 1859 1860 HRESULT (STDMETHODCALLTYPE *LockStore)( 1861 IMFStreamDescriptor *This); 1862 1863 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 1864 IMFStreamDescriptor *This); 1865 1866 HRESULT (STDMETHODCALLTYPE *GetCount)( 1867 IMFStreamDescriptor *This, 1868 UINT32 *pcItems); 1869 1870 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 1871 IMFStreamDescriptor *This, 1872 UINT32 unIndex, 1873 GUID *pguidKey, 1874 PROPVARIANT *pValue); 1875 1876 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 1877 IMFStreamDescriptor *This, 1878 IMFAttributes *pDest); 1879 1880 /*** IMFStreamDescriptor methods ***/ 1881 HRESULT (STDMETHODCALLTYPE *GetStreamIdentifier)( 1882 IMFStreamDescriptor *This, 1883 DWORD *pdwStreamIdentifier); 1884 1885 HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)( 1886 IMFStreamDescriptor *This, 1887 IMFMediaTypeHandler **ppMediaTypeHandler); 1888 1889 END_INTERFACE 1890 } IMFStreamDescriptorVtbl; 1891 1892 interface IMFStreamDescriptor { 1893 CONST_VTBL IMFStreamDescriptorVtbl* lpVtbl; 1894 }; 1895 1896 #ifdef COBJMACROS 1897 #ifndef WIDL_C_INLINE_WRAPPERS 1898 /*** IUnknown methods ***/ 1899 #define IMFStreamDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1900 #define IMFStreamDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This) 1901 #define IMFStreamDescriptor_Release(This) (This)->lpVtbl->Release(This) 1902 /*** IMFAttributes methods ***/ 1903 #define IMFStreamDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 1904 #define IMFStreamDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 1905 #define IMFStreamDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 1906 #define IMFStreamDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 1907 #define IMFStreamDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 1908 #define IMFStreamDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 1909 #define IMFStreamDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 1910 #define IMFStreamDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 1911 #define IMFStreamDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 1912 #define IMFStreamDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 1913 #define IMFStreamDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 1914 #define IMFStreamDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 1915 #define IMFStreamDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 1916 #define IMFStreamDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 1917 #define IMFStreamDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 1918 #define IMFStreamDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 1919 #define IMFStreamDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 1920 #define IMFStreamDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 1921 #define IMFStreamDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 1922 #define IMFStreamDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 1923 #define IMFStreamDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 1924 #define IMFStreamDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 1925 #define IMFStreamDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 1926 #define IMFStreamDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 1927 #define IMFStreamDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 1928 #define IMFStreamDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This) 1929 #define IMFStreamDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 1930 #define IMFStreamDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 1931 #define IMFStreamDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 1932 #define IMFStreamDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 1933 /*** IMFStreamDescriptor methods ***/ 1934 #define IMFStreamDescriptor_GetStreamIdentifier(This,pdwStreamIdentifier) (This)->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier) 1935 #define IMFStreamDescriptor_GetMediaTypeHandler(This,ppMediaTypeHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler) 1936 #else 1937 /*** IUnknown methods ***/ 1938 static FORCEINLINE HRESULT IMFStreamDescriptor_QueryInterface(IMFStreamDescriptor* This,REFIID riid,void **ppvObject) { 1939 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1940 } 1941 static FORCEINLINE ULONG IMFStreamDescriptor_AddRef(IMFStreamDescriptor* This) { 1942 return This->lpVtbl->AddRef(This); 1943 } 1944 static FORCEINLINE ULONG IMFStreamDescriptor_Release(IMFStreamDescriptor* This) { 1945 return This->lpVtbl->Release(This); 1946 } 1947 /*** IMFAttributes methods ***/ 1948 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItem(IMFStreamDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 1949 return This->lpVtbl->GetItem(This,guidKey,pValue); 1950 } 1951 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemType(IMFStreamDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 1952 return This->lpVtbl->GetItemType(This,guidKey,pType); 1953 } 1954 static FORCEINLINE HRESULT IMFStreamDescriptor_CompareItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 1955 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 1956 } 1957 static FORCEINLINE HRESULT IMFStreamDescriptor_Compare(IMFStreamDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 1958 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 1959 } 1960 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 1961 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 1962 } 1963 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 1964 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 1965 } 1966 static FORCEINLINE HRESULT IMFStreamDescriptor_GetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double *pfValue) { 1967 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 1968 } 1969 static FORCEINLINE HRESULT IMFStreamDescriptor_GetGUID(IMFStreamDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 1970 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 1971 } 1972 static FORCEINLINE HRESULT IMFStreamDescriptor_GetStringLength(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 1973 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 1974 } 1975 static FORCEINLINE HRESULT IMFStreamDescriptor_GetString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 1976 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 1977 } 1978 static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 1979 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 1980 } 1981 static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlobSize(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 1982 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 1983 } 1984 static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 1985 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 1986 } 1987 static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 1988 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 1989 } 1990 static FORCEINLINE HRESULT IMFStreamDescriptor_GetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 1991 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 1992 } 1993 static FORCEINLINE HRESULT IMFStreamDescriptor_SetItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 1994 return This->lpVtbl->SetItem(This,guidKey,Value); 1995 } 1996 static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteItem(IMFStreamDescriptor* This,REFGUID guidKey) { 1997 return This->lpVtbl->DeleteItem(This,guidKey); 1998 } 1999 static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteAllItems(IMFStreamDescriptor* This) { 2000 return This->lpVtbl->DeleteAllItems(This); 2001 } 2002 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2003 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2004 } 2005 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2006 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2007 } 2008 static FORCEINLINE HRESULT IMFStreamDescriptor_SetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double fValue) { 2009 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2010 } 2011 static FORCEINLINE HRESULT IMFStreamDescriptor_SetGUID(IMFStreamDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2012 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2013 } 2014 static FORCEINLINE HRESULT IMFStreamDescriptor_SetString(IMFStreamDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2015 return This->lpVtbl->SetString(This,guidKey,wszValue); 2016 } 2017 static FORCEINLINE HRESULT IMFStreamDescriptor_SetBlob(IMFStreamDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2018 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2019 } 2020 static FORCEINLINE HRESULT IMFStreamDescriptor_SetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2021 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2022 } 2023 static FORCEINLINE HRESULT IMFStreamDescriptor_LockStore(IMFStreamDescriptor* This) { 2024 return This->lpVtbl->LockStore(This); 2025 } 2026 static FORCEINLINE HRESULT IMFStreamDescriptor_UnlockStore(IMFStreamDescriptor* This) { 2027 return This->lpVtbl->UnlockStore(This); 2028 } 2029 static FORCEINLINE HRESULT IMFStreamDescriptor_GetCount(IMFStreamDescriptor* This,UINT32 *pcItems) { 2030 return This->lpVtbl->GetCount(This,pcItems); 2031 } 2032 static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemByIndex(IMFStreamDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2033 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2034 } 2035 static FORCEINLINE HRESULT IMFStreamDescriptor_CopyAllItems(IMFStreamDescriptor* This,IMFAttributes *pDest) { 2036 return This->lpVtbl->CopyAllItems(This,pDest); 2037 } 2038 /*** IMFStreamDescriptor methods ***/ 2039 static FORCEINLINE HRESULT IMFStreamDescriptor_GetStreamIdentifier(IMFStreamDescriptor* This,DWORD *pdwStreamIdentifier) { 2040 return This->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier); 2041 } 2042 static FORCEINLINE HRESULT IMFStreamDescriptor_GetMediaTypeHandler(IMFStreamDescriptor* This,IMFMediaTypeHandler **ppMediaTypeHandler) { 2043 return This->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler); 2044 } 2045 #endif 2046 #endif 2047 2048 #endif 2049 2050 2051 #endif /* __IMFStreamDescriptor_INTERFACE_DEFINED__ */ 2052 2053 /***************************************************************************** 2054 * IMFPresentationDescriptor interface 2055 */ 2056 #ifndef __IMFPresentationDescriptor_INTERFACE_DEFINED__ 2057 #define __IMFPresentationDescriptor_INTERFACE_DEFINED__ 2058 2059 DEFINE_GUID(IID_IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36); 2060 #if defined(__cplusplus) && !defined(CINTERFACE) 2061 MIDL_INTERFACE("03cb2711-24d7-4db6-a17f-f3a7a479a536") 2062 IMFPresentationDescriptor : public IMFAttributes 2063 { 2064 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorCount( 2065 DWORD *pdwDescriptorCount) = 0; 2066 2067 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorByIndex( 2068 DWORD dwIndex, 2069 WINBOOL *pfSelected, 2070 IMFStreamDescriptor **ppDescriptor) = 0; 2071 2072 virtual HRESULT STDMETHODCALLTYPE SelectStream( 2073 DWORD dwDescriptorIndex) = 0; 2074 2075 virtual HRESULT STDMETHODCALLTYPE DeselectStream( 2076 DWORD dwDescriptorIndex) = 0; 2077 2078 virtual HRESULT STDMETHODCALLTYPE Clone( 2079 IMFPresentationDescriptor **ppPresentationDescriptor) = 0; 2080 2081 }; 2082 #ifdef __CRT_UUID_DECL 2083 __CRT_UUID_DECL(IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36) 2084 #endif 2085 #else 2086 typedef struct IMFPresentationDescriptorVtbl { 2087 BEGIN_INTERFACE 2088 2089 /*** IUnknown methods ***/ 2090 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2091 IMFPresentationDescriptor *This, 2092 REFIID riid, 2093 void **ppvObject); 2094 2095 ULONG (STDMETHODCALLTYPE *AddRef)( 2096 IMFPresentationDescriptor *This); 2097 2098 ULONG (STDMETHODCALLTYPE *Release)( 2099 IMFPresentationDescriptor *This); 2100 2101 /*** IMFAttributes methods ***/ 2102 HRESULT (STDMETHODCALLTYPE *GetItem)( 2103 IMFPresentationDescriptor *This, 2104 REFGUID guidKey, 2105 PROPVARIANT *pValue); 2106 2107 HRESULT (STDMETHODCALLTYPE *GetItemType)( 2108 IMFPresentationDescriptor *This, 2109 REFGUID guidKey, 2110 MF_ATTRIBUTE_TYPE *pType); 2111 2112 HRESULT (STDMETHODCALLTYPE *CompareItem)( 2113 IMFPresentationDescriptor *This, 2114 REFGUID guidKey, 2115 REFPROPVARIANT Value, 2116 WINBOOL *pbResult); 2117 2118 HRESULT (STDMETHODCALLTYPE *Compare)( 2119 IMFPresentationDescriptor *This, 2120 IMFAttributes *pTheirs, 2121 MF_ATTRIBUTES_MATCH_TYPE MatchType, 2122 WINBOOL *pbResult); 2123 2124 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 2125 IMFPresentationDescriptor *This, 2126 REFGUID guidKey, 2127 UINT32 *punValue); 2128 2129 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 2130 IMFPresentationDescriptor *This, 2131 REFGUID guidKey, 2132 UINT64 *punValue); 2133 2134 HRESULT (STDMETHODCALLTYPE *GetDouble)( 2135 IMFPresentationDescriptor *This, 2136 REFGUID guidKey, 2137 double *pfValue); 2138 2139 HRESULT (STDMETHODCALLTYPE *GetGUID)( 2140 IMFPresentationDescriptor *This, 2141 REFGUID guidKey, 2142 GUID *pguidValue); 2143 2144 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 2145 IMFPresentationDescriptor *This, 2146 REFGUID guidKey, 2147 UINT32 *pcchLength); 2148 2149 HRESULT (STDMETHODCALLTYPE *GetString)( 2150 IMFPresentationDescriptor *This, 2151 REFGUID guidKey, 2152 LPWSTR pwszValue, 2153 UINT32 cchBufSize, 2154 UINT32 *pcchLength); 2155 2156 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 2157 IMFPresentationDescriptor *This, 2158 REFGUID guidKey, 2159 LPWSTR *ppwszValue, 2160 UINT32 *pcchLength); 2161 2162 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 2163 IMFPresentationDescriptor *This, 2164 REFGUID guidKey, 2165 UINT32 *pcbBlobSize); 2166 2167 HRESULT (STDMETHODCALLTYPE *GetBlob)( 2168 IMFPresentationDescriptor *This, 2169 REFGUID guidKey, 2170 UINT8 *pBuf, 2171 UINT32 cbBufSize, 2172 UINT32 *pcbBlobSize); 2173 2174 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 2175 IMFPresentationDescriptor *This, 2176 REFGUID guidKey, 2177 UINT8 **ppBuf, 2178 UINT32 *pcbSize); 2179 2180 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 2181 IMFPresentationDescriptor *This, 2182 REFGUID guidKey, 2183 REFIID riid, 2184 LPVOID *ppv); 2185 2186 HRESULT (STDMETHODCALLTYPE *SetItem)( 2187 IMFPresentationDescriptor *This, 2188 REFGUID guidKey, 2189 REFPROPVARIANT Value); 2190 2191 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 2192 IMFPresentationDescriptor *This, 2193 REFGUID guidKey); 2194 2195 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 2196 IMFPresentationDescriptor *This); 2197 2198 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 2199 IMFPresentationDescriptor *This, 2200 REFGUID guidKey, 2201 UINT32 unValue); 2202 2203 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 2204 IMFPresentationDescriptor *This, 2205 REFGUID guidKey, 2206 UINT64 unValue); 2207 2208 HRESULT (STDMETHODCALLTYPE *SetDouble)( 2209 IMFPresentationDescriptor *This, 2210 REFGUID guidKey, 2211 double fValue); 2212 2213 HRESULT (STDMETHODCALLTYPE *SetGUID)( 2214 IMFPresentationDescriptor *This, 2215 REFGUID guidKey, 2216 REFGUID guidValue); 2217 2218 HRESULT (STDMETHODCALLTYPE *SetString)( 2219 IMFPresentationDescriptor *This, 2220 REFGUID guidKey, 2221 LPCWSTR wszValue); 2222 2223 HRESULT (STDMETHODCALLTYPE *SetBlob)( 2224 IMFPresentationDescriptor *This, 2225 REFGUID guidKey, 2226 const UINT8 *pBuf, 2227 UINT32 cbBufSize); 2228 2229 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 2230 IMFPresentationDescriptor *This, 2231 REFGUID guidKey, 2232 IUnknown *pUnknown); 2233 2234 HRESULT (STDMETHODCALLTYPE *LockStore)( 2235 IMFPresentationDescriptor *This); 2236 2237 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 2238 IMFPresentationDescriptor *This); 2239 2240 HRESULT (STDMETHODCALLTYPE *GetCount)( 2241 IMFPresentationDescriptor *This, 2242 UINT32 *pcItems); 2243 2244 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 2245 IMFPresentationDescriptor *This, 2246 UINT32 unIndex, 2247 GUID *pguidKey, 2248 PROPVARIANT *pValue); 2249 2250 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 2251 IMFPresentationDescriptor *This, 2252 IMFAttributes *pDest); 2253 2254 /*** IMFPresentationDescriptor methods ***/ 2255 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorCount)( 2256 IMFPresentationDescriptor *This, 2257 DWORD *pdwDescriptorCount); 2258 2259 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorByIndex)( 2260 IMFPresentationDescriptor *This, 2261 DWORD dwIndex, 2262 WINBOOL *pfSelected, 2263 IMFStreamDescriptor **ppDescriptor); 2264 2265 HRESULT (STDMETHODCALLTYPE *SelectStream)( 2266 IMFPresentationDescriptor *This, 2267 DWORD dwDescriptorIndex); 2268 2269 HRESULT (STDMETHODCALLTYPE *DeselectStream)( 2270 IMFPresentationDescriptor *This, 2271 DWORD dwDescriptorIndex); 2272 2273 HRESULT (STDMETHODCALLTYPE *Clone)( 2274 IMFPresentationDescriptor *This, 2275 IMFPresentationDescriptor **ppPresentationDescriptor); 2276 2277 END_INTERFACE 2278 } IMFPresentationDescriptorVtbl; 2279 2280 interface IMFPresentationDescriptor { 2281 CONST_VTBL IMFPresentationDescriptorVtbl* lpVtbl; 2282 }; 2283 2284 #ifdef COBJMACROS 2285 #ifndef WIDL_C_INLINE_WRAPPERS 2286 /*** IUnknown methods ***/ 2287 #define IMFPresentationDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2288 #define IMFPresentationDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This) 2289 #define IMFPresentationDescriptor_Release(This) (This)->lpVtbl->Release(This) 2290 /*** IMFAttributes methods ***/ 2291 #define IMFPresentationDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 2292 #define IMFPresentationDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 2293 #define IMFPresentationDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 2294 #define IMFPresentationDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 2295 #define IMFPresentationDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 2296 #define IMFPresentationDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 2297 #define IMFPresentationDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 2298 #define IMFPresentationDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 2299 #define IMFPresentationDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 2300 #define IMFPresentationDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 2301 #define IMFPresentationDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 2302 #define IMFPresentationDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 2303 #define IMFPresentationDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 2304 #define IMFPresentationDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 2305 #define IMFPresentationDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 2306 #define IMFPresentationDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 2307 #define IMFPresentationDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 2308 #define IMFPresentationDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 2309 #define IMFPresentationDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 2310 #define IMFPresentationDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 2311 #define IMFPresentationDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 2312 #define IMFPresentationDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 2313 #define IMFPresentationDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 2314 #define IMFPresentationDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 2315 #define IMFPresentationDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 2316 #define IMFPresentationDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This) 2317 #define IMFPresentationDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 2318 #define IMFPresentationDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 2319 #define IMFPresentationDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 2320 #define IMFPresentationDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 2321 /*** IMFPresentationDescriptor methods ***/ 2322 #define IMFPresentationDescriptor_GetStreamDescriptorCount(This,pdwDescriptorCount) (This)->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount) 2323 #define IMFPresentationDescriptor_GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) (This)->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) 2324 #define IMFPresentationDescriptor_SelectStream(This,dwDescriptorIndex) (This)->lpVtbl->SelectStream(This,dwDescriptorIndex) 2325 #define IMFPresentationDescriptor_DeselectStream(This,dwDescriptorIndex) (This)->lpVtbl->DeselectStream(This,dwDescriptorIndex) 2326 #define IMFPresentationDescriptor_Clone(This,ppPresentationDescriptor) (This)->lpVtbl->Clone(This,ppPresentationDescriptor) 2327 #else 2328 /*** IUnknown methods ***/ 2329 static FORCEINLINE HRESULT IMFPresentationDescriptor_QueryInterface(IMFPresentationDescriptor* This,REFIID riid,void **ppvObject) { 2330 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2331 } 2332 static FORCEINLINE ULONG IMFPresentationDescriptor_AddRef(IMFPresentationDescriptor* This) { 2333 return This->lpVtbl->AddRef(This); 2334 } 2335 static FORCEINLINE ULONG IMFPresentationDescriptor_Release(IMFPresentationDescriptor* This) { 2336 return This->lpVtbl->Release(This); 2337 } 2338 /*** IMFAttributes methods ***/ 2339 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItem(IMFPresentationDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 2340 return This->lpVtbl->GetItem(This,guidKey,pValue); 2341 } 2342 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemType(IMFPresentationDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2343 return This->lpVtbl->GetItemType(This,guidKey,pType); 2344 } 2345 static FORCEINLINE HRESULT IMFPresentationDescriptor_CompareItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2346 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2347 } 2348 static FORCEINLINE HRESULT IMFPresentationDescriptor_Compare(IMFPresentationDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 2349 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 2350 } 2351 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 2352 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2353 } 2354 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 2355 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2356 } 2357 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double *pfValue) { 2358 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2359 } 2360 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 2361 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2362 } 2363 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStringLength(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 2364 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2365 } 2366 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 2367 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 2368 } 2369 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2370 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2371 } 2372 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlobSize(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2373 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2374 } 2375 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 2376 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 2377 } 2378 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2379 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2380 } 2381 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2382 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2383 } 2384 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 2385 return This->lpVtbl->SetItem(This,guidKey,Value); 2386 } 2387 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteItem(IMFPresentationDescriptor* This,REFGUID guidKey) { 2388 return This->lpVtbl->DeleteItem(This,guidKey); 2389 } 2390 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteAllItems(IMFPresentationDescriptor* This) { 2391 return This->lpVtbl->DeleteAllItems(This); 2392 } 2393 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2394 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2395 } 2396 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2397 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2398 } 2399 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double fValue) { 2400 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2401 } 2402 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2403 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2404 } 2405 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2406 return This->lpVtbl->SetString(This,guidKey,wszValue); 2407 } 2408 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2409 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2410 } 2411 static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2412 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2413 } 2414 static FORCEINLINE HRESULT IMFPresentationDescriptor_LockStore(IMFPresentationDescriptor* This) { 2415 return This->lpVtbl->LockStore(This); 2416 } 2417 static FORCEINLINE HRESULT IMFPresentationDescriptor_UnlockStore(IMFPresentationDescriptor* This) { 2418 return This->lpVtbl->UnlockStore(This); 2419 } 2420 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetCount(IMFPresentationDescriptor* This,UINT32 *pcItems) { 2421 return This->lpVtbl->GetCount(This,pcItems); 2422 } 2423 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemByIndex(IMFPresentationDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2424 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2425 } 2426 static FORCEINLINE HRESULT IMFPresentationDescriptor_CopyAllItems(IMFPresentationDescriptor* This,IMFAttributes *pDest) { 2427 return This->lpVtbl->CopyAllItems(This,pDest); 2428 } 2429 /*** IMFPresentationDescriptor methods ***/ 2430 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorCount(IMFPresentationDescriptor* This,DWORD *pdwDescriptorCount) { 2431 return This->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount); 2432 } 2433 static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorByIndex(IMFPresentationDescriptor* This,DWORD dwIndex,WINBOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) { 2434 return This->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor); 2435 } 2436 static FORCEINLINE HRESULT IMFPresentationDescriptor_SelectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2437 return This->lpVtbl->SelectStream(This,dwDescriptorIndex); 2438 } 2439 static FORCEINLINE HRESULT IMFPresentationDescriptor_DeselectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2440 return This->lpVtbl->DeselectStream(This,dwDescriptorIndex); 2441 } 2442 static FORCEINLINE HRESULT IMFPresentationDescriptor_Clone(IMFPresentationDescriptor* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2443 return This->lpVtbl->Clone(This,ppPresentationDescriptor); 2444 } 2445 #endif 2446 #endif 2447 2448 #endif 2449 2450 2451 #endif /* __IMFPresentationDescriptor_INTERFACE_DEFINED__ */ 2452 2453 /***************************************************************************** 2454 * IMFMediaSource interface 2455 */ 2456 #ifndef __IMFMediaSource_INTERFACE_DEFINED__ 2457 #define __IMFMediaSource_INTERFACE_DEFINED__ 2458 2459 DEFINE_GUID(IID_IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66); 2460 #if defined(__cplusplus) && !defined(CINTERFACE) 2461 MIDL_INTERFACE("279a808d-aec7-40c8-9c6b-a6b492c78a66") 2462 IMFMediaSource : public IMFMediaEventGenerator 2463 { 2464 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 2465 DWORD *pdwCharacteristics) = 0; 2466 2467 virtual HRESULT STDMETHODCALLTYPE CreatePresentationDescriptor( 2468 IMFPresentationDescriptor **ppPresentationDescriptor) = 0; 2469 2470 virtual HRESULT STDMETHODCALLTYPE Start( 2471 IMFPresentationDescriptor *pPresentationDescriptor, 2472 const GUID *pguidTimeFormat, 2473 const PROPVARIANT *pvarStartPosition) = 0; 2474 2475 virtual HRESULT STDMETHODCALLTYPE Stop( 2476 ) = 0; 2477 2478 virtual HRESULT STDMETHODCALLTYPE Pause( 2479 ) = 0; 2480 2481 virtual HRESULT STDMETHODCALLTYPE Shutdown( 2482 ) = 0; 2483 2484 }; 2485 #ifdef __CRT_UUID_DECL 2486 __CRT_UUID_DECL(IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66) 2487 #endif 2488 #else 2489 typedef struct IMFMediaSourceVtbl { 2490 BEGIN_INTERFACE 2491 2492 /*** IUnknown methods ***/ 2493 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2494 IMFMediaSource *This, 2495 REFIID riid, 2496 void **ppvObject); 2497 2498 ULONG (STDMETHODCALLTYPE *AddRef)( 2499 IMFMediaSource *This); 2500 2501 ULONG (STDMETHODCALLTYPE *Release)( 2502 IMFMediaSource *This); 2503 2504 /*** IMFMediaEventGenerator methods ***/ 2505 HRESULT (STDMETHODCALLTYPE *GetEvent)( 2506 IMFMediaSource *This, 2507 DWORD dwFlags, 2508 IMFMediaEvent **ppEvent); 2509 2510 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( 2511 IMFMediaSource *This, 2512 IMFAsyncCallback *pCallback, 2513 IUnknown *punkState); 2514 2515 HRESULT (STDMETHODCALLTYPE *EndGetEvent)( 2516 IMFMediaSource *This, 2517 IMFAsyncResult *pResult, 2518 IMFMediaEvent **ppEvent); 2519 2520 HRESULT (STDMETHODCALLTYPE *QueueEvent)( 2521 IMFMediaSource *This, 2522 MediaEventType met, 2523 REFGUID guidExtendedType, 2524 HRESULT hrStatus, 2525 const PROPVARIANT *pvValue); 2526 2527 /*** IMFMediaSource methods ***/ 2528 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( 2529 IMFMediaSource *This, 2530 DWORD *pdwCharacteristics); 2531 2532 HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)( 2533 IMFMediaSource *This, 2534 IMFPresentationDescriptor **ppPresentationDescriptor); 2535 2536 HRESULT (STDMETHODCALLTYPE *Start)( 2537 IMFMediaSource *This, 2538 IMFPresentationDescriptor *pPresentationDescriptor, 2539 const GUID *pguidTimeFormat, 2540 const PROPVARIANT *pvarStartPosition); 2541 2542 HRESULT (STDMETHODCALLTYPE *Stop)( 2543 IMFMediaSource *This); 2544 2545 HRESULT (STDMETHODCALLTYPE *Pause)( 2546 IMFMediaSource *This); 2547 2548 HRESULT (STDMETHODCALLTYPE *Shutdown)( 2549 IMFMediaSource *This); 2550 2551 END_INTERFACE 2552 } IMFMediaSourceVtbl; 2553 2554 interface IMFMediaSource { 2555 CONST_VTBL IMFMediaSourceVtbl* lpVtbl; 2556 }; 2557 2558 #ifdef COBJMACROS 2559 #ifndef WIDL_C_INLINE_WRAPPERS 2560 /*** IUnknown methods ***/ 2561 #define IMFMediaSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2562 #define IMFMediaSource_AddRef(This) (This)->lpVtbl->AddRef(This) 2563 #define IMFMediaSource_Release(This) (This)->lpVtbl->Release(This) 2564 /*** IMFMediaEventGenerator methods ***/ 2565 #define IMFMediaSource_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) 2566 #define IMFMediaSource_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) 2567 #define IMFMediaSource_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) 2568 #define IMFMediaSource_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) 2569 /*** IMFMediaSource methods ***/ 2570 #define IMFMediaSource_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) 2571 #define IMFMediaSource_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor) 2572 #define IMFMediaSource_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) 2573 #define IMFMediaSource_Stop(This) (This)->lpVtbl->Stop(This) 2574 #define IMFMediaSource_Pause(This) (This)->lpVtbl->Pause(This) 2575 #define IMFMediaSource_Shutdown(This) (This)->lpVtbl->Shutdown(This) 2576 #else 2577 /*** IUnknown methods ***/ 2578 static FORCEINLINE HRESULT IMFMediaSource_QueryInterface(IMFMediaSource* This,REFIID riid,void **ppvObject) { 2579 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2580 } 2581 static FORCEINLINE ULONG IMFMediaSource_AddRef(IMFMediaSource* This) { 2582 return This->lpVtbl->AddRef(This); 2583 } 2584 static FORCEINLINE ULONG IMFMediaSource_Release(IMFMediaSource* This) { 2585 return This->lpVtbl->Release(This); 2586 } 2587 /*** IMFMediaEventGenerator methods ***/ 2588 static FORCEINLINE HRESULT IMFMediaSource_GetEvent(IMFMediaSource* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 2589 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 2590 } 2591 static FORCEINLINE HRESULT IMFMediaSource_BeginGetEvent(IMFMediaSource* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 2592 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 2593 } 2594 static FORCEINLINE HRESULT IMFMediaSource_EndGetEvent(IMFMediaSource* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 2595 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 2596 } 2597 static FORCEINLINE HRESULT IMFMediaSource_QueueEvent(IMFMediaSource* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { 2598 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); 2599 } 2600 /*** IMFMediaSource methods ***/ 2601 static FORCEINLINE HRESULT IMFMediaSource_GetCharacteristics(IMFMediaSource* This,DWORD *pdwCharacteristics) { 2602 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 2603 } 2604 static FORCEINLINE HRESULT IMFMediaSource_CreatePresentationDescriptor(IMFMediaSource* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2605 return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor); 2606 } 2607 static FORCEINLINE HRESULT IMFMediaSource_Start(IMFMediaSource* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 2608 return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition); 2609 } 2610 static FORCEINLINE HRESULT IMFMediaSource_Stop(IMFMediaSource* This) { 2611 return This->lpVtbl->Stop(This); 2612 } 2613 static FORCEINLINE HRESULT IMFMediaSource_Pause(IMFMediaSource* This) { 2614 return This->lpVtbl->Pause(This); 2615 } 2616 static FORCEINLINE HRESULT IMFMediaSource_Shutdown(IMFMediaSource* This) { 2617 return This->lpVtbl->Shutdown(This); 2618 } 2619 #endif 2620 #endif 2621 2622 #endif 2623 2624 HRESULT STDMETHODCALLTYPE IMFMediaSource_RemoteCreatePresentationDescriptor_Proxy( 2625 IMFMediaSource* This, 2626 DWORD *pcbPD, 2627 BYTE **pbPD, 2628 IMFPresentationDescriptor **ppRemotePD); 2629 void __RPC_STUB IMFMediaSource_RemoteCreatePresentationDescriptor_Stub( 2630 IRpcStubBuffer* This, 2631 IRpcChannelBuffer* pRpcChannelBuffer, 2632 PRPC_MESSAGE pRpcMessage, 2633 DWORD* pdwStubPhase); 2634 HRESULT CALLBACK IMFMediaSource_CreatePresentationDescriptor_Proxy( 2635 IMFMediaSource* This, 2636 IMFPresentationDescriptor **ppPresentationDescriptor); 2637 HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub( 2638 IMFMediaSource* This, 2639 DWORD *pcbPD, 2640 BYTE **pbPD, 2641 IMFPresentationDescriptor **ppRemotePD); 2642 2643 #endif /* __IMFMediaSource_INTERFACE_DEFINED__ */ 2644 2645 typedef struct _MF_LEAKY_BUCKET_PAIR { 2646 DWORD dwBitrate; 2647 DWORD msBufferWindow; 2648 } MF_LEAKY_BUCKET_PAIR; 2649 typedef struct _MFBYTESTREAM_BUFFERING_PARAMS { 2650 QWORD cbTotalFileSize; 2651 QWORD cbPlayableDataSize; 2652 MF_LEAKY_BUCKET_PAIR *prgBuckets; 2653 DWORD cBuckets; 2654 QWORD qwNetBufferingTime; 2655 QWORD qwExtraBufferingTimeDuringSeek; 2656 QWORD qwPlayDuration; 2657 float dRate; 2658 } MFBYTESTREAM_BUFFERING_PARAMS; 2659 /***************************************************************************** 2660 * IMFByteStreamBuffering interface 2661 */ 2662 #ifndef __IMFByteStreamBuffering_INTERFACE_DEFINED__ 2663 #define __IMFByteStreamBuffering_INTERFACE_DEFINED__ 2664 2665 DEFINE_GUID(IID_IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e); 2666 #if defined(__cplusplus) && !defined(CINTERFACE) 2667 MIDL_INTERFACE("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e") 2668 IMFByteStreamBuffering : public IUnknown 2669 { 2670 virtual HRESULT STDMETHODCALLTYPE SetBufferingParams( 2671 MFBYTESTREAM_BUFFERING_PARAMS *pParams) = 0; 2672 2673 virtual HRESULT STDMETHODCALLTYPE EnableBuffering( 2674 WINBOOL fEnable) = 0; 2675 2676 virtual HRESULT STDMETHODCALLTYPE StopBuffering( 2677 ) = 0; 2678 2679 }; 2680 #ifdef __CRT_UUID_DECL 2681 __CRT_UUID_DECL(IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e) 2682 #endif 2683 #else 2684 typedef struct IMFByteStreamBufferingVtbl { 2685 BEGIN_INTERFACE 2686 2687 /*** IUnknown methods ***/ 2688 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2689 IMFByteStreamBuffering *This, 2690 REFIID riid, 2691 void **ppvObject); 2692 2693 ULONG (STDMETHODCALLTYPE *AddRef)( 2694 IMFByteStreamBuffering *This); 2695 2696 ULONG (STDMETHODCALLTYPE *Release)( 2697 IMFByteStreamBuffering *This); 2698 2699 /*** IMFByteStreamBuffering methods ***/ 2700 HRESULT (STDMETHODCALLTYPE *SetBufferingParams)( 2701 IMFByteStreamBuffering *This, 2702 MFBYTESTREAM_BUFFERING_PARAMS *pParams); 2703 2704 HRESULT (STDMETHODCALLTYPE *EnableBuffering)( 2705 IMFByteStreamBuffering *This, 2706 WINBOOL fEnable); 2707 2708 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 2709 IMFByteStreamBuffering *This); 2710 2711 END_INTERFACE 2712 } IMFByteStreamBufferingVtbl; 2713 2714 interface IMFByteStreamBuffering { 2715 CONST_VTBL IMFByteStreamBufferingVtbl* lpVtbl; 2716 }; 2717 2718 #ifdef COBJMACROS 2719 #ifndef WIDL_C_INLINE_WRAPPERS 2720 /*** IUnknown methods ***/ 2721 #define IMFByteStreamBuffering_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2722 #define IMFByteStreamBuffering_AddRef(This) (This)->lpVtbl->AddRef(This) 2723 #define IMFByteStreamBuffering_Release(This) (This)->lpVtbl->Release(This) 2724 /*** IMFByteStreamBuffering methods ***/ 2725 #define IMFByteStreamBuffering_SetBufferingParams(This,pParams) (This)->lpVtbl->SetBufferingParams(This,pParams) 2726 #define IMFByteStreamBuffering_EnableBuffering(This,fEnable) (This)->lpVtbl->EnableBuffering(This,fEnable) 2727 #define IMFByteStreamBuffering_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 2728 #else 2729 /*** IUnknown methods ***/ 2730 static FORCEINLINE HRESULT IMFByteStreamBuffering_QueryInterface(IMFByteStreamBuffering* This,REFIID riid,void **ppvObject) { 2731 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2732 } 2733 static FORCEINLINE ULONG IMFByteStreamBuffering_AddRef(IMFByteStreamBuffering* This) { 2734 return This->lpVtbl->AddRef(This); 2735 } 2736 static FORCEINLINE ULONG IMFByteStreamBuffering_Release(IMFByteStreamBuffering* This) { 2737 return This->lpVtbl->Release(This); 2738 } 2739 /*** IMFByteStreamBuffering methods ***/ 2740 static FORCEINLINE HRESULT IMFByteStreamBuffering_SetBufferingParams(IMFByteStreamBuffering* This,MFBYTESTREAM_BUFFERING_PARAMS *pParams) { 2741 return This->lpVtbl->SetBufferingParams(This,pParams); 2742 } 2743 static FORCEINLINE HRESULT IMFByteStreamBuffering_EnableBuffering(IMFByteStreamBuffering* This,WINBOOL fEnable) { 2744 return This->lpVtbl->EnableBuffering(This,fEnable); 2745 } 2746 static FORCEINLINE HRESULT IMFByteStreamBuffering_StopBuffering(IMFByteStreamBuffering* This) { 2747 return This->lpVtbl->StopBuffering(This); 2748 } 2749 #endif 2750 #endif 2751 2752 #endif 2753 2754 2755 #endif /* __IMFByteStreamBuffering_INTERFACE_DEFINED__ */ 2756 2757 /***************************************************************************** 2758 * IMFClockStateSink interface 2759 */ 2760 #ifndef __IMFClockStateSink_INTERFACE_DEFINED__ 2761 #define __IMFClockStateSink_INTERFACE_DEFINED__ 2762 2763 DEFINE_GUID(IID_IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f); 2764 #if defined(__cplusplus) && !defined(CINTERFACE) 2765 MIDL_INTERFACE("f6696e82-74f7-4f3d-a178-8a5e09c3659f") 2766 IMFClockStateSink : public IUnknown 2767 { 2768 virtual HRESULT STDMETHODCALLTYPE OnClockStart( 2769 MFTIME hnsSystemTime, 2770 LONGLONG llClockStartOffset) = 0; 2771 2772 virtual HRESULT STDMETHODCALLTYPE OnClockStop( 2773 MFTIME hnsSystemTime) = 0; 2774 2775 virtual HRESULT STDMETHODCALLTYPE OnClockPause( 2776 MFTIME hnsSystemTime) = 0; 2777 2778 virtual HRESULT STDMETHODCALLTYPE OnClockRestart( 2779 MFTIME hnsSystemTime) = 0; 2780 2781 virtual HRESULT STDMETHODCALLTYPE OnClockSetRate( 2782 MFTIME hnsSystemTime, 2783 float flRate) = 0; 2784 2785 }; 2786 #ifdef __CRT_UUID_DECL 2787 __CRT_UUID_DECL(IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f) 2788 #endif 2789 #else 2790 typedef struct IMFClockStateSinkVtbl { 2791 BEGIN_INTERFACE 2792 2793 /*** IUnknown methods ***/ 2794 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2795 IMFClockStateSink *This, 2796 REFIID riid, 2797 void **ppvObject); 2798 2799 ULONG (STDMETHODCALLTYPE *AddRef)( 2800 IMFClockStateSink *This); 2801 2802 ULONG (STDMETHODCALLTYPE *Release)( 2803 IMFClockStateSink *This); 2804 2805 /*** IMFClockStateSink methods ***/ 2806 HRESULT (STDMETHODCALLTYPE *OnClockStart)( 2807 IMFClockStateSink *This, 2808 MFTIME hnsSystemTime, 2809 LONGLONG llClockStartOffset); 2810 2811 HRESULT (STDMETHODCALLTYPE *OnClockStop)( 2812 IMFClockStateSink *This, 2813 MFTIME hnsSystemTime); 2814 2815 HRESULT (STDMETHODCALLTYPE *OnClockPause)( 2816 IMFClockStateSink *This, 2817 MFTIME hnsSystemTime); 2818 2819 HRESULT (STDMETHODCALLTYPE *OnClockRestart)( 2820 IMFClockStateSink *This, 2821 MFTIME hnsSystemTime); 2822 2823 HRESULT (STDMETHODCALLTYPE *OnClockSetRate)( 2824 IMFClockStateSink *This, 2825 MFTIME hnsSystemTime, 2826 float flRate); 2827 2828 END_INTERFACE 2829 } IMFClockStateSinkVtbl; 2830 2831 interface IMFClockStateSink { 2832 CONST_VTBL IMFClockStateSinkVtbl* lpVtbl; 2833 }; 2834 2835 #ifdef COBJMACROS 2836 #ifndef WIDL_C_INLINE_WRAPPERS 2837 /*** IUnknown methods ***/ 2838 #define IMFClockStateSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2839 #define IMFClockStateSink_AddRef(This) (This)->lpVtbl->AddRef(This) 2840 #define IMFClockStateSink_Release(This) (This)->lpVtbl->Release(This) 2841 /*** IMFClockStateSink methods ***/ 2842 #define IMFClockStateSink_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset) 2843 #define IMFClockStateSink_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime) 2844 #define IMFClockStateSink_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime) 2845 #define IMFClockStateSink_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime) 2846 #define IMFClockStateSink_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate) 2847 #else 2848 /*** IUnknown methods ***/ 2849 static FORCEINLINE HRESULT IMFClockStateSink_QueryInterface(IMFClockStateSink* This,REFIID riid,void **ppvObject) { 2850 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2851 } 2852 static FORCEINLINE ULONG IMFClockStateSink_AddRef(IMFClockStateSink* This) { 2853 return This->lpVtbl->AddRef(This); 2854 } 2855 static FORCEINLINE ULONG IMFClockStateSink_Release(IMFClockStateSink* This) { 2856 return This->lpVtbl->Release(This); 2857 } 2858 /*** IMFClockStateSink methods ***/ 2859 static FORCEINLINE HRESULT IMFClockStateSink_OnClockStart(IMFClockStateSink* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) { 2860 return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset); 2861 } 2862 static FORCEINLINE HRESULT IMFClockStateSink_OnClockStop(IMFClockStateSink* This,MFTIME hnsSystemTime) { 2863 return This->lpVtbl->OnClockStop(This,hnsSystemTime); 2864 } 2865 static FORCEINLINE HRESULT IMFClockStateSink_OnClockPause(IMFClockStateSink* This,MFTIME hnsSystemTime) { 2866 return This->lpVtbl->OnClockPause(This,hnsSystemTime); 2867 } 2868 static FORCEINLINE HRESULT IMFClockStateSink_OnClockRestart(IMFClockStateSink* This,MFTIME hnsSystemTime) { 2869 return This->lpVtbl->OnClockRestart(This,hnsSystemTime); 2870 } 2871 static FORCEINLINE HRESULT IMFClockStateSink_OnClockSetRate(IMFClockStateSink* This,MFTIME hnsSystemTime,float flRate) { 2872 return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate); 2873 } 2874 #endif 2875 #endif 2876 2877 #endif 2878 2879 2880 #endif /* __IMFClockStateSink_INTERFACE_DEFINED__ */ 2881 2882 HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor); 2883 HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData); 2884 typedef DWORD MFSequencerElementId; /*Unknown type*/ 2885 2886 typedef enum MFCLOCK_CHARACTERISTICS_FLAGS { 2887 MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2, 2888 MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4, 2889 MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8 2890 } MFCLOCK_CHARACTERISTICS_FLAGS; 2891 2892 #if (WINVER >= 0x0601) 2893 2894 typedef enum _MF_QUALITY_ADVISE_FLAGS { 2895 MF_QUALITY_CANNOT_KEEP_UP = 0x1 2896 } MF_QUALITY_ADVISE_FLAGS; 2897 2898 #endif /*(WINVER >= 0x0601)*/ 2899 2900 typedef enum _MF_QUALITY_DROP_MODE { 2901 MF_DROP_MODE_NONE = 0x0, 2902 MF_DROP_MODE_1 = 0x1, 2903 MF_DROP_MODE_2 = 0x2, 2904 MF_DROP_MODE_3 = 0x3, 2905 MF_DROP_MODE_4 = 0x4, 2906 MF_DROP_MODE_5 = 0x5, 2907 MF_NUM_DROP_MODES = 0x6 2908 } MF_QUALITY_DROP_MODE; 2909 2910 typedef enum _MF_QUALITY_LEVEL { 2911 MF_QUALITY_NORMAL = 0x0, 2912 MF_QUALITY_NORMAL_MINUS_1 = 0x1, 2913 MF_QUALITY_NORMAL_MINUS_2 = 0x2, 2914 MF_QUALITY_NORMAL_MINUS_3 = 0x3, 2915 MF_QUALITY_NORMAL_MINUS_4 = 0x4, 2916 MF_QUALITY_NORMAL_MINUS_5 = 0x5, 2917 MF_NUM_QUALITY_LEVELS = 0x6 2918 } MF_QUALITY_LEVEL; 2919 2920 typedef enum MF_SOURCE_READER_CONTROL_FLAG { 2921 MF_SOURCE_READER_CONTROLF_DRAIN = 0x00000001 2922 } MF_SOURCE_READER_CONTROL_FLAG; 2923 2924 typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS { 2925 MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x00000000, 2926 MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x00000001, 2927 MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x00000002 2928 } MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS; 2929 2930 typedef enum _MF_TOPONODE_DRAIN_MODE { 2931 MF_TOPONODE_DRAIN_DEFAULT, 2932 MF_TOPONODE_DRAIN_ALWAYS, 2933 MF_TOPONODE_DRAIN_NEVER 2934 } MF_TOPONODE_DRAIN_MODE; 2935 2936 typedef enum _MF_TOPONODE_FLUSH_MODE { 2937 MF_TOPONODE_FLUSH_ALWAYS, 2938 MF_TOPONODE_FLUSH_SEEK, 2939 MF_TOPONODE_FLUSH_NEVER 2940 } MF_TOPONODE_FLUSH_MODE; 2941 2942 #if (WINVER >= 0x0601) 2943 2944 typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS { 2945 MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0, 2946 MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1 2947 } MF_TRANSCODE_TOPOLOGYMODE_FLAGS; 2948 2949 #endif 2950 2951 typedef enum { 2952 MF_LICENSE_URL_UNTRUSTED, 2953 MF_LICENSE_URL_TRUSTED, 2954 MF_LICENSE_URL_TAMPERED 2955 } MF_URL_TRUST_STATUS; 2956 2957 typedef enum MFASF_INDEXERFLAGS { 2958 MFASF_INDEXER_WRITE_NEW_INDEX = 0x00000001, 2959 MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x00000004, 2960 MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x00000008 2961 } MFASF_INDEXERFLAGS; 2962 2963 typedef enum _MFCLOCK_RELATIONAL_FLAGS { 2964 MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1 2965 } MFCLOCK_RELATIONAL_FLAGS; 2966 2967 typedef enum _MFMEDIASOURCE_CHARACTERISTICS { 2968 MFMEDIASOURCE_IS_LIVE = 0x1, 2969 MFMEDIASOURCE_CAN_SEEK = 0x2, 2970 MFMEDIASOURCE_CAN_PAUSE = 0x4, 2971 MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8, 2972 MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10, 2973 MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20, 2974 MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40 2975 } MFMEDIASOURCE_CHARACTERISTICS; 2976 2977 typedef enum _MFNET_PROXYSETTINGS { 2978 MFNET_PROXYSETTING_NONE = 0, 2979 MFNET_PROXYSETTING_MANUAL = 1, 2980 MFNET_PROXYSETTING_AUTO = 2, 2981 MFNET_PROXYSETTING_BROWSER = 3 2982 } MFNET_PROXYSETTINGS; 2983 2984 typedef enum _MFNetAuthenticationFlags { 2985 MFNET_AUTHENTICATION_PROXY = 0x00000001, 2986 MFNET_AUTHENTICATION_CLEAR_TEXT = 0x00000002, 2987 MFNET_AUTHENTICATION_LOGGED_ON_USER 2988 } MFNetAuthenticationFlags; 2989 2990 typedef enum _MFNetCredentialOptions { 2991 MFNET_CREDENTIAL_SAVE = 0x00000001, 2992 MFNET_CREDENTIAL_DONT_CACHE = 0x00000002, 2993 MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004 2994 } MFNetCredentialOptions; 2995 2996 typedef enum _MFNetCredentialRequirements { 2997 REQUIRE_PROMPT = 0x00000001, 2998 REQUIRE_SAVE_SELECTED = 0x00000002 2999 } MFNetCredentialRequirements; 3000 3001 typedef enum _MFNETSOURCE_CACHE_STATE { 3002 MFNETSOURCE_CACHE_UNAVAILABLE, 3003 MFNETSOURCE_CACHE_ACTIVE_WRITING, 3004 MFNETSOURCE_CACHE_ACTIVE_COMPLETE 3005 } MFNETSOURCE_CACHE_STATE; 3006 3007 typedef enum _MFNETSOURCE_PROTOCOL_TYPE { 3008 MFNETSOURCE_UNDEFINED = 0x0, 3009 MFNETSOURCE_HTTP = 0x1, 3010 MFNETSOURCE_RTSP = 0x2, 3011 MFNETSOURCE_FILE = 0x3, 3012 MFNETSOURCE_MULTICAST = 0x4 3013 } MFNETSOURCE_PROTOCOL_TYPE; 3014 3015 typedef enum _MFNETSOURCE_STATISTICS_IDS { 3016 MFNETSOURCE_RECVPACKETS_ID = 0, 3017 MFNETSOURCE_LOSTPACKETS_ID, 3018 MFNETSOURCE_RESENDSREQUESTED_ID, 3019 MFNETSOURCE_RESENDSRECEIVED_ID, 3020 MFNETSOURCE_RECOVEREDBYECCPACKETS_ID, 3021 MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID, 3022 MFNETSOURCE_OUTPACKETS_ID, 3023 MFNETSOURCE_RECVRATE_ID, 3024 MFNETSOURCE_AVGBANDWIDTHBPS_ID, 3025 MFNETSOURCE_BYTESRECEIVED_ID, 3026 MFNETSOURCE_PROTOCOL_ID, 3027 MFNETSOURCE_TRANSPORT_ID, 3028 MFNETSOURCE_CACHE_STATE_ID, 3029 MFNETSOURCE_LINKBANDWIDTH_ID, 3030 MFNETSOURCE_CONTENTBITRATE_ID, 3031 MFNETSOURCE_SPEEDFACTOR_ID, 3032 MFNETSOURCE_BUFFERSIZE_ID, 3033 MFNETSOURCE_BUFFERPROGRESS_ID, 3034 MFNETSOURCE_LASTBWSWITCHTS_ID, 3035 MFNETSOURCE_SEEKRANGESTART_ID, 3036 MFNETSOURCE_SEEKRANGEEND_ID, 3037 MFNETSOURCE_BUFFERINGCOUNT_ID, 3038 MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID, 3039 MFNETSOURCE_SIGNEDSESSION_ID, 3040 MFNETSOURCE_MAXBITRATE_ID, 3041 MFNETSOURCE_RECEPTION_QUALITY_ID, 3042 MFNETSOURCE_RECOVEREDPACKETS_ID, 3043 MFNETSOURCE_VBR_ID, 3044 MFNETSOURCE_DOWNLOADPROGRESS_ID 3045 } MFNETSOURCE_STATISTICS_IDS; 3046 3047 typedef enum _MFNETSOURCE_TRANSPORT_TYPE { 3048 MFNETSOURCE_UDP, 3049 MFNETSOURCE_TCP 3050 } MFNETSOURCE_TRANSPORT_TYPE; 3051 3052 typedef enum MF_OBJECT_TYPE { 3053 MF_OBJECT_MEDIASOURCE, 3054 MF_OBJECT_BYTESTREAM, 3055 MF_OBJECT_INVALID 3056 } MF_OBJECT_TYPE; 3057 3058 typedef enum _MFPOLICYMANAGER_ACTION { 3059 PEACTION_NO = 0, 3060 PEACTION_PLAY = 1, 3061 PEACTION_COPY = 2, 3062 PEACTION_EXPORT = 3, 3063 PEACTION_EXTRACT = 4, 3064 PEACTION_RESERVED1 = 5, 3065 PEACTION_RESERVED2 = 6, 3066 PEACTION_RESERVED3 = 7, 3067 PEACTION_LAST = 7 3068 } MFPOLICYMANAGER_ACTION; 3069 3070 typedef enum _MFRATE_DIRECTION { 3071 MFRATE_FORWARD, 3072 MFRATE_REVERSE 3073 } MFRATE_DIRECTION; 3074 3075 typedef enum _MFSequencerTopologyFlags { 3076 SequencerTopologyFlags_Last = 0x00000001 3077 } MFSequencerTopologyFlags; 3078 3079 typedef enum _MFSHUTDOWN_STATUS { 3080 MFSHUTDOWN_INITIATED, 3081 MFSHUTDOWN_COMPLETED 3082 } MFSHUTDOWN_STATUS; 3083 3084 typedef enum _MFSINK_WMDRMACTION { 3085 MFSINK_WMDRMACTION_UNDEFINED = 0, 3086 MFSINK_WMDRMACTION_ENCODE = 1, 3087 MFSINK_WMDRMACTION_TRANSCODE = 2, 3088 MFSINK_WMDRMACTION_TRANSCRYPT = 3, 3089 MFSINK_WMDRMACTION_LAST = 3 3090 } MFSINK_WMDRMACTION; 3091 3092 typedef enum MFSTREAMSINK_MARKER_TYPE { 3093 MFSTREAMSINK_MARKER_DEFAULT, 3094 MFSTREAMSINK_MARKER_ENDOFSEGMENT, 3095 MFSTREAMSINK_MARKER_TICK, 3096 MFSTREAMSINK_MARKER_EVENT 3097 } MFSTREAMSINK_MARKER_TYPE; 3098 3099 typedef enum MFTIMER_FLAGS { 3100 MFTIMER_RELATIVE = 0x00000001 3101 } MFTIMER_FLAGS; 3102 3103 #if (WINVER >= 0x0601) 3104 3105 typedef enum MFTOPLOGY_DXVA_MODE { 3106 MFTOPOLOGY_DXVA_DEFAULT = 0, 3107 MFTOPOLOGY_DXVA_NONE = 1, 3108 MFTOPOLOGY_DXVA_FULL = 2 3109 } MFTOPOLOGY_DXVA_MODE; 3110 3111 typedef enum MFTOPOLOGY_HARDWARE_MODE { 3112 MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0, 3113 MFTOPOLOGY_HWMODE_USE_HARDWARE = 1 3114 } MFTOPOLOGY_HARDWARE_MODE; 3115 3116 typedef struct _MFT_REGISTRATION_INFO { 3117 CLSID clsid; 3118 GUID guidCategory; 3119 UINT32 uiFlags; 3120 LPCWSTR pszName; 3121 DWORD cInTypes; 3122 MFT_REGISTER_TYPE_INFO *pInTypes; 3123 DWORD cOutTypes; 3124 MFT_REGISTER_TYPE_INFO *pOutTypes; 3125 } MFT_REGISTRATION_INFO; 3126 3127 #endif /*(WINVER >= 0x0601)*/ 3128 3129 typedef struct _ASFFlatPicture { 3130 BYTE bPictureType; 3131 DWORD dwDataLen; 3132 } ASF_FLAT_PICTURE; 3133 3134 typedef struct _ASFFlatSynchronisedLyrics { 3135 BYTE bTimeStampFormat; 3136 BYTE bContentType; 3137 DWORD dwLyricsLen; 3138 } ASF_FLAT_SYNCHRONISED_LYRICS; 3139 3140 typedef enum SAMPLE_PROTECTION_VERSION { 3141 SAMPLE_PROTECTION_VERSION_NO = 0, 3142 SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1, 3143 SAMPLE_PROTECTION_VERSION_SCATTER = 2, 3144 SAMPLE_PROTECTION_VERSION_RC4 = 3 3145 } SAMPLE_PROTECTION_VERSION; 3146 3147 typedef struct _MFINPUTTRUSTAUTHORITY_ACTION { 3148 MFPOLICYMANAGER_ACTION Action; 3149 BYTE *pbTicket; 3150 DWORD cbTicket; 3151 } MFINPUTTRUSTAUTHORITY_ACCESS_ACTION; 3152 3153 typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS { 3154 DWORD dwSize; 3155 DWORD dwVer; 3156 DWORD cbSignatureOffset; 3157 DWORD cbSignatureSize; 3158 DWORD cbExtensionOffset; 3159 DWORD cbExtensionSize; 3160 DWORD cActions; 3161 MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1]; 3162 } MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS; 3163 3164 typedef struct _MFNetCredentialManagerGetParam { 3165 HRESULT hrOp; 3166 WINBOOL fAllowLoggedOnUser; 3167 WINBOOL fClearTextPackage; 3168 LPCWSTR pszUrl; 3169 LPCWSTR pszSite; 3170 LPCWSTR pszRealm; 3171 LPCWSTR pszPackage; 3172 LONG nRetries; 3173 } MFNetCredentialManagerGetParam; 3174 3175 #define MF_1_BYTE_ALIGNMENT 0x00000000 3176 #define MF_2_BYTE_ALIGNMENT 0x00000001 3177 #define MF_4_BYTE_ALIGNMENT 0x00000003 3178 #define MF_8_BYTE_ALIGNMENT 0x00000007 3179 #define MF_16_BYTE_ALIGNMENT 0x0000000F 3180 #define MF_32_BYTE_ALIGNMENT 0x0000001F 3181 #define MF_64_BYTE_ALIGNMENT 0x0000003F 3182 #define MF_128_BYTE_ALIGNMENT 0x0000007F 3183 #define MF_256_BYTE_ALIGNMENT 0x000000FF 3184 #define MF_512_BYTE_ALIGNMENT 0x000001FF 3185 3186 #define MEDIASINK_FIXED_STREAMS 0x00000001 3187 #define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002 3188 #define MEDIASINK_RATELESS 0x00000004 3189 #define MEDIASINK_CLOCK_REQUIRED 0x00000008 3190 #define MEDIASINK_CAN_PREROLL 0x00000010 3191 #define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020 3192 3193 #define MF_RESOLUTION_MEDIASOURCE 0x00000001 3194 #define MF_RESOLUTION_BYTESTREAM 0x00000002 3195 #define MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE 0x00000010 3196 #define MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL 0x00000020 3197 #define MF_RESOLUTION_READ 0x00010000 3198 #define MF_RESOLUTION_WRITE 0x00020000 3199 #ifndef __IMFMediaSink_FWD_DEFINED__ 3200 #define __IMFMediaSink_FWD_DEFINED__ 3201 typedef interface IMFMediaSink IMFMediaSink; 3202 #ifdef __cplusplus 3203 interface IMFMediaSink; 3204 #endif /* __cplusplus */ 3205 #endif 3206 3207 #ifndef __IMFASFContentInfo_FWD_DEFINED__ 3208 #define __IMFASFContentInfo_FWD_DEFINED__ 3209 typedef interface IMFASFContentInfo IMFASFContentInfo; 3210 #ifdef __cplusplus 3211 interface IMFASFContentInfo; 3212 #endif /* __cplusplus */ 3213 #endif 3214 3215 #ifndef __IMFASFIndexer_FWD_DEFINED__ 3216 #define __IMFASFIndexer_FWD_DEFINED__ 3217 typedef interface IMFASFIndexer IMFASFIndexer; 3218 #ifdef __cplusplus 3219 interface IMFASFIndexer; 3220 #endif /* __cplusplus */ 3221 #endif 3222 3223 #ifndef __IMFASFMultiplexer_FWD_DEFINED__ 3224 #define __IMFASFMultiplexer_FWD_DEFINED__ 3225 typedef interface IMFASFMultiplexer IMFASFMultiplexer; 3226 #ifdef __cplusplus 3227 interface IMFASFMultiplexer; 3228 #endif /* __cplusplus */ 3229 #endif 3230 3231 #ifndef __IMFASFProfile_FWD_DEFINED__ 3232 #define __IMFASFProfile_FWD_DEFINED__ 3233 typedef interface IMFASFProfile IMFASFProfile; 3234 #ifdef __cplusplus 3235 interface IMFASFProfile; 3236 #endif /* __cplusplus */ 3237 #endif 3238 3239 #ifndef __IMFASFSplitter_FWD_DEFINED__ 3240 #define __IMFASFSplitter_FWD_DEFINED__ 3241 typedef interface IMFASFSplitter IMFASFSplitter; 3242 #ifdef __cplusplus 3243 interface IMFASFSplitter; 3244 #endif /* __cplusplus */ 3245 #endif 3246 3247 #ifndef __IMFPMPServer_FWD_DEFINED__ 3248 #define __IMFPMPServer_FWD_DEFINED__ 3249 typedef interface IMFPMPServer IMFPMPServer; 3250 #ifdef __cplusplus 3251 interface IMFPMPServer; 3252 #endif /* __cplusplus */ 3253 #endif 3254 3255 #ifndef __IMFPresentationClock_FWD_DEFINED__ 3256 #define __IMFPresentationClock_FWD_DEFINED__ 3257 typedef interface IMFPresentationClock IMFPresentationClock; 3258 #ifdef __cplusplus 3259 interface IMFPresentationClock; 3260 #endif /* __cplusplus */ 3261 #endif 3262 3263 #ifndef __IMFNetProxyLocator_FWD_DEFINED__ 3264 #define __IMFNetProxyLocator_FWD_DEFINED__ 3265 typedef interface IMFNetProxyLocator IMFNetProxyLocator; 3266 #ifdef __cplusplus 3267 interface IMFNetProxyLocator; 3268 #endif /* __cplusplus */ 3269 #endif 3270 3271 #ifndef __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3272 #define __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3273 typedef interface IMFRemoteDesktopPlugin IMFRemoteDesktopPlugin; 3274 #ifdef __cplusplus 3275 interface IMFRemoteDesktopPlugin; 3276 #endif /* __cplusplus */ 3277 #endif 3278 3279 #ifndef __IMFTransform_FWD_DEFINED__ 3280 #define __IMFTransform_FWD_DEFINED__ 3281 typedef interface IMFTransform IMFTransform; 3282 #ifdef __cplusplus 3283 interface IMFTransform; 3284 #endif /* __cplusplus */ 3285 #endif 3286 3287 #ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 3288 #define __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 3289 typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback; 3290 #ifdef __cplusplus 3291 interface IMFSampleGrabberSinkCallback; 3292 #endif /* __cplusplus */ 3293 #endif 3294 3295 #ifndef __IMFSequencerSource_FWD_DEFINED__ 3296 #define __IMFSequencerSource_FWD_DEFINED__ 3297 typedef interface IMFSequencerSource IMFSequencerSource; 3298 #ifdef __cplusplus 3299 interface IMFSequencerSource; 3300 #endif /* __cplusplus */ 3301 #endif 3302 3303 #ifndef __IMFQualityManager_FWD_DEFINED__ 3304 #define __IMFQualityManager_FWD_DEFINED__ 3305 typedef interface IMFQualityManager IMFQualityManager; 3306 #ifdef __cplusplus 3307 interface IMFQualityManager; 3308 #endif /* __cplusplus */ 3309 #endif 3310 3311 #ifndef __IMFSourceResolver_FWD_DEFINED__ 3312 #define __IMFSourceResolver_FWD_DEFINED__ 3313 typedef interface IMFSourceResolver IMFSourceResolver; 3314 #ifdef __cplusplus 3315 interface IMFSourceResolver; 3316 #endif /* __cplusplus */ 3317 #endif 3318 3319 #ifndef __IMFPresentationTimeSource_FWD_DEFINED__ 3320 #define __IMFPresentationTimeSource_FWD_DEFINED__ 3321 typedef interface IMFPresentationTimeSource IMFPresentationTimeSource; 3322 #ifdef __cplusplus 3323 interface IMFPresentationTimeSource; 3324 #endif /* __cplusplus */ 3325 #endif 3326 3327 #ifndef __IMFTopoLoader_FWD_DEFINED__ 3328 #define __IMFTopoLoader_FWD_DEFINED__ 3329 typedef interface IMFTopoLoader IMFTopoLoader; 3330 #ifdef __cplusplus 3331 interface IMFTopoLoader; 3332 #endif /* __cplusplus */ 3333 #endif 3334 3335 #ifndef __IMFTranscodeProfile_FWD_DEFINED__ 3336 #define __IMFTranscodeProfile_FWD_DEFINED__ 3337 typedef interface IMFTranscodeProfile IMFTranscodeProfile; 3338 #ifdef __cplusplus 3339 interface IMFTranscodeProfile; 3340 #endif /* __cplusplus */ 3341 #endif 3342 3343 HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 3344 HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource); 3345 3346 HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer); 3347 HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); 3348 HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); 3349 HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream); 3350 HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink); 3351 HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate); 3352 HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); 3353 HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); 3354 HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile); 3355 HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); 3356 HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS); 3357 HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink); 3358 HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 3359 HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler); 3360 HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer); 3361 HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate); 3362 HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath); 3363 HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock); 3364 HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor); 3365 HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD); 3366 HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator); 3367 HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin); 3368 HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample); 3369 HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT); 3370 HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate); 3371 HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource); 3372 HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler); 3373 HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager); 3374 HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor); 3375 HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver); 3376 HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource); 3377 HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj); 3378 HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo); 3379 HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode); 3380 HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer); 3381 HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate); 3382 HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject); 3383 HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray); 3384 HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray); 3385 MFTIME WINAPI MFGetSystemTime(void); 3386 HRESULT WINAPI MFShutdownObject(IUnknown *pUnk); 3387 HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore); 3388 HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore); 3389 #if (WINVER >= 0x0601) 3390 3391 HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile); 3392 HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate); 3393 HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo); 3394 HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate); 3395 HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType); 3396 HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes); 3397 #endif 3398 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1); 3399 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4); 3400 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f); 3401 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52); 3402 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e); 3403 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63); 3404 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26); 3405 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f); 3406 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a, 0x4ae7, 0x42d8, 0x99, 0xe0, 0x0a, 0x60, 0x13, 0xee, 0xf9, 0x0f); 3407 /* Begin additional prototypes for all interfaces */ 3408 3409 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 3410 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 3411 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 3412 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 3413 ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *); 3414 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *); 3415 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *); 3416 void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *); 3417 3418 /* End additional prototypes */ 3419 3420 #ifdef __cplusplus 3421 } 3422 #endif 3423 3424 #endif /* __mfidl_h__ */ 3425