客户端接收组件的错误信息

来源:互联网 发布:大数据需要学java吗 编辑:程序博客网 时间:2024/05/20 23:08
五、客户端接收组件的错误信息
  1、如果使用 API 方式调用组件,接收错误的方法是:
HRESULT hr = spXXX->fun()// 调用组件功能if( FAILED( hr ) )// 如果发生了错误{CComQIPtr < ISupportErrorInfo > spSEI = spXXX;// 组件是否提供了 ISupportErrorInfo 接口?if( spSEI )// 如果支持,那么{hr = spSEI->InterfaceSupportsErrorInfo( IID_Ixxx );// 是否支持 Ixxx 接口的错误处理?if( SUCCEEDED( hr ) ){// 支持,太好了。取出错误信息CComQIPtr < IErrorInfo > spErrInfo;// 声明 IErrorInfo 接口hr = ::GetErrorInfo( 0, &spErrInfo );// 取得接口if( SUCCEEDED( hr ) ){CComBSTR bstrDes;spErrInfo->GetDescription( &bstrDes );// 取得错误描述......// 还可以取得其它的信息}}}}
  2、如果使用 #import 等包装方式调用组件,接收错误的方法是:
try{......// 调用组件功能}catch( _com_error &e ){e.Description();// 取得错误描述信息......// 还可以调用 _com_error 函数取得其它信息}