Прочитать на английском

Поделиться через


Метод IObjectControl::Activate (comsvcs.h)

Позволяет объекту COM+ выполнять контекстную инициализацию при его активации. Этот метод вызывается средой выполнения COM+ до вызова любых других методов в объекте .

Синтаксис

HRESULT Activate();

Возвращаемое значение

Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL и S_OK.

Комментарии

Всякий раз, когда клиент вызывает объект COM+, который еще не активен, среда выполнения COM+ автоматически активирует объект. Это называется JIT-активацией. Для компонентов, поддерживающих IObjectControl в качестве интерфейса, COM+ вызывает метод Activate объекта перед передачей клиентского метода в объект .

Все процедуры инициализации контекста должны быть реализованы в методе Activate для объектов, которые предоставляют IObjectControl.

Например, можно использовать метод Activate , чтобы получить ссылку на контекст объекта и сохранить ее в переменной-члене. Затем контекст объекта будет доступен любому методу, которому он нужен, и вам не нужно получать новый каждый раз, когда вы хотите его использовать. Получив ссылку на контекст объекта, можно использовать методы IObjectControl, чтобы проверка, включена ли безопасность, выполняется ли объект в транзакции или находится ли вызывающий объект в определенной роли.

Если вы включаете перезапуск объектов (путем реализации метода CanBePooled для запроса объекта), метод Activate должен иметь возможность обрабатывать как вновь созданные, так и переработанные объекты. При возврате метода Activate не должно быть различимой разницы между новым и переработанным объектом.

COM+ явно запрещает вызов объекта, который предоставляет IObjectControl перед вызовом метода Activate (если он находится в конструкторе). Такой вызов приведет к ошибке RPC_E_DISCONNECTED. Например, если объект передает ссылку самому себе, находясь в конструкторе, а затем вызывает ссылку обратно в этот объект до вызова Activate, возвращается ошибка отключения.

Метод Activate также можно использовать для получения ссылки на интерфейс ISecurityProperty объекта и проверка идентификатор безопасности создателя объекта перед вызовом каких-либо методов.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

См. также раздел

IObjectControl