1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _INC_WMCONTAINER 7#define _INC_WMCONTAINER 8#include <propsys.h> 9#include <mfidl.h> 10 11#if (_WIN32_WINNT >= 0x0600) 12 13#ifdef __IMFASFSplitter_FWD_DEFINED__ 14#define __IMFASFSplitter_FWD_DEFINED__ 15typedef struct IMFASFSplitter IMFASFSplitter; 16#endif 17 18typedef struct IMFASFContentInfo IMFASFContentInfo; 19typedef struct IMFASFProfile IMFASFProfile; 20typedef struct IMFActivate IMFActivate; 21 22#ifndef __MFTIME_DEFINED__ 23#define __MFTIME_DEFINED__ 24__MINGW_EXTENSION typedef LONGLONG MFTIME; 25#endif 26 27typedef enum ASF_SELECTION_STATUS { 28 ASF_STATUS_NOTSELECTED = 0, 29 ASF_STATUS_CLEANPOINTSONLY = 1, 30 ASF_STATUS_ALLDATAUNITS = 2 31} ASF_SELECTION_STATUS; 32 33typedef enum ASF_STATUSFLAGS { 34 ASF_STATUSFLAGS_INCOMPLETE = 0x00000001, 35 ASF_STATUSFLAGS_NONFATAL_ERROR = 0x00000002 36} ASF_STATUSFLAGS; 37 38typedef enum MFASF_MULTIPLEXERFLAGS { 39 MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x00000001 40} MFASF_MULTIPLEXERFLAGS; 41 42typedef enum MFASF_SPLITTERFLAGS { 43 MFASF_SPLITTER_REVERSE = 0x00000001, 44 MFASF_SPLITTER_WMDRM = 0x00000002 45} MFASF_SPLITTERFLAGS; 46 47typedef enum MFASF_STREAMSELECTORFLAGS { 48 MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x00000001, 49 MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x00000002 50} MFASF_STREAMSELECTORFLAGS; 51 52typedef struct ASF_MUX_STATISTICS { 53 DWORD cFramesWritten; 54 DWORD cFramesDropped; 55} ASF_MUX_STATISTICS; 56 57typedef struct _ASF_INDEX_IDENTIFIER { 58 GUID guidIndexType; 59 WORD wStreamNumber; 60} ASF_INDEX_IDENTIFIER; 61 62typedef struct _ASF_INDEX_DESCRIPTOR { 63 ASF_INDEX_IDENTIFIER Identifier; 64 WORD cPerEntryBytes; 65 WCHAR szDescription[32]; 66 DWORD dwInterval; 67} ASF_INDEX_DESCRIPTOR; 68 69#undef INTERFACE 70#define INTERFACE IMFASFMutualExclusion 71#ifdef __GNUC__ 72#warning COM interfaces layout in this header has not been verified. 73#warning COM interfaces with incorrect layout may not work at all. 74__MINGW_BROKEN_INTERFACE(INTERFACE) 75#endif 76DECLARE_INTERFACE_(IMFASFMutualExclusion,IUnknown) 77{ 78 BEGIN_INTERFACE 79 80 /* IUnknown methods */ 81 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 82 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 83 STDMETHOD_(ULONG, Release)(THIS) PURE; 84 85 /* IMFASFMutualExclusion methods */ 86 STDMETHOD_(HRESULT,AddRecord)(THIS_ DWORD *pdwRecordNumber) PURE; 87 STDMETHOD_(HRESULT,AddStreamForRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE; 88 STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE; 89 STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *pdwRecordCount) PURE; 90 STDMETHOD_(HRESULT,GetStreamsForRecord)(THIS_ DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) PURE; 91 STDMETHOD_(HRESULT,GetType)(THIS_ GUID *pguidType) PURE; 92 STDMETHOD_(HRESULT,RemoveRecord)(THIS_ DWORD dwRecordNumber) PURE; 93 STDMETHOD_(HRESULT,RemoveStreamFromRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE; 94 STDMETHOD_(HRESULT,SetType)(THIS_ REFGUID guidType) PURE; 95 96 END_INTERFACE 97}; 98#ifdef COBJMACROS 99#define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 100#define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) 101#define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This) 102#define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber) 103#define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber) 104#define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex) 105#define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount) 106#define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) 107#define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 108#define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber) 109#define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) 110#define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) 111#endif /*COBJMACROS*/ 112 113#undef INTERFACE 114#define INTERFACE IMFASFStreamPrioritization 115#ifdef __GNUC__ 116#warning COM interfaces layout in this header has not been verified. 117#warning COM interfaces with incorrect layout may not work at all. 118__MINGW_BROKEN_INTERFACE(INTERFACE) 119#endif 120DECLARE_INTERFACE_(IMFASFStreamPrioritization,IUnknown) 121{ 122 BEGIN_INTERFACE 123 124 /* IUnknown methods */ 125 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 126 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 127 STDMETHOD_(ULONG, Release)(THIS) PURE; 128 129 /* IMFASFStreamPrioritization methods */ 130 STDMETHOD_(HRESULT,AddStream)(THIS_ WORD wStreamNumber,WORD wStreamFlags) PURE; 131 STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; 132 STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) PURE; 133 STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD dwStreamIndex) PURE; 134 STDMETHOD_(HRESULT,RemoveStream)(THIS_ DWORD dwStreamIndex) PURE; 135 136 END_INTERFACE 137}; 138#ifdef COBJMACROS 139#define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 140#define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) 141#define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) 142#define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags) 143#define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization) 144#define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) 145#define IMFASFStreamPrioritization_GetStreamCount(This,dwStreamIndex) (This)->lpVtbl->GetStreamCount(This,dwStreamIndex) 146#define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex) 147#endif /*COBJMACROS*/ 148 149 150#undef INTERFACE 151#define INTERFACE IMFASFSplitter 152#ifdef __GNUC__ 153#warning COM interfaces layout in this header has not been verified. 154#warning COM interfaces with incorrect layout may not work at all. 155__MINGW_BROKEN_INTERFACE(INTERFACE) 156#endif 157DECLARE_INTERFACE_(IMFASFSplitter,IUnknown) 158{ 159 BEGIN_INTERFACE 160 161 /* IUnknown methods */ 162 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 163 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 164 STDMETHOD_(ULONG, Release)(THIS) PURE; 165 166 /* IMFASFSplitter methods */ 167 STDMETHOD_(HRESULT,Flush)(THIS) PURE; 168 STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; 169 STDMETHOD_(HRESULT,GetLastSendTime)(THIS_ DWORD *pdwLastSendTime) PURE; 170 STDMETHOD_(HRESULT,GetNextSample)(THIS_ DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) PURE; 171 STDMETHOD_(HRESULT,GetSelectedStreams)(THIS_ WORD *pwStreamNumbers,WORD *pwNumStreams) PURE; 172 STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; 173 STDMETHOD_(HRESULT,ParseData)(THIS_ IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) PURE; 174 STDMETHOD_(HRESULT,SelectStreams)(THIS_ WORD *pwStreamNumbers,WORD wNumStreams) PURE; 175 STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; 176 177 END_INTERFACE 178}; 179#ifdef COBJMACROS 180#define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 181#define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This) 182#define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This) 183#define IMFASFSplitter_Flush() (This)->lpVtbl->Flush(This) 184#define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 185#define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime) 186#define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) 187#define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) 188#define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 189#define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength) 190#define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams) 191#define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 192#endif /*COBJMACROS*/ 193 194#undef INTERFACE 195#define INTERFACE IMFASFContentInfo 196#ifdef __GNUC__ 197#warning COM interfaces layout in this header has not been verified. 198#warning COM interfaces with incorrect layout may not work at all. 199__MINGW_BROKEN_INTERFACE(INTERFACE) 200#endif 201DECLARE_INTERFACE_(IMFASFContentInfo,IMFAttributes) 202{ 203 BEGIN_INTERFACE 204 205 /* IUnknown methods */ 206 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 207 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 208 STDMETHOD_(ULONG, Release)(THIS) PURE; 209 210 /* IMFAttributes methods */ 211 STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; 212 STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; 213 STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; 214 STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; 215 STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; 216 STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; 217 STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; 218 STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; 219 STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; 220 STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; 221 STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; 222 STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; 223 STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; 224 STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; 225 STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; 226 STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; 227 STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; 228 STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; 229 STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; 230 STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; 231 STDMETHOD_(HRESULT,LockStore)(THIS) PURE; 232 STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; 233 STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; 234 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; 235 STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; 236 STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; 237 STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; 238 STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; 239 STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; 240 STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; 241 242 /* IMFASFContentInfo methods */ 243 STDMETHOD_(HRESULT,GenerateHeader)(THIS_ IMFMediaBuffer *pIHeader,DWORD *pcbHeader) PURE; 244 STDMETHOD_(HRESULT,GeneratePresentationDescriptor)(THIS_ IMFPresentationDescriptor **ppIPresentationDescriptor) PURE; 245 STDMETHOD_(HRESULT,GetEncodingConfigurationPropertyStore)(THIS_ WORD wStreamNumber,IPropertyStore **ppIStore) PURE; 246 STDMETHOD_(HRESULT,GetHeaderSize)(THIS_ IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) PURE; 247 STDMETHOD_(HRESULT,GetProfile)(THIS_ IMFASFProfile **ppIProfile) PURE; 248 STDMETHOD_(HRESULT,ParseHeader)(THIS_ IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) PURE; 249 STDMETHOD_(HRESULT,SetProfile)(THIS_ IMFASFProfile *pIProfile) PURE; 250 251 END_INTERFACE 252}; 253#ifdef COBJMACROS 254#define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 255#define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) 256#define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This) 257#define IMFASFContentInfo_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 258#define IMFASFContentInfo_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 259#define IMFASFContentInfo_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 260#define IMFASFContentInfo_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) 261#define IMFASFContentInfo_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 262#define IMFASFContentInfo_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 263#define IMFASFContentInfo_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 264#define IMFASFContentInfo_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 265#define IMFASFContentInfo_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 266#define IMFASFContentInfo_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 267#define IMFASFContentInfo_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 268#define IMFASFContentInfo_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 269#define IMFASFContentInfo_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 270#define IMFASFContentInfo_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 271#define IMFASFContentInfo_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 272#define IMFASFContentInfo_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 273#define IMFASFContentInfo_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 274#define IMFASFContentInfo_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 275#define IMFASFContentInfo_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 276#define IMFASFContentInfo_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 277#define IMFASFContentInfo_LockStore() (This)->lpVtbl->LockStore(This) 278#define IMFASFContentInfo_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 279#define IMFASFContentInfo_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 280#define IMFASFContentInfo_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 281#define IMFASFContentInfo_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 282#define IMFASFContentInfo_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 283#define IMFASFContentInfo_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 284#define IMFASFContentInfo_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 285#define IMFASFContentInfo_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 286#define IMFASFContentInfo_UnlockStore() (This)->lpVtbl->UnlockStore(This) 287#define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader) 288#define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor) 289#define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) 290#define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize) 291#define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile) 292#define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) 293#define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile) 294#endif /*COBJMACROS*/ 295 296#undef INTERFACE 297#define INTERFACE IMFASFStreamConfig 298#ifdef __GNUC__ 299#warning COM interfaces layout in this header has not been verified. 300#warning COM interfaces with incorrect layout may not work at all. 301__MINGW_BROKEN_INTERFACE(INTERFACE) 302#endif 303DECLARE_INTERFACE_(IMFASFStreamConfig,IMFAttributes) 304{ 305 BEGIN_INTERFACE 306 307 /* IUnknown methods */ 308 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 309 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 310 STDMETHOD_(ULONG, Release)(THIS) PURE; 311 312 /* IMFAttributes methods */ 313 STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; 314 STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; 315 STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; 316 STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; 317 STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; 318 STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; 319 STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; 320 STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; 321 STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; 322 STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; 323 STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; 324 STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; 325 STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; 326 STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; 327 STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; 328 STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; 329 STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; 330 STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; 331 STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; 332 STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; 333 STDMETHOD_(HRESULT,LockStore)(THIS) PURE; 334 STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; 335 STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; 336 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; 337 STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; 338 STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; 339 STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; 340 STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; 341 STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; 342 STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; 343 344 /* IMFASFStreamConfig methods */ 345 STDMETHOD_(HRESULT,AddPayloadExtension)(THIS_ GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) PURE; 346 STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamConfig **ppIStreamConfig) PURE; 347 STDMETHOD_(HRESULT,GetMediaType)(THIS_ IMFMediaType **ppIMediaType) PURE; 348 STDMETHOD_(HRESULT,GetPayloadExtension)(THIS_ WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) PURE; 349 STDMETHOD_(HRESULT,GetPayloadExtensionCount)(THIS_ WORD *pcPayloadExtensions) PURE; 350 STDMETHOD_(WORD,GetStreamNumber)(THIS) PURE; 351 STDMETHOD_(HRESULT,GetStreamType)(THIS_ GUID *pguidStreamType) PURE; 352 STDMETHOD_(HRESULT,RemoveAllPayloadExtensions)(THIS) PURE; 353 STDMETHOD_(HRESULT,SetMediaType)(THIS_ IMFMediaType *pIMediaType) PURE; 354 STDMETHOD_(HRESULT,SetStreamNumber)(THIS_ WORD wStreamNum) PURE; 355 356 END_INTERFACE 357}; 358#ifdef COBJMACROS 359#define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 360#define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) 361#define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This) 362#define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 363#define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 364#define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 365#define IMFASFStreamConfig_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) 366#define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 367#define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 368#define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 369#define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 370#define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 371#define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 372#define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 373#define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 374#define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 375#define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 376#define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 377#define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 378#define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 379#define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 380#define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 381#define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 382#define IMFASFStreamConfig_LockStore() (This)->lpVtbl->LockStore(This) 383#define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 384#define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 385#define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 386#define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 387#define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 388#define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 389#define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 390#define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 391#define IMFASFStreamConfig_UnlockStore() (This)->lpVtbl->UnlockStore(This) 392#define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) 393#define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig) 394#define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType) 395#define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) 396#define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions) 397#define IMFASFStreamConfig_GetStreamNumber() (This)->lpVtbl->GetStreamNumber(This) 398#define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) 399#define IMFASFStreamConfig_RemoveAllPayloadExtensions() (This)->lpVtbl->RemoveAllPayloadExtensions(This) 400#define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType) 401#define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) 402#endif /*COBJMACROS*/ 403 404#undef INTERFACE 405#define INTERFACE IMFASFProfile 406#ifdef __GNUC__ 407#warning COM interfaces layout in this header has not been verified. 408#warning COM interfaces with incorrect layout may not work at all. 409__MINGW_BROKEN_INTERFACE(INTERFACE) 410#endif 411DECLARE_INTERFACE_(IMFASFProfile,IMFAttributes) 412{ 413 BEGIN_INTERFACE 414 415 /* IUnknown methods */ 416 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 417 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 418 STDMETHOD_(ULONG, Release)(THIS) PURE; 419 420 /* IMFAttributes methods */ 421 STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE; 422 STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE; 423 STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE; 424 STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE; 425 STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE; 426 STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE; 427 STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE; 428 STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE; 429 STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE; 430 STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE; 431 STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE; 432 STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE; 433 STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE; 434 STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE; 435 STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE; 436 STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE; 437 STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE; 438 STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE; 439 STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE; 440 STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE; 441 STDMETHOD_(HRESULT,LockStore)(THIS) PURE; 442 STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE; 443 STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE; 444 STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE; 445 STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE; 446 STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE; 447 STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE; 448 STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE; 449 STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE; 450 STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE; 451 452 /* IMFASFProfile methods */ 453 STDMETHOD_(HRESULT,AddMutualExclusion)(THIS_ IMFASFMutualExclusion *pIMutex) PURE; 454 STDMETHOD_(HRESULT,AddStreamPrioritization)(THIS_ IMFASFStreamPrioritization *pIStreamPrioritization) PURE; 455 STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFProfile **ppIProfile) PURE; 456 STDMETHOD_(HRESULT,CreateMutualExclusion)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE; 457 STDMETHOD_(HRESULT,CreateStream)(THIS_ IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) PURE; 458 STDMETHOD_(HRESULT,CreateStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; 459 STDMETHOD_(HRESULT,GetMutualExclusion)(THIS_ DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) PURE; 460 STDMETHOD_(HRESULT,GetMutualExclusionCount)(THIS_ DWORD *pcMutexs) PURE; 461 STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) PURE; 462 STDMETHOD_(HRESULT,GetStreamByNumber)(THIS_ WORD wStreamNumber,IMFASFStreamConfig **ppIStream) PURE; 463 STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD *pcStreams) PURE; 464 STDMETHOD_(HRESULT,GetStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE; 465 STDMETHOD_(HRESULT,RemoveMutualExclusion)(THIS_ DWORD dwMutexIndex) PURE; 466 STDMETHOD_(HRESULT,RemoveStream)(THIS_ WORD wStreamNumber) PURE; 467 STDMETHOD_(HRESULT,RemoveStreamPrioritization)(THIS) PURE; 468 STDMETHOD_(HRESULT,SetStream)(THIS_ IMFASFStreamConfig *pIStream) PURE; 469 470 END_INTERFACE 471}; 472#ifdef COBJMACROS 473#define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 474#define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This) 475#define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This) 476#define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 477#define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 478#define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 479#define IMFASFProfile_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This) 480#define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 481#define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 482#define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 483#define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 484#define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 485#define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 486#define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 487#define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 488#define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 489#define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 490#define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 491#define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 492#define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 493#define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 494#define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 495#define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 496#define IMFASFProfile_LockStore() (This)->lpVtbl->LockStore(This) 497#define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 498#define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 499#define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 500#define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 501#define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 502#define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 503#define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 504#define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 505#define IMFASFProfile_UnlockStore() (This)->lpVtbl->UnlockStore(This) 506#define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex) 507#define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization) 508#define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile) 509#define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex) 510#define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream) 511#define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization) 512#define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex) 513#define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs) 514#define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) 515#define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream) 516#define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 517#define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization) 518#define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex) 519#define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber) 520#define IMFASFProfile_RemoveStreamPrioritization() (This)->lpVtbl->RemoveStreamPrioritization(This) 521#define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream) 522#endif /*COBJMACROS*/ 523 524#undef INTERFACE 525#define INTERFACE IMFASFIndexer 526#ifdef __GNUC__ 527#warning COM interfaces layout in this header has not been verified. 528#warning COM interfaces with incorrect layout may not work at all. 529__MINGW_BROKEN_INTERFACE(INTERFACE) 530#endif 531DECLARE_INTERFACE_(IMFASFIndexer,IUnknown) 532{ 533 BEGIN_INTERFACE 534 535 /* IUnknown methods */ 536 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 537 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 538 STDMETHOD_(ULONG, Release)(THIS) PURE; 539 540 /* IMFASFIndexer methods */ 541 STDMETHOD_(HRESULT,CommitIndex)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; 542 STDMETHOD_(HRESULT,GenerateIndexEntries)(THIS_ IMFSample *pIASFPacketSample) PURE; 543 STDMETHOD_(HRESULT,GetCompletedIndex)(THIS_ IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) PURE; 544 STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; 545 STDMETHOD_(HRESULT,GetIndexByteStreamCount)(THIS_ DWORD *pcByteStreams) PURE; 546 STDMETHOD_(HRESULT,GetIndexPosition)(THIS_ IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) PURE; 547 STDMETHOD_(HRESULT,GetIndexStatus)(THIS_ ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) PURE; 548 STDMETHOD_(HRESULT,GetIndexWriteSpace)(THIS_ QWORD *pcbIndexWriteSpace) PURE; 549 STDMETHOD_(HRESULT,GetSeekPositionForValue)(THIS_ const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) PURE; 550 STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; 551 STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; 552 STDMETHOD_(HRESULT,SetIndexByteStreams)(THIS_ IMFByteStream **ppIByteStreams,DWORD cByteStreams) PURE; 553 STDMETHOD_(HRESULT,SetIndexStatus)(THIS_ BYTE *pIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) PURE; 554 555 END_INTERFACE 556}; 557#ifdef COBJMACROS 558#define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 559#define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This) 560#define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This) 561#define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo) 562#define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample) 563#define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) 564#define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 565#define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams) 566#define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset) 567#define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) 568#define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace) 569#define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) 570#define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 571#define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 572#define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams) 573#define IMFASFIndexer_SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex) 574#endif /*COBJMACROS*/ 575 576#undef INTERFACE 577#define INTERFACE IMFASFMultiplexer 578#ifdef __GNUC__ 579#warning COM interfaces layout in this header has not been verified. 580#warning COM interfaces with incorrect layout may not work at all. 581__MINGW_BROKEN_INTERFACE(INTERFACE) 582#endif 583DECLARE_INTERFACE_(IMFASFMultiplexer,IUnknown) 584{ 585 BEGIN_INTERFACE 586 587 /* IUnknown methods */ 588 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 589 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 590 STDMETHOD_(ULONG, Release)(THIS) PURE; 591 592 /* IMFASFMultiplexer methods */ 593 STDMETHOD_(HRESULT,End)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; 594 STDMETHOD_(HRESULT,Flush)(THIS) PURE; 595 STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; 596 STDMETHOD_(HRESULT,GetNextPacket)(THIS_ DWORD *pdwStatusFlags,IMFSample **ppIPacket) PURE; 597 STDMETHOD_(HRESULT,GetStatistics)(THIS_ WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) PURE; 598 STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE; 599 STDMETHOD_(HRESULT,ProcessSample)(THIS_ WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) PURE; 600 STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE; 601 STDMETHOD_(HRESULT,SetSyncTolerance)(THIS_ DWORD msSyncTolerance) PURE; 602 603 END_INTERFACE 604}; 605#ifdef COBJMACROS 606#define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 607#define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This) 608#define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This) 609#define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo) 610#define IMFASFMultiplexer_Flush() (This)->lpVtbl->Flush(This) 611#define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 612#define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket) 613#define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats) 614#define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 615#define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) 616#define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 617#define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance) 618#endif /*COBJMACROS*/ 619 620#ifdef __cplusplus 621extern "C" { 622#endif 623 624HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); 625HRESULT WINAPI MFCreateAttributes(IMFAttributes **ppMFAttributes,UINT32 cInitialSize); 626HRESULT WINAPI MFCreateWMAEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate); 627HRESULT WINAPI MFCreateWMVEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate); 628 629#ifdef __cplusplus 630} 631#endif 632 633#endif /* (_WIN32_WINNT >= 0x0600) */ 634#endif /*_INC_WMCONTAINER*/ 635