Windows桌面应用程序(1-2-3-3rd) COM中的错误代码

为了表示成功或失败,COM方法和函数返回一个HRESULT类型的值。一个HRESULT是一个32位的整数。HRESULT的高位信号成功或失败。零(0)表示成功,1表示失败。

这会产生以下数字范围:

  • 成功代码:0x0-0x7FFFFFFF。
  • 错误代码:0x80000000-0xFFFFFFFF。

少量的COM方法不会返回HRESULT值。例如,AddRefRelease方法返回无符号的长整型值。但是每个返回错误代码的COM方法都会返回一个HRESULT值。

要检查COM方法是否成功,请检查返回的HRESULT的高位。在Windows SDK头提供两个宏使它更简单:在SUCCEEDED宏和FAILED宏。该SUCCEEDED如果宏返回TRUE HRESULT是成功的代码与错误,如果它是一个错误代码。以下示例检查CoInitializeEx是否成功。

HRESULT hr=CoInitializeEx(NULL,COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE);
if(SUCCEEDED(hr)){
    // The function succeeded.
}
else{
    // Handle the error.
}

有时测试反向条件更方便。所述FAILED宏确实的相对SUCCEEDED。它对于错误代码返回TRUE,对于成功代码则返回FALSE。

HRESULT hr=CoInitializeEx(NULL,COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE);
if(FAILED(hr)){
    // Handle the error.
}
else{
    // The function succeeded.
}

在本单元的后面,我们将看看如何构建代码来处理COM错误的一些实用建议。(请参阅COM中的错误处理。)

下一个
在COM中创建一个对象


原文链接:Error Codes in COM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值