使用宏处理错误
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 的严重性字段。 |
已成功 |
测试 SCODE 或 HRESULT 的严重性位;如果严重性为零,则返回 TRUE;如果为 1,则返回 FALSE。 |
FAILED |
测试 SCODE 或 HRESULT 的严重性位;如果严重性为 1,则返回 TRUE;如果为 0,则返回 FALSE。 |
IS_ERROR |
为任何状态值的错误提供通用测试。 |
HRESULT_FROM_WIN32 |
将系统错误代码映射到 HRESULT 值。 |
HRESULT_FROM_NT |
将 NT 状态值映射到 HRESULT 值。 |