COM interface properties
Defining COM interface
The following code declares a C++ class that, when instantiated, implements a COM interface called IMyComInterface
:
class CIMyComInterface {
//For C++ we usually add
//a 'C' in front of the
//interface name
virtual HRESULT __stdcall QueryInterface
(const IID& iid, void **ppv);
virtual unsigned long __stdcall AddRef();
virtual unsigned long __stdcall Release();
virtual HRESULT __stdcall Fx1(CHAR *buf);
virtual HRESULT __stdcall Fx2();
};
When a pointer to this class is passed to a COM client, the client can't see any part of the object other than the vtable
.
Data and nonvirtual member functions are not visible or accessible.