changeset 30127:774aa6f7399e

Several hacks to fix compilation of tvi_dshow on MinGW64.
author reimar
date Sat, 02 Jan 2010 17:41:11 +0000
parents d06ac0e5d63b
children fe2645bad519
files loader/wine/basetsd.h loader/wine/winnt.h stream/tvi_dshow.c stream/tvi_dshow.h
diffstat 4 files changed, 27 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/loader/wine/basetsd.h	Sat Jan 02 16:55:41 2010 +0000
+++ b/loader/wine/basetsd.h	Sat Jan 02 17:41:11 2010 +0000
@@ -72,8 +72,8 @@
 
 #if defined(_WIN64)
 
-typedef __uint32 __ptr32;
-typedef void    *__ptr64;
+//typedef __uint32 __ptr32;
+//typedef void    *__ptr64;
 
 #else /* FIXME: defined(_WIN32) */
 
--- a/loader/wine/winnt.h	Sat Jan 02 16:55:41 2010 +0000
+++ b/loader/wine/winnt.h	Sat Jan 02 17:41:11 2010 +0000
@@ -620,7 +620,8 @@
 #endif  /* __sparc__ */
 
 #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
-#error You need to define a CONTEXT for your CPU
+#warning You need to define a CONTEXT for your CPU
+typedef void CONTEXT;
 #endif
 
 typedef CONTEXT *PCONTEXT;
@@ -747,7 +748,7 @@
 #endif /* __sparc__ */
 
 #ifndef DEFINE_REGS_ENTRYPOINT_0
-#error You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU
+#warning You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU
 #endif
 
 #ifdef __i386__
@@ -758,7 +759,7 @@
 #endif
 
 #if !defined(GET_IP) && !defined(RC_INVOKED)
-# error You must define GET_IP for this CPU
+#warning You must define GET_IP for this CPU
 #endif
 
 /*
--- a/stream/tvi_dshow.c	Sat Jan 02 16:55:41 2010 +0000
+++ b/stream/tvi_dshow.c	Sat Jan 02 17:41:11 2010 +0000
@@ -89,6 +89,11 @@
 
 #include "tvi_dshow.h"
 
+#ifndef STDCALL
+// mingw64 needs this
+#define STDCALL __stdcall
+#endif
+
 static tvi_handle_t *tvi_init_dshow(tv_param_t* tv_param);
 
 /*
--- a/stream/tvi_dshow.h	Sat Jan 02 16:55:41 2010 +0000
+++ b/stream/tvi_dshow.h	Sat Jan 02 17:41:11 2010 +0000
@@ -434,6 +434,8 @@
     STDMETHOD(get_CrossbarPinInfo) (THIS_ BOOL, long, long *, long *);
 };
 
+#ifndef __IPropertyBag_INTERFACE_DEFINED__
+#define __IPropertyBag_INTERFACE_DEFINED__
 #undef INTERFACE
 #define INTERFACE IPropertyBag
 DECLARE_INTERFACE(IPropertyBag)
@@ -444,6 +446,7 @@
     STDMETHOD(Read) (THIS_ LPCOLESTR, LPVARIANT, LPERRORLOG);
     STDMETHOD(Write) (THIS_ LPCOLESTR, LPVARIANT);
 };
+#endif
 
 #undef INTERFACE
 #define INTERFACE IAMStreamConfig
@@ -678,6 +681,19 @@
     STDMETHOD(IsCursorHidden) (THIS_ long *);
 };
 
+#ifndef DECLARE_ENUMERATOR_
+#define DECLARE_ENUMERATOR_(I,T) \
+    DECLARE_INTERFACE_(I,IUnknown) \
+    { \
+        STDMETHOD(QueryInterface)(I*, REFIID,PVOID*); \
+        STDMETHOD_(ULONG,AddRef)(I*); \
+        STDMETHOD_(ULONG,Release)(I*); \
+        STDMETHOD(Next)(I*, ULONG,T*,ULONG*); \
+        STDMETHOD(Skip)(I*, ULONG); \
+        STDMETHOD(Reset)(I*); \
+        STDMETHOD(Clone)(I*, I**); \
+    }
+#endif
 DECLARE_ENUMERATOR_(IEnumFilters, LPBASEFILTER);
 DECLARE_ENUMERATOR_(IEnumPins, LPPIN);
 DECLARE_ENUMERATOR_(IEnumMediaTypes, AM_MEDIA_TYPE *);