| #ifndef __WINE_OBJBASE_H | |
| #define __WINE_OBJBASE_H | |
| #define _OBJBASE_H_ | |
| #include "unknwn.h" | |
| /* the following depend only on obj_base.h */ | |
| #include "wine/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" | |
| #ifndef RC_INVOKED | |
| /* For compatibility only, at least for now */ | |
| #include <stdlib.h> | |
| #endif | |
| #ifndef INITGUID | |
| #include "cguid.h" | |
| #endif | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #ifndef __WINE__ | |
| /* These macros are msdev's way of defining COM objects. | |
| * They are provided here for use by Winelib developpers. | |
| */ | |
| #define FARSTRUCT | |
| #define HUGEP | |
| #define WINOLEAPI STDAPI | |
| #define WINOLEAPI_(type) STDAPI_(type) | |
| #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 | |
| #define BEGIN_INTERFACE | |
| #define END_INTERFACE | |
| #else | |
| #define interface struct | |
| #define STDMETHOD(method) HRESULT STDMETHODCALLTYPE (*method) | |
| #define STDMETHOD_(type,method) type STDMETHODCALLTYPE (*method) | |
| #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) | |
| #define BEGIN_INTERFACE | |
| #define END_INTERFACE | |
| #endif /* __cplusplus && !CINTERFACE */ | |
| #endif /* __WINE__ */ | |
| #endif /* __WINE_OBJBASE_H */ |