Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

ActiveX & Thread   Найти похожие ветки 

 
oleg_art ©   (2003-04-22 12:46) [0]

Как правильно работать с ActiveX в потоке ? Дело в том, что
не используя поток он работает ! Возможно, необходимо выполнить какую-то инициализацию (в книге Елмановой Н "Delphi 6 и технология COM" ничего по этому поводу не сказано).
Заранее thanks.


 
Digitman ©   (2003-04-22 13:17) [1]

поточная ф-ция, работающая с ActiveX, должна при старте вызвать CoInitialize(nil), а финишируя - CoUnInitialize() (безусловно)


 
oleg_art ©   (2003-04-22 13:24) [2]

2 DigitMan
Я тоже так думал. Но эти функции работают только для внепроцессорных exe - COM-ов (так сказано у Елмановой и проверено на практике). ActiveX - он внутрипроцессорный.
Может, кто знает. Подскажите !!!


 
Digitman ©   (2003-04-22 13:30) [3]

The CoInitialize function initializes the Component Object Model(COM) library. You must initialize the library before you can call its functions. Applications must call CoInitialize before they make any other COM library calls with two exceptions: the CoGetMalloc function, and memory allocation calls.

HRESULT CoInitialize(

LPVOID pvReserved //Reserved, must be NULL
);
Parameter

pvReserved

In 32-bit OLE, this parameter must be NULL. The 32-bit version of OLE does not support applications replacing OLE"s allocator and if the parameter is not NULL, CoInitialize returns E_INVALIDARG.

Return Values

S_OK

Indicates the library was initialized successfully.

S_FALSE

Indicates that the library is already initialized or that it could not release default allocator.

E_OUTOFMEMORY

Indicates that it was unable to initialize because the system is out of memory.

E_INVALIDARG

Indicates the argument is invalid.

E_UNEXPECTED

Indicates an unexpected error occurred.

Comments

You need to call this before you call any of the OLE library functions unless you call the OleInitialize function, which calls CoInitialize internally.
Typically, CoInitialize is called only once in the process that uses the OLE library. There can be multiple calls, but subsequent calls return S_FALSE. To close the library gracefully, each successful call to CoInitialize
, including those that return S_FALSE, must be balanced by a corresponding call to the CoUninitialize function.


Это - фрагмент хэлпа.

ну и где здесь видно хотя бы слово об InProc/OutOfProc-фабриках/серверах ?



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-12624
paulsin
2003-04-15 15:29
2003.05.05
SQL


9-12598
OlegL
2002-11-28 16:05
2003.05.05
Как отрезать кусок изображения


11-12677
Alexei Dragoner
2002-07-19 19:53
2003.05.05
Как быть с Timer ом?


3-12604
K_AV
2003-04-15 11:06
2003.05.05
Как найти в базе


6-12847
AlexRush
2003-03-10 17:12
2003.05.05
Сетевой адаптер - отправка данных в сеть