【发布时间】:2017-09-25 14:48:55
【问题描述】:
(1) 如果IMoniker::BindToObject 的结果是S_OK,那么返回的指针是有效的。但 PVS-Studio 将其标记为 V595。为什么?
(2) 如果QueryInterface 成功,则返回的指针有效。但 PVS-Studio 将其标记为 V595。为什么?
HRESULT sc;
if (featureValidateSource)
{
sc = lpmk->BindToObject(lpbc, NULL, IID_IOleObject, (void**)&lpObject);
if (FAILED(sc))
{
lpbc->Release();
lpmk->Release();
if (lpObject) lpObject->Release();
return sc;
}
lpObject->GetUserClassID(&clsid); // (1) <<< V595
}
LPOLELINK lpOleLink;
if (SUCCEEDED(m_pObject->QueryInterface(IID_IOleLink,(void**)&lpOleLink)))
{
sc = lpOleLink->SetSourceMoniker(lpmk, clsid); // (2) <<< V595
}
...
if (lpObject != NULL) // (1) <<< V595
{
lpObject->Update();
lpObject->Release();
}
if (lpOleLink) // (2) <<< V595
{
lpOleLink->Release();
}
【问题讨论】:
标签: pvs-studio