# bluepointlilac/contextmenumanager architecture

> Architecture diagram of the GitHub repository bluepointlilac/contextmenumanager, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bluepointlilac/contextmenumanager
- Repository: https://github.com/bluepointlilac/contextmenumanager
- Video tour (about a minute): https://gitdiagram.com/bluepointlilac/contextmenumanager/video

## Overview

ContextMenuManager is a Windows desktop utility for inspecting and managing Explorer context-menu entries. The main workflow is user navigation in the main form → loading a menu category or context → editing individual entries → changing registry values or related files, with optional navigation to their locations. The README also documents specialized areas such as Open With, Send To, New, IE, WinX, custom commands, and menu analysis. MainForm, ShellList, ShellItem, and startup wiring are supported by sampled source; other capability paths come from the file tree, so their internal call relationships are shown conservatively.

Main entry points: [`ContextMenuManager/MainForm.cs`](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/MainForm.cs) (Main Form), [`ContextMenuManager/Controls/ShellList.cs`](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellList.cs) (Shell Browser), [`ContextMenuManager/Program.cs`](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Program.cs) (Startup), [`ContextMenuManager/Controls/ShellItem.cs`](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellItem.cs) (Shell Entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Application UI"]
  node_main["Main Form<br/>[MainForm.cs]"]
end

subgraph group_items["Menu Management"]
  node_shell_list["Shell Browser<br/>[ShellList.cs]"]
  node_shell_item["Shell Entry<br/>[ShellItem.cs]"]
  node_enhance["Enhanced Menus"]
  node_detailed["Detailed Editor"]
  node_guid_block["GUID Blocking<br/>[GuidBlockedList.cs]"]
  node_custom_dialog["Custom Entry Dialogs<br/>[NewItemForm.cs]"]
  node_analysis["Menu Analysis<br/>[ShellList.cs]"]
end

subgraph group_special["Specialized Menus"]
  node_new_items["New Menu<br/>[ShellNewList.cs]"]
  node_sendto["Send To<br/>[SendToList.cs]"]
  node_openwith["Open With<br/>[OpenWithList.cs]"]
  node_ie["IE Menu<br/>[IEList.cs]"]
  node_winx["WinX Menu<br/>[WinXList.cs]"]
end

subgraph group_support["Runtime Support"]
  node_program["Startup<br/>[Program.cs]"]
  node_config["App Configuration<br/>[AppConfig.cs]"]
  node_language["Language Dictionaries<br/>[XmlDicHelper.cs]"]
  node_updater["Update Check<br/>[Updater.cs]"]
end

node_user(("User"))
node_registry[("Windows Registry")]
node_explorer["Windows Explorer"]

node_user -->|"operates"| node_main
node_program -->|"launches"| node_main
node_program -->|"reloads dictionaries"| node_language
node_program -->|"checks updates"| node_updater
node_main -->|"loads category"| node_shell_list
node_main -->|"loads category"| node_sendto
node_main -->|"loads category"| node_openwith
node_main -->|"loads category"| node_winx
node_main -->|"shows area"| node_ie
node_main -->|"shows area"| node_enhance
node_main -->|"shows area"| node_detailed
node_main -->|"shows area"| node_guid_block
node_shell_list -->|"creates entries"| node_shell_item
node_shell_list -->|"reads menu keys"| node_registry
node_shell_item -->|"edits menu keys"| node_registry
node_shell_item -->|"locates targets"| node_explorer
node_main -->|"opens creation UI"| node_custom_dialog
node_shell_list -->|"loads analysis scene"| node_analysis
node_main -->|"uses settings"| node_config
node_main -->|"shows category"| node_new_items

click node_program "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Program.cs"
click node_main "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/MainForm.cs"
click node_shell_list "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellList.cs"
click node_shell_item "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellItem.cs"
click node_new_items "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellNewList.cs"
click node_sendto "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/SendToList.cs"
click node_openwith "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/OpenWithList.cs"
click node_ie "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/IEList.cs"
click node_winx "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/WinXList.cs"
click node_enhance "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/EnhanceMenusList.cs"
click node_detailed "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/DetailedEditList.cs"
click node_guid_block "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/GuidBlockedList.cs"
click node_custom_dialog "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/NewItemForm.cs"
click node_analysis "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellList.cs"
click node_config "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/AppConfig.cs"
click node_language "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/XmlDicHelper.cs"
click node_updater "https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/Updater.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_user toneBlue
class node_shell_list,node_shell_item,node_enhance,node_detailed,node_guid_block,node_custom_dialog,node_analysis,node_registry toneAmber
class node_new_items,node_sendto,node_openwith,node_ie,node_winx toneMint
class node_program,node_config,node_language,node_updater toneRose
class node_explorer toneIndigo
```

## Components

### Application UI

- [Main Form](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/MainForm.cs): `ContextMenuManager/MainForm.cs`

### Menu Management

- [Shell Browser](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellList.cs): `ContextMenuManager/Controls/ShellList.cs`
- [Shell Entry](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellItem.cs): `ContextMenuManager/Controls/ShellItem.cs`
- [Enhanced Menus](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/EnhanceMenusList.cs): `ContextMenuManager/Controls/EnhanceMenusList.cs`
- [Detailed Editor](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/DetailedEditList.cs): `ContextMenuManager/Controls/DetailedEditList.cs`
- [GUID Blocking](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/GuidBlockedList.cs): `ContextMenuManager/Controls/GuidBlockedList.cs`
- [Custom Entry Dialogs](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/NewItemForm.cs): `ContextMenuManager/Controls/NewItemForm.cs`
- [Menu Analysis](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellList.cs): `ContextMenuManager/Controls/ShellList.cs`

### Specialized Menus

- [New Menu](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/ShellNewList.cs): `ContextMenuManager/Controls/ShellNewList.cs`
- [Send To](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/SendToList.cs): `ContextMenuManager/Controls/SendToList.cs`
- [Open With](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/OpenWithList.cs): `ContextMenuManager/Controls/OpenWithList.cs`
- [IE Menu](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/IEList.cs): `ContextMenuManager/Controls/IEList.cs`
- [WinX Menu](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Controls/WinXList.cs): `ContextMenuManager/Controls/WinXList.cs`

### Runtime Support

- [Startup](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Program.cs): `ContextMenuManager/Program.cs`
- [App Configuration](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/AppConfig.cs): `ContextMenuManager/Methods/AppConfig.cs`
- [Language Dictionaries](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/XmlDicHelper.cs): `ContextMenuManager/Methods/XmlDicHelper.cs`
- [Update Check](https://github.com/bluepointlilac/contextmenumanager/blob/master/ContextMenuManager/Methods/Updater.cs): `ContextMenuManager/Methods/Updater.cs`

### Other components

- **User**
- **Windows Registry**
- **Windows Explorer**

## Connections

- User → Main Form: operates
- Startup → Main Form: launches
- Startup → Language Dictionaries: reloads dictionaries
- Startup → Update Check: checks updates
- Main Form → Shell Browser: loads category
- Main Form → Send To: loads category
- Main Form → Open With: loads category
- Main Form → WinX Menu: loads category
- Main Form → IE Menu: shows area
- Main Form → Enhanced Menus: shows area
- Main Form → Detailed Editor: shows area
- Main Form → GUID Blocking: shows area
- Shell Browser → Shell Entry: creates entries
- Shell Browser → Windows Registry: reads menu keys
- Shell Entry → Windows Registry: edits menu keys
- Shell Entry → Windows Explorer: locates targets
- Main Form → Custom Entry Dialogs: opens creation UI
- Shell Browser → Menu Analysis: loads analysis scene
- Main Form → App Configuration: uses settings
- Main Form → New Menu: shows category
