Текущий архив: 2002.11.21;
Скачать: CL | DM;
ВнизИнициализация СОМ-объекта в потоке Найти похожие ветки
← →
Magellan (2002-11-11 12:29) [0]Добрый день! Подскажите пожалуйста , как работать с COM-объектом в потоке. При вызове Create выдается следующая ошибка: raised exception class EOleSysError with message "CallInitialize has not been called" . При вызове этой функции не в потоковом модуле все работало.
← →
Marcus (2002-11-11 12:37) [1]CoInitialize нужно вызывать вначале каждого потока, в котором есть другие вызовы COM. Так уж этот COM устроен...
← →
Magellan (2002-11-11 12:56) [2]А как это сделать?
← →
Magellan (2002-11-11 13:54) [3]Подъем темы. Мастера , помогите плз, горю
← →
Zelius (2002-11-11 14:01) [4]прям так и вызываешь CoInitialize(...)
← →
VaS (2002-11-11 14:11) [5]В начале метода Execute() пишем CoInitialize(nil), в конце - CoUninitialize(). Если к тому же нужно обрабатывать вызовы COM (например, callback через IConnectionPoint), для объектов, созданных в этой нитке, то нужно в цикле выбирать windows-сообщения (см. MsgWaitForMultipleObject(), GetMessage(), DispatchMessage()).
← →
Magellan (2002-11-11 14:14) [6]Теперь пишет CoInitialize - undeclared identifier. Как его объявлять или какой модуль прописывать в Uses?
← →
VaS (2002-11-11 14:17) [7]Search->BrowseSymbol->type "coinitialize"->press <enter>
← →
neXt (2002-11-11 14:30) [8]надо заюзать ActiveX.pas
← →
Magellan (2002-11-11 14:32) [9]ОГРОМНОЕ СПАСИБО ВАМ! ВСЕ ЗАРАБОТАЛО.
Страницы: 1 вся ветка
Текущий архив: 2002.11.21;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c