Мне было интересно, стандартная практика в библиотеках COM вызывает вызов Addref на COM-интерфейсе, который возвращается из функции. Например:MSXML get_documentElement() & возвращающие указатели на 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);
Btw. Я обнаружил, что в документации по MSXML для «СМИ для Windows 9 серии» он говорит, что 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