Service Object Error Handling
When an error occurs in a service object, the return value for the call IDispatch::Invoke should be DISP_E_EXCEPTION, and the pExceptInfo parameter pointer to an EXCEPTINFO structure in the should be filled in.
Specifically, the bstrSource, and bstrDescription members of the EXCEPTINFO structure are used by the Device Host with UPnP technology to create a UPnP Fault response; bstrSource is the error code and bstrDescription is the error description.