다음을 통해 공유


com4:Class

다른 클래스 컨텍스트에 대해 CLSID의 하나 이상의 구체적인 등록에서 공유할 수 있는 패키지에 의해 등록된 CLSID의 속성을 지정합니다. 예를 들어 out-of-process 활성화(CLSCTX_LOCAL_SERVER)를 지원하는 ExeServer 및 해당 in-process 처리기(CLSCTX_INPROC_HANDLER)를 고려합니다. com4:Class 요소는 자체적으로 활성화를 위해 CLSID를 등록하지 않지만 ExeServer 클래스ClassReference/ 또는 InProcessHandler 클래스/ClassReference와 같은 요소에서 참조할 수 있습니다. 이 경우 해당 특성은 ExeServer/Class 또는 InProcessHandler/Class 요소에서 직접 지정할 수 있는 특성을 대체합니다. 이 구문은 단일 클래스 컨텍스트에 대해 등록된 CLSID의 경우 선택 사항이지만 매니페스트 유효성 검사를 수행하려면 Id 특성이 매니페스트의 모든 클래스, ExeServer/Class, InProcessHandler/Class 등에서 고유해야 하므로 여러 클래스 컨텍스트에 대해 동일한 CLSID를 등록해야 합니다.

요소 계층 구조

<패키지>

    <애플리케이션>

         <애플리케이션>

              <확장>

                   <com4:Class>

구문

<com4:Class
  ProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
  VersionIndependentProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
  AutoConvertTo = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  InsertableObject = 'A boolean value.'
  ShortDisplayName = 'A string with a value between 1 and 40 characters in length.'
  Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.' >

<!-- Child elements -->
  ImplementedCategories
  Conversion
  DataFormats
  MiscStatus
  Verbs
  DefaultIcon
  ToolboxBitmap32
  TypeLib

</com4:Class>

특성 및 요소

특성

attribute Description 데이터 형식 필수 기본값
ProgId ProgID(프로그래밍 식별자)를 CLSID와 연결합니다. 길이가 1~255자인 마침표로 구분된 영숫자 문자열입니다(예: Foo.Bar 또는 Foo.Bar.1). No
VersionIndependentProgId ProgID를 CLSID와 연결합니다. 이 값은 개체 애플리케이션의 최신 버전을 결정하는 데 사용됩니다. 길이가 1~255자인 마침표로 구분된 영숫자 문자열입니다(예: Foo.Bar 또는 Foo.Bar.1). No
AutoConvertTo 지정된 개체 클래스를 새 개체 클래스로 자동 변환하도록 지정합니다. xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx 형식의 GUID입니다. No
InsertableObject 이 클래스를 삽입할 수 있음을 나타냅니다. 부울 값입니다. No
ShortDisplayName 클래스 표시 이름의 짧은 버전입니다. 길이가 1~40자인 문자열입니다. No
ID ID 특성은 CLSID(HKCR\CLSID{MyGuid})에 해당합니다. xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx 형식의 GUID입니다. Yes
표시 이름 클래스 표시 이름입니다. 길이가 1~256자인 문자열입니다. 이 문자열은 지역화할 수 있습니다. No

자식 요소

자식 요소 Description
ImplementedCategories 클래스에서 구현하는 범주를 지정합니다.
변환 애플리케이션에서 읽고 쓸 수 있는 형식을 지정합니다.
DataFormats 애플리케이션에서 지원하는 기본 및 기본 데이터 형식을 지정합니다.
MiscStatus 개체를 만들고 표시하는 방법을 지정합니다.
동사 애플리케이션에 등록할 동사를 지정합니다.
DefaultIcon 개체의 상징적인 프레젠테이션에 대한 기본 아이콘 정보를 제공합니다.
ToolboxBitmap32 도구 모음 또는 도구 상자 단추의 얼굴에 사용할 16 x 16 비트맵의 모듈 이름 및 리소스 ID를 식별합니다.
TypeLib 클래스 또는 인터페이스에 대한 형식 라이브러리입니다.

