Чтобы корректно узнать - являются ли интерфейсы одним и тем же объектом надо действовать примерно так:
... тут будут тесты ....
function l3IEQ(const I1, I2: IUnknown): Boolean; {-} var iu1 : IUnknown; iu2 : IUnknown; begin Result := (I1 = I2); if not Result AND (I1 <> nil) AND (I2 <> nil) then begin if Succeeded(I1.QueryInterface(IUnknown, iu1)) then try if Succeeded(I2.QueryInterface(IUnknown, iu2)) then try Result := (iu1 = iu2); finally iu2 := nil; end;//try..finally finally iu1 := nil; end;//try..finally end;//not Result.. end;
... тут будут тесты ....
Комментариев нет:
Отправить комментарий