COM+ 如何修改傳回值
COM+ 絕不會變更指出失敗的 HRESULT 傳回值,例如E_UNEXPECTED或E_FAIL。 不過,當使用 COM+ 功能的物件傳回 HRESULT 值,指出成功時(例如S_OK、S_FALSE或 NOERROR),COM+ 有時會先將 HRESULT 轉換成 COM+ 錯誤碼,然後再返回呼叫端。
例如,當應用程式在呼叫 IObjectContext::SetComplete 之後傳回S_OK時,如果對像是無法認可之交易的根目錄,則 HRESULT 會轉換成CONTEXT_E_ABORTED。
當 COM+ 轉換 HRESULT 值時,它會清除所有方法的輸出參數。 傳回的參考會釋放,且傳回的物件指標值會設定為 NULL。
相關主題