com4:InProcessServerClassReference
Especifica a referência de classe ou classe com a qual o servidor em processo registrado está associado e define os detalhes do registro.
Hierarquia de elementos
<com4:InProcessServerClassReference>
Syntax
<com4:InProcessServerClassReference
EnableOleDefaultHandler = 'A boolean value.'
Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' />
Atributos e elementos
Atributos
Atributo | Descrição | Tipo de dados | Obrigatório | Valor padrão |
---|---|---|---|---|
EnableOleDefaultHandler | Isso deverá ser definido como true se o valor padrão da chave InprocHandler32 for Ole32.dll . Caso contrário, ele deverá ser omitido. |
Um valor booliano. | Sim | Falso |
Id | A ID da Classe que está sendo referenciada. | Um GUID no formulário xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxx. | Yes |
Elementos filho
Nenhum.
Elementos pai
Elemento pai | Descrição |
---|---|
com4:SurrogateServer | Registra um SurrogateServer com um ou muitos registros de classe. |
Comentários
A chave CLSID](/windows/win32/com/clsid-key-hklm) no layout do Registro COM permite que um CLSID seja registrado para ativação inproc (CLSCTX_INPROC_SERVER) e para ativação de outofproc em um servidor alternativo (CLSCTX_LOCAL_SERVER) especificando:
- Detalhes de ativação inproc em uma subchave InprocServer32 .
- Uma referência a uma chave AppID por meio do valor AppID da chave CLSID, em que a chave AppID especifica um substituto por meio do valor DllSurrogate . Observe que, para ativação outofproc em um servidor alternativo, os detalhes de registro do servidor inproc, por exemplo, caminho dll e ThreadingModel, também são usados na ativação outofproc. O filho ClassReference do elemento InProcessServer habilita um pacote que registra um CLSID para ativação inproc e outofproc para especificar os detalhes do servidor inproc uma vez, como um elemento InProcessServer/Class ou InProcessServer/ClassReference , e referencia esse elemento do SurrogateServer que dá suporte à ativação outofproc do CLSID. Essa estrutura para os registros inproc/outofproc reflete mais de perto o layout do registro COM do que especificar independentemente o caminho dll e ThreadingModel nos elementos InProcessServer/ClassReference e SurrogateServer/ClassReference.
Ao empacotar um aplicativo com um CLSID registrado para ativação outofproc em um servidor substituto, geralmente é recomendável que apenas o servidor substituto seja registrado no manifesto. Por exemplo, os registros alternativos geralmente são usados para dar suporte a pontos de extensão baseados em COM que historicamente habilitaram implementações de servidor inproc, mas que agora recomendam um registro de servidor outofproc como uma prática recomendada para isolamento. Para aplicativos empacotados, há limitações funcionais adicionais para servidores inproc (consulte In-ProcessServers para obter detalhes), enquanto qualquer pacote com a funcionalidade restrita runFullTrust pode registrar com êxito um servidor substituto e, para a maioria dos pontos de extensão que registram um servidor substituto, é suficiente para habilitar a funcionalidade da extensão. No entanto, se um aplicativo empacotado precisar dar suporte à ativação inproc de seus CLSIDs para compatibilidade com outros aplicativos que solicitam ativação inproc (CLSCTX_INPROC_SERVER) e atende aos requisitos para registrar um servidor inproc, ele pode registrar o CLSID para ativação inproc e ativação de outofproc em um substituto. Nesse caso, é recomendável fornecer os detalhes do servidor inproc em um elemento InProcessServer/Class ou InProcessServer/ClassReference e referenciá-los de um elemento SurrogateServer/InProcessServerClassReference .
Exemplos
O exemplo a seguir ilustra o uso de InProcessServerClassreference para fazer referência a uma classe em um registro de servidor alternativo.
<com4:Class Id="d57899b9-1334-4600-904a-719df0512988" DisplayName="CLSID_Baz"/>
<com4:InProcessServer Path="MyServer.dll">
<com4:ClassReference Id="d57899b9-1334-4600-904a-719df0512988" ThreadingModel="Apartment"/>
</com4:InProcessServer>
<com:SurrogateServer DisplayName="My surrogate server">
<com4:InProcessServerClassReference Id="d57899b9-1334-4600-904a-719df0512988"/>
</com:SurrogateServer>
Requisitos
Item | Valor |
---|---|
Namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (Build 20348) |