Urk. Я бы порекомендовал спросить на microsoft.public.vc.atl , так как, я думаю, вы найдете там больше экспертов. Я думаю (хотя я не эксперт) проблема связана не с COM +, а с проблемой зарегистрированных прокси / заглушек. (Другими словами, даже если вы написали свой собственный COM-клиент для доступа к компоненту вне процесса, вы, вероятно, столкнетесь с той же проблемой). Если у вас есть стандартные интерфейсы, совместимые с Automation, то Windows знает, как просто упорядочить ваши объекты. хорошо. Но в остальном это смущает.
Без библиотеки типов вам нужно либо зарегистрировать прокси / заглушки, либо реализовать IMarshal самостоятельно для обработки пользовательского маршалинга. (или есть еще кое-что «маршалинг обработчика», которого я не понимаю)
Ваш комментарий о том, почему у вас нет библиотеки типов (реализует интерфейс, уже определенный Microsoft, но у которого нет библиотеки типов), поднимает со мной красный флаг. Можете ли вы предоставить более подробную информацию? Если это что-то в .DLL или .EXE, но информация о типе находится внутри самой библиотеки (а не внешнего файла .TLB), вероятно, возможно извлечь нужную информацию, чтобы все работало, я просто не знаком с процесс.
(Кстати, я оставил программирование на ATL / COM в пользу Java, поэтому, хотя я могу сообщить вам, что я помню в прошлом, я не использую инструменты сейчас, и это будет трудно для меня чтобы вернуться в них, чтобы предоставить больше помощи. Но люди на microsoft.public.vc.atl довольно умны.)