使用宏处理错误

COM 定义了许多宏,这些宏使使用 HRESULT 值变得更容易。

下表介绍了错误处理宏。

说明
MAKE_HRESULT
返回一个 HRESULT,给定构成 HRESULT 的严重性位、设施代码和错误代码。
注意:调用 MAKE_HRESULT 进行 S_OK 验证会产生性能损失。 不应定期使用 MAKE_HRESULT 来获得成功的结果。
MAKE_SCODE
返回一个 SCODE,给定构成 SCODE 的严重性位、设施代码和错误代码。
HRESULT_CODE
提取 HRESULT 的错误代码部分。
HRESULT_FACILITY
提取 HRESULT 的设施代码。
HRESULT_SEVERITY
提取 HRESULT 的严重性位。
SCODE_CODE
提取 SCODE 的错误代码部分。
SCODE_FACILITY
提取 SCODE 的设施代码。
SCODE_SEVERITY
提取 SCODE 的严重性字段。
已成功
测试 SCODEHRESULT 的严重性位;如果严重性为零,则返回 TRUE;如果为 1,则返回 FALSE
FAILED
测试 SCODEHRESULT 的严重性位;如果严重性为 1,则返回 TRUE;如果为 0,则返回 FALSE
IS_ERROR
为任何状态值的错误提供通用测试。
HRESULT_FROM_WIN32
系统错误代码映射到 HRESULT 值。
HRESULT_FROM_NT
将 NT 状态值映射到 HRESULT 值。

COM 中的错误处理