| #ifndef __WINE_OBJBASE_H | |
| #define __WINE_OBJBASE_H | |
| #define _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" | |
| HRESULT WINAPI GetClassFile(LPOLESTR filePathName,CLSID *pclsid); | |
| /* These macros are msdev's way of defining COM objects. They are provided | |
| * here for use by winelib users. | |
| */ | |
| #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 FARSTRUCT | |
| #define HUGEP | |
| #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) | |
| #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 | |
| #endif /* __WINE_OBJBASE_H */ |