Skip to main content

extended/
extended.rs

1use win_context_menu::{init_com, ContextMenu, ShellItems};
2
3fn main() -> win_context_menu::Result<()> {
4    let _com = init_com()?;
5
6    let path = std::env::args()
7        .nth(1)
8        .unwrap_or_else(|| r"C:\Windows\notepad.exe".to_string());
9
10    println!("Showing extended context menu (Shift+right-click) for: {}", path);
11
12    let items = ShellItems::from_path(&path)?;
13    let menu = ContextMenu::new(items)?.extended(true);
14
15    match menu.show()? {
16        Some(selected) => {
17            println!(
18                "Selected: {} (verb: {:?})",
19                selected.menu_item().label,
20                selected.menu_item().command_string
21            );
22            selected.execute()?;
23        }
24        None => println!("No item selected."),
25    }
26
27    Ok(())
28}