Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Инициализация СОМ-объекта в потоке [Win2k]


Magellan ©   (2002-11-11 12:29:00) 

Добрый день! Подскажите пожалуйста , как работать с COM-объектом в потоке. При вызове Create выдается следующая ошибка: raised exception class EOleSysError with message "CallInitialize has not been called" . При вызове этой функции не в потоковом модуле все работало.


Magellan   (2002-11-11 14:32:00) [1]

ОГРОМНОЕ СПАСИБО ВАМ! ВСЕ ЗАРАБОТАЛО.


neXt   (2002-11-11 14:30:00) [2]

надо заюзать ActiveX.pas


VaS   (2002-11-11 14:17:00) [3]

Search->BrowseSymbol->type "coinitialize"->press <enter>


Magellan   (2002-11-11 14:14:00) [4]

Теперь пишет CoInitialize - undeclared identifier. Как его объявлять или какой модуль прописывать в Uses?


VaS   (2002-11-11 14:11:00) [5]

В начале метода Execute() пишем CoInitialize(nil), в конце - CoUninitialize(). Если к тому же нужно обрабатывать вызовы COM (например, callback через IConnectionPoint), для объектов, созданных в этой нитке, то нужно в цикле выбирать windows-сообщения (см. MsgWaitForMultipleObject(), GetMessage(), DispatchMessage()).


Zelius   (2002-11-11 14:01:00) [6]

прям так и вызываешь CoInitialize(...)


Magellan   (2002-11-11 13:54:00) [7]

Подъем темы. Мастера , помогите плз, горю


Magellan   (2002-11-11 12:56:00) [8]

А как это сделать?


Marcus   (2002-11-11 12:37:00) [9]

CoInitialize нужно вызывать вначале каждого потока, в котором есть другие вызовы COM. Так уж этот COM устроен...


Наверх

Титульная страница Поиск, карта сайта Написать письмо