I was looking for a way to add a menu item on right click for special files until I found this article SharpShell
I was able to write my modified shell and to register it using ServerManager.exe.
How can i register my shell in a system when the user installs my program with a setup?
there are two ways. The first is to use regasm to register the server, but that tool must be on the end-users machine. The other is to use a custom action and install the server programatically:
The Server Registration Manager comes with SharpShell and writes all of the appropriate keys to the registry for you.