ObjectControl::Activate 메서드(comsvcs.h)
COM+ 개체가 활성화될 때마다 컨텍스트별 초기화를 수행할 수 있도록 합니다.
이 메서드는 COM+ 런타임 환경에서 호출된 후 개체에 대해 다른 메서드를 호출합니다.
구문
HRESULT Activate();
반환 값
이 메서드는 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL 및 S_OK 반환할 수 있습니다.
설명
클라이언트가 아직 활성화되지 않은 COM+ 개체를 호출할 때마다 COM+ 런타임 환경이 개체를 자동으로 활성화합니다. 이를 Just-In-Time 활성화라고 합니다. 인터페이스로 ObjectControl을 지원하는 구성 요소의 경우 COM+는 클라이언트의 메서드 호출을 개체에 전달하기 전에 개체의 Activate 메서드를 호출합니다.
모든 컨텍스트별 초기화 프로시저는 ObjectControl을 노출하는 개체에 대한 Activate 메서드에서 구현해야 합니다.
예를 들어 Activate 메서드를 사용하여 개체의 컨텍스트에 대한 참조를 가져와서 멤버 변수에 저장할 수 있습니다. 그런 다음 개체 컨텍스트를 필요로 하는 모든 메서드에서 사용할 수 있으며 사용할 때마다 새 컨텍스트를 가져올 필요가 없습니다. 개체의 컨텍스트에 대한 참조가 있으면 ObjectContext 메서드를 사용하여 보안 사용 여부, 개체가 트랜잭션에서 실행되는지 여부 또는 호출자가 특정 역할에 있는지 여부를 검사 수 있습니다.
개체를 쿼리하기 위해 CanBePooled 메서드를 구현하여 개체 재활용을 사용하도록 설정하는 경우 Activate 메서드는 새로 만든 개체와 재활용된 개체를 처리할 수 있어야 합니다. Activate 메서드가 반환되면 새 개체와 재활용된 개체 간에 구별할 수 있는 차이가 없어야 합니다.
COM+는 Activate 메서드를 호출하기 전에 ObjectControl을 노출하는 개체로 호출하는 것을 명시적으로 금지합니다(생성자에 있는 경우). 이러한 호출로 인해 RPC_E_DISCONNECTED 오류가 발생합니다. 예를 들어 개체가 생성자에 있는 동안 자체에 대한 참조를 전달한 다음 Activate 호출 전에 참조가 해당 개체로 다시 호출되는 경우 연결이 끊긴 오류가 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | comsvcs.h |