/**************************************************************************** This file just contains the necessary components for the correct compilation of the files of DirectX. If you possess MSSDK, use the "objbase.h" that accompanies him. In case of bugs, order e-mail for: anmendes@splicenet.com.br ****************************************************************************/ #ifndef __OBJBASE_FOR_GNUWIN32__ #define __OBJBASE_FOR_GNUWIN32__ #include #define REFIID void * #define IUnknown void #define MAKE_HRESULT(a,b,c) ((a << 31) + (b << 16) + c) #define DEFINE_GUID(a,b,c,d,e1,e2,e3,e4,e5,e6,e7,e8) #define STDMETHODCALLTYPE __stdcall #if defined(__cplusplus) && !defined(CINTERFACE) #define interface struct __attribute__ ((comobject)) #define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method #define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method #define PURE //= 0 #define THIS_ #define THIS void #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface //: public baseiface #if !defined(BEGIN_INTERFACE) #if defined(_MPPC_) && \ ( (defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && \ !defined(NO_NULL_VTABLE_ENTRY) ) #define BEGIN_INTERFACE virtual void a() {} #define END_INTERFACE #else #define BEGIN_INTERFACE #define END_INTERFACE #endif #endif #else #define interface struct #define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method) #define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method) #if !defined(BEGIN_INTERFACE) #if defined(_MPPC_) #define BEGIN_INTERFACE void *b; #define END_INTERFACE #else #define BEGIN_INTERFACE #define END_INTERFACE #endif #endif #define PURE #define THIS_ INTERFACE FAR* This, #define THIS INTERFACE FAR* This #ifdef CONST_VTABLE #undef CONST_VTBL #define CONST_VTBL const #define DECLARE_INTERFACE(iface) typedef interface iface { \ const struct iface##Vtbl FAR* lpVtbl; \ } iface; \ typedef const struct iface##Vtbl iface##Vtbl; \ const struct iface##Vtbl #else #undef CONST_VTBL #define CONST_VTBL #define DECLARE_INTERFACE(iface) typedef interface iface { \ struct iface##Vtbl FAR* lpVtbl; \ } iface; \ typedef struct iface##Vtbl iface##Vtbl; \ struct iface##Vtbl #endif #define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface) #endif #endif // __OBJBASE_FOR_GNUWIN32__