com4 :InProcessServerClassReference

Spécifie la classe ou la référence de classe à laquelle le serveur in-process inscrit est associé et définit les détails d’inscription.

Hiérarchie d’éléments

<Paquet>

    <Applications>

         <Application>

              <Extensions>

                   <com4 :SurrogateServer>

                        <com4 :InProcessServerClassReference>

Syntaxe

<com4:InProcessServerClassReference
  EnableOleDefaultHandler = 'A boolean value.'
  Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' />

Attributs et éléments

Attributs

Attribut Description Type de données Obligatoire Valeur par défaut
EnableOleDefaultHandler Cette valeur doit être définie sur true si la valeur par défaut de la clé InprocHandler32 est Ole32.dll. Sinon, il doit être omis. Une valeur booléenne. Oui False
Id ID de la classe référencée. GUID sous la forme xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Yes

Éléments enfants

Aucune.

Éléments parents

Élément parent Description
com4 :SurrogateServer Inscrit un SurrogateServer avec une ou plusieurs inscriptions de classes.

Remarques

La clé CLSID](/windows/win32/com/clsid-key-hklm) dans la disposition du Registre COM permet d’inscrire un CLSID pour l’activation inproc (CLSCTX_INPROC_SERVER) et pour l’activation outofproc dans un serveur de substitution (CLSCTX_LOCAL_SERVER) en spécifiant :

  • Détails d’activation inproc dans une sous-clé InprocServer32 .
  • Référence à une clé AppID via la valeur AppID de la clé CLSID, où la clé AppID spécifie un substitut via la valeur DllSurrogate . Notez que pour l’activation de l’outofproc dans un serveur de substitution, les détails d’inscription du serveur inproc, par exemple le chemin d’accès dll et ThreadingModel, sont également utilisés dans l’activation outofproc. L’enfant ClassReference de l’élément InProcessServer permet à un package qui inscrit un CLSID pour l’activation inproc et outofproc de spécifier une fois les détails du serveur inproc, en tant qu’élément InProcessServer/Class ou InProcessServer/ClassReference , et référencer cet élément à partir du SurrogateServer qui prend en charge l’activation outofproc du CLSID. Cette structure pour les inscriptions inproc/outofproc reflète plus étroitement la disposition du Registre COM que la spécification indépendante du chemin d’accès dll et de ThreadingModel dans les éléments InProcessServer/ClassReference et SurrogateServer/ClassReference.

Lors de l’empaquetage d’une application avec un CLSID inscrit pour l’activation outofproc dans un serveur de substitution, il est généralement recommandé que seul le serveur de substitution soit inscrit dans le manifeste. Par exemple, les inscriptions de substitution sont souvent utilisées pour prendre en charge les points d’extension COM qui ont historiquement activé les implémentations de serveur inproc, mais qui recommandent désormais une inscription de serveur outofproc comme meilleure pratique pour l’isolation. Pour les applications empaquetées, il existe des limitations fonctionnelles supplémentaires pour les serveurs inproc (voir In-ProcessServers pour plus d’informations), alors que tout package avec la fonctionnalité limitée runFullTrust peut inscrire correctement un serveur de substitution et, pour la plupart des points d’extension, l’inscription d’un serveur de substitution est suffisante pour activer la fonctionnalité de l’extension. Toutefois, si une application empaquetée doit prendre en charge l’activation inproc de ses CLSID pour la compatibilité avec d’autres applications qui demandent l’activation inproc (CLSCTX_INPROC_SERVER), et qu’elle remplit les conditions requises pour l’inscription d’un serveur inproc, elle peut inscrire le CLSID pour l’activation inproc et l’activation outofproc dans une substitution. Dans ce cas, il est recommandé de fournir les détails du serveur inproc dans un élément InProcessServer/Class ou InProcessServer/ClassReference , et de les référencer à partir d’un élément SurrogateServer/InProcessServerClassReference .

Exemples

L’exemple suivant illustre l’utilisation d’InProcessServerClassreference pour référencer une classe dans une inscription de serveur de substitution.

<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> 

Configuration requise

Élément Valeur
Espace de noms http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (build 20348)