5 unstable releases

0.2.0 Jul 3, 2024
0.1.2 Jun 7, 2024
0.1.1 Apr 12, 2024
0.1.0 Feb 22, 2024
0.0.0 Feb 2, 2024

#165 in Windows APIs

Download history 124413/week @ 2024-07-31 146713/week @ 2024-08-07 169060/week @ 2024-08-14 325488/week @ 2024-08-21 318904/week @ 2024-08-28 381903/week @ 2024-09-04 356625/week @ 2024-09-11 384851/week @ 2024-09-18 434463/week @ 2024-09-25 467364/week @ 2024-10-02 458408/week @ 2024-10-09 502092/week @ 2024-10-16 484066/week @ 2024-10-23 553087/week @ 2024-10-30 618861/week @ 2024-11-06 664263/week @ 2024-11-13

2,418,123 downloads per month
Used in 6,767 crates (9 directly)

MIT/Apache

31KB
642 lines

Windows error handling

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.2"

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(())
}

lib.rs:

Learn more about Rust for Windows here: https://github.com/microsoft/windows-rs

Dependencies

~0–4.5MB