- Added missing __attribute__ ((com_interface)) for IUnknown with.
ICOM_USE_COM_INTERFACE_ATTRIBUTE - Small addition to comments surrounding ICOM_USE_COM_INTERFACE_ATTRIBUTE "option".
This commit is contained in:
parent
8ced881592
commit
26b565998d
@ -14,10 +14,16 @@
|
|||||||
* with the binary emulator.
|
* with the binary emulator.
|
||||||
*
|
*
|
||||||
* If the compiler supports the com_interface attribute, leave this off, and
|
* If the compiler supports the com_interface attribute, leave this off, and
|
||||||
* define the ICOM_USE_COM_INTERFACE_ATTRIBUTE macro below.
|
* define the ICOM_USE_COM_INTERFACE_ATTRIBUTE macro below. This may also
|
||||||
|
* require the addition of the -vtable-thunks option for g++.
|
||||||
*
|
*
|
||||||
* If you aren't interested in WineLib C++ compatability at all, leave both
|
* If you aren't interested in WineLib C++ compatability at all, leave both
|
||||||
* options off.
|
* options off.
|
||||||
|
*
|
||||||
|
* The preferable method for using ICOM_USE_COM_INTERFACE_ATTRIBUTE macro
|
||||||
|
* would be to define it only for your WineLib application. This allows you
|
||||||
|
* to have both binary and WineLib compatibility for C and C++ at the same
|
||||||
|
* time :)
|
||||||
*/
|
*/
|
||||||
/* #define ICOM_MSVTABLE_COMPAT 1 */
|
/* #define ICOM_MSVTABLE_COMPAT 1 */
|
||||||
/* #define ICOM_USE_COM_INTERFACE_ATTRIBUTE 1 */
|
/* #define ICOM_USE_COM_INTERFACE_ATTRIBUTE 1 */
|
||||||
@ -698,11 +704,11 @@ typedef struct IUnknown IUnknown, *LPUNKNOWN;
|
|||||||
typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown);
|
typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown);
|
||||||
struct IUnknown {
|
struct IUnknown {
|
||||||
ICOM_VFIELD(IUnknown);
|
ICOM_VFIELD(IUnknown);
|
||||||
#if defined(ICOM_USE_COM_INTERFACE_ATTRIBUTE) && !defined(ICOM_CINTERFACE)
|
#if defined(ICOM_USE_COM_INTERFACE_ATTRIBUTE)
|
||||||
} __attribute__ ((com_interface));
|
} __attribute__ ((com_interface));
|
||||||
#else
|
#else
|
||||||
};
|
};
|
||||||
#endif /* ICOM_US_COM_INTERFACE_ATTRIBUTE, !ICOM_CINTERFACE */
|
#endif /* ICOM_US_COM_INTERFACE_ATTRIBUTE */
|
||||||
|
|
||||||
struct ICOM_VTABLE(IUnknown) {
|
struct ICOM_VTABLE(IUnknown) {
|
||||||
#ifdef ICOM_MSVTABLE_COMPAT
|
#ifdef ICOM_MSVTABLE_COMPAT
|
||||||
@ -718,7 +724,12 @@ struct IUnknown {
|
|||||||
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj)
|
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj)
|
||||||
ICOM_METHOD (ULONG,AddRef)
|
ICOM_METHOD (ULONG,AddRef)
|
||||||
ICOM_METHOD (ULONG,Release)
|
ICOM_METHOD (ULONG,Release)
|
||||||
|
#if defined(ICOM_USE_COM_INTERFACE_ATTRIBUTE)
|
||||||
|
} __attribute__ ((com_interface));
|
||||||
|
#else
|
||||||
};
|
};
|
||||||
|
#endif /* ICOM_US_COM_INTERFACE_ATTRIBUTE */
|
||||||
|
|
||||||
#undef ICOM_INTERFACE
|
#undef ICOM_INTERFACE
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user