Delphi→ Количество элементов в IEnumVARIANT
Май 13, 2011
Казалось бы интерфейс IEnumVARIANT всем хорошо — универсальный и простой, но его простота не должна ограничивать функциональность. А она ограничена, так как интерфейс содержит всего 4 метода: Next, Reset, Skip, Clone. Поэтому приходится реализовывать некоторые методы самому.
Один из таких методов — получение количества элементов:
function EnumCount(NewEnum: IInterface): Cardinal; var FEnum: IEnumVariant; FCount: ULONG; FVariant: OleVariant; FIndex: Cardinal; FResult: HRESULT; begin FIndex := 0; try FResult := NewEnum.QueryInterface(IEnumVariant, FEnum); except FResult := E_FAIL; end; while SUCCEEDED(FResult) do begin if not VarIsNull(FVariant) then FVariant := Unassigned; if FEnum.Next(1, FVariant, FCount) <> S_OK then Break; Inc(FIndex); end; FEnum := nil; Result := FIndex; end;
В качестве аргумента функции указывается интерфейс _NewEnum.
Пример использования:
ADsGetObject('WinNT://./lanmanserver', IADsFileServiceOperations, Pointer(FRPC)); if EnumCount(FRPC.Sessions._NewEnum) >= 10 then ShowMessage('Limit sessions');
Порой зайдешь на какой-нибудь сайт и задумаешься — «А кто создал его?!». Ищешь информацию на сайте, как например, форму обратную связь, а там никаких тебе контактных данных. Тут то и пригодиться просмотр ip (или 2ip.ru) информации о домене, на котором расположен сайт. Обычно там указывается дата регистрации домена и что самое главное электронный адрес почтового ящика.
Похожие статьи: