COM笔记-关于HRESULT
来源:互联网 发布:宿迁湖滨新区网络问政 编辑:程序博客网 时间:2024/05/24 06:33
HRESULT
HRESULT(Here's the RESULT)值分成32位值,
HRESULT值中16到30这15个比特位包含的是设备代码。设备代码标识的是可以返回HRESULT返回代码的操作系统部分。由于Windows操作系统是由Microsoft开发的。因此它保留有定义设备代码的权力。
HRESULT值的查找
获取与某个特定HRESULT值相应的错误消息并将其显示出来的方法。以显示标准COM(以及AcitveX)错误消息,可以使用Win32 API中的FormatMessage函数
HRESULT值的使用
注意:
成功的代码有多个,失败的代码也有多个
失败代码可能会发生变化。
1多状态代码
一个函数在各种情况下返回的状态代码通常将包含多个成功代码及多个失败代码。这就是我们为什么要使用SUCCEEDED及FAILED宏的原因。一般不能直接将HRESULT值同某个成功代码(如S_OK)进行比较以决定某个函数是否成功。
2错误可能会发生变化
在编写好客户程序之后,其他人可能会定义新的HRESULT错误代码,客户程序也可能会遇到相应的错误。
用户自己代码的定义
关于定义自己的HRESULT的一般性规则:
1、不要将0x0000及0x01ff范围内的值作为返回代码。这些值是为COM所定义的FACILITY_ITF代码而保留的。只有遵循这一规则,才不致使用户自己定义的代码同COM所定义的代码相混淆。
2、不要传播FACILITY__ITF错误代码。
3、尽可能地使用通用的COM成功及失败代码。
可以使用MAKE_HRESULT宏来定义一个HRESULT值。此宏可以根据所提供的严重级别、设备代码及返回代码生成一个HRESULT值。
MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 100);
MAKE_HRESULT(SEVERITY_SUCCESS,, FACILITY_ITF, 101);
对于自己定义的返回代码的命名,有一个约定 是在其名称前面加上组件或接口的名称。
如:
AIRPLANE_E_LANDINGWITHGEARUP
HELICOPTER_S_ROTORRPMGREEN
- COM笔记-关于HRESULT
- COM笔记-关于HRESULT
- com学习笔记(5)HRESULT,GUID,注册表
- Inside COM读书笔记-----关于HRESULT、GUID、注册表及其它细节
- COM技术内幕--关于HRESULT、GUID、注册表及其他细节
- 关于HRESULT
- COM组件之HRESULT
- COM组件之HRESULT
- COM学习笔记六《COM技术内幕》§6 —— HRESULT、GUID和注册表
- COM中的HRESULT, CLISD,ProgID, DLL注册,COM库函数的知识(COM技术内幕笔记之三)
- COM返回值HRESULT\SCODE
- COM笔记-关于GUID
- COM笔记-关于GUID
- 关于C#操作PPT时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
- 关于C#操作PPT时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
- 关于HRESULT句柄的说明
- 【COM学习】之二、HRESULT,GUID
- HRESULT
- Objective-C数量类型-Objective-C int 整数类型
- COM笔记-关于GUID
- Objective-C数量类型-Objective-C float 浮点类型
- oraclehelper
- TCP/IP详解学习笔记(1)-基本概念
- COM笔记-关于HRESULT
- Objective-C数量类型-Objective-C double 双精度类型
- SWFUplode小节——java(支持Flash 10)
- COM笔记-动态链接
- common error.
- 关于23种设计模式的有趣见解
- Objective-C数量类型-Objective-C char 字符类型
- 依赖注入及AOP简述(四)——“好莱坞原则”和依赖注入框架简介
- swfupload_web文件上传不二选择