ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

关于QueryInterface的一个小理解

2026/8/14 5:41:42 拓冰建站 浏览量
关于QueryInterface的一个小理解

QueryInterface按照字面上的意思是查询获得接口,用时我们可以把他当做C#中的as 或 C++中的dynamic_cast这样用即可(不知道正不正确,请指教)。

我们可以为QueryInterface写一个辅助函数:

	template<typename T>static CComPtr<T> As(IDispatch* pDisp){CComPtr<T> pAs = NULL;pDisp->QueryInterface<T>(&pAs);return pAs;}

使用时:

IDispatch* pDisp = ...;CComPtr<IB> b = As<IB>(pDisp);//IB为目标类型
if (b)//像dynamic_cast那样要检查指针是否为空
{//这里就可以使用IB对象了
}