2 releases
0.1.1 | Oct 17, 2020 |
---|---|
0.1.0 | Oct 10, 2020 |
#14 in #api-error
295KB
9K
SLoC
Winwrap
Rust-friendly Windows API Wrappers.
Features
- Safe Windows API bindings
- Unsafe raw APIs
- Unsafe raw APIs wrap only the error handling.
- TCHAR and TString support.
- By default, TCHAR is WCHAR. If you want to use ANSI, ansi feature on.
Installation
[dependencies]
winwrap = "0.1.0"
or
[dependencies.winwrap]
version = "0.1.0"
features = ["ansi"] # TCHAR == CHAR, TString == AString
Examples
use winwrap::um::fileapi::*;
use winwrap::winapi::shared::winerror::ERROR_NO_MORE_FILES;
fn enumerate_files_w() {
use winwrap::string::WString;
let path = WString::from(r".\*.*");
let (handle, mut data) = find_first_file_w(&path).unwrap();
loop {
println!("name: {:?}", data.get_file_name().to_string_lossy());
println!("\tflags: {:?}", data.file_attributes);
println!("\talternate file name: {}", data.get_alternate_file_name().to_string_lossy());
println!("----------------------------");
data = match find_next_file_w(&handle) {
Ok(x) => x,
Err(ERROR_NO_MORE_FILES) => {
println!("All files enumerated!");
break;
}
Err(x) => panic!("Unknown Error: {}", x),
};
}
}
fn main(){
enumerate_files_w();
}
License
This software is released under the MIT License, see LICENSE.
Dependencies
~1.3–1.8MB
~40K SLoC