Transscript wmcontainer to IDL and verify interfaces git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6509 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index f5a39c1..2a74658 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am
@@ -116,6 +116,7 @@ include/wbemcli.idl \ include/wdstptmgmt.idl \ include/wincodec.idl \ + include/wmcontainer.idl \ include/wmsbuffer.idl \ include/wmsdkidl.idl \ include/wtypesbase.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in index cfb6c10..62b4a5b 100644 --- a/mingw-w64-headers/Makefile.in +++ b/mingw-w64-headers/Makefile.in
@@ -340,6 +340,7 @@ @HAVE_WIDL_TRUE@ include/wbemcli.idl \ @HAVE_WIDL_TRUE@ include/wdstptmgmt.idl \ @HAVE_WIDL_TRUE@ include/wincodec.idl \ +@HAVE_WIDL_TRUE@ include/wmcontainer.idl \ @HAVE_WIDL_TRUE@ include/wmsbuffer.idl \ @HAVE_WIDL_TRUE@ include/wmsdkidl.idl \ @HAVE_WIDL_TRUE@ include/wtypesbase.idl \
diff --git a/mingw-w64-headers/include/wmcontainer.h b/mingw-w64-headers/include/wmcontainer.h index c50854c..8579f2c 100644 --- a/mingw-w64-headers/include/wmcontainer.h +++ b/mingw-w64-headers/include/wmcontainer.h
@@ -1,633 +1,3425 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_WMCONTAINER -#define _INC_WMCONTAINER -#include <propsys.h> -#include <mfidl.h> +/*** Autogenerated by WIDL 1.6 from wmcontainer.idl - Do not edit ***/ -#if (_WIN32_WINNT >= 0x0600) +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif -#ifdef __IMFASFSplitter_FWD_DEFINED__ +#include <rpc.h> +#include <rpcndr.h> + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __wmcontainer_h__ +#define __wmcontainer_h__ + +/* Forward declarations */ + +#ifndef __IMFASFContentInfo_FWD_DEFINED__ +#define __IMFASFContentInfo_FWD_DEFINED__ +typedef interface IMFASFContentInfo IMFASFContentInfo; +#endif + +#ifndef __IMFASFMutualExclusion_FWD_DEFINED__ +#define __IMFASFMutualExclusion_FWD_DEFINED__ +typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; +#endif + +#ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ +#define __IMFASFStreamPrioritization_FWD_DEFINED__ +typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; +#endif + +#ifndef __IMFASFSplitter_FWD_DEFINED__ #define __IMFASFSplitter_FWD_DEFINED__ -typedef struct IMFASFSplitter IMFASFSplitter; +typedef interface IMFASFSplitter IMFASFSplitter; #endif -typedef struct IMFASFContentInfo IMFASFContentInfo; -typedef struct IMFASFProfile IMFASFProfile; -typedef struct IMFActivate IMFActivate; - -#ifndef __MFTIME_DEFINED__ -#define __MFTIME_DEFINED__ -__MINGW_EXTENSION typedef LONGLONG MFTIME; +#ifndef __IMFASFMultiplexer_FWD_DEFINED__ +#define __IMFASFMultiplexer_FWD_DEFINED__ +typedef interface IMFASFMultiplexer IMFASFMultiplexer; #endif -typedef enum ASF_SELECTION_STATUS { - ASF_STATUS_NOTSELECTED = 0, - ASF_STATUS_CLEANPOINTSONLY = 1, - ASF_STATUS_ALLDATAUNITS = 2 -} ASF_SELECTION_STATUS; - -typedef enum ASF_STATUSFLAGS { - ASF_STATUSFLAGS_INCOMPLETE = 0x00000001, - ASF_STATUSFLAGS_NONFATAL_ERROR = 0x00000002 -} ASF_STATUSFLAGS; - -typedef enum MFASF_MULTIPLEXERFLAGS { - MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x00000001 -} MFASF_MULTIPLEXERFLAGS; - -typedef enum MFASF_SPLITTERFLAGS { - MFASF_SPLITTER_REVERSE = 0x00000001, - MFASF_SPLITTER_WMDRM = 0x00000002 -} MFASF_SPLITTERFLAGS; - -typedef enum MFASF_STREAMSELECTORFLAGS { - MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x00000001, - MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x00000002 -} MFASF_STREAMSELECTORFLAGS; - -typedef struct ASF_MUX_STATISTICS { - DWORD cFramesWritten; - DWORD cFramesDropped; -} ASF_MUX_STATISTICS; - -typedef struct _ASF_INDEX_IDENTIFIER { - GUID guidIndexType; - WORD wStreamNumber; -} ASF_INDEX_IDENTIFIER; - -typedef struct _ASF_INDEX_DESCRIPTOR { - ASF_INDEX_IDENTIFIER Identifier; - WORD cPerEntryBytes; - WCHAR szDescription[32]; - DWORD dwInterval; -} ASF_INDEX_DESCRIPTOR; - -#undef INTERFACE -#define INTERFACE IMFASFMutualExclusion -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifndef __IMFASFIndexer_FWD_DEFINED__ +#define __IMFASFIndexer_FWD_DEFINED__ +typedef interface IMFASFIndexer IMFASFIndexer; #endif -DECLARE_INTERFACE_(IMFASFMutualExclusion,IUnknown) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFASFMutualExclusion methods */ - STDMETHOD_(HRESULT,AddRecord)(THIS_ DWORD *pdwRecordNumber) PURE; - STDMETHOD_(HRESULT,AddStreamForRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE; - STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE; - STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *pdwRecordCount) PURE; - STDMETHOD_(HRESULT,GetStreamsForRecord)(THIS_ DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) PURE; - STDMETHOD_(HRESULT,GetType)(THIS_ GUID *pguidType) PURE; - STDMETHOD_(HRESULT,RemoveRecord)(THIS_ DWORD dwRecordNumber) PURE; - STDMETHOD_(HRESULT,RemoveStreamFromRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE; - STDMETHOD_(HRESULT,SetType)(THIS_ REFGUID guidType) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber) -#define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber) -#define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex) -#define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount) -#define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) -#define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) -#define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber) -#define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) -#define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFStreamPrioritization -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifndef __IMFASFStreamSelector_FWD_DEFINED__ +#define __IMFASFStreamSelector_FWD_DEFINED__ +typedef interface IMFASFStreamSelector IMFASFStreamSelector; #endif -DECLARE_INTERFACE_(IMFASFStreamPrioritization,IUnknown) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFASFStreamPrioritization methods */ - STDMETHOD_(HRESULT,AddStream)(THIS_ WORD wStreamNumber,WORD wStreamFlags) PURE; - STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; - STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) PURE; - STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD dwStreamIndex) PURE; - STDMETHOD_(HRESULT,RemoveStream)(THIS_ DWORD dwStreamIndex) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags) -#define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization) -#define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) -#define IMFASFStreamPrioritization_GetStreamCount(This,dwStreamIndex) (This)->lpVtbl->GetStreamCount(This,dwStreamIndex) -#define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex) -#endif /*COBJMACROS*/ - - -#undef INTERFACE -#define INTERFACE IMFASFSplitter -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifndef __IMFDRMNetHelper_FWD_DEFINED__ +#define __IMFDRMNetHelper_FWD_DEFINED__ +typedef interface IMFDRMNetHelper IMFDRMNetHelper; #endif -DECLARE_INTERFACE_(IMFASFSplitter,IUnknown) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFASFSplitter methods */ - STDMETHOD_(HRESULT,Flush)(THIS) PURE; - STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; - STDMETHOD_(HRESULT,GetLastSendTime)(THIS_ DWORD *pdwLastSendTime) PURE; - STDMETHOD_(HRESULT,GetNextSample)(THIS_ DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) PURE; - STDMETHOD_(HRESULT,GetSelectedStreams)(THIS_ WORD *pwStreamNumbers,WORD *pwNumStreams) PURE; - STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; - STDMETHOD_(HRESULT,ParseData)(THIS_ IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) PURE; - STDMETHOD_(HRESULT,SelectStreams)(THIS_ WORD *pwStreamNumbers,WORD wNumStreams) PURE; - STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFSplitter_Flush() (This)->lpVtbl->Flush(This) -#define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) -#define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime) -#define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) -#define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) -#define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) -#define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength) -#define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams) -#define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFContentInfo -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifndef __IMFASFProfile_FWD_DEFINED__ +#define __IMFASFProfile_FWD_DEFINED__ +typedef interface IMFASFProfile IMFASFProfile; #endif -DECLARE_INTERFACE_(IMFASFContentInfo,IMFAttributes) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFAttributes methods */ - STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; - STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; - STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; - STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; - STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; - STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; - STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; - STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; - STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; - STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; - STDMETHOD_(HRESULT,LockStore)(THIS) PURE; - STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; - STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; - STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; - STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; - STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; - STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; - STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; - STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; - STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; - - /* IMFASFContentInfo methods */ - STDMETHOD_(HRESULT,GenerateHeader)(THIS_ IMFMediaBuffer *pIHeader,DWORD *pcbHeader) PURE; - STDMETHOD_(HRESULT,GeneratePresentationDescriptor)(THIS_ IMFPresentationDescriptor **ppIPresentationDescriptor) PURE; - STDMETHOD_(HRESULT,GetEncodingConfigurationPropertyStore)(THIS_ WORD wStreamNumber,IPropertyStore **ppIStore) PURE; - STDMETHOD_(HRESULT,GetHeaderSize)(THIS_ IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) PURE; - STDMETHOD_(HRESULT,GetProfile)(THIS_ IMFASFProfile **ppIProfile) PURE; - STDMETHOD_(HRESULT,ParseHeader)(THIS_ IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) PURE; - STDMETHOD_(HRESULT,SetProfile)(THIS_ IMFASFProfile *pIProfile) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFContentInfo_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) -#define IMFASFContentInfo_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) -#define IMFASFContentInfo_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) -#define IMFASFContentInfo_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) -#define IMFASFContentInfo_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) -#define IMFASFContentInfo_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) -#define IMFASFContentInfo_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) -#define IMFASFContentInfo_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) -#define IMFASFContentInfo_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) -#define IMFASFContentInfo_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) -#define IMFASFContentInfo_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) -#define IMFASFContentInfo_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) -#define IMFASFContentInfo_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) -#define IMFASFContentInfo_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) -#define IMFASFContentInfo_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) -#define IMFASFContentInfo_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) -#define IMFASFContentInfo_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) -#define IMFASFContentInfo_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) -#define IMFASFContentInfo_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) -#define IMFASFContentInfo_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) -#define IMFASFContentInfo_LockStore() (This)->lpVtbl->LockStore(This) -#define IMFASFContentInfo_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) -#define IMFASFContentInfo_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) -#define IMFASFContentInfo_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) -#define IMFASFContentInfo_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) -#define IMFASFContentInfo_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) -#define IMFASFContentInfo_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) -#define IMFASFContentInfo_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) -#define IMFASFContentInfo_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) -#define IMFASFContentInfo_UnlockStore() (This)->lpVtbl->UnlockStore(This) -#define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader) -#define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor) -#define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) -#define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize) -#define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile) -#define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) -#define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFStreamConfig -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifndef __IMFASFStreamConfig_FWD_DEFINED__ +#define __IMFASFStreamConfig_FWD_DEFINED__ +typedef interface IMFASFStreamConfig IMFASFStreamConfig; #endif -DECLARE_INTERFACE_(IMFASFStreamConfig,IMFAttributes) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; +/* Headers for imported files */ - /* IMFAttributes methods */ - STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; - STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; - STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; - STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; - STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; - STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; - STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; - STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; - STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; - STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; - STDMETHOD_(HRESULT,LockStore)(THIS) PURE; - STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; - STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; - STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; - STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; - STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; - STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; - STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; - STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; - STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; - - /* IMFASFStreamConfig methods */ - STDMETHOD_(HRESULT,AddPayloadExtension)(THIS_ GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) PURE; - STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamConfig **ppIStreamConfig) PURE; - STDMETHOD_(HRESULT,GetMediaType)(THIS_ IMFMediaType **ppIMediaType) PURE; - STDMETHOD_(HRESULT,GetPayloadExtension)(THIS_ WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) PURE; - STDMETHOD_(HRESULT,GetPayloadExtensionCount)(THIS_ WORD *pcPayloadExtensions) PURE; - STDMETHOD_(WORD,GetStreamNumber)(THIS) PURE; - STDMETHOD_(HRESULT,GetStreamType)(THIS_ GUID *pguidStreamType) PURE; - STDMETHOD_(HRESULT,RemoveAllPayloadExtensions)(THIS) PURE; - STDMETHOD_(HRESULT,SetMediaType)(THIS_ IMFMediaType *pIMediaType) PURE; - STDMETHOD_(HRESULT,SetStreamNumber)(THIS_ WORD wStreamNum) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) -#define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) -#define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) -#define IMFASFStreamConfig_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) -#define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) -#define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) -#define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) -#define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) -#define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) -#define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) -#define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) -#define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) -#define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) -#define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) -#define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) -#define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) -#define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) -#define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) -#define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) -#define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) -#define IMFASFStreamConfig_LockStore() (This)->lpVtbl->LockStore(This) -#define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) -#define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) -#define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) -#define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) -#define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) -#define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) -#define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) -#define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) -#define IMFASFStreamConfig_UnlockStore() (This)->lpVtbl->UnlockStore(This) -#define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) -#define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig) -#define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType) -#define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) -#define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions) -#define IMFASFStreamConfig_GetStreamNumber() (This)->lpVtbl->GetStreamNumber(This) -#define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) -#define IMFASFStreamConfig_RemoveAllPayloadExtensions() (This)->lpVtbl->RemoveAllPayloadExtensions(This) -#define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType) -#define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFProfile -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IMFASFProfile,IMFAttributes) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFAttributes methods */ - STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; - STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; - STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; - STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; - STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; - STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; - STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; - STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; - STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; - STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; - STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; - STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; - STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; - STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; - STDMETHOD_(HRESULT,LockStore)(THIS) PURE; - STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; - STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; - STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; - STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; - STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; - STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; - STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; - STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; - STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; - - /* IMFASFProfile methods */ - STDMETHOD_(HRESULT,AddMutualExclusion)(THIS_ IMFASFMutualExclusion *pIMutex) PURE; - STDMETHOD_(HRESULT,AddStreamPrioritization)(THIS_ IMFASFStreamPrioritization *pIStreamPrioritization) PURE; - STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFProfile **ppIProfile) PURE; - STDMETHOD_(HRESULT,CreateMutualExclusion)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE; - STDMETHOD_(HRESULT,CreateStream)(THIS_ IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) PURE; - STDMETHOD_(HRESULT,CreateStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; - STDMETHOD_(HRESULT,GetMutualExclusion)(THIS_ DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) PURE; - STDMETHOD_(HRESULT,GetMutualExclusionCount)(THIS_ DWORD *pcMutexs) PURE; - STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) PURE; - STDMETHOD_(HRESULT,GetStreamByNumber)(THIS_ WORD wStreamNumber,IMFASFStreamConfig **ppIStream) PURE; - STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD *pcStreams) PURE; - STDMETHOD_(HRESULT,GetStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; - STDMETHOD_(HRESULT,RemoveMutualExclusion)(THIS_ DWORD dwMutexIndex) PURE; - STDMETHOD_(HRESULT,RemoveStream)(THIS_ WORD wStreamNumber) PURE; - STDMETHOD_(HRESULT,RemoveStreamPrioritization)(THIS) PURE; - STDMETHOD_(HRESULT,SetStream)(THIS_ IMFASFStreamConfig *pIStream) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) -#define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) -#define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) -#define IMFASFProfile_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) -#define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) -#define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) -#define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) -#define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) -#define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) -#define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) -#define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) -#define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) -#define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) -#define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) -#define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) -#define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) -#define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) -#define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) -#define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) -#define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) -#define IMFASFProfile_LockStore() (This)->lpVtbl->LockStore(This) -#define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) -#define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) -#define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) -#define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) -#define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) -#define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) -#define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) -#define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) -#define IMFASFProfile_UnlockStore() (This)->lpVtbl->UnlockStore(This) -#define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex) -#define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization) -#define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile) -#define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex) -#define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream) -#define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization) -#define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex) -#define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs) -#define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) -#define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream) -#define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) -#define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization) -#define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex) -#define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber) -#define IMFASFProfile_RemoveStreamPrioritization() (This)->lpVtbl->RemoveStreamPrioritization(This) -#define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFIndexer -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IMFASFIndexer,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFASFIndexer methods */ - STDMETHOD_(HRESULT,CommitIndex)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; - STDMETHOD_(HRESULT,GenerateIndexEntries)(THIS_ IMFSample *pIASFPacketSample) PURE; - STDMETHOD_(HRESULT,GetCompletedIndex)(THIS_ IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) PURE; - STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; - STDMETHOD_(HRESULT,GetIndexByteStreamCount)(THIS_ DWORD *pcByteStreams) PURE; - STDMETHOD_(HRESULT,GetIndexPosition)(THIS_ IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) PURE; - STDMETHOD_(HRESULT,GetIndexStatus)(THIS_ ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) PURE; - STDMETHOD_(HRESULT,GetIndexWriteSpace)(THIS_ QWORD *pcbIndexWriteSpace) PURE; - STDMETHOD_(HRESULT,GetSeekPositionForValue)(THIS_ const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) PURE; - STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; - STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; - STDMETHOD_(HRESULT,SetIndexByteStreams)(THIS_ IMFByteStream **ppIByteStreams,DWORD cByteStreams) PURE; - STDMETHOD_(HRESULT,SetIndexStatus)(THIS_ BYTE *pIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo) -#define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample) -#define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) -#define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) -#define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams) -#define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset) -#define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) -#define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace) -#define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) -#define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) -#define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) -#define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams) -#define IMFASFIndexer_SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IMFASFMultiplexer -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IMFASFMultiplexer,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IMFASFMultiplexer methods */ - STDMETHOD_(HRESULT,End)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; - STDMETHOD_(HRESULT,Flush)(THIS) PURE; - STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; - STDMETHOD_(HRESULT,GetNextPacket)(THIS_ DWORD *pdwStatusFlags,IMFSample **ppIPacket) PURE; - STDMETHOD_(HRESULT,GetStatistics)(THIS_ WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) PURE; - STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; - STDMETHOD_(HRESULT,ProcessSample)(THIS_ WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) PURE; - STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; - STDMETHOD_(HRESULT,SetSyncTolerance)(THIS_ DWORD msSyncTolerance) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This) -#define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo) -#define IMFASFMultiplexer_Flush() (This)->lpVtbl->Flush(This) -#define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) -#define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket) -#define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats) -#define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) -#define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) -#define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) -#define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance) -#endif /*COBJMACROS*/ +#include <mfidl.h> #ifdef __cplusplus extern "C" { #endif -HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); -HRESULT WINAPI MFCreateWMAEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate); -HRESULT WINAPI MFCreateWMVEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate); +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); +EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78); +EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); +EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); +EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); +EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); +EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d); +EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); +EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31); +EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50); +EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19); +EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); +EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); +EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); +EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); +EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); +EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); +EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); +EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); +EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); +EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); +EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); +EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58); +EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a); +EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); +EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); +EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); +#if WINVER >= 0x0601 +EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd); +EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); +#endif + +EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); +EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); +EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); +EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); +EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc); +EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D); +EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9); +EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b); +EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28); +EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8); +EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad); +EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e); +EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f); +EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); +EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); +EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); +EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); +#ifndef __IMFASFProfile_FWD_DEFINED__ +#define __IMFASFProfile_FWD_DEFINED__ +typedef interface IMFASFProfile IMFASFProfile; +#endif + +#ifndef __IMFASFStreamConfig_FWD_DEFINED__ +#define __IMFASFStreamConfig_FWD_DEFINED__ +typedef interface IMFASFStreamConfig IMFASFStreamConfig; +#endif + +#ifndef __IMFASFMutualExclusion_FWD_DEFINED__ +#define __IMFASFMutualExclusion_FWD_DEFINED__ +typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; +#endif + +#ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ +#define __IMFASFStreamPrioritization_FWD_DEFINED__ +typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; +#endif + +#define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff +#define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff +#define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll +#define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll + +#define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD)) + +#define MFASF_MAX_STREAM_NUMBER 127 +#define MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1) +#define MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff +#define MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff +#define MFASF_DEFAULT_BUFFER_WINDOW_MS 3000 + +typedef enum MFASF_SPLITTERFLAGS { + MFASF_SPLITTER_REVERSE = 0x1, + MFASF_SPLITTER_WMDRM = 0x2 +} MFASF_SPLITTERFLAGS; +typedef enum ASF_STATUSFLAGS { + ASF_STATUSFLAGS_INCOMPLETE = 0x1 +} ASF_STATUSFLAGS; +typedef enum MFASF_MULTIPLEXERFLAGS { + MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1 +} MFASF_MULTIPLEXERFLAGS; +typedef enum MFASF_INDEXERFLAGS { + MFASF_INDEXER_WRITE_NEW_INDEX = 0x1, + MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2, + MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4 +} MFASF_INDEXER_FLAGS; +typedef enum MFASF_STREAMSELECTORFLAGS { + MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1, + MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2 +} MFASF_STREAMSELECTOR_FLAGS; +typedef enum ASF_SELECTION_STATUS { + ASF_STATUS_NOTSELECTED = 0, + ASF_STATUS_CLEANPOINTSONLY = 1, + ASF_STATUS_ALLDATAUNITS = 2 +} ASF_SELECTION_STATUS; +typedef enum _MFSINK_WMDRMACTION { + MFSINK_WMDRMACTION_UNDEFINED = 0, + MFSINK_WMDRMACTION_ENCODE = 1, + MFSINK_WMDRMACTION_TRANSCODE = 2, + MFSINK_WMDRMACTION_TRANSCRYPT = 3, + MFSINK_WMDRMACTION_LAST = 3 +} MFSINK_WMDRMACTION; + +typedef struct ASF_MUX_STATISTICS { + DWORD cFramesWritten; + DWORD cFramesDropped; +} ASF_MUX_STATISTICS; +typedef struct _ASF_INDEX_IDENTIFIER { + GUID guidIndexType; + WORD wStreamNumber; +} ASF_INDEX_IDENTIFIER; +typedef struct _ASF_INDEX_DESCRIPTOR { + ASF_INDEX_IDENTIFIER Identifier; + WORD cPerEntryBytes; + WCHAR szDescription[32]; + DWORD dwInterval; +} ASF_INDEX_DESCRIPTOR; + +/***************************************************************************** + * IMFASFContentInfo interface + */ +#ifndef __IMFASFContentInfo_INTERFACE_DEFINED__ +#define __IMFASFContentInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead") +IMFASFContentInfo : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetHeaderSize( + IMFMediaBuffer *pIStartOfContent, + QWORD *cbHeaderSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE ParseHeader( + IMFMediaBuffer *pIHeaderBuffer, + QWORD cbOffsetWithinHeader) = 0; + + virtual HRESULT STDMETHODCALLTYPE GenerateHeader( + IMFMediaBuffer *pIHeader, + DWORD *pcbHeader) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProfile( + IMFASFProfile **ppIProfile) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProfile( + IMFASFProfile *pIProfile) = 0; + + virtual HRESULT STDMETHODCALLTYPE GeneratePresentationDescriptor( + IMFPresentationDescriptor **ppIPresentationDescriptor) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetEncodingConfigurationPropertyStore( + WORD wStreamNumber, + IPropertyStore **ppIStore) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad) +#endif +#else +typedef struct IMFASFContentInfoVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFContentInfo* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFContentInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFContentInfo* This); + + /*** IMFASFContentInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *GetHeaderSize)( + IMFASFContentInfo* This, + IMFMediaBuffer *pIStartOfContent, + QWORD *cbHeaderSize); + + HRESULT (STDMETHODCALLTYPE *ParseHeader)( + IMFASFContentInfo* This, + IMFMediaBuffer *pIHeaderBuffer, + QWORD cbOffsetWithinHeader); + + HRESULT (STDMETHODCALLTYPE *GenerateHeader)( + IMFASFContentInfo* This, + IMFMediaBuffer *pIHeader, + DWORD *pcbHeader); + + HRESULT (STDMETHODCALLTYPE *GetProfile)( + IMFASFContentInfo* This, + IMFASFProfile **ppIProfile); + + HRESULT (STDMETHODCALLTYPE *SetProfile)( + IMFASFContentInfo* This, + IMFASFProfile *pIProfile); + + HRESULT (STDMETHODCALLTYPE *GeneratePresentationDescriptor)( + IMFASFContentInfo* This, + IMFPresentationDescriptor **ppIPresentationDescriptor); + + HRESULT (STDMETHODCALLTYPE *GetEncodingConfigurationPropertyStore)( + IMFASFContentInfo* This, + WORD wStreamNumber, + IPropertyStore **ppIStore); + + END_INTERFACE +} IMFASFContentInfoVtbl; +interface IMFASFContentInfo { + CONST_VTBL IMFASFContentInfoVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFContentInfo methods ***/ +#define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize) +#define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) +#define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader) +#define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile) +#define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile) +#define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor) +#define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFContentInfo methods ***/ +static FORCEINLINE HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) { + return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize); +} +static FORCEINLINE HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) { + return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader); +} +static FORCEINLINE HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) { + return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader); +} +static FORCEINLINE HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) { + return This->lpVtbl->GetProfile(This,ppIProfile); +} +static FORCEINLINE HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) { + return This->lpVtbl->SetProfile(This,pIProfile); +} +static FORCEINLINE HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) { + return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor); +} +static FORCEINLINE HRESULT IMFASFContentInfo_GetEncodingConfigurationPropertyStore(IMFASFContentInfo* This,WORD wStreamNumber,IPropertyStore **ppIStore) { + return This->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetHeaderSize_Proxy( + IMFASFContentInfo* This, + IMFMediaBuffer *pIStartOfContent, + QWORD *cbHeaderSize); +void __RPC_STUB IMFASFContentInfo_GetHeaderSize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_ParseHeader_Proxy( + IMFASFContentInfo* This, + IMFMediaBuffer *pIHeaderBuffer, + QWORD cbOffsetWithinHeader); +void __RPC_STUB IMFASFContentInfo_ParseHeader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GenerateHeader_Proxy( + IMFASFContentInfo* This, + IMFMediaBuffer *pIHeader, + DWORD *pcbHeader); +void __RPC_STUB IMFASFContentInfo_GenerateHeader_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetProfile_Proxy( + IMFASFContentInfo* This, + IMFASFProfile **ppIProfile); +void __RPC_STUB IMFASFContentInfo_GetProfile_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_SetProfile_Proxy( + IMFASFContentInfo* This, + IMFASFProfile *pIProfile); +void __RPC_STUB IMFASFContentInfo_SetProfile_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GeneratePresentationDescriptor_Proxy( + IMFASFContentInfo* This, + IMFPresentationDescriptor **ppIPresentationDescriptor); +void __RPC_STUB IMFASFContentInfo_GeneratePresentationDescriptor_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetEncodingConfigurationPropertyStore_Proxy( + IMFASFContentInfo* This, + WORD wStreamNumber, + IPropertyStore **ppIStore); +void __RPC_STUB IMFASFContentInfo_GetEncodingConfigurationPropertyStore_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFContentInfo_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFMutualExclusion interface + */ +#ifndef __IMFASFMutualExclusion_INTERFACE_DEFINED__ +#define __IMFASFMutualExclusion_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab") +IMFASFMutualExclusion : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetType( + GUID *pguidType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetType( + REFGUID guidType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecordCount( + DWORD *pdwRecordCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord( + DWORD dwRecordNumber, + WORD *pwStreamNumArray, + DWORD *pcStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord( + DWORD dwRecordNumber, + WORD wStreamNumber) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveStreamFromRecord( + DWORD dwRecordNumber, + WORD wStreamNumber) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveRecord( + DWORD dwRecordNumber) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddRecord( + DWORD *pdwRecordNumber) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IMFASFMutualExclusion **ppIMutex) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) +#endif +#else +typedef struct IMFASFMutualExclusionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFMutualExclusion* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFMutualExclusion* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFMutualExclusion* This); + + /*** IMFASFMutualExclusion methods ***/ + HRESULT (STDMETHODCALLTYPE *GetType)( + IMFASFMutualExclusion* This, + GUID *pguidType); + + HRESULT (STDMETHODCALLTYPE *SetType)( + IMFASFMutualExclusion* This, + REFGUID guidType); + + HRESULT (STDMETHODCALLTYPE *GetRecordCount)( + IMFASFMutualExclusion* This, + DWORD *pdwRecordCount); + + HRESULT (STDMETHODCALLTYPE *GetStreamsForRecord)( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD *pwStreamNumArray, + DWORD *pcStreams); + + HRESULT (STDMETHODCALLTYPE *AddStreamForRecord)( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD wStreamNumber); + + HRESULT (STDMETHODCALLTYPE *RemoveStreamFromRecord)( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD wStreamNumber); + + HRESULT (STDMETHODCALLTYPE *RemoveRecord)( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber); + + HRESULT (STDMETHODCALLTYPE *AddRecord)( + IMFASFMutualExclusion* This, + DWORD *pdwRecordNumber); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IMFASFMutualExclusion* This, + IMFASFMutualExclusion **ppIMutex); + + END_INTERFACE +} IMFASFMutualExclusionVtbl; +interface IMFASFMutualExclusion { + CONST_VTBL IMFASFMutualExclusionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFMutualExclusion methods ***/ +#define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) +#define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) +#define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount) +#define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) +#define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber) +#define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) +#define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber) +#define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber) +#define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFMutualExclusion methods ***/ +static FORCEINLINE HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) { + return This->lpVtbl->GetType(This,pguidType); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) { + return This->lpVtbl->SetType(This,guidType); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) { + return This->lpVtbl->GetRecordCount(This,pdwRecordCount); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) { + return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { + return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { + return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) { + return This->lpVtbl->RemoveRecord(This,dwRecordNumber); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) { + return This->lpVtbl->AddRecord(This,pdwRecordNumber); +} +static FORCEINLINE HRESULT IMFASFMutualExclusion_Clone(IMFASFMutualExclusion* This,IMFASFMutualExclusion **ppIMutex) { + return This->lpVtbl->Clone(This,ppIMutex); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetType_Proxy( + IMFASFMutualExclusion* This, + GUID *pguidType); +void __RPC_STUB IMFASFMutualExclusion_GetType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_SetType_Proxy( + IMFASFMutualExclusion* This, + REFGUID guidType); +void __RPC_STUB IMFASFMutualExclusion_SetType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetRecordCount_Proxy( + IMFASFMutualExclusion* This, + DWORD *pdwRecordCount); +void __RPC_STUB IMFASFMutualExclusion_GetRecordCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetStreamsForRecord_Proxy( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD *pwStreamNumArray, + DWORD *pcStreams); +void __RPC_STUB IMFASFMutualExclusion_GetStreamsForRecord_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_AddStreamForRecord_Proxy( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD wStreamNumber); +void __RPC_STUB IMFASFMutualExclusion_AddStreamForRecord_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_RemoveStreamFromRecord_Proxy( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber, + WORD wStreamNumber); +void __RPC_STUB IMFASFMutualExclusion_RemoveStreamFromRecord_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_RemoveRecord_Proxy( + IMFASFMutualExclusion* This, + DWORD dwRecordNumber); +void __RPC_STUB IMFASFMutualExclusion_RemoveRecord_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_AddRecord_Proxy( + IMFASFMutualExclusion* This, + DWORD *pdwRecordNumber); +void __RPC_STUB IMFASFMutualExclusion_AddRecord_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_Clone_Proxy( + IMFASFMutualExclusion* This, + IMFASFMutualExclusion **ppIMutex); +void __RPC_STUB IMFASFMutualExclusion_Clone_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFMutualExclusion_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFStreamPrioritization interface + */ +#ifndef __IMFASFStreamPrioritization_INTERFACE_DEFINED__ +#define __IMFASFStreamPrioritization_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088") +IMFASFStreamPrioritization : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + DWORD *pdwStreamCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStream( + DWORD dwStreamIndex, + WORD *pwStreamNumber, + WORD *pwStreamFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddStream( + WORD wStreamNumber, + WORD wStreamFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveStream( + DWORD dwStreamIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88) +#endif +#else +typedef struct IMFASFStreamPrioritizationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFStreamPrioritization* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFStreamPrioritization* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFStreamPrioritization* This); + + /*** IMFASFStreamPrioritization methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamCount)( + IMFASFStreamPrioritization* This, + DWORD *pdwStreamCount); + + HRESULT (STDMETHODCALLTYPE *GetStream)( + IMFASFStreamPrioritization* This, + DWORD dwStreamIndex, + WORD *pwStreamNumber, + WORD *pwStreamFlags); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFASFStreamPrioritization* This, + WORD wStreamNumber, + WORD wStreamFlags); + + HRESULT (STDMETHODCALLTYPE *RemoveStream)( + IMFASFStreamPrioritization* This, + DWORD dwStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IMFASFStreamPrioritization* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); + + END_INTERFACE +} IMFASFStreamPrioritizationVtbl; +interface IMFASFStreamPrioritization { + CONST_VTBL IMFASFStreamPrioritizationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFStreamPrioritization methods ***/ +#define IMFASFStreamPrioritization_GetStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwStreamCount) +#define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) +#define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags) +#define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex) +#define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFStreamPrioritization methods ***/ +static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) { + return This->lpVtbl->GetStreamCount(This,pdwStreamCount); +} +static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) { + return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags); +} +static FORCEINLINE HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) { + return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags); +} +static FORCEINLINE HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) { + return This->lpVtbl->RemoveStream(This,dwStreamIndex); +} +static FORCEINLINE HRESULT IMFASFStreamPrioritization_Clone(IMFASFStreamPrioritization* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { + return This->lpVtbl->Clone(This,ppIStreamPrioritization); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_GetStreamCount_Proxy( + IMFASFStreamPrioritization* This, + DWORD *pdwStreamCount); +void __RPC_STUB IMFASFStreamPrioritization_GetStreamCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_GetStream_Proxy( + IMFASFStreamPrioritization* This, + DWORD dwStreamIndex, + WORD *pwStreamNumber, + WORD *pwStreamFlags); +void __RPC_STUB IMFASFStreamPrioritization_GetStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_AddStream_Proxy( + IMFASFStreamPrioritization* This, + WORD wStreamNumber, + WORD wStreamFlags); +void __RPC_STUB IMFASFStreamPrioritization_AddStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_RemoveStream_Proxy( + IMFASFStreamPrioritization* This, + DWORD dwStreamIndex); +void __RPC_STUB IMFASFStreamPrioritization_RemoveStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_Clone_Proxy( + IMFASFStreamPrioritization* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); +void __RPC_STUB IMFASFStreamPrioritization_Clone_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFStreamPrioritization_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFSplitter interface + */ +#ifndef __IMFASFSplitter_INTERFACE_DEFINED__ +#define __IMFASFSplitter_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab") +IMFASFSplitter : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IMFASFContentInfo *pIContentInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFlags( + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlags( + DWORD *pdwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SelectStreams( + WORD *pwStreamNumbers, + WORD wNumStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSelectedStreams( + WORD *pwStreamNumbers, + WORD *pwNumStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE ParseData( + IMFMediaBuffer *pIBuffer, + DWORD cbBufferOffset, + DWORD cbLength) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNextSample( + DWORD *pdwStatusFlags, + WORD *pwStreamNumber, + IMFSample **ppISample) = 0; + + virtual HRESULT STDMETHODCALLTYPE Flush( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLastSendTime( + DWORD *pdwLastSendTime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) +#endif +#else +typedef struct IMFASFSplitterVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFSplitter* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFSplitter* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFSplitter* This); + + /*** IMFASFSplitter methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IMFASFSplitter* This, + IMFASFContentInfo *pIContentInfo); + + HRESULT (STDMETHODCALLTYPE *SetFlags)( + IMFASFSplitter* This, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *GetFlags)( + IMFASFSplitter* This, + DWORD *pdwFlags); + + HRESULT (STDMETHODCALLTYPE *SelectStreams)( + IMFASFSplitter* This, + WORD *pwStreamNumbers, + WORD wNumStreams); + + HRESULT (STDMETHODCALLTYPE *GetSelectedStreams)( + IMFASFSplitter* This, + WORD *pwStreamNumbers, + WORD *pwNumStreams); + + HRESULT (STDMETHODCALLTYPE *ParseData)( + IMFASFSplitter* This, + IMFMediaBuffer *pIBuffer, + DWORD cbBufferOffset, + DWORD cbLength); + + HRESULT (STDMETHODCALLTYPE *GetNextSample)( + IMFASFSplitter* This, + DWORD *pdwStatusFlags, + WORD *pwStreamNumber, + IMFSample **ppISample); + + HRESULT (STDMETHODCALLTYPE *Flush)( + IMFASFSplitter* This); + + HRESULT (STDMETHODCALLTYPE *GetLastSendTime)( + IMFASFSplitter* This, + DWORD *pdwLastSendTime); + + END_INTERFACE +} IMFASFSplitterVtbl; +interface IMFASFSplitter { + CONST_VTBL IMFASFSplitterVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFSplitter methods ***/ +#define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) +#define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) +#define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) +#define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams) +#define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) +#define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength) +#define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) +#define IMFASFSplitter_Flush(This) (This)->lpVtbl->Flush(This) +#define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFSplitter_Release(IMFASFSplitter* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFSplitter methods ***/ +static FORCEINLINE HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) { + return This->lpVtbl->Initialize(This,pIContentInfo); +} +static FORCEINLINE HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) { + return This->lpVtbl->SetFlags(This,dwFlags); +} +static FORCEINLINE HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) { + return This->lpVtbl->GetFlags(This,pdwFlags); +} +static FORCEINLINE HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) { + return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams); +} +static FORCEINLINE HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) { + return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams); +} +static FORCEINLINE HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) { + return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength); +} +static FORCEINLINE HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) { + return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample); +} +static FORCEINLINE HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) { + return This->lpVtbl->Flush(This); +} +static FORCEINLINE HRESULT IMFASFSplitter_GetLastSendTime(IMFASFSplitter* This,DWORD *pdwLastSendTime) { + return This->lpVtbl->GetLastSendTime(This,pdwLastSendTime); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFSplitter_Initialize_Proxy( + IMFASFSplitter* This, + IMFASFContentInfo *pIContentInfo); +void __RPC_STUB IMFASFSplitter_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_SetFlags_Proxy( + IMFASFSplitter* This, + DWORD dwFlags); +void __RPC_STUB IMFASFSplitter_SetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetFlags_Proxy( + IMFASFSplitter* This, + DWORD *pdwFlags); +void __RPC_STUB IMFASFSplitter_GetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_SelectStreams_Proxy( + IMFASFSplitter* This, + WORD *pwStreamNumbers, + WORD wNumStreams); +void __RPC_STUB IMFASFSplitter_SelectStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetSelectedStreams_Proxy( + IMFASFSplitter* This, + WORD *pwStreamNumbers, + WORD *pwNumStreams); +void __RPC_STUB IMFASFSplitter_GetSelectedStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_ParseData_Proxy( + IMFASFSplitter* This, + IMFMediaBuffer *pIBuffer, + DWORD cbBufferOffset, + DWORD cbLength); +void __RPC_STUB IMFASFSplitter_ParseData_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetNextSample_Proxy( + IMFASFSplitter* This, + DWORD *pdwStatusFlags, + WORD *pwStreamNumber, + IMFSample **ppISample); +void __RPC_STUB IMFASFSplitter_GetNextSample_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_Flush_Proxy( + IMFASFSplitter* This); +void __RPC_STUB IMFASFSplitter_Flush_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetLastSendTime_Proxy( + IMFASFSplitter* This, + DWORD *pdwLastSendTime); +void __RPC_STUB IMFASFSplitter_GetLastSendTime_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFSplitter_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFMultiplexer interface + */ +#ifndef __IMFASFMultiplexer_INTERFACE_DEFINED__ +#define __IMFASFMultiplexer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f") +IMFASFMultiplexer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IMFASFContentInfo *pIContentInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFlags( + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlags( + DWORD *pdwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE ProcessSample( + WORD wStreamNumber, + IMFSample *pISample, + LONGLONG hnsTimestampAdjust) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNextPacket( + DWORD *pdwStatusFlags, + IMFSample **ppIPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE Flush( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE End( + IMFASFContentInfo *pIContentInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStatistics( + WORD wStreamNumber, + ASF_MUX_STATISTICS *pMuxStats) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( + DWORD msSyncTolerance) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f) +#endif +#else +typedef struct IMFASFMultiplexerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFMultiplexer* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFMultiplexer* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFMultiplexer* This); + + /*** IMFASFMultiplexer methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IMFASFMultiplexer* This, + IMFASFContentInfo *pIContentInfo); + + HRESULT (STDMETHODCALLTYPE *SetFlags)( + IMFASFMultiplexer* This, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *GetFlags)( + IMFASFMultiplexer* This, + DWORD *pdwFlags); + + HRESULT (STDMETHODCALLTYPE *ProcessSample)( + IMFASFMultiplexer* This, + WORD wStreamNumber, + IMFSample *pISample, + LONGLONG hnsTimestampAdjust); + + HRESULT (STDMETHODCALLTYPE *GetNextPacket)( + IMFASFMultiplexer* This, + DWORD *pdwStatusFlags, + IMFSample **ppIPacket); + + HRESULT (STDMETHODCALLTYPE *Flush)( + IMFASFMultiplexer* This); + + HRESULT (STDMETHODCALLTYPE *End)( + IMFASFMultiplexer* This, + IMFASFContentInfo *pIContentInfo); + + HRESULT (STDMETHODCALLTYPE *GetStatistics)( + IMFASFMultiplexer* This, + WORD wStreamNumber, + ASF_MUX_STATISTICS *pMuxStats); + + HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( + IMFASFMultiplexer* This, + DWORD msSyncTolerance); + + END_INTERFACE +} IMFASFMultiplexerVtbl; +interface IMFASFMultiplexer { + CONST_VTBL IMFASFMultiplexerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFMultiplexer methods ***/ +#define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) +#define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) +#define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) +#define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) +#define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket) +#define IMFASFMultiplexer_Flush(This) (This)->lpVtbl->Flush(This) +#define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo) +#define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats) +#define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFMultiplexer methods ***/ +static FORCEINLINE HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { + return This->lpVtbl->Initialize(This,pIContentInfo); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) { + return This->lpVtbl->SetFlags(This,dwFlags); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) { + return This->lpVtbl->GetFlags(This,pdwFlags); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) { + return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) { + return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) { + return This->lpVtbl->Flush(This); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { + return This->lpVtbl->End(This,pIContentInfo); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) { + return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats); +} +static FORCEINLINE HRESULT IMFASFMultiplexer_SetSyncTolerance(IMFASFMultiplexer* This,DWORD msSyncTolerance) { + return This->lpVtbl->SetSyncTolerance(This,msSyncTolerance); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_Initialize_Proxy( + IMFASFMultiplexer* This, + IMFASFContentInfo *pIContentInfo); +void __RPC_STUB IMFASFMultiplexer_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_SetFlags_Proxy( + IMFASFMultiplexer* This, + DWORD dwFlags); +void __RPC_STUB IMFASFMultiplexer_SetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetFlags_Proxy( + IMFASFMultiplexer* This, + DWORD *pdwFlags); +void __RPC_STUB IMFASFMultiplexer_GetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_ProcessSample_Proxy( + IMFASFMultiplexer* This, + WORD wStreamNumber, + IMFSample *pISample, + LONGLONG hnsTimestampAdjust); +void __RPC_STUB IMFASFMultiplexer_ProcessSample_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetNextPacket_Proxy( + IMFASFMultiplexer* This, + DWORD *pdwStatusFlags, + IMFSample **ppIPacket); +void __RPC_STUB IMFASFMultiplexer_GetNextPacket_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_Flush_Proxy( + IMFASFMultiplexer* This); +void __RPC_STUB IMFASFMultiplexer_Flush_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_End_Proxy( + IMFASFMultiplexer* This, + IMFASFContentInfo *pIContentInfo); +void __RPC_STUB IMFASFMultiplexer_End_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetStatistics_Proxy( + IMFASFMultiplexer* This, + WORD wStreamNumber, + ASF_MUX_STATISTICS *pMuxStats); +void __RPC_STUB IMFASFMultiplexer_GetStatistics_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_SetSyncTolerance_Proxy( + IMFASFMultiplexer* This, + DWORD msSyncTolerance); +void __RPC_STUB IMFASFMultiplexer_SetSyncTolerance_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFMultiplexer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFIndexer interface + */ +#ifndef __IMFASFIndexer_INTERFACE_DEFINED__ +#define __IMFASFIndexer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e") +IMFASFIndexer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlags( + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlags( + DWORD *pdwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Initialize( + IMFASFContentInfo *pIContentInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIndexPosition( + IMFASFContentInfo *pIContentInfo, + QWORD *pcbIndexOffset) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIndexByteStreams( + IMFByteStream **ppIByteStreams, + DWORD cByteStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIndexByteStreamCount( + DWORD *pcByteStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIndexStatus( + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + WINBOOL *pfIsIndexed, + BYTE *pbIndexDescriptor, + DWORD *pcbIndexDescriptor) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIndexStatus( + BYTE *pbIndexDescriptor, + DWORD cbIndexDescriptor, + WINBOOL fGenerateIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSeekPositionForValue( + const PROPVARIANT *pvarValue, + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + QWORD *pcbOffsetWithinData, + MFTIME *phnsApproxTime, + DWORD *pdwPayloadNumberOfStreamWithinPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE GenerateIndexEntries( + IMFSample *pIASFPacketSample) = 0; + + virtual HRESULT STDMETHODCALLTYPE CommitIndex( + IMFASFContentInfo *pIContentInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIndexWriteSpace( + QWORD *pcbIndexWriteSpace) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCompletedIndex( + IMFMediaBuffer *pIIndexBuffer, + QWORD cbOffsetWithinIndex) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e) +#endif +#else +typedef struct IMFASFIndexerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFIndexer* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFIndexer* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFIndexer* This); + + /*** IMFASFIndexer methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlags)( + IMFASFIndexer* This, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *GetFlags)( + IMFASFIndexer* This, + DWORD *pdwFlags); + + HRESULT (STDMETHODCALLTYPE *Initialize)( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo); + + HRESULT (STDMETHODCALLTYPE *GetIndexPosition)( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo, + QWORD *pcbIndexOffset); + + HRESULT (STDMETHODCALLTYPE *SetIndexByteStreams)( + IMFASFIndexer* This, + IMFByteStream **ppIByteStreams, + DWORD cByteStreams); + + HRESULT (STDMETHODCALLTYPE *GetIndexByteStreamCount)( + IMFASFIndexer* This, + DWORD *pcByteStreams); + + HRESULT (STDMETHODCALLTYPE *GetIndexStatus)( + IMFASFIndexer* This, + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + WINBOOL *pfIsIndexed, + BYTE *pbIndexDescriptor, + DWORD *pcbIndexDescriptor); + + HRESULT (STDMETHODCALLTYPE *SetIndexStatus)( + IMFASFIndexer* This, + BYTE *pbIndexDescriptor, + DWORD cbIndexDescriptor, + WINBOOL fGenerateIndex); + + HRESULT (STDMETHODCALLTYPE *GetSeekPositionForValue)( + IMFASFIndexer* This, + const PROPVARIANT *pvarValue, + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + QWORD *pcbOffsetWithinData, + MFTIME *phnsApproxTime, + DWORD *pdwPayloadNumberOfStreamWithinPacket); + + HRESULT (STDMETHODCALLTYPE *GenerateIndexEntries)( + IMFASFIndexer* This, + IMFSample *pIASFPacketSample); + + HRESULT (STDMETHODCALLTYPE *CommitIndex)( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo); + + HRESULT (STDMETHODCALLTYPE *GetIndexWriteSpace)( + IMFASFIndexer* This, + QWORD *pcbIndexWriteSpace); + + HRESULT (STDMETHODCALLTYPE *GetCompletedIndex)( + IMFASFIndexer* This, + IMFMediaBuffer *pIIndexBuffer, + QWORD cbOffsetWithinIndex); + + END_INTERFACE +} IMFASFIndexerVtbl; +interface IMFASFIndexer { + CONST_VTBL IMFASFIndexerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFIndexer methods ***/ +#define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) +#define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) +#define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) +#define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset) +#define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams) +#define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams) +#define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) +#define IMFASFIndexer_SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) +#define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) +#define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample) +#define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo) +#define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace) +#define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFIndexer_Release(IMFASFIndexer* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFIndexer methods ***/ +static FORCEINLINE HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) { + return This->lpVtbl->SetFlags(This,dwFlags); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) { + return This->lpVtbl->GetFlags(This,pdwFlags); +} +static FORCEINLINE HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { + return This->lpVtbl->Initialize(This,pIContentInfo); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) { + return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset); +} +static FORCEINLINE HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) { + return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) { + return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetIndexStatus(IMFASFIndexer* This,ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) { + return This->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor); +} +static FORCEINLINE HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) { + return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetSeekPositionForValue(IMFASFIndexer* This,const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) { + return This->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket); +} +static FORCEINLINE HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) { + return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample); +} +static FORCEINLINE HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { + return This->lpVtbl->CommitIndex(This,pIContentInfo); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) { + return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace); +} +static FORCEINLINE HRESULT IMFASFIndexer_GetCompletedIndex(IMFASFIndexer* This,IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) { + return This->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetFlags_Proxy( + IMFASFIndexer* This, + DWORD dwFlags); +void __RPC_STUB IMFASFIndexer_SetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetFlags_Proxy( + IMFASFIndexer* This, + DWORD *pdwFlags); +void __RPC_STUB IMFASFIndexer_GetFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_Initialize_Proxy( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo); +void __RPC_STUB IMFASFIndexer_Initialize_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexPosition_Proxy( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo, + QWORD *pcbIndexOffset); +void __RPC_STUB IMFASFIndexer_GetIndexPosition_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetIndexByteStreams_Proxy( + IMFASFIndexer* This, + IMFByteStream **ppIByteStreams, + DWORD cByteStreams); +void __RPC_STUB IMFASFIndexer_SetIndexByteStreams_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexByteStreamCount_Proxy( + IMFASFIndexer* This, + DWORD *pcByteStreams); +void __RPC_STUB IMFASFIndexer_GetIndexByteStreamCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexStatus_Proxy( + IMFASFIndexer* This, + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + WINBOOL *pfIsIndexed, + BYTE *pbIndexDescriptor, + DWORD *pcbIndexDescriptor); +void __RPC_STUB IMFASFIndexer_GetIndexStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetIndexStatus_Proxy( + IMFASFIndexer* This, + BYTE *pbIndexDescriptor, + DWORD cbIndexDescriptor, + WINBOOL fGenerateIndex); +void __RPC_STUB IMFASFIndexer_SetIndexStatus_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetSeekPositionForValue_Proxy( + IMFASFIndexer* This, + const PROPVARIANT *pvarValue, + ASF_INDEX_IDENTIFIER *pIndexIdentifier, + QWORD *pcbOffsetWithinData, + MFTIME *phnsApproxTime, + DWORD *pdwPayloadNumberOfStreamWithinPacket); +void __RPC_STUB IMFASFIndexer_GetSeekPositionForValue_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GenerateIndexEntries_Proxy( + IMFASFIndexer* This, + IMFSample *pIASFPacketSample); +void __RPC_STUB IMFASFIndexer_GenerateIndexEntries_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_CommitIndex_Proxy( + IMFASFIndexer* This, + IMFASFContentInfo *pIContentInfo); +void __RPC_STUB IMFASFIndexer_CommitIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexWriteSpace_Proxy( + IMFASFIndexer* This, + QWORD *pcbIndexWriteSpace); +void __RPC_STUB IMFASFIndexer_GetIndexWriteSpace_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetCompletedIndex_Proxy( + IMFASFIndexer* This, + IMFMediaBuffer *pIIndexBuffer, + QWORD cbOffsetWithinIndex); +void __RPC_STUB IMFASFIndexer_GetCompletedIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFIndexer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFStreamSelector interface + */ +#ifndef __IMFASFStreamSelector_INTERFACE_DEFINED__ +#define __IMFASFStreamSelector_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41") +IMFASFStreamSelector : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + DWORD *pcStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputCount( + DWORD *pcOutputs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamCount( + DWORD dwOutputNum, + DWORD *pcStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputStreamNumbers( + DWORD dwOutputNum, + WORD *rgwStreamNumbers) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputFromStream( + WORD wStreamNum, + DWORD *pdwOutput) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputOverride( + DWORD dwOutputNum, + ASF_SELECTION_STATUS *pSelection) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputOverride( + DWORD dwOutputNum, + ASF_SELECTION_STATUS Selection) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputMutexCount( + DWORD dwOutputNum, + DWORD *pcMutexes) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOutputMutex( + DWORD dwOutputNum, + DWORD dwMutexNum, + IUnknown **ppMutex) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputMutexSelection( + DWORD dwOutputNum, + DWORD dwMutexNum, + WORD wSelectedRecord) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBandwidthStepCount( + DWORD *pcStepCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBandwidthStep( + DWORD dwStepNum, + DWORD *pdwBitrate, + WORD *rgwStreamNumbers, + ASF_SELECTION_STATUS *rgSelections) = 0; + + virtual HRESULT STDMETHODCALLTYPE BitrateToStepNumber( + DWORD dwBitrate, + DWORD *pdwStepNum) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamSelectorFlags( + DWORD dwStreamSelectorFlags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41) +#endif +#else +typedef struct IMFASFStreamSelectorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFStreamSelector* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFStreamSelector* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFStreamSelector* This); + + /*** IMFASFStreamSelector methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamCount)( + IMFASFStreamSelector* This, + DWORD *pcStreams); + + HRESULT (STDMETHODCALLTYPE *GetOutputCount)( + IMFASFStreamSelector* This, + DWORD *pcOutputs); + + HRESULT (STDMETHODCALLTYPE *GetOutputStreamCount)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD *pcStreams); + + HRESULT (STDMETHODCALLTYPE *GetOutputStreamNumbers)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + WORD *rgwStreamNumbers); + + HRESULT (STDMETHODCALLTYPE *GetOutputFromStream)( + IMFASFStreamSelector* This, + WORD wStreamNum, + DWORD *pdwOutput); + + HRESULT (STDMETHODCALLTYPE *GetOutputOverride)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + ASF_SELECTION_STATUS *pSelection); + + HRESULT (STDMETHODCALLTYPE *SetOutputOverride)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + ASF_SELECTION_STATUS Selection); + + HRESULT (STDMETHODCALLTYPE *GetOutputMutexCount)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD *pcMutexes); + + HRESULT (STDMETHODCALLTYPE *GetOutputMutex)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD dwMutexNum, + IUnknown **ppMutex); + + HRESULT (STDMETHODCALLTYPE *SetOutputMutexSelection)( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD dwMutexNum, + WORD wSelectedRecord); + + HRESULT (STDMETHODCALLTYPE *GetBandwidthStepCount)( + IMFASFStreamSelector* This, + DWORD *pcStepCount); + + HRESULT (STDMETHODCALLTYPE *GetBandwidthStep)( + IMFASFStreamSelector* This, + DWORD dwStepNum, + DWORD *pdwBitrate, + WORD *rgwStreamNumbers, + ASF_SELECTION_STATUS *rgSelections); + + HRESULT (STDMETHODCALLTYPE *BitrateToStepNumber)( + IMFASFStreamSelector* This, + DWORD dwBitrate, + DWORD *pdwStepNum); + + HRESULT (STDMETHODCALLTYPE *SetStreamSelectorFlags)( + IMFASFStreamSelector* This, + DWORD dwStreamSelectorFlags); + + END_INTERFACE +} IMFASFStreamSelectorVtbl; +interface IMFASFStreamSelector { + CONST_VTBL IMFASFStreamSelectorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFStreamSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFStreamSelector_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFStreamSelector_Release(This) (This)->lpVtbl->Release(This) +/*** IMFASFStreamSelector methods ***/ +#define IMFASFStreamSelector_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) +#define IMFASFStreamSelector_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) +#define IMFASFStreamSelector_GetOutputStreamCount(This,dwOutputNum,pcStreams) (This)->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams) +#define IMFASFStreamSelector_GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) (This)->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) +#define IMFASFStreamSelector_GetOutputFromStream(This,wStreamNum,pdwOutput) (This)->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput) +#define IMFASFStreamSelector_GetOutputOverride(This,dwOutputNum,pSelection) (This)->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection) +#define IMFASFStreamSelector_SetOutputOverride(This,dwOutputNum,Selection) (This)->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection) +#define IMFASFStreamSelector_GetOutputMutexCount(This,dwOutputNum,pcMutexes) (This)->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes) +#define IMFASFStreamSelector_GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) (This)->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) +#define IMFASFStreamSelector_SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) (This)->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) +#define IMFASFStreamSelector_GetBandwidthStepCount(This,pcStepCount) (This)->lpVtbl->GetBandwidthStepCount(This,pcStepCount) +#define IMFASFStreamSelector_GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) (This)->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) +#define IMFASFStreamSelector_BitrateToStepNumber(This,dwBitrate,pdwStepNum) (This)->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum) +#define IMFASFStreamSelector_SetStreamSelectorFlags(This,dwStreamSelectorFlags) (This)->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) { + return This->lpVtbl->Release(This); +} +/*** IMFASFStreamSelector methods ***/ +static FORCEINLINE HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) { + return This->lpVtbl->GetStreamCount(This,pcStreams); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) { + return This->lpVtbl->GetOutputCount(This,pcOutputs); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) { + return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) { + return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) { + return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) { + return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) { + return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) { + return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) { + return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) { + return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) { + return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStep(IMFASFStreamSelector* This,DWORD dwStepNum,DWORD *pdwBitrate,WORD *rgwStreamNumbers,ASF_SELECTION_STATUS *rgSelections) { + return This->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) { + return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum); +} +static FORCEINLINE HRESULT IMFASFStreamSelector_SetStreamSelectorFlags(IMFASFStreamSelector* This,DWORD dwStreamSelectorFlags) { + return This->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetStreamCount_Proxy( + IMFASFStreamSelector* This, + DWORD *pcStreams); +void __RPC_STUB IMFASFStreamSelector_GetStreamCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputCount_Proxy( + IMFASFStreamSelector* This, + DWORD *pcOutputs); +void __RPC_STUB IMFASFStreamSelector_GetOutputCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputStreamCount_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD *pcStreams); +void __RPC_STUB IMFASFStreamSelector_GetOutputStreamCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputStreamNumbers_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + WORD *rgwStreamNumbers); +void __RPC_STUB IMFASFStreamSelector_GetOutputStreamNumbers_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputFromStream_Proxy( + IMFASFStreamSelector* This, + WORD wStreamNum, + DWORD *pdwOutput); +void __RPC_STUB IMFASFStreamSelector_GetOutputFromStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputOverride_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + ASF_SELECTION_STATUS *pSelection); +void __RPC_STUB IMFASFStreamSelector_GetOutputOverride_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetOutputOverride_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + ASF_SELECTION_STATUS Selection); +void __RPC_STUB IMFASFStreamSelector_SetOutputOverride_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputMutexCount_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD *pcMutexes); +void __RPC_STUB IMFASFStreamSelector_GetOutputMutexCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputMutex_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD dwMutexNum, + IUnknown **ppMutex); +void __RPC_STUB IMFASFStreamSelector_GetOutputMutex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetOutputMutexSelection_Proxy( + IMFASFStreamSelector* This, + DWORD dwOutputNum, + DWORD dwMutexNum, + WORD wSelectedRecord); +void __RPC_STUB IMFASFStreamSelector_SetOutputMutexSelection_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetBandwidthStepCount_Proxy( + IMFASFStreamSelector* This, + DWORD *pcStepCount); +void __RPC_STUB IMFASFStreamSelector_GetBandwidthStepCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetBandwidthStep_Proxy( + IMFASFStreamSelector* This, + DWORD dwStepNum, + DWORD *pdwBitrate, + WORD *rgwStreamNumbers, + ASF_SELECTION_STATUS *rgSelections); +void __RPC_STUB IMFASFStreamSelector_GetBandwidthStep_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_BitrateToStepNumber_Proxy( + IMFASFStreamSelector* This, + DWORD dwBitrate, + DWORD *pdwStepNum); +void __RPC_STUB IMFASFStreamSelector_BitrateToStepNumber_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetStreamSelectorFlags_Proxy( + IMFASFStreamSelector* This, + DWORD dwStreamSelectorFlags); +void __RPC_STUB IMFASFStreamSelector_SetStreamSelectorFlags_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFStreamSelector_INTERFACE_DEFINED__ */ + +#if WINVER >= 0x0601 +/***************************************************************************** + * IMFDRMNetHelper interface + */ +#ifndef __IMFDRMNetHelper_INTERFACE_DEFINED__ +#define __IMFDRMNetHelper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15") +IMFDRMNetHelper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRequest( + BYTE *pLicenseRequest, + DWORD cbLicenseRequest, + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse, + BSTR *pbstrKID) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetChainedLicenseResponse( + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15) +#endif +#else +typedef struct IMFDRMNetHelperVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFDRMNetHelper* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFDRMNetHelper* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFDRMNetHelper* This); + + /*** IMFDRMNetHelper methods ***/ + HRESULT (STDMETHODCALLTYPE *ProcessLicenseRequest)( + IMFDRMNetHelper* This, + BYTE *pLicenseRequest, + DWORD cbLicenseRequest, + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse, + BSTR *pbstrKID); + + HRESULT (STDMETHODCALLTYPE *GetChainedLicenseResponse)( + IMFDRMNetHelper* This, + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse); + + END_INTERFACE +} IMFDRMNetHelperVtbl; +interface IMFDRMNetHelper { + CONST_VTBL IMFDRMNetHelperVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFDRMNetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFDRMNetHelper_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFDRMNetHelper_Release(This) (This)->lpVtbl->Release(This) +/*** IMFDRMNetHelper methods ***/ +#define IMFDRMNetHelper_ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) (This)->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) +#define IMFDRMNetHelper_GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) (This)->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) { + return This->lpVtbl->Release(This); +} +/*** IMFDRMNetHelper methods ***/ +static FORCEINLINE HRESULT IMFDRMNetHelper_ProcessLicenseRequest(IMFDRMNetHelper* This,BYTE *pLicenseRequest,DWORD cbLicenseRequest,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse,BSTR *pbstrKID) { + return This->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID); +} +static FORCEINLINE HRESULT IMFDRMNetHelper_GetChainedLicenseResponse(IMFDRMNetHelper* This,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse) { + return This->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFDRMNetHelper_ProcessLicenseRequest_Proxy( + IMFDRMNetHelper* This, + BYTE *pLicenseRequest, + DWORD cbLicenseRequest, + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse, + BSTR *pbstrKID); +void __RPC_STUB IMFDRMNetHelper_ProcessLicenseRequest_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFDRMNetHelper_GetChainedLicenseResponse_Proxy( + IMFDRMNetHelper* This, + BYTE **ppLicenseResponse, + DWORD *pcbLicenseResponse); +void __RPC_STUB IMFDRMNetHelper_GetChainedLicenseResponse_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFDRMNetHelper_INTERFACE_DEFINED__ */ + +#endif +/***************************************************************************** + * IMFASFProfile interface + */ +#ifndef __IMFASFProfile_INTERFACE_DEFINED__ +#define __IMFASFProfile_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4") +IMFASFProfile : public IMFAttributes +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamCount( + DWORD *pcStreams) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStream( + DWORD dwStreamIndex, + WORD *pwStreamNumber, + IMFASFStreamConfig **ppIStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( + WORD wStreamNumber, + IMFASFStreamConfig **ppIStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStream( + IMFASFStreamConfig *pIStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveStream( + WORD wStreamNumber) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateStream( + IMFMediaType *pIMediaType, + IMFASFStreamConfig **ppIStream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( + DWORD *pcMutexs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( + DWORD dwMutexIndex, + IMFASFMutualExclusion **ppIMutex) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( + IMFASFMutualExclusion *pIMutex) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( + DWORD dwMutexIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateMutualExclusion( + IMFASFMutualExclusion **ppIMutex) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( + IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddStreamPrioritization( + IMFASFStreamPrioritization *pIStreamPrioritization) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateStreamPrioritization( + IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IMFASFProfile **ppIProfile) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4) +#endif +#else +typedef struct IMFASFProfileVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFProfile* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFProfile* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFProfile* This); + + /*** IMFAttributes methods ***/ + HRESULT (STDMETHODCALLTYPE *GetItem)( + IMFASFProfile* This, + REFGUID guidKey, + PROPVARIANT *pValue); + + HRESULT (STDMETHODCALLTYPE *GetItemType)( + IMFASFProfile* This, + REFGUID guidKey, + MF_ATTRIBUTE_TYPE *pType); + + HRESULT (STDMETHODCALLTYPE *CompareItem)( + IMFASFProfile* This, + REFGUID guidKey, + REFPROPVARIANT Value, + WINBOOL *pbResult); + + HRESULT (STDMETHODCALLTYPE *Compare)( + IMFASFProfile* This, + IMFAttributes *pTheirs, + MF_ATTRIBUTES_MATCH_TYPE MatchType, + WINBOOL *pbResult); + + HRESULT (STDMETHODCALLTYPE *GetUINT32)( + IMFASFProfile* This, + REFGUID guidKey, + UINT32 *punValue); + + HRESULT (STDMETHODCALLTYPE *GetUINT64)( + IMFASFProfile* This, + REFGUID guidKey, + UINT64 *punValue); + + HRESULT (STDMETHODCALLTYPE *GetDouble)( + IMFASFProfile* This, + REFGUID guidKey, + double *pfValue); + + HRESULT (STDMETHODCALLTYPE *GetGUID)( + IMFASFProfile* This, + REFGUID guidKey, + GUID *pguidValue); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IMFASFProfile* This, + REFGUID guidKey, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IMFASFProfile* This, + REFGUID guidKey, + LPWSTR pwszValue, + UINT32 cchBufSize, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( + IMFASFProfile* This, + REFGUID guidKey, + LPWSTR *ppwszValue, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetBlobSize)( + IMFASFProfile* This, + REFGUID guidKey, + UINT32 *pcbBlobSize); + + HRESULT (STDMETHODCALLTYPE *GetBlob)( + IMFASFProfile* This, + REFGUID guidKey, + UINT8 *pBuf, + UINT32 cbBufSize, + UINT32 *pcbBlobSize); + + HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( + IMFASFProfile* This, + REFGUID guidKey, + UINT8 **ppBuf, + UINT32 *pcbSize); + + HRESULT (STDMETHODCALLTYPE *GetUnknown)( + IMFASFProfile* This, + REFGUID guidKey, + REFIID riid, + LPVOID *ppv); + + HRESULT (STDMETHODCALLTYPE *SetItem)( + IMFASFProfile* This, + REFGUID guidKey, + REFPROPVARIANT Value); + + HRESULT (STDMETHODCALLTYPE *DeleteItem)( + IMFASFProfile* This, + REFGUID guidKey); + + HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( + IMFASFProfile* This); + + HRESULT (STDMETHODCALLTYPE *SetUINT32)( + IMFASFProfile* This, + REFGUID guidKey, + UINT32 unValue); + + HRESULT (STDMETHODCALLTYPE *SetUINT64)( + IMFASFProfile* This, + REFGUID guidKey, + UINT64 unValue); + + HRESULT (STDMETHODCALLTYPE *SetDouble)( + IMFASFProfile* This, + REFGUID guidKey, + double fValue); + + HRESULT (STDMETHODCALLTYPE *SetGUID)( + IMFASFProfile* This, + REFGUID guidKey, + REFGUID guidValue); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IMFASFProfile* This, + REFGUID guidKey, + LPCWSTR wszValue); + + HRESULT (STDMETHODCALLTYPE *SetBlob)( + IMFASFProfile* This, + REFGUID guidKey, + const UINT8 *pBuf, + UINT32 cbBufSize); + + HRESULT (STDMETHODCALLTYPE *SetUnknown)( + IMFASFProfile* This, + REFGUID guidKey, + IUnknown *pUnknown); + + HRESULT (STDMETHODCALLTYPE *LockStore)( + IMFASFProfile* This); + + HRESULT (STDMETHODCALLTYPE *UnlockStore)( + IMFASFProfile* This); + + HRESULT (STDMETHODCALLTYPE *GetCount)( + IMFASFProfile* This, + UINT32 *pcItems); + + HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( + IMFASFProfile* This, + UINT32 unIndex, + GUID *pguidKey, + PROPVARIANT *pValue); + + HRESULT (STDMETHODCALLTYPE *CopyAllItems)( + IMFASFProfile* This, + IMFAttributes *pDest); + + /*** IMFASFProfile methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamCount)( + IMFASFProfile* This, + DWORD *pcStreams); + + HRESULT (STDMETHODCALLTYPE *GetStream)( + IMFASFProfile* This, + DWORD dwStreamIndex, + WORD *pwStreamNumber, + IMFASFStreamConfig **ppIStream); + + HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( + IMFASFProfile* This, + WORD wStreamNumber, + IMFASFStreamConfig **ppIStream); + + HRESULT (STDMETHODCALLTYPE *SetStream)( + IMFASFProfile* This, + IMFASFStreamConfig *pIStream); + + HRESULT (STDMETHODCALLTYPE *RemoveStream)( + IMFASFProfile* This, + WORD wStreamNumber); + + HRESULT (STDMETHODCALLTYPE *CreateStream)( + IMFASFProfile* This, + IMFMediaType *pIMediaType, + IMFASFStreamConfig **ppIStream); + + HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( + IMFASFProfile* This, + DWORD *pcMutexs); + + HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( + IMFASFProfile* This, + DWORD dwMutexIndex, + IMFASFMutualExclusion **ppIMutex); + + HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( + IMFASFProfile* This, + IMFASFMutualExclusion *pIMutex); + + HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( + IMFASFProfile* This, + DWORD dwMutexIndex); + + HRESULT (STDMETHODCALLTYPE *CreateMutualExclusion)( + IMFASFProfile* This, + IMFASFMutualExclusion **ppIMutex); + + HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)( + IMFASFProfile* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); + + HRESULT (STDMETHODCALLTYPE *AddStreamPrioritization)( + IMFASFProfile* This, + IMFASFStreamPrioritization *pIStreamPrioritization); + + HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)( + IMFASFProfile* This); + + HRESULT (STDMETHODCALLTYPE *CreateStreamPrioritization)( + IMFASFProfile* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IMFASFProfile* This, + IMFASFProfile **ppIProfile); + + END_INTERFACE +} IMFASFProfileVtbl; +interface IMFASFProfile { + CONST_VTBL IMFASFProfileVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This) +/*** IMFAttributes methods ***/ +#define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) +#define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) +#define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) +#define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) +#define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) +#define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) +#define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) +#define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) +#define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) +#define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) +#define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) +#define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) +#define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) +#define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) +#define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) +#define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) +#define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) +#define IMFASFProfile_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) +#define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) +#define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) +#define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) +#define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) +#define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) +#define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) +#define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) +#define IMFASFProfile_LockStore(This) (This)->lpVtbl->LockStore(This) +#define IMFASFProfile_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) +#define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) +#define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) +#define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) +/*** IMFASFProfile methods ***/ +#define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) +#define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) +#define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream) +#define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream) +#define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber) +#define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream) +#define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs) +#define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex) +#define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex) +#define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex) +#define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex) +#define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization) +#define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization) +#define IMFASFProfile_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This) +#define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization) +#define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFProfile_AddRef(IMFASFProfile* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFProfile_Release(IMFASFProfile* This) { + return This->lpVtbl->Release(This); +} +/*** IMFAttributes methods ***/ +static FORCEINLINE HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) { + return This->lpVtbl->GetItem(This,guidKey,pValue); +} +static FORCEINLINE HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { + return This->lpVtbl->GetItemType(This,guidKey,pType); +} +static FORCEINLINE HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { + return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); +} +static FORCEINLINE HRESULT IMFASFProfile_Compare(IMFASFProfile* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { + return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); +} +static FORCEINLINE HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) { + return This->lpVtbl->GetUINT32(This,guidKey,punValue); +} +static FORCEINLINE HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) { + return This->lpVtbl->GetUINT64(This,guidKey,punValue); +} +static FORCEINLINE HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) { + return This->lpVtbl->GetDouble(This,guidKey,pfValue); +} +static FORCEINLINE HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) { + return This->lpVtbl->GetGUID(This,guidKey,pguidValue); +} +static FORCEINLINE HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) { + return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); +} +static FORCEINLINE HRESULT IMFASFProfile_GetString(IMFASFProfile* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { + return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); +} +static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { + return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); +} +static FORCEINLINE HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) { + return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); +} +static FORCEINLINE HRESULT IMFASFProfile_GetBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { + return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); +} +static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { + return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); +} +static FORCEINLINE HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { + return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); +} +static FORCEINLINE HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) { + return This->lpVtbl->SetItem(This,guidKey,Value); +} +static FORCEINLINE HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) { + return This->lpVtbl->DeleteItem(This,guidKey); +} +static FORCEINLINE HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) { + return This->lpVtbl->DeleteAllItems(This); +} +static FORCEINLINE HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) { + return This->lpVtbl->SetUINT32(This,guidKey,unValue); +} +static FORCEINLINE HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) { + return This->lpVtbl->SetUINT64(This,guidKey,unValue); +} +static FORCEINLINE HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) { + return This->lpVtbl->SetDouble(This,guidKey,fValue); +} +static FORCEINLINE HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) { + return This->lpVtbl->SetGUID(This,guidKey,guidValue); +} +static FORCEINLINE HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) { + return This->lpVtbl->SetString(This,guidKey,wszValue); +} +static FORCEINLINE HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { + return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); +} +static FORCEINLINE HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) { + return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); +} +static FORCEINLINE HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) { + return This->lpVtbl->LockStore(This); +} +static FORCEINLINE HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) { + return This->lpVtbl->UnlockStore(This); +} +static FORCEINLINE HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) { + return This->lpVtbl->GetCount(This,pcItems); +} +static FORCEINLINE HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { + return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); +} +static FORCEINLINE HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) { + return This->lpVtbl->CopyAllItems(This,pDest); +} +/*** IMFASFProfile methods ***/ +static FORCEINLINE HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) { + return This->lpVtbl->GetStreamCount(This,pcStreams); +} +static FORCEINLINE HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) { + return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream); +} +static FORCEINLINE HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) { + return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream); +} +static FORCEINLINE HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) { + return This->lpVtbl->SetStream(This,pIStream); +} +static FORCEINLINE HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) { + return This->lpVtbl->RemoveStream(This,wStreamNumber); +} +static FORCEINLINE HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) { + return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream); +} +static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) { + return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs); +} +static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) { + return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex); +} +static FORCEINLINE HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) { + return This->lpVtbl->AddMutualExclusion(This,pIMutex); +} +static FORCEINLINE HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) { + return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex); +} +static FORCEINLINE HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) { + return This->lpVtbl->CreateMutualExclusion(This,ppIMutex); +} +static FORCEINLINE HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { + return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization); +} +static FORCEINLINE HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) { + return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization); +} +static FORCEINLINE HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) { + return This->lpVtbl->RemoveStreamPrioritization(This); +} +static FORCEINLINE HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { + return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization); +} +static FORCEINLINE HRESULT IMFASFProfile_Clone(IMFASFProfile* This,IMFASFProfile **ppIProfile) { + return This->lpVtbl->Clone(This,ppIProfile); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamCount_Proxy( + IMFASFProfile* This, + DWORD *pcStreams); +void __RPC_STUB IMFASFProfile_GetStreamCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStream_Proxy( + IMFASFProfile* This, + DWORD dwStreamIndex, + WORD *pwStreamNumber, + IMFASFStreamConfig **ppIStream); +void __RPC_STUB IMFASFProfile_GetStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamByNumber_Proxy( + IMFASFProfile* This, + WORD wStreamNumber, + IMFASFStreamConfig **ppIStream); +void __RPC_STUB IMFASFProfile_GetStreamByNumber_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_SetStream_Proxy( + IMFASFProfile* This, + IMFASFStreamConfig *pIStream); +void __RPC_STUB IMFASFProfile_SetStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveStream_Proxy( + IMFASFProfile* This, + WORD wStreamNumber); +void __RPC_STUB IMFASFProfile_RemoveStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateStream_Proxy( + IMFASFProfile* This, + IMFMediaType *pIMediaType, + IMFASFStreamConfig **ppIStream); +void __RPC_STUB IMFASFProfile_CreateStream_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetMutualExclusionCount_Proxy( + IMFASFProfile* This, + DWORD *pcMutexs); +void __RPC_STUB IMFASFProfile_GetMutualExclusionCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetMutualExclusion_Proxy( + IMFASFProfile* This, + DWORD dwMutexIndex, + IMFASFMutualExclusion **ppIMutex); +void __RPC_STUB IMFASFProfile_GetMutualExclusion_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_AddMutualExclusion_Proxy( + IMFASFProfile* This, + IMFASFMutualExclusion *pIMutex); +void __RPC_STUB IMFASFProfile_AddMutualExclusion_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveMutualExclusion_Proxy( + IMFASFProfile* This, + DWORD dwMutexIndex); +void __RPC_STUB IMFASFProfile_RemoveMutualExclusion_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateMutualExclusion_Proxy( + IMFASFProfile* This, + IMFASFMutualExclusion **ppIMutex); +void __RPC_STUB IMFASFProfile_CreateMutualExclusion_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamPrioritization_Proxy( + IMFASFProfile* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); +void __RPC_STUB IMFASFProfile_GetStreamPrioritization_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_AddStreamPrioritization_Proxy( + IMFASFProfile* This, + IMFASFStreamPrioritization *pIStreamPrioritization); +void __RPC_STUB IMFASFProfile_AddStreamPrioritization_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveStreamPrioritization_Proxy( + IMFASFProfile* This); +void __RPC_STUB IMFASFProfile_RemoveStreamPrioritization_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateStreamPrioritization_Proxy( + IMFASFProfile* This, + IMFASFStreamPrioritization **ppIStreamPrioritization); +void __RPC_STUB IMFASFProfile_CreateStreamPrioritization_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFProfile_Clone_Proxy( + IMFASFProfile* This, + IMFASFProfile **ppIProfile); +void __RPC_STUB IMFASFProfile_Clone_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFProfile_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFASFStreamConfig interface + */ +#ifndef __IMFASFStreamConfig_INTERFACE_DEFINED__ +#define __IMFASFStreamConfig_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913") +IMFASFStreamConfig : public IMFAttributes +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamType( + GUID *pguidStreamType) = 0; + + virtual WORD STDMETHODCALLTYPE GetStreamNumber( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( + WORD wStreamNum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMediaType( + IMFMediaType **ppIMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMediaType( + IMFMediaType *pIMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPayloadExtensionCount( + WORD *pcPayloadExtensions) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPayloadExtension( + WORD wPayloadExtensionNumber, + GUID *pguidExtensionSystemID, + WORD *pcbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD *pcbExtensionSystemInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddPayloadExtension( + GUID guidExtensionSystemID, + WORD cbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD cbExtensionSystemInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveAllPayloadExtensions( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IMFASFStreamConfig **ppIStreamConfig) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13) +#endif +#else +typedef struct IMFASFStreamConfigVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFASFStreamConfig* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFASFStreamConfig* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFASFStreamConfig* This); + + /*** IMFAttributes methods ***/ + HRESULT (STDMETHODCALLTYPE *GetItem)( + IMFASFStreamConfig* This, + REFGUID guidKey, + PROPVARIANT *pValue); + + HRESULT (STDMETHODCALLTYPE *GetItemType)( + IMFASFStreamConfig* This, + REFGUID guidKey, + MF_ATTRIBUTE_TYPE *pType); + + HRESULT (STDMETHODCALLTYPE *CompareItem)( + IMFASFStreamConfig* This, + REFGUID guidKey, + REFPROPVARIANT Value, + WINBOOL *pbResult); + + HRESULT (STDMETHODCALLTYPE *Compare)( + IMFASFStreamConfig* This, + IMFAttributes *pTheirs, + MF_ATTRIBUTES_MATCH_TYPE MatchType, + WINBOOL *pbResult); + + HRESULT (STDMETHODCALLTYPE *GetUINT32)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT32 *punValue); + + HRESULT (STDMETHODCALLTYPE *GetUINT64)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT64 *punValue); + + HRESULT (STDMETHODCALLTYPE *GetDouble)( + IMFASFStreamConfig* This, + REFGUID guidKey, + double *pfValue); + + HRESULT (STDMETHODCALLTYPE *GetGUID)( + IMFASFStreamConfig* This, + REFGUID guidKey, + GUID *pguidValue); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IMFASFStreamConfig* This, + REFGUID guidKey, + LPWSTR pwszValue, + UINT32 cchBufSize, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( + IMFASFStreamConfig* This, + REFGUID guidKey, + LPWSTR *ppwszValue, + UINT32 *pcchLength); + + HRESULT (STDMETHODCALLTYPE *GetBlobSize)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT32 *pcbBlobSize); + + HRESULT (STDMETHODCALLTYPE *GetBlob)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT8 *pBuf, + UINT32 cbBufSize, + UINT32 *pcbBlobSize); + + HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT8 **ppBuf, + UINT32 *pcbSize); + + HRESULT (STDMETHODCALLTYPE *GetUnknown)( + IMFASFStreamConfig* This, + REFGUID guidKey, + REFIID riid, + LPVOID *ppv); + + HRESULT (STDMETHODCALLTYPE *SetItem)( + IMFASFStreamConfig* This, + REFGUID guidKey, + REFPROPVARIANT Value); + + HRESULT (STDMETHODCALLTYPE *DeleteItem)( + IMFASFStreamConfig* This, + REFGUID guidKey); + + HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( + IMFASFStreamConfig* This); + + HRESULT (STDMETHODCALLTYPE *SetUINT32)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT32 unValue); + + HRESULT (STDMETHODCALLTYPE *SetUINT64)( + IMFASFStreamConfig* This, + REFGUID guidKey, + UINT64 unValue); + + HRESULT (STDMETHODCALLTYPE *SetDouble)( + IMFASFStreamConfig* This, + REFGUID guidKey, + double fValue); + + HRESULT (STDMETHODCALLTYPE *SetGUID)( + IMFASFStreamConfig* This, + REFGUID guidKey, + REFGUID guidValue); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IMFASFStreamConfig* This, + REFGUID guidKey, + LPCWSTR wszValue); + + HRESULT (STDMETHODCALLTYPE *SetBlob)( + IMFASFStreamConfig* This, + REFGUID guidKey, + const UINT8 *pBuf, + UINT32 cbBufSize); + + HRESULT (STDMETHODCALLTYPE *SetUnknown)( + IMFASFStreamConfig* This, + REFGUID guidKey, + IUnknown *pUnknown); + + HRESULT (STDMETHODCALLTYPE *LockStore)( + IMFASFStreamConfig* This); + + HRESULT (STDMETHODCALLTYPE *UnlockStore)( + IMFASFStreamConfig* This); + + HRESULT (STDMETHODCALLTYPE *GetCount)( + IMFASFStreamConfig* This, + UINT32 *pcItems); + + HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( + IMFASFStreamConfig* This, + UINT32 unIndex, + GUID *pguidKey, + PROPVARIANT *pValue); + + HRESULT (STDMETHODCALLTYPE *CopyAllItems)( + IMFASFStreamConfig* This, + IMFAttributes *pDest); + + /*** IMFASFStreamConfig methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamType)( + IMFASFStreamConfig* This, + GUID *pguidStreamType); + + WORD (STDMETHODCALLTYPE *GetStreamNumber)( + IMFASFStreamConfig* This); + + HRESULT (STDMETHODCALLTYPE *SetStreamNumber)( + IMFASFStreamConfig* This, + WORD wStreamNum); + + HRESULT (STDMETHODCALLTYPE *GetMediaType)( + IMFASFStreamConfig* This, + IMFMediaType **ppIMediaType); + + HRESULT (STDMETHODCALLTYPE *SetMediaType)( + IMFASFStreamConfig* This, + IMFMediaType *pIMediaType); + + HRESULT (STDMETHODCALLTYPE *GetPayloadExtensionCount)( + IMFASFStreamConfig* This, + WORD *pcPayloadExtensions); + + HRESULT (STDMETHODCALLTYPE *GetPayloadExtension)( + IMFASFStreamConfig* This, + WORD wPayloadExtensionNumber, + GUID *pguidExtensionSystemID, + WORD *pcbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD *pcbExtensionSystemInfo); + + HRESULT (STDMETHODCALLTYPE *AddPayloadExtension)( + IMFASFStreamConfig* This, + GUID guidExtensionSystemID, + WORD cbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD cbExtensionSystemInfo); + + HRESULT (STDMETHODCALLTYPE *RemoveAllPayloadExtensions)( + IMFASFStreamConfig* This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IMFASFStreamConfig* This, + IMFASFStreamConfig **ppIStreamConfig); + + END_INTERFACE +} IMFASFStreamConfigVtbl; +interface IMFASFStreamConfig { + CONST_VTBL IMFASFStreamConfigVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This) +/*** IMFAttributes methods ***/ +#define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) +#define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) +#define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) +#define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) +#define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) +#define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) +#define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) +#define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) +#define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) +#define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) +#define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) +#define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) +#define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) +#define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) +#define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) +#define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) +#define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) +#define IMFASFStreamConfig_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) +#define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) +#define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) +#define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) +#define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) +#define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) +#define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) +#define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) +#define IMFASFStreamConfig_LockStore(This) (This)->lpVtbl->LockStore(This) +#define IMFASFStreamConfig_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) +#define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) +#define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) +#define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) +/*** IMFASFStreamConfig methods ***/ +#define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) +#define IMFASFStreamConfig_GetStreamNumber(This) (This)->lpVtbl->GetStreamNumber(This) +#define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) +#define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType) +#define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType) +#define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions) +#define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) +#define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) +#define IMFASFStreamConfig_RemoveAllPayloadExtensions(This) (This)->lpVtbl->RemoveAllPayloadExtensions(This) +#define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) { + return This->lpVtbl->Release(This); +} +/*** IMFAttributes methods ***/ +static FORCEINLINE HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) { + return This->lpVtbl->GetItem(This,guidKey,pValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { + return This->lpVtbl->GetItemType(This,guidKey,pType); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { + return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_Compare(IMFASFStreamConfig* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { + return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) { + return This->lpVtbl->GetUINT32(This,guidKey,punValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) { + return This->lpVtbl->GetUINT64(This,guidKey,punValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) { + return This->lpVtbl->GetDouble(This,guidKey,pfValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) { + return This->lpVtbl->GetGUID(This,guidKey,pguidValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) { + return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { + return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { + return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) { + return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { + return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { + return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { + return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) { + return This->lpVtbl->SetItem(This,guidKey,Value); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) { + return This->lpVtbl->DeleteItem(This,guidKey); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) { + return This->lpVtbl->DeleteAllItems(This); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) { + return This->lpVtbl->SetUINT32(This,guidKey,unValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) { + return This->lpVtbl->SetUINT64(This,guidKey,unValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) { + return This->lpVtbl->SetDouble(This,guidKey,fValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) { + return This->lpVtbl->SetGUID(This,guidKey,guidValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) { + return This->lpVtbl->SetString(This,guidKey,wszValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { + return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) { + return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) { + return This->lpVtbl->LockStore(This); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) { + return This->lpVtbl->UnlockStore(This); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) { + return This->lpVtbl->GetCount(This,pcItems); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { + return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) { + return This->lpVtbl->CopyAllItems(This,pDest); +} +/*** IMFASFStreamConfig methods ***/ +static FORCEINLINE HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) { + return This->lpVtbl->GetStreamType(This,pguidStreamType); +} +static FORCEINLINE WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) { + return This->lpVtbl->GetStreamNumber(This); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) { + return This->lpVtbl->SetStreamNumber(This,wStreamNum); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) { + return This->lpVtbl->GetMediaType(This,ppIMediaType); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) { + return This->lpVtbl->SetMediaType(This,pIMediaType); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) { + return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtension(IMFASFStreamConfig* This,WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) { + return This->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_AddPayloadExtension(IMFASFStreamConfig* This,GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) { + return This->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) { + return This->lpVtbl->RemoveAllPayloadExtensions(This); +} +static FORCEINLINE HRESULT IMFASFStreamConfig_Clone(IMFASFStreamConfig* This,IMFASFStreamConfig **ppIStreamConfig) { + return This->lpVtbl->Clone(This,ppIStreamConfig); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetStreamType_Proxy( + IMFASFStreamConfig* This, + GUID *pguidStreamType); +void __RPC_STUB IMFASFStreamConfig_GetStreamType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +WORD STDMETHODCALLTYPE IMFASFStreamConfig_GetStreamNumber_Proxy( + IMFASFStreamConfig* This); +void __RPC_STUB IMFASFStreamConfig_GetStreamNumber_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_SetStreamNumber_Proxy( + IMFASFStreamConfig* This, + WORD wStreamNum); +void __RPC_STUB IMFASFStreamConfig_SetStreamNumber_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetMediaType_Proxy( + IMFASFStreamConfig* This, + IMFMediaType **ppIMediaType); +void __RPC_STUB IMFASFStreamConfig_GetMediaType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_SetMediaType_Proxy( + IMFASFStreamConfig* This, + IMFMediaType *pIMediaType); +void __RPC_STUB IMFASFStreamConfig_SetMediaType_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetPayloadExtensionCount_Proxy( + IMFASFStreamConfig* This, + WORD *pcPayloadExtensions); +void __RPC_STUB IMFASFStreamConfig_GetPayloadExtensionCount_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetPayloadExtension_Proxy( + IMFASFStreamConfig* This, + WORD wPayloadExtensionNumber, + GUID *pguidExtensionSystemID, + WORD *pcbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD *pcbExtensionSystemInfo); +void __RPC_STUB IMFASFStreamConfig_GetPayloadExtension_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_AddPayloadExtension_Proxy( + IMFASFStreamConfig* This, + GUID guidExtensionSystemID, + WORD cbExtensionDataSize, + BYTE *pbExtensionSystemInfo, + DWORD cbExtensionSystemInfo); +void __RPC_STUB IMFASFStreamConfig_AddPayloadExtension_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_RemoveAllPayloadExtensions_Proxy( + IMFASFStreamConfig* This); +void __RPC_STUB IMFASFStreamConfig_RemoveAllPayloadExtensions_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_Clone_Proxy( + IMFASFStreamConfig* This, + IMFASFStreamConfig **ppIStreamConfig); +void __RPC_STUB IMFASFStreamConfig_Clone_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFASFStreamConfig_INTERFACE_DEFINED__ */ + + +EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3 }; +EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4 }; +EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5 }; +EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1 }; + +STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); +STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); +STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream); +STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); +STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); +STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); +STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); +STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD, IMFASFProfile **ppIProfile); +STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); +STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); +STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); +STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector); +STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD); +HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); +HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); +#endif +/* 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 *); + +/* End additional prototypes */ #ifdef __cplusplus } #endif -#endif /* (_WIN32_WINNT >= 0x0600) */ -#endif /*_INC_WMCONTAINER*/ +#endif /* __wmcontainer_h__ */
diff --git a/mingw-w64-headers/include/wmcontainer.idl b/mingw-w64-headers/include/wmcontainer.idl new file mode 100644 index 0000000..c0b6497 --- /dev/null +++ b/mingw-w64-headers/include/wmcontainer.idl
@@ -0,0 +1,309 @@ +/** + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ + +cpp_quote("#include <winapifamily.h>") +cpp_quote("") +cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") + +import "mfidl.idl"; + +cpp_quote("") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);") +cpp_quote("EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58);") +cpp_quote("EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);") +cpp_quote("#if WINVER >= 0x0601") +cpp_quote("EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd);") +cpp_quote("EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);") +cpp_quote("#endif") +cpp_quote("") +cpp_quote("EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);") +cpp_quote("EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);") +cpp_quote("EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);") +cpp_quote("EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad);") +cpp_quote("EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e);") +cpp_quote("EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f);") +cpp_quote("EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);") +cpp_quote("EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);") +cpp_quote("EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);") +cpp_quote("EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);") + +interface IMFASFProfile; +interface IMFASFStreamConfig; +interface IMFASFMutualExclusion; +interface IMFASFStreamPrioritization; + +cpp_quote("#define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff") +cpp_quote("#define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff") +cpp_quote("#define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll") +cpp_quote("#define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll") +cpp_quote("") +cpp_quote("#define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD))") +cpp_quote("") +cpp_quote("#define MFASF_MAX_STREAM_NUMBER 127") +cpp_quote("#define MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1)") +cpp_quote("#define MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff") +cpp_quote("#define MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff") +cpp_quote("#define MFASF_DEFAULT_BUFFER_WINDOW_MS 3000") + +cpp_quote("") +typedef enum MFASF_SPLITTERFLAGS { + MFASF_SPLITTER_REVERSE = 0x00000001, + MFASF_SPLITTER_WMDRM = 0x00000002, +} MFASF_SPLITTERFLAGS; + +typedef enum ASF_STATUSFLAGS { + ASF_STATUSFLAGS_INCOMPLETE = 0x1 +#if WINVER >= 0x0601 + ,ASF_STATUSFLAGS_NONFATAL_ERROR = 0x2 +#endif +} ASF_STATUSFLAGS; + +typedef enum MFASF_MULTIPLEXERFLAGS { + MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1 +} MFASF_MULTIPLEXERFLAGS; + +typedef enum MFASF_INDEXERFLAGS { + MFASF_INDEXER_WRITE_NEW_INDEX = 0x1, + MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2, + MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4 +} MFASF_INDEXER_FLAGS; + +typedef enum MFASF_STREAMSELECTORFLAGS { + MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x00000001, + MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x00000002, +} MFASF_STREAMSELECTOR_FLAGS; + +typedef enum ASF_SELECTION_STATUS { + ASF_STATUS_NOTSELECTED = 0, + ASF_STATUS_CLEANPOINTSONLY = 1, + ASF_STATUS_ALLDATAUNITS = 2, +} ASF_SELECTION_STATUS; + +typedef enum _MFSINK_WMDRMACTION { + MFSINK_WMDRMACTION_UNDEFINED = 0, + MFSINK_WMDRMACTION_ENCODE = 1, + MFSINK_WMDRMACTION_TRANSCODE = 2, + MFSINK_WMDRMACTION_TRANSCRYPT = 3, + MFSINK_WMDRMACTION_LAST = 3 +} MFSINK_WMDRMACTION; + +cpp_quote("") +typedef struct ASF_MUX_STATISTICS { + DWORD cFramesWritten; + DWORD cFramesDropped; +} ASF_MUX_STATISTICS; + +typedef struct _ASF_INDEX_IDENTIFIER { + GUID guidIndexType; + WORD wStreamNumber; +} ASF_INDEX_IDENTIFIER; + +typedef struct _ASF_INDEX_DESCRIPTOR { + ASF_INDEX_IDENTIFIER Identifier; + WORD cPerEntryBytes; + WCHAR szDescription[32]; + DWORD dwInterval; +} ASF_INDEX_DESCRIPTOR; + +cpp_quote("") +[object, uuid (B1DCA5CD-D5DA-4451-8e9e-DB5C59914EAD), local] +interface IMFASFContentInfo : IUnknown { + HRESULT GetHeaderSize ([in] IMFMediaBuffer *pIStartOfContent,[out] QWORD *cbHeaderSize); + HRESULT ParseHeader ([in] IMFMediaBuffer *pIHeaderBuffer,[in] QWORD cbOffsetWithinHeader); + HRESULT GenerateHeader ([in, out] IMFMediaBuffer *pIHeader,[out] DWORD *pcbHeader); + HRESULT GetProfile ([out] IMFASFProfile **ppIProfile); + HRESULT SetProfile ([in] IMFASFProfile *pIProfile); + HRESULT GeneratePresentationDescriptor ([out] IMFPresentationDescriptor **ppIPresentationDescriptor); + HRESULT GetEncodingConfigurationPropertyStore ([in] WORD wStreamNumber,[out] IPropertyStore **ppIStore); +}; + +[object, uuid (12558291-E399-11d5-BC2A-00b0d0f3f4ab), local] +interface IMFASFMutualExclusion : IUnknown { + HRESULT GetType ([out] GUID *pguidType); + HRESULT SetType ([in] REFGUID guidType); + HRESULT GetRecordCount ([out] DWORD *pdwRecordCount); + HRESULT GetStreamsForRecord ([in] DWORD dwRecordNumber,[out] WORD *pwStreamNumArray,[in, out] DWORD *pcStreams); + HRESULT AddStreamForRecord ([in] DWORD dwRecordNumber,[in] WORD wStreamNumber); + HRESULT RemoveStreamFromRecord ([in] DWORD dwRecordNumber,[in] WORD wStreamNumber); + HRESULT RemoveRecord ([in] DWORD dwRecordNumber); + HRESULT AddRecord ([out] DWORD *pdwRecordNumber); + HRESULT Clone ([out] IMFASFMutualExclusion **ppIMutex); +}; + +[object, uuid (699bdc27-bbaf-49ff-8e38-9c39c9b5e088), local] +interface IMFASFStreamPrioritization : IUnknown { + HRESULT GetStreamCount ([out] DWORD *pdwStreamCount); + HRESULT GetStream ([in] DWORD dwStreamIndex,[out] WORD *pwStreamNumber,[out] WORD *pwStreamFlags); + HRESULT AddStream ([in] WORD wStreamNumber,[in] WORD wStreamFlags); + HRESULT RemoveStream ([in] DWORD dwStreamIndex); + HRESULT Clone ([out] IMFASFStreamPrioritization **ppIStreamPrioritization); +}; + +[object, local, uuid (12558295-E399-11d5-BC2A-00b0d0f3f4ab)] +interface IMFASFSplitter : IUnknown { + HRESULT Initialize ([in] IMFASFContentInfo *pIContentInfo); + HRESULT SetFlags ([in] DWORD dwFlags); + HRESULT GetFlags ([out] DWORD *pdwFlags); + HRESULT SelectStreams ([in] WORD *pwStreamNumbers,[in] WORD wNumStreams); + HRESULT GetSelectedStreams ([out] WORD *pwStreamNumbers,[in, out] WORD *pwNumStreams); + HRESULT ParseData ([in] IMFMediaBuffer *pIBuffer,[in] DWORD cbBufferOffset,[in] DWORD cbLength); + HRESULT GetNextSample ([out] DWORD *pdwStatusFlags,[out] WORD *pwStreamNumber,[out] IMFSample **ppISample); + HRESULT Flush (); + HRESULT GetLastSendTime ([out] DWORD *pdwLastSendTime); +}; + +[object, local, uuid (57bdd80a-9b38-4838-B737-C58F670D7D4F)] +interface IMFASFMultiplexer : IUnknown { + HRESULT Initialize ([in] IMFASFContentInfo *pIContentInfo); + HRESULT SetFlags ([in] DWORD dwFlags); + HRESULT GetFlags ([out] DWORD *pdwFlags); + HRESULT ProcessSample ([in] WORD wStreamNumber,[in] IMFSample *pISample,[in] LONGLONG hnsTimestampAdjust); + HRESULT GetNextPacket ([out] DWORD *pdwStatusFlags,[out] IMFSample **ppIPacket); + HRESULT Flush (); + HRESULT End ([in, out] IMFASFContentInfo *pIContentInfo); + HRESULT GetStatistics ([in] WORD wStreamNumber,[out] ASF_MUX_STATISTICS *pMuxStats); + HRESULT SetSyncTolerance ([in] DWORD msSyncTolerance); +}; + +[object, uuid (53590f48-DC3B-4297-813f-787761ad7b3e), local] +interface IMFASFIndexer : IUnknown { + HRESULT SetFlags ([in] DWORD dwFlags); + HRESULT GetFlags ([out] DWORD *pdwFlags); + HRESULT Initialize ([in] IMFASFContentInfo *pIContentInfo); + HRESULT GetIndexPosition ([in] IMFASFContentInfo *pIContentInfo,[out] QWORD *pcbIndexOffset); + HRESULT SetIndexByteStreams ([in] IMFByteStream **ppIByteStreams,[in] DWORD cByteStreams); + HRESULT GetIndexByteStreamCount ([out] DWORD *pcByteStreams); + HRESULT GetIndexStatus ([in] ASF_INDEX_IDENTIFIER *pIndexIdentifier,[out] WINBOOL *pfIsIndexed,[out] BYTE *pbIndexDescriptor,[in, out] DWORD *pcbIndexDescriptor); + HRESULT SetIndexStatus ([in] BYTE *pbIndexDescriptor,[in] DWORD cbIndexDescriptor,[in] WINBOOL fGenerateIndex); + HRESULT GetSeekPositionForValue ([in] const PROPVARIANT *pvarValue,[in] ASF_INDEX_IDENTIFIER *pIndexIdentifier,[out] QWORD *pcbOffsetWithinData,[out, optional] MFTIME *phnsApproxTime,[out, optional] DWORD *pdwPayloadNumberOfStreamWithinPacket); + HRESULT GenerateIndexEntries ([in] IMFSample *pIASFPacketSample); + HRESULT CommitIndex ([in] IMFASFContentInfo *pIContentInfo); + HRESULT GetIndexWriteSpace ([out] QWORD *pcbIndexWriteSpace); + HRESULT GetCompletedIndex ([in] IMFMediaBuffer *pIIndexBuffer,[in] QWORD cbOffsetWithinIndex); +}; + +[object, uuid (d01bad4a-4fa0-4a60-9349-c27e62da9d41), local] +interface IMFASFStreamSelector : IUnknown { + HRESULT GetStreamCount ([out] DWORD *pcStreams); + HRESULT GetOutputCount ([out] DWORD *pcOutputs); + HRESULT GetOutputStreamCount ([in] DWORD dwOutputNum,[out] DWORD *pcStreams); + HRESULT GetOutputStreamNumbers ([in] DWORD dwOutputNum,[out] WORD *rgwStreamNumbers); + HRESULT GetOutputFromStream ([in] WORD wStreamNum,[out] DWORD *pdwOutput); + HRESULT GetOutputOverride ([in] DWORD dwOutputNum,[out] ASF_SELECTION_STATUS *pSelection); + HRESULT SetOutputOverride ([in] DWORD dwOutputNum,[in] ASF_SELECTION_STATUS Selection); + HRESULT GetOutputMutexCount ([in] DWORD dwOutputNum,[out] DWORD *pcMutexes); + HRESULT GetOutputMutex ([in] DWORD dwOutputNum,[in] DWORD dwMutexNum,[out] IUnknown **ppMutex); + HRESULT SetOutputMutexSelection ([in] DWORD dwOutputNum,[in] DWORD dwMutexNum,[in] WORD wSelectedRecord); + HRESULT GetBandwidthStepCount ([out] DWORD *pcStepCount); + HRESULT GetBandwidthStep ([in] DWORD dwStepNum,[out] DWORD *pdwBitrate,[out] WORD *rgwStreamNumbers,[out] ASF_SELECTION_STATUS *rgSelections); + HRESULT BitrateToStepNumber ([in] DWORD dwBitrate,[out] DWORD *pdwStepNum); + HRESULT SetStreamSelectorFlags ([in] DWORD dwStreamSelectorFlags); +}; + +cpp_quote("#if WINVER >= 0x0601") +[object, uuid (3d1ff0ea-679a-4190-8d46-7fa69e8c7e15)] +interface IMFDRMNetHelper : IUnknown { + HRESULT ProcessLicenseRequest ([in, size_is (cbLicenseRequest)] BYTE *pLicenseRequest,[in] DWORD cbLicenseRequest,[out, size_is (,*pcbLicenseResponse)] BYTE **ppLicenseResponse,[out] DWORD *pcbLicenseResponse,[out] BSTR *pbstrKID); + HRESULT GetChainedLicenseResponse ([out, size_is (,*pcbLicenseResponse)] BYTE **ppLicenseResponse,[out] DWORD *pcbLicenseResponse); +}; +cpp_quote("#endif") + +[object, local, uuid (D267BF6A-028b-4e0d-903d-43f0ef82d0d4)] +interface IMFASFProfile : IMFAttributes { + HRESULT GetStreamCount ([out] DWORD *pcStreams); + HRESULT GetStream ([in] DWORD dwStreamIndex,[out] WORD *pwStreamNumber,[out] IMFASFStreamConfig **ppIStream); + HRESULT GetStreamByNumber ([in] WORD wStreamNumber,[out] IMFASFStreamConfig **ppIStream); + HRESULT SetStream ([in] IMFASFStreamConfig *pIStream); + HRESULT RemoveStream ([in] WORD wStreamNumber); + HRESULT CreateStream ([in] IMFMediaType *pIMediaType,[out] IMFASFStreamConfig **ppIStream); + HRESULT GetMutualExclusionCount ([out] DWORD *pcMutexs); + HRESULT GetMutualExclusion ([in] DWORD dwMutexIndex,[out] IMFASFMutualExclusion **ppIMutex); + HRESULT AddMutualExclusion ([in] IMFASFMutualExclusion *pIMutex); + HRESULT RemoveMutualExclusion ([in] DWORD dwMutexIndex); + HRESULT CreateMutualExclusion ([out] IMFASFMutualExclusion **ppIMutex); + HRESULT GetStreamPrioritization ([out] IMFASFStreamPrioritization **ppIStreamPrioritization); + HRESULT AddStreamPrioritization ([in] IMFASFStreamPrioritization *pIStreamPrioritization); + HRESULT RemoveStreamPrioritization (); + HRESULT CreateStreamPrioritization ([out] IMFASFStreamPrioritization **ppIStreamPrioritization); + HRESULT Clone ([out] IMFASFProfile **ppIProfile); +}; + +[object, local, uuid (9e8ae8d2-DBBD-4200-9aca-06e6df484913)] +interface IMFASFStreamConfig : IMFAttributes { + HRESULT GetStreamType ([out] GUID *pguidStreamType); + WORD GetStreamNumber (); + HRESULT SetStreamNumber ([in] WORD wStreamNum); + HRESULT GetMediaType ([out] IMFMediaType **ppIMediaType); + HRESULT SetMediaType ([in] IMFMediaType *pIMediaType); + HRESULT GetPayloadExtensionCount ([out] WORD *pcPayloadExtensions); + HRESULT GetPayloadExtension ([in] WORD wPayloadExtensionNumber,[out] GUID *pguidExtensionSystemID,[out] WORD *pcbExtensionDataSize,[out, optional, size_is (*pcbExtensionSystemInfo)] BYTE *pbExtensionSystemInfo,[in, out, optional] DWORD *pcbExtensionSystemInfo); + HRESULT AddPayloadExtension ([in] GUID guidExtensionSystemID,[in] WORD cbExtensionDataSize,[in, size_is (cbExtensionSystemInfo)] BYTE *pbExtensionSystemInfo,[in] DWORD cbExtensionSystemInfo); + HRESULT RemoveAllPayloadExtensions (); + HRESULT Clone ([out] IMFASFStreamConfig **ppIStreamConfig); +}; + + cpp_quote("") +cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3 };") +cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4 };") +cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5 };") +cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1 };") +cpp_quote("") +cpp_quote("STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);") +cpp_quote("STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);") +cpp_quote("STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream);") +cpp_quote("STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);") +cpp_quote("STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);") +cpp_quote("STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);") +cpp_quote("STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);") +cpp_quote("STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD, IMFASFProfile **ppIProfile);") +cpp_quote("STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);") +cpp_quote("STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);") +cpp_quote("STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);") +cpp_quote("STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector);") +cpp_quote("STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD);") +cpp_quote("HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);") +cpp_quote("HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);") + +cpp_quote("#endif")