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

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

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

Синтаксис

HRESULT Activate();

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

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

Комментарии

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

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

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

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

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

Требования

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

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

ObjectControl