com4:Extension

앱 패키지 외부의 클라이언트에 COM 등록을 노출하는 기능을 제공합니다. com4 확장은 이전 COM 스키마 버전의 상위 집합 및 대체 버전인 새 버전입니다. 자세한 내용은 설명 부분을 참조하세요.

요소 계층 구조

<패키지>

    <애플리케이션>

         <애플리케이션>

              <확장>

                   <com4:Extension>

구문

<com4:Extension
  Category = 'A string that can have one of the following values: "windows.comServer" or "windows.comInterface".'
  Executable = 'An optional string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
  EntryPoint = 'An optional string with a value between 1 and 256 characters in length that cannot start or end with a whitespace character.'
  RuntimeType = 'An optional string with a value between 1 and 255 characters in length that cannot start or end with a period or contain these characters: <, >, :, ", /, \, |, ?, or *.'
  StartPage = 'An optional string with a value between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *.'
  ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  TrustLevel = 'An optional string the can have one of the following values: "appContainer" or "mediumIL".'
  RuntimeBehavior = 'An optional string the can have one of the following values: "windowsApp", "packagedClassicApp", or "win32App".'
  HostId = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
  uap11:Id = 'An optional string with a value between 1 and 255 characters in length with a non-whitespace character at its beginning and end.'
  uap11:Subsystem = 'An optional string that can have one of the following values: "console" or "windows".'
  uap11:SupportsMultipleInstances = 'An optional boolean value.'
  uap11:ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
  uap11:CurrentDirectoryPath = 'An optional string that cannot contain these characters: <, >, |, ?, or *. >'
  uap11:Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
  desktop7:CompatMode = 'An optional string the can have one of the following values: "classic" or "modern".'
  desktop7:Scope = 'An optional string that can have one of the following values: "machine" or "user".' />

  <!-- Child elements -->
  com4:ComServer
  com4:ComInterface

</com4:Extension>

특성 및 요소

특성

attribute Description 데이터 형식 필수 기본값
범주 앱 확장성 지점의 유형입니다. windows.comServer 또는 windows.comInterface 값 중 하나를 가질 수 있는 문자열입니다. Yes
실행 파일 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 길이가 1~256자인 선택적 문자열로 끝나 .exe 야 하며 , , >, ":, |?, 또는 *문자를 <포함할 수 없습니다. No
EntryPoint 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 공백 문자로 시작하거나 끝낼 수 없는 길이가 1~256자인 선택적 문자열입니다. No
RuntimeType 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 마침표로 시작하거나 끝낼 수 없거나 , :\*>?"|/또는 문자를 <포함할 수 없는 길이가 1~255자인 선택적 문자열입니다. No
StartPage 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. , ">:|?또는 *문자를 포함할 수 없는 길이가 1~256자<인 선택적 문자열입니다. No
ResourceGroup 리소스 관리 목적(예: CPU 및 메모리)을 위해 확장 활성화를 그룹화하는 데 사용할 수 있는 태그입니다. ResourceGroup을 설정할 수 있는 값은 자유 형식이며 유연합니다. Application@ResourceGroup 참조하세요. 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. No
uap10:TrustLevel 확장의 신뢰 수준을 지정합니다. 현재 릴리스에서 이 특성은 com4 확장에서 지원되지 않습니다. "mediumIL" 값은 항상 사용됩니다. 선택적 문자열은 appContainer 또는 mediumIL 값 중 하나를 가질 수 있습니다. No
uap10:RuntimeBehavior 확장의 런타임 동작을 지정합니다. 현재 릴리스에서 이 특성은 com4 확장에서 지원되지 않습니다. "packagedClassicApp" 값은 항상 사용됩니다. 선택적 문자열은 windowsApp, packagedClassicApp 또는 win32App 값 중 하나를 가질 수 있습니다. No
uap10:HostId 이 값 확장에 대한 호스트 런타임의 ID를 지정합니다. 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. No
uap10:Parameters 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 시작과 끝에 공백이 아닌 문자가 있는 길이가 1~32767자인 선택적 문자열입니다. No
uap11:Id 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 시작과 끝에 공백이 아닌 문자가 있는 길이가 1~255자인 선택적 문자열입니다. No
uap11:하위 시스템 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 콘솔 또는 값 중 하나를 가질 수 있는 선택적 문자열입니다. No
uap11:SupportsMultipleInstances 인스턴스가 다른 프로세스에서 실행되어야 하는지 여부를 지정합니다. 기본값은 false입니다. 선택적 부울 값입니다. No
uap11:ResourceGroup 리소스 관리 목적(예: CPU 및 메모리)을 위해 확장 활성화를 그룹화하는 데 사용할 수 있는 태그입니다. ResourceGroup을 설정할 수 있는 값은 자유 형식이며 유연합니다. Application@ResourceGroup 참조하세요. 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. No
uap11:CurrentDirectoryPath 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 이 특성은 매크로를 지원합니다. 자세한 내용은 패키지 매니페스트 스키마의 매크로를 참조하세요. , ?>|또는 *문자를 <포함할 수 없는 선택적 문자열입니다. > No
uap11:Parameters 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 이 특성은 매크로를 지원합니다. 자세한 내용은 패키지 매니페스트 스키마의 매크로를 참조하세요. 시작과 끝에 공백이 아닌 문자가 있는 길이가 1~32767자인 선택적 문자열입니다. No
desktop7:CompatMode 이 확장의 정보가 클래식 방식으로 Windows에 등록되는지(예: 패키지되지 않은 앱이 레지스트리를 통해 COM에 형식을 등록하는지) 또는 좀 더 범위가 지정된 새로운 방식으로 등록할지를 지정합니다. 기본값은 "최신"입니다. CompatMode="classic"에는 Microsoft.classicAppCompat_8wekyb3d8bbwe 기능이 필요합니다. 선택적 문자열은 클래식 또는 최신 값 중 하나를 가질 수 있습니다. No
desktop7:Scope 이 패키지가 등록된 사용자(사용자)로 실행 중인 다른 애플리케이션에만 등록이 표시되는지 또는 컴퓨터(컴퓨터)의 모든 사용자 및 서비스에 표시되는지 여부를 지정합니다. 기본값은 "user"입니다. Scope="machine"에는 Microsoft.classicAppCompatElevated_8wekyb3d8bbwe 기능이 필요합니다. 컴퓨터 또는 사용자 값 중 하나를 가질 수 있는 선택적 문자열입니다. No

