An open API service indexing awesome lists of open source software.

https://github.com/openbytedev/get-last-error

An error wrapper over Win32 API errors.
https://github.com/openbytedev/get-last-error

error win32

Last synced: 10 months ago
JSON representation

An error wrapper over Win32 API errors.

Awesome Lists containing this project

README

          

# get-last-error

[![CI](https://github.com/OpenByteDev/get-last-error/actions/workflows/ci.yml/badge.svg)](https://github.com/OpenByteDev/get-last-error/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/get-last-error.svg)](https://crates.io/crates/get-last-error)
[![Documentation](https://docs.rs/get-last-error/badge.svg)](https://docs.rs/get-last-error)
[![dependency status](https://deps.rs/repo/github/openbytedev/get-last-error/status.svg)](https://deps.rs/repo/github/openbytedev/get-last-error)
[![MIT](https://img.shields.io/crates/l/get-last-error.svg)](https://github.com/OpenByteDev/get-last-error/blob/master/LICENSE)

An error wrapper over Win32 API errors.

## Examples

A `Win32Error` can be constructed from an arbitrary `DWORD`:

```rust
use get_last_error::Win32Error;

let err = Win32Error::new(0);
println!("{}", err); // prints "The operation completed successfully."
```

The `Win32Error::get_last_error` retrieves the last error code for the current thread:

```rust
use get_last_error::Win32Error;
use winapi::um::{winnt::HANDLE, processthreadsapi::OpenProcess};

fn open_process() -> Result {
let result = unsafe { OpenProcess(0, 0, 0) }; // some windows api call
if result.is_null() { // null indicates failure.
Err(Win32Error::get_last_error())
} else {
Ok(result)
}
}
```

## License
Licensed under MIT license ([LICENSE](https://github.com/OpenByteDev/get-last-error/blob/master/LICENSE) or http://opensource.org/licenses/MIT)