Sweden-Number/include/strmif.h

7965 lines
259 KiB
C

/*** Autogenerated by WIDL 0.1 from strmif.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
#ifndef __WIDL_STRMIF_H
#define __WIDL_STRMIF_H
#ifdef __cplusplus
extern "C" {
#endif
#include <objidl.h>
#include <oaidl.h>
#define CDEF_CLASS_DEFAULT 0x0001
#define CDEF_BYPASS_CLASS_MANAGER 0x0002
#define CDEF_CLASS_LEGACY 0x0004
#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
#ifndef __ICreateDevEnum_FWD_DEFINED__
#define __ICreateDevEnum_FWD_DEFINED__
typedef struct ICreateDevEnum ICreateDevEnum;
#endif
/*****************************************************************************
* ICreateDevEnum interface
*/
#ifndef __ICreateDevEnum_INTERFACE_DEFINED__
#define __ICreateDevEnum_INTERFACE_DEFINED__
DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct ICreateDevEnum : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
REFCLSID clsidDeviceClass,
IEnumMoniker** ppEnumMoniker,
DWORD dwFlags) = 0;
};
#else
typedef struct ICreateDevEnumVtbl ICreateDevEnumVtbl;
struct ICreateDevEnum {
const ICreateDevEnumVtbl* lpVtbl;
};
struct ICreateDevEnumVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
ICreateDevEnum* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
ICreateDevEnum* This);
ULONG (STDMETHODCALLTYPE *Release)(
ICreateDevEnum* This);
/*** ICreateDevEnum methods ***/
HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
ICreateDevEnum* This,
REFCLSID clsidDeviceClass,
IEnumMoniker** ppEnumMoniker,
DWORD dwFlags);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ICreateDevEnum_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ICreateDevEnum_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ICreateDevEnum_Release(p) (p)->lpVtbl->Release(p)
/*** ICreateDevEnum methods ***/
#define ICreateDevEnum_CreateClassEnumerator(p,a,b,c) (p)->lpVtbl->CreateClassEnumerator(p,a,b,c)
#endif
#endif
#define ICreateDevEnum_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** ICreateDevEnum methods ***/ \
STDMETHOD_(HRESULT,CreateClassEnumerator)(THIS_ REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) PURE;
HRESULT CALLBACK ICreateDevEnum_CreateClassEnumerator_Proxy(
ICreateDevEnum* This,
REFCLSID clsidDeviceClass,
IEnumMoniker** ppEnumMoniker,
DWORD dwFlags);
void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */
#define CHARS_IN_GUID 39
#undef GetTimeFormat
typedef struct _AMMediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
typedef enum _PinDirection {
PINDIR_INPUT,
PINDIR_OUTPUT
} PIN_DIRECTION;
#define MAX_PIN_NAME 128
#define MAX_FILTER_NAME 128
typedef LONGLONG REFERENCE_TIME;
typedef DOUBLE REFTIME;
typedef DWORD_PTR HSEMAPHORE;
typedef DWORD_PTR HEVENT;
typedef struct _AllocatorProperties {
long cBuffers;
long cbBuffer;
long cbAlign;
long cbPrefix;
} ALLOCATOR_PROPERTIES;
#ifndef __IAMovieSetup_FWD_DEFINED__
#define __IAMovieSetup_FWD_DEFINED__
typedef struct IAMovieSetup IAMovieSetup;
#endif
#ifndef __IEnumFilters_FWD_DEFINED__
#define __IEnumFilters_FWD_DEFINED__
typedef struct IEnumFilters IEnumFilters;
#endif
#ifndef __IEnumMediaTypes_FWD_DEFINED__
#define __IEnumMediaTypes_FWD_DEFINED__
typedef struct IEnumMediaTypes IEnumMediaTypes;
#endif
#ifndef __IEnumPins_FWD_DEFINED__
#define __IEnumPins_FWD_DEFINED__
typedef struct IEnumPins IEnumPins;
#endif
#ifndef __IBaseFilter_FWD_DEFINED__
#define __IBaseFilter_FWD_DEFINED__
typedef struct IBaseFilter IBaseFilter;
#endif
#ifndef __IFilterGraph_FWD_DEFINED__
#define __IFilterGraph_FWD_DEFINED__
typedef struct IFilterGraph IFilterGraph;
#endif
#ifndef __IMediaFilter_FWD_DEFINED__
#define __IMediaFilter_FWD_DEFINED__
typedef struct IMediaFilter IMediaFilter;
#endif
#ifndef __IMediaSample_FWD_DEFINED__
#define __IMediaSample_FWD_DEFINED__
typedef struct IMediaSample IMediaSample;
#endif
#ifndef __IMemAllocator_FWD_DEFINED__
#define __IMemAllocator_FWD_DEFINED__
typedef struct IMemAllocator IMemAllocator;
#endif
#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
#endif
#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
#endif
#ifndef __IMemInputPin_FWD_DEFINED__
#define __IMemInputPin_FWD_DEFINED__
typedef struct IMemInputPin IMemInputPin;
#endif
#ifndef __IPin_FWD_DEFINED__
#define __IPin_FWD_DEFINED__
typedef struct IPin IPin;
#endif
#ifndef __IReferenceClock_FWD_DEFINED__
#define __IReferenceClock_FWD_DEFINED__
typedef struct IReferenceClock IReferenceClock;
#endif
typedef struct _PinInfo {
IBaseFilter *pFilter;
PIN_DIRECTION dir;
WCHAR achName[128];
} PIN_INFO;
/*****************************************************************************
* IPin interface
*/
#ifndef __IPin_INTERFACE_DEFINED__
#define __IPin_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPin : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Connect(
IPin* pReceivePin,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
IPin* pConnector,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE Disconnect(
) = 0;
virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
IPin** pPin) = 0;
virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
PIN_INFO* pInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryDirection(
PIN_DIRECTION* pPinDir) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryId(
LPWSTR* Id) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryAccept(
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
IEnumMediaTypes** ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
IPin** apPin,
ULONG* nPin) = 0;
virtual HRESULT STDMETHODCALLTYPE EndOfStream(
) = 0;
virtual HRESULT STDMETHODCALLTYPE BeginFlush(
) = 0;
virtual HRESULT STDMETHODCALLTYPE EndFlush(
) = 0;
virtual HRESULT STDMETHODCALLTYPE NewSegment(
REFERENCE_TIME tStart,
REFERENCE_TIME tStop,
double dRate) = 0;
};
#else
typedef struct IPinVtbl IPinVtbl;
struct IPin {
const IPinVtbl* lpVtbl;
};
struct IPinVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPin* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPin* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPin* This);
/*** IPin methods ***/
HRESULT (STDMETHODCALLTYPE *Connect)(
IPin* This,
IPin* pReceivePin,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
IPin* This,
IPin* pConnector,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *Disconnect)(
IPin* This);
HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
IPin* This,
IPin** pPin);
HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
IPin* This,
AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
IPin* This,
PIN_INFO* pInfo);
HRESULT (STDMETHODCALLTYPE *QueryDirection)(
IPin* This,
PIN_DIRECTION* pPinDir);
HRESULT (STDMETHODCALLTYPE *QueryId)(
IPin* This,
LPWSTR* Id);
HRESULT (STDMETHODCALLTYPE *QueryAccept)(
IPin* This,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
IPin* This,
IEnumMediaTypes** ppEnum);
HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
IPin* This,
IPin** apPin,
ULONG* nPin);
HRESULT (STDMETHODCALLTYPE *EndOfStream)(
IPin* This);
HRESULT (STDMETHODCALLTYPE *BeginFlush)(
IPin* This);
HRESULT (STDMETHODCALLTYPE *EndFlush)(
IPin* This);
HRESULT (STDMETHODCALLTYPE *NewSegment)(
IPin* This,
REFERENCE_TIME tStart,
REFERENCE_TIME tStop,
double dRate);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPin_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPin_Release(p) (p)->lpVtbl->Release(p)
/*** IPin methods ***/
#define IPin_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
#define IPin_ReceiveConnection(p,a,b) (p)->lpVtbl->ReceiveConnection(p,a,b)
#define IPin_Disconnect(p) (p)->lpVtbl->Disconnect(p)
#define IPin_ConnectedTo(p,a) (p)->lpVtbl->ConnectedTo(p,a)
#define IPin_ConnectionMediaType(p,a) (p)->lpVtbl->ConnectionMediaType(p,a)
#define IPin_QueryPinInfo(p,a) (p)->lpVtbl->QueryPinInfo(p,a)
#define IPin_QueryDirection(p,a) (p)->lpVtbl->QueryDirection(p,a)
#define IPin_QueryId(p,a) (p)->lpVtbl->QueryId(p,a)
#define IPin_QueryAccept(p,a) (p)->lpVtbl->QueryAccept(p,a)
#define IPin_EnumMediaTypes(p,a) (p)->lpVtbl->EnumMediaTypes(p,a)
#define IPin_QueryInternalConnections(p,a,b) (p)->lpVtbl->QueryInternalConnections(p,a,b)
#define IPin_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
#define IPin_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
#define IPin_EndFlush(p) (p)->lpVtbl->EndFlush(p)
#define IPin_NewSegment(p,a,b,c) (p)->lpVtbl->NewSegment(p,a,b,c)
#endif
#endif
#define IPin_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPin methods ***/ \
STDMETHOD_(HRESULT,Connect)(THIS_ IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,ReceiveConnection)(THIS_ IPin* pConnector, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,Disconnect)(THIS) PURE; \
STDMETHOD_(HRESULT,ConnectedTo)(THIS_ IPin** pPin) PURE; \
STDMETHOD_(HRESULT,ConnectionMediaType)(THIS_ AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,QueryPinInfo)(THIS_ PIN_INFO* pInfo) PURE; \
STDMETHOD_(HRESULT,QueryDirection)(THIS_ PIN_DIRECTION* pPinDir) PURE; \
STDMETHOD_(HRESULT,QueryId)(THIS_ LPWSTR* Id) PURE; \
STDMETHOD_(HRESULT,QueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,EnumMediaTypes)(THIS_ IEnumMediaTypes** ppEnum) PURE; \
STDMETHOD_(HRESULT,QueryInternalConnections)(THIS_ IPin** apPin, ULONG* nPin) PURE; \
STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE; \
STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; \
STDMETHOD_(HRESULT,NewSegment)(THIS_ REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) PURE;
HRESULT CALLBACK IPin_Connect_Proxy(
IPin* This,
IPin* pReceivePin,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IPin_Connect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_ReceiveConnection_Proxy(
IPin* This,
IPin* pConnector,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IPin_ReceiveConnection_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_Disconnect_Proxy(
IPin* This);
void __RPC_STUB IPin_Disconnect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_ConnectedTo_Proxy(
IPin* This,
IPin** pPin);
void __RPC_STUB IPin_ConnectedTo_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_ConnectionMediaType_Proxy(
IPin* This,
AM_MEDIA_TYPE* pmt);
void __RPC_STUB IPin_ConnectionMediaType_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_QueryPinInfo_Proxy(
IPin* This,
PIN_INFO* pInfo);
void __RPC_STUB IPin_QueryPinInfo_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_QueryDirection_Proxy(
IPin* This,
PIN_DIRECTION* pPinDir);
void __RPC_STUB IPin_QueryDirection_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_QueryId_Proxy(
IPin* This,
LPWSTR* Id);
void __RPC_STUB IPin_QueryId_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_QueryAccept_Proxy(
IPin* This,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IPin_QueryAccept_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_EnumMediaTypes_Proxy(
IPin* This,
IEnumMediaTypes** ppEnum);
void __RPC_STUB IPin_EnumMediaTypes_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_QueryInternalConnections_Proxy(
IPin* This,
IPin** apPin,
ULONG* nPin);
void __RPC_STUB IPin_QueryInternalConnections_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_EndOfStream_Proxy(
IPin* This);
void __RPC_STUB IPin_EndOfStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_BeginFlush_Proxy(
IPin* This);
void __RPC_STUB IPin_BeginFlush_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_EndFlush_Proxy(
IPin* This);
void __RPC_STUB IPin_EndFlush_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPin_NewSegment_Proxy(
IPin* This,
REFERENCE_TIME tStart,
REFERENCE_TIME tStop,
double dRate);
void __RPC_STUB IPin_NewSegment_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPin_INTERFACE_DEFINED__ */
typedef IPin *PPIN;
/*****************************************************************************
* IEnumPins interface
*/
#ifndef __IEnumPins_INTERFACE_DEFINED__
#define __IEnumPins_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumPins : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG cPins,
IPin** ppPins,
ULONG* pcFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG cPins) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumPins** ppEnum) = 0;
};
#else
typedef struct IEnumPinsVtbl IEnumPinsVtbl;
struct IEnumPins {
const IEnumPinsVtbl* lpVtbl;
};
struct IEnumPinsVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumPins* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumPins* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumPins* This);
/*** IEnumPins methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumPins* This,
ULONG cPins,
IPin** ppPins,
ULONG* pcFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumPins* This,
ULONG cPins);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumPins* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumPins* This,
IEnumPins** ppEnum);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumPins_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumPins_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumPins_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumPins methods ***/
#define IEnumPins_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumPins_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumPins_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumPins_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumPins_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumPins methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG cPins, IPin** ppPins, ULONG* pcFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cPins) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPins** ppEnum) PURE;
HRESULT CALLBACK IEnumPins_Next_Proxy(
IEnumPins* This,
ULONG cPins,
IPin** ppPins,
ULONG* pcFetched);
void __RPC_STUB IEnumPins_Next_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumPins_Skip_Proxy(
IEnumPins* This,
ULONG cPins);
void __RPC_STUB IEnumPins_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumPins_Reset_Proxy(
IEnumPins* This);
void __RPC_STUB IEnumPins_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumPins_Clone_Proxy(
IEnumPins* This,
IEnumPins** ppEnum);
void __RPC_STUB IEnumPins_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumPins_INTERFACE_DEFINED__ */
typedef IEnumPins *PENUMPINS;
/*****************************************************************************
* IEnumMediaTypes interface
*/
#ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
#define __IEnumMediaTypes_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumMediaTypes : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG cMediaTypes,
AM_MEDIA_TYPE** ppMediaTypes,
ULONG* pcFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG cMediaTypes) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumMediaTypes** ppEnum) = 0;
};
#else
typedef struct IEnumMediaTypesVtbl IEnumMediaTypesVtbl;
struct IEnumMediaTypes {
const IEnumMediaTypesVtbl* lpVtbl;
};
struct IEnumMediaTypesVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumMediaTypes* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumMediaTypes* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumMediaTypes* This);
/*** IEnumMediaTypes methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumMediaTypes* This,
ULONG cMediaTypes,
AM_MEDIA_TYPE** ppMediaTypes,
ULONG* pcFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumMediaTypes* This,
ULONG cMediaTypes);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumMediaTypes* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumMediaTypes* This,
IEnumMediaTypes** ppEnum);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumMediaTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumMediaTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumMediaTypes_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumMediaTypes methods ***/
#define IEnumMediaTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumMediaTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumMediaTypes_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumMediaTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumMediaTypes_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumMediaTypes methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cMediaTypes) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMediaTypes** ppEnum) PURE;
HRESULT CALLBACK IEnumMediaTypes_Next_Proxy(
IEnumMediaTypes* This,
ULONG cMediaTypes,
AM_MEDIA_TYPE** ppMediaTypes,
ULONG* pcFetched);
void __RPC_STUB IEnumMediaTypes_Next_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumMediaTypes_Skip_Proxy(
IEnumMediaTypes* This,
ULONG cMediaTypes);
void __RPC_STUB IEnumMediaTypes_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumMediaTypes_Reset_Proxy(
IEnumMediaTypes* This);
void __RPC_STUB IEnumMediaTypes_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumMediaTypes_Clone_Proxy(
IEnumMediaTypes* This,
IEnumMediaTypes** ppEnum);
void __RPC_STUB IEnumMediaTypes_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
typedef IEnumMediaTypes *PENUMMEDIATYPES;
/*****************************************************************************
* IFilterGraph interface
*/
#ifndef __IFilterGraph_INTERFACE_DEFINED__
#define __IFilterGraph_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterGraph : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE AddFilter(
IBaseFilter* pFilter,
LPCWSTR pName) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
IBaseFilter* pFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumFilters(
IEnumFilters** ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
LPCWSTR pName,
IBaseFilter** ppFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
IPin* ppinOut,
IPin* ppinIn,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reconnect(
IPin* ppin) = 0;
virtual HRESULT STDMETHODCALLTYPE Disconnect(
IPin* ppin) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
) = 0;
};
#else
typedef struct IFilterGraphVtbl IFilterGraphVtbl;
struct IFilterGraph {
const IFilterGraphVtbl* lpVtbl;
};
struct IFilterGraphVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterGraph* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterGraph* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterGraph* This);
/*** IFilterGraph methods ***/
HRESULT (STDMETHODCALLTYPE *AddFilter)(
IFilterGraph* This,
IBaseFilter* pFilter,
LPCWSTR pName);
HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
IFilterGraph* This,
IBaseFilter* pFilter);
HRESULT (STDMETHODCALLTYPE *EnumFilters)(
IFilterGraph* This,
IEnumFilters** ppEnum);
HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
IFilterGraph* This,
LPCWSTR pName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
IFilterGraph* This,
IPin* ppinOut,
IPin* ppinIn,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *Reconnect)(
IFilterGraph* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *Disconnect)(
IFilterGraph* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
IFilterGraph* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterGraph_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterGraph_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterGraph_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterGraph methods ***/
#define IFilterGraph_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
#define IFilterGraph_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
#define IFilterGraph_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
#define IFilterGraph_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
#define IFilterGraph_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
#define IFilterGraph_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
#define IFilterGraph_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
#define IFilterGraph_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
#endif
#endif
#define IFilterGraph_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterGraph methods ***/ \
STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE;
HRESULT CALLBACK IFilterGraph_AddFilter_Proxy(
IFilterGraph* This,
IBaseFilter* pFilter,
LPCWSTR pName);
void __RPC_STUB IFilterGraph_AddFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_RemoveFilter_Proxy(
IFilterGraph* This,
IBaseFilter* pFilter);
void __RPC_STUB IFilterGraph_RemoveFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_EnumFilters_Proxy(
IFilterGraph* This,
IEnumFilters** ppEnum);
void __RPC_STUB IFilterGraph_EnumFilters_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_FindFilterByName_Proxy(
IFilterGraph* This,
LPCWSTR pName,
IBaseFilter** ppFilter);
void __RPC_STUB IFilterGraph_FindFilterByName_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_ConnectDirect_Proxy(
IFilterGraph* This,
IPin* ppinOut,
IPin* ppinIn,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFilterGraph_ConnectDirect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_Reconnect_Proxy(
IFilterGraph* This,
IPin* ppin);
void __RPC_STUB IFilterGraph_Reconnect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_Disconnect_Proxy(
IFilterGraph* This,
IPin* ppin);
void __RPC_STUB IFilterGraph_Disconnect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph_SetDefaultSyncSource_Proxy(
IFilterGraph* This);
void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterGraph_INTERFACE_DEFINED__ */
typedef IFilterGraph *PFILTERGRAPH;
/*****************************************************************************
* IEnumFilters interface
*/
#ifndef __IEnumFilters_INTERFACE_DEFINED__
#define __IEnumFilters_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumFilters : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG cFilters,
IBaseFilter** ppFilter,
ULONG* pcFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG cFilters) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumFilters** ppEnum) = 0;
};
#else
typedef struct IEnumFiltersVtbl IEnumFiltersVtbl;
struct IEnumFilters {
const IEnumFiltersVtbl* lpVtbl;
};
struct IEnumFiltersVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumFilters* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumFilters* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumFilters* This);
/*** IEnumFilters methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumFilters* This,
ULONG cFilters,
IBaseFilter** ppFilter,
ULONG* pcFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumFilters* This,
ULONG cFilters);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumFilters* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumFilters* This,
IEnumFilters** ppEnum);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumFilters_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumFilters methods ***/
#define IEnumFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumFilters_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumFilters_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumFilters methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFilters** ppEnum) PURE;
HRESULT CALLBACK IEnumFilters_Next_Proxy(
IEnumFilters* This,
ULONG cFilters,
IBaseFilter** ppFilter,
ULONG* pcFetched);
void __RPC_STUB IEnumFilters_Next_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumFilters_Skip_Proxy(
IEnumFilters* This,
ULONG cFilters);
void __RPC_STUB IEnumFilters_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumFilters_Reset_Proxy(
IEnumFilters* This);
void __RPC_STUB IEnumFilters_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumFilters_Clone_Proxy(
IEnumFilters* This,
IEnumFilters** ppEnum);
void __RPC_STUB IEnumFilters_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumFilters_INTERFACE_DEFINED__ */
typedef IEnumFilters *PENUMFILTERS;
typedef enum _FilterState {
State_Stopped,
State_Paused,
State_Running
} FILTER_STATE;
/*****************************************************************************
* IMediaFilter interface
*/
#ifndef __IMediaFilter_INTERFACE_DEFINED__
#define __IMediaFilter_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMediaFilter : public IPersist
{
virtual HRESULT STDMETHODCALLTYPE Stop(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Pause(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Run(
REFERENCE_TIME tStart) = 0;
virtual HRESULT STDMETHODCALLTYPE GetState(
DWORD dwMilliSecsTimeout,
FILTER_STATE* State) = 0;
virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
IReferenceClock* pClock) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
IReferenceClock** pClock) = 0;
};
#else
typedef struct IMediaFilterVtbl IMediaFilterVtbl;
struct IMediaFilter {
const IMediaFilterVtbl* lpVtbl;
};
struct IMediaFilterVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaFilter* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaFilter* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaFilter* This);
/*** IPersist methods ***/
HRESULT (STDMETHODCALLTYPE *GetClassID)(
IMediaFilter* This,
CLSID* pClassID);
/*** IMediaFilter methods ***/
HRESULT (STDMETHODCALLTYPE *Stop)(
IMediaFilter* This);
HRESULT (STDMETHODCALLTYPE *Pause)(
IMediaFilter* This);
HRESULT (STDMETHODCALLTYPE *Run)(
IMediaFilter* This,
REFERENCE_TIME tStart);
HRESULT (STDMETHODCALLTYPE *GetState)(
IMediaFilter* This,
DWORD dwMilliSecsTimeout,
FILTER_STATE* State);
HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
IMediaFilter* This,
IReferenceClock* pClock);
HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
IMediaFilter* This,
IReferenceClock** pClock);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMediaFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMediaFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMediaFilter_Release(p) (p)->lpVtbl->Release(p)
/*** IPersist methods ***/
#define IMediaFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
/*** IMediaFilter methods ***/
#define IMediaFilter_Stop(p) (p)->lpVtbl->Stop(p)
#define IMediaFilter_Pause(p) (p)->lpVtbl->Pause(p)
#define IMediaFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
#define IMediaFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
#define IMediaFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
#define IMediaFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
#endif
#endif
#define IMediaFilter_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPersist methods ***/ \
STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
/*** IMediaFilter methods ***/ \
STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE;
HRESULT CALLBACK IMediaFilter_Stop_Proxy(
IMediaFilter* This);
void __RPC_STUB IMediaFilter_Stop_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaFilter_Pause_Proxy(
IMediaFilter* This);
void __RPC_STUB IMediaFilter_Pause_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaFilter_Run_Proxy(
IMediaFilter* This,
REFERENCE_TIME tStart);
void __RPC_STUB IMediaFilter_Run_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaFilter_GetState_Proxy(
IMediaFilter* This,
DWORD dwMilliSecsTimeout,
FILTER_STATE* State);
void __RPC_STUB IMediaFilter_GetState_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaFilter_SetSyncSource_Proxy(
IMediaFilter* This,
IReferenceClock* pClock);
void __RPC_STUB IMediaFilter_SetSyncSource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaFilter_GetSyncSource_Proxy(
IMediaFilter* This,
IReferenceClock** pClock);
void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMediaFilter_INTERFACE_DEFINED__ */
typedef IMediaFilter *PMEDIAFILTER;
typedef struct _FilterInfo {
WCHAR achName[128];
IFilterGraph *pGraph;
} FILTER_INFO;
/*****************************************************************************
* IBaseFilter interface
*/
#ifndef __IBaseFilter_INTERFACE_DEFINED__
#define __IBaseFilter_INTERFACE_DEFINED__
DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IBaseFilter : public IMediaFilter
{
virtual HRESULT STDMETHODCALLTYPE EnumPins(
IEnumPins** ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE FindPin(
LPCWSTR Id,
IPin** ppPin) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
FILTER_INFO* pInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
IFilterGraph* pGraph,
LPCWSTR pName) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
LPWSTR* pVendorInfo) = 0;
};
#else
typedef struct IBaseFilterVtbl IBaseFilterVtbl;
struct IBaseFilter {
const IBaseFilterVtbl* lpVtbl;
};
struct IBaseFilterVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IBaseFilter* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IBaseFilter* This);
ULONG (STDMETHODCALLTYPE *Release)(
IBaseFilter* This);
/*** IPersist methods ***/
HRESULT (STDMETHODCALLTYPE *GetClassID)(
IBaseFilter* This,
CLSID* pClassID);
/*** IMediaFilter methods ***/
HRESULT (STDMETHODCALLTYPE *Stop)(
IBaseFilter* This);
HRESULT (STDMETHODCALLTYPE *Pause)(
IBaseFilter* This);
HRESULT (STDMETHODCALLTYPE *Run)(
IBaseFilter* This,
REFERENCE_TIME tStart);
HRESULT (STDMETHODCALLTYPE *GetState)(
IBaseFilter* This,
DWORD dwMilliSecsTimeout,
FILTER_STATE* State);
HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
IBaseFilter* This,
IReferenceClock* pClock);
HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
IBaseFilter* This,
IReferenceClock** pClock);
/*** IBaseFilter methods ***/
HRESULT (STDMETHODCALLTYPE *EnumPins)(
IBaseFilter* This,
IEnumPins** ppEnum);
HRESULT (STDMETHODCALLTYPE *FindPin)(
IBaseFilter* This,
LPCWSTR Id,
IPin** ppPin);
HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
IBaseFilter* This,
FILTER_INFO* pInfo);
HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
IBaseFilter* This,
IFilterGraph* pGraph,
LPCWSTR pName);
HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
IBaseFilter* This,
LPWSTR* pVendorInfo);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IBaseFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IBaseFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IBaseFilter_Release(p) (p)->lpVtbl->Release(p)
/*** IPersist methods ***/
#define IBaseFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
/*** IMediaFilter methods ***/
#define IBaseFilter_Stop(p) (p)->lpVtbl->Stop(p)
#define IBaseFilter_Pause(p) (p)->lpVtbl->Pause(p)
#define IBaseFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
#define IBaseFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
#define IBaseFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
#define IBaseFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
/*** IBaseFilter methods ***/
#define IBaseFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
#define IBaseFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
#define IBaseFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
#define IBaseFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
#define IBaseFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
#endif
#endif
#define IBaseFilter_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPersist methods ***/ \
STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
/*** IMediaFilter methods ***/ \
STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
/*** IBaseFilter methods ***/ \
STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE;
HRESULT CALLBACK IBaseFilter_EnumPins_Proxy(
IBaseFilter* This,
IEnumPins** ppEnum);
void __RPC_STUB IBaseFilter_EnumPins_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IBaseFilter_FindPin_Proxy(
IBaseFilter* This,
LPCWSTR Id,
IPin** ppPin);
void __RPC_STUB IBaseFilter_FindPin_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IBaseFilter_QueryFilterInfo_Proxy(
IBaseFilter* This,
FILTER_INFO* pInfo);
void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IBaseFilter_JoinFilterGraph_Proxy(
IBaseFilter* This,
IFilterGraph* pGraph,
LPCWSTR pName);
void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IBaseFilter_QueryVendorInfo_Proxy(
IBaseFilter* This,
LPWSTR* pVendorInfo);
void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IBaseFilter_INTERFACE_DEFINED__ */
typedef IBaseFilter *PFILTER;
/*****************************************************************************
* IReferenceClock interface
*/
#ifndef __IReferenceClock_INTERFACE_DEFINED__
#define __IReferenceClock_INTERFACE_DEFINED__
DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IReferenceClock : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetTime(
REFERENCE_TIME* pTime) = 0;
virtual HRESULT STDMETHODCALLTYPE AdviseTime(
REFERENCE_TIME baseTime,
REFERENCE_TIME streamTime,
HEVENT hEvent,
DWORD_PTR* pdwAdviseCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
REFERENCE_TIME startTime,
REFERENCE_TIME periodTime,
HSEMAPHORE hSemaphore,
DWORD_PTR* pdwAdviseCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE Unadvise(
DWORD_PTR dwAdviseCookie) = 0;
};
#else
typedef struct IReferenceClockVtbl IReferenceClockVtbl;
struct IReferenceClock {
const IReferenceClockVtbl* lpVtbl;
};
struct IReferenceClockVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IReferenceClock* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IReferenceClock* This);
ULONG (STDMETHODCALLTYPE *Release)(
IReferenceClock* This);
/*** IReferenceClock methods ***/
HRESULT (STDMETHODCALLTYPE *GetTime)(
IReferenceClock* This,
REFERENCE_TIME* pTime);
HRESULT (STDMETHODCALLTYPE *AdviseTime)(
IReferenceClock* This,
REFERENCE_TIME baseTime,
REFERENCE_TIME streamTime,
HEVENT hEvent,
DWORD_PTR* pdwAdviseCookie);
HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
IReferenceClock* This,
REFERENCE_TIME startTime,
REFERENCE_TIME periodTime,
HSEMAPHORE hSemaphore,
DWORD_PTR* pdwAdviseCookie);
HRESULT (STDMETHODCALLTYPE *Unadvise)(
IReferenceClock* This,
DWORD_PTR dwAdviseCookie);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IReferenceClock_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IReferenceClock_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IReferenceClock_Release(p) (p)->lpVtbl->Release(p)
/*** IReferenceClock methods ***/
#define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
#define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d)
#define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d)
#define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
#endif
#endif
#define IReferenceClock_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IReferenceClock methods ***/ \
STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
STDMETHOD_(HRESULT,AdviseTime)(THIS_ REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) PURE; \
STDMETHOD_(HRESULT,AdvisePeriodic)(THIS_ REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) PURE; \
STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD_PTR dwAdviseCookie) PURE;
HRESULT CALLBACK IReferenceClock_GetTime_Proxy(
IReferenceClock* This,
REFERENCE_TIME* pTime);
void __RPC_STUB IReferenceClock_GetTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IReferenceClock_AdviseTime_Proxy(
IReferenceClock* This,
REFERENCE_TIME baseTime,
REFERENCE_TIME streamTime,
HEVENT hEvent,
DWORD_PTR* pdwAdviseCookie);
void __RPC_STUB IReferenceClock_AdviseTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IReferenceClock_AdvisePeriodic_Proxy(
IReferenceClock* This,
REFERENCE_TIME startTime,
REFERENCE_TIME periodTime,
HSEMAPHORE hSemaphore,
DWORD_PTR* pdwAdviseCookie);
void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IReferenceClock_Unadvise_Proxy(
IReferenceClock* This,
DWORD_PTR dwAdviseCookie);
void __RPC_STUB IReferenceClock_Unadvise_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IReferenceClock_INTERFACE_DEFINED__ */
typedef IReferenceClock *PREFERENCECLOCK;
/*****************************************************************************
* IMediaSample interface
*/
#ifndef __IMediaSample_INTERFACE_DEFINED__
#define __IMediaSample_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMediaSample : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetPointer(
BYTE** ppBuffer) = 0;
virtual long STDMETHODCALLTYPE GetSize(
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTime(
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTime(
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd) = 0;
virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
BOOL bIsSyncPoint) = 0;
virtual HRESULT STDMETHODCALLTYPE IsPreroll(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPreroll(
BOOL bIsPreroll) = 0;
virtual long STDMETHODCALLTYPE GetActualDataLength(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
long length) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMediaType(
AM_MEDIA_TYPE** ppMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetMediaType(
AM_MEDIA_TYPE* pMediaType) = 0;
virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
BOOL bDiscontinuity) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd) = 0;
virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd) = 0;
};
#else
typedef struct IMediaSampleVtbl IMediaSampleVtbl;
struct IMediaSample {
const IMediaSampleVtbl* lpVtbl;
};
struct IMediaSampleVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaSample* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaSample* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaSample* This);
/*** IMediaSample methods ***/
HRESULT (STDMETHODCALLTYPE *GetPointer)(
IMediaSample* This,
BYTE** ppBuffer);
long (STDMETHODCALLTYPE *GetSize)(
IMediaSample* This);
HRESULT (STDMETHODCALLTYPE *GetTime)(
IMediaSample* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *SetTime)(
IMediaSample* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
IMediaSample* This);
HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
IMediaSample* This,
BOOL bIsSyncPoint);
HRESULT (STDMETHODCALLTYPE *IsPreroll)(
IMediaSample* This);
HRESULT (STDMETHODCALLTYPE *SetPreroll)(
IMediaSample* This,
BOOL bIsPreroll);
long (STDMETHODCALLTYPE *GetActualDataLength)(
IMediaSample* This);
HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
IMediaSample* This,
long length);
HRESULT (STDMETHODCALLTYPE *GetMediaType)(
IMediaSample* This,
AM_MEDIA_TYPE** ppMediaType);
HRESULT (STDMETHODCALLTYPE *SetMediaType)(
IMediaSample* This,
AM_MEDIA_TYPE* pMediaType);
HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
IMediaSample* This);
HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
IMediaSample* This,
BOOL bDiscontinuity);
HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
IMediaSample* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
IMediaSample* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMediaSample_Release(p) (p)->lpVtbl->Release(p)
/*** IMediaSample methods ***/
#define IMediaSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
#define IMediaSample_GetSize(p) (p)->lpVtbl->GetSize(p)
#define IMediaSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
#define IMediaSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
#define IMediaSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
#define IMediaSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
#define IMediaSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
#define IMediaSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
#define IMediaSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
#define IMediaSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
#define IMediaSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
#define IMediaSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
#define IMediaSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
#define IMediaSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
#define IMediaSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
#define IMediaSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
#endif
#endif
#define IMediaSample_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMediaSample methods ***/ \
STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
STDMETHOD_(long,GetSize)(THIS) PURE; \
STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
HRESULT CALLBACK IMediaSample_GetPointer_Proxy(
IMediaSample* This,
BYTE** ppBuffer);
void __RPC_STUB IMediaSample_GetPointer_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
long CALLBACK IMediaSample_GetSize_Proxy(
IMediaSample* This);
void __RPC_STUB IMediaSample_GetSize_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_GetTime_Proxy(
IMediaSample* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
void __RPC_STUB IMediaSample_GetTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetTime_Proxy(
IMediaSample* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
void __RPC_STUB IMediaSample_SetTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_IsSyncPoint_Proxy(
IMediaSample* This);
void __RPC_STUB IMediaSample_IsSyncPoint_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetSyncPoint_Proxy(
IMediaSample* This,
BOOL bIsSyncPoint);
void __RPC_STUB IMediaSample_SetSyncPoint_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_IsPreroll_Proxy(
IMediaSample* This);
void __RPC_STUB IMediaSample_IsPreroll_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetPreroll_Proxy(
IMediaSample* This,
BOOL bIsPreroll);
void __RPC_STUB IMediaSample_SetPreroll_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
long CALLBACK IMediaSample_GetActualDataLength_Proxy(
IMediaSample* This);
void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetActualDataLength_Proxy(
IMediaSample* This,
long length);
void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_GetMediaType_Proxy(
IMediaSample* This,
AM_MEDIA_TYPE** ppMediaType);
void __RPC_STUB IMediaSample_GetMediaType_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetMediaType_Proxy(
IMediaSample* This,
AM_MEDIA_TYPE* pMediaType);
void __RPC_STUB IMediaSample_SetMediaType_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_IsDiscontinuity_Proxy(
IMediaSample* This);
void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetDiscontinuity_Proxy(
IMediaSample* This,
BOOL bDiscontinuity);
void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_GetMediaTime_Proxy(
IMediaSample* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
void __RPC_STUB IMediaSample_GetMediaTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample_SetMediaTime_Proxy(
IMediaSample* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
void __RPC_STUB IMediaSample_SetMediaTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMediaSample_INTERFACE_DEFINED__ */
typedef IMediaSample *PMEDIASAMPLE;
enum tagAM_SAMPLE_PROPERTY_FLAGS {
AM_SAMPLE_SPLICEPOINT = 0x1,
AM_SAMPLE_PREROLL = 0x2,
AM_SAMPLE_DATADISCONTINUITY = 0x4,
AM_SAMPLE_TYPECHANGED = 0x8,
AM_SAMPLE_TIMEVALID = 0x10,
AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
AM_SAMPLE_STOPVALID = 0x100,
AM_SAMPLE_ENDOFSTREAM = 0x200,
AM_STREAM_MEDIA = 0,
AM_STREAM_CONTROL = 1
};
typedef struct tagAM_SAMPLE2_PROPERTIES {
DWORD cbData;
DWORD dwTypeSpecificFlags;
DWORD dwSampleFlags;
LONG lActual;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStreamId;
AM_MEDIA_TYPE *pMediaType;
BYTE *pbBuffer;
LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;
#ifndef __IMediaSample2_FWD_DEFINED__
#define __IMediaSample2_FWD_DEFINED__
typedef struct IMediaSample2 IMediaSample2;
#endif
/*****************************************************************************
* IMediaSample2 interface
*/
#ifndef __IMediaSample2_INTERFACE_DEFINED__
#define __IMediaSample2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMediaSample2 : public IMediaSample
{
virtual HRESULT STDMETHODCALLTYPE GetProperties(
DWORD cbProperties,
BYTE* pbProperties) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProperties(
DWORD cbProperties,
const BYTE* pbProperties) = 0;
};
#else
typedef struct IMediaSample2Vtbl IMediaSample2Vtbl;
struct IMediaSample2 {
const IMediaSample2Vtbl* lpVtbl;
};
struct IMediaSample2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaSample2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaSample2* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaSample2* This);
/*** IMediaSample methods ***/
HRESULT (STDMETHODCALLTYPE *GetPointer)(
IMediaSample2* This,
BYTE** ppBuffer);
long (STDMETHODCALLTYPE *GetSize)(
IMediaSample2* This);
HRESULT (STDMETHODCALLTYPE *GetTime)(
IMediaSample2* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *SetTime)(
IMediaSample2* This,
REFERENCE_TIME* pTimeStart,
REFERENCE_TIME* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
IMediaSample2* This);
HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
IMediaSample2* This,
BOOL bIsSyncPoint);
HRESULT (STDMETHODCALLTYPE *IsPreroll)(
IMediaSample2* This);
HRESULT (STDMETHODCALLTYPE *SetPreroll)(
IMediaSample2* This,
BOOL bIsPreroll);
long (STDMETHODCALLTYPE *GetActualDataLength)(
IMediaSample2* This);
HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
IMediaSample2* This,
long length);
HRESULT (STDMETHODCALLTYPE *GetMediaType)(
IMediaSample2* This,
AM_MEDIA_TYPE** ppMediaType);
HRESULT (STDMETHODCALLTYPE *SetMediaType)(
IMediaSample2* This,
AM_MEDIA_TYPE* pMediaType);
HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
IMediaSample2* This);
HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
IMediaSample2* This,
BOOL bDiscontinuity);
HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
IMediaSample2* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
IMediaSample2* This,
LONGLONG* pTimeStart,
LONGLONG* pTimeEnd);
/*** IMediaSample2 methods ***/
HRESULT (STDMETHODCALLTYPE *GetProperties)(
IMediaSample2* This,
DWORD cbProperties,
BYTE* pbProperties);
HRESULT (STDMETHODCALLTYPE *SetProperties)(
IMediaSample2* This,
DWORD cbProperties,
const BYTE* pbProperties);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMediaSample2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMediaSample2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMediaSample2_Release(p) (p)->lpVtbl->Release(p)
/*** IMediaSample methods ***/
#define IMediaSample2_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
#define IMediaSample2_GetSize(p) (p)->lpVtbl->GetSize(p)
#define IMediaSample2_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
#define IMediaSample2_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
#define IMediaSample2_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
#define IMediaSample2_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
#define IMediaSample2_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
#define IMediaSample2_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
#define IMediaSample2_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
#define IMediaSample2_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
#define IMediaSample2_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
#define IMediaSample2_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
#define IMediaSample2_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
#define IMediaSample2_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
#define IMediaSample2_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
#define IMediaSample2_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
/*** IMediaSample2 methods ***/
#define IMediaSample2_GetProperties(p,a,b) (p)->lpVtbl->GetProperties(p,a,b)
#define IMediaSample2_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
#endif
#endif
#define IMediaSample2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMediaSample methods ***/ \
STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
STDMETHOD_(long,GetSize)(THIS) PURE; \
STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
/*** IMediaSample2 methods ***/ \
STDMETHOD_(HRESULT,GetProperties)(THIS_ DWORD cbProperties, BYTE* pbProperties) PURE; \
STDMETHOD_(HRESULT,SetProperties)(THIS_ DWORD cbProperties, const BYTE* pbProperties) PURE;
HRESULT CALLBACK IMediaSample2_GetProperties_Proxy(
IMediaSample2* This,
DWORD cbProperties,
BYTE* pbProperties);
void __RPC_STUB IMediaSample2_GetProperties_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSample2_SetProperties_Proxy(
IMediaSample2* This,
DWORD cbProperties,
const BYTE* pbProperties);
void __RPC_STUB IMediaSample2_SetProperties_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMediaSample2_INTERFACE_DEFINED__ */
typedef IMediaSample2 *PMEDIASAMPLE2;
#define AM_GBF_PREVFRAMESKIPPED 1
#define AM_GBF_NOTASYNCPOINT 2
#define AM_GBF_NOWAIT 4
/*****************************************************************************
* IMemAllocator interface
*/
#ifndef __IMemAllocator_INTERFACE_DEFINED__
#define __IMemAllocator_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMemAllocator : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetProperties(
ALLOCATOR_PROPERTIES* pRequest,
ALLOCATOR_PROPERTIES* pActual) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProperties(
ALLOCATOR_PROPERTIES* pProps) = 0;
virtual HRESULT STDMETHODCALLTYPE Commit(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Decommit(
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetBuffer(
IMediaSample** ppBuffer,
REFERENCE_TIME* pStartTime,
REFERENCE_TIME* pEndTime,
DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
IMediaSample* pBuffer) = 0;
};
#else
typedef struct IMemAllocatorVtbl IMemAllocatorVtbl;
struct IMemAllocator {
const IMemAllocatorVtbl* lpVtbl;
};
struct IMemAllocatorVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMemAllocator* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMemAllocator* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMemAllocator* This);
/*** IMemAllocator methods ***/
HRESULT (STDMETHODCALLTYPE *SetProperties)(
IMemAllocator* This,
ALLOCATOR_PROPERTIES* pRequest,
ALLOCATOR_PROPERTIES* pActual);
HRESULT (STDMETHODCALLTYPE *GetProperties)(
IMemAllocator* This,
ALLOCATOR_PROPERTIES* pProps);
HRESULT (STDMETHODCALLTYPE *Commit)(
IMemAllocator* This);
HRESULT (STDMETHODCALLTYPE *Decommit)(
IMemAllocator* This);
HRESULT (STDMETHODCALLTYPE *GetBuffer)(
IMemAllocator* This,
IMediaSample** ppBuffer,
REFERENCE_TIME* pStartTime,
REFERENCE_TIME* pEndTime,
DWORD dwFlags);
HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
IMemAllocator* This,
IMediaSample* pBuffer);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMemAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMemAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMemAllocator_Release(p) (p)->lpVtbl->Release(p)
/*** IMemAllocator methods ***/
#define IMemAllocator_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
#define IMemAllocator_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
#define IMemAllocator_Commit(p) (p)->lpVtbl->Commit(p)
#define IMemAllocator_Decommit(p) (p)->lpVtbl->Decommit(p)
#define IMemAllocator_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
#define IMemAllocator_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
#endif
#endif
#define IMemAllocator_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMemAllocator methods ***/ \
STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE;
HRESULT CALLBACK IMemAllocator_SetProperties_Proxy(
IMemAllocator* This,
ALLOCATOR_PROPERTIES* pRequest,
ALLOCATOR_PROPERTIES* pActual);
void __RPC_STUB IMemAllocator_SetProperties_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocator_GetProperties_Proxy(
IMemAllocator* This,
ALLOCATOR_PROPERTIES* pProps);
void __RPC_STUB IMemAllocator_GetProperties_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocator_Commit_Proxy(
IMemAllocator* This);
void __RPC_STUB IMemAllocator_Commit_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocator_Decommit_Proxy(
IMemAllocator* This);
void __RPC_STUB IMemAllocator_Decommit_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocator_GetBuffer_Proxy(
IMemAllocator* This,
IMediaSample** ppBuffer,
REFERENCE_TIME* pStartTime,
REFERENCE_TIME* pEndTime,
DWORD dwFlags);
void __RPC_STUB IMemAllocator_GetBuffer_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocator_ReleaseBuffer_Proxy(
IMemAllocator* This,
IMediaSample* pBuffer);
void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMemAllocator_INTERFACE_DEFINED__ */
typedef IMemAllocator *PMEMALLOCATOR;
/*****************************************************************************
* IMemAllocatorCallbackTemp interface
*/
#ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
#define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMemAllocatorCallbackTemp : public IMemAllocator
{
virtual HRESULT STDMETHODCALLTYPE SetNotify(
IMemAllocatorNotifyCallbackTemp* pNotify) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
LONG* plBuffersFree) = 0;
};
#else
typedef struct IMemAllocatorCallbackTempVtbl IMemAllocatorCallbackTempVtbl;
struct IMemAllocatorCallbackTemp {
const IMemAllocatorCallbackTempVtbl* lpVtbl;
};
struct IMemAllocatorCallbackTempVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMemAllocatorCallbackTemp* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMemAllocatorCallbackTemp* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMemAllocatorCallbackTemp* This);
/*** IMemAllocator methods ***/
HRESULT (STDMETHODCALLTYPE *SetProperties)(
IMemAllocatorCallbackTemp* This,
ALLOCATOR_PROPERTIES* pRequest,
ALLOCATOR_PROPERTIES* pActual);
HRESULT (STDMETHODCALLTYPE *GetProperties)(
IMemAllocatorCallbackTemp* This,
ALLOCATOR_PROPERTIES* pProps);
HRESULT (STDMETHODCALLTYPE *Commit)(
IMemAllocatorCallbackTemp* This);
HRESULT (STDMETHODCALLTYPE *Decommit)(
IMemAllocatorCallbackTemp* This);
HRESULT (STDMETHODCALLTYPE *GetBuffer)(
IMemAllocatorCallbackTemp* This,
IMediaSample** ppBuffer,
REFERENCE_TIME* pStartTime,
REFERENCE_TIME* pEndTime,
DWORD dwFlags);
HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
IMemAllocatorCallbackTemp* This,
IMediaSample* pBuffer);
/*** IMemAllocatorCallbackTemp methods ***/
HRESULT (STDMETHODCALLTYPE *SetNotify)(
IMemAllocatorCallbackTemp* This,
IMemAllocatorNotifyCallbackTemp* pNotify);
HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
IMemAllocatorCallbackTemp* This,
LONG* plBuffersFree);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMemAllocatorCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMemAllocatorCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMemAllocatorCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
/*** IMemAllocator methods ***/
#define IMemAllocatorCallbackTemp_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
#define IMemAllocatorCallbackTemp_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
#define IMemAllocatorCallbackTemp_Commit(p) (p)->lpVtbl->Commit(p)
#define IMemAllocatorCallbackTemp_Decommit(p) (p)->lpVtbl->Decommit(p)
#define IMemAllocatorCallbackTemp_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
#define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
/*** IMemAllocatorCallbackTemp methods ***/
#define IMemAllocatorCallbackTemp_SetNotify(p,a) (p)->lpVtbl->SetNotify(p,a)
#define IMemAllocatorCallbackTemp_GetFreeCount(p,a) (p)->lpVtbl->GetFreeCount(p,a)
#endif
#endif
#define IMemAllocatorCallbackTemp_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMemAllocator methods ***/ \
STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; \
/*** IMemAllocatorCallbackTemp methods ***/ \
STDMETHOD_(HRESULT,SetNotify)(THIS_ IMemAllocatorNotifyCallbackTemp* pNotify) PURE; \
STDMETHOD_(HRESULT,GetFreeCount)(THIS_ LONG* plBuffersFree) PURE;
HRESULT CALLBACK IMemAllocatorCallbackTemp_SetNotify_Proxy(
IMemAllocatorCallbackTemp* This,
IMemAllocatorNotifyCallbackTemp* pNotify);
void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
IMemAllocatorCallbackTemp* This,
LONG* plBuffersFree);
void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMemAllocatorNotifyCallbackTemp interface
*/
#ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
#define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMemAllocatorNotifyCallbackTemp : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
) = 0;
};
#else
typedef struct IMemAllocatorNotifyCallbackTempVtbl IMemAllocatorNotifyCallbackTempVtbl;
struct IMemAllocatorNotifyCallbackTemp {
const IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
};
struct IMemAllocatorNotifyCallbackTempVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMemAllocatorNotifyCallbackTemp* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMemAllocatorNotifyCallbackTemp* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMemAllocatorNotifyCallbackTemp* This);
/*** IMemAllocatorNotifyCallbackTemp methods ***/
HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
IMemAllocatorNotifyCallbackTemp* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMemAllocatorNotifyCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMemAllocatorNotifyCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
/*** IMemAllocatorNotifyCallbackTemp methods ***/
#define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) (p)->lpVtbl->NotifyRelease(p)
#endif
#endif
#define IMemAllocatorNotifyCallbackTemp_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMemAllocatorNotifyCallbackTemp methods ***/ \
STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE;
HRESULT CALLBACK IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
IMemAllocatorNotifyCallbackTemp* This);
void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
/*****************************************************************************
* IMemInputPin interface
*/
#ifndef __IMemInputPin_INTERFACE_DEFINED__
#define __IMemInputPin_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMemInputPin : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetAllocator(
IMemAllocator** ppAllocator) = 0;
virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
IMemAllocator* pAllocator,
BOOL bReadOnly) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
ALLOCATOR_PROPERTIES* pProps) = 0;
virtual HRESULT STDMETHODCALLTYPE Receive(
IMediaSample* pSample) = 0;
virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
IMediaSample** pSamples,
long nSamples,
long* nSamplesProcessed) = 0;
virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
) = 0;
};
#else
typedef struct IMemInputPinVtbl IMemInputPinVtbl;
struct IMemInputPin {
const IMemInputPinVtbl* lpVtbl;
};
struct IMemInputPinVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMemInputPin* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMemInputPin* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMemInputPin* This);
/*** IMemInputPin methods ***/
HRESULT (STDMETHODCALLTYPE *GetAllocator)(
IMemInputPin* This,
IMemAllocator** ppAllocator);
HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
IMemInputPin* This,
IMemAllocator* pAllocator,
BOOL bReadOnly);
HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
IMemInputPin* This,
ALLOCATOR_PROPERTIES* pProps);
HRESULT (STDMETHODCALLTYPE *Receive)(
IMemInputPin* This,
IMediaSample* pSample);
HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
IMemInputPin* This,
IMediaSample** pSamples,
long nSamples,
long* nSamplesProcessed);
HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
IMemInputPin* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMemInputPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMemInputPin_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMemInputPin_Release(p) (p)->lpVtbl->Release(p)
/*** IMemInputPin methods ***/
#define IMemInputPin_GetAllocator(p,a) (p)->lpVtbl->GetAllocator(p,a)
#define IMemInputPin_NotifyAllocator(p,a,b) (p)->lpVtbl->NotifyAllocator(p,a,b)
#define IMemInputPin_GetAllocatorRequirements(p,a) (p)->lpVtbl->GetAllocatorRequirements(p,a)
#define IMemInputPin_Receive(p,a) (p)->lpVtbl->Receive(p,a)
#define IMemInputPin_ReceiveMultiple(p,a,b,c) (p)->lpVtbl->ReceiveMultiple(p,a,b,c)
#define IMemInputPin_ReceiveCanBlock(p) (p)->lpVtbl->ReceiveCanBlock(p)
#endif
#endif
#define IMemInputPin_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMemInputPin methods ***/ \
STDMETHOD_(HRESULT,GetAllocator)(THIS_ IMemAllocator** ppAllocator) PURE; \
STDMETHOD_(HRESULT,NotifyAllocator)(THIS_ IMemAllocator* pAllocator, BOOL bReadOnly) PURE; \
STDMETHOD_(HRESULT,GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
STDMETHOD_(HRESULT,Receive)(THIS_ IMediaSample* pSample) PURE; \
STDMETHOD_(HRESULT,ReceiveMultiple)(THIS_ IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) PURE; \
STDMETHOD_(HRESULT,ReceiveCanBlock)(THIS) PURE;
HRESULT CALLBACK IMemInputPin_GetAllocator_Proxy(
IMemInputPin* This,
IMemAllocator** ppAllocator);
void __RPC_STUB IMemInputPin_GetAllocator_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemInputPin_NotifyAllocator_Proxy(
IMemInputPin* This,
IMemAllocator* pAllocator,
BOOL bReadOnly);
void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemInputPin_GetAllocatorRequirements_Proxy(
IMemInputPin* This,
ALLOCATOR_PROPERTIES* pProps);
void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemInputPin_Receive_Proxy(
IMemInputPin* This,
IMediaSample* pSample);
void __RPC_STUB IMemInputPin_Receive_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemInputPin_ReceiveMultiple_Proxy(
IMemInputPin* This,
IMediaSample** pSamples,
long nSamples,
long* nSamplesProcessed);
void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMemInputPin_ReceiveCanBlock_Proxy(
IMemInputPin* This);
void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMemInputPin_INTERFACE_DEFINED__ */
typedef IMemInputPin *PMEMINPUTPIN;
/*****************************************************************************
* IAMovieSetup interface
*/
#ifndef __IAMovieSetup_INTERFACE_DEFINED__
#define __IAMovieSetup_INTERFACE_DEFINED__
DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IAMovieSetup : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Register(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Unregister(
) = 0;
};
#else
typedef struct IAMovieSetupVtbl IAMovieSetupVtbl;
struct IAMovieSetup {
const IAMovieSetupVtbl* lpVtbl;
};
struct IAMovieSetupVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IAMovieSetup* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IAMovieSetup* This);
ULONG (STDMETHODCALLTYPE *Release)(
IAMovieSetup* This);
/*** IAMovieSetup methods ***/
HRESULT (STDMETHODCALLTYPE *Register)(
IAMovieSetup* This);
HRESULT (STDMETHODCALLTYPE *Unregister)(
IAMovieSetup* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IAMovieSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IAMovieSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IAMovieSetup_Release(p) (p)->lpVtbl->Release(p)
/*** IAMovieSetup methods ***/
#define IAMovieSetup_Register(p) (p)->lpVtbl->Register(p)
#define IAMovieSetup_Unregister(p) (p)->lpVtbl->Unregister(p)
#endif
#endif
#define IAMovieSetup_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IAMovieSetup methods ***/ \
STDMETHOD_(HRESULT,Register)(THIS) PURE; \
STDMETHOD_(HRESULT,Unregister)(THIS) PURE;
HRESULT CALLBACK IAMovieSetup_Register_Proxy(
IAMovieSetup* This);
void __RPC_STUB IAMovieSetup_Register_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAMovieSetup_Unregister_Proxy(
IAMovieSetup* This);
void __RPC_STUB IAMovieSetup_Unregister_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IAMovieSetup_INTERFACE_DEFINED__ */
typedef IAMovieSetup *PAMOVIESETUP;
typedef enum AM_SEEKING_SeekingFlags {
AM_SEEKING_NoPositioning = 0x0,
AM_SEEKING_AbsolutePositioning = 0x1,
AM_SEEKING_RelativePositioning = 0x2,
AM_SEEKING_IncrementalPositioning = 0x3,
AM_SEEKING_PositioningBitsMask = 0x3,
AM_SEEKING_SeekToKeyFrame = 0x4,
AM_SEEKING_ReturnTime = 0x8,
AM_SEEKING_Segment = 0x10,
AM_SEEKING_NoFlush = 0x20
} AM_SEEKING_SEEKING_FLAGS;
typedef enum AM_SEEKING_SeekingCapabilities {
AM_SEEKING_CanSeekAbsolute = 0x1,
AM_SEEKING_CanSeekForwards = 0x2,
AM_SEEKING_CanSeekBackwards = 0x4,
AM_SEEKING_CanGetCurrentPos = 0x8,
AM_SEEKING_CanGetStopPos = 0x10,
AM_SEEKING_CanGetDuration = 0x20,
AM_SEEKING_CanPlayBackwards = 0x40,
AM_SEEKING_CanDoSegments = 0x80,
AM_SEEKING_Source = 0x100
} AM_SEEKING_SEEKING_CAPABILITIES;
#ifndef __IMediaSeeking_FWD_DEFINED__
#define __IMediaSeeking_FWD_DEFINED__
typedef struct IMediaSeeking IMediaSeeking;
#endif
/*****************************************************************************
* IMediaSeeking interface
*/
#ifndef __IMediaSeeking_INTERFACE_DEFINED__
#define __IMediaSeeking_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMediaSeeking : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
DWORD* pCapabilities) = 0;
virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
DWORD* pCapabilities) = 0;
virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
const GUID* pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
GUID* pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
GUID* pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
const GUID* pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
const GUID* pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDuration(
LONGLONG* pDuration) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
LONGLONG* pStop) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
LONGLONG* pCurrent) = 0;
virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
LONGLONG* pTarget,
const GUID* pTargetFormat,
LONGLONG Source,
const GUID* pSourceFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPositions(
LONGLONG* pCurrent,
DWORD dwCurrentFlags,
LONGLONG* pStop,
DWORD dwStopFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPositions(
LONGLONG* pCurrent,
LONGLONG* pStop) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAvailable(
LONGLONG* pEarliest,
LONGLONG* pLatest) = 0;
virtual HRESULT STDMETHODCALLTYPE SetRate(
double dRate) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRate(
double* pdRate) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPreroll(
LONGLONG* pllPreroll) = 0;
};
#else
typedef struct IMediaSeekingVtbl IMediaSeekingVtbl;
struct IMediaSeeking {
const IMediaSeekingVtbl* lpVtbl;
};
struct IMediaSeekingVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaSeeking* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaSeeking* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaSeeking* This);
/*** IMediaSeeking methods ***/
HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
IMediaSeeking* This,
DWORD* pCapabilities);
HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
IMediaSeeking* This,
DWORD* pCapabilities);
HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
IMediaSeeking* This,
const GUID* pFormat);
HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
IMediaSeeking* This,
GUID* pFormat);
HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
IMediaSeeking* This,
GUID* pFormat);
HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
IMediaSeeking* This,
const GUID* pFormat);
HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
IMediaSeeking* This,
const GUID* pFormat);
HRESULT (STDMETHODCALLTYPE *GetDuration)(
IMediaSeeking* This,
LONGLONG* pDuration);
HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
IMediaSeeking* This,
LONGLONG* pStop);
HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
IMediaSeeking* This,
LONGLONG* pCurrent);
HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
IMediaSeeking* This,
LONGLONG* pTarget,
const GUID* pTargetFormat,
LONGLONG Source,
const GUID* pSourceFormat);
HRESULT (STDMETHODCALLTYPE *SetPositions)(
IMediaSeeking* This,
LONGLONG* pCurrent,
DWORD dwCurrentFlags,
LONGLONG* pStop,
DWORD dwStopFlags);
HRESULT (STDMETHODCALLTYPE *GetPositions)(
IMediaSeeking* This,
LONGLONG* pCurrent,
LONGLONG* pStop);
HRESULT (STDMETHODCALLTYPE *GetAvailable)(
IMediaSeeking* This,
LONGLONG* pEarliest,
LONGLONG* pLatest);
HRESULT (STDMETHODCALLTYPE *SetRate)(
IMediaSeeking* This,
double dRate);
HRESULT (STDMETHODCALLTYPE *GetRate)(
IMediaSeeking* This,
double* pdRate);
HRESULT (STDMETHODCALLTYPE *GetPreroll)(
IMediaSeeking* This,
LONGLONG* pllPreroll);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMediaSeeking_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMediaSeeking_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMediaSeeking_Release(p) (p)->lpVtbl->Release(p)
/*** IMediaSeeking methods ***/
#define IMediaSeeking_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
#define IMediaSeeking_CheckCapabilities(p,a) (p)->lpVtbl->CheckCapabilities(p,a)
#define IMediaSeeking_IsFormatSupported(p,a) (p)->lpVtbl->IsFormatSupported(p,a)
#define IMediaSeeking_QueryPreferredFormat(p,a) (p)->lpVtbl->QueryPreferredFormat(p,a)
#define IMediaSeeking_GetTimeFormat(p,a) (p)->lpVtbl->GetTimeFormat(p,a)
#define IMediaSeeking_IsUsingTimeFormat(p,a) (p)->lpVtbl->IsUsingTimeFormat(p,a)
#define IMediaSeeking_SetTimeFormat(p,a) (p)->lpVtbl->SetTimeFormat(p,a)
#define IMediaSeeking_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
#define IMediaSeeking_GetStopPosition(p,a) (p)->lpVtbl->GetStopPosition(p,a)
#define IMediaSeeking_GetCurrentPosition(p,a) (p)->lpVtbl->GetCurrentPosition(p,a)
#define IMediaSeeking_ConvertTimeFormat(p,a,b,c,d) (p)->lpVtbl->ConvertTimeFormat(p,a,b,c,d)
#define IMediaSeeking_SetPositions(p,a,b,c,d) (p)->lpVtbl->SetPositions(p,a,b,c,d)
#define IMediaSeeking_GetPositions(p,a,b) (p)->lpVtbl->GetPositions(p,a,b)
#define IMediaSeeking_GetAvailable(p,a,b) (p)->lpVtbl->GetAvailable(p,a,b)
#define IMediaSeeking_SetRate(p,a) (p)->lpVtbl->SetRate(p,a)
#define IMediaSeeking_GetRate(p,a) (p)->lpVtbl->GetRate(p,a)
#define IMediaSeeking_GetPreroll(p,a) (p)->lpVtbl->GetPreroll(p,a)
#endif
#endif
#define IMediaSeeking_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMediaSeeking methods ***/ \
STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
STDMETHOD_(HRESULT,CheckCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
STDMETHOD_(HRESULT,IsFormatSupported)(THIS_ const GUID* pFormat) PURE; \
STDMETHOD_(HRESULT,QueryPreferredFormat)(THIS_ GUID* pFormat) PURE; \
STDMETHOD_(HRESULT,GetTimeFormat)(THIS_ GUID* pFormat) PURE; \
STDMETHOD_(HRESULT,IsUsingTimeFormat)(THIS_ const GUID* pFormat) PURE; \
STDMETHOD_(HRESULT,SetTimeFormat)(THIS_ const GUID* pFormat) PURE; \
STDMETHOD_(HRESULT,GetDuration)(THIS_ LONGLONG* pDuration) PURE; \
STDMETHOD_(HRESULT,GetStopPosition)(THIS_ LONGLONG* pStop) PURE; \
STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ LONGLONG* pCurrent) PURE; \
STDMETHOD_(HRESULT,ConvertTimeFormat)(THIS_ LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) PURE; \
STDMETHOD_(HRESULT,SetPositions)(THIS_ LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) PURE; \
STDMETHOD_(HRESULT,GetPositions)(THIS_ LONGLONG* pCurrent, LONGLONG* pStop) PURE; \
STDMETHOD_(HRESULT,GetAvailable)(THIS_ LONGLONG* pEarliest, LONGLONG* pLatest) PURE; \
STDMETHOD_(HRESULT,SetRate)(THIS_ double dRate) PURE; \
STDMETHOD_(HRESULT,GetRate)(THIS_ double* pdRate) PURE; \
STDMETHOD_(HRESULT,GetPreroll)(THIS_ LONGLONG* pllPreroll) PURE;
HRESULT CALLBACK IMediaSeeking_GetCapabilities_Proxy(
IMediaSeeking* This,
DWORD* pCapabilities);
void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_CheckCapabilities_Proxy(
IMediaSeeking* This,
DWORD* pCapabilities);
void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_IsFormatSupported_Proxy(
IMediaSeeking* This,
const GUID* pFormat);
void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_QueryPreferredFormat_Proxy(
IMediaSeeking* This,
GUID* pFormat);
void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetTimeFormat_Proxy(
IMediaSeeking* This,
GUID* pFormat);
void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_IsUsingTimeFormat_Proxy(
IMediaSeeking* This,
const GUID* pFormat);
void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_SetTimeFormat_Proxy(
IMediaSeeking* This,
const GUID* pFormat);
void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetDuration_Proxy(
IMediaSeeking* This,
LONGLONG* pDuration);
void __RPC_STUB IMediaSeeking_GetDuration_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetStopPosition_Proxy(
IMediaSeeking* This,
LONGLONG* pStop);
void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetCurrentPosition_Proxy(
IMediaSeeking* This,
LONGLONG* pCurrent);
void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_ConvertTimeFormat_Proxy(
IMediaSeeking* This,
LONGLONG* pTarget,
const GUID* pTargetFormat,
LONGLONG Source,
const GUID* pSourceFormat);
void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_SetPositions_Proxy(
IMediaSeeking* This,
LONGLONG* pCurrent,
DWORD dwCurrentFlags,
LONGLONG* pStop,
DWORD dwStopFlags);
void __RPC_STUB IMediaSeeking_SetPositions_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetPositions_Proxy(
IMediaSeeking* This,
LONGLONG* pCurrent,
LONGLONG* pStop);
void __RPC_STUB IMediaSeeking_GetPositions_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetAvailable_Proxy(
IMediaSeeking* This,
LONGLONG* pEarliest,
LONGLONG* pLatest);
void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_SetRate_Proxy(
IMediaSeeking* This,
double dRate);
void __RPC_STUB IMediaSeeking_SetRate_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetRate_Proxy(
IMediaSeeking* This,
double* pdRate);
void __RPC_STUB IMediaSeeking_GetRate_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IMediaSeeking_GetPreroll_Proxy(
IMediaSeeking* This,
LONGLONG* pllPreroll);
void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMediaSeeking_INTERFACE_DEFINED__ */
typedef IMediaSeeking *PMEDIASEEKING;
enum tagAM_MEDIAEVENT_FLAGS {
AM_MEDIAEVENT_NONOTIFY = 0x1
};
#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
#define __IAMAnalogVideoDecoder_FWD_DEFINED__
typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
#endif
#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
#define __IAMAnalogVideoEncoder_FWD_DEFINED__
typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
#endif
#ifndef __IAMAudioInputMixer_FWD_DEFINED__
#define __IAMAudioInputMixer_FWD_DEFINED__
typedef struct IAMAudioInputMixer IAMAudioInputMixer;
#endif
#ifndef __IAMAudioRendererStats_FWD_DEFINED__
#define __IAMAudioRendererStats_FWD_DEFINED__
typedef struct IAMAudioRendererStats IAMAudioRendererStats;
#endif
#ifndef __IAMBufferNegotiation_FWD_DEFINED__
#define __IAMBufferNegotiation_FWD_DEFINED__
typedef struct IAMBufferNegotiation IAMBufferNegotiation;
#endif
#ifndef __IAMCameraControl_FWD_DEFINED__
#define __IAMCameraControl_FWD_DEFINED__
typedef struct IAMCameraControl IAMCameraControl;
#endif
#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
#endif
#ifndef __IAMCrossbar_FWD_DEFINED__
#define __IAMCrossbar_FWD_DEFINED__
typedef struct IAMCrossbar IAMCrossbar;
#endif
#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
#define __IAMDevMemoryAllocator_FWD_DEFINED__
typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
#endif
#ifndef __IAMDevMemoryControl_FWD_DEFINED__
#define __IAMDevMemoryControl_FWD_DEFINED__
typedef struct IAMDevMemoryControl IAMDevMemoryControl;
#endif
#ifndef __IAMDroppedFrames_FWD_DEFINED__
#define __IAMDroppedFrames_FWD_DEFINED__
typedef struct IAMDroppedFrames IAMDroppedFrames;
#endif
#ifndef __IAMExtDevice_FWD_DEFINED__
#define __IAMExtDevice_FWD_DEFINED__
typedef struct IAMExtDevice IAMExtDevice;
#endif
#ifndef __IAMExtTransport_FWD_DEFINED__
#define __IAMExtTransport_FWD_DEFINED__
typedef struct IAMExtTransport IAMExtTransport;
#endif
#ifndef __IAMGraphStreams_FWD_DEFINED__
#define __IAMGraphStreams_FWD_DEFINED__
typedef struct IAMGraphStreams IAMGraphStreams;
#endif
#ifndef __IAMLatency_FWD_DEFINED__
#define __IAMLatency_FWD_DEFINED__
typedef struct IAMLatency IAMLatency;
#endif
#ifndef __IAMOpenProgress_FWD_DEFINED__
#define __IAMOpenProgress_FWD_DEFINED__
typedef struct IAMOpenProgress IAMOpenProgress;
#endif
#ifndef __IAMOverlayFX_FWD_DEFINED__
#define __IAMOverlayFX_FWD_DEFINED__
typedef struct IAMOverlayFX IAMOverlayFX;
#endif
#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
#define __IAMPhysicalPinInfo_FWD_DEFINED__
typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
#endif
#ifndef __IAMPushSource_FWD_DEFINED__
#define __IAMPushSource_FWD_DEFINED__
typedef struct IAMPushSource IAMPushSource;
#endif
#ifndef __IAMStreamConfig_FWD_DEFINED__
#define __IAMStreamConfig_FWD_DEFINED__
typedef struct IAMStreamConfig IAMStreamConfig;
#endif
#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
#define __IAMTimecodeDisplay_FWD_DEFINED__
typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
#endif
#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
#define __IAMTimecodeGenerator_FWD_DEFINED__
typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
#endif
#ifndef __IAMTimecodeReader_FWD_DEFINED__
#define __IAMTimecodeReader_FWD_DEFINED__
typedef struct IAMTimecodeReader IAMTimecodeReader;
#endif
#ifndef __IAMTVTuner_FWD_DEFINED__
#define __IAMTVTuner_FWD_DEFINED__
typedef struct IAMTVTuner IAMTVTuner;
#endif
#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
#define __IAMVfwCaptureDialogs_FWD_DEFINED__
typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
#endif
#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
#define __IAMVfwCompressDialogs_FWD_DEFINED__
typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
#endif
#ifndef __IAMVideoCompression_FWD_DEFINED__
#define __IAMVideoCompression_FWD_DEFINED__
typedef struct IAMVideoCompression IAMVideoCompression;
#endif
#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
#define __IAMVideoDecimationProperties_FWD_DEFINED__
typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
#endif
#ifndef __IAMVideoProcAmp_FWD_DEFINED__
#define __IAMVideoProcAmp_FWD_DEFINED__
typedef struct IAMVideoProcAmp IAMVideoProcAmp;
#endif
#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
#define __ICaptureGraphBuilder_FWD_DEFINED__
typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
#endif
#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
#define __ICaptureGraphBuilder2_FWD_DEFINED__
typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
#endif
#ifndef __IConfigAviMux_FWD_DEFINED__
#define __IConfigAviMux_FWD_DEFINED__
typedef struct IConfigAviMux IConfigAviMux;
#endif
#ifndef __IConfigInterleaving_FWD_DEFINED__
#define __IConfigInterleaving_FWD_DEFINED__
typedef struct IConfigInterleaving IConfigInterleaving;
#endif
#ifndef __IDecimateVideoImage_FWD_DEFINED__
#define __IDecimateVideoImage_FWD_DEFINED__
typedef struct IDecimateVideoImage IDecimateVideoImage;
#endif
#ifndef __IDrawVideoImage_FWD_DEFINED__
#define __IDrawVideoImage_FWD_DEFINED__
typedef struct IDrawVideoImage IDrawVideoImage;
#endif
#ifndef __IEnumRegFilters_FWD_DEFINED__
#define __IEnumRegFilters_FWD_DEFINED__
typedef struct IEnumRegFilters IEnumRegFilters;
#endif
#ifndef __IEnumStreamIdMap_FWD_DEFINED__
#define __IEnumStreamIdMap_FWD_DEFINED__
typedef struct IEnumStreamIdMap IEnumStreamIdMap;
#endif
#ifndef __IFileSourceFilter_FWD_DEFINED__
#define __IFileSourceFilter_FWD_DEFINED__
typedef struct IFileSourceFilter IFileSourceFilter;
#endif
#ifndef __IFileSinkFilter_FWD_DEFINED__
#define __IFileSinkFilter_FWD_DEFINED__
typedef struct IFileSinkFilter IFileSinkFilter;
#endif
#ifndef __IFileSinkFilter2_FWD_DEFINED__
#define __IFileSinkFilter2_FWD_DEFINED__
typedef struct IFileSinkFilter2 IFileSinkFilter2;
#endif
#ifndef __IFilterMapper_FWD_DEFINED__
#define __IFilterMapper_FWD_DEFINED__
typedef struct IFilterMapper IFilterMapper;
#endif
#ifndef __IFilterMapper2_FWD_DEFINED__
#define __IFilterMapper2_FWD_DEFINED__
typedef struct IFilterMapper2 IFilterMapper2;
#endif
#ifndef __IGraphBuilder_FWD_DEFINED__
#define __IGraphBuilder_FWD_DEFINED__
typedef struct IGraphBuilder IGraphBuilder;
#endif
#ifndef __IKsPropertySet_FWD_DEFINED__
#define __IKsPropertySet_FWD_DEFINED__
typedef struct IKsPropertySet IKsPropertySet;
#endif
#ifndef __IMediaEventSink_FWD_DEFINED__
#define __IMediaEventSink_FWD_DEFINED__
typedef struct IMediaEventSink IMediaEventSink;
#endif
#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
#define __IMpeg2Demultiplexer_FWD_DEFINED__
typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
#endif
#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
#define __IMPEG2StreamIdMap_FWD_DEFINED__
typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
#endif
#ifndef __IOverlay_FWD_DEFINED__
#define __IOverlay_FWD_DEFINED__
typedef struct IOverlay IOverlay;
#endif
#ifndef __IOverlayNotify_FWD_DEFINED__
#define __IOverlayNotify_FWD_DEFINED__
typedef struct IOverlayNotify IOverlayNotify;
#endif
#ifndef __IOverlayNotify2_FWD_DEFINED__
#define __IOverlayNotify2_FWD_DEFINED__
typedef struct IOverlayNotify2 IOverlayNotify2;
#endif
#ifndef __IQualityControl_FWD_DEFINED__
#define __IQualityControl_FWD_DEFINED__
typedef struct IQualityControl IQualityControl;
#endif
#ifndef __ISeekingPassThru_FWD_DEFINED__
#define __ISeekingPassThru_FWD_DEFINED__
typedef struct ISeekingPassThru ISeekingPassThru;
#endif
typedef struct {
CLSID Clsid;
LPWSTR Name;
} REGFILTER;
/*****************************************************************************
* IEnumRegFilters interface
*/
#ifndef __IEnumRegFilters_INTERFACE_DEFINED__
#define __IEnumRegFilters_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumRegFilters : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG cFilters,
REGFILTER** apRegFilter,
ULONG* pcFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG cFilters) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumRegFilters** ppEnum) = 0;
};
#else
typedef struct IEnumRegFiltersVtbl IEnumRegFiltersVtbl;
struct IEnumRegFilters {
const IEnumRegFiltersVtbl* lpVtbl;
};
struct IEnumRegFiltersVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumRegFilters* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumRegFilters* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumRegFilters* This);
/*** IEnumRegFilters methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumRegFilters* This,
ULONG cFilters,
REGFILTER** apRegFilter,
ULONG* pcFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumRegFilters* This,
ULONG cFilters);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumRegFilters* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumRegFilters* This,
IEnumRegFilters** ppEnum);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumRegFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumRegFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumRegFilters_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumRegFilters methods ***/
#define IEnumRegFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumRegFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumRegFilters_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumRegFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumRegFilters_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumRegFilters methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRegFilters** ppEnum) PURE;
HRESULT CALLBACK IEnumRegFilters_Next_Proxy(
IEnumRegFilters* This,
ULONG cFilters,
REGFILTER** apRegFilter,
ULONG* pcFetched);
void __RPC_STUB IEnumRegFilters_Next_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumRegFilters_Skip_Proxy(
IEnumRegFilters* This,
ULONG cFilters);
void __RPC_STUB IEnumRegFilters_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumRegFilters_Reset_Proxy(
IEnumRegFilters* This);
void __RPC_STUB IEnumRegFilters_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumRegFilters_Clone_Proxy(
IEnumRegFilters* This,
IEnumRegFilters** ppEnum);
void __RPC_STUB IEnumRegFilters_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */
typedef IEnumRegFilters *PENUMREGFILTERS;
enum {
MERIT_PREFERRED = 0x800000,
MERIT_NORMAL = 0x600000,
MERIT_UNLIKELY = 0x400000,
MERIT_DO_NOT_USE = 0x200000,
MERIT_SW_COMPRESSOR = 0x100000,
MERIT_HW_COMPRESSOR = 0x100050
};
/*****************************************************************************
* IFilterMapper interface
*/
#ifndef __IFilterMapper_INTERFACE_DEFINED__
#define __IFilterMapper_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterMapper : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
CLSID clsid,
LPCWSTR Name,
DWORD dwMerit) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
CLSID clsid,
LPCWSTR Name,
CLSID* MRId) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterPin(
CLSID Filter,
LPCWSTR Name,
BOOL bRendered,
BOOL bOutput,
BOOL bZero,
BOOL bMany,
CLSID ConnectsToFilter,
LPCWSTR ConnectsToPin) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
CLSID clsFilter,
LPCWSTR strName,
CLSID clsMajorType,
CLSID clsSubType) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
CLSID Filter) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
CLSID MRId) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
CLSID Filter,
LPCWSTR Name) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
IEnumRegFilters** ppEnum,
DWORD dwMerit,
BOOL bInputNeeded,
CLSID clsInMaj,
CLSID clsInSub,
BOOL bRender,
BOOL bOututNeeded,
CLSID clsOutMaj,
CLSID clsOutSub) = 0;
};
#else
typedef struct IFilterMapperVtbl IFilterMapperVtbl;
struct IFilterMapper {
const IFilterMapperVtbl* lpVtbl;
};
struct IFilterMapperVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterMapper* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterMapper* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterMapper* This);
/*** IFilterMapper methods ***/
HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
IFilterMapper* This,
CLSID clsid,
LPCWSTR Name,
DWORD dwMerit);
HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
IFilterMapper* This,
CLSID clsid,
LPCWSTR Name,
CLSID* MRId);
HRESULT (STDMETHODCALLTYPE *RegisterPin)(
IFilterMapper* This,
CLSID Filter,
LPCWSTR Name,
BOOL bRendered,
BOOL bOutput,
BOOL bZero,
BOOL bMany,
CLSID ConnectsToFilter,
LPCWSTR ConnectsToPin);
HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
IFilterMapper* This,
CLSID clsFilter,
LPCWSTR strName,
CLSID clsMajorType,
CLSID clsSubType);
HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
IFilterMapper* This,
CLSID Filter);
HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
IFilterMapper* This,
CLSID MRId);
HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
IFilterMapper* This,
CLSID Filter,
LPCWSTR Name);
HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
IFilterMapper* This,
IEnumRegFilters** ppEnum,
DWORD dwMerit,
BOOL bInputNeeded,
CLSID clsInMaj,
CLSID clsInSub,
BOOL bRender,
BOOL bOututNeeded,
CLSID clsOutMaj,
CLSID clsOutSub);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterMapper_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterMapper_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterMapper methods ***/
#define IFilterMapper_RegisterFilter(p,a,b,c) (p)->lpVtbl->RegisterFilter(p,a,b,c)
#define IFilterMapper_RegisterFilterInstance(p,a,b,c) (p)->lpVtbl->RegisterFilterInstance(p,a,b,c)
#define IFilterMapper_RegisterPin(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->RegisterPin(p,a,b,c,d,e,f,g,h)
#define IFilterMapper_RegisterPinType(p,a,b,c,d) (p)->lpVtbl->RegisterPinType(p,a,b,c,d)
#define IFilterMapper_UnregisterFilter(p,a) (p)->lpVtbl->UnregisterFilter(p,a)
#define IFilterMapper_UnregisterFilterInstance(p,a) (p)->lpVtbl->UnregisterFilterInstance(p,a)
#define IFilterMapper_UnregisterPin(p,a,b) (p)->lpVtbl->UnregisterPin(p,a,b)
#define IFilterMapper_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i)
#endif
#endif
#define IFilterMapper_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterMapper methods ***/ \
STDMETHOD_(HRESULT,RegisterFilter)(THIS_ CLSID clsid, LPCWSTR Name, DWORD dwMerit) PURE; \
STDMETHOD_(HRESULT,RegisterFilterInstance)(THIS_ CLSID clsid, LPCWSTR Name, CLSID* MRId) PURE; \
STDMETHOD_(HRESULT,RegisterPin)(THIS_ CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) PURE; \
STDMETHOD_(HRESULT,RegisterPinType)(THIS_ CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) PURE; \
STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ CLSID Filter) PURE; \
STDMETHOD_(HRESULT,UnregisterFilterInstance)(THIS_ CLSID MRId) PURE; \
STDMETHOD_(HRESULT,UnregisterPin)(THIS_ CLSID Filter, LPCWSTR Name) PURE; \
STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) PURE;
HRESULT CALLBACK IFilterMapper_RegisterFilter_Proxy(
IFilterMapper* This,
CLSID clsid,
LPCWSTR Name,
DWORD dwMerit);
void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_RegisterFilterInstance_Proxy(
IFilterMapper* This,
CLSID clsid,
LPCWSTR Name,
CLSID* MRId);
void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_RegisterPin_Proxy(
IFilterMapper* This,
CLSID Filter,
LPCWSTR Name,
BOOL bRendered,
BOOL bOutput,
BOOL bZero,
BOOL bMany,
CLSID ConnectsToFilter,
LPCWSTR ConnectsToPin);
void __RPC_STUB IFilterMapper_RegisterPin_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_RegisterPinType_Proxy(
IFilterMapper* This,
CLSID clsFilter,
LPCWSTR strName,
CLSID clsMajorType,
CLSID clsSubType);
void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_UnregisterFilter_Proxy(
IFilterMapper* This,
CLSID Filter);
void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_UnregisterFilterInstance_Proxy(
IFilterMapper* This,
CLSID MRId);
void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_UnregisterPin_Proxy(
IFilterMapper* This,
CLSID Filter,
LPCWSTR Name);
void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper_EnumMatchingFilters_Proxy(
IFilterMapper* This,
IEnumRegFilters** ppEnum,
DWORD dwMerit,
BOOL bInputNeeded,
CLSID clsInMaj,
CLSID clsInSub,
BOOL bRender,
BOOL bOututNeeded,
CLSID clsOutMaj,
CLSID clsOutSub);
void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterMapper_INTERFACE_DEFINED__ */
typedef struct {
const CLSID *clsMajorType;
const CLSID *clsMinorType;
} REGPINTYPES;
typedef struct {
LPWSTR strName;
BOOL bRendered;
BOOL bOutput;
BOOL bZero;
BOOL bMany;
const CLSID *clsConnectsToFilter;
const WCHAR *strConnectsToPin;
UINT nMediaTypes;
const REGPINTYPES *lpMediaType;
} REGFILTERPINS;
typedef struct {
CLSID clsMedium;
DWORD dw1;
DWORD dw2;
} REGPINMEDIUM;
enum {
REG_PINFLAG_B_ZERO = 0x1,
REG_PINFLAG_B_RENDERER = 0x2,
REG_PINFLAG_B_MANY = 0x4,
REG_PINFLAG_B_OUTPUT = 0x8
};
typedef struct {
DWORD dwFlags;
UINT cInstances;
UINT nMediaTypes;
const REGPINTYPES *lpMediaType;
UINT nMediums;
const REGPINMEDIUM *lpMedium;
const CLSID *clsPinCategory;
} REGFILTERPINS2;
typedef struct {
DWORD dwVersion;
DWORD dwMerit;
union {
struct {
ULONG cPins;
const REGFILTERPINS *rgPins;
} DUMMYSTRUCTNAME;
struct {
ULONG cPins2;
const REGFILTERPINS2 *rgPins2;
} DUMMYSTRUCTNAME1;
} DUMMYUNIONNAME;
} REGFILTER2;
/*****************************************************************************
* IFilterMapper2 interface
*/
#ifndef __IFilterMapper2_INTERFACE_DEFINED__
#define __IFilterMapper2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterMapper2 : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE CreateCategory(
REFCLSID clsidCategory,
DWORD dwCategoryMerit,
LPCWSTR Description) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
REFCLSID Filter) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
REFCLSID clsidFilter,
LPCWSTR Name,
IMoniker** ppMoniker,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
const REGFILTER2* prf2) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
IEnumMoniker** ppEnum,
DWORD dwFlags,
BOOL bExactMatch,
DWORD dwMerit,
BOOL bInputNeeded,
DWORD cInputTypes,
const GUID* pInputTypes,
const REGPINMEDIUM* pMedIn,
const CLSID* pPinCategoryIn,
BOOL bRender,
BOOL bOutputNeeded,
DWORD cOutputTypes,
const GUID* pOutputTypes,
const REGPINMEDIUM* pMedOut,
const CLSID* pPinCategoryOut) = 0;
};
#else
typedef struct IFilterMapper2Vtbl IFilterMapper2Vtbl;
struct IFilterMapper2 {
const IFilterMapper2Vtbl* lpVtbl;
};
struct IFilterMapper2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterMapper2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterMapper2* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterMapper2* This);
/*** IFilterMapper2 methods ***/
HRESULT (STDMETHODCALLTYPE *CreateCategory)(
IFilterMapper2* This,
REFCLSID clsidCategory,
DWORD dwCategoryMerit,
LPCWSTR Description);
HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
IFilterMapper2* This,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
REFCLSID Filter);
HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
IFilterMapper2* This,
REFCLSID clsidFilter,
LPCWSTR Name,
IMoniker** ppMoniker,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
const REGFILTER2* prf2);
HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
IFilterMapper2* This,
IEnumMoniker** ppEnum,
DWORD dwFlags,
BOOL bExactMatch,
DWORD dwMerit,
BOOL bInputNeeded,
DWORD cInputTypes,
const GUID* pInputTypes,
const REGPINMEDIUM* pMedIn,
const CLSID* pPinCategoryIn,
BOOL bRender,
BOOL bOutputNeeded,
DWORD cOutputTypes,
const GUID* pOutputTypes,
const REGPINMEDIUM* pMedOut,
const CLSID* pPinCategoryOut);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterMapper2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterMapper2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterMapper2_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterMapper2 methods ***/
#define IFilterMapper2_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
#define IFilterMapper2_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
#define IFilterMapper2_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
#define IFilterMapper2_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
#endif
#endif
#define IFilterMapper2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterMapper2 methods ***/ \
STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE;
HRESULT CALLBACK IFilterMapper2_CreateCategory_Proxy(
IFilterMapper2* This,
REFCLSID clsidCategory,
DWORD dwCategoryMerit,
LPCWSTR Description);
void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper2_UnregisterFilter_Proxy(
IFilterMapper2* This,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
REFCLSID Filter);
void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper2_RegisterFilter_Proxy(
IFilterMapper2* This,
REFCLSID clsidFilter,
LPCWSTR Name,
IMoniker** ppMoniker,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
const REGFILTER2* prf2);
void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterMapper2_EnumMatchingFilters_Proxy(
IFilterMapper2* This,
IEnumMoniker** ppEnum,
DWORD dwFlags,
BOOL bExactMatch,
DWORD dwMerit,
BOOL bInputNeeded,
DWORD cInputTypes,
const GUID* pInputTypes,
const REGPINMEDIUM* pMedIn,
const CLSID* pPinCategoryIn,
BOOL bRender,
BOOL bOutputNeeded,
DWORD cOutputTypes,
const GUID* pOutputTypes,
const REGPINMEDIUM* pMedOut,
const CLSID* pPinCategoryOut);
void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterMapper2_INTERFACE_DEFINED__ */
#ifndef __IFilterMapper3_FWD_DEFINED__
#define __IFilterMapper3_FWD_DEFINED__
typedef struct IFilterMapper3 IFilterMapper3;
#endif
/*****************************************************************************
* IFilterMapper3 interface
*/
#ifndef __IFilterMapper3_INTERFACE_DEFINED__
#define __IFilterMapper3_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterMapper3 : public IFilterMapper2
{
virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
ICreateDevEnum** ppEnum) = 0;
};
#else
typedef struct IFilterMapper3Vtbl IFilterMapper3Vtbl;
struct IFilterMapper3 {
const IFilterMapper3Vtbl* lpVtbl;
};
struct IFilterMapper3Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterMapper3* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterMapper3* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterMapper3* This);
/*** IFilterMapper2 methods ***/
HRESULT (STDMETHODCALLTYPE *CreateCategory)(
IFilterMapper3* This,
REFCLSID clsidCategory,
DWORD dwCategoryMerit,
LPCWSTR Description);
HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
IFilterMapper3* This,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
REFCLSID Filter);
HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
IFilterMapper3* This,
REFCLSID clsidFilter,
LPCWSTR Name,
IMoniker** ppMoniker,
const CLSID* pclsidCategory,
const OLECHAR* szInstance,
const REGFILTER2* prf2);
HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
IFilterMapper3* This,
IEnumMoniker** ppEnum,
DWORD dwFlags,
BOOL bExactMatch,
DWORD dwMerit,
BOOL bInputNeeded,
DWORD cInputTypes,
const GUID* pInputTypes,
const REGPINMEDIUM* pMedIn,
const CLSID* pPinCategoryIn,
BOOL bRender,
BOOL bOutputNeeded,
DWORD cOutputTypes,
const GUID* pOutputTypes,
const REGPINMEDIUM* pMedOut,
const CLSID* pPinCategoryOut);
/*** IFilterMapper3 methods ***/
HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
IFilterMapper3* This,
ICreateDevEnum** ppEnum);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterMapper3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterMapper3_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterMapper3_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterMapper2 methods ***/
#define IFilterMapper3_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
#define IFilterMapper3_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
#define IFilterMapper3_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
#define IFilterMapper3_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
/*** IFilterMapper3 methods ***/
#define IFilterMapper3_GetICreateDevEnum(p,a) (p)->lpVtbl->GetICreateDevEnum(p,a)
#endif
#endif
#define IFilterMapper3_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterMapper2 methods ***/ \
STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE; \
/*** IFilterMapper3 methods ***/ \
STDMETHOD_(HRESULT,GetICreateDevEnum)(THIS_ ICreateDevEnum** ppEnum) PURE;
HRESULT CALLBACK IFilterMapper3_GetICreateDevEnum_Proxy(
IFilterMapper3* This,
ICreateDevEnum** ppEnum);
void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterMapper3_INTERFACE_DEFINED__ */
typedef enum tagQualityMessageType {
Famine,
Flood
} QualityMessageType;
typedef struct tagQuality {
QualityMessageType Type;
long Proportion;
REFERENCE_TIME Late;
REFERENCE_TIME TimeStamp;
} Quality;
typedef IQualityControl *PQUALITYCONTROL;
/*****************************************************************************
* IQualityControl interface
*/
#ifndef __IQualityControl_INTERFACE_DEFINED__
#define __IQualityControl_INTERFACE_DEFINED__
DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IQualityControl : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Notify(
IBaseFilter* pSelf,
Quality q) = 0;
virtual HRESULT STDMETHODCALLTYPE SetSink(
IQualityControl* piqc) = 0;
};
#else
typedef struct IQualityControlVtbl IQualityControlVtbl;
struct IQualityControl {
const IQualityControlVtbl* lpVtbl;
};
struct IQualityControlVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IQualityControl* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IQualityControl* This);
ULONG (STDMETHODCALLTYPE *Release)(
IQualityControl* This);
/*** IQualityControl methods ***/
HRESULT (STDMETHODCALLTYPE *Notify)(
IQualityControl* This,
IBaseFilter* pSelf,
Quality q);
HRESULT (STDMETHODCALLTYPE *SetSink)(
IQualityControl* This,
IQualityControl* piqc);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IQualityControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IQualityControl_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IQualityControl_Release(p) (p)->lpVtbl->Release(p)
/*** IQualityControl methods ***/
#define IQualityControl_Notify(p,a,b) (p)->lpVtbl->Notify(p,a,b)
#define IQualityControl_SetSink(p,a) (p)->lpVtbl->SetSink(p,a)
#endif
#endif
#define IQualityControl_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IQualityControl methods ***/ \
STDMETHOD_(HRESULT,Notify)(THIS_ IBaseFilter* pSelf, Quality q) PURE; \
STDMETHOD_(HRESULT,SetSink)(THIS_ IQualityControl* piqc) PURE;
HRESULT CALLBACK IQualityControl_Notify_Proxy(
IQualityControl* This,
IBaseFilter* pSelf,
Quality q);
void __RPC_STUB IQualityControl_Notify_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IQualityControl_SetSink_Proxy(
IQualityControl* This,
IQualityControl* piqc);
void __RPC_STUB IQualityControl_SetSink_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IQualityControl_INTERFACE_DEFINED__ */
enum {
CK_NOCOLORKEY = 0x0,
CK_INDEX = 0x1,
CK_RGB = 0x2
};
typedef struct tagCOLORKEY {
DWORD KeyType;
DWORD PaletteIndex;
COLORREF LowColorValue;
COLORREF HighColorValue;
} COLORKEY;
enum {
ADVISE_NONE = 0x0,
ADVISE_CLIPPING = 0x1,
ADVISE_PALETTE = 0x2,
ADVISE_COLORKEY = 0x4,
ADVISE_POSITION = 0x8,
ADVISE_DISPLAY_CHANGE = 0x10
};
#define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
#define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
#ifndef _WINGDI_
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER;
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA;
#endif /* _WINGDI_ */
/*****************************************************************************
* IOverlayNotify interface
*/
#ifndef __IOverlayNotify_INTERFACE_DEFINED__
#define __IOverlayNotify_INTERFACE_DEFINED__
DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IOverlayNotify : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
DWORD dwColors,
const PALETTEENTRY* pPalette) = 0;
virtual HRESULT STDMETHODCALLTYPE OnClipChange(
const RECT* pSourceRect,
const RECT* pDestinationRect,
const RGNDATA* pRgnData) = 0;
virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
const COLORKEY* pColorKey) = 0;
virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
const RECT* pSourceRect,
const RECT* pDestinationRect) = 0;
};
#else
typedef struct IOverlayNotifyVtbl IOverlayNotifyVtbl;
struct IOverlayNotify {
const IOverlayNotifyVtbl* lpVtbl;
};
struct IOverlayNotifyVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IOverlayNotify* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IOverlayNotify* This);
ULONG (STDMETHODCALLTYPE *Release)(
IOverlayNotify* This);
/*** IOverlayNotify methods ***/
HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
IOverlayNotify* This,
DWORD dwColors,
const PALETTEENTRY* pPalette);
HRESULT (STDMETHODCALLTYPE *OnClipChange)(
IOverlayNotify* This,
const RECT* pSourceRect,
const RECT* pDestinationRect,
const RGNDATA* pRgnData);
HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
IOverlayNotify* This,
const COLORKEY* pColorKey);
HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
IOverlayNotify* This,
const RECT* pSourceRect,
const RECT* pDestinationRect);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOverlayNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOverlayNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOverlayNotify_Release(p) (p)->lpVtbl->Release(p)
/*** IOverlayNotify methods ***/
#define IOverlayNotify_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
#define IOverlayNotify_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
#define IOverlayNotify_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
#define IOverlayNotify_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
#endif
#endif
#define IOverlayNotify_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IOverlayNotify methods ***/ \
STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE;
HRESULT CALLBACK IOverlayNotify_OnPaletteChange_Proxy(
IOverlayNotify* This,
DWORD dwColors,
const PALETTEENTRY* pPalette);
void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlayNotify_OnClipChange_Proxy(
IOverlayNotify* This,
const RECT* pSourceRect,
const RECT* pDestinationRect,
const RGNDATA* pRgnData);
void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlayNotify_OnColorKeyChange_Proxy(
IOverlayNotify* This,
const COLORKEY* pColorKey);
void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlayNotify_OnPositionChange_Proxy(
IOverlayNotify* This,
const RECT* pSourceRect,
const RECT* pDestinationRect);
void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IOverlayNotify_INTERFACE_DEFINED__ */
typedef IOverlayNotify *POVERLAYNOTIFY;
#if 0
typedef HANDLE HMONITOR;
#endif /* 0 */
/*****************************************************************************
* IOverlayNotify2 interface
*/
#ifndef __IOverlayNotify2_INTERFACE_DEFINED__
#define __IOverlayNotify2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IOverlayNotify2 : public IOverlayNotify
{
virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
HMONITOR hMonitor) = 0;
};
#else
typedef struct IOverlayNotify2Vtbl IOverlayNotify2Vtbl;
struct IOverlayNotify2 {
const IOverlayNotify2Vtbl* lpVtbl;
};
struct IOverlayNotify2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IOverlayNotify2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IOverlayNotify2* This);
ULONG (STDMETHODCALLTYPE *Release)(
IOverlayNotify2* This);
/*** IOverlayNotify methods ***/
HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
IOverlayNotify2* This,
DWORD dwColors,
const PALETTEENTRY* pPalette);
HRESULT (STDMETHODCALLTYPE *OnClipChange)(
IOverlayNotify2* This,
const RECT* pSourceRect,
const RECT* pDestinationRect,
const RGNDATA* pRgnData);
HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
IOverlayNotify2* This,
const COLORKEY* pColorKey);
HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
IOverlayNotify2* This,
const RECT* pSourceRect,
const RECT* pDestinationRect);
/*** IOverlayNotify2 methods ***/
HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
IOverlayNotify2* This,
HMONITOR hMonitor);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOverlayNotify2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOverlayNotify2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOverlayNotify2_Release(p) (p)->lpVtbl->Release(p)
/*** IOverlayNotify methods ***/
#define IOverlayNotify2_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
#define IOverlayNotify2_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
#define IOverlayNotify2_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
#define IOverlayNotify2_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
/*** IOverlayNotify2 methods ***/
#define IOverlayNotify2_OnDisplayChange(p,a) (p)->lpVtbl->OnDisplayChange(p,a)
#endif
#endif
#define IOverlayNotify2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IOverlayNotify methods ***/ \
STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; \
/*** IOverlayNotify2 methods ***/ \
STDMETHOD_(HRESULT,OnDisplayChange)(THIS_ HMONITOR hMonitor) PURE;
HRESULT CALLBACK IOverlayNotify2_OnDisplayChange_Proxy(
IOverlayNotify2* This,
HMONITOR hMonitor);
void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IOverlayNotify2_INTERFACE_DEFINED__ */
typedef IOverlayNotify2 *POVERLAYNOTIFY2;
/*****************************************************************************
* IOverlay interface
*/
#ifndef __IOverlay_INTERFACE_DEFINED__
#define __IOverlay_INTERFACE_DEFINED__
DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IOverlay : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetPalette(
DWORD* pdwColors,
PALETTEENTRY** ppPalette) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPalette(
DWORD dwColors,
PALETTEENTRY* pPalette) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
COLORKEY* pColorKey) = 0;
virtual HRESULT STDMETHODCALLTYPE GetColorKey(
COLORKEY* pColorKey) = 0;
virtual HRESULT STDMETHODCALLTYPE SetColorKey(
COLORKEY* pColorKey) = 0;
virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
HWND* pHwnd) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClipList(
RECT* pSourceRect,
RECT* pDestinationRect,
RGNDATA** ppRgnData) = 0;
virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
RECT* pSourceRect,
RECT* pDestinationRect) = 0;
virtual HRESULT STDMETHODCALLTYPE Advise(
IOverlayNotify* pOverlayNotify,
DWORD dwInterests) = 0;
virtual HRESULT STDMETHODCALLTYPE Unadvise(
) = 0;
};
#else
typedef struct IOverlayVtbl IOverlayVtbl;
struct IOverlay {
const IOverlayVtbl* lpVtbl;
};
struct IOverlayVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IOverlay* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IOverlay* This);
ULONG (STDMETHODCALLTYPE *Release)(
IOverlay* This);
/*** IOverlay methods ***/
HRESULT (STDMETHODCALLTYPE *GetPalette)(
IOverlay* This,
DWORD* pdwColors,
PALETTEENTRY** ppPalette);
HRESULT (STDMETHODCALLTYPE *SetPalette)(
IOverlay* This,
DWORD dwColors,
PALETTEENTRY* pPalette);
HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
IOverlay* This,
COLORKEY* pColorKey);
HRESULT (STDMETHODCALLTYPE *GetColorKey)(
IOverlay* This,
COLORKEY* pColorKey);
HRESULT (STDMETHODCALLTYPE *SetColorKey)(
IOverlay* This,
COLORKEY* pColorKey);
HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
IOverlay* This,
HWND* pHwnd);
HRESULT (STDMETHODCALLTYPE *GetClipList)(
IOverlay* This,
RECT* pSourceRect,
RECT* pDestinationRect,
RGNDATA** ppRgnData);
HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
IOverlay* This,
RECT* pSourceRect,
RECT* pDestinationRect);
HRESULT (STDMETHODCALLTYPE *Advise)(
IOverlay* This,
IOverlayNotify* pOverlayNotify,
DWORD dwInterests);
HRESULT (STDMETHODCALLTYPE *Unadvise)(
IOverlay* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOverlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOverlay_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOverlay_Release(p) (p)->lpVtbl->Release(p)
/*** IOverlay methods ***/
#define IOverlay_GetPalette(p,a,b) (p)->lpVtbl->GetPalette(p,a,b)
#define IOverlay_SetPalette(p,a,b) (p)->lpVtbl->SetPalette(p,a,b)
#define IOverlay_GetDefaultColorKey(p,a) (p)->lpVtbl->GetDefaultColorKey(p,a)
#define IOverlay_GetColorKey(p,a) (p)->lpVtbl->GetColorKey(p,a)
#define IOverlay_SetColorKey(p,a) (p)->lpVtbl->SetColorKey(p,a)
#define IOverlay_GetWindowHandle(p,a) (p)->lpVtbl->GetWindowHandle(p,a)
#define IOverlay_GetClipList(p,a,b,c) (p)->lpVtbl->GetClipList(p,a,b,c)
#define IOverlay_GetVideoPosition(p,a,b) (p)->lpVtbl->GetVideoPosition(p,a,b)
#define IOverlay_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
#define IOverlay_Unadvise(p) (p)->lpVtbl->Unadvise(p)
#endif
#endif
#define IOverlay_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IOverlay methods ***/ \
STDMETHOD_(HRESULT,GetPalette)(THIS_ DWORD* pdwColors, PALETTEENTRY** ppPalette) PURE; \
STDMETHOD_(HRESULT,SetPalette)(THIS_ DWORD dwColors, PALETTEENTRY* pPalette) PURE; \
STDMETHOD_(HRESULT,GetDefaultColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
STDMETHOD_(HRESULT,GetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
STDMETHOD_(HRESULT,SetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
STDMETHOD_(HRESULT,GetWindowHandle)(THIS_ HWND* pHwnd) PURE; \
STDMETHOD_(HRESULT,GetClipList)(THIS_ RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) PURE; \
STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ RECT* pSourceRect, RECT* pDestinationRect) PURE; \
STDMETHOD_(HRESULT,Advise)(THIS_ IOverlayNotify* pOverlayNotify, DWORD dwInterests) PURE; \
STDMETHOD_(HRESULT,Unadvise)(THIS) PURE;
HRESULT CALLBACK IOverlay_GetPalette_Proxy(
IOverlay* This,
DWORD* pdwColors,
PALETTEENTRY** ppPalette);
void __RPC_STUB IOverlay_GetPalette_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_SetPalette_Proxy(
IOverlay* This,
DWORD dwColors,
PALETTEENTRY* pPalette);
void __RPC_STUB IOverlay_SetPalette_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_GetDefaultColorKey_Proxy(
IOverlay* This,
COLORKEY* pColorKey);
void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_GetColorKey_Proxy(
IOverlay* This,
COLORKEY* pColorKey);
void __RPC_STUB IOverlay_GetColorKey_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_SetColorKey_Proxy(
IOverlay* This,
COLORKEY* pColorKey);
void __RPC_STUB IOverlay_SetColorKey_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_GetWindowHandle_Proxy(
IOverlay* This,
HWND* pHwnd);
void __RPC_STUB IOverlay_GetWindowHandle_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_GetClipList_Proxy(
IOverlay* This,
RECT* pSourceRect,
RECT* pDestinationRect,
RGNDATA** ppRgnData);
void __RPC_STUB IOverlay_GetClipList_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_GetVideoPosition_Proxy(
IOverlay* This,
RECT* pSourceRect,
RECT* pDestinationRect);
void __RPC_STUB IOverlay_GetVideoPosition_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_Advise_Proxy(
IOverlay* This,
IOverlayNotify* pOverlayNotify,
DWORD dwInterests);
void __RPC_STUB IOverlay_Advise_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IOverlay_Unadvise_Proxy(
IOverlay* This);
void __RPC_STUB IOverlay_Unadvise_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IOverlay_INTERFACE_DEFINED__ */
typedef IOverlay *POVERLAY;
/*****************************************************************************
* IMediaEventSink interface
*/
#ifndef __IMediaEventSink_INTERFACE_DEFINED__
#define __IMediaEventSink_INTERFACE_DEFINED__
DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IMediaEventSink : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Notify(
long EventCode,
LONG_PTR EventParam1,
LONG_PTR EventParam2) = 0;
};
#else
typedef struct IMediaEventSinkVtbl IMediaEventSinkVtbl;
struct IMediaEventSink {
const IMediaEventSinkVtbl* lpVtbl;
};
struct IMediaEventSinkVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IMediaEventSink* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IMediaEventSink* This);
ULONG (STDMETHODCALLTYPE *Release)(
IMediaEventSink* This);
/*** IMediaEventSink methods ***/
HRESULT (STDMETHODCALLTYPE *Notify)(
IMediaEventSink* This,
long EventCode,
LONG_PTR EventParam1,
LONG_PTR EventParam2);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMediaEventSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IMediaEventSink_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IMediaEventSink_Release(p) (p)->lpVtbl->Release(p)
/*** IMediaEventSink methods ***/
#define IMediaEventSink_Notify(p,a,b,c) (p)->lpVtbl->Notify(p,a,b,c)
#endif
#endif
#define IMediaEventSink_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IMediaEventSink methods ***/ \
STDMETHOD_(HRESULT,Notify)(THIS_ long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) PURE;
HRESULT CALLBACK IMediaEventSink_Notify_Proxy(
IMediaEventSink* This,
long EventCode,
LONG_PTR EventParam1,
LONG_PTR EventParam2);
void __RPC_STUB IMediaEventSink_Notify_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IMediaEventSink_INTERFACE_DEFINED__ */
typedef IMediaEventSink *PMEDIAEVENTSINK;
/*****************************************************************************
* IFileSourceFilter interface
*/
#ifndef __IFileSourceFilter_INTERFACE_DEFINED__
#define __IFileSourceFilter_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFileSourceFilter : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Load(
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurFile(
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt) = 0;
};
#else
typedef struct IFileSourceFilterVtbl IFileSourceFilterVtbl;
struct IFileSourceFilter {
const IFileSourceFilterVtbl* lpVtbl;
};
struct IFileSourceFilterVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFileSourceFilter* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFileSourceFilter* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFileSourceFilter* This);
/*** IFileSourceFilter methods ***/
HRESULT (STDMETHODCALLTYPE *Load)(
IFileSourceFilter* This,
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *GetCurFile)(
IFileSourceFilter* This,
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFileSourceFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFileSourceFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFileSourceFilter_Release(p) (p)->lpVtbl->Release(p)
/*** IFileSourceFilter methods ***/
#define IFileSourceFilter_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
#define IFileSourceFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
#endif
#endif
#define IFileSourceFilter_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFileSourceFilter methods ***/ \
STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
HRESULT CALLBACK IFileSourceFilter_Load_Proxy(
IFileSourceFilter* This,
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFileSourceFilter_Load_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFileSourceFilter_GetCurFile_Proxy(
IFileSourceFilter* This,
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFileSourceFilter_INTERFACE_DEFINED__ */
typedef IFileSourceFilter *PFILTERFILESOURCE;
/*****************************************************************************
* IFileSinkFilter interface
*/
#ifndef __IFileSinkFilter_INTERFACE_DEFINED__
#define __IFileSinkFilter_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFileSinkFilter : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetFileName(
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurFile(
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt) = 0;
};
#else
typedef struct IFileSinkFilterVtbl IFileSinkFilterVtbl;
struct IFileSinkFilter {
const IFileSinkFilterVtbl* lpVtbl;
};
struct IFileSinkFilterVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFileSinkFilter* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFileSinkFilter* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFileSinkFilter* This);
/*** IFileSinkFilter methods ***/
HRESULT (STDMETHODCALLTYPE *SetFileName)(
IFileSinkFilter* This,
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *GetCurFile)(
IFileSinkFilter* This,
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFileSinkFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFileSinkFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFileSinkFilter_Release(p) (p)->lpVtbl->Release(p)
/*** IFileSinkFilter methods ***/
#define IFileSinkFilter_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
#define IFileSinkFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
#endif
#endif
#define IFileSinkFilter_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFileSinkFilter methods ***/ \
STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
HRESULT CALLBACK IFileSinkFilter_SetFileName_Proxy(
IFileSinkFilter* This,
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFileSinkFilter_GetCurFile_Proxy(
IFileSinkFilter* This,
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFileSinkFilter_INTERFACE_DEFINED__ */
typedef IFileSinkFilter *PFILTERFILESINK;
/*****************************************************************************
* IFileSinkFilter2 interface
*/
#ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
#define __IFileSinkFilter2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFileSinkFilter2 : public IFileSinkFilter
{
virtual HRESULT STDMETHODCALLTYPE SetMode(
DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMode(
DWORD* pdwFlags) = 0;
};
#else
typedef struct IFileSinkFilter2Vtbl IFileSinkFilter2Vtbl;
struct IFileSinkFilter2 {
const IFileSinkFilter2Vtbl* lpVtbl;
};
struct IFileSinkFilter2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFileSinkFilter2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFileSinkFilter2* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFileSinkFilter2* This);
/*** IFileSinkFilter methods ***/
HRESULT (STDMETHODCALLTYPE *SetFileName)(
IFileSinkFilter2* This,
LPCOLESTR pszFileName,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *GetCurFile)(
IFileSinkFilter2* This,
LPOLESTR* ppszFileName,
AM_MEDIA_TYPE* pmt);
/*** IFileSinkFilter2 methods ***/
HRESULT (STDMETHODCALLTYPE *SetMode)(
IFileSinkFilter2* This,
DWORD dwFlags);
HRESULT (STDMETHODCALLTYPE *GetMode)(
IFileSinkFilter2* This,
DWORD* pdwFlags);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFileSinkFilter2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFileSinkFilter2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFileSinkFilter2_Release(p) (p)->lpVtbl->Release(p)
/*** IFileSinkFilter methods ***/
#define IFileSinkFilter2_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
#define IFileSinkFilter2_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
/*** IFileSinkFilter2 methods ***/
#define IFileSinkFilter2_SetMode(p,a) (p)->lpVtbl->SetMode(p,a)
#define IFileSinkFilter2_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
#endif
#endif
#define IFileSinkFilter2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFileSinkFilter methods ***/ \
STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; \
/*** IFileSinkFilter2 methods ***/ \
STDMETHOD_(HRESULT,SetMode)(THIS_ DWORD dwFlags) PURE; \
STDMETHOD_(HRESULT,GetMode)(THIS_ DWORD* pdwFlags) PURE;
HRESULT CALLBACK IFileSinkFilter2_SetMode_Proxy(
IFileSinkFilter2* This,
DWORD dwFlags);
void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFileSinkFilter2_GetMode_Proxy(
IFileSinkFilter2* This,
DWORD* pdwFlags);
void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
typedef IFileSinkFilter2 *PFILESINKFILTER2;
typedef enum {
AM_FILE_OVERWRITE = 0x1
} AM_FILESINK_FLAGS;
/*****************************************************************************
* IGraphBuilder interface
*/
#ifndef __IGraphBuilder_INTERFACE_DEFINED__
#define __IGraphBuilder_INTERFACE_DEFINED__
DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IGraphBuilder : public IFilterGraph
{
virtual HRESULT STDMETHODCALLTYPE Connect(
IPin* ppinOut,
IPin* ppinIn) = 0;
virtual HRESULT STDMETHODCALLTYPE Render(
IPin* ppinOut) = 0;
virtual HRESULT STDMETHODCALLTYPE RenderFile(
LPCWSTR lpcwstrFile,
LPCWSTR lpcwstrPlayList) = 0;
virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
LPCWSTR lpcwstrFileName,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE SetLogFile(
DWORD_PTR hFile) = 0;
virtual HRESULT STDMETHODCALLTYPE Abort(
) = 0;
virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
) = 0;
};
#else
typedef struct IGraphBuilderVtbl IGraphBuilderVtbl;
struct IGraphBuilder {
const IGraphBuilderVtbl* lpVtbl;
};
struct IGraphBuilderVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IGraphBuilder* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IGraphBuilder* This);
ULONG (STDMETHODCALLTYPE *Release)(
IGraphBuilder* This);
/*** IFilterGraph methods ***/
HRESULT (STDMETHODCALLTYPE *AddFilter)(
IGraphBuilder* This,
IBaseFilter* pFilter,
LPCWSTR pName);
HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
IGraphBuilder* This,
IBaseFilter* pFilter);
HRESULT (STDMETHODCALLTYPE *EnumFilters)(
IGraphBuilder* This,
IEnumFilters** ppEnum);
HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
IGraphBuilder* This,
LPCWSTR pName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
IGraphBuilder* This,
IPin* ppinOut,
IPin* ppinIn,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *Reconnect)(
IGraphBuilder* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *Disconnect)(
IGraphBuilder* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
IGraphBuilder* This);
/*** IGraphBuilder methods ***/
HRESULT (STDMETHODCALLTYPE *Connect)(
IGraphBuilder* This,
IPin* ppinOut,
IPin* ppinIn);
HRESULT (STDMETHODCALLTYPE *Render)(
IGraphBuilder* This,
IPin* ppinOut);
HRESULT (STDMETHODCALLTYPE *RenderFile)(
IGraphBuilder* This,
LPCWSTR lpcwstrFile,
LPCWSTR lpcwstrPlayList);
HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
IGraphBuilder* This,
LPCWSTR lpcwstrFileName,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *SetLogFile)(
IGraphBuilder* This,
DWORD_PTR hFile);
HRESULT (STDMETHODCALLTYPE *Abort)(
IGraphBuilder* This);
HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
IGraphBuilder* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterGraph methods ***/
#define IGraphBuilder_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
#define IGraphBuilder_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
#define IGraphBuilder_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
#define IGraphBuilder_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
#define IGraphBuilder_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
#define IGraphBuilder_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
#define IGraphBuilder_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
#define IGraphBuilder_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
/*** IGraphBuilder methods ***/
#define IGraphBuilder_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
#define IGraphBuilder_Render(p,a) (p)->lpVtbl->Render(p,a)
#define IGraphBuilder_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
#define IGraphBuilder_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
#define IGraphBuilder_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
#define IGraphBuilder_Abort(p) (p)->lpVtbl->Abort(p)
#define IGraphBuilder_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
#endif
#endif
#define IGraphBuilder_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterGraph methods ***/ \
STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
/*** IGraphBuilder methods ***/ \
STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE;
HRESULT CALLBACK IGraphBuilder_Connect_Proxy(
IGraphBuilder* This,
IPin* ppinOut,
IPin* ppinIn);
void __RPC_STUB IGraphBuilder_Connect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_Render_Proxy(
IGraphBuilder* This,
IPin* ppinOut);
void __RPC_STUB IGraphBuilder_Render_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_RenderFile_Proxy(
IGraphBuilder* This,
LPCWSTR lpcwstrFile,
LPCWSTR lpcwstrPlayList);
void __RPC_STUB IGraphBuilder_RenderFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_AddSourceFilter_Proxy(
IGraphBuilder* This,
LPCWSTR lpcwstrFileName,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter);
void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_SetLogFile_Proxy(
IGraphBuilder* This,
DWORD_PTR hFile);
void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_Abort_Proxy(
IGraphBuilder* This);
void __RPC_STUB IGraphBuilder_Abort_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphBuilder_ShouldOperationContinue_Proxy(
IGraphBuilder* This);
void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IGraphBuilder_INTERFACE_DEFINED__ */
/*****************************************************************************
* ICaptureGraphBuilder interface
*/
#ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
#define __ICaptureGraphBuilder_INTERFACE_DEFINED__
DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct ICaptureGraphBuilder : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
IGraphBuilder* pfg) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
IGraphBuilder** ppfg) = 0;
virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink) = 0;
virtual HRESULT STDMETHODCALLTYPE FindInterface(
const GUID* pCategory,
IBaseFilter* pf,
REFIID riid,
void** ppint) = 0;
virtual HRESULT STDMETHODCALLTYPE RenderStream(
const GUID* pCategory,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer) = 0;
virtual HRESULT STDMETHODCALLTYPE ControlStream(
const GUID* pCategory,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
LPCOLESTR lpstr,
DWORDLONG dwlSize) = 0;
virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback) = 0;
};
#else
typedef struct ICaptureGraphBuilderVtbl ICaptureGraphBuilderVtbl;
struct ICaptureGraphBuilder {
const ICaptureGraphBuilderVtbl* lpVtbl;
};
struct ICaptureGraphBuilderVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
ICaptureGraphBuilder* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
ICaptureGraphBuilder* This);
ULONG (STDMETHODCALLTYPE *Release)(
ICaptureGraphBuilder* This);
/*** ICaptureGraphBuilder methods ***/
HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
ICaptureGraphBuilder* This,
IGraphBuilder* pfg);
HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
ICaptureGraphBuilder* This,
IGraphBuilder** ppfg);
HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
ICaptureGraphBuilder* This,
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink);
HRESULT (STDMETHODCALLTYPE *FindInterface)(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pf,
REFIID riid,
void** ppint);
HRESULT (STDMETHODCALLTYPE *RenderStream)(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer);
HRESULT (STDMETHODCALLTYPE *ControlStream)(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie);
HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
ICaptureGraphBuilder* This,
LPCOLESTR lpstr,
DWORDLONG dwlSize);
HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
ICaptureGraphBuilder* This,
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ICaptureGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ICaptureGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ICaptureGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
/*** ICaptureGraphBuilder methods ***/
#define ICaptureGraphBuilder_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
#define ICaptureGraphBuilder_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
#define ICaptureGraphBuilder_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
#define ICaptureGraphBuilder_FindInterface(p,a,b,c,d) (p)->lpVtbl->FindInterface(p,a,b,c,d)
#define ICaptureGraphBuilder_RenderStream(p,a,b,c,d) (p)->lpVtbl->RenderStream(p,a,b,c,d)
#define ICaptureGraphBuilder_ControlStream(p,a,b,c,d,e,f) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f)
#define ICaptureGraphBuilder_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
#define ICaptureGraphBuilder_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
#endif
#endif
#define ICaptureGraphBuilder_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** ICaptureGraphBuilder methods ***/ \
STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE;
HRESULT CALLBACK ICaptureGraphBuilder_SetFiltergraph_Proxy(
ICaptureGraphBuilder* This,
IGraphBuilder* pfg);
void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_GetFiltergraph_Proxy(
ICaptureGraphBuilder* This,
IGraphBuilder** ppfg);
void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_SetOutputFileName_Proxy(
ICaptureGraphBuilder* This,
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink);
void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_RemoteFindInterface_Proxy(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pf,
REFIID riid,
IUnknown** ppint);
void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pf,
REFIID riid,
void** ppint);
HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pf,
REFIID riid,
IUnknown** ppint);
HRESULT CALLBACK ICaptureGraphBuilder_RenderStream_Proxy(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer);
void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_ControlStream_Proxy(
ICaptureGraphBuilder* This,
const GUID* pCategory,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie);
void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_AllocCapFile_Proxy(
ICaptureGraphBuilder* This,
LPCOLESTR lpstr,
DWORDLONG dwlSize);
void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder_CopyCaptureFile_Proxy(
ICaptureGraphBuilder* This,
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback);
void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
/*****************************************************************************
* IAMCopyCaptureFileProgress interface
*/
#ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
#define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IAMCopyCaptureFileProgress : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Progress(
int iProgress) = 0;
};
#else
typedef struct IAMCopyCaptureFileProgressVtbl IAMCopyCaptureFileProgressVtbl;
struct IAMCopyCaptureFileProgress {
const IAMCopyCaptureFileProgressVtbl* lpVtbl;
};
struct IAMCopyCaptureFileProgressVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IAMCopyCaptureFileProgress* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IAMCopyCaptureFileProgress* This);
ULONG (STDMETHODCALLTYPE *Release)(
IAMCopyCaptureFileProgress* This);
/*** IAMCopyCaptureFileProgress methods ***/
HRESULT (STDMETHODCALLTYPE *Progress)(
IAMCopyCaptureFileProgress* This,
int iProgress);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IAMCopyCaptureFileProgress_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IAMCopyCaptureFileProgress_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IAMCopyCaptureFileProgress_Release(p) (p)->lpVtbl->Release(p)
/*** IAMCopyCaptureFileProgress methods ***/
#define IAMCopyCaptureFileProgress_Progress(p,a) (p)->lpVtbl->Progress(p,a)
#endif
#endif
#define IAMCopyCaptureFileProgress_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IAMCopyCaptureFileProgress methods ***/ \
STDMETHOD_(HRESULT,Progress)(THIS_ int iProgress) PURE;
HRESULT CALLBACK IAMCopyCaptureFileProgress_Progress_Proxy(
IAMCopyCaptureFileProgress* This,
int iProgress);
void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
/*****************************************************************************
* ICaptureGraphBuilder2 interface
*/
#ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
#define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct ICaptureGraphBuilder2 : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
IGraphBuilder* pfg) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
IGraphBuilder** ppfg) = 0;
virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink) = 0;
virtual HRESULT STDMETHODCALLTYPE FindInterface(
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pf,
REFIID riid,
void** ppint) = 0;
virtual HRESULT STDMETHODCALLTYPE RenderStream(
const GUID* pCategory,
const GUID* pType,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer) = 0;
virtual HRESULT STDMETHODCALLTYPE ControlStream(
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
LPCOLESTR lpstr,
DWORDLONG dwlSize) = 0;
virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback) = 0;
virtual HRESULT STDMETHODCALLTYPE FindPin(
IUnknown* pSource,
PIN_DIRECTION pindir,
const GUID* pCategory,
const GUID* pType,
BOOL fUnconnected,
int num,
IPin** ppPin) = 0;
};
#else
typedef struct ICaptureGraphBuilder2Vtbl ICaptureGraphBuilder2Vtbl;
struct ICaptureGraphBuilder2 {
const ICaptureGraphBuilder2Vtbl* lpVtbl;
};
struct ICaptureGraphBuilder2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
ICaptureGraphBuilder2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
ICaptureGraphBuilder2* This);
ULONG (STDMETHODCALLTYPE *Release)(
ICaptureGraphBuilder2* This);
/*** ICaptureGraphBuilder2 methods ***/
HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
ICaptureGraphBuilder2* This,
IGraphBuilder* pfg);
HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
ICaptureGraphBuilder2* This,
IGraphBuilder** ppfg);
HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
ICaptureGraphBuilder2* This,
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink);
HRESULT (STDMETHODCALLTYPE *FindInterface)(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pf,
REFIID riid,
void** ppint);
HRESULT (STDMETHODCALLTYPE *RenderStream)(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer);
HRESULT (STDMETHODCALLTYPE *ControlStream)(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie);
HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
ICaptureGraphBuilder2* This,
LPCOLESTR lpstr,
DWORDLONG dwlSize);
HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
ICaptureGraphBuilder2* This,
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback);
HRESULT (STDMETHODCALLTYPE *FindPin)(
ICaptureGraphBuilder2* This,
IUnknown* pSource,
PIN_DIRECTION pindir,
const GUID* pCategory,
const GUID* pType,
BOOL fUnconnected,
int num,
IPin** ppPin);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ICaptureGraphBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ICaptureGraphBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ICaptureGraphBuilder2_Release(p) (p)->lpVtbl->Release(p)
/*** ICaptureGraphBuilder2 methods ***/
#define ICaptureGraphBuilder2_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
#define ICaptureGraphBuilder2_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
#define ICaptureGraphBuilder2_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
#define ICaptureGraphBuilder2_FindInterface(p,a,b,c,d,e) (p)->lpVtbl->FindInterface(p,a,b,c,d,e)
#define ICaptureGraphBuilder2_RenderStream(p,a,b,c,d,e) (p)->lpVtbl->RenderStream(p,a,b,c,d,e)
#define ICaptureGraphBuilder2_ControlStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f,g)
#define ICaptureGraphBuilder2_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
#define ICaptureGraphBuilder2_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
#define ICaptureGraphBuilder2_FindPin(p,a,b,c,d,e,f,g) (p)->lpVtbl->FindPin(p,a,b,c,d,e,f,g)
#endif
#endif
#define ICaptureGraphBuilder2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** ICaptureGraphBuilder2 methods ***/ \
STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; \
STDMETHOD_(HRESULT,FindPin)(THIS_ IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) PURE;
HRESULT CALLBACK ICaptureGraphBuilder2_SetFiltergraph_Proxy(
ICaptureGraphBuilder2* This,
IGraphBuilder* pfg);
void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_GetFiltergraph_Proxy(
ICaptureGraphBuilder2* This,
IGraphBuilder** ppfg);
void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_SetOutputFileName_Proxy(
ICaptureGraphBuilder2* This,
const GUID* pType,
LPCOLESTR lpstrFile,
IBaseFilter** ppf,
IFileSinkFilter** ppSink);
void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pf,
REFIID riid,
IUnknown** ppint);
void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pf,
REFIID riid,
void** ppint);
HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pf,
REFIID riid,
IUnknown** ppint);
HRESULT CALLBACK ICaptureGraphBuilder2_RenderStream_Proxy(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IUnknown* pSource,
IBaseFilter* pfCompressor,
IBaseFilter* pfRenderer);
void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_ControlStream_Proxy(
ICaptureGraphBuilder2* This,
const GUID* pCategory,
const GUID* pType,
IBaseFilter* pFilter,
REFERENCE_TIME* pstart,
REFERENCE_TIME* pstop,
WORD wStartCookie,
WORD wStopCookie);
void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_AllocCapFile_Proxy(
ICaptureGraphBuilder2* This,
LPCOLESTR lpstr,
DWORDLONG dwlSize);
void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
ICaptureGraphBuilder2* This,
LPOLESTR lpwstrOld,
LPOLESTR lpwstrNew,
int fAllowEscAbort,
IAMCopyCaptureFileProgress* pCallback);
void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK ICaptureGraphBuilder2_FindPin_Proxy(
ICaptureGraphBuilder2* This,
IUnknown* pSource,
PIN_DIRECTION pindir,
const GUID* pCategory,
const GUID* pType,
BOOL fUnconnected,
int num,
IPin** ppPin);
void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
enum _AM_RENSDEREXFLAGS {
AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
};
#ifndef __IFilterGraph2_FWD_DEFINED__
#define __IFilterGraph2_FWD_DEFINED__
typedef struct IFilterGraph2 IFilterGraph2;
#endif
/*****************************************************************************
* IFilterGraph2 interface
*/
#ifndef __IFilterGraph2_INTERFACE_DEFINED__
#define __IFilterGraph2_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterGraph2 : public IGraphBuilder
{
virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
IMoniker* pMoniker,
IBindCtx* pCtx,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
IPin* ppin,
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE RenderEx(
IPin* pPinOut,
DWORD dwFlags,
DWORD* pvContext) = 0;
};
#else
typedef struct IFilterGraph2Vtbl IFilterGraph2Vtbl;
struct IFilterGraph2 {
const IFilterGraph2Vtbl* lpVtbl;
};
struct IFilterGraph2Vtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterGraph2* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterGraph2* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterGraph2* This);
/*** IFilterGraph methods ***/
HRESULT (STDMETHODCALLTYPE *AddFilter)(
IFilterGraph2* This,
IBaseFilter* pFilter,
LPCWSTR pName);
HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
IFilterGraph2* This,
IBaseFilter* pFilter);
HRESULT (STDMETHODCALLTYPE *EnumFilters)(
IFilterGraph2* This,
IEnumFilters** ppEnum);
HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
IFilterGraph2* This,
LPCWSTR pName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
IFilterGraph2* This,
IPin* ppinOut,
IPin* ppinIn,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *Reconnect)(
IFilterGraph2* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *Disconnect)(
IFilterGraph2* This,
IPin* ppin);
HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
IFilterGraph2* This);
/*** IGraphBuilder methods ***/
HRESULT (STDMETHODCALLTYPE *Connect)(
IFilterGraph2* This,
IPin* ppinOut,
IPin* ppinIn);
HRESULT (STDMETHODCALLTYPE *Render)(
IFilterGraph2* This,
IPin* ppinOut);
HRESULT (STDMETHODCALLTYPE *RenderFile)(
IFilterGraph2* This,
LPCWSTR lpcwstrFile,
LPCWSTR lpcwstrPlayList);
HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
IFilterGraph2* This,
LPCWSTR lpcwstrFileName,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *SetLogFile)(
IFilterGraph2* This,
DWORD_PTR hFile);
HRESULT (STDMETHODCALLTYPE *Abort)(
IFilterGraph2* This);
HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
IFilterGraph2* This);
/*** IFilterGraph2 methods ***/
HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
IFilterGraph2* This,
IMoniker* pMoniker,
IBindCtx* pCtx,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter);
HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
IFilterGraph2* This,
IPin* ppin,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *RenderEx)(
IFilterGraph2* This,
IPin* pPinOut,
DWORD dwFlags,
DWORD* pvContext);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterGraph2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterGraph2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterGraph2_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterGraph methods ***/
#define IFilterGraph2_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
#define IFilterGraph2_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
#define IFilterGraph2_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
#define IFilterGraph2_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
#define IFilterGraph2_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
#define IFilterGraph2_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
#define IFilterGraph2_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
#define IFilterGraph2_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
/*** IGraphBuilder methods ***/
#define IFilterGraph2_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
#define IFilterGraph2_Render(p,a) (p)->lpVtbl->Render(p,a)
#define IFilterGraph2_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
#define IFilterGraph2_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
#define IFilterGraph2_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
#define IFilterGraph2_Abort(p) (p)->lpVtbl->Abort(p)
#define IFilterGraph2_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
/*** IFilterGraph2 methods ***/
#define IFilterGraph2_AddSourceFilterForMoniker(p,a,b,c,d) (p)->lpVtbl->AddSourceFilterForMoniker(p,a,b,c,d)
#define IFilterGraph2_ReconnectEx(p,a,b) (p)->lpVtbl->ReconnectEx(p,a,b)
#define IFilterGraph2_RenderEx(p,a,b,c) (p)->lpVtbl->RenderEx(p,a,b,c)
#endif
#endif
#define IFilterGraph2_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterGraph methods ***/ \
STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
/*** IGraphBuilder methods ***/ \
STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; \
/*** IFilterGraph2 methods ***/ \
STDMETHOD_(HRESULT,AddSourceFilterForMoniker)(THIS_ IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
STDMETHOD_(HRESULT,ReconnectEx)(THIS_ IPin* ppin, const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,RenderEx)(THIS_ IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) PURE;
HRESULT CALLBACK IFilterGraph2_AddSourceFilterForMoniker_Proxy(
IFilterGraph2* This,
IMoniker* pMoniker,
IBindCtx* pCtx,
LPCWSTR lpcwstrFilterName,
IBaseFilter** ppFilter);
void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph2_ReconnectEx_Proxy(
IFilterGraph2* This,
IPin* ppin,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterGraph2_RenderEx_Proxy(
IFilterGraph2* This,
IPin* pPinOut,
DWORD dwFlags,
DWORD* pvContext);
void __RPC_STUB IFilterGraph2_RenderEx_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterGraph2_INTERFACE_DEFINED__ */
#ifndef __IStreamBuilder_FWD_DEFINED__
#define __IStreamBuilder_FWD_DEFINED__
typedef struct IStreamBuilder IStreamBuilder;
#endif
/*****************************************************************************
* IStreamBuilder interface
*/
#ifndef __IStreamBuilder_INTERFACE_DEFINED__
#define __IStreamBuilder_INTERFACE_DEFINED__
DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IStreamBuilder : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Render(
IPin* ppinOut,
IGraphBuilder* pGraph) = 0;
virtual HRESULT STDMETHODCALLTYPE Backout(
IPin* ppinOut,
IGraphBuilder* pGraph) = 0;
};
#else
typedef struct IStreamBuilderVtbl IStreamBuilderVtbl;
struct IStreamBuilder {
const IStreamBuilderVtbl* lpVtbl;
};
struct IStreamBuilderVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IStreamBuilder* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IStreamBuilder* This);
ULONG (STDMETHODCALLTYPE *Release)(
IStreamBuilder* This);
/*** IStreamBuilder methods ***/
HRESULT (STDMETHODCALLTYPE *Render)(
IStreamBuilder* This,
IPin* ppinOut,
IGraphBuilder* pGraph);
HRESULT (STDMETHODCALLTYPE *Backout)(
IStreamBuilder* This,
IPin* ppinOut,
IGraphBuilder* pGraph);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IStreamBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IStreamBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IStreamBuilder_Release(p) (p)->lpVtbl->Release(p)
/*** IStreamBuilder methods ***/
#define IStreamBuilder_Render(p,a,b) (p)->lpVtbl->Render(p,a,b)
#define IStreamBuilder_Backout(p,a,b) (p)->lpVtbl->Backout(p,a,b)
#endif
#endif
#define IStreamBuilder_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IStreamBuilder methods ***/ \
STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; \
STDMETHOD_(HRESULT,Backout)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE;
HRESULT CALLBACK IStreamBuilder_Render_Proxy(
IStreamBuilder* This,
IPin* ppinOut,
IGraphBuilder* pGraph);
void __RPC_STUB IStreamBuilder_Render_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IStreamBuilder_Backout_Proxy(
IStreamBuilder* This,
IPin* ppinOut,
IGraphBuilder* pGraph);
void __RPC_STUB IStreamBuilder_Backout_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IStreamBuilder_INTERFACE_DEFINED__ */
#ifndef __IAsyncReader_FWD_DEFINED__
#define __IAsyncReader_FWD_DEFINED__
typedef struct IAsyncReader IAsyncReader;
#endif
/*****************************************************************************
* IAsyncReader interface
*/
#ifndef __IAsyncReader_INTERFACE_DEFINED__
#define __IAsyncReader_INTERFACE_DEFINED__
DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IAsyncReader : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
IMemAllocator* pPreferred,
ALLOCATOR_PROPERTIES* pProps,
IMemAllocator** ppActual) = 0;
virtual HRESULT STDMETHODCALLTYPE Request(
IMediaSample* pSample,
DWORD_PTR dwUser) = 0;
virtual HRESULT STDMETHODCALLTYPE WaitForNext(
DWORD dwTimeout,
IMediaSample** ppSample,
DWORD_PTR* pdwUser) = 0;
virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
IMediaSample* pSample) = 0;
virtual HRESULT STDMETHODCALLTYPE SyncRead(
LONGLONG llPosition,
LONG lLength,
BYTE* pBuffer) = 0;
virtual HRESULT STDMETHODCALLTYPE Length(
LONGLONG* pTotal,
LONGLONG* pAvailable) = 0;
virtual HRESULT STDMETHODCALLTYPE BeginFlush(
) = 0;
virtual HRESULT STDMETHODCALLTYPE EndFlush(
) = 0;
};
#else
typedef struct IAsyncReaderVtbl IAsyncReaderVtbl;
struct IAsyncReader {
const IAsyncReaderVtbl* lpVtbl;
};
struct IAsyncReaderVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IAsyncReader* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IAsyncReader* This);
ULONG (STDMETHODCALLTYPE *Release)(
IAsyncReader* This);
/*** IAsyncReader methods ***/
HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
IAsyncReader* This,
IMemAllocator* pPreferred,
ALLOCATOR_PROPERTIES* pProps,
IMemAllocator** ppActual);
HRESULT (STDMETHODCALLTYPE *Request)(
IAsyncReader* This,
IMediaSample* pSample,
DWORD_PTR dwUser);
HRESULT (STDMETHODCALLTYPE *WaitForNext)(
IAsyncReader* This,
DWORD dwTimeout,
IMediaSample** ppSample,
DWORD_PTR* pdwUser);
HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
IAsyncReader* This,
IMediaSample* pSample);
HRESULT (STDMETHODCALLTYPE *SyncRead)(
IAsyncReader* This,
LONGLONG llPosition,
LONG lLength,
BYTE* pBuffer);
HRESULT (STDMETHODCALLTYPE *Length)(
IAsyncReader* This,
LONGLONG* pTotal,
LONGLONG* pAvailable);
HRESULT (STDMETHODCALLTYPE *BeginFlush)(
IAsyncReader* This);
HRESULT (STDMETHODCALLTYPE *EndFlush)(
IAsyncReader* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IAsyncReader_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IAsyncReader_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IAsyncReader_Release(p) (p)->lpVtbl->Release(p)
/*** IAsyncReader methods ***/
#define IAsyncReader_RequestAllocator(p,a,b,c) (p)->lpVtbl->RequestAllocator(p,a,b,c)
#define IAsyncReader_Request(p,a,b) (p)->lpVtbl->Request(p,a,b)
#define IAsyncReader_WaitForNext(p,a,b,c) (p)->lpVtbl->WaitForNext(p,a,b,c)
#define IAsyncReader_SyncReadAligned(p,a) (p)->lpVtbl->SyncReadAligned(p,a)
#define IAsyncReader_SyncRead(p,a,b,c) (p)->lpVtbl->SyncRead(p,a,b,c)
#define IAsyncReader_Length(p,a,b) (p)->lpVtbl->Length(p,a,b)
#define IAsyncReader_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
#define IAsyncReader_EndFlush(p) (p)->lpVtbl->EndFlush(p)
#endif
#endif
#define IAsyncReader_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IAsyncReader methods ***/ \
STDMETHOD_(HRESULT,RequestAllocator)(THIS_ IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) PURE; \
STDMETHOD_(HRESULT,Request)(THIS_ IMediaSample* pSample, DWORD_PTR dwUser) PURE; \
STDMETHOD_(HRESULT,WaitForNext)(THIS_ DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) PURE; \
STDMETHOD_(HRESULT,SyncReadAligned)(THIS_ IMediaSample* pSample) PURE; \
STDMETHOD_(HRESULT,SyncRead)(THIS_ LONGLONG llPosition, LONG lLength, BYTE* pBuffer) PURE; \
STDMETHOD_(HRESULT,Length)(THIS_ LONGLONG* pTotal, LONGLONG* pAvailable) PURE; \
STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
STDMETHOD_(HRESULT,EndFlush)(THIS) PURE;
HRESULT CALLBACK IAsyncReader_RequestAllocator_Proxy(
IAsyncReader* This,
IMemAllocator* pPreferred,
ALLOCATOR_PROPERTIES* pProps,
IMemAllocator** ppActual);
void __RPC_STUB IAsyncReader_RequestAllocator_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_Request_Proxy(
IAsyncReader* This,
IMediaSample* pSample,
DWORD_PTR dwUser);
void __RPC_STUB IAsyncReader_Request_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_WaitForNext_Proxy(
IAsyncReader* This,
DWORD dwTimeout,
IMediaSample** ppSample,
DWORD_PTR* pdwUser);
void __RPC_STUB IAsyncReader_WaitForNext_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_SyncReadAligned_Proxy(
IAsyncReader* This,
IMediaSample* pSample);
void __RPC_STUB IAsyncReader_SyncReadAligned_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_SyncRead_Proxy(
IAsyncReader* This,
LONGLONG llPosition,
LONG lLength,
BYTE* pBuffer);
void __RPC_STUB IAsyncReader_SyncRead_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_Length_Proxy(
IAsyncReader* This,
LONGLONG* pTotal,
LONGLONG* pAvailable);
void __RPC_STUB IAsyncReader_Length_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_BeginFlush_Proxy(
IAsyncReader* This);
void __RPC_STUB IAsyncReader_BeginFlush_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IAsyncReader_EndFlush_Proxy(
IAsyncReader* This);
void __RPC_STUB IAsyncReader_EndFlush_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IAsyncReader_INTERFACE_DEFINED__ */
#ifndef __IGraphVersion_FWD_DEFINED__
#define __IGraphVersion_FWD_DEFINED__
typedef struct IGraphVersion IGraphVersion;
#endif
/*****************************************************************************
* IGraphVersion interface
*/
#ifndef __IGraphVersion_INTERFACE_DEFINED__
#define __IGraphVersion_INTERFACE_DEFINED__
DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IGraphVersion : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE QueryVersion(
LONG* pVersion) = 0;
};
#else
typedef struct IGraphVersionVtbl IGraphVersionVtbl;
struct IGraphVersion {
const IGraphVersionVtbl* lpVtbl;
};
struct IGraphVersionVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IGraphVersion* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IGraphVersion* This);
ULONG (STDMETHODCALLTYPE *Release)(
IGraphVersion* This);
/*** IGraphVersion methods ***/
HRESULT (STDMETHODCALLTYPE *QueryVersion)(
IGraphVersion* This,
LONG* pVersion);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IGraphVersion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IGraphVersion_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IGraphVersion_Release(p) (p)->lpVtbl->Release(p)
/*** IGraphVersion methods ***/
#define IGraphVersion_QueryVersion(p,a) (p)->lpVtbl->QueryVersion(p,a)
#endif
#endif
#define IGraphVersion_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IGraphVersion methods ***/ \
STDMETHOD_(HRESULT,QueryVersion)(THIS_ LONG* pVersion) PURE;
HRESULT CALLBACK IGraphVersion_QueryVersion_Proxy(
IGraphVersion* This,
LONG* pVersion);
void __RPC_STUB IGraphVersion_QueryVersion_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IGraphVersion_INTERFACE_DEFINED__ */
#ifndef __IResourceConsumer_FWD_DEFINED__
#define __IResourceConsumer_FWD_DEFINED__
typedef struct IResourceConsumer IResourceConsumer;
#endif
/*****************************************************************************
* IResourceConsumer interface
*/
#ifndef __IResourceConsumer_INTERFACE_DEFINED__
#define __IResourceConsumer_INTERFACE_DEFINED__
DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IResourceConsumer : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE AcquireResource(
LONG idResource) = 0;
virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
LONG idResource) = 0;
};
#else
typedef struct IResourceConsumerVtbl IResourceConsumerVtbl;
struct IResourceConsumer {
const IResourceConsumerVtbl* lpVtbl;
};
struct IResourceConsumerVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IResourceConsumer* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IResourceConsumer* This);
ULONG (STDMETHODCALLTYPE *Release)(
IResourceConsumer* This);
/*** IResourceConsumer methods ***/
HRESULT (STDMETHODCALLTYPE *AcquireResource)(
IResourceConsumer* This,
LONG idResource);
HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
IResourceConsumer* This,
LONG idResource);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IResourceConsumer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IResourceConsumer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IResourceConsumer_Release(p) (p)->lpVtbl->Release(p)
/*** IResourceConsumer methods ***/
#define IResourceConsumer_AcquireResource(p,a) (p)->lpVtbl->AcquireResource(p,a)
#define IResourceConsumer_ReleaseResource(p,a) (p)->lpVtbl->ReleaseResource(p,a)
#endif
#endif
#define IResourceConsumer_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IResourceConsumer methods ***/ \
STDMETHOD_(HRESULT,AcquireResource)(THIS_ LONG idResource) PURE; \
STDMETHOD_(HRESULT,ReleaseResource)(THIS_ LONG idResource) PURE;
HRESULT CALLBACK IResourceConsumer_AcquireResource_Proxy(
IResourceConsumer* This,
LONG idResource);
void __RPC_STUB IResourceConsumer_AcquireResource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceConsumer_ReleaseResource_Proxy(
IResourceConsumer* This,
LONG idResource);
void __RPC_STUB IResourceConsumer_ReleaseResource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IResourceConsumer_INTERFACE_DEFINED__ */
#ifndef __IResourceManager_FWD_DEFINED__
#define __IResourceManager_FWD_DEFINED__
typedef struct IResourceManager IResourceManager;
#endif
/*****************************************************************************
* IResourceManager interface
*/
#ifndef __IResourceManager_INTERFACE_DEFINED__
#define __IResourceManager_INTERFACE_DEFINED__
DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IResourceManager : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Register(
LPCWSTR pName,
LONG cResource,
LONG* plToken) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
LPCWSTR pName,
LONG cResource,
LONG* palTokens,
LONG* plToken) = 0;
virtual HRESULT STDMETHODCALLTYPE RequestResource(
LONG idResource,
IUnknown* pFocusObject,
IResourceConsumer* pConsumer) = 0;
virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
LONG idResource,
IResourceConsumer* pConsumer,
HRESULT hr) = 0;
virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
LONG idResource,
IResourceConsumer* pConsumer,
BOOL bStillWant) = 0;
virtual HRESULT STDMETHODCALLTYPE CancelRequest(
LONG idResource,
IResourceConsumer* pConsumer) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFocus(
IUnknown* pFocusObject) = 0;
virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
IUnknown* pFocusObject) = 0;
};
#else
typedef struct IResourceManagerVtbl IResourceManagerVtbl;
struct IResourceManager {
const IResourceManagerVtbl* lpVtbl;
};
struct IResourceManagerVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IResourceManager* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IResourceManager* This);
ULONG (STDMETHODCALLTYPE *Release)(
IResourceManager* This);
/*** IResourceManager methods ***/
HRESULT (STDMETHODCALLTYPE *Register)(
IResourceManager* This,
LPCWSTR pName,
LONG cResource,
LONG* plToken);
HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
IResourceManager* This,
LPCWSTR pName,
LONG cResource,
LONG* palTokens,
LONG* plToken);
HRESULT (STDMETHODCALLTYPE *RequestResource)(
IResourceManager* This,
LONG idResource,
IUnknown* pFocusObject,
IResourceConsumer* pConsumer);
HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer,
HRESULT hr);
HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer,
BOOL bStillWant);
HRESULT (STDMETHODCALLTYPE *CancelRequest)(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer);
HRESULT (STDMETHODCALLTYPE *SetFocus)(
IResourceManager* This,
IUnknown* pFocusObject);
HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
IResourceManager* This,
IUnknown* pFocusObject);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IResourceManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IResourceManager_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IResourceManager_Release(p) (p)->lpVtbl->Release(p)
/*** IResourceManager methods ***/
#define IResourceManager_Register(p,a,b,c) (p)->lpVtbl->Register(p,a,b,c)
#define IResourceManager_RegisterGroup(p,a,b,c,d) (p)->lpVtbl->RegisterGroup(p,a,b,c,d)
#define IResourceManager_RequestResource(p,a,b,c) (p)->lpVtbl->RequestResource(p,a,b,c)
#define IResourceManager_NotifyAcquire(p,a,b,c) (p)->lpVtbl->NotifyAcquire(p,a,b,c)
#define IResourceManager_NotifyRelease(p,a,b,c) (p)->lpVtbl->NotifyRelease(p,a,b,c)
#define IResourceManager_CancelRequest(p,a,b) (p)->lpVtbl->CancelRequest(p,a,b)
#define IResourceManager_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a)
#define IResourceManager_ReleaseFocus(p,a) (p)->lpVtbl->ReleaseFocus(p,a)
#endif
#endif
#define IResourceManager_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IResourceManager methods ***/ \
STDMETHOD_(HRESULT,Register)(THIS_ LPCWSTR pName, LONG cResource, LONG* plToken) PURE; \
STDMETHOD_(HRESULT,RegisterGroup)(THIS_ LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) PURE; \
STDMETHOD_(HRESULT,RequestResource)(THIS_ LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) PURE; \
STDMETHOD_(HRESULT,NotifyAcquire)(THIS_ LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) PURE; \
STDMETHOD_(HRESULT,NotifyRelease)(THIS_ LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) PURE; \
STDMETHOD_(HRESULT,CancelRequest)(THIS_ LONG idResource, IResourceConsumer* pConsumer) PURE; \
STDMETHOD_(HRESULT,SetFocus)(THIS_ IUnknown* pFocusObject) PURE; \
STDMETHOD_(HRESULT,ReleaseFocus)(THIS_ IUnknown* pFocusObject) PURE;
HRESULT CALLBACK IResourceManager_Register_Proxy(
IResourceManager* This,
LPCWSTR pName,
LONG cResource,
LONG* plToken);
void __RPC_STUB IResourceManager_Register_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_RegisterGroup_Proxy(
IResourceManager* This,
LPCWSTR pName,
LONG cResource,
LONG* palTokens,
LONG* plToken);
void __RPC_STUB IResourceManager_RegisterGroup_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_RequestResource_Proxy(
IResourceManager* This,
LONG idResource,
IUnknown* pFocusObject,
IResourceConsumer* pConsumer);
void __RPC_STUB IResourceManager_RequestResource_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_NotifyAcquire_Proxy(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer,
HRESULT hr);
void __RPC_STUB IResourceManager_NotifyAcquire_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_NotifyRelease_Proxy(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer,
BOOL bStillWant);
void __RPC_STUB IResourceManager_NotifyRelease_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_CancelRequest_Proxy(
IResourceManager* This,
LONG idResource,
IResourceConsumer* pConsumer);
void __RPC_STUB IResourceManager_CancelRequest_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_SetFocus_Proxy(
IResourceManager* This,
IUnknown* pFocusObject);
void __RPC_STUB IResourceManager_SetFocus_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IResourceManager_ReleaseFocus_Proxy(
IResourceManager* This,
IUnknown* pFocusObject);
void __RPC_STUB IResourceManager_ReleaseFocus_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IResourceManager_INTERFACE_DEFINED__ */
#ifndef _IKsPropertySet_
#define _IKsPropertySet_
#define KSPROPERTY_SUPPORT_GET 1
#define KSPROPERTY_SUPPORT_SET 2
/*****************************************************************************
* IKsPropertySet interface
*/
#ifndef __IKsPropertySet_INTERFACE_DEFINED__
#define __IKsPropertySet_INTERFACE_DEFINED__
DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IKsPropertySet : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Set(
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData) = 0;
virtual HRESULT STDMETHODCALLTYPE Get(
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData,
DWORD* pcbReturned) = 0;
virtual HRESULT STDMETHODCALLTYPE QuerySupported(
REFGUID guidPropSet,
DWORD dwPropID,
DWORD* pTypeSupport) = 0;
};
#else
typedef struct IKsPropertySetVtbl IKsPropertySetVtbl;
struct IKsPropertySet {
const IKsPropertySetVtbl* lpVtbl;
};
struct IKsPropertySetVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IKsPropertySet* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IKsPropertySet* This);
ULONG (STDMETHODCALLTYPE *Release)(
IKsPropertySet* This);
/*** IKsPropertySet methods ***/
HRESULT (STDMETHODCALLTYPE *Set)(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData);
HRESULT (STDMETHODCALLTYPE *Get)(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData,
DWORD* pcbReturned);
HRESULT (STDMETHODCALLTYPE *QuerySupported)(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
DWORD* pTypeSupport);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
/*** IKsPropertySet methods ***/
#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
#define IKsPropertySet_QuerySupported(p,a,b,c) (p)->lpVtbl->QuerySupported(p,a,b,c)
#endif
#endif
#define IKsPropertySet_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IKsPropertySet methods ***/ \
STDMETHOD_(HRESULT,Set)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) PURE; \
STDMETHOD_(HRESULT,Get)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) PURE; \
STDMETHOD_(HRESULT,QuerySupported)(THIS_ REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) PURE;
HRESULT CALLBACK IKsPropertySet_Set_Proxy(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData);
void __RPC_STUB IKsPropertySet_Set_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IKsPropertySet_Get_Proxy(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData,
DWORD* pcbReturned);
void __RPC_STUB IKsPropertySet_Get_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IKsPropertySet_QuerySupported_Proxy(
IKsPropertySet* This,
REFGUID guidPropSet,
DWORD dwPropID,
DWORD* pTypeSupport);
void __RPC_STUB IKsPropertySet_QuerySupported_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IKsPropertySet_INTERFACE_DEFINED__ */
#endif /* _IKsPropertySet_ */
#ifndef __IPinConnection_FWD_DEFINED__
#define __IPinConnection_FWD_DEFINED__
typedef struct IPinConnection IPinConnection;
#endif
#ifndef __IPinFlowControl_FWD_DEFINED__
#define __IPinFlowControl_FWD_DEFINED__
typedef struct IPinFlowControl IPinFlowControl;
#endif
#ifndef __IGraphConfig_FWD_DEFINED__
#define __IGraphConfig_FWD_DEFINED__
typedef struct IGraphConfig IGraphConfig;
#endif
#ifndef __IGraphConfigCallback_FWD_DEFINED__
#define __IGraphConfigCallback_FWD_DEFINED__
typedef struct IGraphConfigCallback IGraphConfigCallback;
#endif
/*****************************************************************************
* IPinConnection interface
*/
#ifndef __IPinConnection_INTERFACE_DEFINED__
#define __IPinConnection_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPinConnection : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE DynamicQueryAccept(
const AM_MEDIA_TYPE* pmt) = 0;
virtual HRESULT STDMETHODCALLTYPE NotifyEndOfStream(
HANDLE hNotifyEvent) = 0;
virtual HRESULT STDMETHODCALLTYPE IsEndPin(
) = 0;
virtual HRESULT STDMETHODCALLTYPE DynamicDisconnect(
) = 0;
};
#else
typedef struct IPinConnectionVtbl IPinConnectionVtbl;
struct IPinConnection {
const IPinConnectionVtbl* lpVtbl;
};
struct IPinConnectionVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPinConnection* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPinConnection* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPinConnection* This);
/*** IPinConnection methods ***/
HRESULT (STDMETHODCALLTYPE *DynamicQueryAccept)(
IPinConnection* This,
const AM_MEDIA_TYPE* pmt);
HRESULT (STDMETHODCALLTYPE *NotifyEndOfStream)(
IPinConnection* This,
HANDLE hNotifyEvent);
HRESULT (STDMETHODCALLTYPE *IsEndPin)(
IPinConnection* This);
HRESULT (STDMETHODCALLTYPE *DynamicDisconnect)(
IPinConnection* This);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPinConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPinConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPinConnection_Release(p) (p)->lpVtbl->Release(p)
/*** IPinConnection methods ***/
#define IPinConnection_DynamicQueryAccept(p,a) (p)->lpVtbl->DynamicQueryAccept(p,a)
#define IPinConnection_NotifyEndOfStream(p,a) (p)->lpVtbl->NotifyEndOfStream(p,a)
#define IPinConnection_IsEndPin(p) (p)->lpVtbl->IsEndPin(p)
#define IPinConnection_DynamicDisconnect(p) (p)->lpVtbl->DynamicDisconnect(p)
#endif
#endif
#define IPinConnection_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPinConnection methods ***/ \
STDMETHOD_(HRESULT,DynamicQueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
STDMETHOD_(HRESULT,NotifyEndOfStream)(THIS_ HANDLE hNotifyEvent) PURE; \
STDMETHOD_(HRESULT,IsEndPin)(THIS) PURE; \
STDMETHOD_(HRESULT,DynamicDisconnect)(THIS) PURE;
HRESULT CALLBACK IPinConnection_DynamicQueryAccept_Proxy(
IPinConnection* This,
const AM_MEDIA_TYPE* pmt);
void __RPC_STUB IPinConnection_DynamicQueryAccept_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPinConnection_NotifyEndOfStream_Proxy(
IPinConnection* This,
HANDLE hNotifyEvent);
void __RPC_STUB IPinConnection_NotifyEndOfStream_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPinConnection_IsEndPin_Proxy(
IPinConnection* This);
void __RPC_STUB IPinConnection_IsEndPin_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPinConnection_DynamicDisconnect_Proxy(
IPinConnection* This);
void __RPC_STUB IPinConnection_DynamicDisconnect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPinConnection_INTERFACE_DEFINED__ */
/*****************************************************************************
* IPinFlowControl interface
*/
#ifndef __IPinFlowControl_INTERFACE_DEFINED__
#define __IPinFlowControl_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPinFlowControl : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Block(
DWORD dwBlockFlags,
HANDLE hEvent) = 0;
};
#else
typedef struct IPinFlowControlVtbl IPinFlowControlVtbl;
struct IPinFlowControl {
const IPinFlowControlVtbl* lpVtbl;
};
struct IPinFlowControlVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPinFlowControl* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPinFlowControl* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPinFlowControl* This);
/*** IPinFlowControl methods ***/
HRESULT (STDMETHODCALLTYPE *Block)(
IPinFlowControl* This,
DWORD dwBlockFlags,
HANDLE hEvent);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPinFlowControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPinFlowControl_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPinFlowControl_Release(p) (p)->lpVtbl->Release(p)
/*** IPinFlowControl methods ***/
#define IPinFlowControl_Block(p,a,b) (p)->lpVtbl->Block(p,a,b)
#endif
#endif
#define IPinFlowControl_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPinFlowControl methods ***/ \
STDMETHOD_(HRESULT,Block)(THIS_ DWORD dwBlockFlags, HANDLE hEvent) PURE;
HRESULT CALLBACK IPinFlowControl_Block_Proxy(
IPinFlowControl* This,
DWORD dwBlockFlags,
HANDLE hEvent);
void __RPC_STUB IPinFlowControl_Block_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPinFlowControl_INTERFACE_DEFINED__ */
enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
AM_PIN_FLOW_CONTROL_BLOCK = 0x1
};
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
enum _REM_FILTER_FLAGS {
REMFILTERF_LEAVECONNECTED = 0x1
};
typedef enum _AM_FILTER_FLAGS {
AM_FILTER_FLAGS_REMOVABLE = 0x1
} AM_FILTER_FLAGS;
/*****************************************************************************
* IGraphConfig interface
*/
#ifndef __IGraphConfig_INTERFACE_DEFINED__
#define __IGraphConfig_INTERFACE_DEFINED__
DEFINE_GUID(IID_IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IGraphConfig : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Reconnect(
IPin* pOutputPin,
IPin* pInputPin,
const AM_MEDIA_TYPE* pmtFirstConnection,
IBaseFilter* pUsingFilter,
HANDLE hAbortEvent,
DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE Reconfigure(
IGraphConfigCallback* pCallback,
PVOID pvContext,
DWORD dwFlags,
HANDLE hAbortEvent) = 0;
virtual HRESULT STDMETHODCALLTYPE AddFilterToCache(
IBaseFilter* pFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumCacheFilter(
IEnumFilters** pEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveFilterFromCache(
IBaseFilter* pFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStartTime(
REFERENCE_TIME* prtStart) = 0;
virtual HRESULT STDMETHODCALLTYPE PushThroughData(
IPin* pOutputPin,
IPinConnection* pConnection,
HANDLE hEventAbort) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFilterFlags(
IBaseFilter* pFilter,
DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFilterFlags(
IBaseFilter* pFilter,
DWORD* pdwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveFilterEx(
IBaseFilter* pFilter,
DWORD Flags) = 0;
};
#else
typedef struct IGraphConfigVtbl IGraphConfigVtbl;
struct IGraphConfig {
const IGraphConfigVtbl* lpVtbl;
};
struct IGraphConfigVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IGraphConfig* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IGraphConfig* This);
ULONG (STDMETHODCALLTYPE *Release)(
IGraphConfig* This);
/*** IGraphConfig methods ***/
HRESULT (STDMETHODCALLTYPE *Reconnect)(
IGraphConfig* This,
IPin* pOutputPin,
IPin* pInputPin,
const AM_MEDIA_TYPE* pmtFirstConnection,
IBaseFilter* pUsingFilter,
HANDLE hAbortEvent,
DWORD dwFlags);
HRESULT (STDMETHODCALLTYPE *Reconfigure)(
IGraphConfig* This,
IGraphConfigCallback* pCallback,
PVOID pvContext,
DWORD dwFlags,
HANDLE hAbortEvent);
HRESULT (STDMETHODCALLTYPE *AddFilterToCache)(
IGraphConfig* This,
IBaseFilter* pFilter);
HRESULT (STDMETHODCALLTYPE *EnumCacheFilter)(
IGraphConfig* This,
IEnumFilters** pEnum);
HRESULT (STDMETHODCALLTYPE *RemoveFilterFromCache)(
IGraphConfig* This,
IBaseFilter* pFilter);
HRESULT (STDMETHODCALLTYPE *GetStartTime)(
IGraphConfig* This,
REFERENCE_TIME* prtStart);
HRESULT (STDMETHODCALLTYPE *PushThroughData)(
IGraphConfig* This,
IPin* pOutputPin,
IPinConnection* pConnection,
HANDLE hEventAbort);
HRESULT (STDMETHODCALLTYPE *SetFilterFlags)(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD dwFlags);
HRESULT (STDMETHODCALLTYPE *GetFilterFlags)(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD* pdwFlags);
HRESULT (STDMETHODCALLTYPE *RemoveFilterEx)(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD Flags);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IGraphConfig_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IGraphConfig_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IGraphConfig_Release(p) (p)->lpVtbl->Release(p)
/*** IGraphConfig methods ***/
#define IGraphConfig_Reconnect(p,a,b,c,d,e,f) (p)->lpVtbl->Reconnect(p,a,b,c,d,e,f)
#define IGraphConfig_Reconfigure(p,a,b,c,d) (p)->lpVtbl->Reconfigure(p,a,b,c,d)
#define IGraphConfig_AddFilterToCache(p,a) (p)->lpVtbl->AddFilterToCache(p,a)
#define IGraphConfig_EnumCacheFilter(p,a) (p)->lpVtbl->EnumCacheFilter(p,a)
#define IGraphConfig_RemoveFilterFromCache(p,a) (p)->lpVtbl->RemoveFilterFromCache(p,a)
#define IGraphConfig_GetStartTime(p,a) (p)->lpVtbl->GetStartTime(p,a)
#define IGraphConfig_PushThroughData(p,a,b,c) (p)->lpVtbl->PushThroughData(p,a,b,c)
#define IGraphConfig_SetFilterFlags(p,a,b) (p)->lpVtbl->SetFilterFlags(p,a,b)
#define IGraphConfig_GetFilterFlags(p,a,b) (p)->lpVtbl->GetFilterFlags(p,a,b)
#define IGraphConfig_RemoveFilterEx(p,a,b) (p)->lpVtbl->RemoveFilterEx(p,a,b)
#endif
#endif
#define IGraphConfig_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IGraphConfig methods ***/ \
STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) PURE; \
STDMETHOD_(HRESULT,Reconfigure)(THIS_ IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) PURE; \
STDMETHOD_(HRESULT,AddFilterToCache)(THIS_ IBaseFilter* pFilter) PURE; \
STDMETHOD_(HRESULT,EnumCacheFilter)(THIS_ IEnumFilters** pEnum) PURE; \
STDMETHOD_(HRESULT,RemoveFilterFromCache)(THIS_ IBaseFilter* pFilter) PURE; \
STDMETHOD_(HRESULT,GetStartTime)(THIS_ REFERENCE_TIME* prtStart) PURE; \
STDMETHOD_(HRESULT,PushThroughData)(THIS_ IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) PURE; \
STDMETHOD_(HRESULT,SetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD dwFlags) PURE; \
STDMETHOD_(HRESULT,GetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD* pdwFlags) PURE; \
STDMETHOD_(HRESULT,RemoveFilterEx)(THIS_ IBaseFilter* pFilter, DWORD Flags) PURE;
HRESULT CALLBACK IGraphConfig_Reconnect_Proxy(
IGraphConfig* This,
IPin* pOutputPin,
IPin* pInputPin,
const AM_MEDIA_TYPE* pmtFirstConnection,
IBaseFilter* pUsingFilter,
HANDLE hAbortEvent,
DWORD dwFlags);
void __RPC_STUB IGraphConfig_Reconnect_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_Reconfigure_Proxy(
IGraphConfig* This,
IGraphConfigCallback* pCallback,
PVOID pvContext,
DWORD dwFlags,
HANDLE hAbortEvent);
void __RPC_STUB IGraphConfig_Reconfigure_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_AddFilterToCache_Proxy(
IGraphConfig* This,
IBaseFilter* pFilter);
void __RPC_STUB IGraphConfig_AddFilterToCache_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_EnumCacheFilter_Proxy(
IGraphConfig* This,
IEnumFilters** pEnum);
void __RPC_STUB IGraphConfig_EnumCacheFilter_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_RemoveFilterFromCache_Proxy(
IGraphConfig* This,
IBaseFilter* pFilter);
void __RPC_STUB IGraphConfig_RemoveFilterFromCache_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_GetStartTime_Proxy(
IGraphConfig* This,
REFERENCE_TIME* prtStart);
void __RPC_STUB IGraphConfig_GetStartTime_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_PushThroughData_Proxy(
IGraphConfig* This,
IPin* pOutputPin,
IPinConnection* pConnection,
HANDLE hEventAbort);
void __RPC_STUB IGraphConfig_PushThroughData_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_SetFilterFlags_Proxy(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD dwFlags);
void __RPC_STUB IGraphConfig_SetFilterFlags_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_GetFilterFlags_Proxy(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD* pdwFlags);
void __RPC_STUB IGraphConfig_GetFilterFlags_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IGraphConfig_RemoveFilterEx_Proxy(
IGraphConfig* This,
IBaseFilter* pFilter,
DWORD Flags);
void __RPC_STUB IGraphConfig_RemoveFilterEx_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IGraphConfig_INTERFACE_DEFINED__ */
/*****************************************************************************
* IGraphConfigCallback interface
*/
#ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
#define __IGraphConfigCallback_INTERFACE_DEFINED__
DEFINE_GUID(IID_IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IGraphConfigCallback : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Reconfigure(
PVOID pvContext,
DWORD dwFlags) = 0;
};
#else
typedef struct IGraphConfigCallbackVtbl IGraphConfigCallbackVtbl;
struct IGraphConfigCallback {
const IGraphConfigCallbackVtbl* lpVtbl;
};
struct IGraphConfigCallbackVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IGraphConfigCallback* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IGraphConfigCallback* This);
ULONG (STDMETHODCALLTYPE *Release)(
IGraphConfigCallback* This);
/*** IGraphConfigCallback methods ***/
HRESULT (STDMETHODCALLTYPE *Reconfigure)(
IGraphConfigCallback* This,
PVOID pvContext,
DWORD dwFlags);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IGraphConfigCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IGraphConfigCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IGraphConfigCallback_Release(p) (p)->lpVtbl->Release(p)
/*** IGraphConfigCallback methods ***/
#define IGraphConfigCallback_Reconfigure(p,a,b) (p)->lpVtbl->Reconfigure(p,a,b)
#endif
#endif
#define IGraphConfigCallback_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IGraphConfigCallback methods ***/ \
STDMETHOD_(HRESULT,Reconfigure)(THIS_ PVOID pvContext, DWORD dwFlags) PURE;
HRESULT CALLBACK IGraphConfigCallback_Reconfigure_Proxy(
IGraphConfigCallback* This,
PVOID pvContext,
DWORD dwFlags);
void __RPC_STUB IGraphConfigCallback_Reconfigure_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */
#ifndef __IFilterChain_FWD_DEFINED__
#define __IFilterChain_FWD_DEFINED__
typedef struct IFilterChain IFilterChain;
#endif
/*****************************************************************************
* IFilterChain interface
*/
#ifndef __IFilterChain_INTERFACE_DEFINED__
#define __IFilterChain_INTERFACE_DEFINED__
DEFINE_GUID(IID_IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IFilterChain : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE StartChain(
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE PauseChain(
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE StopChain(
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveChain(
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter) = 0;
};
#else
typedef struct IFilterChainVtbl IFilterChainVtbl;
struct IFilterChain {
const IFilterChainVtbl* lpVtbl;
};
struct IFilterChainVtbl {
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IFilterChain* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IFilterChain* This);
ULONG (STDMETHODCALLTYPE *Release)(
IFilterChain* This);
/*** IFilterChain methods ***/
HRESULT (STDMETHODCALLTYPE *StartChain)(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
HRESULT (STDMETHODCALLTYPE *PauseChain)(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
HRESULT (STDMETHODCALLTYPE *StopChain)(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
HRESULT (STDMETHODCALLTYPE *RemoveChain)(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IFilterChain_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IFilterChain_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IFilterChain_Release(p) (p)->lpVtbl->Release(p)
/*** IFilterChain methods ***/
#define IFilterChain_StartChain(p,a,b) (p)->lpVtbl->StartChain(p,a,b)
#define IFilterChain_PauseChain(p,a,b) (p)->lpVtbl->PauseChain(p,a,b)
#define IFilterChain_StopChain(p,a,b) (p)->lpVtbl->StopChain(p,a,b)
#define IFilterChain_RemoveChain(p,a,b) (p)->lpVtbl->RemoveChain(p,a,b)
#endif
#endif
#define IFilterChain_METHODS \
ICOM_MSVTABLE_COMPAT_FIELDS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFilterChain methods ***/ \
STDMETHOD_(HRESULT,StartChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
STDMETHOD_(HRESULT,PauseChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
STDMETHOD_(HRESULT,StopChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
STDMETHOD_(HRESULT,RemoveChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE;
HRESULT CALLBACK IFilterChain_StartChain_Proxy(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
void __RPC_STUB IFilterChain_StartChain_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterChain_PauseChain_Proxy(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
void __RPC_STUB IFilterChain_PauseChain_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterChain_StopChain_Proxy(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
void __RPC_STUB IFilterChain_StopChain_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IFilterChain_RemoveChain_Proxy(
IFilterChain* This,
IBaseFilter* pStartFilter,
IBaseFilter* pEndFilter);
void __RPC_STUB IFilterChain_RemoveChain_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IFilterChain_INTERFACE_DEFINED__ */
#ifdef __cplusplus
}
#endif
#endif /* __WIDL_STRMIF_H */