Метод 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по