The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at _com_error::_com_error.

Microsoft Specific**

Constructs a _com_error object.

   HRESULT hr,  
   IErrorInfo* perrinfo = NULL,  
   bool fAddRef=false  
) throw( );  
   const _com_error& that   
) throw( );  


HRESULT information.

IErrorInfo object.

bool fAddRef=false
Causes the constructor to call AddRef on a non-null IErrorInfo interface. This provides for correct reference counting in the common case where ownership of the interface is passed into the _com_error object, such as:

throw _com_error(hr, perrinfo);  

If you do not want your code to transfer ownership to the _com_error object, and the AddRef is required to offset the Release in the _com_error destructor, construct the object as follows:

_com_error err(hr, perrinfo, true);  

An existing _com_error object.

The first constructor creates a new object given an HRESULT and optional IErrorInfo object. The second creates a copy of an existing _com_error object.

END Microsoft Specific

_com_error Class