Вот как некоторые приложения Windows решают эту проблему:
Если приложение виджета должно находиться в своем собственном EXE-файле, то вы можете использовать вложение объекта документа OLE (я думаю, что это правильный термин). Это та же технология, которая используется для встраивания живого документа Excel в документ Word. По сути, WMF-подобные данные используются во всех процессах для визуализации пользовательского интерфейса. Это требует тонны работы в программах хоста и виджетов , если только фреймворки, над которыми вы работаете, поддерживают это автоматически. MFC отлично поработали с этим ... (мужик, я только что сделал комплимент MFC ??)
Лучшим решением было бы использование некоторого типа внутрипроцессного решения. Пусть все виджеты будут DLL. Вот как работает ActiveX. Если виджетам не хватало процесса, разделите рендеринг и внепроцессный процесс на 2 части. EXE-файл, выполняющий ненужные вещи и выполняющий рендеринг локально в процессах хостинга. Используйте какой-нибудь тип IPC, чтобы склеить их.
Я подозреваю, что "ограничения, которые вы не можете контролировать", сделают практически любую "нормальную" реализацию невозможной ...