Тут вот одна мысль посетила — жалко что менеджер InprocServer-ов (DLL с COM-объектами) не поддерживает явную инициализацию и деинициализацию загруженных DLL.
Можно, конечно, выполнять инициализацию/деинициализацию в DllMain. Но в DllMain нельзя запускать и останавливать потоки.
А если бы были явные функции (DllInitialize, DllShutdown), то проблем с потоками не было бы.
Странно что за прошедшие 20 лет в Microsoft такая идея не появилась.
Вроде в Windows 8 они COM достаточно хорошо перетряхнули, а эту вещь не придумали
-- Пользователи не приняли программу. Всех пришлось уничтожить. --