pub use windows_result::{
Error,
HRESULT as HResult,
Result,
};
use windows_sys::Win32::Foundation::{
SetLastError,
WIN32_ERROR,
};
#[inline]
pub fn convert_error(error: WIN32_ERROR) -> Error {
crate::Error::from_hresult(crate::HResult::from_win32(error))
}
pub fn reset_last_error() {
unsafe { SetLastError(0) };
}
#[inline]
pub fn get_last_error() -> Option<Error> {
let error = Error::from_thread();
match error == Error::empty() {
true => None,
false => Some(error),
}
}
pub fn last_error() -> Result<()> {
match get_last_error() {
Some(error) => Err(error),
None => Ok(()),
}
}