Реестр
Этот метод прост, поскольку сводится к добавлению некоторых разделов реестра.Недостатком является то, что вы не можете поместить в это какую-либо логику.Вы можете прочитать об этом здесь и здесь простой пример в Delphi.Вы получаете немного больше контроля, если используете DDE для выполнения пунктов меню.Смотрите здесь для примера Delphi.
Расширение оболочки
Этот метод немного сложнее, но вы можете полностью контролировать контекстное меню из кода.Вам нужно будет написать DLL, реализовать IContextMenu (или другие) и зарегистрировать dll в проводнике Windows.Вы можете прочитать об этом здесь .Вы уже упоминали Shell + .