com4:Extension
Proporciona funcionalidad para exponer registros COM a clientes fuera del paquete de la aplicación. La extensión com4 es una nueva versión que es un superconjunto de y reemplazo de las versiones anteriores del esquema COM. Vea la sección Comentarios para obtener más información.
Jerarquía de elemento
<com4:Extension>
Sintaxis
<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>
Atributos y elementos
Atributos
Atributo | Descripción | Tipo de datos | Obligatorio | Valor predeterminado |
---|---|---|---|---|
Categoría | Tipo de punto de extensibilidad de la aplicación. | Cadena que puede tener uno de los siguientes valores: windows.comServer o windows.comInterface. | Sí | |
Executable | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional con un valor de entre 1 y 256 caracteres de longitud que debe terminar con .exe y no puede contener estos caracteres: < , > , " : , | , ? , o * . |
No | |
EntryPoint | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional con un valor de entre 1 y 256 caracteres de longitud que no puede iniciar o terminar con un carácter de espacio en blanco. | No | |
RuntimeType | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Una cadena opcional con un valor de entre 1 y 255 caracteres de longitud que no puede iniciar o terminar con un punto o contener estos caracteres: < , > , / \ " | : , ? o .* |
No | |
StartPage | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional con un valor entre 1 y 256 caracteres de longitud que no puede contener estos caracteres: < , , : > , " | , , ? o * . |
No | |
ResourceGroup | Etiqueta que puede usar para agrupar activaciones de extensión con fines de administración de recursos (por ejemplo, CPU y memoria). El valor que puede establecer ResourceGroup es de forma libre y flexible. Consulte Application@ResourceGroup. | Cadena alfanumérica opcional con un valor entre 1 y 255 caracteres de longitud. Debe comenzar con una letra. | No | |
uap10:TrustLevel | Especifica el nivel de confianza de la extensión. En la versión actual, este atributo no es compatible con la extensión com4. El valor "mediumIL" siempre se usa. | Una cadena opcional puede tener uno de los siguientes valores: appContainer o mediumIL. | No | |
uap10:RuntimeBehavior | Especifica el comportamiento en tiempo de ejecución de la extensión. En la versión actual, este atributo no es compatible con la extensión com4. El valor "packagedClassicApp" siempre se usa. | Una cadena opcional puede tener uno de los siguientes valores: windowsApp, packagedClassicApp o win32App. | No | |
uap10:HostId | Este valor Especifica el identificador del tiempo de ejecución del host para la extensión. | Cadena alfanumérica opcional con un valor entre 1 y 255 caracteres de longitud. Debe comenzar con una letra. | No | |
uap10:Parameters | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional con un valor entre 1 y 32767 caracteres de longitud con un carácter que no es de espacio en blanco al principio y al final. | No | |
uap11:Id | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional con un valor entre 1 y 255 caracteres de longitud con un carácter de espacio no en blanco al principio y al final. | No | |
uap11:Subsystem | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. | Cadena opcional que puede tener uno de los siguientes valores: consola o ventanas. | No | |
uap11:SupportsMultipleInstances | Especifica si las instancias deben ejecutarse en procesos diferentes. El valor predeterminado es false. | Valor booleano opcional. | No | |
uap11:ResourceGroup | Etiqueta que puede usar para agrupar activaciones de extensión con fines de administración de recursos (por ejemplo, CPU y memoria). El valor que puede establecer ResourceGroup es de forma libre y flexible. Consulte Application@ResourceGroup. | Cadena alfanumérica opcional con un valor entre 1 y 255 caracteres de longitud. Debe comenzar con una letra. | No | |
uap11:CurrentDirectoryPath | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. Este atributo admite macros. Para obtener más información, consulta Macros en el esquema del manifiesto del paquete. | Cadena opcional que no puede contener estos caracteres: < , > , | , ? o * . > |
No | |
uap11:Parameters | Este atributo se hereda de la sintaxis de extensión base y no es aplicable a la extensión com4. Aparte de la validación sintáctica, este valor se omite. Este atributo admite macros. Para obtener más información, consulta Macros en el esquema del manifiesto del paquete. | Cadena opcional con un valor entre 1 y 32767 caracteres de longitud con un carácter que no es de espacio en blanco al principio y al final. | No | |
desktop7:CompatMode | Especifica si la información de esta extensión se registra con Windows de maneras clásicas (por ejemplo, aplicaciones sin empaquetar registra tipos con COM a través del Registro) o de nuevas formas más limitadas. El valor predeterminado es "moderno". CompatMode="classic" requiere la funcionalidad Microsoft.classicAppCompat_8wekyb3d8bbwe . | Una cadena opcional puede tener uno de los siguientes valores: clásico o moderno. | No | |
desktop7:Scope | Especifica si los registros solo son visibles para otras aplicaciones que se ejecutan como un usuario que tiene este paquete registrado (usuario), o si son visibles para todos los usuarios y servicios de la máquina (máquina). El valor predeterminado es "user". Scope="machine" requiere la funcionalidad Microsoft.classicAppCompatElevated_8wekyb3d8bbwe . | Cadena opcional que puede tener uno de los siguientes valores: máquina o usuario. | No |
Elementos secundarios
Elemento secundario | Descripción |
---|---|
com4:ComServer | La extensión comServer puede incluir registros de clases, incluidos los detalles de activación de los servidores que implementan estas clases y los registros ProgId y TreatAsClass, que proporcionan identificadores adicionales que se usan para hacer referencia a estas clases en tiempo de ejecución. |
com4:ComInterface | Declara un punto de extensión de paquete de tipo windows.comInterface (com4:ComInterface). |
Elementos primarios
Elemento secundario | Descripción |
---|---|
Extensiones | Define uno o varios puntos de extensibilidad para la aplicación. |
Comentarios
La extensión com4 es esencialmente una reescritura de la sintaxis de extensión windows.comServer/windows.comInterface antigua. Esta extensión es un superconjunto de la funcionalidad de extensión com anterior, con un comportamiento idéntico para la sintaxis heredada. La validación del manifiesto para la nueva sintaxis que se usa en el empaquetado se alinea mejor con los requisitos semánticos de la extensión.
- En la versión anterior, cada extensión se ha tratado como un documento independiente, lo que permite validar las claves no únicas y las referencias pendientes.
- En la versión anterior, la duplicación de atributos sujetos a restricciones unique/key solo se detectó mediante la validación del manifiesto si los atributos duplicados aparecen en la misma instancia de la extensión. Los paquetes que duplicaron estos atributos no se implementarían, con información de diagnóstico limitada para identificar el problema.
- En la versión anterior, una clave cuya referencia se encuentra en una instancia diferente de la extensión se bloquearía mediante la validación del manifiesto, que es una restricción artificial relativa a lo que admite el comportamiento de implementación o tiempo de ejecución.
Las aplicaciones destinadas a Windows 11 que pueden usar el nuevo espacio de nombres com4 para todas sus extensiones windows.comServer/windows.comInterface deben usarla. No se recomienda mezclar el nuevo espacio de nombres con los espacios de nombres anteriores, por motivos como:
- La implementación del paquete en versiones compatibles con el nuevo espacio de nombres controlará las extensiones de todos los espacios de nombres y los identificadores únicos duplicados entre las extensiones que usen diferentes versiones de espacio de nombres producirán un error. El uso de los espacios de nombres anteriores impide que la validación del manifiesto detecte estos errores.
- Debido a las limitaciones de los esquemas de espacio de nombres anteriores, una clave de la sintaxis anterior no puede hacer referencia a una clave en la nueva sintaxis porque se encuentran en instancias diferentes de la extensión.
El uso de la siguiente semántica de sintaxis com4 tiene requisitos de funcionalidad:
- CompatMode="classic" requiere Microsoft.classicAppCompat_8wekyb3d8bbwe
- Scope="machine" requiere Microsoft.classicAppCompatElevated_8wekyb3d8bbwe
En el ejemplo siguiente se muestra cómo registrar una implementación de servidor fuera de proceso y un servidor en proceso para la misma clase.
Ejemplos
<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>
Nuevas características de la extensión com4
- Compatibilidad con servidores en proceso (no administrados y administrados) y controladores personalizados en proceso (es decir, no el controlador predeterminado OLE). Esta funcionalidad está actualmente limitada y restringida por directiva:
- Actualmente, esto está pensado solo para su uso por paquetes con ubicación externa; no funciona para la mayoría de los paquetes normales debido a las ACL en la ubicación de instalación que impiden que los archivos DLL del paquete se carguen fuera del paquete. Para obtener más información sobre los paquetes con ubicación externa, consulte Conceder identidad de paquete mediante el empaquetado con ubicación externa.
- Ahora es posible asociar un TypeLib con un registro de clase.
Requisitos
Elemento | Value |
---|---|
Espacio de nombres | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (compilación 20348) |