Commit 2ef00173 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

include: Add COM_DECLSPEC_NOTHROW define.

parent aaaaec86
...@@ -40,9 +40,16 @@ ...@@ -40,9 +40,16 @@
#define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE #define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE
#if defined(__cplusplus) && !defined(CINTERFACE) #if defined(__cplusplus) && !defined(CINTERFACE)
#ifdef COM_STDMETHOD_CAN_THROW
# define COM_DECLSPEC_NOTHROW
#else
# define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
#endif
# define interface struct # define interface struct
# define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m # define STDMETHOD(m) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE m
# define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m # define STDMETHOD_(t,m) virtual COM_DECLSPEC_NOTHROW t STDMETHODCALLTYPE m
# define PURE =0 # define PURE =0
# define THIS_ # define THIS_
# define THIS void # define THIS void
......
...@@ -172,12 +172,18 @@ ...@@ -172,12 +172,18 @@
#if defined(__cplusplus) && !defined(CINTERFACE) #if defined(__cplusplus) && !defined(CINTERFACE)
#ifdef COM_STDMETHOD_CAN_THROW
# define COM_DECLSPEC_NOTHROW
#else
# define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
#endif
/* C++ interface */ /* C++ interface */
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method #define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method #define STDMETHOD_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method
#define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method #define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method
#define STDMETHODV_(type,method) virtual type STDMETHODVCALLTYPE method #define STDMETHODV_(type,method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method
#define PURE = 0 #define PURE = 0
#define THIS_ #define THIS_
......
...@@ -76,6 +76,16 @@ extern "C" { ...@@ -76,6 +76,16 @@ extern "C" {
# endif # endif
#endif #endif
#ifndef DECLSPEC_NOTHROW
# if defined(_MSC_VER) && (_MSC_VER >= 1200) && !defined(MIDL_PASS)
# define DECLSPEC_NOTHROW __declspec(nothrow)
# elif defined(__GNUC__)
# define DECLSPEC_NOTHROW __attribute__((nothrow))
# else
# define DECLSPEC_NOTHROW
# endif
#endif
#ifndef DECLSPEC_CACHEALIGN #ifndef DECLSPEC_CACHEALIGN
# define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128) # define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128)
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment