小弟初学com不久,在读程序时,有一句不解,望各位大侠明示:
[propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in, out] VARIANT *Index, [out, retval] VARIANT *pVal);
实现为
STDMETHODIMP CCategories::get_Item(VARIANT *Index, VARIANT *pVal)
{
CComObject<CCategory> *pCat = new CComObject<CCategory>;
//这里用pCat指针对CCategory的成员变量做一些赋值操作,CCategroy为同一工程的另一接口类
..
IDispatch *pDisp;
pCat->QueryInterface (IID_IDispatch, (void **) &pDisp);
VariantInit(pVal);
pVal->vt = VT_DISPATCH;
pVal->pdispVal = pDisp;
return S_OK;
}
小弟不懂的是,用查找的IID_IDispatch接口客户就能使用新创建对象的所有接口资源了,为什么?