【发布时间】:2010-11-28 10:10:12
【问题描述】:
IUnknown::QueryInterface() 被传递一个 void** 参数,表示将检索到的接口放置到的地址。
STDMETHOD QueryInterface(/* [in] */ REFIID riid, /* [iid_is][out] */ void** ppvObject)
QueryInterface() 的实现应该检查这个指针是否为空(然后立即返回 E_POINTER)还是直接写在那里?
我见过很多与 COM 相关的代码,几乎所有地方都没有执行检查。假设有人当然可以将空指针作为这个参数传递,但是真的需要这样的检查吗?
【问题讨论】:
标签: windows com com-interop iunknown