com4:ComServer
Declara um ponto de extensão de pacote do tipo windows.comServer. A extensão comServer pode incluir registros de classe, incluindo detalhes de ativação para os servidores que implementam essas classes, e registros ProgId e TreatAsClass, que fornecem identificadores adicionais usados para referenciar essas classes em runtime.
Hierarquia de elementos
aplicativos <>
extensões de <>
<com4:ComServer>
extensões de <>
<com4:ComServer>
Sintaxe
<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>
Chave
{}
intervalo específico de ocorrências
Atributos e elementos
Atributos
Nenhum.
Elementos filho
Elemento filho | Descrição |
---|---|
classe | Define um registro de classe em um servidor COM. |
ExeServer | Registra um ExeServer com um ou muitos registros de classe. |
|
Registra um ServiceServer com um ou muitos registros de classe. |
|
Registra um SurrogateServer com um ou muitos registros de classe. |
|
Um registro que corresponde a um registro CLSID com a subchave TreatAs. |
progId |
Um ProgID (identificador programático) que pode ser associado a um CLSID. |
|
Registra um servidor em processo com um ou muitos registros de classe. |
InProcessHandler | Registra um manipulador em processo com um ou muitos registros de classe. |
ManagedInProcessServer | Registra um servidor em processo gerenciado com um ou muitos registros de classe. |
com5:InProcessServer | Registra um servidor em processo com um ou muitos registros de classe. O esquema com5 apresenta algumas pequenas alterações na validação sintactica do esquema com4. |
com5:InProcessHandler | Registra um manipulador em processo com um ou muitos registros de classe. O esquema com5 apresenta algumas pequenas alterações na validação sintactica do esquema com4. |
Elementos pai
Elemento pai | Descrição |
---|---|
com4:Extension | Fornece funcionalidade para expor registros COM a clientes fora do pacote do aplicativo. A extensão com4 é uma nova versão que é um superconjunto e substituição para as versões de esquema COM anteriores. |
Observações
Em pacotes de vários aplicativos, é importante colocar o registro do servidor COM no elemento de manifesto aplicativos/aplicativo correto, pois os processos de servidor COM serão executados com a identidade do elemento Application/Application ancestral.
Os servidores COM registrados no manifesto sempre obtêm o comportamento de AAP (Activate As Package), o que significa que o servidor COM é executado com o token padrão de sessão do usuário com declarações de pacote e aplicativo adicionadas. Isso é diferente do comportamento de ativação padrão de servidores COM registrados clássicamente, nos quais o servidor COM é executado com o token do cliente. Para a maioria dos aplicativos, essa diferença não será perceptível porque os clientes normalmente são executados com o token padrão de sessão do usuário. Não há suporte para outros comportamentos de ativação, como RunAs.
É possível ter várias extensões de comServer no elemento Applications/Application, mas na maioria dos casos isso não é necessário nem recomendado. Um exemplo de um caso de borda em que várias extensões de comServer são necessárias é se um pacote precisa de alguns dos registros para ter CompatMode="clássico", enquanto outros têm CompatMode="modern", a única maneira de fazer isso é dividi-los entre extensões.
Alterações na extensão com4
A sintaxe da extensão com4 é um novo superconjunto da sintaxe de extensão com anterior. Esta versão da sintaxe dá suporte à mesma estrutura que as versões mais antigas da sintaxe, em que os registros de classe são representados por elementos ExeServer/Class, SurrogateServer/Class, ServiceServer/Class, InProcessServer/Class, InProcessHandler/Class ou ManagedInProcessServer/Class.
A nova sintaxe também dá suporte a estruturas alternativas, em que:
- ExeServer/ClassReference, SurrogateServer/ClassReference, ServiceServer/ClassReference, InProcessServer/ClassReference, InProcessHandler/ClassReference ou elementos ManagedInProcessServer/ClassReference fazem referência a elementos de classe de nível superior
e/ou
- Os elementos SurrogateServer/InProcessServerClassReference fazem referência a elementos InProcessServer/Class (como alternativa, InProcessServer/ClassReference) ou ManagedInProcessServer/Class (como alternativa, ManagedInProcessServer/ClassReference).
A principal finalidade da nova estrutura de sintaxe é habilitar combinações de servidor em processo, manipulador em processo e registros de servidor fora do processo para o mesmo CLSID, como é possível e com suporte com o layout clássico do Registro. Para obter mais informações sobre o layout do registro COM, consulte de chave CLSID.
Requisitos
Item | Valor |
---|---|
namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
versão mínima do sistema operacional | Windows 10 (Build 20348) |