【发布时间】:2013-09-30 13:53:35
【问题描述】:
这是一个创建 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()。
【问题讨论】:
标签: c++ com atl hresult queryinterface