IObjectControl::Activate 메서드(comsvcs.h)

COM+ 개체가 활성화될 때마다 컨텍스트별 초기화를 수행할 수 있도록 합니다. 이 메서드는 다른 메서드가 개체에 호출되기 전에 COM+ 런타임 환경에서 호출됩니다.

구문

HRESULT Activate();

반환 값

이 메서드는 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL 및 S_OK 반환할 수 있습니다.

설명

클라이언트가 아직 활성화되지 않은 COM+ 개체를 호출할 때마다 COM+ 런타임 환경이 자동으로 개체를 활성화합니다. 이를 Just-In-Time 정품 인증이라고 합니다. 인터페이스로 IObjectControl을 지원하는 구성 요소의 경우 COM+는 클라이언트의 메서드 호출을 개체에 전달하기 전에 개체의 Activate 메서드를 호출합니다.

컨텍스트별 초기화 프로시저는 IObjectControl을 노출하는 개체에 대한 Activate 메서드에서 구현해야 합니다.

예를 들어 Activate 메서드를 사용하여 개체의 컨텍스트에 대한 참조를 가져와서 멤버 변수에 저장할 수 있습니다. 그런 다음 개체 컨텍스트를 필요로 하는 모든 메서드에서 사용할 수 있으며 사용할 때마다 새 컨텍스트를 가져올 필요가 없습니다. 개체의 컨텍스트에 대한 참조가 있으면 IObjectControl 메서드를 사용하여 보안 사용 여부, 개체가 트랜잭션에서 실행 중인지 또는 호출자가 특정 역할에 있는지 여부를 검사 수 있습니다.

개체 재활용을 사용하도록 설정하는 경우( CanBePooled 메서드를 구현하여 개체를 쿼리하는 경우) Activate 메서드는 새로 만든 개체와 재활용된 개체를 모두 처리할 수 있어야 합니다. Activate 메서드가 반환되면 새 개체와 재활용된 개체 간에 구별할 수 있는 차이가 없어야 합니다.

COM+는 Activate 메서드(생성자에 있는 경우)를 호출하기 전에 IObjectControl을 노출하는 개체로의 호출을 명시적으로 금지합니다. 이러한 호출로 인해 RPC_E_DISCONNECTED 오류가 발생합니다. 예를 들어 개체가 생성자에 있는 동안 자체에 대한 참조를 전달한 다음 , Activate를 호출하기 전에 참조가 해당 개체로 다시 호출하는 경우 연결이 끊긴 오류가 반환됩니다.

Activate 메서드를 사용하여 개체의 ISecurityProperty 인터페이스에 대한 참조를 가져오고 메서드가 호출되기 전에 개체 작성자의 보안 ID를 검사 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 comsvcs.h

추가 정보

IObjectControl