| #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_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 |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| HRESULT WINAPI GetClassFile(LPCOLESTR filePathName,CLSID *pclsid); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| /* 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 */ |