diff --git a/include/objbase.h b/include/objbase.h index 0e15d8ac4a9..1f6364030b1 100644 --- a/include/objbase.h +++ b/include/objbase.h @@ -22,9 +22,10 @@ HRESULT WINAPI GetClassFile(LPOLESTR filePathName,CLSID *pclsid); -#ifdef __cplusplus -extern "C" { -#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" @@ -43,7 +44,6 @@ extern "C" { #define STDMETHODIMP HRESULT STDMETHODCALLTYPE #define STDMETHODIMP_(type) type STDMETHODCALLTYPE - #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE @@ -53,13 +53,6 @@ extern "C" { #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 @@ -70,65 +63,38 @@ extern "C" { #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 +#define BEGIN_INTERFACE +#define END_INTERFACE #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 +#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 +#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 -/* end MsDev's style, all of that must eventually go! */ -#endif /* __LIBMFC__ */ - - -#ifdef __cplusplus -}; /* extern "C" { */ -#endif #endif /* __WINE_OBJBASE_H */