부모 요소

부모 요소 Description
확장 앱에 대한 확장성 지점을 하나 이상 정의합니다.

설명

COM 레지스트리 레이아웃의 CLSID 키 는 CLSID에 대한 등록 정보의 두 가지 범주를 지원합니다.

  • 특정 클래스 컨텍스트에 대한 활성화 세부 정보입니다. 예를 들어 outofproc 활성화(CLSCTX_LOCAL_SERVER)를 위한 LocalServer32 하위 키, inproc 처리기(CLSCTX_INPROC_HANDLER) 활성화를 위한 InprocHandler32 하위 키 또는 inproc 활성화(CLSCTX_INPROC_SERVER)를 위한 InprocServer32 하위 키입니다. 동일한 CLSID는 이러한 클래스 컨텍스트의 조합에 대한 등록을 가질 수 있으며 각 클래스의 활성화 세부 정보는 해당 하위 키에 독립적으로 지정됩니다.
  • 클래스 컨텍스트 간에 공유되는 CLSID에 대한 정보입니다. 예를 들어 OLE 시나리오에서 사용되는 OLE 서버의 속성, CLSID에서 구현하는 구성 요소 범주 집합 등은 CLSID 키의 다른 하위 키를 통해 제공되며, 활성화 세부 정보가 여러 클래스 컨텍스트에 대해 제공되는 경우 이러한 속성은 특정 클래스 컨텍스트가 아닌 CLSID와 의미적으로 연결됩니다.

최상위 com4:Class 요소의 특성은 클래스 컨텍스트 간에 공유되는 CLSID 키의 정보에 해당합니다. 패키지가 단일 클래스 컨텍스트에 대해 CLSID 활성화를 지원하는 경우 최상위 클래스 요소의 사용은 선택 사항이며, 이러한 특성은 활성화 세부 정보를 제공하는 중 첩 클래스 요소 (예: ExeServer/Class)에서 직접 지정할 수도 있습니다. 그러나 COM 레지스트리 레이아웃은 서로 다른 클래스 컨텍스트에 대해 이러한 속성을 독립적으로 지정하는 방법을 제공하지 않으며 이러한 속성을 쿼리하는 API는 호출자가 클래스 컨텍스트를 지정할 수 없습니다. COM 클래스 등록 모델의 이러한 측면을 반영하기 위해 매니페스트 구문은 최상위 및 중첩 클래스 요소에 대한 ID 특성의 고유성을 요구하여 적용된 CLSID에 대해 이러한 속성을 한 번만 지정할 수 있도록 합니다. 따라서 패키지 매니페스트에서 CLSID에 대한 여러 클래스 컨텍스트를 등록하려면 다음을 수행합니다.

  • 공유 속성은 최상위 클래스 요소의 특성으로 제공해야 합니다.
  • 클래스별 컨텍스트 활성화 세부 정보는 중첩된 ClassReference 요소(예: ExeServer Class/ClassReference 및 InProcessHandler Class/Class ClassReference )에서 outofproc 활성화 및 inproc 처리기를 지원하는 CLSID에 대해 제공해야 합니다. ClassReference 요소의 Id 특성은 공유 속성을 포함하는 최상위 Class 요소를 참조합니다.

예제

<com4:Extension Category="windows.comServer">
  ...
  <!-- Example of a CLSID that has both aan inproc server and an exe server implementation, using top level Claass and ClassReference -->
  <com4:Class Id="10000000-0000-0000-0000-000000000009" DisplayName="CLSID_FOO3"/>
  <com4:ExeServer Executable="MyServer.exe" DisplayName="My Server">
    <com4:ClassReference Id="10000000-0000-0000-0000-000000000009" />
  </com4:ExeServer>
  <com4:InProcessServer Path="MyServer.dll">
    <com4:ClassReference Id="10000000-0000-0000-0000-000000000009" ThreadingModel="Both"/>
  </com4:InProcessServer>
  ...
</com4:Extension>

요구 사항

항목
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10(빌드 20348)