Hello,
In a header have:
class CMyClass : public IUnknown
{
public:
CMyClass();
STDMETHOD(QueryInterface)(REFIID riid, void **ppvObject);
STDMETHOD_(ULONG, AddRef)(void);
STDMETHOD_(ULONG, Release)(void);
};
In the corresponding cpp file:
STDMETHODIMP CMyClass::QueryInterface(REFIID riid, void **ppvObject)
{
if(!ppvObject)
return E_POINTER;
if(riid == IID_IUnknown)
{
*ppvObject = static_cast<IUnknown*>(this);
AddRef();
return S_OK;
}
return E_NOINTERFACE;
}
STDMETHODIMP_(ULONG) CMyClass::AddRef(void)
{
return 2;
}
STDMETHODIMP_(ULONG) CMyClass::Release(void)
{
return 1;
}
In the header, trying hitting alt-g on AddRef or Release - nothing happens. QueryInterface works.