blob: 25ad8cc3649148851d90d5ff899ece8befb5caf7 [file] [log] [blame]
/*** Autogenerated by WIDL 6.4 from include/mfidl.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __mfidl_h__
#define __mfidl_h__
/* Forward declarations */
#ifndef __IMFTopologyNode_FWD_DEFINED__
#define __IMFTopologyNode_FWD_DEFINED__
typedef interface IMFTopologyNode IMFTopologyNode;
#ifdef __cplusplus
interface IMFTopologyNode;
#endif /* __cplusplus */
#endif
#ifndef __IMFTopology_FWD_DEFINED__
#define __IMFTopology_FWD_DEFINED__
typedef interface IMFTopology IMFTopology;
#ifdef __cplusplus
interface IMFTopology;
#endif /* __cplusplus */
#endif
#ifndef __IMFGetService_FWD_DEFINED__
#define __IMFGetService_FWD_DEFINED__
typedef interface IMFGetService IMFGetService;
#ifdef __cplusplus
interface IMFGetService;
#endif /* __cplusplus */
#endif
#ifndef __IMFClock_FWD_DEFINED__
#define __IMFClock_FWD_DEFINED__
typedef interface IMFClock IMFClock;
#ifdef __cplusplus
interface IMFClock;
#endif /* __cplusplus */
#endif
#ifndef __IMFMediaSession_FWD_DEFINED__
#define __IMFMediaSession_FWD_DEFINED__
typedef interface IMFMediaSession IMFMediaSession;
#ifdef __cplusplus
interface IMFMediaSession;
#endif /* __cplusplus */
#endif
#ifndef __IMFMediaTypeHandler_FWD_DEFINED__
#define __IMFMediaTypeHandler_FWD_DEFINED__
typedef interface IMFMediaTypeHandler IMFMediaTypeHandler;
#ifdef __cplusplus
interface IMFMediaTypeHandler;
#endif /* __cplusplus */
#endif
#ifndef __IMFStreamDescriptor_FWD_DEFINED__
#define __IMFStreamDescriptor_FWD_DEFINED__
typedef interface IMFStreamDescriptor IMFStreamDescriptor;
#ifdef __cplusplus
interface IMFStreamDescriptor;
#endif /* __cplusplus */
#endif
#ifndef __IMFPresentationDescriptor_FWD_DEFINED__
#define __IMFPresentationDescriptor_FWD_DEFINED__
typedef interface IMFPresentationDescriptor IMFPresentationDescriptor;
#ifdef __cplusplus
interface IMFPresentationDescriptor;
#endif /* __cplusplus */
#endif
#ifndef __IMFMediaSource_FWD_DEFINED__
#define __IMFMediaSource_FWD_DEFINED__
typedef interface IMFMediaSource IMFMediaSource;
#ifdef __cplusplus
interface IMFMediaSource;
#endif /* __cplusplus */
#endif
#ifndef __IMFByteStreamBuffering_FWD_DEFINED__
#define __IMFByteStreamBuffering_FWD_DEFINED__
typedef interface IMFByteStreamBuffering IMFByteStreamBuffering;
#ifdef __cplusplus
interface IMFByteStreamBuffering;
#endif /* __cplusplus */
#endif
#ifndef __IMFClockStateSink_FWD_DEFINED__
#define __IMFClockStateSink_FWD_DEFINED__
typedef interface IMFClockStateSink IMFClockStateSink;
#ifdef __cplusplus
interface IMFClockStateSink;
#endif /* __cplusplus */
#endif
/* Headers for imported files */
#include <mfobjects.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <mftransform.h>
#include <windef.h>
typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1,
MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2,
MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
} MFSESSION_SETTOPOLOGY_FLAGS;
typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
MFSESSION_GETFULLTOPOLOGY_CURRENT = 0
} MFSESSION_GETFULLTOPOLOGY_FLAGS;
typedef enum MFPMPSESSION_CREATION_FLAGS {
MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
} MFPMPSESSION_CREATION_FLAGS;
typedef UINT64 TOPOID;
typedef enum MF_TOPOLOGY_TYPE {
MF_TOPOLOGY_OUTPUT_NODE = 0,
MF_TOPOLOGY_SOURCESTREAM_NODE = 1,
MF_TOPOLOGY_TRANSFORM_NODE = 2,
MF_TOPOLOGY_TEE_NODE = 3,
MF_TOPOLOGY_MAX = 0xffffffff
} MF_TOPOLOGY_TYPE;
/*****************************************************************************
* IMFTopologyNode interface
*/
#ifndef __IMFTopologyNode_INTERFACE_DEFINED__
#define __IMFTopologyNode_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc430")
IMFTopologyNode : public IMFAttributes
{
virtual HRESULT STDMETHODCALLTYPE SetObject(
IUnknown *pObject) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObject(
IUnknown **ppObject) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNodeType(
MF_TOPOLOGY_TYPE *pType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTopoNodeID(
TOPOID *pID) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTopoNodeID(
TOPOID ullTopoID) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInputCount(
DWORD *pcInputs) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
DWORD *pcOutputs) = 0;
virtual HRESULT STDMETHODCALLTYPE ConnectOutput(
DWORD dwOutputIndex,
IMFTopologyNode *pDownstreamNode,
DWORD dwInputIndexOnDownstreamNode) = 0;
virtual HRESULT STDMETHODCALLTYPE DisconnectOutput(
DWORD dwOutputIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInput(
DWORD dwInputIndex,
IMFTopologyNode **ppUpstreamNode,
DWORD *pdwOutputIndexOnUpstreamNode) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOutput(
DWORD dwOutputIndex,
IMFTopologyNode **ppDownstreamNode,
DWORD *pdwInputIndexOnDownstreamNode) = 0;
virtual HRESULT STDMETHODCALLTYPE SetOutputPrefType(
DWORD dwOutputIndex,
IMFMediaType *pType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOutputPrefType(
DWORD dwOutputIndex,
IMFMediaType **ppType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetInputPrefType(
DWORD dwInputIndex,
IMFMediaType *pType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInputPrefType(
DWORD dwInputIndex,
IMFMediaType **ppType) = 0;
virtual HRESULT STDMETHODCALLTYPE CloneFrom(
IMFTopologyNode *pNode) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30)
#endif
#else
typedef struct IMFTopologyNodeVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFTopologyNode *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFTopologyNode *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFTopologyNode *This);
/*** IMFAttributes methods ***/
HRESULT (STDMETHODCALLTYPE *GetItem)(
IMFTopologyNode *This,
REFGUID guidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *GetItemType)(
IMFTopologyNode *This,
REFGUID guidKey,
MF_ATTRIBUTE_TYPE *pType);
HRESULT (STDMETHODCALLTYPE *CompareItem)(
IMFTopologyNode *This,
REFGUID guidKey,
REFPROPVARIANT Value,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *Compare)(
IMFTopologyNode *This,
IMFAttributes *pTheirs,
MF_ATTRIBUTES_MATCH_TYPE MatchType,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *GetUINT32)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT32 *punValue);
HRESULT (STDMETHODCALLTYPE *GetUINT64)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT64 *punValue);
HRESULT (STDMETHODCALLTYPE *GetDouble)(
IMFTopologyNode *This,
REFGUID guidKey,
double *pfValue);
HRESULT (STDMETHODCALLTYPE *GetGUID)(
IMFTopologyNode *This,
REFGUID guidKey,
GUID *pguidValue);
HRESULT (STDMETHODCALLTYPE *GetStringLength)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetString)(
IMFTopologyNode *This,
REFGUID guidKey,
LPWSTR pwszValue,
UINT32 cchBufSize,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
IMFTopologyNode *This,
REFGUID guidKey,
LPWSTR *ppwszValue,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetBlob)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT8 *pBuf,
UINT32 cbBufSize,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT8 **ppBuf,
UINT32 *pcbSize);
HRESULT (STDMETHODCALLTYPE *GetUnknown)(
IMFTopologyNode *This,
REFGUID guidKey,
REFIID riid,
LPVOID *ppv);
HRESULT (STDMETHODCALLTYPE *SetItem)(
IMFTopologyNode *This,
REFGUID guidKey,
REFPROPVARIANT Value);
HRESULT (STDMETHODCALLTYPE *DeleteItem)(
IMFTopologyNode *This,
REFGUID guidKey);
HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
IMFTopologyNode *This);
HRESULT (STDMETHODCALLTYPE *SetUINT32)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT32 unValue);
HRESULT (STDMETHODCALLTYPE *SetUINT64)(
IMFTopologyNode *This,
REFGUID guidKey,
UINT64 unValue);
HRESULT (STDMETHODCALLTYPE *SetDouble)(
IMFTopologyNode *This,
REFGUID guidKey,
double fValue);
HRESULT (STDMETHODCALLTYPE *SetGUID)(
IMFTopologyNode *This,
REFGUID guidKey,
REFGUID guidValue);
HRESULT (STDMETHODCALLTYPE *SetString)(
IMFTopologyNode *This,
REFGUID guidKey,
LPCWSTR wszValue);
HRESULT (STDMETHODCALLTYPE *SetBlob)(
IMFTopologyNode *This,
REFGUID guidKey,
const UINT8 *pBuf,
UINT32 cbBufSize);
HRESULT (STDMETHODCALLTYPE *SetUnknown)(
IMFTopologyNode *This,
REFGUID guidKey,
IUnknown *pUnknown);
HRESULT (STDMETHODCALLTYPE *LockStore)(
IMFTopologyNode *This);
HRESULT (STDMETHODCALLTYPE *UnlockStore)(
IMFTopologyNode *This);
HRESULT (STDMETHODCALLTYPE *GetCount)(
IMFTopologyNode *This,
UINT32 *pcItems);
HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
IMFTopologyNode *This,
UINT32 unIndex,
GUID *pguidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
IMFTopologyNode *This,
IMFAttributes *pDest);
/*** IMFTopologyNode methods ***/
HRESULT (STDMETHODCALLTYPE *SetObject)(
IMFTopologyNode *This,
IUnknown *pObject);
HRESULT (STDMETHODCALLTYPE *GetObject)(
IMFTopologyNode *This,
IUnknown **ppObject);
HRESULT (STDMETHODCALLTYPE *GetNodeType)(
IMFTopologyNode *This,
MF_TOPOLOGY_TYPE *pType);
HRESULT (STDMETHODCALLTYPE *GetTopoNodeID)(
IMFTopologyNode *This,
TOPOID *pID);
HRESULT (STDMETHODCALLTYPE *SetTopoNodeID)(
IMFTopologyNode *This,
TOPOID ullTopoID);
HRESULT (STDMETHODCALLTYPE *GetInputCount)(
IMFTopologyNode *This,
DWORD *pcInputs);
HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
IMFTopologyNode *This,
DWORD *pcOutputs);
HRESULT (STDMETHODCALLTYPE *ConnectOutput)(
IMFTopologyNode *This,
DWORD dwOutputIndex,
IMFTopologyNode *pDownstreamNode,
DWORD dwInputIndexOnDownstreamNode);
HRESULT (STDMETHODCALLTYPE *DisconnectOutput)(
IMFTopologyNode *This,
DWORD dwOutputIndex);
HRESULT (STDMETHODCALLTYPE *GetInput)(
IMFTopologyNode *This,
DWORD dwInputIndex,
IMFTopologyNode **ppUpstreamNode,
DWORD *pdwOutputIndexOnUpstreamNode);
HRESULT (STDMETHODCALLTYPE *GetOutput)(
IMFTopologyNode *This,
DWORD dwOutputIndex,
IMFTopologyNode **ppDownstreamNode,
DWORD *pdwInputIndexOnDownstreamNode);
HRESULT (STDMETHODCALLTYPE *SetOutputPrefType)(
IMFTopologyNode *This,
DWORD dwOutputIndex,
IMFMediaType *pType);
HRESULT (STDMETHODCALLTYPE *GetOutputPrefType)(
IMFTopologyNode *This,
DWORD dwOutputIndex,
IMFMediaType **ppType);
HRESULT (STDMETHODCALLTYPE *SetInputPrefType)(
IMFTopologyNode *This,
DWORD dwInputIndex,
IMFMediaType *pType);
HRESULT (STDMETHODCALLTYPE *GetInputPrefType)(
IMFTopologyNode *This,
DWORD dwInputIndex,
IMFMediaType **ppType);
HRESULT (STDMETHODCALLTYPE *CloneFrom)(
IMFTopologyNode *This,
IMFTopologyNode *pNode);
END_INTERFACE
} IMFTopologyNodeVtbl;
interface IMFTopologyNode {
CONST_VTBL IMFTopologyNodeVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFTopologyNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFTopologyNode_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFTopologyNode_Release(This) (This)->lpVtbl->Release(This)
/*** IMFAttributes methods ***/
#define IMFTopologyNode_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
#define IMFTopologyNode_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
#define IMFTopologyNode_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
#define IMFTopologyNode_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
#define IMFTopologyNode_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
#define IMFTopologyNode_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
#define IMFTopologyNode_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
#define IMFTopologyNode_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
#define IMFTopologyNode_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
#define IMFTopologyNode_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
#define IMFTopologyNode_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
#define IMFTopologyNode_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
#define IMFTopologyNode_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
#define IMFTopologyNode_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
#define IMFTopologyNode_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
#define IMFTopologyNode_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
#define IMFTopologyNode_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
#define IMFTopologyNode_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
#define IMFTopologyNode_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
#define IMFTopologyNode_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
#define IMFTopologyNode_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
#define IMFTopologyNode_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
#define IMFTopologyNode_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
#define IMFTopologyNode_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
#define IMFTopologyNode_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
#define IMFTopologyNode_LockStore(This) (This)->lpVtbl->LockStore(This)
#define IMFTopologyNode_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
#define IMFTopologyNode_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
#define IMFTopologyNode_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
#define IMFTopologyNode_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
/*** IMFTopologyNode methods ***/
#define IMFTopologyNode_SetObject(This,pObject) (This)->lpVtbl->SetObject(This,pObject)
#define IMFTopologyNode_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject)
#define IMFTopologyNode_GetNodeType(This,pType) (This)->lpVtbl->GetNodeType(This,pType)
#define IMFTopologyNode_GetTopoNodeID(This,pID) (This)->lpVtbl->GetTopoNodeID(This,pID)
#define IMFTopologyNode_SetTopoNodeID(This,ullTopoID) (This)->lpVtbl->SetTopoNodeID(This,ullTopoID)
#define IMFTopologyNode_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
#define IMFTopologyNode_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
#define IMFTopologyNode_ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) (This)->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode)
#define IMFTopologyNode_DisconnectOutput(This,dwOutputIndex) (This)->lpVtbl->DisconnectOutput(This,dwOutputIndex)
#define IMFTopologyNode_GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) (This)->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode)
#define IMFTopologyNode_GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) (This)->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode)
#define IMFTopologyNode_SetOutputPrefType(This,dwOutputIndex,pType) (This)->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType)
#define IMFTopologyNode_GetOutputPrefType(This,dwOutputIndex,ppType) (This)->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType)
#define IMFTopologyNode_SetInputPrefType(This,dwInputIndex,pType) (This)->lpVtbl->SetInputPrefType(This,dwInputIndex,pType)
#define IMFTopologyNode_GetInputPrefType(This,dwInputIndex,ppType) (This)->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType)
#define IMFTopologyNode_CloneFrom(This,pNode) (This)->lpVtbl->CloneFrom(This,pNode)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFTopologyNode_QueryInterface(IMFTopologyNode* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFTopologyNode_AddRef(IMFTopologyNode* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFTopologyNode_Release(IMFTopologyNode* This) {
return This->lpVtbl->Release(This);
}
/*** IMFAttributes methods ***/
static FORCEINLINE HRESULT IMFTopologyNode_GetItem(IMFTopologyNode* This,REFGUID guidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItem(This,guidKey,pValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetItemType(IMFTopologyNode* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
return This->lpVtbl->GetItemType(This,guidKey,pType);
}
static FORCEINLINE HRESULT IMFTopologyNode_CompareItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
}
static FORCEINLINE HRESULT IMFTopologyNode_Compare(IMFTopologyNode* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 *punValue) {
return This->lpVtbl->GetUINT32(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 *punValue) {
return This->lpVtbl->GetUINT64(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetDouble(IMFTopologyNode* This,REFGUID guidKey,double *pfValue) {
return This->lpVtbl->GetDouble(This,guidKey,pfValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetGUID(IMFTopologyNode* This,REFGUID guidKey,GUID *pguidValue) {
return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetStringLength(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcchLength) {
return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetBlobSize(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetUnknown(IMFTopologyNode* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value) {
return This->lpVtbl->SetItem(This,guidKey,Value);
}
static FORCEINLINE HRESULT IMFTopologyNode_DeleteItem(IMFTopologyNode* This,REFGUID guidKey) {
return This->lpVtbl->DeleteItem(This,guidKey);
}
static FORCEINLINE HRESULT IMFTopologyNode_DeleteAllItems(IMFTopologyNode* This) {
return This->lpVtbl->DeleteAllItems(This);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 unValue) {
return This->lpVtbl->SetUINT32(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 unValue) {
return This->lpVtbl->SetUINT64(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetDouble(IMFTopologyNode* This,REFGUID guidKey,double fValue) {
return This->lpVtbl->SetDouble(This,guidKey,fValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetGUID(IMFTopologyNode* This,REFGUID guidKey,REFGUID guidValue) {
return This->lpVtbl->SetGUID(This,guidKey,guidValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetString(IMFTopologyNode* This,REFGUID guidKey,LPCWSTR wszValue) {
return This->lpVtbl->SetString(This,guidKey,wszValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetBlob(IMFTopologyNode* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetUnknown(IMFTopologyNode* This,REFGUID guidKey,IUnknown *pUnknown) {
return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
}
static FORCEINLINE HRESULT IMFTopologyNode_LockStore(IMFTopologyNode* This) {
return This->lpVtbl->LockStore(This);
}
static FORCEINLINE HRESULT IMFTopologyNode_UnlockStore(IMFTopologyNode* This) {
return This->lpVtbl->UnlockStore(This);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetCount(IMFTopologyNode* This,UINT32 *pcItems) {
return This->lpVtbl->GetCount(This,pcItems);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetItemByIndex(IMFTopologyNode* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
}
static FORCEINLINE HRESULT IMFTopologyNode_CopyAllItems(IMFTopologyNode* This,IMFAttributes *pDest) {
return This->lpVtbl->CopyAllItems(This,pDest);
}
/*** IMFTopologyNode methods ***/
static FORCEINLINE HRESULT IMFTopologyNode_SetObject(IMFTopologyNode* This,IUnknown *pObject) {
return This->lpVtbl->SetObject(This,pObject);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetObject(IMFTopologyNode* This,IUnknown **ppObject) {
return This->lpVtbl->GetObject(This,ppObject);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetNodeType(IMFTopologyNode* This,MF_TOPOLOGY_TYPE *pType) {
return This->lpVtbl->GetNodeType(This,pType);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetTopoNodeID(IMFTopologyNode* This,TOPOID *pID) {
return This->lpVtbl->GetTopoNodeID(This,pID);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetTopoNodeID(IMFTopologyNode* This,TOPOID ullTopoID) {
return This->lpVtbl->SetTopoNodeID(This,ullTopoID);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetInputCount(IMFTopologyNode* This,DWORD *pcInputs) {
return This->lpVtbl->GetInputCount(This,pcInputs);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetOutputCount(IMFTopologyNode* This,DWORD *pcOutputs) {
return This->lpVtbl->GetOutputCount(This,pcOutputs);
}
static FORCEINLINE HRESULT IMFTopologyNode_ConnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) {
return This->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode);
}
static FORCEINLINE HRESULT IMFTopologyNode_DisconnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex) {
return This->lpVtbl->DisconnectOutput(This,dwOutputIndex);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetInput(IMFTopologyNode* This,DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) {
return This->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) {
return This->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType *pType) {
return This->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType **ppType) {
return This->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType);
}
static FORCEINLINE HRESULT IMFTopologyNode_SetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType *pType) {
return This->lpVtbl->SetInputPrefType(This,dwInputIndex,pType);
}
static FORCEINLINE HRESULT IMFTopologyNode_GetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType **ppType) {
return This->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType);
}
static FORCEINLINE HRESULT IMFTopologyNode_CloneFrom(IMFTopologyNode* This,IMFTopologyNode *pNode) {
return This->lpVtbl->CloneFrom(This,pNode);
}
#endif
#endif
#endif
HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetOutputPrefType_Proxy(
IMFTopologyNode* This,
DWORD dwOutputIndex,
DWORD *pcbData,
BYTE **ppbData);
void __RPC_STUB IMFTopologyNode_RemoteGetOutputPrefType_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetInputPrefType_Proxy(
IMFTopologyNode* This,
DWORD dwInputIndex,
DWORD *pcbData,
BYTE **ppbData);
void __RPC_STUB IMFTopologyNode_RemoteGetInputPrefType_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMFTopologyNode_GetOutputPrefType_Proxy(
IMFTopologyNode* This,
DWORD dwOutputIndex,
IMFMediaType **ppType);
HRESULT __RPC_STUB IMFTopologyNode_GetOutputPrefType_Stub(
IMFTopologyNode* This,
DWORD dwOutputIndex,
DWORD *pcbData,
BYTE **ppbData);
HRESULT CALLBACK IMFTopologyNode_GetInputPrefType_Proxy(
IMFTopologyNode* This,
DWORD dwInputIndex,
IMFMediaType **ppType);
HRESULT __RPC_STUB IMFTopologyNode_GetInputPrefType_Stub(
IMFTopologyNode* This,
DWORD dwInputIndex,
DWORD *pcbData,
BYTE **ppbData);
#endif /* __IMFTopologyNode_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFTopology interface
*/
#ifndef __IMFTopology_INTERFACE_DEFINED__
#define __IMFTopology_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc433")
IMFTopology : public IMFAttributes
{
virtual HRESULT STDMETHODCALLTYPE GetTopologyID(
TOPOID *pID) = 0;
virtual HRESULT STDMETHODCALLTYPE AddNode(
IMFTopologyNode *pNode) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveNode(
IMFTopologyNode *pNode) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNodeCount(
WORD *pwNodes) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNode(
WORD wIndex,
IMFTopologyNode **ppNode) = 0;
virtual HRESULT STDMETHODCALLTYPE Clear(
) = 0;
virtual HRESULT STDMETHODCALLTYPE CloneFrom(
IMFTopology *pTopology) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNodeByID(
TOPOID qwTopoNodeID,
IMFTopologyNode **ppNode) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSourceNodeCollection(
IMFCollection **ppCollection) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOutputNodeCollection(
IMFCollection **ppCollection) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33)
#endif
#else
typedef struct IMFTopologyVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFTopology *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFTopology *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFTopology *This);
/*** IMFAttributes methods ***/
HRESULT (STDMETHODCALLTYPE *GetItem)(
IMFTopology *This,
REFGUID guidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *GetItemType)(
IMFTopology *This,
REFGUID guidKey,
MF_ATTRIBUTE_TYPE *pType);
HRESULT (STDMETHODCALLTYPE *CompareItem)(
IMFTopology *This,
REFGUID guidKey,
REFPROPVARIANT Value,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *Compare)(
IMFTopology *This,
IMFAttributes *pTheirs,
MF_ATTRIBUTES_MATCH_TYPE MatchType,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *GetUINT32)(
IMFTopology *This,
REFGUID guidKey,
UINT32 *punValue);
HRESULT (STDMETHODCALLTYPE *GetUINT64)(
IMFTopology *This,
REFGUID guidKey,
UINT64 *punValue);
HRESULT (STDMETHODCALLTYPE *GetDouble)(
IMFTopology *This,
REFGUID guidKey,
double *pfValue);
HRESULT (STDMETHODCALLTYPE *GetGUID)(
IMFTopology *This,
REFGUID guidKey,
GUID *pguidValue);
HRESULT (STDMETHODCALLTYPE *GetStringLength)(
IMFTopology *This,
REFGUID guidKey,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetString)(
IMFTopology *This,
REFGUID guidKey,
LPWSTR pwszValue,
UINT32 cchBufSize,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
IMFTopology *This,
REFGUID guidKey,
LPWSTR *ppwszValue,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
IMFTopology *This,
REFGUID guidKey,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetBlob)(
IMFTopology *This,
REFGUID guidKey,
UINT8 *pBuf,
UINT32 cbBufSize,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
IMFTopology *This,
REFGUID guidKey,
UINT8 **ppBuf,
UINT32 *pcbSize);
HRESULT (STDMETHODCALLTYPE *GetUnknown)(
IMFTopology *This,
REFGUID guidKey,
REFIID riid,
LPVOID *ppv);
HRESULT (STDMETHODCALLTYPE *SetItem)(
IMFTopology *This,
REFGUID guidKey,
REFPROPVARIANT Value);
HRESULT (STDMETHODCALLTYPE *DeleteItem)(
IMFTopology *This,
REFGUID guidKey);
HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
IMFTopology *This);
HRESULT (STDMETHODCALLTYPE *SetUINT32)(
IMFTopology *This,
REFGUID guidKey,
UINT32 unValue);
HRESULT (STDMETHODCALLTYPE *SetUINT64)(
IMFTopology *This,
REFGUID guidKey,
UINT64 unValue);
HRESULT (STDMETHODCALLTYPE *SetDouble)(
IMFTopology *This,
REFGUID guidKey,
double fValue);
HRESULT (STDMETHODCALLTYPE *SetGUID)(
IMFTopology *This,
REFGUID guidKey,
REFGUID guidValue);
HRESULT (STDMETHODCALLTYPE *SetString)(
IMFTopology *This,
REFGUID guidKey,
LPCWSTR wszValue);
HRESULT (STDMETHODCALLTYPE *SetBlob)(
IMFTopology *This,
REFGUID guidKey,
const UINT8 *pBuf,
UINT32 cbBufSize);
HRESULT (STDMETHODCALLTYPE *SetUnknown)(
IMFTopology *This,
REFGUID guidKey,
IUnknown *pUnknown);
HRESULT (STDMETHODCALLTYPE *LockStore)(
IMFTopology *This);
HRESULT (STDMETHODCALLTYPE *UnlockStore)(
IMFTopology *This);
HRESULT (STDMETHODCALLTYPE *GetCount)(
IMFTopology *This,
UINT32 *pcItems);
HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
IMFTopology *This,
UINT32 unIndex,
GUID *pguidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
IMFTopology *This,
IMFAttributes *pDest);
/*** IMFTopology methods ***/
HRESULT (STDMETHODCALLTYPE *GetTopologyID)(
IMFTopology *This,
TOPOID *pID);
HRESULT (STDMETHODCALLTYPE *AddNode)(
IMFTopology *This,
IMFTopologyNode *pNode);
HRESULT (STDMETHODCALLTYPE *RemoveNode)(
IMFTopology *This,
IMFTopologyNode *pNode);
HRESULT (STDMETHODCALLTYPE *GetNodeCount)(
IMFTopology *This,
WORD *pwNodes);
HRESULT (STDMETHODCALLTYPE *GetNode)(
IMFTopology *This,
WORD wIndex,
IMFTopologyNode **ppNode);
HRESULT (STDMETHODCALLTYPE *Clear)(
IMFTopology *This);
HRESULT (STDMETHODCALLTYPE *CloneFrom)(
IMFTopology *This,
IMFTopology *pTopology);
HRESULT (STDMETHODCALLTYPE *GetNodeByID)(
IMFTopology *This,
TOPOID qwTopoNodeID,
IMFTopologyNode **ppNode);
HRESULT (STDMETHODCALLTYPE *GetSourceNodeCollection)(
IMFTopology *This,
IMFCollection **ppCollection);
HRESULT (STDMETHODCALLTYPE *GetOutputNodeCollection)(
IMFTopology *This,
IMFCollection **ppCollection);
END_INTERFACE
} IMFTopologyVtbl;
interface IMFTopology {
CONST_VTBL IMFTopologyVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFTopology_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFTopology_Release(This) (This)->lpVtbl->Release(This)
/*** IMFAttributes methods ***/
#define IMFTopology_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
#define IMFTopology_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
#define IMFTopology_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
#define IMFTopology_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
#define IMFTopology_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
#define IMFTopology_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
#define IMFTopology_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
#define IMFTopology_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
#define IMFTopology_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
#define IMFTopology_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
#define IMFTopology_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
#define IMFTopology_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
#define IMFTopology_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
#define IMFTopology_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
#define IMFTopology_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
#define IMFTopology_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
#define IMFTopology_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
#define IMFTopology_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
#define IMFTopology_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
#define IMFTopology_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
#define IMFTopology_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
#define IMFTopology_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
#define IMFTopology_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
#define IMFTopology_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
#define IMFTopology_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
#define IMFTopology_LockStore(This) (This)->lpVtbl->LockStore(This)
#define IMFTopology_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
#define IMFTopology_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
#define IMFTopology_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
#define IMFTopology_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
/*** IMFTopology methods ***/
#define IMFTopology_GetTopologyID(This,pID) (This)->lpVtbl->GetTopologyID(This,pID)
#define IMFTopology_AddNode(This,pNode) (This)->lpVtbl->AddNode(This,pNode)
#define IMFTopology_RemoveNode(This,pNode) (This)->lpVtbl->RemoveNode(This,pNode)
#define IMFTopology_GetNodeCount(This,pwNodes) (This)->lpVtbl->GetNodeCount(This,pwNodes)
#define IMFTopology_GetNode(This,wIndex,ppNode) (This)->lpVtbl->GetNode(This,wIndex,ppNode)
#define IMFTopology_Clear(This) (This)->lpVtbl->Clear(This)
#define IMFTopology_CloneFrom(This,pTopology) (This)->lpVtbl->CloneFrom(This,pTopology)
#define IMFTopology_GetNodeByID(This,qwTopoNodeID,ppNode) (This)->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode)
#define IMFTopology_GetSourceNodeCollection(This,ppCollection) (This)->lpVtbl->GetSourceNodeCollection(This,ppCollection)
#define IMFTopology_GetOutputNodeCollection(This,ppCollection) (This)->lpVtbl->GetOutputNodeCollection(This,ppCollection)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFTopology_QueryInterface(IMFTopology* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFTopology_AddRef(IMFTopology* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFTopology_Release(IMFTopology* This) {
return This->lpVtbl->Release(This);
}
/*** IMFAttributes methods ***/
static FORCEINLINE HRESULT IMFTopology_GetItem(IMFTopology* This,REFGUID guidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItem(This,guidKey,pValue);
}
static FORCEINLINE HRESULT IMFTopology_GetItemType(IMFTopology* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
return This->lpVtbl->GetItemType(This,guidKey,pType);
}
static FORCEINLINE HRESULT IMFTopology_CompareItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
}
static FORCEINLINE HRESULT IMFTopology_Compare(IMFTopology* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
}
static FORCEINLINE HRESULT IMFTopology_GetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 *punValue) {
return This->lpVtbl->GetUINT32(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFTopology_GetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 *punValue) {
return This->lpVtbl->GetUINT64(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFTopology_GetDouble(IMFTopology* This,REFGUID guidKey,double *pfValue) {
return This->lpVtbl->GetDouble(This,guidKey,pfValue);
}
static FORCEINLINE HRESULT IMFTopology_GetGUID(IMFTopology* This,REFGUID guidKey,GUID *pguidValue) {
return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
}
static FORCEINLINE HRESULT IMFTopology_GetStringLength(IMFTopology* This,REFGUID guidKey,UINT32 *pcchLength) {
return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
}
static FORCEINLINE HRESULT IMFTopology_GetString(IMFTopology* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
}
static FORCEINLINE HRESULT IMFTopology_GetAllocatedString(IMFTopology* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
}
static FORCEINLINE HRESULT IMFTopology_GetBlobSize(IMFTopology* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFTopology_GetBlob(IMFTopology* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFTopology_GetAllocatedBlob(IMFTopology* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
}
static FORCEINLINE HRESULT IMFTopology_GetUnknown(IMFTopology* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
}
static FORCEINLINE HRESULT IMFTopology_SetItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value) {
return This->lpVtbl->SetItem(This,guidKey,Value);
}
static FORCEINLINE HRESULT IMFTopology_DeleteItem(IMFTopology* This,REFGUID guidKey) {
return This->lpVtbl->DeleteItem(This,guidKey);
}
static FORCEINLINE HRESULT IMFTopology_DeleteAllItems(IMFTopology* This) {
return This->lpVtbl->DeleteAllItems(This);
}
static FORCEINLINE HRESULT IMFTopology_SetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 unValue) {
return This->lpVtbl->SetUINT32(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFTopology_SetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 unValue) {
return This->lpVtbl->SetUINT64(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFTopology_SetDouble(IMFTopology* This,REFGUID guidKey,double fValue) {
return This->lpVtbl->SetDouble(This,guidKey,fValue);
}
static FORCEINLINE HRESULT IMFTopology_SetGUID(IMFTopology* This,REFGUID guidKey,REFGUID guidValue) {
return This->lpVtbl->SetGUID(This,guidKey,guidValue);
}
static FORCEINLINE HRESULT IMFTopology_SetString(IMFTopology* This,REFGUID guidKey,LPCWSTR wszValue) {
return This->lpVtbl->SetString(This,guidKey,wszValue);
}
static FORCEINLINE HRESULT IMFTopology_SetBlob(IMFTopology* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
}
static FORCEINLINE HRESULT IMFTopology_SetUnknown(IMFTopology* This,REFGUID guidKey,IUnknown *pUnknown) {
return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
}
static FORCEINLINE HRESULT IMFTopology_LockStore(IMFTopology* This) {
return This->lpVtbl->LockStore(This);
}
static FORCEINLINE HRESULT IMFTopology_UnlockStore(IMFTopology* This) {
return This->lpVtbl->UnlockStore(This);
}
static FORCEINLINE HRESULT IMFTopology_GetCount(IMFTopology* This,UINT32 *pcItems) {
return This->lpVtbl->GetCount(This,pcItems);
}
static FORCEINLINE HRESULT IMFTopology_GetItemByIndex(IMFTopology* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
}
static FORCEINLINE HRESULT IMFTopology_CopyAllItems(IMFTopology* This,IMFAttributes *pDest) {
return This->lpVtbl->CopyAllItems(This,pDest);
}
/*** IMFTopology methods ***/
static FORCEINLINE HRESULT IMFTopology_GetTopologyID(IMFTopology* This,TOPOID *pID) {
return This->lpVtbl->GetTopologyID(This,pID);
}
static FORCEINLINE HRESULT IMFTopology_AddNode(IMFTopology* This,IMFTopologyNode *pNode) {
return This->lpVtbl->AddNode(This,pNode);
}
static FORCEINLINE HRESULT IMFTopology_RemoveNode(IMFTopology* This,IMFTopologyNode *pNode) {
return This->lpVtbl->RemoveNode(This,pNode);
}
static FORCEINLINE HRESULT IMFTopology_GetNodeCount(IMFTopology* This,WORD *pwNodes) {
return This->lpVtbl->GetNodeCount(This,pwNodes);
}
static FORCEINLINE HRESULT IMFTopology_GetNode(IMFTopology* This,WORD wIndex,IMFTopologyNode **ppNode) {
return This->lpVtbl->GetNode(This,wIndex,ppNode);
}
static FORCEINLINE HRESULT IMFTopology_Clear(IMFTopology* This) {
return This->lpVtbl->Clear(This);
}
static FORCEINLINE HRESULT IMFTopology_CloneFrom(IMFTopology* This,IMFTopology *pTopology) {
return This->lpVtbl->CloneFrom(This,pTopology);
}
static FORCEINLINE HRESULT IMFTopology_GetNodeByID(IMFTopology* This,TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) {
return This->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode);
}
static FORCEINLINE HRESULT IMFTopology_GetSourceNodeCollection(IMFTopology* This,IMFCollection **ppCollection) {
return This->lpVtbl->GetSourceNodeCollection(This,ppCollection);
}
static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This,IMFCollection **ppCollection) {
return This->lpVtbl->GetOutputNodeCollection(This,ppCollection);
}
#endif
#endif
#endif
#endif /* __IMFTopology_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFGetService interface
*/
#ifndef __IMFGetService_INTERFACE_DEFINED__
#define __IMFGetService_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("fa993888-4383-415a-a930-dd472a8cf6f7")
IMFGetService : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetService(
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
#endif
#else
typedef struct IMFGetServiceVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFGetService *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFGetService *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFGetService *This);
/*** IMFGetService methods ***/
HRESULT (STDMETHODCALLTYPE *GetService)(
IMFGetService *This,
REFGUID guidService,
REFIID riid,
LPVOID *ppvObject);
END_INTERFACE
} IMFGetServiceVtbl;
interface IMFGetService {
CONST_VTBL IMFGetServiceVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFGetService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFGetService_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFGetService_Release(This) (This)->lpVtbl->Release(This)
/*** IMFGetService methods ***/
#define IMFGetService_GetService(This,guidService,riid,ppvObject) (This)->lpVtbl->GetService(This,guidService,riid,ppvObject)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFGetService_QueryInterface(IMFGetService* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFGetService_AddRef(IMFGetService* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFGetService_Release(IMFGetService* This) {
return This->lpVtbl->Release(This);
}
/*** IMFGetService methods ***/
static FORCEINLINE HRESULT IMFGetService_GetService(IMFGetService* This,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
return This->lpVtbl->GetService(This,guidService,riid,ppvObject);
}
#endif
#endif
#endif
#endif /* __IMFGetService_INTERFACE_DEFINED__ */
typedef LONGLONG MFTIME;
typedef enum _MF_CLOCK_STATE {
MFCLOCK_STATE_INVALID = 0,
MFCLOCK_STATE_RUNNING = 1,
MFCLOCK_STATE_STOPPED = 2,
MFCLOCK_STATE_PAUSED = 3
} MF_CLOCK_STATE;
typedef enum _MF_CLOCK_STATE MFCLOCK_STATE;
typedef struct _MFCLOCK_PROPERTIES {
UINT64 qwCorrelationRate;
GUID guidClockId;
DWORD dwClockFlags;
UINT64 qwClockFrequency;
DWORD dwClockTolerance;
DWORD dwClockJitter;
} MFCLOCK_PROPERTIES;
/*****************************************************************************
* IMFClock interface
*/
#ifndef __IMFClock_INTERFACE_DEFINED__
#define __IMFClock_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2eb1e945-18b8-4139-9b1a-d5d584818530")
IMFClock : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetClockCharacteristics(
DWORD *pdwCharacteristics) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCorrelatedTime(
DWORD dwReserved,
LONGLONG *pllClockTime,
MFTIME *phnsSystemTime) = 0;
virtual HRESULT STDMETHODCALLTYPE GetContinuityKey(
DWORD *pdwContinuityKey) = 0;
virtual HRESULT STDMETHODCALLTYPE GetState(
DWORD dwReserved,
MFCLOCK_STATE *peClockState) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProperties(
MFCLOCK_PROPERTIES *pClockProperties) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30)
#endif
#else
typedef struct IMFClockVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFClock *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFClock *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFClock *This);
/*** IMFClock methods ***/
HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
IMFClock *This,
DWORD *pdwCharacteristics);
HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
IMFClock *This,
DWORD dwReserved,
LONGLONG *pllClockTime,
MFTIME *phnsSystemTime);
HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
IMFClock *This,
DWORD *pdwContinuityKey);
HRESULT (STDMETHODCALLTYPE *GetState)(
IMFClock *This,
DWORD dwReserved,
MFCLOCK_STATE *peClockState);
HRESULT (STDMETHODCALLTYPE *GetProperties)(
IMFClock *This,
MFCLOCK_PROPERTIES *pClockProperties);
END_INTERFACE
} IMFClockVtbl;
interface IMFClock {
CONST_VTBL IMFClockVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFClock_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFClock_Release(This) (This)->lpVtbl->Release(This)
/*** IMFClock methods ***/
#define IMFClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
#define IMFClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
#define IMFClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
#define IMFClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
#define IMFClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFClock_QueryInterface(IMFClock* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFClock_AddRef(IMFClock* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFClock_Release(IMFClock* This) {
return This->lpVtbl->Release(This);
}
/*** IMFClock methods ***/
static FORCEINLINE HRESULT IMFClock_GetClockCharacteristics(IMFClock* This,DWORD *pdwCharacteristics) {
return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
}
static FORCEINLINE HRESULT IMFClock_GetCorrelatedTime(IMFClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
}
static FORCEINLINE HRESULT IMFClock_GetContinuityKey(IMFClock* This,DWORD *pdwContinuityKey) {
return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
}
static FORCEINLINE HRESULT IMFClock_GetState(IMFClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
return This->lpVtbl->GetState(This,dwReserved,peClockState);
}
static FORCEINLINE HRESULT IMFClock_GetProperties(IMFClock* This,MFCLOCK_PROPERTIES *pClockProperties) {
return This->lpVtbl->GetProperties(This,pClockProperties);
}
#endif
#endif
#endif
#endif /* __IMFClock_INTERFACE_DEFINED__ */
#define SHA_HASH_LEN 20
#define STR_HASH_LEN (SHA_HASH_LEN*2+3)
typedef struct _MFRR_COMPONENT_HASH_INFO {
DWORD ulReason;
WCHAR rgHeaderHash[STR_HASH_LEN];
WCHAR rgPublicKeyHash[STR_HASH_LEN];
WCHAR wszName[MAX_PATH];
} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;
EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a);
typedef enum _MF_CONNECT_METHOD {
MF_CONNECT_DIRECT = 0x0,
MF_CONNECT_ALLOW_CONVERTER = 0x1,
MF_CONNECT_ALLOW_DECODER = 0x3,
MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x4,
MF_CONNECT_AS_OPTIONAL = 0x10000,
MF_CONNECT_AS_OPTIONAL_BRANCH = 0x20000
} MF_CONNECT_METHOD;
/*****************************************************************************
* IMFMediaSession interface
*/
#ifndef __IMFMediaSession_INTERFACE_DEFINED__
#define __IMFMediaSession_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("90377834-21d0-4dee-8214-ba2e3e6c1127")
IMFMediaSession : public IMFMediaEventGenerator
{
virtual HRESULT STDMETHODCALLTYPE SetTopology(
DWORD dwSetTopologyFlags,
IMFTopology *pTopology) = 0;
virtual HRESULT STDMETHODCALLTYPE ClearTopologies(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Start(
const GUID *pguidTimeFormat,
const PROPVARIANT *pvarStartPosition) = 0;
virtual HRESULT STDMETHODCALLTYPE Pause(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Stop(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Close(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown(
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClock(
IMFClock **ppClock) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSessionCapabilities(
DWORD *pdwCaps) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFullTopology(
DWORD dwGetFullTopologyFlags,
TOPOID TopoId,
IMFTopology **ppFullTopology) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27)
#endif
#else
typedef struct IMFMediaSessionVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFMediaSession *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFMediaSession *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFMediaSession *This);
/*** IMFMediaEventGenerator methods ***/
HRESULT (STDMETHODCALLTYPE *GetEvent)(
IMFMediaSession *This,
DWORD dwFlags,
IMFMediaEvent **ppEvent);
HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
IMFMediaSession *This,
IMFAsyncCallback *pCallback,
IUnknown *punkState);
HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
IMFMediaSession *This,
IMFAsyncResult *pResult,
IMFMediaEvent **ppEvent);
HRESULT (STDMETHODCALLTYPE *QueueEvent)(
IMFMediaSession *This,
MediaEventType met,
REFGUID guidExtendedType,
HRESULT hrStatus,
const PROPVARIANT *pvValue);
/*** IMFMediaSession methods ***/
HRESULT (STDMETHODCALLTYPE *SetTopology)(
IMFMediaSession *This,
DWORD dwSetTopologyFlags,
IMFTopology *pTopology);
HRESULT (STDMETHODCALLTYPE *ClearTopologies)(
IMFMediaSession *This);
HRESULT (STDMETHODCALLTYPE *Start)(
IMFMediaSession *This,
const GUID *pguidTimeFormat,
const PROPVARIANT *pvarStartPosition);
HRESULT (STDMETHODCALLTYPE *Pause)(
IMFMediaSession *This);
HRESULT (STDMETHODCALLTYPE *Stop)(
IMFMediaSession *This);
HRESULT (STDMETHODCALLTYPE *Close)(
IMFMediaSession *This);
HRESULT (STDMETHODCALLTYPE *Shutdown)(
IMFMediaSession *This);
HRESULT (STDMETHODCALLTYPE *GetClock)(
IMFMediaSession *This,
IMFClock **ppClock);
HRESULT (STDMETHODCALLTYPE *GetSessionCapabilities)(
IMFMediaSession *This,
DWORD *pdwCaps);
HRESULT (STDMETHODCALLTYPE *GetFullTopology)(
IMFMediaSession *This,
DWORD dwGetFullTopologyFlags,
TOPOID TopoId,
IMFTopology **ppFullTopology);
END_INTERFACE
} IMFMediaSessionVtbl;
interface IMFMediaSession {
CONST_VTBL IMFMediaSessionVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFMediaSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFMediaSession_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFMediaSession_Release(This) (This)->lpVtbl->Release(This)
/*** IMFMediaEventGenerator methods ***/
#define IMFMediaSession_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
#define IMFMediaSession_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
#define IMFMediaSession_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
#define IMFMediaSession_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
/*** IMFMediaSession methods ***/
#define IMFMediaSession_SetTopology(This,dwSetTopologyFlags,pTopology) (This)->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology)
#define IMFMediaSession_ClearTopologies(This) (This)->lpVtbl->ClearTopologies(This)
#define IMFMediaSession_Start(This,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition)
#define IMFMediaSession_Pause(This) (This)->lpVtbl->Pause(This)
#define IMFMediaSession_Stop(This) (This)->lpVtbl->Stop(This)
#define IMFMediaSession_Close(This) (This)->lpVtbl->Close(This)
#define IMFMediaSession_Shutdown(This) (This)->lpVtbl->Shutdown(This)
#define IMFMediaSession_GetClock(This,ppClock) (This)->lpVtbl->GetClock(This,ppClock)
#define IMFMediaSession_GetSessionCapabilities(This,pdwCaps) (This)->lpVtbl->GetSessionCapabilities(This,pdwCaps)
#define IMFMediaSession_GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) (This)->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFMediaSession_QueryInterface(IMFMediaSession* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFMediaSession_AddRef(IMFMediaSession* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFMediaSession_Release(IMFMediaSession* This) {
return This->lpVtbl->Release(This);
}
/*** IMFMediaEventGenerator methods ***/
static FORCEINLINE HRESULT IMFMediaSession_GetEvent(IMFMediaSession* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
}
static FORCEINLINE HRESULT IMFMediaSession_BeginGetEvent(IMFMediaSession* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
}
static FORCEINLINE HRESULT IMFMediaSession_EndGetEvent(IMFMediaSession* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
}
static FORCEINLINE HRESULT IMFMediaSession_QueueEvent(IMFMediaSession* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
}
/*** IMFMediaSession methods ***/
static FORCEINLINE HRESULT IMFMediaSession_SetTopology(IMFMediaSession* This,DWORD dwSetTopologyFlags,IMFTopology *pTopology) {
return This->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology);
}
static FORCEINLINE HRESULT IMFMediaSession_ClearTopologies(IMFMediaSession* This) {
return This->lpVtbl->ClearTopologies(This);
}
static FORCEINLINE HRESULT IMFMediaSession_Start(IMFMediaSession* This,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) {
return This->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition);
}
static FORCEINLINE HRESULT IMFMediaSession_Pause(IMFMediaSession* This) {
return This->lpVtbl->Pause(This);
}
static FORCEINLINE HRESULT IMFMediaSession_Stop(IMFMediaSession* This) {
return This->lpVtbl->Stop(This);
}
static FORCEINLINE HRESULT IMFMediaSession_Close(IMFMediaSession* This) {
return This->lpVtbl->Close(This);
}
static FORCEINLINE HRESULT IMFMediaSession_Shutdown(IMFMediaSession* This) {
return This->lpVtbl->Shutdown(This);
}
static FORCEINLINE HRESULT IMFMediaSession_GetClock(IMFMediaSession* This,IMFClock **ppClock) {
return This->lpVtbl->GetClock(This,ppClock);
}
static FORCEINLINE HRESULT IMFMediaSession_GetSessionCapabilities(IMFMediaSession* This,DWORD *pdwCaps) {
return This->lpVtbl->GetSessionCapabilities(This,pdwCaps);
}
static FORCEINLINE HRESULT IMFMediaSession_GetFullTopology(IMFMediaSession* This,DWORD dwGetFullTopologyFlags,TOPOID TopoId,IMFTopology **ppFullTopology) {
return This->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology);
}
#endif
#endif
#endif
#endif /* __IMFMediaSession_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFMediaTypeHandler interface
*/
#ifndef __IMFMediaTypeHandler_INTERFACE_DEFINED__
#define __IMFMediaTypeHandler_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5")
IMFMediaTypeHandler : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE IsMediaTypeSupported(
IMFMediaType *pMediaType,
IMFMediaType **ppMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMediaTypeCount(
DWORD *pdwTypeCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMediaTypeByIndex(
DWORD dwIndex,
IMFMediaType **ppType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType(
IMFMediaType *pMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
IMFMediaType **ppMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMajorType(
GUID *pguidMajorType) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5)
#endif
#else
typedef struct IMFMediaTypeHandlerVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFMediaTypeHandler *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFMediaTypeHandler *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFMediaTypeHandler *This);
/*** IMFMediaTypeHandler methods ***/
HRESULT (STDMETHODCALLTYPE *IsMediaTypeSupported)(
IMFMediaTypeHandler *This,
IMFMediaType *pMediaType,
IMFMediaType **ppMediaType);
HRESULT (STDMETHODCALLTYPE *GetMediaTypeCount)(
IMFMediaTypeHandler *This,
DWORD *pdwTypeCount);
HRESULT (STDMETHODCALLTYPE *GetMediaTypeByIndex)(
IMFMediaTypeHandler *This,
DWORD dwIndex,
IMFMediaType **ppType);
HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
IMFMediaTypeHandler *This,
IMFMediaType *pMediaType);
HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
IMFMediaTypeHandler *This,
IMFMediaType **ppMediaType);
HRESULT (STDMETHODCALLTYPE *GetMajorType)(
IMFMediaTypeHandler *This,
GUID *pguidMajorType);
END_INTERFACE
} IMFMediaTypeHandlerVtbl;
interface IMFMediaTypeHandler {
CONST_VTBL IMFMediaTypeHandlerVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFMediaTypeHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFMediaTypeHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFMediaTypeHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IMFMediaTypeHandler methods ***/
#define IMFMediaTypeHandler_IsMediaTypeSupported(This,pMediaType,ppMediaType) (This)->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType)
#define IMFMediaTypeHandler_GetMediaTypeCount(This,pdwTypeCount) (This)->lpVtbl->GetMediaTypeCount(This,pdwTypeCount)
#define IMFMediaTypeHandler_GetMediaTypeByIndex(This,dwIndex,ppType) (This)->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType)
#define IMFMediaTypeHandler_SetCurrentMediaType(This,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,pMediaType)
#define IMFMediaTypeHandler_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
#define IMFMediaTypeHandler_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFMediaTypeHandler_QueryInterface(IMFMediaTypeHandler* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFMediaTypeHandler_AddRef(IMFMediaTypeHandler* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFMediaTypeHandler_Release(IMFMediaTypeHandler* This) {
return This->lpVtbl->Release(This);
}
/*** IMFMediaTypeHandler methods ***/
static FORCEINLINE HRESULT IMFMediaTypeHandler_IsMediaTypeSupported(IMFMediaTypeHandler* This,IMFMediaType *pMediaType,IMFMediaType **ppMediaType) {
return This->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType);
}
static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeCount(IMFMediaTypeHandler* This,DWORD *pdwTypeCount) {
return This->lpVtbl->GetMediaTypeCount(This,pdwTypeCount);
}
static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeByIndex(IMFMediaTypeHandler* This,DWORD dwIndex,IMFMediaType **ppType) {
return This->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType);
}
static FORCEINLINE HRESULT IMFMediaTypeHandler_SetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType *pMediaType) {
return This->lpVtbl->SetCurrentMediaType(This,pMediaType);
}
static FORCEINLINE HRESULT IMFMediaTypeHandler_GetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType **ppMediaType) {
return This->lpVtbl->GetCurrentMediaType(This,ppMediaType);
}
static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMajorType(IMFMediaTypeHandler* This,GUID *pguidMajorType) {
return This->lpVtbl->GetMajorType(This,pguidMajorType);
}
#endif
#endif
#endif
HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_RemoteGetCurrentMediaType_Proxy(
IMFMediaTypeHandler* This,
BYTE **ppbData,
DWORD *pcbData);
void __RPC_STUB IMFMediaTypeHandler_RemoteGetCurrentMediaType_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMFMediaTypeHandler_GetCurrentMediaType_Proxy(
IMFMediaTypeHandler* This,
IMFMediaType **ppMediaType);
HRESULT __RPC_STUB IMFMediaTypeHandler_GetCurrentMediaType_Stub(
IMFMediaTypeHandler* This,
BYTE **ppbData,
DWORD *pcbData);
#endif /* __IMFMediaTypeHandler_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFStreamDescriptor interface
*/
#ifndef __IMFStreamDescriptor_INTERFACE_DEFINED__
#define __IMFStreamDescriptor_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("56c03d9c-9dbb-45f5-ab4b-d80f47c05938")
IMFStreamDescriptor : public IMFAttributes
{
virtual HRESULT STDMETHODCALLTYPE GetStreamIdentifier(
DWORD *pdwStreamIdentifier) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler(
IMFMediaTypeHandler **ppMediaTypeHandler) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38)
#endif
#else
typedef struct IMFStreamDescriptorVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFStreamDescriptor *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFStreamDescriptor *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFStreamDescriptor *This);
/*** IMFAttributes methods ***/
HRESULT (STDMETHODCALLTYPE *GetItem)(
IMFStreamDescriptor *This,
REFGUID guidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *GetItemType)(
IMFStreamDescriptor *This,
REFGUID guidKey,
MF_ATTRIBUTE_TYPE *pType);
HRESULT (STDMETHODCALLTYPE *CompareItem)(
IMFStreamDescriptor *This,
REFGUID guidKey,
REFPROPVARIANT Value,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *Compare)(
IMFStreamDescriptor *This,
IMFAttributes *pTheirs,
MF_ATTRIBUTES_MATCH_TYPE MatchType,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *GetUINT32)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT32 *punValue);
HRESULT (STDMETHODCALLTYPE *GetUINT64)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT64 *punValue);
HRESULT (STDMETHODCALLTYPE *GetDouble)(
IMFStreamDescriptor *This,
REFGUID guidKey,
double *pfValue);
HRESULT (STDMETHODCALLTYPE *GetGUID)(
IMFStreamDescriptor *This,
REFGUID guidKey,
GUID *pguidValue);
HRESULT (STDMETHODCALLTYPE *GetStringLength)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetString)(
IMFStreamDescriptor *This,
REFGUID guidKey,
LPWSTR pwszValue,
UINT32 cchBufSize,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
IMFStreamDescriptor *This,
REFGUID guidKey,
LPWSTR *ppwszValue,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetBlob)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT8 *pBuf,
UINT32 cbBufSize,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT8 **ppBuf,
UINT32 *pcbSize);
HRESULT (STDMETHODCALLTYPE *GetUnknown)(
IMFStreamDescriptor *This,
REFGUID guidKey,
REFIID riid,
LPVOID *ppv);
HRESULT (STDMETHODCALLTYPE *SetItem)(
IMFStreamDescriptor *This,
REFGUID guidKey,
REFPROPVARIANT Value);
HRESULT (STDMETHODCALLTYPE *DeleteItem)(
IMFStreamDescriptor *This,
REFGUID guidKey);
HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
IMFStreamDescriptor *This);
HRESULT (STDMETHODCALLTYPE *SetUINT32)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT32 unValue);
HRESULT (STDMETHODCALLTYPE *SetUINT64)(
IMFStreamDescriptor *This,
REFGUID guidKey,
UINT64 unValue);
HRESULT (STDMETHODCALLTYPE *SetDouble)(
IMFStreamDescriptor *This,
REFGUID guidKey,
double fValue);
HRESULT (STDMETHODCALLTYPE *SetGUID)(
IMFStreamDescriptor *This,
REFGUID guidKey,
REFGUID guidValue);
HRESULT (STDMETHODCALLTYPE *SetString)(
IMFStreamDescriptor *This,
REFGUID guidKey,
LPCWSTR wszValue);
HRESULT (STDMETHODCALLTYPE *SetBlob)(
IMFStreamDescriptor *This,
REFGUID guidKey,
const UINT8 *pBuf,
UINT32 cbBufSize);
HRESULT (STDMETHODCALLTYPE *SetUnknown)(
IMFStreamDescriptor *This,
REFGUID guidKey,
IUnknown *pUnknown);
HRESULT (STDMETHODCALLTYPE *LockStore)(
IMFStreamDescriptor *This);
HRESULT (STDMETHODCALLTYPE *UnlockStore)(
IMFStreamDescriptor *This);
HRESULT (STDMETHODCALLTYPE *GetCount)(
IMFStreamDescriptor *This,
UINT32 *pcItems);
HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
IMFStreamDescriptor *This,
UINT32 unIndex,
GUID *pguidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
IMFStreamDescriptor *This,
IMFAttributes *pDest);
/*** IMFStreamDescriptor methods ***/
HRESULT (STDMETHODCALLTYPE *GetStreamIdentifier)(
IMFStreamDescriptor *This,
DWORD *pdwStreamIdentifier);
HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)(
IMFStreamDescriptor *This,
IMFMediaTypeHandler **ppMediaTypeHandler);
END_INTERFACE
} IMFStreamDescriptorVtbl;
interface IMFStreamDescriptor {
CONST_VTBL IMFStreamDescriptorVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFStreamDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFStreamDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFStreamDescriptor_Release(This) (This)->lpVtbl->Release(This)
/*** IMFAttributes methods ***/
#define IMFStreamDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
#define IMFStreamDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
#define IMFStreamDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
#define IMFStreamDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
#define IMFStreamDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
#define IMFStreamDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
#define IMFStreamDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
#define IMFStreamDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
#define IMFStreamDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
#define IMFStreamDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
#define IMFStreamDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
#define IMFStreamDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
#define IMFStreamDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
#define IMFStreamDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
#define IMFStreamDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
#define IMFStreamDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
#define IMFStreamDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
#define IMFStreamDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
#define IMFStreamDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
#define IMFStreamDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
#define IMFStreamDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
#define IMFStreamDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
#define IMFStreamDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
#define IMFStreamDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
#define IMFStreamDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
#define IMFStreamDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This)
#define IMFStreamDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
#define IMFStreamDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
#define IMFStreamDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
#define IMFStreamDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
/*** IMFStreamDescriptor methods ***/
#define IMFStreamDescriptor_GetStreamIdentifier(This,pdwStreamIdentifier) (This)->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier)
#define IMFStreamDescriptor_GetMediaTypeHandler(This,ppMediaTypeHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFStreamDescriptor_QueryInterface(IMFStreamDescriptor* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFStreamDescriptor_AddRef(IMFStreamDescriptor* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFStreamDescriptor_Release(IMFStreamDescriptor* This) {
return This->lpVtbl->Release(This);
}
/*** IMFAttributes methods ***/
static FORCEINLINE HRESULT IMFStreamDescriptor_GetItem(IMFStreamDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItem(This,guidKey,pValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemType(IMFStreamDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
return This->lpVtbl->GetItemType(This,guidKey,pType);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_CompareItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_Compare(IMFStreamDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *punValue) {
return This->lpVtbl->GetUINT32(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 *punValue) {
return This->lpVtbl->GetUINT64(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double *pfValue) {
return This->lpVtbl->GetDouble(This,guidKey,pfValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetGUID(IMFStreamDescriptor* This,REFGUID guidKey,GUID *pguidValue) {
return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetStringLength(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) {
return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlobSize(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) {
return This->lpVtbl->SetItem(This,guidKey,Value);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteItem(IMFStreamDescriptor* This,REFGUID guidKey) {
return This->lpVtbl->DeleteItem(This,guidKey);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteAllItems(IMFStreamDescriptor* This) {
return This->lpVtbl->DeleteAllItems(This);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 unValue) {
return This->lpVtbl->SetUINT32(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 unValue) {
return This->lpVtbl->SetUINT64(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double fValue) {
return This->lpVtbl->SetDouble(This,guidKey,fValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetGUID(IMFStreamDescriptor* This,REFGUID guidKey,REFGUID guidValue) {
return This->lpVtbl->SetGUID(This,guidKey,guidValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetString(IMFStreamDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) {
return This->lpVtbl->SetString(This,guidKey,wszValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetBlob(IMFStreamDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_SetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) {
return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_LockStore(IMFStreamDescriptor* This) {
return This->lpVtbl->LockStore(This);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_UnlockStore(IMFStreamDescriptor* This) {
return This->lpVtbl->UnlockStore(This);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetCount(IMFStreamDescriptor* This,UINT32 *pcItems) {
return This->lpVtbl->GetCount(This,pcItems);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemByIndex(IMFStreamDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_CopyAllItems(IMFStreamDescriptor* This,IMFAttributes *pDest) {
return This->lpVtbl->CopyAllItems(This,pDest);
}
/*** IMFStreamDescriptor methods ***/
static FORCEINLINE HRESULT IMFStreamDescriptor_GetStreamIdentifier(IMFStreamDescriptor* This,DWORD *pdwStreamIdentifier) {
return This->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier);
}
static FORCEINLINE HRESULT IMFStreamDescriptor_GetMediaTypeHandler(IMFStreamDescriptor* This,IMFMediaTypeHandler **ppMediaTypeHandler) {
return This->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler);
}
#endif
#endif
#endif
#endif /* __IMFStreamDescriptor_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFPresentationDescriptor interface
*/
#ifndef __IMFPresentationDescriptor_INTERFACE_DEFINED__
#define __IMFPresentationDescriptor_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("03cb2711-24d7-4db6-a17f-f3a7a479a536")
IMFPresentationDescriptor : public IMFAttributes
{
virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorCount(
DWORD *pdwDescriptorCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorByIndex(
DWORD dwIndex,
WINBOOL *pfSelected,
IMFStreamDescriptor **ppDescriptor) = 0;
virtual HRESULT STDMETHODCALLTYPE SelectStream(
DWORD dwDescriptorIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE DeselectStream(
DWORD dwDescriptorIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IMFPresentationDescriptor **ppPresentationDescriptor) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36)
#endif
#else
typedef struct IMFPresentationDescriptorVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFPresentationDescriptor *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFPresentationDescriptor *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFPresentationDescriptor *This);
/*** IMFAttributes methods ***/
HRESULT (STDMETHODCALLTYPE *GetItem)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *GetItemType)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
MF_ATTRIBUTE_TYPE *pType);
HRESULT (STDMETHODCALLTYPE *CompareItem)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
REFPROPVARIANT Value,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *Compare)(
IMFPresentationDescriptor *This,
IMFAttributes *pTheirs,
MF_ATTRIBUTES_MATCH_TYPE MatchType,
WINBOOL *pbResult);
HRESULT (STDMETHODCALLTYPE *GetUINT32)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT32 *punValue);
HRESULT (STDMETHODCALLTYPE *GetUINT64)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT64 *punValue);
HRESULT (STDMETHODCALLTYPE *GetDouble)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
double *pfValue);
HRESULT (STDMETHODCALLTYPE *GetGUID)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
GUID *pguidValue);
HRESULT (STDMETHODCALLTYPE *GetStringLength)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetString)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
LPWSTR pwszValue,
UINT32 cchBufSize,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
LPWSTR *ppwszValue,
UINT32 *pcchLength);
HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetBlob)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT8 *pBuf,
UINT32 cbBufSize,
UINT32 *pcbBlobSize);
HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT8 **ppBuf,
UINT32 *pcbSize);
HRESULT (STDMETHODCALLTYPE *GetUnknown)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
REFIID riid,
LPVOID *ppv);
HRESULT (STDMETHODCALLTYPE *SetItem)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
REFPROPVARIANT Value);
HRESULT (STDMETHODCALLTYPE *DeleteItem)(
IMFPresentationDescriptor *This,
REFGUID guidKey);
HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
IMFPresentationDescriptor *This);
HRESULT (STDMETHODCALLTYPE *SetUINT32)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT32 unValue);
HRESULT (STDMETHODCALLTYPE *SetUINT64)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
UINT64 unValue);
HRESULT (STDMETHODCALLTYPE *SetDouble)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
double fValue);
HRESULT (STDMETHODCALLTYPE *SetGUID)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
REFGUID guidValue);
HRESULT (STDMETHODCALLTYPE *SetString)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
LPCWSTR wszValue);
HRESULT (STDMETHODCALLTYPE *SetBlob)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
const UINT8 *pBuf,
UINT32 cbBufSize);
HRESULT (STDMETHODCALLTYPE *SetUnknown)(
IMFPresentationDescriptor *This,
REFGUID guidKey,
IUnknown *pUnknown);
HRESULT (STDMETHODCALLTYPE *LockStore)(
IMFPresentationDescriptor *This);
HRESULT (STDMETHODCALLTYPE *UnlockStore)(
IMFPresentationDescriptor *This);
HRESULT (STDMETHODCALLTYPE *GetCount)(
IMFPresentationDescriptor *This,
UINT32 *pcItems);
HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
IMFPresentationDescriptor *This,
UINT32 unIndex,
GUID *pguidKey,
PROPVARIANT *pValue);
HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
IMFPresentationDescriptor *This,
IMFAttributes *pDest);
/*** IMFPresentationDescriptor methods ***/
HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorCount)(
IMFPresentationDescriptor *This,
DWORD *pdwDescriptorCount);
HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorByIndex)(
IMFPresentationDescriptor *This,
DWORD dwIndex,
WINBOOL *pfSelected,
IMFStreamDescriptor **ppDescriptor);
HRESULT (STDMETHODCALLTYPE *SelectStream)(
IMFPresentationDescriptor *This,
DWORD dwDescriptorIndex);
HRESULT (STDMETHODCALLTYPE *DeselectStream)(
IMFPresentationDescriptor *This,
DWORD dwDescriptorIndex);
HRESULT (STDMETHODCALLTYPE *Clone)(
IMFPresentationDescriptor *This,
IMFPresentationDescriptor **ppPresentationDescriptor);
END_INTERFACE
} IMFPresentationDescriptorVtbl;
interface IMFPresentationDescriptor {
CONST_VTBL IMFPresentationDescriptorVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFPresentationDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFPresentationDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFPresentationDescriptor_Release(This) (This)->lpVtbl->Release(This)
/*** IMFAttributes methods ***/
#define IMFPresentationDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
#define IMFPresentationDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
#define IMFPresentationDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
#define IMFPresentationDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
#define IMFPresentationDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
#define IMFPresentationDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
#define IMFPresentationDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
#define IMFPresentationDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
#define IMFPresentationDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
#define IMFPresentationDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
#define IMFPresentationDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
#define IMFPresentationDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
#define IMFPresentationDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
#define IMFPresentationDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
#define IMFPresentationDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
#define IMFPresentationDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
#define IMFPresentationDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
#define IMFPresentationDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
#define IMFPresentationDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
#define IMFPresentationDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
#define IMFPresentationDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
#define IMFPresentationDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
#define IMFPresentationDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
#define IMFPresentationDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
#define IMFPresentationDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
#define IMFPresentationDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This)
#define IMFPresentationDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
#define IMFPresentationDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
#define IMFPresentationDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
#define IMFPresentationDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
/*** IMFPresentationDescriptor methods ***/
#define IMFPresentationDescriptor_GetStreamDescriptorCount(This,pdwDescriptorCount) (This)->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount)
#define IMFPresentationDescriptor_GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) (This)->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor)
#define IMFPresentationDescriptor_SelectStream(This,dwDescriptorIndex) (This)->lpVtbl->SelectStream(This,dwDescriptorIndex)
#define IMFPresentationDescriptor_DeselectStream(This,dwDescriptorIndex) (This)->lpVtbl->DeselectStream(This,dwDescriptorIndex)
#define IMFPresentationDescriptor_Clone(This,ppPresentationDescriptor) (This)->lpVtbl->Clone(This,ppPresentationDescriptor)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFPresentationDescriptor_QueryInterface(IMFPresentationDescriptor* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFPresentationDescriptor_AddRef(IMFPresentationDescriptor* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFPresentationDescriptor_Release(IMFPresentationDescriptor* This) {
return This->lpVtbl->Release(This);
}
/*** IMFAttributes methods ***/
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItem(IMFPresentationDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItem(This,guidKey,pValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemType(IMFPresentationDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
return This->lpVtbl->GetItemType(This,guidKey,pType);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_CompareItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_Compare(IMFPresentationDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *punValue) {
return This->lpVtbl->GetUINT32(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 *punValue) {
return This->lpVtbl->GetUINT64(This,guidKey,punValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double *pfValue) {
return This->lpVtbl->GetDouble(This,guidKey,pfValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,GUID *pguidValue) {
return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStringLength(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) {
return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlobSize(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) {
return This->lpVtbl->SetItem(This,guidKey,Value);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteItem(IMFPresentationDescriptor* This,REFGUID guidKey) {
return This->lpVtbl->DeleteItem(This,guidKey);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteAllItems(IMFPresentationDescriptor* This) {
return This->lpVtbl->DeleteAllItems(This);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 unValue) {
return This->lpVtbl->SetUINT32(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 unValue) {
return This->lpVtbl->SetUINT64(This,guidKey,unValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double fValue) {
return This->lpVtbl->SetDouble(This,guidKey,fValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,REFGUID guidValue) {
return This->lpVtbl->SetGUID(This,guidKey,guidValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) {
return This->lpVtbl->SetString(This,guidKey,wszValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) {
return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_LockStore(IMFPresentationDescriptor* This) {
return This->lpVtbl->LockStore(This);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_UnlockStore(IMFPresentationDescriptor* This) {
return This->lpVtbl->UnlockStore(This);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetCount(IMFPresentationDescriptor* This,UINT32 *pcItems) {
return This->lpVtbl->GetCount(This,pcItems);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemByIndex(IMFPresentationDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_CopyAllItems(IMFPresentationDescriptor* This,IMFAttributes *pDest) {
return This->lpVtbl->CopyAllItems(This,pDest);
}
/*** IMFPresentationDescriptor methods ***/
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorCount(IMFPresentationDescriptor* This,DWORD *pdwDescriptorCount) {
return This->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorByIndex(IMFPresentationDescriptor* This,DWORD dwIndex,WINBOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) {
return This->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_SelectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) {
return This->lpVtbl->SelectStream(This,dwDescriptorIndex);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_DeselectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) {
return This->lpVtbl->DeselectStream(This,dwDescriptorIndex);
}
static FORCEINLINE HRESULT IMFPresentationDescriptor_Clone(IMFPresentationDescriptor* This,IMFPresentationDescriptor **ppPresentationDescriptor) {
return This->lpVtbl->Clone(This,ppPresentationDescriptor);
}
#endif
#endif
#endif
#endif /* __IMFPresentationDescriptor_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFMediaSource interface
*/
#ifndef __IMFMediaSource_INTERFACE_DEFINED__
#define __IMFMediaSource_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("279a808d-aec7-40c8-9c6b-a6b492c78a66")
IMFMediaSource : public IMFMediaEventGenerator
{
virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
DWORD *pdwCharacteristics) = 0;
virtual HRESULT STDMETHODCALLTYPE CreatePresentationDescriptor(
IMFPresentationDescriptor **ppPresentationDescriptor) = 0;
virtual HRESULT STDMETHODCALLTYPE Start(
IMFPresentationDescriptor *pPresentationDescriptor,
const GUID *pguidTimeFormat,
const PROPVARIANT *pvarStartPosition) = 0;
virtual HRESULT STDMETHODCALLTYPE Stop(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Pause(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown(
) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66)
#endif
#else
typedef struct IMFMediaSourceVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFMediaSource *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFMediaSource *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFMediaSource *This);
/*** IMFMediaEventGenerator methods ***/
HRESULT (STDMETHODCALLTYPE *GetEvent)(
IMFMediaSource *This,
DWORD dwFlags,
IMFMediaEvent **ppEvent);
HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
IMFMediaSource *This,
IMFAsyncCallback *pCallback,
IUnknown *punkState);
HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
IMFMediaSource *This,
IMFAsyncResult *pResult,
IMFMediaEvent **ppEvent);
HRESULT (STDMETHODCALLTYPE *QueueEvent)(
IMFMediaSource *This,
MediaEventType met,
REFGUID guidExtendedType,
HRESULT hrStatus,
const PROPVARIANT *pvValue);
/*** IMFMediaSource methods ***/
HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
IMFMediaSource *This,
DWORD *pdwCharacteristics);
HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)(
IMFMediaSource *This,
IMFPresentationDescriptor **ppPresentationDescriptor);
HRESULT (STDMETHODCALLTYPE *Start)(
IMFMediaSource *This,
IMFPresentationDescriptor *pPresentationDescriptor,
const GUID *pguidTimeFormat,
const PROPVARIANT *pvarStartPosition);
HRESULT (STDMETHODCALLTYPE *Stop)(
IMFMediaSource *This);
HRESULT (STDMETHODCALLTYPE *Pause)(
IMFMediaSource *This);
HRESULT (STDMETHODCALLTYPE *Shutdown)(
IMFMediaSource *This);
END_INTERFACE
} IMFMediaSourceVtbl;
interface IMFMediaSource {
CONST_VTBL IMFMediaSourceVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFMediaSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFMediaSource_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFMediaSource_Release(This) (This)->lpVtbl->Release(This)
/*** IMFMediaEventGenerator methods ***/
#define IMFMediaSource_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
#define IMFMediaSource_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
#define IMFMediaSource_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
#define IMFMediaSource_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
/*** IMFMediaSource methods ***/
#define IMFMediaSource_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
#define IMFMediaSource_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor)
#define IMFMediaSource_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition)
#define IMFMediaSource_Stop(This) (This)->lpVtbl->Stop(This)
#define IMFMediaSource_Pause(This) (This)->lpVtbl->Pause(This)
#define IMFMediaSource_Shutdown(This) (This)->lpVtbl->Shutdown(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFMediaSource_QueryInterface(IMFMediaSource* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFMediaSource_AddRef(IMFMediaSource* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFMediaSource_Release(IMFMediaSource* This) {
return This->lpVtbl->Release(This);
}
/*** IMFMediaEventGenerator methods ***/
static FORCEINLINE HRESULT IMFMediaSource_GetEvent(IMFMediaSource* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
}
static FORCEINLINE HRESULT IMFMediaSource_BeginGetEvent(IMFMediaSource* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
}
static FORCEINLINE HRESULT IMFMediaSource_EndGetEvent(IMFMediaSource* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
}
static FORCEINLINE HRESULT IMFMediaSource_QueueEvent(IMFMediaSource* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
}
/*** IMFMediaSource methods ***/
static FORCEINLINE HRESULT IMFMediaSource_GetCharacteristics(IMFMediaSource* This,DWORD *pdwCharacteristics) {
return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
}
static FORCEINLINE HRESULT IMFMediaSource_CreatePresentationDescriptor(IMFMediaSource* This,IMFPresentationDescriptor **ppPresentationDescriptor) {
return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor);
}
static FORCEINLINE HRESULT IMFMediaSource_Start(IMFMediaSource* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) {
return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition);
}
static FORCEINLINE HRESULT IMFMediaSource_Stop(IMFMediaSource* This) {
return This->lpVtbl->Stop(This);
}
static FORCEINLINE HRESULT IMFMediaSource_Pause(IMFMediaSource* This) {
return This->lpVtbl->Pause(This);
}
static FORCEINLINE HRESULT IMFMediaSource_Shutdown(IMFMediaSource* This) {
return This->lpVtbl->Shutdown(This);
}
#endif
#endif
#endif
HRESULT STDMETHODCALLTYPE IMFMediaSource_RemoteCreatePresentationDescriptor_Proxy(
IMFMediaSource* This,
DWORD *pcbPD,
BYTE **pbPD,
IMFPresentationDescriptor **ppRemotePD);
void __RPC_STUB IMFMediaSource_RemoteCreatePresentationDescriptor_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMFMediaSource_CreatePresentationDescriptor_Proxy(
IMFMediaSource* This,
IMFPresentationDescriptor **ppPresentationDescriptor);
HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub(
IMFMediaSource* This,
DWORD *pcbPD,
BYTE **pbPD,
IMFPresentationDescriptor **ppRemotePD);
#endif /* __IMFMediaSource_INTERFACE_DEFINED__ */
typedef struct _MF_LEAKY_BUCKET_PAIR {
DWORD dwBitrate;
DWORD msBufferWindow;
} MF_LEAKY_BUCKET_PAIR;
typedef struct _MFBYTESTREAM_BUFFERING_PARAMS {
QWORD cbTotalFileSize;
QWORD cbPlayableDataSize;
MF_LEAKY_BUCKET_PAIR *prgBuckets;
DWORD cBuckets;
QWORD qwNetBufferingTime;
QWORD qwExtraBufferingTimeDuringSeek;
QWORD qwPlayDuration;
float dRate;
} MFBYTESTREAM_BUFFERING_PARAMS;
/*****************************************************************************
* IMFByteStreamBuffering interface
*/
#ifndef __IMFByteStreamBuffering_INTERFACE_DEFINED__
#define __IMFByteStreamBuffering_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e")
IMFByteStreamBuffering : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetBufferingParams(
MFBYTESTREAM_BUFFERING_PARAMS *pParams) = 0;
virtual HRESULT STDMETHODCALLTYPE EnableBuffering(
WINBOOL fEnable) = 0;
virtual HRESULT STDMETHODCALLTYPE StopBuffering(
) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e)
#endif
#else
typedef struct IMFByteStreamBufferingVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFByteStreamBuffering *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFByteStreamBuffering *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFByteStreamBuffering *This);
/*** IMFByteStreamBuffering methods ***/
HRESULT (STDMETHODCALLTYPE *SetBufferingParams)(
IMFByteStreamBuffering *This,
MFBYTESTREAM_BUFFERING_PARAMS *pParams);
HRESULT (STDMETHODCALLTYPE *EnableBuffering)(
IMFByteStreamBuffering *This,
WINBOOL fEnable);
HRESULT (STDMETHODCALLTYPE *StopBuffering)(
IMFByteStreamBuffering *This);
END_INTERFACE
} IMFByteStreamBufferingVtbl;
interface IMFByteStreamBuffering {
CONST_VTBL IMFByteStreamBufferingVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFByteStreamBuffering_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFByteStreamBuffering_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFByteStreamBuffering_Release(This) (This)->lpVtbl->Release(This)
/*** IMFByteStreamBuffering methods ***/
#define IMFByteStreamBuffering_SetBufferingParams(This,pParams) (This)->lpVtbl->SetBufferingParams(This,pParams)
#define IMFByteStreamBuffering_EnableBuffering(This,fEnable) (This)->lpVtbl->EnableBuffering(This,fEnable)
#define IMFByteStreamBuffering_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFByteStreamBuffering_QueryInterface(IMFByteStreamBuffering* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFByteStreamBuffering_AddRef(IMFByteStreamBuffering* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFByteStreamBuffering_Release(IMFByteStreamBuffering* This) {
return This->lpVtbl->Release(This);
}
/*** IMFByteStreamBuffering methods ***/
static FORCEINLINE HRESULT IMFByteStreamBuffering_SetBufferingParams(IMFByteStreamBuffering* This,MFBYTESTREAM_BUFFERING_PARAMS *pParams) {
return This->lpVtbl->SetBufferingParams(This,pParams);
}
static FORCEINLINE HRESULT IMFByteStreamBuffering_EnableBuffering(IMFByteStreamBuffering* This,WINBOOL fEnable) {
return This->lpVtbl->EnableBuffering(This,fEnable);
}
static FORCEINLINE HRESULT IMFByteStreamBuffering_StopBuffering(IMFByteStreamBuffering* This) {
return This->lpVtbl->StopBuffering(This);
}
#endif
#endif
#endif
#endif /* __IMFByteStreamBuffering_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMFClockStateSink interface
*/
#ifndef __IMFClockStateSink_INTERFACE_DEFINED__
#define __IMFClockStateSink_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("f6696e82-74f7-4f3d-a178-8a5e09c3659f")
IMFClockStateSink : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE OnClockStart(
MFTIME hnsSystemTime,
LONGLONG llClockStartOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE OnClockStop(
MFTIME hnsSystemTime) = 0;
virtual HRESULT STDMETHODCALLTYPE OnClockPause(
MFTIME hnsSystemTime) = 0;
virtual HRESULT STDMETHODCALLTYPE OnClockRestart(
MFTIME hnsSystemTime) = 0;
virtual HRESULT STDMETHODCALLTYPE OnClockSetRate(
MFTIME hnsSystemTime,
float flRate) = 0;
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f)
#endif
#else
typedef struct IMFClockStateSinkVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMFClockStateSink *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMFClockStateSink *This);
ULONG (STDMETHODCALLTYPE *Release)(
IMFClockStateSink *This);
/*** IMFClockStateSink methods ***/
HRESULT (STDMETHODCALLTYPE *OnClockStart)(
IMFClockStateSink *This,
MFTIME hnsSystemTime,
LONGLONG llClockStartOffset);
HRESULT (STDMETHODCALLTYPE *OnClockStop)(
IMFClockStateSink *This,
MFTIME hnsSystemTime);
HRESULT (STDMETHODCALLTYPE *OnClockPause)(
IMFClockStateSink *This,
MFTIME hnsSystemTime);
HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
IMFClockStateSink *This,
MFTIME hnsSystemTime);
HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
IMFClockStateSink *This,
MFTIME hnsSystemTime,
float flRate);
END_INTERFACE
} IMFClockStateSinkVtbl;
interface IMFClockStateSink {
CONST_VTBL IMFClockStateSinkVtbl* lpVtbl;
};
#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IMFClockStateSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMFClockStateSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMFClockStateSink_Release(This) (This)->lpVtbl->Release(This)
/*** IMFClockStateSink methods ***/
#define IMFClockStateSink_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
#define IMFClockStateSink_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
#define IMFClockStateSink_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
#define IMFClockStateSink_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
#define IMFClockStateSink_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IMFClockStateSink_QueryInterface(IMFClockStateSink* This,REFIID riid,void **ppvObject) {
return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IMFClockStateSink_AddRef(IMFClockStateSink* This) {
return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IMFClockStateSink_Release(IMFClockStateSink* This) {
return This->lpVtbl->Release(This);
}
/*** IMFClockStateSink methods ***/
static FORCEINLINE HRESULT IMFClockStateSink_OnClockStart(IMFClockStateSink* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
}
static FORCEINLINE HRESULT IMFClockStateSink_OnClockStop(IMFClockStateSink* This,MFTIME hnsSystemTime) {
return This->lpVtbl->OnClockStop(This,hnsSystemTime);
}
static FORCEINLINE HRESULT IMFClockStateSink_OnClockPause(IMFClockStateSink* This,MFTIME hnsSystemTime) {
return This->lpVtbl->OnClockPause(This,hnsSystemTime);
}
static FORCEINLINE HRESULT IMFClockStateSink_OnClockRestart(IMFClockStateSink* This,MFTIME hnsSystemTime) {
return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
}
static FORCEINLINE HRESULT IMFClockStateSink_OnClockSetRate(IMFClockStateSink* This,MFTIME hnsSystemTime,float flRate) {
return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
}
#endif
#endif
#endif
#endif /* __IMFClockStateSink_INTERFACE_DEFINED__ */
HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);
HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);
typedef DWORD MFSequencerElementId;
typedef enum _MFCLOCK_CHARACTERISTICS_FLAGS {
MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2,
MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4,
MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8
} MFCLOCK_CHARACTERISTICS_FLAGS;
#if (WINVER >= 0x0601)
typedef enum _MF_QUALITY_ADVISE_FLAGS {
MF_QUALITY_CANNOT_KEEP_UP = 0x1
} MF_QUALITY_ADVISE_FLAGS;
#endif /*(WINVER >= 0x0601)*/
typedef enum _MF_QUALITY_DROP_MODE {
MF_DROP_MODE_NONE = 0x0,
MF_DROP_MODE_1 = 0x1,
MF_DROP_MODE_2 = 0x2,
MF_DROP_MODE_3 = 0x3,
MF_DROP_MODE_4 = 0x4,
MF_DROP_MODE_5 = 0x5,
MF_NUM_DROP_MODES = 0x6
} MF_QUALITY_DROP_MODE;
typedef enum _MF_QUALITY_LEVEL {
MF_QUALITY_NORMAL = 0x0,
MF_QUALITY_NORMAL_MINUS_1 = 0x1,
MF_QUALITY_NORMAL_MINUS_2 = 0x2,
MF_QUALITY_NORMAL_MINUS_3 = 0x3,
MF_QUALITY_NORMAL_MINUS_4 = 0x4,
MF_QUALITY_NORMAL_MINUS_5 = 0x5,
MF_NUM_QUALITY_LEVELS = 0x6
} MF_QUALITY_LEVEL;
typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS {
MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x0,
MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x1,
MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x2
} MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;
typedef enum _MF_TOPONODE_DRAIN_MODE {
MF_TOPONODE_DRAIN_DEFAULT = 0,
MF_TOPONODE_DRAIN_ALWAYS = 1,
MF_TOPONODE_DRAIN_NEVER = 2
} MF_TOPONODE_DRAIN_MODE;
typedef enum _MF_TOPONODE_FLUSH_MODE {
MF_TOPONODE_FLUSH_ALWAYS = 0,
MF_TOPONODE_FLUSH_SEEK = 1,
MF_TOPONODE_FLUSH_NEVER = 2
} MF_TOPONODE_FLUSH_MODE;
#if (WINVER >= 0x0601)
typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS {
MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,
MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
#endif
typedef enum __WIDL_mfidl_generated_name_0000002E {
MF_LICENSE_URL_UNTRUSTED = 0,
MF_LICENSE_URL_TRUSTED = 1,
MF_LICENSE_URL_TAMPERED = 2
} MF_URL_TRUST_STATUS;
typedef enum _MFCLOCK_RELATIONAL_FLAGS {
MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1
} MFCLOCK_RELATIONAL_FLAGS;
typedef enum _MFMEDIASOURCE_CHARACTERISTICS {
MFMEDIASOURCE_IS_LIVE = 0x1,
MFMEDIASOURCE_CAN_SEEK = 0x2,
MFMEDIASOURCE_CAN_PAUSE = 0x4,
MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8,
MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,
MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20,
MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40
} MFMEDIASOURCE_CHARACTERISTICS;
typedef enum _MFNET_PROXYSETTINGS {
MFNET_PROXYSETTING_NONE = 0,
MFNET_PROXYSETTING_MANUAL = 1,
MFNET_PROXYSETTING_AUTO = 2,
MFNET_PROXYSETTING_BROWSER = 3
} MFNET_PROXYSETTINGS;
typedef enum _MFNetAuthenticationFlags {
MFNET_AUTHENTICATION_PROXY = 0x1,
MFNET_AUTHENTICATION_CLEAR_TEXT = 0x2,
MFNET_AUTHENTICATION_LOGGED_ON_USER = 0x4
} MFNetAuthenticationFlags;
typedef enum _MFNetCredentialOptions {
MFNET_CREDENTIAL_SAVE = 0x1,
MFNET_CREDENTIAL_DONT_CACHE = 0x2,
MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x4
} MFNetCredentialOptions;
typedef enum _MFNetCredentialRequirements {
REQUIRE_PROMPT = 0x1,
REQUIRE_SAVE_SELECTED = 0x2
} MFNetCredentialRequirements;
typedef enum _MFNETSOURCE_CACHE_STATE {
MFNETSOURCE_CACHE_UNAVAILABLE = 0,
MFNETSOURCE_CACHE_ACTIVE_WRITING = 1,
MFNETSOURCE_CACHE_ACTIVE_COMPLETE = 2
} MFNETSOURCE_CACHE_STATE;
typedef enum _MFNETSOURCE_PROTOCOL_TYPE {
MFNETSOURCE_UNDEFINED = 0x0,
MFNETSOURCE_HTTP = 0x1,
MFNETSOURCE_RTSP = 0x2,
MFNETSOURCE_FILE = 0x3,
MFNETSOURCE_MULTICAST = 0x4
} MFNETSOURCE_PROTOCOL_TYPE;
typedef enum _MFNETSOURCE_STATISTICS_IDS {
MFNETSOURCE_RECVPACKETS_ID = 0,
MFNETSOURCE_LOSTPACKETS_ID = 1,
MFNETSOURCE_RESENDSREQUESTED_ID = 2,
MFNETSOURCE_RESENDSRECEIVED_ID = 3,
MFNETSOURCE_RECOVEREDBYECCPACKETS_ID = 4,
MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID = 5,
MFNETSOURCE_OUTPACKETS_ID = 6,
MFNETSOURCE_RECVRATE_ID = 7,
MFNETSOURCE_AVGBANDWIDTHBPS_ID = 8,
MFNETSOURCE_BYTESRECEIVED_ID = 9,
MFNETSOURCE_PROTOCOL_ID = 10,
MFNETSOURCE_TRANSPORT_ID = 11,
MFNETSOURCE_CACHE_STATE_ID = 12,
MFNETSOURCE_LINKBANDWIDTH_ID = 13,
MFNETSOURCE_CONTENTBITRATE_ID = 14,
MFNETSOURCE_SPEEDFACTOR_ID = 15,
MFNETSOURCE_BUFFERSIZE_ID = 16,
MFNETSOURCE_BUFFERPROGRESS_ID = 17,
MFNETSOURCE_LASTBWSWITCHTS_ID = 18,
MFNETSOURCE_SEEKRANGESTART_ID = 19,
MFNETSOURCE_SEEKRANGEEND_ID = 20,
MFNETSOURCE_BUFFERINGCOUNT_ID = 21,
MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID = 22,
MFNETSOURCE_SIGNEDSESSION_ID = 23,
MFNETSOURCE_MAXBITRATE_ID = 24,
MFNETSOURCE_RECEPTION_QUALITY_ID = 25,
MFNETSOURCE_RECOVEREDPACKETS_ID = 26,
MFNETSOURCE_VBR_ID = 27,
MFNETSOURCE_DOWNLOADPROGRESS_ID = 28
} MFNETSOURCE_STATISTICS_IDS;
typedef enum _MFNETSOURCE_TRANSPORT_TYPE {
MFNETSOURCE_UDP = 0,
MFNETSOURCE_TCP = 1
} MFNETSOURCE_TRANSPORT_TYPE;
typedef enum MF_OBJECT_TYPE {
MF_OBJECT_MEDIASOURCE = 0,
MF_OBJECT_BYTESTREAM = 1,
MF_OBJECT_INVALID = 2
} MF_OBJECT_TYPE;
typedef enum _MFPOLICYMANAGER_ACTION {
PEACTION_NO = 0,
PEACTION_PLAY = 1,
PEACTION_COPY = 2,
PEACTION_EXPORT = 3,
PEACTION_EXTRACT = 4,
PEACTION_RESERVED1 = 5,
PEACTION_RESERVED2 = 6,
PEACTION_RESERVED3 = 7,
PEACTION_LAST = 7
} MFPOLICYMANAGER_ACTION;
typedef enum _MFRATE_DIRECTION {
MFRATE_FORWARD = 0,
MFRATE_REVERSE = 1
} MFRATE_DIRECTION;
typedef enum _MFSequencerTopologyFlags {
SequencerTopologyFlags_Last = 0x1
} MFSequencerTopologyFlags;
typedef enum _MFSHUTDOWN_STATUS {
MFSHUTDOWN_INITIATED = 0,
MFSHUTDOWN_COMPLETED = 1
} MFSHUTDOWN_STATUS;
typedef enum MFSTREAMSINK_MARKER_TYPE {
MFSTREAMSINK_MARKER_DEFAULT = 0,
MFSTREAMSINK_MARKER_ENDOFSEGMENT = 1,
MFSTREAMSINK_MARKER_TICK = 2,
MFSTREAMSINK_MARKER_EVENT = 3
} MFSTREAMSINK_MARKER_TYPE;
typedef enum MFTIMER_FLAGS {
MFTIMER_RELATIVE = 0x1
} MFTIMER_FLAGS;
#if (WINVER >= 0x0601)
typedef enum MFTOPOLOGY_DXVA_MODE {
MFTOPOLOGY_DXVA_DEFAULT = 0,
MFTOPOLOGY_DXVA_NONE = 1,
MFTOPOLOGY_DXVA_FULL = 2
} MFTOPOLOGY_DXVA_MODE;
typedef enum MFTOPOLOGY_HARDWARE_MODE {
MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,
MFTOPOLOGY_HWMODE_USE_HARDWARE = 1
} MFTOPOLOGY_HARDWARE_MODE;
typedef struct _MFT_REGISTRATION_INFO {
CLSID clsid;
GUID guidCategory;
UINT32 uiFlags;
LPCWSTR pszName;
DWORD cInTypes;
MFT_REGISTER_TYPE_INFO *pInTypes;
DWORD cOutTypes;
MFT_REGISTER_TYPE_INFO *pOutTypes;
} MFT_REGISTRATION_INFO;
#endif /*(WINVER >= 0x0601)*/
typedef struct _ASFFlatPicture {
BYTE bPictureType;
DWORD dwDataLen;
} ASF_FLAT_PICTURE;
typedef struct _ASFFlatSynchronisedLyrics {
BYTE bTimeStampFormat;
BYTE bContentType;
DWORD dwLyricsLen;
} ASF_FLAT_SYNCHRONISED_LYRICS;
typedef enum SAMPLE_PROTECTION_VERSION {
SAMPLE_PROTECTION_VERSION_NO = 0,
SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,
SAMPLE_PROTECTION_VERSION_SCATTER = 2,
SAMPLE_PROTECTION_VERSION_RC4 = 3
} SAMPLE_PROTECTION_VERSION;
typedef struct _MFINPUTTRUSTAUTHORITY_ACTION {
MFPOLICYMANAGER_ACTION Action;
BYTE *pbTicket;
DWORD cbTicket;
} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;
typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS {
DWORD dwSize;
DWORD dwVer;
DWORD cbSignatureOffset;
DWORD cbSignatureSize;
DWORD cbExtensionOffset;
DWORD cbExtensionSize;
DWORD cActions;
MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];
} MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;
typedef struct _MFNetCredentialManagerGetParam {
HRESULT hrOp;
WINBOOL fAllowLoggedOnUser;
WINBOOL fClearTextPackage;
LPCWSTR pszUrl;
LPCWSTR pszSite;
LPCWSTR pszRealm;
LPCWSTR pszPackage;
LONG nRetries;
} MFNetCredentialManagerGetParam;
#define MEDIASINK_FIXED_STREAMS 0x00000001
#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002
#define MEDIASINK_RATELESS 0x00000004
#define MEDIASINK_CLOCK_REQUIRED 0x00000008
#define MEDIASINK_CAN_PREROLL 0x00000010
#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020
enum {
MF_RESOLUTION_MEDIASOURCE = 0x1,
MF_RESOLUTION_BYTESTREAM = 0x2,
MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 0x10,
MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL = 0x20,
MF_RESOLUTION_READ = 0x10000,
MF_RESOLUTION_WRITE = 0x20000
};
#ifndef __IMFMediaSink_FWD_DEFINED__
#define __IMFMediaSink_FWD_DEFINED__
typedef interface IMFMediaSink IMFMediaSink;
#ifdef __cplusplus
interface IMFMediaSink;
#endif /* __cplusplus */
#endif
#ifndef __IMFASFContentInfo_FWD_DEFINED__
#define __IMFASFContentInfo_FWD_DEFINED__
typedef interface IMFASFContentInfo IMFASFContentInfo;
#ifdef __cplusplus
interface IMFASFContentInfo;
#endif /* __cplusplus */
#endif
#ifndef __IMFASFIndexer_FWD_DEFINED__
#define __IMFASFIndexer_FWD_DEFINED__
typedef interface IMFASFIndexer IMFASFIndexer;
#ifdef __cplusplus
interface IMFASFIndexer;
#endif /* __cplusplus */
#endif
#ifndef __IMFASFMultiplexer_FWD_DEFINED__
#define __IMFASFMultiplexer_FWD_DEFINED__
typedef interface IMFASFMultiplexer IMFASFMultiplexer;
#ifdef __cplusplus
interface IMFASFMultiplexer;
#endif /* __cplusplus */
#endif
#ifndef __IMFASFProfile_FWD_DEFINED__
#define __IMFASFProfile_FWD_DEFINED__
typedef interface IMFASFProfile IMFASFProfile;
#ifdef __cplusplus
interface IMFASFProfile;
#endif /* __cplusplus */
#endif
#ifndef __IMFASFSplitter_FWD_DEFINED__
#define __IMFASFSplitter_FWD_DEFINED__
typedef interface IMFASFSplitter IMFASFSplitter;
#ifdef __cplusplus
interface IMFASFSplitter;
#endif /* __cplusplus */
#endif
#ifndef __IMFPMPServer_FWD_DEFINED__
#define __IMFPMPServer_FWD_DEFINED__
typedef interface IMFPMPServer IMFPMPServer;
#ifdef __cplusplus
interface IMFPMPServer;
#endif /* __cplusplus */
#endif
#ifndef __IMFPresentationClock_FWD_DEFINED__
#define __IMFPresentationClock_FWD_DEFINED__
typedef interface IMFPresentationClock IMFPresentationClock;
#ifdef __cplusplus
interface IMFPresentationClock;
#endif /* __cplusplus */
#endif
#ifndef __IMFNetProxyLocator_FWD_DEFINED__
#define __IMFNetProxyLocator_FWD_DEFINED__
typedef interface IMFNetProxyLocator IMFNetProxyLocator;
#ifdef __cplusplus
interface IMFNetProxyLocator;
#endif /* __cplusplus */
#endif
#ifndef __IMFRemoteDesktopPlugin_FWD_DEFINED__
#define __IMFRemoteDesktopPlugin_FWD_DEFINED__
typedef interface IMFRemoteDesktopPlugin IMFRemoteDesktopPlugin;
#ifdef __cplusplus
interface IMFRemoteDesktopPlugin;
#endif /* __cplusplus */
#endif
#ifndef __IMFTransform_FWD_DEFINED__
#define __IMFTransform_FWD_DEFINED__
typedef interface IMFTransform IMFTransform;
#ifdef __cplusplus
interface IMFTransform;
#endif /* __cplusplus */
#endif
#ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__
#define __IMFSampleGrabberSinkCallback_FWD_DEFINED__
typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback;
#ifdef __cplusplus
interface IMFSampleGrabberSinkCallback;
#endif /* __cplusplus */
#endif
#ifndef __IMFSequencerSource_FWD_DEFINED__
#define __IMFSequencerSource_FWD_DEFINED__
typedef interface IMFSequencerSource IMFSequencerSource;
#ifdef __cplusplus
interface IMFSequencerSource;
#endif /* __cplusplus */
#endif
#ifndef __IMFQualityManager_FWD_DEFINED__
#define __IMFQualityManager_FWD_DEFINED__
typedef interface IMFQualityManager IMFQualityManager;
#ifdef __cplusplus
interface IMFQualityManager;
#endif /* __cplusplus */
#endif
#ifndef __IMFSourceResolver_FWD_DEFINED__
#define __IMFSourceResolver_FWD_DEFINED__
typedef interface IMFSourceResolver IMFSourceResolver;
#ifdef __cplusplus
interface IMFSourceResolver;
#endif /* __cplusplus */
#endif
#ifndef __IMFPresentationTimeSource_FWD_DEFINED__
#define __IMFPresentationTimeSource_FWD_DEFINED__
typedef interface IMFPresentationTimeSource IMFPresentationTimeSource;
#ifdef __cplusplus
interface IMFPresentationTimeSource;
#endif /* __cplusplus */
#endif
#ifndef __IMFTopoLoader_FWD_DEFINED__
#define __IMFTopoLoader_FWD_DEFINED__
typedef interface IMFTopoLoader IMFTopoLoader;
#ifdef __cplusplus
interface IMFTopoLoader;
#endif /* __cplusplus */
#endif
#ifndef __IMFTranscodeProfile_FWD_DEFINED__
#define __IMFTranscodeProfile_FWD_DEFINED__
typedef interface IMFTranscodeProfile IMFTranscodeProfile;
#ifdef __cplusplus
interface IMFTranscodeProfile;
#endif /* __cplusplus */
#endif
HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);
HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);
HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);
HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);
HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);
HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);
HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);
HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);
HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);
HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);
HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);
HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);
HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);
HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);
HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);
HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);
HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);
HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);
HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);
HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);
HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);
HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);
HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);
HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);
HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);
HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);
HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);
HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);
HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);
HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);
HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);
HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);
HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);
HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);
MFTIME WINAPI MFGetSystemTime(void);
HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);
HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);
HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);
#if (WINVER >= 0x0601)
HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);
HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);
HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);
HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);
HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);
HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);
#endif
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);
EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);
/* Begin additional prototypes for all interfaces */
ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
/* End additional prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __mfidl_h__ */