다음을 통해 공유


COM+ 이벤트 클래스 개체

COM+ Events 서비스는 이벤트 클래스 개체 를 사용하여 게시자와 구독자 간의 연결을 관리합니다. 이벤트 클래스 개체는 COM+ 이벤트 시스템에서 관리 및 저장되며 게시자가 이벤트를 발생시키는 데 사용하는 인터페이스와 메서드를 포함하는 COM+ 구성 요소입니다. 발생할 수 있는 이벤트를 나타내고 필요에 따라 게시자를 식별하는 영구 개체입니다. 형식 라이브러리를 제공하여 이벤트 클래스에 포함할 인터페이스 및 메서드를 지정합니다.

이벤트를 실행하기 위해 게시자는 CoCreateInstance 또는 Microsoft Visual Basic CreateObject 메서드를 호출하고 이벤트 인터페이스를 반환하도록 요청하여 이벤트 클래스 개체를 인스턴스화합니다. 인스턴스화된 이벤트 클래스 개체에는 요청된 인터페이스의 이벤트 시스템 구현이 포함됩니다. 또한 관심 있는 구독자는 이벤트 클래스 인터페이스를 구현하여 지정된 게시자로부터 이벤트를 수신해야 합니다. 이벤트 클래스 개체가 인스턴스화되면 이벤트 시스템은 해당 구독자와 연결합니다. 구독자 목록은 이벤트 클래스 개체의 수명 동안 유지 관리됩니다. 이벤트를 직렬로 또는 병렬로 여러 구독자에게 전달할 수 있습니다.

이벤트 클래스 개체를 구현하는 경우 DllRegisterServer 및 DllUnregisterServer 함수를 내보내는 자체 등록 DLL을 제공해야 합니다. DllRegisterServer 함수는 COM 클래스를 등록하고 DllUnregisterServer 함수는 구성 요소의 등록을 취소합니다. 이벤트 클래스 개체는 구성 요소 서비스 관리 도구를 사용하거나 ICOMAdminCatalog::InstallEventClass 또는 ICOMAdminCatalog::InstallMultipleEventClasses 인터페이스의 메서드를 사용하여 프로그래밍 방식으로 COM+ 카탈로그에 저장됩니다. 이벤트 클래스 개체 등록에 대한 자세한 내용은 이벤트 클래스 등록을 참조하세요.

이벤트 클래스 개체는 구성 요소이므로 구성 요소 서비스 관리 도구 또는 COM+ 관리 SDK 함수를 사용하여 큐, 트랜잭션, 보안 등과 같은 다른 특성을 구성할 수 있습니다.

참고

COM+ 이벤트 서비스는 형식 라이브러리 마샬링을 사용합니다. 이렇게 하면 이벤트 클래스 인터페이스에 몇 가지 제한 사항이 있습니다. 예를 들어 형식 라이브러리 마샬러는 size_is length_is MIDL 특성을 지원하지 않습니다.

 

이벤트 클래스 개체에는 이벤트가 게시되는 방식과 다음 속성을 결정하는 게시 특성이 있습니다.

  • EventCLSID. 구성 요소의 CLSID를 지정하는 고유 식별자입니다.
  • EventClassName. 구성 요소의 PROGID를 지정하는 고유 식별자입니다.
  • TypeLibrary. 이벤트 클래스 개체에서 제공하는 인터페이스 목록을 제공합니다. 형식 라이브러리에 지정된 실행 인터페이스를 구현할 필요가 없습니다.

COM+ 이벤트 보안 고려 사항

COM+에서 이벤트 필터링

COM+에서 이벤트 게시 및 제공

구독

COM+ 큐에 대기된 구성 요소와 함께 COM+ 이벤트 사용