Проблема с инициализацией COM
От: Melamed Россия  
Дата: 02.11.22 09:34
Оценка:
Здравствуйте.

Как известно, в ОС 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.