winapi-easy 0.3.0

A safe interface to various winapi functionality
Documentation
use std::io;

use winapi_easy::ui::Rectangle;
use winapi_easy::ui::window::{
    WindowHandle,
    WindowShowState,
};

#[derive(Debug)]
#[expect(dead_code)]
struct WindowInfo {
    caption: String,
    class_name: String,
    show_state: WindowShowState,
    restored_position: Rectangle,
}

fn main() -> io::Result<()> {
    WindowHandle::get_toplevel_windows()?
        .into_iter()
        .filter(|window| window.is_visible())
        .map(|window| {
            let placement = window.get_placement()?;
            Ok(WindowInfo {
                caption: window.get_caption_text(),
                class_name: window.get_class_name()?,
                show_state: placement.get_show_state().unwrap(),
                restored_position: placement.get_normal_position(),
            })
        })
        .try_for_each(|info: io::Result<WindowInfo>| -> io::Result<()> {
            println!("{:#?}", info?);
            Ok(())
        })?;
    Ok(())
}