Como posso criar meus manipuladores de contexto de shell personalizados para o Windows?

Problema

Idioma: C # 2.0 ou posterior

Eu gostaria de registrar manipuladores de contexto para criar menus quando o usuário clica com o botão direito em certos arquivos (no meu caso * .eic). Qual é o procedimento para registrar, cancelar o registro (limpar) e manipular eventos (cliques) desses menus?

Eu tenho uma pista de que é algo a ver com o registro do Windows, mas considerando o quanto de material existe em .net, eu não ficaria surpreso se existem métodos úteis para fazer isso de forma limpa e fácil.

Trechos de código, referências de sites, comentários são todos bons. Por favor, jogue-os para mim.

Atualizar

Obviamente, há um pequeno problema ao criar menus de contexto em linguagens gerenciadas, como vários usuários comentaram. Existe alguma outra maneira preferida de obter o mesmo comportamento ou devo dedicar algum tempo procurando essas soluções alternativas? Eu não me importo de fazer isso, eu estou feliz que as pessoas tenham se esforçado para tornar isso possível - mas eu ainda quero saber se existe uma maneira "correta / limpa" de conseguir isso.

questionAnswers(7)

yourAnswerToTheQuestion