| #ifndef __WINE_OBJBASE_H |
| #define __WINE_OBJBASE_H |
| |
| |
| #include "wine/obj_base.h" |
| |
| /* the following depend only on obj_base.h */ |
| #include "wine/obj_misc.h" |
| #include "wine/obj_channel.h" |
| #include "wine/obj_clientserver.h" |
| #include "wine/obj_storage.h" |
| |
| /* the following depend on obj_storage.h */ |
| #include "wine/obj_marshal.h" |
| #include "wine/obj_moniker.h" |
| #include "wine/obj_propertystorage.h" |
| |
| /* the following depend on obj_moniker.h */ |
| #include "wine/obj_dataobject.h" |
| |
| #include "wine/obj_dragdrop.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifdef __cplusplus |
| #define EXTERN_C extern "C" |
| #else |
| #define EXTERN_C extern |
| #endif |
| |
| #define STDMETHODCALLTYPE __stdcall |
| #define STDMETHODVCALLTYPE __cdecl |
| #define STDAPICALLTYPE __stdcall |
| #define STDAPIVCALLTYPE __cdecl |
| |
| #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE |
| #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE |
| |
| #define STDMETHODIMP HRESULT STDMETHODCALLTYPE |
| #define STDMETHODIMP_(type) type STDMETHODCALLTYPE |
| |
| |
| #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE |
| #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE |
| |
| #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE |
| #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE |
| |
| #define WINOLEAPI STDAPI |
| #define WINOLEAPI_(type) STDAPI_(type) |
| |
| #define BEGIN_INTERFACE |
| #define END_INTERFACE |
| |
| #ifdef __LIBMFC__ |
| /* All of these will eventually need to go once headers in win_include are wynified. */ |
| /* These macros are msdev's way of defining COM objects. */ |
| |
| #if defined(__cplusplus) && !defined(CINTERFACE) |
| #define interface struct |
| #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 |
| /* end MsDev's style, all of that must eventually go! */ |
| #endif /* __LIBMFC__ */ |
| |
| |
| #ifdef __cplusplus |
| }; /* extern "C" { */ |
| #endif |
| |
| #endif /* __WINE_OBJBASE_H */ |