【发布时间】:2012-01-24 05:47:48
【问题描述】:
我想知道在 COM 接口上调用 Addref 是否是 COM 库的标准做法,这是从函数返回的。例如:
IXMLDOMElement* domElement = NULL;
document_->get_documentElement(&domElement); // does get_documentElement() call Addref on domElement?
// ...
// do something with domElement
// ..
domElement.Release(); // correct?
// (btw. member variable document_ is of type CComPtr<IXMLDOMDocument2>
或使用智能指针:
CComPtr<IXMLDOMElement> domElement;
document_->get_documentElement(&domElement);
顺便说一句。我发现在“Windows media 9 series”的 MSXML 文档中,它说 Addref 被称为:http://msdn.microsoft.com/en-us/library/ms751196(v=vs.85).aspx
但在官方文档中没有提及它: http://msdn.microsoft.com/en-us/library/ms759095(v=vs.85).aspx
【问题讨论】: