com4:Extension
앱 패키지 외부의 클라이언트에 COM 등록을 노출하는 기능을 제공합니다. com4 확장은 이전 COM 스키마 버전의 상위 집합 및 대체 버전인 새 버전입니다. 자세한 내용은 설명 섹션을 참조하세요.
요소 계층 구조
<com4:Extension>
<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>
특성 및 요소
특성
속성 | 묘사 | 데이터 형식 | 필수 | 기본값 |
---|---|---|---|---|
범주 | 앱 확장성 지점의 유형입니다. | windows.comServer 또는 |
예 | |
실행 파일 | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 길이가 1~256자이고 < , .exe > , : , " , | , ? 또는 * 문자를 포함할 수 없는 길이가 1~256자인 선택적 문자열입니다. |
아니요 | |
EntryPoint | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 공백 문자로 시작하거나 끝낼 수 없는 길이가 1~256자인 선택적 문자열입니다. | 아니요 | |
runtimeType |
이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 마침표로 시작하거나 끝낼 수 없거나 마침표로 끝날 수 없는 길이가 1~255자인 선택적 문자열입니다. < , > , : , " , / , \ , | , ? 또는 * . |
아니요 | |
StartPage | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. |
< , > , : , " , | , ? 또는 * 문자를 포함할 수 없는 길이가 1~256자인 선택적 문자열입니다. |
아니요 | |
ResourceGroup | 리소스 관리 용도(예: CPU 및 메모리)를 위해 확장 활성화를 그룹화하는 데 사용할 수 있는 태그입니다. ResourceGroup을 설정할 수 있는 값은 자유 형식이며 유연합니다. Application@ResourceGroup참조하세요. | 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. | 아니요 | |
uap10:TrustLevel | 확장의 신뢰 수준을 지정합니다. 현재 릴리스에서 이 특성은 com4 확장에서 지원되지 않습니다. 값 "mediumIL"은 항상 사용됩니다. | 선택적 문자열은 appContainer 또는 |
아니요 | |
uap10:RuntimeBehavior | 확장의 런타임 동작을 지정합니다. 현재 릴리스에서 이 특성은 com4 확장에서 지원되지 않습니다. "packagedClassicApp" 값은 항상 사용됩니다. | 선택적 문자열은 windowsApp, |
아니요 | |
uap10:HostId | 이 값은 확장에 대한 호스트 런타임의 ID를 지정합니다. | 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. | 아니요 | |
uap10:Parameters | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 시작과 끝에 공백이 아닌 문자가 있는 길이가 1~32767자인 선택적 문자열입니다. | 아니요 | |
uap11:Id | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 시작과 끝에 공백이 아닌 문자가 있는 길이가 1~255자인 선택적 문자열입니다. | 아니요 | |
uap11:하위 시스템 | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. | 콘솔 또는 |
아니요 | |
uap11:SupportsMultipleInstances | 인스턴스를 다른 프로세스에서 실행할지 여부를 지정합니다. 기본값은 false입니다. | 선택적 부울 값입니다. | 아니요 | |
uap11:ResourceGroup | 리소스 관리 용도(예: CPU 및 메모리)를 위해 확장 활성화를 그룹화하는 데 사용할 수 있는 태그입니다. ResourceGroup을 설정할 수 있는 값은 자유 형식이며 유연합니다. Application@ResourceGroup참조하세요. | 길이가 1~255자인 선택적 영숫자 문자열입니다. 문자로 시작해야 합니다. | 아니요 | |
uap11:CurrentDirectoryPath | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 이 특성은 매크로를 지원합니다. 자세한 내용은 패키지 매니페스트 스키마 |
< , > , | , ? 또는 * 문자를 포함할 수 없는 선택적 문자열입니다. > |
아니요 | |
uap11:Parameters | 이 특성은 기본 확장 구문에서 상속되며 com4 확장에는 적용되지 않습니다. 구문 유효성 검사 외에 이 값은 무시됩니다. 이 특성은 매크로를 지원합니다. 자세한 내용은 패키지 매니페스트 스키마 |
시작과 끝에 공백이 아닌 문자가 있는 길이가 1~32767자인 선택적 문자열입니다. | 아니요 | |
desktop7:CompatMode | 이 확장의 정보가 클래식 방식으로 Windows에 등록되는지(예: 패키지되지 않은 앱이 레지스트리를 통해 COM에 형식을 등록하는지) 또는 더 범위가 지정된 새로운 방식으로 등록할지를 지정합니다. 기본값은 "modern"입니다. CompatMode="클래식"에는 Microsoft.classicAppCompat_8wekyb3d8bbwe 기능이 필요합니다. | 선택적 문자열은 |
아니요 | |
desktop7:Scope | 이 패키지가 등록된 사용자(사용자)로 실행 중인 다른 애플리케이션에만 등록이 표시되는지 또는 컴퓨터(컴퓨터)의 모든 사용자 및 서비스에 표시되는지 여부를 지정합니다. 기본값은 "user"입니다. Scope="machine"에는 Microsoft.classicAppCompatElevated_8wekyb3d8bbwe 기능이 필요합니다. | 컴퓨터 또는 사용자 |
아니요 |
자식 요소
자식 요소 | 묘사 |
---|---|
com4:ComServer | comServer 확장에는 이러한 클래스를 구현하는 서버에 대한 활성화 세부 정보 및 런타임에 이러한 클래스를 참조하는 데 사용되는 추가 식별자를 제공하는 ProgId 및 TreatAsClass 등록을 포함하여 클래스 등록이 포함될 수 있습니다. |
com4:ComInterface | windows.comInterface(com4:ComInterface) |
부모 요소
자식 요소 | 묘사 |
---|---|
확장 | 앱에 대한 하나 이상의 확장성 지점을 정의합니다. |
발언
com4 확장은 기본적으로 이전 windows.comServer/windows.comInterface 확장 구문의 다시 쓰기입니다. 이 확장은 상속된 구문에 대해 동일한 동작을 가진 이전 com 확장 기능의 상위 집합입니다. 패키징에 사용되는 새 구문에 대한 매니페스트 유효성 검사는 확장의 의미 체계 요구 사항에 더 적합합니다.
- 이전 버전에서는 각 확장이 별도의 문서로 처리되어 고유하지 않은 키와 현수 참조의 유효성을 검사할 수 있었습니다.
- 이전 버전에서는 중복된 특성이 확장의 동일한 인스턴스에 표시되는 경우에만 고유/키 제약 조건이 적용되는 특성의 중복이 매니페스트 유효성 검사에 의해 포착되었습니다. 이러한 특성을 복제한 패키지는 배포에 실패하며, 진단 정보가 제한되어 문제를 식별할 수 있습니다.
- 이전 버전에서는 참조가 확장의 다른 인스턴스에 있는 keyref가 매니페스트 유효성 검사에 의해 차단됩니다. 이는 배포/런타임 동작이 지원하는 항목에 상대적인 인위적인 제한 사항입니다.
모든 windows.comServer/windows.comInterface 확장에 새 com4 네임스페이스를 사용할 수 있는 Windows 11을 대상으로 하는 애플리케이션은 이 네임스페이스를 사용해야 합니다. 다음과 같은 이유로 새 네임스페이스를 이전 네임스페이스와 혼합하는 것은 권장되지 않습니다.
- 새 네임스페이스를 지원하는 버전에 패키지를 배포하면 모든 네임스페이스의 확장이 처리되고 다른 네임스페이스 버전을 사용하는 확장 간에 중복된 고유 식별자가 실패합니다. 이전 네임스페이스를 사용하면 매니페스트 유효성 검사에서 이러한 오류를 검색할 수 없습니다.
- 이전 네임스페이스 스키마의 제한 사항으로 인해 이전 구문의 keyref는 확장의 다른 인스턴스에 있으므로 새 구문의 키를 참조할 수 없습니다.
다음 com4 구문 의미 체계를 사용하면 기능 요구 사항이 있습니다.
- CompatMode="클래식"을 사용하려면 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을 클래스 등록과 연결할 수 있습니다.
요구 사항
항목 | 값 |
---|---|
네임스페이스 |
http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
최소 OS 버전 | Windows 10(빌드 20348) |