Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
ВнизКоннект к запущенному СОМ-обьекту Найти похожие ветки
← →
---- (2002-11-19 18:51) [0]Есть СОМ-обьект TMyCom
IMy = interface
...
end;
TMyCom = class(TComObject,IMy)
...
end;
var
i1, i2: IMy;
begin
i1:=CreateComObject(const_guid) as IMy;//создали экземпляр №1
end;
ВОПРОС:
как можно сделать следующее:
if Обьект(const_guid)_уже_создан then
i2:=ДатьОбьект(const_guid);
else
i2:=CreateComObject(const_guid) as IMy;
← →
KA_ (2002-11-19 19:03) [1]Обьект(const_guid)_уже_создан - это GetActiveOleObject.
← →
KA_ (2002-11-19 19:05) [2]Ну да, заодно это и ДатьОбьект(const_guid) :)
← →
---- (2002-11-20 12:41) [3]GetActiveOleObject - не работает....эта функция работает, если IMy унаследован от IDispatch....а если от IUnknown, то это не прокатывает.
Посему, вопрос остается открытым!!
← →
KA_ (2002-11-21 09:22) [4]Объект надо сначала зарегистрировать! Посмотри хелп.
← →
---- (2002-11-21 12:08) [5]Я обьект зарегистрировал. Если б я этого не сделал, то CreateComObject не работал бы....а оно работает.
Мне нужно вот что сделать:
1. я создаю СОМ-обьект CreateComObject(AGUID)
2. работаю с ним.
3. потом мне нужно проверить, существует ли запущенный обьект с GUID"ом AGUID. Если существует, то не создавать, а просто получить ссылку на него и работать с ним....Если не существует, то идем на пункт 1.
CetActiveOleObject - НЕ работает!!!!!
← →
asmith (2002-11-21 12:49) [6]GetActiveOleObject будет работать, если только объект зарегистрируется в так называемой running object table (ROT), для этой цели используется интерфейс IRunningObjectTable. Подробности ищи в MSDN, Platform SDK, COM
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c