Re: IUnknown
Hi Giovanni,
Here is the related part of code, you can see QueryInterface has two forms
of implementation, one is pure virtual function, the other is not. From
traditional COM book, QueryInterface should be a pure virtual function.
Correct me if I am wrong.
So, here is what I mean fuzzy code which makes me confused whether
QueryInterface is pure virtual method or not. :-)
Any ideas?
IUnknown
{
public:
BEGIN_INTERFACE
virtual HRESULT STDMETHODCALLTYPE QueryInterface(
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;
virtual ULONG STDMETHODCALLTYPE AddRef( void) = 0;
virtual ULONG STDMETHODCALLTYPE Release( void) = 0;
template<class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
{
return QueryInterface(__uuidof(Q), (void **)pp);
}
regards,
George
"Giovanni Dicanio" wrote:
"George" <George@discussions.microsoft.com> ha scritto nel messaggio
news:7F33B44D-69F5-40B8-8730-1404D3B92829@microsoft.com...
I am reading Unknwn.h, and the code logics is a little fuzzy. The
QueryInterface, AddRef an Release are all pure virtual methods, right?
Could you please tell us what lines of the header file are you referring to?
Could you please post these lines here?
And what do you mean with "little fuzzy code logics"?
Gi0vanni