How COM+ Modifies Return Values

COM+ never changes the return value of an HRESULT that indicates failure, such as E_UNEXPECTED or E_FAIL. However, when an object using COM+ functionality returns an HRESULT value indicating success (such as S_OK, S_FALSE, or NOERROR), COM+ sometimes converts the HRESULT into a COM+ error code before it returns to the caller.

For example, when an application returns S_OK after calling IObjectContext::SetComplete, if the object is the root of a transaction that fails to commit, the HRESULT is converted to CONTEXT_E_ABORTED.

When COM+ converts an HRESULT value, it clears all of the method's output parameters. Returned references are released, and the values of the returned object pointers are set to NULL.

Fault Isolation and Failfast Policy

Finding the Source of an Error

Interpreting Error Codes

Strategies for Handling Errors in COM+

Troubleshooting