Re: COM-умирает раньше времени
От: Аноним  
Дата: 26.07.02 06:59
Оценка:
Здравствуйте LexusR, Вы писали:

LR>// создание промежуточной переменной типа IUnknown

LR>// спасает IChildCom от преждевременной кончины
LR>// ВОПРОС ЗНАТОКАМ — ЧТО ТАК И НУЖНО ????
LR>// ИЛИ ЕСТЬ БОЛЕЕ ЕСТЕСТВЕННЫЙ СПОСОБ
LR>// ЗАРАНЕЕ БЛАГОДАРЕН!!!!!!

LR>procedure TForm1.BitBtn3Click(Sender: TObject);

LR>begin
LR> FTormoz := CreateComObject(Class_ChildCom);
LR> FChildCom := FTormoz as IChildCom;
LR>end;

умирает потому что у тебя уничтожается ссылка (Delphi во wrappere автоматически делает Release)
имхо лучше не пользоваться всякими врапперами а создавать объект
так как предписано в COM API: через CoCreateInstance



var pUnk: IUnknown; pObj: IMyClassInterface;

  CoInitialize(nil);
  OleCheck(CoCreateInstance(CLSID_MyClass, nil,
       CLSCTX_INPROC_SERVER, IUnknown, pUnk));
  OleCheck(pUnk.QueryInterface(IMyClassInterface,pObj));

  pObj.MyFunctionCall(x,y,z);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.