Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
IUnknown.h File Reference
#include "HResult.h"

Go to the source code of this file.

Classes

struct  _GUID
 

Macros

#define DECLSPEC_UUID(x)
 
#define GUID_DEFINED
 
#define __IUnknown_INTERFACE_DEFINED__
 
#define IUNKNOWN_DISAMBIG_R(TYPE)
 
#define IUNKNOWN_DISAMBIG(TYPE)
 

Typedefs

typedef struct _GUID GUID
 
typedef GUID IID
 

Variables

__DECL_IMPORT GUID IID_IUnknown
 

Detailed Description

support for COM style interfaces. might even be used in linux.

Macro Definition Documentation

◆ __IUnknown_INTERFACE_DEFINED__

#define __IUnknown_INTERFACE_DEFINED__

◆ DECLSPEC_UUID

#define DECLSPEC_UUID (   x)

◆ GUID_DEFINED

#define GUID_DEFINED

◆ IUNKNOWN_DISAMBIG

#define IUNKNOWN_DISAMBIG (   TYPE)
Value:
STDMETHOD(QueryInterface)( /* [in] */ const IID& riid, /* [iid_is][out] */ void __RPC_FAR* __RPC_FAR* ppvObject ) override \
{ return TYPE::QueryInterface(riid,ppvObject); } \
IUNKNOWN_DISAMBIG_R(TYPE);
#define TYPE
Definition: StrT.cpp:38
Definition: IUnknown.h:34

◆ IUNKNOWN_DISAMBIG_R

#define IUNKNOWN_DISAMBIG_R (   TYPE)
Value:
STDMETHOD_(ULONG,AddRef)(void) override /* disambiguate.*/ \
{ return TYPE::AddRef(); } \
STDMETHOD_(ULONG, Release)(void) override /* disambiguate.*/\
{ return TYPE::Release(); }

COM IUnknown interface support. identify the true base class for IUnknown. in the case of multiple inheritance of IUnknown based classes.

Note
Do not have multiple inheritance in interface definitions. MultiInherit is for classes not for interfaces. or if you do, don't make IUnknown base ambiguous to resolve in the interface! Leave that for classes.

Typedef Documentation

◆ GUID

typedef struct _GUID GUID

◆ IID

typedef GUID IID

Variable Documentation

◆ IID_IUnknown

__DECL_IMPORT GUID IID_IUnknown
extern