下面是一个创建 COM 对象的代码示例:
CComPtr<IBaseFilter> pFilter;
auto hr = CoCreateInstance(CLSID_DMOWrapperFilter, NULL,
CLSCTX_INPROC_SERVER, IID_IBaseFilter, reinterpret_cast<void**>(&pFilter));
我在某处看到检查是否CoCreateInstance()
成功应该如下所示:
if (SUCCEEDED(hr) && pFilter != nullptr)
{
// code goes here
}
如果我只检查hr
呢?还不够吗?我也应该检查一下filter != nullptr
吗?
//would this be enough?
if (SUCCEEDED(hr))
{
// code goes here
}
这个问题还涉及其他 COM 方法,例如QueryInterface()
.