use windows_common_dialog::dialog::choose;
use windows_common_dialog::file_filter::WinFileFilter;
use windows_common_dialog::params::{ChoosingMode, WinChooserDialogParams};
use windows_common_dialog::utils::{self, ShellItemEx, WinRes};
fn main() {
if let Err(err) = utils::with_com(run) {
eprintln!("failed: {err}");
}
}
fn run() -> WinRes<()> {
let params = WinChooserDialogParams {
title: Some("Save the document as".into()),
mode: ChoosingMode::Saving,
suggested_name: Some("untitled.txt".into()),
filters: vec![WinFileFilter::new("Text documents", "*.txt")],
..Default::default()
};
let (items, _) = choose(¶ms)?;
match items.first() {
Some(item) => println!("would save to: {}", item.absolute_parsing_name()),
None => println!("cancelled"),
}
Ok(())
}