Crates.io | windows-result |
lib.rs | windows-result |
version | 0.4.0 |
created_at | 2024-02-02 16:47:12.691453+00 |
updated_at | 2025-09-04 20:21:47.695688+00 |
description | Windows error handling |
homepage | |
repository | https://github.com/microsoft/windows-rs |
max_upload_size | |
id | 1124556 |
size | 43,575 |
The windows-result crate provides efficient Windows error handling and propagation with support for Win32, COM, and WinRT APIs.
Start by adding the following to your Cargo.toml file:
[dependencies.windows-result]
version = "0.4"
Use the HRESULT
, Error
, and specialized Result
types as needed:
use windows_result::*;
const S_OK: HRESULT = HRESULT(0);
const ERROR_CANCELLED: u32 = 1223;
const E_CANCELLED: HRESULT = HRESULT::from_win32(ERROR_CANCELLED);
fn main() -> Result<()> {
S_OK.ok()?;
let e = Error::new(E_CANCELLED, "test message");
assert_eq!(e.code(), E_CANCELLED);
assert_eq!(e.message(), "test message");
Ok(())
}