Freigeben über


com4:InProcessServerClassReference

Gibt den Klassen- oder Klassenverweis an, dem der registrierte prozessinterne Server zugeordnet ist, und legt Registrierungsdetails fest.

Elementhierarchie

<Paket>

    <Anwendungen>

         <Anwendung>

              <Erweiterungen>

                   <com4:SurrogateServer>

                        <com4:InProcessServerClassReference>

Syntax

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

Attribute und Elemente

Attribute

attribute BESCHREIBUNG Datentyp Erforderlich Standardwert
EnableOleDefaultHandler Dies sollte auf true festgelegt werden, wenn der Standardwert des InprocHandler32-Schlüssels ist Ole32.dll. Andernfalls sollte er weggelassen werden. Ein boolescher Wert. Ja False
Id Die ID der Klasse , auf die verwiesen wird. Eine GUID im Format xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Yes

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Übergeordnetes Element BESCHREIBUNG
com4:SurrogateServer Registriert einen SurrogateServer mit einer oder mehreren Klassenregistrierungen.

Hinweise

Der CLSID-Schlüssel](/windows/win32/com/clsid-key-hklm) im COM-Registrierungslayout ermöglicht die Registrierung einer CLSID für die inproc-Aktivierung (CLSCTX_INPROC_SERVER) und für die outofproc-Aktivierung in einem Ersatzserver (CLSCTX_LOCAL_SERVER), indem Folgendes angegeben wird:

  • Details zur inproc-Aktivierung in einem InprocServer32-Unterschlüssel .
  • Ein Verweis auf einen AppID-Schlüssel über den AppID-Wert des CLSID-Schlüssels, wobei der AppID-Schlüssel ein Ersatzzeichen über den Wert DllSurrogate angibt. Beachten Sie, dass für die outofproc-Aktivierung auf einem Ersatzserver die Registrierungsdetails des inproc-Servers, z. B. DLL-Pfad und ThreadingModel, auch bei der Outofproc-Aktivierung verwendet werden. Das untergeordnete ClassReference-Element des InProcessServer-Elements ermöglicht es einem Paket, das eine CLSID sowohl für die Inproc- als auch für die Outofproc-Aktivierung registriert, die Details des inproc-Servers einmal als InProcessServer/Class - oder InProcessServer/ClassReference-Element anzugeben und auf dieses Element aus dem SurrogateServer zu verweisen, der die outofproc-Aktivierung der CLSID unterstützt. Diese Struktur für die Inproc/outofproc-Registrierungen spiegelt das COM-Registrierungslayout näher wider, als unabhängig den DLL-Pfad und ThreadingModel in den Elementen InProcessServer/ClassReference und SurrogateServer/ClassReference anzugeben.

Beim Packen einer Anwendung mit einer CLSID, die für die outofproc-Aktivierung in einem Ersatzserver registriert ist, wird im Allgemeinen empfohlen, dass nur der Ersatzserver im Manifest registriert wird. Beispielsweise werden Ersatzregistrierungen häufig verwendet, um COM-basierte Erweiterungspunkte zu unterstützen, die in der Vergangenheit inproc-Serverimplementierungen aktiviert haben, die jetzt jedoch eine Outofproc-Serverregistrierung als bewährte Methode für die Isolation empfehlen. Für verpackte Anwendungen gibt es zusätzliche funktionale Einschränkungen für inproc-Server (ausführliche Informationen finden Sie unter In-ProcessServers ), während jedes Paket mit der eingeschränkten Funktion runFullTrust erfolgreich einen Ersatzserver registrieren kann, und für die meisten Erweiterungspunkte reicht die Registrierung eines Ersatzservers aus, um die Funktionalität der Erweiterung zu aktivieren. Wenn eine gepackte Anwendung jedoch die inproc-Aktivierung ihrer CLSIDs unterstützen muss, um mit anderen Anwendungen kompatibel zu sein, die die inproc-Aktivierung (CLSCTX_INPROC_SERVER) anfordern, und die Anforderungen für die Registrierung eines inproc-Servers erfüllt, kann sie die CLSID für die Inproc-Aktivierung und outofproc-Aktivierung in einem Ersatzzeichen registrieren. In diesem Fall wird empfohlen, die inproc-Serverdetails in einem InProcessServer/Class - oder InProcessServer/ClassReference-Element anzugeben und aus einem SurrogateServer/InProcessServerClassReference-Element darauf zu verweisen.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung von InProcessServerClassreference , um auf eine Klasse in einer Ersatzserverregistrierung zu verweisen.

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

Anforderungen

Element Wert
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (Build 20348)