Глюки с ActiveX / ActiveDS
- From
- Denis Balashov (2:5010/103.12)
- To
- Gennady Porev
- Date
- 2002-10-19T11:58:48Z
- Area
- SU.WINDOWS.NT.PROG
Приветствую Вас, Gennady!
[было это 18.10.2002] Gennady Porev написал к All:
GP> var Cont : IADsContainer;
GP> ADs : IADs;
GP> begin
GP> CoInitialize(nil);
GP> ADsGetObject('IIS://vinca/W3Svc/1',IADsContainer,Cont);
GP> Cont.QueryInterface(IID_IADs,ADs);
GP> Writeln(ADs.Get('LogFileDirectory'));
GP> ADs._Release;
GP> Cont._Release;
GP> CoUninitialize;
GP> end.
GP> -----------------------------------
В твоем случае происходит повторное освобождение уже уничтоженного Release'ом экземпляра ADs и Cont, т.к. они имеют значение <>nil. Надо так:
CoInitialize(nil);
try
ADsGetObject('IIS://vinca/W3Svc/1',IADsContainer,Cont);
Cont.QueryInterface(IID_IADs,ADs);
Writeln(ADs.Get('LogFileDirectory'));
finally
ADs:=nil;
Cont:=nil;
CoUninitialize;
end;
RTFM, экземпляры объекта уничтожаются присвоением NIL и при количестве ссылок=0
Denis.
--- [CDMA][win2000][Courier V.Evr] [dba<собак>hotbox.ru][ICQ 99798225] ---
* Origin: Сейчас я сделаю из него пудинг. (2:5010/103.12)