1/*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/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__ 22typedef interface IMFTopologyNode IMFTopologyNode; 23#endif 24 25#ifndef __IMFTopology_FWD_DEFINED__ 26#define __IMFTopology_FWD_DEFINED__ 27typedef interface IMFTopology IMFTopology; 28#endif 29 30#ifndef __IMFClock_FWD_DEFINED__ 31#define __IMFClock_FWD_DEFINED__ 32typedef interface IMFClock IMFClock; 33#endif 34 35#ifndef __IMFMediaSession_FWD_DEFINED__ 36#define __IMFMediaSession_FWD_DEFINED__ 37typedef interface IMFMediaSession IMFMediaSession; 38#endif 39 40#ifndef __IMFMediaTypeHandler_FWD_DEFINED__ 41#define __IMFMediaTypeHandler_FWD_DEFINED__ 42typedef interface IMFMediaTypeHandler IMFMediaTypeHandler; 43#endif 44 45#ifndef __IMFStreamDescriptor_FWD_DEFINED__ 46#define __IMFStreamDescriptor_FWD_DEFINED__ 47typedef interface IMFStreamDescriptor IMFStreamDescriptor; 48#endif 49 50#ifndef __IMFPresentationDescriptor_FWD_DEFINED__ 51#define __IMFPresentationDescriptor_FWD_DEFINED__ 52typedef interface IMFPresentationDescriptor IMFPresentationDescriptor; 53#endif 54 55#ifndef __IMFMediaSource_FWD_DEFINED__ 56#define __IMFMediaSource_FWD_DEFINED__ 57typedef interface IMFMediaSource IMFMediaSource; 58#endif 59 60#ifndef __IMFByteStreamBuffering_FWD_DEFINED__ 61#define __IMFByteStreamBuffering_FWD_DEFINED__ 62typedef interface IMFByteStreamBuffering IMFByteStreamBuffering; 63#endif 64 65/* Headers for imported files */ 66 67#include <mfobjects.h> 68 69#ifdef __cplusplus 70extern "C" { 71#endif 72 73#include <mftransform.h> 74#include <windef.h> 75typedef enum MFSESSION_SETTOPOLOGY_FLAGS { 76 MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1, 77 MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2, 78 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4 79} MFSESSION_SETTOPOLOGY_FLAGS; 80typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS { 81 MFSESSION_GETFULLTOPOLOGY_CURRENT = 0 82} MFSESSION_GETFULLTOPOLOGY_FLAGS; 83typedef enum MFPMPSESSION_CREATION_FLAGS { 84 MFPMPSESSION_UNPROTECTED_PROCESS = 0x1 85} MFPMPSESSION_CREATION_FLAGS; 86typedef UINT64 TOPOID; 87typedef 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 100DEFINE_GUID(IID_IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30); 101#if defined(__cplusplus) && !defined(CINTERFACE) 102MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc430") 103IMFTopologyNode : 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 168typedef 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; 413interface 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 ***/ 473static FORCEINLINE HRESULT IMFTopologyNode_QueryInterface(IMFTopologyNode* This,REFIID riid,void **ppvObject) { 474 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 475} 476static FORCEINLINE ULONG IMFTopologyNode_AddRef(IMFTopologyNode* This) { 477 return This->lpVtbl->AddRef(This); 478} 479static FORCEINLINE ULONG IMFTopologyNode_Release(IMFTopologyNode* This) { 480 return This->lpVtbl->Release(This); 481} 482/*** IMFAttributes methods ***/ 483static FORCEINLINE HRESULT IMFTopologyNode_GetItem(IMFTopologyNode* This,REFGUID guidKey,PROPVARIANT *pValue) { 484 return This->lpVtbl->GetItem(This,guidKey,pValue); 485} 486static FORCEINLINE HRESULT IMFTopologyNode_GetItemType(IMFTopologyNode* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 487 return This->lpVtbl->GetItemType(This,guidKey,pType); 488} 489static FORCEINLINE HRESULT IMFTopologyNode_CompareItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 490 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 491} 492static 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} 495static FORCEINLINE HRESULT IMFTopologyNode_GetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 *punValue) { 496 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 497} 498static FORCEINLINE HRESULT IMFTopologyNode_GetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 *punValue) { 499 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 500} 501static FORCEINLINE HRESULT IMFTopologyNode_GetDouble(IMFTopologyNode* This,REFGUID guidKey,double *pfValue) { 502 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 503} 504static FORCEINLINE HRESULT IMFTopologyNode_GetGUID(IMFTopologyNode* This,REFGUID guidKey,GUID *pguidValue) { 505 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 506} 507static FORCEINLINE HRESULT IMFTopologyNode_GetStringLength(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcchLength) { 508 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 509} 510static 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} 513static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 514 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 515} 516static FORCEINLINE HRESULT IMFTopologyNode_GetBlobSize(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 517 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 518} 519static 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} 522static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 523 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 524} 525static FORCEINLINE HRESULT IMFTopologyNode_GetUnknown(IMFTopologyNode* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 526 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 527} 528static FORCEINLINE HRESULT IMFTopologyNode_SetItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value) { 529 return This->lpVtbl->SetItem(This,guidKey,Value); 530} 531static FORCEINLINE HRESULT IMFTopologyNode_DeleteItem(IMFTopologyNode* This,REFGUID guidKey) { 532 return This->lpVtbl->DeleteItem(This,guidKey); 533} 534static FORCEINLINE HRESULT IMFTopologyNode_DeleteAllItems(IMFTopologyNode* This) { 535 return This->lpVtbl->DeleteAllItems(This); 536} 537static FORCEINLINE HRESULT IMFTopologyNode_SetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 unValue) { 538 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 539} 540static FORCEINLINE HRESULT IMFTopologyNode_SetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 unValue) { 541 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 542} 543static FORCEINLINE HRESULT IMFTopologyNode_SetDouble(IMFTopologyNode* This,REFGUID guidKey,double fValue) { 544 return This->lpVtbl->SetDouble(This,guidKey,fValue); 545} 546static FORCEINLINE HRESULT IMFTopologyNode_SetGUID(IMFTopologyNode* This,REFGUID guidKey,REFGUID guidValue) { 547 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 548} 549static FORCEINLINE HRESULT IMFTopologyNode_SetString(IMFTopologyNode* This,REFGUID guidKey,LPCWSTR wszValue) { 550 return This->lpVtbl->SetString(This,guidKey,wszValue); 551} 552static FORCEINLINE HRESULT IMFTopologyNode_SetBlob(IMFTopologyNode* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 553 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 554} 555static FORCEINLINE HRESULT IMFTopologyNode_SetUnknown(IMFTopologyNode* This,REFGUID guidKey,IUnknown *pUnknown) { 556 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 557} 558static FORCEINLINE HRESULT IMFTopologyNode_LockStore(IMFTopologyNode* This) { 559 return This->lpVtbl->LockStore(This); 560} 561static FORCEINLINE HRESULT IMFTopologyNode_UnlockStore(IMFTopologyNode* This) { 562 return This->lpVtbl->UnlockStore(This); 563} 564static FORCEINLINE HRESULT IMFTopologyNode_GetCount(IMFTopologyNode* This,UINT32 *pcItems) { 565 return This->lpVtbl->GetCount(This,pcItems); 566} 567static FORCEINLINE HRESULT IMFTopologyNode_GetItemByIndex(IMFTopologyNode* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 568 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 569} 570static FORCEINLINE HRESULT IMFTopologyNode_CopyAllItems(IMFTopologyNode* This,IMFAttributes *pDest) { 571 return This->lpVtbl->CopyAllItems(This,pDest); 572} 573/*** IMFTopologyNode methods ***/ 574static FORCEINLINE HRESULT IMFTopologyNode_SetObject(IMFTopologyNode* This,IUnknown *pObject) { 575 return This->lpVtbl->SetObject(This,pObject); 576} 577static FORCEINLINE HRESULT IMFTopologyNode_GetObject(IMFTopologyNode* This,IUnknown **ppObject) { 578 return This->lpVtbl->GetObject(This,ppObject); 579} 580static FORCEINLINE HRESULT IMFTopologyNode_GetNodeType(IMFTopologyNode* This,MF_TOPOLOGY_TYPE *pType) { 581 return This->lpVtbl->GetNodeType(This,pType); 582} 583static FORCEINLINE HRESULT IMFTopologyNode_GetTopoNodeID(IMFTopologyNode* This,TOPOID *pID) { 584 return This->lpVtbl->GetTopoNodeID(This,pID); 585} 586static FORCEINLINE HRESULT IMFTopologyNode_SetTopoNodeID(IMFTopologyNode* This,TOPOID ullTopoID) { 587 return This->lpVtbl->SetTopoNodeID(This,ullTopoID); 588} 589static FORCEINLINE HRESULT IMFTopologyNode_GetInputCount(IMFTopologyNode* This,DWORD *pcInputs) { 590 return This->lpVtbl->GetInputCount(This,pcInputs); 591} 592static FORCEINLINE HRESULT IMFTopologyNode_GetOutputCount(IMFTopologyNode* This,DWORD *pcOutputs) { 593 return This->lpVtbl->GetOutputCount(This,pcOutputs); 594} 595static FORCEINLINE HRESULT IMFTopologyNode_ConnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) { 596 return This->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode); 597} 598static FORCEINLINE HRESULT IMFTopologyNode_DisconnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex) { 599 return This->lpVtbl->DisconnectOutput(This,dwOutputIndex); 600} 601static FORCEINLINE HRESULT IMFTopologyNode_GetInput(IMFTopologyNode* This,DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) { 602 return This->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode); 603} 604static FORCEINLINE HRESULT IMFTopologyNode_GetOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) { 605 return This->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode); 606} 607static FORCEINLINE HRESULT IMFTopologyNode_SetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType *pType) { 608 return This->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType); 609} 610static FORCEINLINE HRESULT IMFTopologyNode_GetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType **ppType) { 611 return This->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType); 612} 613static FORCEINLINE HRESULT IMFTopologyNode_SetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType *pType) { 614 return This->lpVtbl->SetInputPrefType(This,dwInputIndex,pType); 615} 616static FORCEINLINE HRESULT IMFTopologyNode_GetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType **ppType) { 617 return This->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType); 618} 619static FORCEINLINE HRESULT IMFTopologyNode_CloneFrom(IMFTopologyNode* This,IMFTopologyNode *pNode) { 620 return This->lpVtbl->CloneFrom(This,pNode); 621} 622#endif 623#endif 624 625#endif 626 627HRESULT STDMETHODCALLTYPE IMFTopologyNode_SetObject_Proxy( 628 IMFTopologyNode* This, 629 IUnknown *pObject); 630void __RPC_STUB IMFTopologyNode_SetObject_Stub( 631 IRpcStubBuffer* This, 632 IRpcChannelBuffer* pRpcChannelBuffer, 633 PRPC_MESSAGE pRpcMessage, 634 DWORD* pdwStubPhase); 635HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetObject_Proxy( 636 IMFTopologyNode* This, 637 IUnknown **ppObject); 638void __RPC_STUB IMFTopologyNode_GetObject_Stub( 639 IRpcStubBuffer* This, 640 IRpcChannelBuffer* pRpcChannelBuffer, 641 PRPC_MESSAGE pRpcMessage, 642 DWORD* pdwStubPhase); 643HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetNodeType_Proxy( 644 IMFTopologyNode* This, 645 MF_TOPOLOGY_TYPE *pType); 646void __RPC_STUB IMFTopologyNode_GetNodeType_Stub( 647 IRpcStubBuffer* This, 648 IRpcChannelBuffer* pRpcChannelBuffer, 649 PRPC_MESSAGE pRpcMessage, 650 DWORD* pdwStubPhase); 651HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetTopoNodeID_Proxy( 652 IMFTopologyNode* This, 653 TOPOID *pID); 654void __RPC_STUB IMFTopologyNode_GetTopoNodeID_Stub( 655 IRpcStubBuffer* This, 656 IRpcChannelBuffer* pRpcChannelBuffer, 657 PRPC_MESSAGE pRpcMessage, 658 DWORD* pdwStubPhase); 659HRESULT STDMETHODCALLTYPE IMFTopologyNode_SetTopoNodeID_Proxy( 660 IMFTopologyNode* This, 661 TOPOID ullTopoID); 662void __RPC_STUB IMFTopologyNode_SetTopoNodeID_Stub( 663 IRpcStubBuffer* This, 664 IRpcChannelBuffer* pRpcChannelBuffer, 665 PRPC_MESSAGE pRpcMessage, 666 DWORD* pdwStubPhase); 667HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetInputCount_Proxy( 668 IMFTopologyNode* This, 669 DWORD *pcInputs); 670void __RPC_STUB IMFTopologyNode_GetInputCount_Stub( 671 IRpcStubBuffer* This, 672 IRpcChannelBuffer* pRpcChannelBuffer, 673 PRPC_MESSAGE pRpcMessage, 674 DWORD* pdwStubPhase); 675HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetOutputCount_Proxy( 676 IMFTopologyNode* This, 677 DWORD *pcOutputs); 678void __RPC_STUB IMFTopologyNode_GetOutputCount_Stub( 679 IRpcStubBuffer* This, 680 IRpcChannelBuffer* pRpcChannelBuffer, 681 PRPC_MESSAGE pRpcMessage, 682 DWORD* pdwStubPhase); 683HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetInput_Proxy( 684 IMFTopologyNode* This, 685 DWORD dwInputIndex, 686 IMFTopologyNode **ppUpstreamNode, 687 DWORD *pdwOutputIndexOnUpstreamNode); 688void __RPC_STUB IMFTopologyNode_GetInput_Stub( 689 IRpcStubBuffer* This, 690 IRpcChannelBuffer* pRpcChannelBuffer, 691 PRPC_MESSAGE pRpcMessage, 692 DWORD* pdwStubPhase); 693HRESULT STDMETHODCALLTYPE IMFTopologyNode_GetOutput_Proxy( 694 IMFTopologyNode* This, 695 DWORD dwOutputIndex, 696 IMFTopologyNode **ppDownstreamNode, 697 DWORD *pdwInputIndexOnDownstreamNode); 698void __RPC_STUB IMFTopologyNode_GetOutput_Stub( 699 IRpcStubBuffer* This, 700 IRpcChannelBuffer* pRpcChannelBuffer, 701 PRPC_MESSAGE pRpcMessage, 702 DWORD* pdwStubPhase); 703HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetOutputPrefType_Proxy( 704 IMFTopologyNode* This, 705 DWORD dwOutputIndex, 706 DWORD *pcbData, 707 BYTE **ppbData); 708void __RPC_STUB IMFTopologyNode_RemoteGetOutputPrefType_Stub( 709 IRpcStubBuffer* This, 710 IRpcChannelBuffer* pRpcChannelBuffer, 711 PRPC_MESSAGE pRpcMessage, 712 DWORD* pdwStubPhase); 713HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetInputPrefType_Proxy( 714 IMFTopologyNode* This, 715 DWORD dwInputIndex, 716 DWORD *pcbData, 717 BYTE **ppbData); 718void __RPC_STUB IMFTopologyNode_RemoteGetInputPrefType_Stub( 719 IRpcStubBuffer* This, 720 IRpcChannelBuffer* pRpcChannelBuffer, 721 PRPC_MESSAGE pRpcMessage, 722 DWORD* pdwStubPhase); 723HRESULT STDMETHODCALLTYPE IMFTopologyNode_CloneFrom_Proxy( 724 IMFTopologyNode* This, 725 IMFTopologyNode *pNode); 726void __RPC_STUB IMFTopologyNode_CloneFrom_Stub( 727 IRpcStubBuffer* This, 728 IRpcChannelBuffer* pRpcChannelBuffer, 729 PRPC_MESSAGE pRpcMessage, 730 DWORD* pdwStubPhase); 731HRESULT CALLBACK IMFTopologyNode_GetOutputPrefType_Proxy( 732 IMFTopologyNode* This, 733 DWORD dwOutputIndex, 734 IMFMediaType **ppType); 735HRESULT __RPC_STUB IMFTopologyNode_GetOutputPrefType_Stub( 736 IMFTopologyNode* This, 737 DWORD dwOutputIndex, 738 DWORD *pcbData, 739 BYTE **ppbData); 740HRESULT CALLBACK IMFTopologyNode_GetInputPrefType_Proxy( 741 IMFTopologyNode* This, 742 DWORD dwInputIndex, 743 IMFMediaType **ppType); 744HRESULT __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 758DEFINE_GUID(IID_IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33); 759#if defined(__cplusplus) && !defined(CINTERFACE) 760MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc433") 761IMFTopology : 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 800typedef 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; 1012interface 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 ***/ 1066static FORCEINLINE HRESULT IMFTopology_QueryInterface(IMFTopology* This,REFIID riid,void **ppvObject) { 1067 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1068} 1069static FORCEINLINE ULONG IMFTopology_AddRef(IMFTopology* This) { 1070 return This->lpVtbl->AddRef(This); 1071} 1072static FORCEINLINE ULONG IMFTopology_Release(IMFTopology* This) { 1073 return This->lpVtbl->Release(This); 1074} 1075/*** IMFAttributes methods ***/ 1076static FORCEINLINE HRESULT IMFTopology_GetItem(IMFTopology* This,REFGUID guidKey,PROPVARIANT *pValue) { 1077 return This->lpVtbl->GetItem(This,guidKey,pValue); 1078} 1079static FORCEINLINE HRESULT IMFTopology_GetItemType(IMFTopology* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 1080 return This->lpVtbl->GetItemType(This,guidKey,pType); 1081} 1082static FORCEINLINE HRESULT IMFTopology_CompareItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 1083 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 1084} 1085static 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} 1088static FORCEINLINE HRESULT IMFTopology_GetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 *punValue) { 1089 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 1090} 1091static FORCEINLINE HRESULT IMFTopology_GetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 *punValue) { 1092 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 1093} 1094static FORCEINLINE HRESULT IMFTopology_GetDouble(IMFTopology* This,REFGUID guidKey,double *pfValue) { 1095 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 1096} 1097static FORCEINLINE HRESULT IMFTopology_GetGUID(IMFTopology* This,REFGUID guidKey,GUID *pguidValue) { 1098 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 1099} 1100static FORCEINLINE HRESULT IMFTopology_GetStringLength(IMFTopology* This,REFGUID guidKey,UINT32 *pcchLength) { 1101 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 1102} 1103static 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} 1106static FORCEINLINE HRESULT IMFTopology_GetAllocatedString(IMFTopology* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 1107 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 1108} 1109static FORCEINLINE HRESULT IMFTopology_GetBlobSize(IMFTopology* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 1110 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 1111} 1112static 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} 1115static FORCEINLINE HRESULT IMFTopology_GetAllocatedBlob(IMFTopology* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 1116 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 1117} 1118static FORCEINLINE HRESULT IMFTopology_GetUnknown(IMFTopology* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 1119 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 1120} 1121static FORCEINLINE HRESULT IMFTopology_SetItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value) { 1122 return This->lpVtbl->SetItem(This,guidKey,Value); 1123} 1124static FORCEINLINE HRESULT IMFTopology_DeleteItem(IMFTopology* This,REFGUID guidKey) { 1125 return This->lpVtbl->DeleteItem(This,guidKey); 1126} 1127static FORCEINLINE HRESULT IMFTopology_DeleteAllItems(IMFTopology* This) { 1128 return This->lpVtbl->DeleteAllItems(This); 1129} 1130static FORCEINLINE HRESULT IMFTopology_SetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 unValue) { 1131 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 1132} 1133static FORCEINLINE HRESULT IMFTopology_SetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 unValue) { 1134 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 1135} 1136static FORCEINLINE HRESULT IMFTopology_SetDouble(IMFTopology* This,REFGUID guidKey,double fValue) { 1137 return This->lpVtbl->SetDouble(This,guidKey,fValue); 1138} 1139static FORCEINLINE HRESULT IMFTopology_SetGUID(IMFTopology* This,REFGUID guidKey,REFGUID guidValue) { 1140 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 1141} 1142static FORCEINLINE HRESULT IMFTopology_SetString(IMFTopology* This,REFGUID guidKey,LPCWSTR wszValue) { 1143 return This->lpVtbl->SetString(This,guidKey,wszValue); 1144} 1145static FORCEINLINE HRESULT IMFTopology_SetBlob(IMFTopology* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 1146 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 1147} 1148static FORCEINLINE HRESULT IMFTopology_SetUnknown(IMFTopology* This,REFGUID guidKey,IUnknown *pUnknown) { 1149 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 1150} 1151static FORCEINLINE HRESULT IMFTopology_LockStore(IMFTopology* This) { 1152 return This->lpVtbl->LockStore(This); 1153} 1154static FORCEINLINE HRESULT IMFTopology_UnlockStore(IMFTopology* This) { 1155 return This->lpVtbl->UnlockStore(This); 1156} 1157static FORCEINLINE HRESULT IMFTopology_GetCount(IMFTopology* This,UINT32 *pcItems) { 1158 return This->lpVtbl->GetCount(This,pcItems); 1159} 1160static FORCEINLINE HRESULT IMFTopology_GetItemByIndex(IMFTopology* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 1161 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 1162} 1163static FORCEINLINE HRESULT IMFTopology_CopyAllItems(IMFTopology* This,IMFAttributes *pDest) { 1164 return This->lpVtbl->CopyAllItems(This,pDest); 1165} 1166/*** IMFTopology methods ***/ 1167static FORCEINLINE HRESULT IMFTopology_GetTopologyID(IMFTopology* This,TOPOID *pID) { 1168 return This->lpVtbl->GetTopologyID(This,pID); 1169} 1170static FORCEINLINE HRESULT IMFTopology_AddNode(IMFTopology* This,IMFTopologyNode *pNode) { 1171 return This->lpVtbl->AddNode(This,pNode); 1172} 1173static FORCEINLINE HRESULT IMFTopology_RemoveNode(IMFTopology* This,IMFTopologyNode *pNode) { 1174 return This->lpVtbl->RemoveNode(This,pNode); 1175} 1176static FORCEINLINE HRESULT IMFTopology_GetNodeCount(IMFTopology* This,WORD *pwNodes) { 1177 return This->lpVtbl->GetNodeCount(This,pwNodes); 1178} 1179static FORCEINLINE HRESULT IMFTopology_GetNode(IMFTopology* This,WORD wIndex,IMFTopologyNode **ppNode) { 1180 return This->lpVtbl->GetNode(This,wIndex,ppNode); 1181} 1182static FORCEINLINE HRESULT IMFTopology_Clear(IMFTopology* This) { 1183 return This->lpVtbl->Clear(This); 1184} 1185static FORCEINLINE HRESULT IMFTopology_CloneFrom(IMFTopology* This,IMFTopology *pTopology) { 1186 return This->lpVtbl->CloneFrom(This,pTopology); 1187} 1188static FORCEINLINE HRESULT IMFTopology_GetNodeByID(IMFTopology* This,TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) { 1189 return This->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode); 1190} 1191static FORCEINLINE HRESULT IMFTopology_GetSourceNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1192 return This->lpVtbl->GetSourceNodeCollection(This,ppCollection); 1193} 1194static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This,IMFCollection **ppCollection) { 1195 return This->lpVtbl->GetOutputNodeCollection(This,ppCollection); 1196} 1197#endif 1198#endif 1199 1200#endif 1201 1202HRESULT STDMETHODCALLTYPE IMFTopology_GetTopologyID_Proxy( 1203 IMFTopology* This, 1204 TOPOID *pID); 1205void __RPC_STUB IMFTopology_GetTopologyID_Stub( 1206 IRpcStubBuffer* This, 1207 IRpcChannelBuffer* pRpcChannelBuffer, 1208 PRPC_MESSAGE pRpcMessage, 1209 DWORD* pdwStubPhase); 1210HRESULT STDMETHODCALLTYPE IMFTopology_GetNodeCount_Proxy( 1211 IMFTopology* This, 1212 WORD *pwNodes); 1213void __RPC_STUB IMFTopology_GetNodeCount_Stub( 1214 IRpcStubBuffer* This, 1215 IRpcChannelBuffer* pRpcChannelBuffer, 1216 PRPC_MESSAGE pRpcMessage, 1217 DWORD* pdwStubPhase); 1218HRESULT STDMETHODCALLTYPE IMFTopology_GetNode_Proxy( 1219 IMFTopology* This, 1220 WORD wIndex, 1221 IMFTopologyNode **ppNode); 1222void __RPC_STUB IMFTopology_GetNode_Stub( 1223 IRpcStubBuffer* This, 1224 IRpcChannelBuffer* pRpcChannelBuffer, 1225 PRPC_MESSAGE pRpcMessage, 1226 DWORD* pdwStubPhase); 1227HRESULT STDMETHODCALLTYPE IMFTopology_CloneFrom_Proxy( 1228 IMFTopology* This, 1229 IMFTopology *pTopology); 1230void __RPC_STUB IMFTopology_CloneFrom_Stub( 1231 IRpcStubBuffer* This, 1232 IRpcChannelBuffer* pRpcChannelBuffer, 1233 PRPC_MESSAGE pRpcMessage, 1234 DWORD* pdwStubPhase); 1235HRESULT STDMETHODCALLTYPE IMFTopology_GetNodeByID_Proxy( 1236 IMFTopology* This, 1237 TOPOID qwTopoNodeID, 1238 IMFTopologyNode **ppNode); 1239void __RPC_STUB IMFTopology_GetNodeByID_Stub( 1240 IRpcStubBuffer* This, 1241 IRpcChannelBuffer* pRpcChannelBuffer, 1242 PRPC_MESSAGE pRpcMessage, 1243 DWORD* pdwStubPhase); 1244HRESULT STDMETHODCALLTYPE IMFTopology_GetSourceNodeCollection_Proxy( 1245 IMFTopology* This, 1246 IMFCollection **ppCollection); 1247void __RPC_STUB IMFTopology_GetSourceNodeCollection_Stub( 1248 IRpcStubBuffer* This, 1249 IRpcChannelBuffer* pRpcChannelBuffer, 1250 PRPC_MESSAGE pRpcMessage, 1251 DWORD* pdwStubPhase); 1252HRESULT STDMETHODCALLTYPE IMFTopology_GetOutputNodeCollection_Proxy( 1253 IMFTopology* This, 1254 IMFCollection **ppCollection); 1255void __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 1263typedef LONGLONG MFTIME; 1264typedef 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; 1270typedef enum _MF_CLOCK_STATE MFCLOCK_STATE; 1271typedef 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 1285DEFINE_GUID(IID_IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30); 1286#if defined(__cplusplus) && !defined(CINTERFACE) 1287MIDL_INTERFACE("2eb1e945-18b8-4139-9b1a-d5d584818530") 1288IMFClock : 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 1313typedef 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; 1354interface 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 ***/ 1372static FORCEINLINE HRESULT IMFClock_QueryInterface(IMFClock* This,REFIID riid,void **ppvObject) { 1373 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1374} 1375static FORCEINLINE ULONG IMFClock_AddRef(IMFClock* This) { 1376 return This->lpVtbl->AddRef(This); 1377} 1378static FORCEINLINE ULONG IMFClock_Release(IMFClock* This) { 1379 return This->lpVtbl->Release(This); 1380} 1381/*** IMFClock methods ***/ 1382static FORCEINLINE HRESULT IMFClock_GetClockCharacteristics(IMFClock* This,DWORD *pdwCharacteristics) { 1383 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics); 1384} 1385static FORCEINLINE HRESULT IMFClock_GetCorrelatedTime(IMFClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) { 1386 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime); 1387} 1388static FORCEINLINE HRESULT IMFClock_GetContinuityKey(IMFClock* This,DWORD *pdwContinuityKey) { 1389 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey); 1390} 1391static FORCEINLINE HRESULT IMFClock_GetState(IMFClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) { 1392 return This->lpVtbl->GetState(This,dwReserved,peClockState); 1393} 1394static 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 1402HRESULT STDMETHODCALLTYPE IMFClock_GetClockCharacteristics_Proxy( 1403 IMFClock* This, 1404 DWORD *pdwCharacteristics); 1405void __RPC_STUB IMFClock_GetClockCharacteristics_Stub( 1406 IRpcStubBuffer* This, 1407 IRpcChannelBuffer* pRpcChannelBuffer, 1408 PRPC_MESSAGE pRpcMessage, 1409 DWORD* pdwStubPhase); 1410HRESULT STDMETHODCALLTYPE IMFClock_GetCorrelatedTime_Proxy( 1411 IMFClock* This, 1412 DWORD dwReserved, 1413 LONGLONG *pllClockTime, 1414 MFTIME *phnsSystemTime); 1415void __RPC_STUB IMFClock_GetCorrelatedTime_Stub( 1416 IRpcStubBuffer* This, 1417 IRpcChannelBuffer* pRpcChannelBuffer, 1418 PRPC_MESSAGE pRpcMessage, 1419 DWORD* pdwStubPhase); 1420HRESULT STDMETHODCALLTYPE IMFClock_GetContinuityKey_Proxy( 1421 IMFClock* This, 1422 DWORD *pdwContinuityKey); 1423void __RPC_STUB IMFClock_GetContinuityKey_Stub( 1424 IRpcStubBuffer* This, 1425 IRpcChannelBuffer* pRpcChannelBuffer, 1426 PRPC_MESSAGE pRpcMessage, 1427 DWORD* pdwStubPhase); 1428HRESULT STDMETHODCALLTYPE IMFClock_GetState_Proxy( 1429 IMFClock* This, 1430 DWORD dwReserved, 1431 MFCLOCK_STATE *peClockState); 1432void __RPC_STUB IMFClock_GetState_Stub( 1433 IRpcStubBuffer* This, 1434 IRpcChannelBuffer* pRpcChannelBuffer, 1435 PRPC_MESSAGE pRpcMessage, 1436 DWORD* pdwStubPhase); 1437HRESULT STDMETHODCALLTYPE IMFClock_GetProperties_Proxy( 1438 IMFClock* This, 1439 MFCLOCK_PROPERTIES *pClockProperties); 1440void __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) 1450typedef 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; 1456EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a); 1457typedef 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 1471DEFINE_GUID(IID_IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27); 1472#if defined(__cplusplus) && !defined(CINTERFACE) 1473MIDL_INTERFACE("90377834-21d0-4dee-8214-ba2e3e6c1127") 1474IMFMediaSession : 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 1515typedef 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; 1595interface 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 ***/ 1623static FORCEINLINE HRESULT IMFMediaSession_QueryInterface(IMFMediaSession* This,REFIID riid,void **ppvObject) { 1624 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1625} 1626static FORCEINLINE ULONG IMFMediaSession_AddRef(IMFMediaSession* This) { 1627 return This->lpVtbl->AddRef(This); 1628} 1629static FORCEINLINE ULONG IMFMediaSession_Release(IMFMediaSession* This) { 1630 return This->lpVtbl->Release(This); 1631} 1632/*** IMFMediaEventGenerator methods ***/ 1633static FORCEINLINE HRESULT IMFMediaSession_GetEvent(IMFMediaSession* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 1634 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 1635} 1636static FORCEINLINE HRESULT IMFMediaSession_BeginGetEvent(IMFMediaSession* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 1637 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 1638} 1639static FORCEINLINE HRESULT IMFMediaSession_EndGetEvent(IMFMediaSession* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 1640 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 1641} 1642static 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 ***/ 1646static FORCEINLINE HRESULT IMFMediaSession_SetTopology(IMFMediaSession* This,DWORD dwSetTopologyFlags,IMFTopology *pTopology) { 1647 return This->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology); 1648} 1649static FORCEINLINE HRESULT IMFMediaSession_ClearTopologies(IMFMediaSession* This) { 1650 return This->lpVtbl->ClearTopologies(This); 1651} 1652static FORCEINLINE HRESULT IMFMediaSession_Start(IMFMediaSession* This,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 1653 return This->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition); 1654} 1655static FORCEINLINE HRESULT IMFMediaSession_Pause(IMFMediaSession* This) { 1656 return This->lpVtbl->Pause(This); 1657} 1658static FORCEINLINE HRESULT IMFMediaSession_Stop(IMFMediaSession* This) { 1659 return This->lpVtbl->Stop(This); 1660} 1661static FORCEINLINE HRESULT IMFMediaSession_Close(IMFMediaSession* This) { 1662 return This->lpVtbl->Close(This); 1663} 1664static FORCEINLINE HRESULT IMFMediaSession_Shutdown(IMFMediaSession* This) { 1665 return This->lpVtbl->Shutdown(This); 1666} 1667static FORCEINLINE HRESULT IMFMediaSession_GetClock(IMFMediaSession* This,IMFClock **ppClock) { 1668 return This->lpVtbl->GetClock(This,ppClock); 1669} 1670static FORCEINLINE HRESULT IMFMediaSession_GetSessionCapabilities(IMFMediaSession* This,DWORD *pdwCaps) { 1671 return This->lpVtbl->GetSessionCapabilities(This,pdwCaps); 1672} 1673static 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 1681HRESULT STDMETHODCALLTYPE IMFMediaSession_SetTopology_Proxy( 1682 IMFMediaSession* This, 1683 DWORD dwSetTopologyFlags, 1684 IMFTopology *pTopology); 1685void __RPC_STUB IMFMediaSession_SetTopology_Stub( 1686 IRpcStubBuffer* This, 1687 IRpcChannelBuffer* pRpcChannelBuffer, 1688 PRPC_MESSAGE pRpcMessage, 1689 DWORD* pdwStubPhase); 1690HRESULT STDMETHODCALLTYPE IMFMediaSession_ClearTopologies_Proxy( 1691 IMFMediaSession* This); 1692void __RPC_STUB IMFMediaSession_ClearTopologies_Stub( 1693 IRpcStubBuffer* This, 1694 IRpcChannelBuffer* pRpcChannelBuffer, 1695 PRPC_MESSAGE pRpcMessage, 1696 DWORD* pdwStubPhase); 1697HRESULT STDMETHODCALLTYPE IMFMediaSession_Start_Proxy( 1698 IMFMediaSession* This, 1699 const GUID *pguidTimeFormat, 1700 const PROPVARIANT *pvarStartPosition); 1701void __RPC_STUB IMFMediaSession_Start_Stub( 1702 IRpcStubBuffer* This, 1703 IRpcChannelBuffer* pRpcChannelBuffer, 1704 PRPC_MESSAGE pRpcMessage, 1705 DWORD* pdwStubPhase); 1706HRESULT STDMETHODCALLTYPE IMFMediaSession_Pause_Proxy( 1707 IMFMediaSession* This); 1708void __RPC_STUB IMFMediaSession_Pause_Stub( 1709 IRpcStubBuffer* This, 1710 IRpcChannelBuffer* pRpcChannelBuffer, 1711 PRPC_MESSAGE pRpcMessage, 1712 DWORD* pdwStubPhase); 1713HRESULT STDMETHODCALLTYPE IMFMediaSession_Stop_Proxy( 1714 IMFMediaSession* This); 1715void __RPC_STUB IMFMediaSession_Stop_Stub( 1716 IRpcStubBuffer* This, 1717 IRpcChannelBuffer* pRpcChannelBuffer, 1718 PRPC_MESSAGE pRpcMessage, 1719 DWORD* pdwStubPhase); 1720HRESULT STDMETHODCALLTYPE IMFMediaSession_Close_Proxy( 1721 IMFMediaSession* This); 1722void __RPC_STUB IMFMediaSession_Close_Stub( 1723 IRpcStubBuffer* This, 1724 IRpcChannelBuffer* pRpcChannelBuffer, 1725 PRPC_MESSAGE pRpcMessage, 1726 DWORD* pdwStubPhase); 1727HRESULT STDMETHODCALLTYPE IMFMediaSession_Shutdown_Proxy( 1728 IMFMediaSession* This); 1729void __RPC_STUB IMFMediaSession_Shutdown_Stub( 1730 IRpcStubBuffer* This, 1731 IRpcChannelBuffer* pRpcChannelBuffer, 1732 PRPC_MESSAGE pRpcMessage, 1733 DWORD* pdwStubPhase); 1734HRESULT STDMETHODCALLTYPE IMFMediaSession_GetClock_Proxy( 1735 IMFMediaSession* This, 1736 IMFClock **ppClock); 1737void __RPC_STUB IMFMediaSession_GetClock_Stub( 1738 IRpcStubBuffer* This, 1739 IRpcChannelBuffer* pRpcChannelBuffer, 1740 PRPC_MESSAGE pRpcMessage, 1741 DWORD* pdwStubPhase); 1742HRESULT STDMETHODCALLTYPE IMFMediaSession_GetSessionCapabilities_Proxy( 1743 IMFMediaSession* This, 1744 DWORD *pdwCaps); 1745void __RPC_STUB IMFMediaSession_GetSessionCapabilities_Stub( 1746 IRpcStubBuffer* This, 1747 IRpcChannelBuffer* pRpcChannelBuffer, 1748 PRPC_MESSAGE pRpcMessage, 1749 DWORD* pdwStubPhase); 1750HRESULT STDMETHODCALLTYPE IMFMediaSession_GetFullTopology_Proxy( 1751 IMFMediaSession* This, 1752 DWORD dwGetFullTopologyFlags, 1753 TOPOID TopoId, 1754 IMFTopology **ppFullTopology); 1755void __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 1769DEFINE_GUID(IID_IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5); 1770#if defined(__cplusplus) && !defined(CINTERFACE) 1771MIDL_INTERFACE("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5") 1772IMFMediaTypeHandler : 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 1799typedef 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; 1843interface 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 ***/ 1862static FORCEINLINE HRESULT IMFMediaTypeHandler_QueryInterface(IMFMediaTypeHandler* This,REFIID riid,void **ppvObject) { 1863 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1864} 1865static FORCEINLINE ULONG IMFMediaTypeHandler_AddRef(IMFMediaTypeHandler* This) { 1866 return This->lpVtbl->AddRef(This); 1867} 1868static FORCEINLINE ULONG IMFMediaTypeHandler_Release(IMFMediaTypeHandler* This) { 1869 return This->lpVtbl->Release(This); 1870} 1871/*** IMFMediaTypeHandler methods ***/ 1872static FORCEINLINE HRESULT IMFMediaTypeHandler_IsMediaTypeSupported(IMFMediaTypeHandler* This,IMFMediaType *pMediaType,IMFMediaType **ppMediaType) { 1873 return This->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType); 1874} 1875static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeCount(IMFMediaTypeHandler* This,DWORD *pdwTypeCount) { 1876 return This->lpVtbl->GetMediaTypeCount(This,pdwTypeCount); 1877} 1878static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeByIndex(IMFMediaTypeHandler* This,DWORD dwIndex,IMFMediaType **ppType) { 1879 return This->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType); 1880} 1881static FORCEINLINE HRESULT IMFMediaTypeHandler_SetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType *pMediaType) { 1882 return This->lpVtbl->SetCurrentMediaType(This,pMediaType); 1883} 1884static FORCEINLINE HRESULT IMFMediaTypeHandler_GetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType **ppMediaType) { 1885 return This->lpVtbl->GetCurrentMediaType(This,ppMediaType); 1886} 1887static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMajorType(IMFMediaTypeHandler* This,GUID *pguidMajorType) { 1888 return This->lpVtbl->GetMajorType(This,pguidMajorType); 1889} 1890#endif 1891#endif 1892 1893#endif 1894 1895HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_RemoteGetCurrentMediaType_Proxy( 1896 IMFMediaTypeHandler* This, 1897 BYTE **ppbData, 1898 DWORD *pcbData); 1899void __RPC_STUB IMFMediaTypeHandler_RemoteGetCurrentMediaType_Stub( 1900 IRpcStubBuffer* This, 1901 IRpcChannelBuffer* pRpcChannelBuffer, 1902 PRPC_MESSAGE pRpcMessage, 1903 DWORD* pdwStubPhase); 1904HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_GetMajorType_Proxy( 1905 IMFMediaTypeHandler* This, 1906 GUID *pguidMajorType); 1907void __RPC_STUB IMFMediaTypeHandler_GetMajorType_Stub( 1908 IRpcStubBuffer* This, 1909 IRpcChannelBuffer* pRpcChannelBuffer, 1910 PRPC_MESSAGE pRpcMessage, 1911 DWORD* pdwStubPhase); 1912HRESULT CALLBACK IMFMediaTypeHandler_GetCurrentMediaType_Proxy( 1913 IMFMediaTypeHandler* This, 1914 IMFMediaType **ppMediaType); 1915HRESULT __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 1928DEFINE_GUID(IID_IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38); 1929#if defined(__cplusplus) && !defined(CINTERFACE) 1930MIDL_INTERFACE("56c03d9c-9dbb-45f5-ab4b-d80f47c05938") 1931IMFStreamDescriptor : 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 1944typedef 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; 2123interface 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 ***/ 2169static FORCEINLINE HRESULT IMFStreamDescriptor_QueryInterface(IMFStreamDescriptor* This,REFIID riid,void **ppvObject) { 2170 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2171} 2172static FORCEINLINE ULONG IMFStreamDescriptor_AddRef(IMFStreamDescriptor* This) { 2173 return This->lpVtbl->AddRef(This); 2174} 2175static FORCEINLINE ULONG IMFStreamDescriptor_Release(IMFStreamDescriptor* This) { 2176 return This->lpVtbl->Release(This); 2177} 2178/*** IMFAttributes methods ***/ 2179static FORCEINLINE HRESULT IMFStreamDescriptor_GetItem(IMFStreamDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 2180 return This->lpVtbl->GetItem(This,guidKey,pValue); 2181} 2182static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemType(IMFStreamDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2183 return This->lpVtbl->GetItemType(This,guidKey,pType); 2184} 2185static FORCEINLINE HRESULT IMFStreamDescriptor_CompareItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2186 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2187} 2188static 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} 2191static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 2192 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2193} 2194static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 2195 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2196} 2197static FORCEINLINE HRESULT IMFStreamDescriptor_GetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double *pfValue) { 2198 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2199} 2200static FORCEINLINE HRESULT IMFStreamDescriptor_GetGUID(IMFStreamDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 2201 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2202} 2203static FORCEINLINE HRESULT IMFStreamDescriptor_GetStringLength(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 2204 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2205} 2206static 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} 2209static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2210 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2211} 2212static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlobSize(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2213 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2214} 2215static 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} 2218static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2219 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2220} 2221static FORCEINLINE HRESULT IMFStreamDescriptor_GetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2222 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2223} 2224static FORCEINLINE HRESULT IMFStreamDescriptor_SetItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 2225 return This->lpVtbl->SetItem(This,guidKey,Value); 2226} 2227static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteItem(IMFStreamDescriptor* This,REFGUID guidKey) { 2228 return This->lpVtbl->DeleteItem(This,guidKey); 2229} 2230static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteAllItems(IMFStreamDescriptor* This) { 2231 return This->lpVtbl->DeleteAllItems(This); 2232} 2233static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2234 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2235} 2236static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2237 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2238} 2239static FORCEINLINE HRESULT IMFStreamDescriptor_SetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double fValue) { 2240 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2241} 2242static FORCEINLINE HRESULT IMFStreamDescriptor_SetGUID(IMFStreamDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2243 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2244} 2245static FORCEINLINE HRESULT IMFStreamDescriptor_SetString(IMFStreamDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2246 return This->lpVtbl->SetString(This,guidKey,wszValue); 2247} 2248static FORCEINLINE HRESULT IMFStreamDescriptor_SetBlob(IMFStreamDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2249 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2250} 2251static FORCEINLINE HRESULT IMFStreamDescriptor_SetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2252 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2253} 2254static FORCEINLINE HRESULT IMFStreamDescriptor_LockStore(IMFStreamDescriptor* This) { 2255 return This->lpVtbl->LockStore(This); 2256} 2257static FORCEINLINE HRESULT IMFStreamDescriptor_UnlockStore(IMFStreamDescriptor* This) { 2258 return This->lpVtbl->UnlockStore(This); 2259} 2260static FORCEINLINE HRESULT IMFStreamDescriptor_GetCount(IMFStreamDescriptor* This,UINT32 *pcItems) { 2261 return This->lpVtbl->GetCount(This,pcItems); 2262} 2263static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemByIndex(IMFStreamDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2264 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2265} 2266static FORCEINLINE HRESULT IMFStreamDescriptor_CopyAllItems(IMFStreamDescriptor* This,IMFAttributes *pDest) { 2267 return This->lpVtbl->CopyAllItems(This,pDest); 2268} 2269/*** IMFStreamDescriptor methods ***/ 2270static FORCEINLINE HRESULT IMFStreamDescriptor_GetStreamIdentifier(IMFStreamDescriptor* This,DWORD *pdwStreamIdentifier) { 2271 return This->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier); 2272} 2273static FORCEINLINE HRESULT IMFStreamDescriptor_GetMediaTypeHandler(IMFStreamDescriptor* This,IMFMediaTypeHandler **ppMediaTypeHandler) { 2274 return This->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler); 2275} 2276#endif 2277#endif 2278 2279#endif 2280 2281HRESULT STDMETHODCALLTYPE IMFStreamDescriptor_GetStreamIdentifier_Proxy( 2282 IMFStreamDescriptor* This, 2283 DWORD *pdwStreamIdentifier); 2284void __RPC_STUB IMFStreamDescriptor_GetStreamIdentifier_Stub( 2285 IRpcStubBuffer* This, 2286 IRpcChannelBuffer* pRpcChannelBuffer, 2287 PRPC_MESSAGE pRpcMessage, 2288 DWORD* pdwStubPhase); 2289HRESULT STDMETHODCALLTYPE IMFStreamDescriptor_GetMediaTypeHandler_Proxy( 2290 IMFStreamDescriptor* This, 2291 IMFMediaTypeHandler **ppMediaTypeHandler); 2292void __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 2306DEFINE_GUID(IID_IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36); 2307#if defined(__cplusplus) && !defined(CINTERFACE) 2308MIDL_INTERFACE("03cb2711-24d7-4db6-a17f-f3a7a479a536") 2309IMFPresentationDescriptor : 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 2333typedef 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; 2526interface 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 ***/ 2575static FORCEINLINE HRESULT IMFPresentationDescriptor_QueryInterface(IMFPresentationDescriptor* This,REFIID riid,void **ppvObject) { 2576 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2577} 2578static FORCEINLINE ULONG IMFPresentationDescriptor_AddRef(IMFPresentationDescriptor* This) { 2579 return This->lpVtbl->AddRef(This); 2580} 2581static FORCEINLINE ULONG IMFPresentationDescriptor_Release(IMFPresentationDescriptor* This) { 2582 return This->lpVtbl->Release(This); 2583} 2584/*** IMFAttributes methods ***/ 2585static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItem(IMFPresentationDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) { 2586 return This->lpVtbl->GetItem(This,guidKey,pValue); 2587} 2588static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemType(IMFPresentationDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2589 return This->lpVtbl->GetItemType(This,guidKey,pType); 2590} 2591static FORCEINLINE HRESULT IMFPresentationDescriptor_CompareItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2592 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2593} 2594static 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} 2597static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *punValue) { 2598 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2599} 2600static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 *punValue) { 2601 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2602} 2603static FORCEINLINE HRESULT IMFPresentationDescriptor_GetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double *pfValue) { 2604 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2605} 2606static FORCEINLINE HRESULT IMFPresentationDescriptor_GetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,GUID *pguidValue) { 2607 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2608} 2609static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStringLength(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) { 2610 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2611} 2612static 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} 2615static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2616 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2617} 2618static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlobSize(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2619 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2620} 2621static 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} 2624static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2625 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2626} 2627static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2628 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2629} 2630static FORCEINLINE HRESULT IMFPresentationDescriptor_SetItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) { 2631 return This->lpVtbl->SetItem(This,guidKey,Value); 2632} 2633static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteItem(IMFPresentationDescriptor* This,REFGUID guidKey) { 2634 return This->lpVtbl->DeleteItem(This,guidKey); 2635} 2636static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteAllItems(IMFPresentationDescriptor* This) { 2637 return This->lpVtbl->DeleteAllItems(This); 2638} 2639static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 unValue) { 2640 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2641} 2642static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 unValue) { 2643 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2644} 2645static FORCEINLINE HRESULT IMFPresentationDescriptor_SetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double fValue) { 2646 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2647} 2648static FORCEINLINE HRESULT IMFPresentationDescriptor_SetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,REFGUID guidValue) { 2649 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2650} 2651static FORCEINLINE HRESULT IMFPresentationDescriptor_SetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) { 2652 return This->lpVtbl->SetString(This,guidKey,wszValue); 2653} 2654static FORCEINLINE HRESULT IMFPresentationDescriptor_SetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2655 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2656} 2657static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) { 2658 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2659} 2660static FORCEINLINE HRESULT IMFPresentationDescriptor_LockStore(IMFPresentationDescriptor* This) { 2661 return This->lpVtbl->LockStore(This); 2662} 2663static FORCEINLINE HRESULT IMFPresentationDescriptor_UnlockStore(IMFPresentationDescriptor* This) { 2664 return This->lpVtbl->UnlockStore(This); 2665} 2666static FORCEINLINE HRESULT IMFPresentationDescriptor_GetCount(IMFPresentationDescriptor* This,UINT32 *pcItems) { 2667 return This->lpVtbl->GetCount(This,pcItems); 2668} 2669static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemByIndex(IMFPresentationDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2670 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2671} 2672static FORCEINLINE HRESULT IMFPresentationDescriptor_CopyAllItems(IMFPresentationDescriptor* This,IMFAttributes *pDest) { 2673 return This->lpVtbl->CopyAllItems(This,pDest); 2674} 2675/*** IMFPresentationDescriptor methods ***/ 2676static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorCount(IMFPresentationDescriptor* This,DWORD *pdwDescriptorCount) { 2677 return This->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount); 2678} 2679static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorByIndex(IMFPresentationDescriptor* This,DWORD dwIndex,WINBOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) { 2680 return This->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor); 2681} 2682static FORCEINLINE HRESULT IMFPresentationDescriptor_SelectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2683 return This->lpVtbl->SelectStream(This,dwDescriptorIndex); 2684} 2685static FORCEINLINE HRESULT IMFPresentationDescriptor_DeselectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) { 2686 return This->lpVtbl->DeselectStream(This,dwDescriptorIndex); 2687} 2688static FORCEINLINE HRESULT IMFPresentationDescriptor_Clone(IMFPresentationDescriptor* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2689 return This->lpVtbl->Clone(This,ppPresentationDescriptor); 2690} 2691#endif 2692#endif 2693 2694#endif 2695 2696HRESULT STDMETHODCALLTYPE IMFPresentationDescriptor_GetStreamDescriptorCount_Proxy( 2697 IMFPresentationDescriptor* This, 2698 DWORD *pdwDescriptorCount); 2699void __RPC_STUB IMFPresentationDescriptor_GetStreamDescriptorCount_Stub( 2700 IRpcStubBuffer* This, 2701 IRpcChannelBuffer* pRpcChannelBuffer, 2702 PRPC_MESSAGE pRpcMessage, 2703 DWORD* pdwStubPhase); 2704HRESULT STDMETHODCALLTYPE IMFPresentationDescriptor_GetStreamDescriptorByIndex_Proxy( 2705 IMFPresentationDescriptor* This, 2706 DWORD dwIndex, 2707 WINBOOL *pfSelected, 2708 IMFStreamDescriptor **ppDescriptor); 2709void __RPC_STUB IMFPresentationDescriptor_GetStreamDescriptorByIndex_Stub( 2710 IRpcStubBuffer* This, 2711 IRpcChannelBuffer* pRpcChannelBuffer, 2712 PRPC_MESSAGE pRpcMessage, 2713 DWORD* pdwStubPhase); 2714HRESULT STDMETHODCALLTYPE IMFPresentationDescriptor_SelectStream_Proxy( 2715 IMFPresentationDescriptor* This, 2716 DWORD dwDescriptorIndex); 2717void __RPC_STUB IMFPresentationDescriptor_SelectStream_Stub( 2718 IRpcStubBuffer* This, 2719 IRpcChannelBuffer* pRpcChannelBuffer, 2720 PRPC_MESSAGE pRpcMessage, 2721 DWORD* pdwStubPhase); 2722HRESULT STDMETHODCALLTYPE IMFPresentationDescriptor_DeselectStream_Proxy( 2723 IMFPresentationDescriptor* This, 2724 DWORD dwDescriptorIndex); 2725void __RPC_STUB IMFPresentationDescriptor_DeselectStream_Stub( 2726 IRpcStubBuffer* This, 2727 IRpcChannelBuffer* pRpcChannelBuffer, 2728 PRPC_MESSAGE pRpcMessage, 2729 DWORD* pdwStubPhase); 2730HRESULT STDMETHODCALLTYPE IMFPresentationDescriptor_Clone_Proxy( 2731 IMFPresentationDescriptor* This, 2732 IMFPresentationDescriptor **ppPresentationDescriptor); 2733void __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 2747DEFINE_GUID(IID_IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66); 2748#if defined(__cplusplus) && !defined(CINTERFACE) 2749MIDL_INTERFACE("279a808d-aec7-40c8-9c6b-a6b492c78a66") 2750IMFMediaSource : 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 2777typedef 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; 2841interface 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 ***/ 2865static FORCEINLINE HRESULT IMFMediaSource_QueryInterface(IMFMediaSource* This,REFIID riid,void **ppvObject) { 2866 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2867} 2868static FORCEINLINE ULONG IMFMediaSource_AddRef(IMFMediaSource* This) { 2869 return This->lpVtbl->AddRef(This); 2870} 2871static FORCEINLINE ULONG IMFMediaSource_Release(IMFMediaSource* This) { 2872 return This->lpVtbl->Release(This); 2873} 2874/*** IMFMediaEventGenerator methods ***/ 2875static FORCEINLINE HRESULT IMFMediaSource_GetEvent(IMFMediaSource* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { 2876 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); 2877} 2878static FORCEINLINE HRESULT IMFMediaSource_BeginGetEvent(IMFMediaSource* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { 2879 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); 2880} 2881static FORCEINLINE HRESULT IMFMediaSource_EndGetEvent(IMFMediaSource* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { 2882 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); 2883} 2884static 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 ***/ 2888static FORCEINLINE HRESULT IMFMediaSource_GetCharacteristics(IMFMediaSource* This,DWORD *pdwCharacteristics) { 2889 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 2890} 2891static FORCEINLINE HRESULT IMFMediaSource_CreatePresentationDescriptor(IMFMediaSource* This,IMFPresentationDescriptor **ppPresentationDescriptor) { 2892 return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor); 2893} 2894static FORCEINLINE HRESULT IMFMediaSource_Start(IMFMediaSource* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { 2895 return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition); 2896} 2897static FORCEINLINE HRESULT IMFMediaSource_Stop(IMFMediaSource* This) { 2898 return This->lpVtbl->Stop(This); 2899} 2900static FORCEINLINE HRESULT IMFMediaSource_Pause(IMFMediaSource* This) { 2901 return This->lpVtbl->Pause(This); 2902} 2903static FORCEINLINE HRESULT IMFMediaSource_Shutdown(IMFMediaSource* This) { 2904 return This->lpVtbl->Shutdown(This); 2905} 2906#endif 2907#endif 2908 2909#endif 2910 2911HRESULT STDMETHODCALLTYPE IMFMediaSource_GetCharacteristics_Proxy( 2912 IMFMediaSource* This, 2913 DWORD *pdwCharacteristics); 2914void __RPC_STUB IMFMediaSource_GetCharacteristics_Stub( 2915 IRpcStubBuffer* This, 2916 IRpcChannelBuffer* pRpcChannelBuffer, 2917 PRPC_MESSAGE pRpcMessage, 2918 DWORD* pdwStubPhase); 2919HRESULT STDMETHODCALLTYPE IMFMediaSource_RemoteCreatePresentationDescriptor_Proxy( 2920 IMFMediaSource* This, 2921 DWORD *pcbPD, 2922 BYTE **pbPD, 2923 IMFPresentationDescriptor **ppRemotePD); 2924void __RPC_STUB IMFMediaSource_RemoteCreatePresentationDescriptor_Stub( 2925 IRpcStubBuffer* This, 2926 IRpcChannelBuffer* pRpcChannelBuffer, 2927 PRPC_MESSAGE pRpcMessage, 2928 DWORD* pdwStubPhase); 2929HRESULT STDMETHODCALLTYPE IMFMediaSource_Start_Proxy( 2930 IMFMediaSource* This, 2931 IMFPresentationDescriptor *pPresentationDescriptor, 2932 const GUID *pguidTimeFormat, 2933 const PROPVARIANT *pvarStartPosition); 2934void __RPC_STUB IMFMediaSource_Start_Stub( 2935 IRpcStubBuffer* This, 2936 IRpcChannelBuffer* pRpcChannelBuffer, 2937 PRPC_MESSAGE pRpcMessage, 2938 DWORD* pdwStubPhase); 2939HRESULT STDMETHODCALLTYPE IMFMediaSource_Stop_Proxy( 2940 IMFMediaSource* This); 2941void __RPC_STUB IMFMediaSource_Stop_Stub( 2942 IRpcStubBuffer* This, 2943 IRpcChannelBuffer* pRpcChannelBuffer, 2944 PRPC_MESSAGE pRpcMessage, 2945 DWORD* pdwStubPhase); 2946HRESULT STDMETHODCALLTYPE IMFMediaSource_Pause_Proxy( 2947 IMFMediaSource* This); 2948void __RPC_STUB IMFMediaSource_Pause_Stub( 2949 IRpcStubBuffer* This, 2950 IRpcChannelBuffer* pRpcChannelBuffer, 2951 PRPC_MESSAGE pRpcMessage, 2952 DWORD* pdwStubPhase); 2953HRESULT STDMETHODCALLTYPE IMFMediaSource_Shutdown_Proxy( 2954 IMFMediaSource* This); 2955void __RPC_STUB IMFMediaSource_Shutdown_Stub( 2956 IRpcStubBuffer* This, 2957 IRpcChannelBuffer* pRpcChannelBuffer, 2958 PRPC_MESSAGE pRpcMessage, 2959 DWORD* pdwStubPhase); 2960HRESULT CALLBACK IMFMediaSource_CreatePresentationDescriptor_Proxy( 2961 IMFMediaSource* This, 2962 IMFPresentationDescriptor **ppPresentationDescriptor); 2963HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub( 2964 IMFMediaSource* This, 2965 DWORD *pcbPD, 2966 BYTE **pbPD, 2967 IMFPresentationDescriptor **ppRemotePD); 2968 2969#endif /* __IMFMediaSource_INTERFACE_DEFINED__ */ 2970 2971typedef struct _MF_LEAKY_BUCKET_PAIR { 2972 DWORD dwBitrate; 2973 DWORD msBufferWindow; 2974} MF_LEAKY_BUCKET_PAIR; 2975typedef 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 2991DEFINE_GUID(IID_IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e); 2992#if defined(__cplusplus) && !defined(CINTERFACE) 2993MIDL_INTERFACE("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e") 2994IMFByteStreamBuffering : 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 3010typedef 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; 3039interface 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 ***/ 3055static FORCEINLINE HRESULT IMFByteStreamBuffering_QueryInterface(IMFByteStreamBuffering* This,REFIID riid,void **ppvObject) { 3056 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3057} 3058static FORCEINLINE ULONG IMFByteStreamBuffering_AddRef(IMFByteStreamBuffering* This) { 3059 return This->lpVtbl->AddRef(This); 3060} 3061static FORCEINLINE ULONG IMFByteStreamBuffering_Release(IMFByteStreamBuffering* This) { 3062 return This->lpVtbl->Release(This); 3063} 3064/*** IMFByteStreamBuffering methods ***/ 3065static FORCEINLINE HRESULT IMFByteStreamBuffering_SetBufferingParams(IMFByteStreamBuffering* This,MFBYTESTREAM_BUFFERING_PARAMS *pParams) { 3066 return This->lpVtbl->SetBufferingParams(This,pParams); 3067} 3068static FORCEINLINE HRESULT IMFByteStreamBuffering_EnableBuffering(IMFByteStreamBuffering* This,WINBOOL fEnable) { 3069 return This->lpVtbl->EnableBuffering(This,fEnable); 3070} 3071static FORCEINLINE HRESULT IMFByteStreamBuffering_StopBuffering(IMFByteStreamBuffering* This) { 3072 return This->lpVtbl->StopBuffering(This); 3073} 3074#endif 3075#endif 3076 3077#endif 3078 3079HRESULT STDMETHODCALLTYPE IMFByteStreamBuffering_SetBufferingParams_Proxy( 3080 IMFByteStreamBuffering* This, 3081 MFBYTESTREAM_BUFFERING_PARAMS *pParams); 3082void __RPC_STUB IMFByteStreamBuffering_SetBufferingParams_Stub( 3083 IRpcStubBuffer* This, 3084 IRpcChannelBuffer* pRpcChannelBuffer, 3085 PRPC_MESSAGE pRpcMessage, 3086 DWORD* pdwStubPhase); 3087HRESULT STDMETHODCALLTYPE IMFByteStreamBuffering_EnableBuffering_Proxy( 3088 IMFByteStreamBuffering* This, 3089 WINBOOL fEnable); 3090void __RPC_STUB IMFByteStreamBuffering_EnableBuffering_Stub( 3091 IRpcStubBuffer* This, 3092 IRpcChannelBuffer* pRpcChannelBuffer, 3093 PRPC_MESSAGE pRpcMessage, 3094 DWORD* pdwStubPhase); 3095HRESULT STDMETHODCALLTYPE IMFByteStreamBuffering_StopBuffering_Proxy( 3096 IMFByteStreamBuffering* This); 3097void __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 3105HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor); 3106HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData); 3107typedef DWORD MFSequencerElementId; /*Unknown type*/ 3108 3109typedef 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 3117typedef enum _MF_QUALITY_ADVISE_FLAGS { 3118 MF_QUALITY_CANNOT_KEEP_UP = 0x1 3119} MF_QUALITY_ADVISE_FLAGS; 3120 3121#endif /*(WINVER >= 0x0601)*/ 3122 3123typedef 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 3133typedef 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 3143typedef enum MF_SOURCE_READER_CONTROL_FLAG { 3144 MF_SOURCE_READER_CONTROLF_DRAIN = 0x00000001 3145} MF_SOURCE_READER_CONTROL_FLAG; 3146 3147typedef 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 3153typedef 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 3159typedef 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 3167typedef 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 3174typedef enum { 3175 MF_LICENSE_URL_UNTRUSTED, 3176 MF_LICENSE_URL_TRUSTED, 3177 MF_LICENSE_URL_TAMPERED 3178} MF_URL_TRUST_STATUS; 3179 3180typedef 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 3186typedef enum _MFCLOCK_RELATIONAL_FLAGS { 3187 MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1 3188} MFCLOCK_RELATIONAL_FLAGS; 3189 3190typedef 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 3200typedef 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 3207typedef enum _MFNetAuthenticationFlags { 3208 MFNET_AUTHENTICATION_PROXY = 0x00000001, 3209 MFNET_AUTHENTICATION_CLEAR_TEXT = 0x00000002, 3210 MFNET_AUTHENTICATION_LOGGED_ON_USER 3211} MFNetAuthenticationFlags; 3212 3213typedef enum _MFNetCredentialOptions { 3214 MFNET_CREDENTIAL_SAVE = 0x00000001, 3215 MFNET_CREDENTIAL_DONT_CACHE = 0x00000002, 3216 MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004 3217} MFNetCredentialOptions; 3218 3219typedef enum _MFNetCredentialRequirements { 3220 REQUIRE_PROMPT = 0x00000001, 3221 REQUIRE_SAVE_SELECTED = 0x00000002 3222} MFNetCredentialRequirements; 3223 3224typedef enum _MFNETSOURCE_CACHE_STATE { 3225 MFNETSOURCE_CACHE_UNAVAILABLE, 3226 MFNETSOURCE_CACHE_ACTIVE_WRITING, 3227 MFNETSOURCE_CACHE_ACTIVE_COMPLETE 3228} MFNETSOURCE_CACHE_STATE; 3229 3230typedef 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 3238typedef 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 3270typedef enum _MFNETSOURCE_TRANSPORT_TYPE { 3271 MFNETSOURCE_UDP, 3272 MFNETSOURCE_TCP 3273} MFNETSOURCE_TRANSPORT_TYPE; 3274 3275typedef enum MF_OBJECT_TYPE { 3276 MF_OBJECT_MEDIASOURCE, 3277 MF_OBJECT_BYTESTREAM, 3278 MF_OBJECT_INVALID 3279} MF_OBJECT_TYPE; 3280 3281typedef 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 3293typedef enum _MFRATE_DIRECTION { 3294 MFRATE_FORWARD, 3295 MFRATE_REVERSE 3296} MFRATE_DIRECTION; 3297 3298typedef enum _MFSequencerTopologyFlags { 3299 SequencerTopologyFlags_Last = 0x00000001 3300} MFSequencerTopologyFlags; 3301 3302typedef enum _MFSHUTDOWN_STATUS { 3303 MFSHUTDOWN_INITIATED, 3304 MFSHUTDOWN_COMPLETED 3305} MFSHUTDOWN_STATUS; 3306 3307typedef 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 3315typedef 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 3322typedef enum MFTIMER_FLAGS { 3323 MFTIMER_RELATIVE = 0x00000001 3324} MFTIMER_FLAGS; 3325 3326#if (WINVER >= 0x0601) 3327 3328typedef enum MFTOPLOGY_DXVA_MODE { 3329 MFTOPOLOGY_DXVA_DEFAULT = 0, 3330 MFTOPOLOGY_DXVA_NONE = 1, 3331 MFTOPOLOGY_DXVA_FULL = 2 3332} MFTOPOLOGY_DXVA_MODE; 3333 3334typedef enum MFTOPOLOGY_HARDWARE_MODE { 3335 MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0, 3336 MFTOPOLOGY_HWMODE_USE_HARDWARE = 1 3337} MFTOPOLOGY_HARDWARE_MODE; 3338 3339typedef 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 3352typedef struct _ASFFlatPicture { 3353 BYTE bPictureType; 3354 DWORD dwDataLen; 3355} ASF_FLAT_PICTURE; 3356 3357typedef struct _ASFFlatSynchronisedLyrics { 3358 BYTE bTimeStampFormat; 3359 BYTE bContentType; 3360 DWORD dwLyricsLen; 3361} ASF_FLAT_SYNCHRONISED_LYRICS; 3362 3363typedef 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 3370typedef struct _MFINPUTTRUSTAUTHORITY_ACTION { 3371 MFPOLICYMANAGER_ACTION Action; 3372 BYTE *pbTicket; 3373 DWORD cbTicket; 3374} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION; 3375 3376typedef 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 3387typedef 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__ 3424typedef interface IMFMediaSink IMFMediaSink; 3425#endif 3426 3427#ifndef __IMFASFContentInfo_FWD_DEFINED__ 3428#define __IMFASFContentInfo_FWD_DEFINED__ 3429typedef interface IMFASFContentInfo IMFASFContentInfo; 3430#endif 3431 3432#ifndef __IMFASFIndexer_FWD_DEFINED__ 3433#define __IMFASFIndexer_FWD_DEFINED__ 3434typedef interface IMFASFIndexer IMFASFIndexer; 3435#endif 3436 3437#ifndef __IMFASFMultiplexer_FWD_DEFINED__ 3438#define __IMFASFMultiplexer_FWD_DEFINED__ 3439typedef interface IMFASFMultiplexer IMFASFMultiplexer; 3440#endif 3441 3442#ifndef __IMFASFProfile_FWD_DEFINED__ 3443#define __IMFASFProfile_FWD_DEFINED__ 3444typedef interface IMFASFProfile IMFASFProfile; 3445#endif 3446 3447#ifndef __IMFASFSplitter_FWD_DEFINED__ 3448#define __IMFASFSplitter_FWD_DEFINED__ 3449typedef interface IMFASFSplitter IMFASFSplitter; 3450#endif 3451 3452#ifndef __IMFPMPServer_FWD_DEFINED__ 3453#define __IMFPMPServer_FWD_DEFINED__ 3454typedef interface IMFPMPServer IMFPMPServer; 3455#endif 3456 3457#ifndef __IMFPresentationClock_FWD_DEFINED__ 3458#define __IMFPresentationClock_FWD_DEFINED__ 3459typedef interface IMFPresentationClock IMFPresentationClock; 3460#endif 3461 3462#ifndef __IMFNetProxyLocator_FWD_DEFINED__ 3463#define __IMFNetProxyLocator_FWD_DEFINED__ 3464typedef interface IMFNetProxyLocator IMFNetProxyLocator; 3465#endif 3466 3467#ifndef __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3468#define __IMFRemoteDesktopPlugin_FWD_DEFINED__ 3469typedef interface IMFRemoteDesktopPlugin IMFRemoteDesktopPlugin; 3470#endif 3471 3472#ifndef __IMFTransform_FWD_DEFINED__ 3473#define __IMFTransform_FWD_DEFINED__ 3474typedef interface IMFTransform IMFTransform; 3475#endif 3476 3477#ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 3478#define __IMFSampleGrabberSinkCallback_FWD_DEFINED__ 3479typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback; 3480#endif 3481 3482#ifndef __IMFSequencerSource_FWD_DEFINED__ 3483#define __IMFSequencerSource_FWD_DEFINED__ 3484typedef interface IMFSequencerSource IMFSequencerSource; 3485#endif 3486 3487#ifndef __IMFQualityManager_FWD_DEFINED__ 3488#define __IMFQualityManager_FWD_DEFINED__ 3489typedef interface IMFQualityManager IMFQualityManager; 3490#endif 3491 3492#ifndef __IMFSourceResolver_FWD_DEFINED__ 3493#define __IMFSourceResolver_FWD_DEFINED__ 3494typedef interface IMFSourceResolver IMFSourceResolver; 3495#endif 3496 3497#ifndef __IMFPresentationTimeSource_FWD_DEFINED__ 3498#define __IMFPresentationTimeSource_FWD_DEFINED__ 3499typedef interface IMFPresentationTimeSource IMFPresentationTimeSource; 3500#endif 3501 3502#ifndef __IMFTopoLoader_FWD_DEFINED__ 3503#define __IMFTopoLoader_FWD_DEFINED__ 3504typedef interface IMFTopoLoader IMFTopoLoader; 3505#endif 3506 3507#ifndef __IMFTranscodeProfile_FWD_DEFINED__ 3508#define __IMFTranscodeProfile_FWD_DEFINED__ 3509typedef interface IMFTranscodeProfile IMFTranscodeProfile; 3510#endif 3511 3512HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 3513HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource); 3514 3515HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer); 3516HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); 3517HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); 3518HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream); 3519HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink); 3520HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate); 3521HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); 3522HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); 3523HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile); 3524HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); 3525HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS); 3526HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink); 3527HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); 3528HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler); 3529HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer); 3530HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate); 3531HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath); 3532HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock); 3533HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor); 3534HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD); 3535HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator); 3536HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin); 3537HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample); 3538HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT); 3539HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate); 3540HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource); 3541HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler); 3542HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager); 3543HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor); 3544HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver); 3545HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource); 3546HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj); 3547HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo); 3548HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode); 3549HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer); 3550HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate); 3551HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject); 3552HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray); 3553HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray); 3554MFTIME WINAPI MFGetSystemTime(void); 3555HRESULT WINAPI MFShutdownObject(IUnknown *pUnk); 3556HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore); 3557HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore); 3558#if (WINVER >= 0x0601) 3559 3560HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile); 3561HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate); 3562HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo); 3563HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate); 3564HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType); 3565HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes); 3566#endif 3567/* Begin additional prototypes for all interfaces */ 3568 3569ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 3570unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 3571unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 3572void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 3573ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *); 3574unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *); 3575unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *); 3576void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *); 3577 3578/* End additional prototypes */ 3579 3580#ifdef __cplusplus 3581} 3582#endif 3583 3584#endif /* __mfidl_h__ */ 3585