IUnknown::QueryInterface
QueryInterface() is used to obtain an interface pointer of an another class from the exiting interface pointer.
Returns a pointer to a specified interface on an object to which a client currently holds an interface pointer. This function must call IUnknown::AddRef on the pointer it returns.
HRESULT QueryInterface(
REFIID iid, //Identifier of the requested interface
void ** ppvObject //Address of output variable that receives the
//interface pointer requested in iid
);
Parameters
- iid - [in] Identifier of the interface being requested.
- ppvObject - [out] Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppvObject contains the requested interface pointer to the object. If the object does not support the interface specified in iid, *ppvObject is set to NULL.
Return Value
- S_OK if the interface is supported, E_NOINTERFACE if not.
QueryInterface source
STDMETHODIMP CMathLib::QueryInterface(REFIID iid, LPVOID* ppvObject)
{
if ( iid == IID_IUnknown) {
*ppvObject = dynamic_cast( this );
} else
if ( iid == IID_IDispatch) {
*ppvObject = dynamic_cast( this );
} else
if ( iid == IID_IMathLib) {
*ppvObject = dynamic_cast( this );
}else {
// It didn't match an interface
*ppvObject = NULL;
return E_NOINTERFACE;
}
return S_OK;
}
About our authors: Team EQA
You have viewed 1 page out of 67. Your COM/DCOM learning is 0.00% complete. Login to check your learning progress.