У меня был компонент, написанный на C++ с использованием WinAPI. Я сделал для него COM wrapper на ATL, т.е. внутренности оставил те же. Тестовое приложение написал на VB6.
Проблема в том, что при использовании apartment threading модели не получается посылать COM events из внутренних потоков, т.е. вылетает exception. Зато скрытое окно работает отлично. Проявляется это только в тестовом приложении на VB6, для С++ приложений таких проблем нет.
При использовании free threading модели с COM events проблем нет, но скрытое окно не получает сообщений в WndProc.