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

Reply via email to