Метод 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 |