Один из вариантов, если вам нужен COM-компонент вне процесса, - разместить DLL в COM + через обслуживаемые компоненты . Это поддерживает только dll, но вы могли бы написать исполняемый файл оболочки (для автономного использования), который просто обращается к dll.
Не так просто, как VB, но работает.
Я помню, что кто-то показывал мне более прямой путь (без COM +), но я не могу на всю жизнь вспомнить, что это было ...