Ваш обработчик IContextMenu::QueryContextMenu
может применить любую логику, которую вы пожелаете, чтобы определить, следует ли отображать / скрывать элемент меню, и, если отображается, включен он или нет. Однако обратите внимание, что в общем случае расширения оболочки не должны записываться в управляемом коде из-за проблем с внедрением CLR.