COM+ 如何修改返回值
COM+ 从不更改指示失败的 HRESULT 的返回值,例如 E_UNEXPECTED or E_FAIL。 但是,当使用 COM+ 功能的对象返回指示成功的 HRESULT 值(例如,S_OK、 S_FALSE 或 NOERROR)时,COM+ 有时会在返回到调用方之前将 HRESULT 转换为 COM+ 错误代码。
例如,当应用程序在调用 IObjectContext::SetComplete 后返回 S_OK 时,如果对象是未能提交的事务的根,则 HRESULT 将转换为 CONTEXT_E_ABORTED。
当 COM+ 转换 HRESULT 值时,它将清除该方法的所有输出参数。 返回的引用将释放,返回的对象指针的值设置为 NULL。
相关主题