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