자식 요소

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

부모 요소

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

설명

com4 확장은 기본적으로 이전 windows.comServer/windows.comInterface 확장 구문의 다시 쓰기입니다. 이 확장은 상속된 구문에 대해 동일한 동작을 가진 이전 com 확장 기능의 상위 집합입니다. 패키징에 사용되는 새 구문에 대한 매니페스트 유효성 검사는 확장의 의미 체계 요구 사항에 더 적합합니다.

  • 이전 버전에서는 각 확장이 별도의 문서로 처리되어 고유하지 않은 키와 현수 참조의 유효성을 검사할 수 있었습니다.
  • 이전 버전에서는 중복된 특성이 확장의 동일한 instance 표시되는 경우에만 고유/키 제약 조건이 적용되는 특성의 중복이 매니페스트 유효성 검사에 의해 포착되었습니다. 이러한 특성을 복제한 패키지는 문제를 식별하기 위해 제한된 진단 정보를 사용하여 배포하지 못합니다.
  • 이전 버전에서는 참조가 확장의 다른 instance 있는 keyref가 매니페스트 유효성 검사에 의해 차단됩니다. 이는 배포/런타임 동작이 지원하는 항목에 상대적인 인위적인 제한 사항입니다.

모든 windows.comServer/windows.comInterface 확장에 새 com4 네임스페이스를 사용할 수 있는 Windows 11 대상으로 하는 애플리케이션은 이 네임스페이스를 사용해야 합니다. 다음과 같은 이유로 새 네임스페이스를 이전 네임스페이스와 혼합하는 것은 권장되지 않습니다.

  • 새 네임스페이스를 지원하는 버전에 패키지를 배포하면 모든 네임스페이스의 확장이 처리되고 다른 네임스페이스 버전을 사용하는 확장 간에 중복된 고유 식별자가 실패합니다. 이전 네임스페이스를 사용하면 매니페스트 유효성 검사에서 이러한 오류를 검색할 수 없습니다.
  • 이전 네임스페이스 스키마의 제한으로 인해 이전 구문의 keyref는 확장의 다른 인스턴스에 있으므로 새 구문의 키를 참조할 수 없습니다.

다음 com4 구문 의미 체계를 사용하면 기능 요구 사항이 있습니다.

  • CompatMode="classic"에는 Microsoft.classicAppCompat_8wekyb3d8bbwe 필요합니다.
  • Scope="machine"에는 Microsoft.classicAppCompatElevated_8wekyb3d8bbwe 필요합니다.

다음 예제에서는 out-of-process 및 In-process 서버 구현을 동일한 클래스에 등록하는 방법을 보여 있습니다.

예제

<com4:Class Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx" DisplayName="CLSID_Foo"/> 
<com:ExeServer Executable="MyServer.exe" DisplayName="My server">  
  <com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>  
</com:ExeServer> 
<com4:InProcessServer Path="MyServer.dll">  
  <com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>  
</com4:InProcessServer> 

com4 확장의 새로운 기능

  • In Process 서버(관리되지 않음 및 관리되지 않음) 및 사용자 지정 In-Process 처리기(즉, OLE 기본 처리기가 아님)에 대한 지원 이 기능은 현재 기능적으로 제한되며 정책에 의해 제한됩니다.
    • 현재 외부 위치가 있는 패키지에서만 사용할 수 있습니다. 패키지의 dll이 패키지 외부에서 로드되지 않도록 하는 설치 위치의 ACL로 인해 대부분의 일반 패키지에서는 작동하지 않습니다. 외부 위치가 있는 패키지에 대한 자세한 내용은 외부 위치로 패키징하여 패키지 ID 부여를 참조하세요.
  • 이제 TypeLib을 클래스 등록과 연결할 수 있습니다.

요구 사항

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