Здравствуйте.
Как известно, в ОС Windows существует несколько способов инициализации COM системы:
С помощью функции OleInitialize
С помощью функции CoInitializeEx
В моей программе планируется использовать перетаскивание файлов с помощью интерфейса IDropTarget и DirectShow. Причем DirectShow будет использоваться в нескольких потоках. Следовательно, COM система должна инициализироваться с помощью функции CoInitializeEx с флагом COINIT_MULTITHREADED. Но когда я инициализирую так COM систему функция RegisterDragDrop возвращает ошибку. Она требует, чтобы COM система инициализировалась с помощью функции OleInitialize. Но она инициализирует COM систему только в том потоке, в котором была вызвана.
Есть ли способ инициализации COM системы для нескольких потоках и чтоб функция RegisterDragDrop не возвращала ошибку?
Заранее благодарен
P/S Проект WINAPI+STL пишется в C++ MSVS 2015