Hello,This is a preliminary patch for dshow. I only have a test program i am using to verify the compile and linking with. The Windows API stuff is extensive. I removed the dependencies for ddraw (which only has a def file in the source), and for the AM* stuff ( i think controlling camera from the shell etc., but will find out soon).
Oh yea. I have not included the CLSID and IID's. Don't really know where to put them.
ex. CLSID_IBaseFilter Any feedback appreciated :) Ryan
diff --git a/cegcc/src/w32api/include/dshow.h b/cegcc/src/w32api/include/dshow.h index da4bf68..cb119c4 100644 --- a/cegcc/src/w32api/include/dshow.h +++ b/cegcc/src/w32api/include/dshow.h @@ -5,8 +5,8 @@ #endif #include <strmif.h> -#include <amaudio.h> -#include <amvideo.h> +//#include <amaudio.h> +//#include <amvideo.h> #include <evcode.h> #include <audevcod.h> #include <dvdevcod.h> @@ -17,7 +17,7 @@ #include <bdatypes.h> #include <dvdmedia.h> #include <il21dec.h> -#include <ddraw.h> /* DDSCAPS2, DDPIXELFORMAT */ +//#include <ddraw.h> /* DDSCAPS2, DDPIXELFORMAT */ #ifndef _WINGDI_H #include <wingdi.h> /* BITMAPINFOHEADER */ #endif @@ -76,7 +76,7 @@ typedef struct _tag_AMVABeginFrameInfo{ LPVOID pOutputData; DWORD dwSizeOutputData; } AMVABeginFrameInfo,*LPAMVABeginFrameInfo; -typedef struct _tag_AMVACompBufferInfo{ +/*typedef struct _tag_AMVACompBufferInfo{ DWORD dwNumCompBuffers; DWORD dwWidthToCreate; DWORD dwHeightToCreate; @@ -84,6 +84,7 @@ typedef struct _tag_AMVACompBufferInfo{ DDSCAPS2 ddCompCaps; DDPIXELFORMAT ddPixelFormat; } AMVACompBufferInfo,*LPAMVACompBufferInfo; +*/ typedef struct _tag_AMVAEndFrameInfo{ DWORD dwSizeMiscData; LPVOID pMiscData; @@ -91,17 +92,25 @@ typedef struct _tag_AMVAEndFrameInfo{ typedef struct _tag_AMVAInternalMemInfo{ DWORD dwScratchMemAlloc; } AMVAInternalMemInfo,*LPAMVAInternalMemInfo; -typedef struct _tag_AMVAUncompBufferInfo{ +/*typedef struct _tag_AMVAUncompBufferInfo{ DWORD dwMinNumSurfaces; DWORD dwMaxNumSurfaces; DDPIXELFORMAT ddUncompPixelFormat; } AMVAUncompBufferInfo,*LPAMVAUncompBufferInfo; - typedef struct _tag_AMVAUncompDataInfo{ +*/ +/*typedef struct _tag_AMVAUncompDataInfo{ DWORD dwUncompWidth; DWORD dwUncompHeight; DDPIXELFORMAT ddUncompPixelFormat; } AMVAUncompDataInfo,*LPAMVAUncompDataInfo; - +*/ + /*typedef enum _FilterState +{ + State_Stopped, + State_Paused, + State_Running +} FILTER_STATE; + */ #ifdef __cplusplus } #endif diff --git a/cegcc/src/w32api/include/strmif.h b/cegcc/src/w32api/include/strmif.h index 38cbc96..a324c34 100644 --- a/cegcc/src/w32api/include/strmif.h +++ b/cegcc/src/w32api/include/strmif.h @@ -4,6 +4,7 @@ #pragma GCC system_header #endif + #ifdef __cplusplus extern "C" { #endif @@ -11,9 +12,25 @@ extern "C" { /*--- DirectShow Reference - DirectShow Enumerated Types - TVAudioMode Enumeration */ #define TVAUDIO_MODE_MASK 0x000000FF #define TVAUDIO_PRESET_MASK 0x0000FF00 -/*--- DirectShow Reference - DirectShow Data Types */ + /*--- DirectShow Reference - DirectShow Data Types */ +typedef LONG_PTR OAHWND; typedef LONGLONG REFERENCE_TIME; typedef double REFTIME; +typedef long OAFilterState; +typedef struct IFileSinkFilter *LPFILESINKFILTER; +typedef struct IAMCopyCaptureFileProgress *LPAMCOPYCAPTUREFILEPROGRESS; +typedef struct IErrorLog *LPERRORLOG; +typedef struct IAMTunerNotification *LPAMTUNERNOTIFICATION; +typedef struct IFilterGraph *LPFILTERGRAPH; +typedef struct IBaseFilter *LPBASEFILTER; +typedef struct IPin *LPPIN; +typedef struct IEnumPins *LPENUMPINS; +typedef struct IEnumFilters *LPENUMFILTERS; +typedef struct IEnumMediaTypes *LPENUMMEDIATYPES; +typedef struct IReferenceClock *LPREFERENCECLOCK; +typedef struct IMediaSample *LPMEDIASAMPLE; +typedef struct IVideoWindow *LPVIDEOWINDOW; + /*--- DirectShow Reference - Constants and GUIDs */ enum { MERIT_PREFERRED = 0x800000, @@ -406,11 +423,12 @@ typedef enum _DVENCODERVIDEOFORMAT { DVENCODERVIDEOFORMAT_NTSC = 2000, DVENCODERVIDEOFORMAT_PAL = 2001 } DVENCODERVIDEOFORMAT; -typedef enum _FilterState { + /*typedef enum _FilterState { State_Stopped, State_Paused, State_Running } FILTER_STATE; + */ typedef enum { INTERLEAVE_NONE, INTERLEAVE_CAPTURE, @@ -731,10 +749,13 @@ typedef struct tagCOLORKEY { #define CK_NOCOLORKEY 0x00000000 #define CK_INDEX 0x00000001 #define CK_RGB 0x00000002 -typedef struct { + /*typedef struct { DWORD dw1; DWORD dw2; } DDCOLORKEY; +typedef DDCOLORKEY *LPDDCOLORKEY; + */ + typedef struct tagDVD_AudioAttributes { DVD_AUDIO_APPMODE AppMode; DVD_AUDIO_FORMAT AudioFormat; @@ -985,6 +1006,7 @@ typedef struct _VIDEO_STREAM_CONFIG_CAPS { LONG MinBitsPerSecond; LONG MaxBitsPerSecond; } VIDEO_STREAM_CONFIG_CAPS; +/********** typedef struct tagVMRALLOCATIONINFO { DWORD dwFlags; LPBITMAPINFOHEADER lpHdr; @@ -995,6 +1017,7 @@ typedef struct tagVMRALLOCATIONINFO { DWORD dwInterlaceFlags; SIZE szNativeSize; } VMRALLOCATIONINFO; +***********/ /********** typedef struct _VMRALPHABITMAP { DWORD dwFlags; @@ -1023,9 +1046,10 @@ typedef struct _VMRFrequency { DWORD dwDenominator; } VMRFrequency; typedef struct tagVMRGUID { - GUID *pGUID; - GUID GUID; + LPGUID pGUID; + _GUID GUID; } VMRGUID; + typedef struct tagVMRMONITORINFO { VMRGUID guid; RECT rcMonitor; @@ -1153,6 +1177,362 @@ DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown) }; #undef INTERFACE +/* NEW INTERFACES FOR DIRECTSHOW */ +#define INTERFACE IPin +DECLARE_INTERFACE_(IPin, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,Connect) (THIS_ IPin *, AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT,ReceiveConnection) (THIS_ IPin *, const AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT,Disconnect) (THIS) PURE; + STDMETHOD_(HRESULT,ConnectedTo) (THIS_ IPin **) PURE; + STDMETHOD_(HRESULT,ConnectionMediaType) (THIS_ AM_MEDIA_TYPE * pmt) PURE; + STDMETHOD_(HRESULT,QueryPinInfo) (THIS_ PIN_INFO *) PURE; + STDMETHOD_(HRESULT,QueryDirection) (THIS_ PIN_DIRECTION *) PURE; + STDMETHOD_(HRESULT,QueryId) (THIS_ unsigned short **) PURE; + STDMETHOD_(HRESULT,QueryAccept) (THIS_ const AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT,EnumMediaTypes) (THIS_ LPENUMMEDIATYPES *) PURE; + STDMETHOD_(HRESULT,QueryInternalConnections) (THIS_ IPin **, unsigned long *) PURE; + STDMETHOD_(HRESULT,EndOfStream) (THIS) PURE; + STDMETHOD_(HRESULT,BeginFlush) (THIS) PURE; + STDMETHOD_(HRESULT,EndFlush) (THIS) PURE; + STDMETHOD_(HRESULT,NewSegment) (THIS_ REFERENCE_TIME, REFERENCE_TIME, double) PURE; +}; +#undef INTERFACE + +#define INTERFACE IBaseFilter +DECLARE_INTERFACE_(IBaseFilter, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,GetClassID) (THIS_ CLSID * pClassID) PURE; + STDMETHOD_(HRESULT,Stop) (THIS) PURE; + STDMETHOD_(HRESULT,Pause) (THIS) PURE; + STDMETHOD_(HRESULT,Run) (THIS_ REFERENCE_TIME tStart) PURE; + STDMETHOD_(HRESULT,GetState) (THIS_ unsigned long, void *) PURE; + STDMETHOD_(HRESULT,SetSyncSource) (THIS_ LPREFERENCECLOCK) PURE; + STDMETHOD_(HRESULT,GetSyncSource) (THIS_ LPREFERENCECLOCK *) PURE; + STDMETHOD_(HRESULT,EnumPins) (THIS_ LPENUMPINS *) PURE; + STDMETHOD_(HRESULT,FindPin) (THIS_ const unsigned short *, LPPIN *) PURE; + STDMETHOD_(HRESULT,QueryFilterInfo) (THIS_ void *) PURE; + STDMETHOD_(HRESULT,JoinFilterGraph) (THIS_ LPFILTERGRAPH, const unsigned short *) PURE; + STDMETHOD_(HRESULT,QueryVendorInfo) (THIS_ unsigned short **) PURE; +}; +#undef INTERFACE + +#define INTERFACE IAMTVTuner +DECLARE_INTERFACE_(IAMTVTuner, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,put_Channel) (THIS_ long, long, long) PURE; + STDMETHOD_(HRESULT,get_Channel) (THIS_ long *, long *, long *) PURE; + STDMETHOD_(HRESULT,ChannelMinMax) (THIS_ long *, long *) PURE; + STDMETHOD_(HRESULT,put_CountryCode) (THIS_ long) PURE; + STDMETHOD_(HRESULT,get_CountryCode) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,put_TuningSpace) (THIS_ long) PURE; + STDMETHOD_(HRESULT,get_TuningSpace) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,Logon) (THIS_ HANDLE) PURE; + STDMETHOD_(HRESULT,Logout) (IAMTVTuner *) PURE; + STDMETHOD_(HRESULT,SignalPresen) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,put_Mode) (THIS_ AMTunerModeType) PURE; + STDMETHOD_(HRESULT,get_Mode) (THIS_ AMTunerModeType *) PURE; + STDMETHOD_(HRESULT,GetAvailableModes) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,RegisterNotificationCallBack) (THIS_ LPAMTUNERNOTIFICATION, + long) PURE; + STDMETHOD_(HRESULT,UnRegisterNotificationCallBack) (THIS_ + LPAMTUNERNOTIFICATION) PURE; + STDMETHOD_(HRESULT,get_AvailableTVFormats) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,get_TVFormat) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,AutoTune) (THIS_ long, long *) PURE; + STDMETHOD_(HRESULT,StoreAutoTune) (IAMTVTuner *) PURE; + STDMETHOD_(HRESULT,get_NumInputConnections) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,put_InputType) (THIS_ long, TunerInputType) PURE; + STDMETHOD_(HRESULT,get_InputType) (THIS_ long, TunerInputType *) PURE; + STDMETHOD_(HRESULT,put_ConnectInput) (THIS_ long) PURE; + STDMETHOD_(HRESULT,get_ConnectInput) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,get_VideoFrequency) (THIS_ long *) PURE; + STDMETHOD_(HRESULT,get_AudioFrequency) (THIS_ long *) PURE; +}; +#undef INTERFACE + +#define INTERFACE IMediaControl +DECLARE_INTERFACE_(IMediaControl, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,GetTypeInfoCount) (THIS_ UINT *) PURE; + STDMETHOD_(HRESULT,GetTypeInfo) (THIS_ UINT, LCID, LPTYPEINFO *) PURE; + STDMETHOD_(HRESULT,GetIDsOfNames) (THIS_ REFIID, LPOLESTR *, UINT, LCID, + DISPID *) PURE; + STDMETHOD_(HRESULT,Invoke) (THIS_ DISPID, REFIID, LCID, WORD, DISPPARAMS*, + VARIANT *, EXCEPINFO *, UINT *) PURE; + STDMETHOD_(HRESULT,Run) (THIS) PURE; + STDMETHOD_(HRESULT,Pause) (THIS) PURE; + STDMETHOD_(HRESULT,Stop) (THIS) PURE; + STDMETHOD_(HRESULT,GetState) (THIS_ LONG, OAFilterState *) PURE; + STDMETHOD_(HRESULT,RenderFile) (THIS_ BSTR) PURE; + STDMETHOD_(HRESULT,AddSourceFilter) (THIS_ BSTR, LPDISPATCH *) PURE; + STDMETHOD_(HRESULT,get_FilterCollection) (THIS_ LPDISPATCH *) PURE; + STDMETHOD_(HRESULT,get_RegFilterCollection) (THIS_ LPDISPATCH *) PURE; + STDMETHOD_(HRESULT,StopWhenReady) (IMediaControl *) PURE; +}; + +#undef INTERFACE +#define INTERFACE IGraphBuilder +DECLARE_INTERFACE_(IGraphBuilder, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,AddFilter) (THIS_ IBaseFilter *, LPCWSTR) PURE; + STDMETHOD_(HRESULT,RemoveFilter) (THIS_ IBaseFilter *) PURE; + STDMETHOD_(HRESULT,EnumFilters) (THIS_ LPENUMFILTERS *) PURE; + STDMETHOD_(HRESULT,FindFilterByName) (THIS_ LPCWSTR, IBaseFilter **) PURE; + STDMETHOD_(HRESULT,ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT,Reconnect) (THIS_ IPin *) PURE; + STDMETHOD_(HRESULT,Disconnect) (THIS_ IPin *) PURE; + STDMETHOD_(HRESULT,SetDefaultSyncSource) (IGraphBuilder *) PURE; + STDMETHOD_(HRESULT,Connect) (THIS_ IPin *, IPin *) PURE; + STDMETHOD_(HRESULT,Render) (THIS_ IPin *) PURE; + STDMETHOD_(HRESULT,RenderFile) (THIS_ LPCWSTR, LPCWSTR) PURE; + STDMETHOD_(HRESULT,AddSourceFilter) (THIS_ LPCWSTR, LPCWSTR, IBaseFilter **) PURE; + STDMETHOD_(HRESULT,SetLogFile) (THIS_ DWORD_PTR) PURE; + STDMETHOD_(HRESULT,Abort) (IGraphBuilder *) PURE; + STDMETHOD_(HRESULT,ShouldOperationContinue) (IGraphBuilder *) PURE; +}; +#undef INTERFACE + +#define INTERFACE ICaptureGraphBuilder2 +DECLARE_INTERFACE_(ICaptureGraphBuilder2, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **); + STDMETHOD_(ULONG, AddRef) (THIS); + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,SetFiltergraph) (THIS_ IGraphBuilder *) PURE; + STDMETHOD_(HRESULT,GetFiltergraph) (THIS_ IGraphBuilder **) PURE; + STDMETHOD_(HRESULT,SetOutputFileName) (THIS_ const GUID *, LPCOLESTR, + IBaseFilter **, LPFILESINKFILTER *) PURE; + STDMETHOD_(HRESULT,FindInterface) (THIS_ const GUID *, const GUID *, + IBaseFilter *, REFIID, void **) PURE; + STDMETHOD_(HRESULT,RenderStream) (THIS_ const GUID *, const GUID *, IUnknown *, + IBaseFilter *, IBaseFilter *) PURE; + STDMETHOD_(HRESULT,ControlStream) (THIS_ const GUID *, const GUID *, + IBaseFilter *, REFERENCE_TIME *, + REFERENCE_TIME *, WORD, WORD) PURE; + STDMETHOD_(HRESULT,AllocCapFile) (THIS_ LPCOLESTR, DWORDLONG) PURE; + STDMETHOD_(HRESULT,CopyCaptureFile) (THIS_ LPOLESTR, LPOLESTR, int, + LPAMCOPYCAPTUREFILEPROGRESS) PURE; + STDMETHOD_(HRESULT,FindPin) (THIS_ IUnknown *, PIN_DIRECTION, const GUID *, + const GUID *, BOOL, int, IPin **) PURE; +}; + +#undef INTERFACE +#define INTERFACE ICreateDevEnum +DECLARE_INTERFACE_(ICreateDevEnum, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,CreateClassEnumerator) (THIS_ REFCLSID, IEnumMoniker **, + DWORD) PURE; +}; + +#undef INTERFACE +#define INTERFACE IAMCrossbar +DECLARE_INTERFACE_(IAMCrossbar, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT,get_PinCounts) (THIS_ long *, long *) PURE; + STDMETHOD_(HRESULT,CanRoute) (THIS_ long, long) PURE; + STDMETHOD_(HRESULT,Route) (THIS_ long, long) PURE; + STDMETHOD_(HRESULT,get_IsRoutedTo) (THIS_ long, long *) PURE; + STDMETHOD_(HRESULT,get_CrossbarPinInfo) (THIS_ BOOL, long, long *, long *) PURE; +}; +#undef INTERFACE + +#define INTERFACE IPropertyBag +DECLARE_INTERFACE_(IPropertyBag, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, Read) (THIS_ LPCOLESTR, LPVARIANT, LPERRORLOG) PURE; + STDMETHOD_(HRESULT, Write) (THIS_ LPCOLESTR, LPVARIANT) PURE; +}; + +#undef INTERFACE +#define INTERFACE IAMStreamConfig +DECLARE_INTERFACE_(IAMStreamConfig, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, SetFormat) (THIS_ AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT, GetFormat) (THIS_ AM_MEDIA_TYPE **) PURE; + STDMETHOD_(HRESULT, GetNumberOfCapabilities) (THIS_ int *,int *) PURE; + STDMETHOD_(HRESULT, GetStreamCaps) (THIS_ int,AM_MEDIA_TYPE **, BYTE *) PURE; +}; +#undef INTERFACE + +#define INTERFACE IAMVideoProcAmp +DECLARE_INTERFACE_(IAMVideoProcAmp, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, GetRange) (THIS_ long, long *, long *, long *, long *,long *) PURE; + STDMETHOD_(HRESULT, Set) (THIS_ long, long, long) PURE; + STDMETHOD_(HRESULT, Get) (THIS_ long, long *, long *) PURE; +}; +#undef INTERFACE + +#undef INTERFACE +#define INTERFACE IAMTVAudio +DECLARE_INTERFACE_(IAMTVAudio, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, GetHardwareSupportedTVAudioModes) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, GetAvailableTVAudioModes) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, get_TVAudioMode) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_TVAudioMode) (THIS_ long) PURE; + STDMETHOD_(HRESULT, RegisterNotificationCallBack) (THIS_ LPAMTUNERNOTIFICATION, + long) PURE; + STDMETHOD_(HRESULT, UnRegisterNotificationCallBack) (THIS_ + LPAMTUNERNOTIFICATION) PURE; +}; +#undef INTERFACE + +#define INTERFACE ISampleGrabberCB +DECLARE_INTERFACE_(ISampleGrabberCB, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, SampleCB) (THIS_ double, LPMEDIASAMPLE) PURE; + STDMETHOD_(HRESULT, BufferCB) (THIS_ double, BYTE *, long) PURE; +}; +#undef INTERFACE + + +#define INTERFACE ISampleGrabber +DECLARE_INTERFACE_(ISampleGrabber, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, SetOneShot) (THIS_ BOOL) PURE; + STDMETHOD_(HRESULT, SetMediaType) (THIS_ const AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT, GetConnectedMediaType) (THIS_ AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT, SetBufferSamples) (THIS_ BOOL) PURE; + STDMETHOD_(HRESULT, GetCurrentBuffer) (THIS_ long *, long *) PURE; + STDMETHOD_(HRESULT, GetCurrentSample) (THIS_ LPMEDIASAMPLE *) PURE; + STDMETHOD_(HRESULT, SetCallback) (THIS_ ISampleGrabberCB *, long) PURE; +}; + +#undef INTERFACE +#define INTERFACE IFilterGraph +DECLARE_INTERFACE_(IFilterGraph, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, AddFilter) (THIS_ LPBASEFILTER, LPCWSTR) PURE; + STDMETHOD_(HRESULT, RemoveFilter) (THIS_ LPBASEFILTER) PURE; + STDMETHOD_(HRESULT, EnumFilters) (THIS_ LPENUMFILTERS *) PURE; + STDMETHOD_(HRESULT, FindFilterByName) (THIS_ LPCWSTR, LPBASEFILTER *) PURE; + STDMETHOD_(HRESULT, ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *) PURE; + STDMETHOD_(HRESULT, Reconnect) (THIS_ LPPIN) PURE; + STDMETHOD_(HRESULT, Disconnect) (THIS_ LPPIN) PURE; + STDMETHOD_(HRESULT, SetDefaultSyncSource) (THIS) PURE; +}; +#undef INTERFACE + +#define INTERFACE IMediaSample +DECLARE_INTERFACE_(IMediaSample, IUnknown) +{ + STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE; + STDMETHOD_(ULONG, AddRef) (THIS) PURE; + STDMETHOD_(ULONG, Release) (THIS) PURE; + STDMETHOD_(HRESULT, GetPointer )(THIS_ unsigned char** ) PURE; + STDMETHOD_(LONG,GetSize )(THIS) PURE; + STDMETHOD_(HRESULT, GetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ) PURE; + STDMETHOD_(HRESULT, SetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ) PURE; + STDMETHOD_(HRESULT, IsSyncPoint )(THIS) PURE; + STDMETHOD_(HRESULT, SetSyncPoint )(THIS_ long ) PURE; + STDMETHOD_(HRESULT, IsPreroll )(THIS) PURE; + STDMETHOD_(HRESULT, SetPreroll )(THIS_ long ) PURE; + STDMETHOD_(LONG,GetActualDataLength)(THIS) PURE; + STDMETHOD_(HRESULT, SetActualDataLength )(THIS_ long ) PURE; + STDMETHOD_(HRESULT, GetMediaType )(THIS_ AM_MEDIA_TYPE** ) PURE; + STDMETHOD_(HRESULT, SetMediaType )(THIS_ AM_MEDIA_TYPE* ) PURE; + STDMETHOD_(HRESULT, IsDiscontinuity )(THIS) PURE; + STDMETHOD_(HRESULT, SetDiscontinuity )(THIS_ long ) PURE; + STDMETHOD_(HRESULT, GetMediaTime )(THIS_ long long* ,long long* ) PURE; + STDMETHOD_(HRESULT, SetMediaTime )(THIS_ long long* ,long long* ) PURE; +}; +#undef INTERFACE + +#define INTERFACE IVideoWindow +DECLARE_INTERFACE_(IVideoWindow, IUnknown) +{ + STDMETHOD(QueryInterface )(THIS_ REFIID ,void **) PURE; + STDMETHOD_(ULONG,AddRef )(THIS) PURE; + STDMETHOD_(ULONG,Release )(THIS) PURE; + STDMETHOD_(HRESULT, GetTypeInfoCount) (THIS_ UINT * ) PURE; + STDMETHOD_(HRESULT, GetTypeInfo) (THIS_ UINT ,LCID , ITypeInfo ** ) PURE; + STDMETHOD_(HRESULT, GetIDsOfNames) (THIS_ REFIID ,LPOLESTR * , UINT ,LCID , DISPID * ) PURE; + STDMETHOD_(HRESULT, Invoke) (THIS_ DISPID ,REFIID , LCID , WORD ,void *, VARIANT * ,EXCEPINFO * , UINT * ) PURE; + STDMETHOD_(HRESULT, put_Caption) (THIS_ BSTR ) PURE; + STDMETHOD_(HRESULT, get_Caption) (THIS_ BSTR * ) PURE; + STDMETHOD_(HRESULT, put_WindowStyle) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_WindowStyle) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_WindowStyleEx) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_WindowStyleEx) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_AutoShow) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_AutoShow) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_WindowState) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_WindowState) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_BackgroundPalette) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_BackgroundPalette) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Visible) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_Visible) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Left) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_Left) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Width) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_Width) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Top) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_Top) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Height) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_Height) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_Owner) (THIS_ OAHWND ) PURE; + STDMETHOD_(HRESULT, get_Owner) (THIS_ OAHWND * ) PURE; + STDMETHOD_(HRESULT, put_MessageDrain) (THIS_ OAHWND ) PURE; + STDMETHOD_(HRESULT, get_MessageDrain) (THIS_ OAHWND * ) PURE; + STDMETHOD_(HRESULT, get_BorderColor) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_BorderColor) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, get_FullScreenMode) (THIS_ long *) PURE; + STDMETHOD_(HRESULT, put_FullScreenMode) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, SetWindowForeground) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, NotifyOwnerMessage) (THIS_ OAHWND ,long , LONG_PTR ,LONG_PTR ) PURE; + STDMETHOD_(HRESULT, SetWindowPosition) (THIS_ long ,long , long ,long ) PURE; + STDMETHOD_(HRESULT, GetWindowPosition) (THIS_ long *,long *, long *,long *) PURE; + STDMETHOD_(HRESULT, GetMinIdealImageSize) (THIS_ long *, long *) PURE; + STDMETHOD_(HRESULT, GetMaxIdealImageSize) (THIS_ long *, long *) PURE; + STDMETHOD_(HRESULT, GetRestorePosition) (THIS_ long *,long *, long *,long *) PURE; + STDMETHOD_(HRESULT, HideCursor) (THIS_ long ) PURE; + STDMETHOD_(HRESULT, IsCursorHidden) (THIS_ long *) PURE; +}; + #ifdef __cplusplus } #endif
------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel