您的位置:首页 > 其它

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

2012-04-18 15:30 218 查看
五、客户端接收组件的错误信息

  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 函数取得其它信息
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