Я нашел отличную статью Code Project, которая очень красиво объединяет все в один класс!
Контекстное меню оболочки Shell
Это так же просто, как следующий фрагмент кода:
// Sample code
ShellContextMenu ctxMnu = new ShellContextMenu();
FileInfo[] arrFI = new FileInfo[1];
arrFI[0] = new FileInfo(this.treeMain.SelectedNode.Tag.ToString());
ctxMnu.ShowContextMenu(arrFI, this.PointToScreen(new Point(e.X, e.Y)));
Единственная утомительная вещь - это то, что он принимает либо массив FileInfo [], либо массив DirectoryInfo [], хотя было ОЧЕНЬ легко изменить источник так, чтобы он занимал массив FileSystemInfo []