com4:ComServer

windows.comServer 형식의 패키지 확장 지점을 선언합니다. comServer 확장에는 이러한 클래스를 구현하는 서버에 대한 활성화 세부 정보 및 런타임에 이러한 클래스를 참조하는 데 사용되는 추가 식별자를 제공하는 ProgId 및 TreatAsClass 등록을 포함한 클래스 등록이 포함될 수 있습니다.

요소 계층 구조

<패키지>

    <애플리케이션>

         <애플리케이션>

              <확장>

                   <com4:Extension>

                        <com4:ComServer>

구문

<com4:ComServer>

<!-- Child elements -->
  Class{0,1}
  ExeServer{0,1}
  ServiceServer{0,1}
  SurrogateServer{0,1}
  TreatAsClass{0,1}
  ProgId{0,1}
  InProcessServer{0,1}
  InProcessHandler{0,1}
  ManagedInProcessServer{0,1}
  com5:InProcessServer{0,1}
  com5:InProcessHandler{0,1}

</com4:ComServer>

{} 특정 발생 범위

특성 및 요소

특성

없음

자식 요소

자식 요소 설명
클래스 COM 서버에서 클래스 등록을 정의합니다.
ExeServer 하나 이상의 클래스 등록을 사용하여 ExeServer를 등록합니다.
ServiceServer 하나 이상의 클래스 등록을 사용하여 ServiceServer를 등록합니다.
SurrogateServer 하나 이상의 클래스 등록을 사용하여 서로게이트 서버를 등록합니다.
TreatAsClass TreatAs 하위 키를 사용한 CLSID 등록에 해당하는 등록입니다.
Progid CLSID와 연결할 수 있는 ProgID(프로그래밍 식별자)입니다.
InProcessServer 하나 이상의 클래스 등록을 사용하여 In-Process 서버를 등록합니다.
InProcessHandler 하나 이상의 클래스 등록을 사용하여 In-Process 처리기를 등록합니다.
ManagedInProcessServer 하나 이상의 클래스 등록을 사용하여 관리되는 In-Process 서버를 등록합니다.

부모 요소

부모 요소 Description
com4:Extension 앱 패키지 외부의 클라이언트에 COM 등록을 노출하는 기능을 제공합니다. com4 확장은 이전 COM 스키마 버전의 상위 집합 및 대체 버전인 새 버전입니다.

설명

다중 애플리케이션 패키지에서는 COM 서버 프로세스가 상위 Applications/Application 요소의 ID로 실행되므로 COM 서버 등록을 올바른 애플리케이션/애플리케이션 매니페스트 요소 아래에 배치하는 것이 중요합니다.

매니페스트에 등록된 COM 서버는 항상 AAP(Activate As Package) 동작을 받습니다. 즉, COM 서버는 패키지 및 애플리케이션 클레임이 추가된 사용자 세션 기본 토큰으로 실행됩니다. 이는 클라이언트의 토큰을 사용하여 COM 서버가 실행되는 클래식 등록 COM 서버의 기본 활성화 동작과 다릅니다. 클라이언트는 일반적으로 사용자 세션 기본 토큰을 사용하여 실행되므로 대부분의 애플리케이션에서 이러한 차이는 눈에 띄지 않습니다. RunAs와 같은 다른 활성화 동작은 지원되지 않습니다.

Applications/Application 요소 아래에 여러 comServer 확장이 있을 수 있지만 대부분의 경우 이 확장은 필요하거나 권장되지 않습니다. 여러 comServer 확장이 필요한 에지 사례의 예는 패키지에 CompatMode="classic"이 있는 등록 중 일부가 필요한 경우이고 다른 패키지에는 CompatMode="modern"가 있는 경우를 예로 들 수 있습니다. 이 작업을 수행하는 유일한 방법은 확장 간에 분할하는 것입니다.

com4 확장의 변경 내용

com4 확장 구문은 이전 com 확장 구문의 새로운 상위 집합입니다. 이 구문 버전은 구문의 이전 버전과 동일한 구조를 지원합니다. 여기서 클래스 등록은 ExeServer/Class, SurrogateServer/Class, ServiceServer/Class, InProcessServer/Class, InProcessHandler/Class 또는 ManagedInProcessServer/Class 요소로 표시됩니다.

새 구문은 다음과 같은 대체 구조도 지원합니다.

  • ExeServer/ClassReference, SurrogateServer/ClassReference, ServiceServer/ClassReference, InProcessServer/ClassReference, InProcessHandler/ClassReference 또는 ManagedInProcessServer/ClassReference 요소는 최상위 클래스 요소를 참조합니다.

및/또는

  • SurrogateServer/InProcessServerClassReference 요소는 InProcessServer/Class(또는 InProcessServer/ClassReference) 또는 ManagedInProcessServer/Class(또는 ManagedInProcessServer/ClassReference) 요소를 참조합니다.

새 구문 구조의 주요 목적은 가능한 한 동일한 CLSID에 대한 In-Process 서버, In-Process 처리기 및 Out of process 서버 등록의 조합을 사용하도록 설정하고 클래식 레지스트리 레이아웃에서 지원하는 것입니다. COM 레지스트리 레이아웃에 대한 자세한 내용은 CLSID 키를 참조하세요.

요구 사항

Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4