Freigeben über


InprocServer32

Registriert einen 32-Bit-Prozessserver und gibt das Threadingmodell der Wohnung an, in der der Server ausgeführt werden kann.

Registrierungseintrag

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
   {CLSID}
      InprocServer32
         (Default) = path
         ThreadingModel = value

Bemerkungen

ThreadingModel ist ein REG_SZ Wert, der das Threadingmodell angibt. Die möglichen Werte sind in der folgenden Tabelle aufgeführt.

Wert BESCHREIBUNG
Apartment Singlethread-Apartment
Beide Singlethread- oder Multithread-Apartment
Kostenlos Multithread-Wohnung
Neutral Neutrale Wohnung

 

Sie müssen für jedes Objekt, das vom Prozessserver bereitgestellt wird, den gleichen Wert verwenden.

Wenn ThreadingModel nicht vorhanden ist oder nicht auf einen Wert festgelegt ist, wird der Server in das erste Apartment geladen, das im Prozess initialisiert wurde. Diese Wohnung wird manchmal als Standard Singlethread-Apartment (STA) bezeichnet. Wenn die erste STA in einem Prozess von COM und nicht durch einen expliziten Aufruf von CoInitialize oder CoInitializeEx initialisiert wird, wird sie als Host-STA bezeichnet. Beispielsweise erstellt COM eine Host-STA, wenn ein prozessinterner Server, der geladen werden soll, eine STA erfordert, aber derzeit keine STA im Prozess vorhanden ist.

Wenn möglich, wird der Prozessserver in derselben Wohnung geladen wie der Client, der ihn lädt. Wenn das Threadingmodell des Client-Apartments nicht mit dem angegebenen Modell kompatibel ist, wird der Server wie in der folgenden Tabelle angegeben geladen.

Threadingmodell des Servers Der Apartmentserver wird in ausgeführt.
<\nangegeben> Haupt-STA
Beide Dieselbe Wohnung wie der Client
Kostenlos Multithread-Wohnung
Neutral Neutrale Wohnung

 

Wenn das Threadingmodell des Servers Apartment lautet, hängt das Apartment, in das der Server geladen wird, von der Wohnung ab, in der der Client ausgeführt wird, wie in der folgenden Tabelle angegeben.

Der Apartmentclient wird in ausgeführt. Der Apartmentserver wird in ausgeführt.
Multithreaded Host STA
Neutral (im STA-Thread) Dieselbe Wohnung wie der Client
Neutral (im MTA-Thread) Host STA

 

COM kann auch ein Host-Multithread-Apartment (MTA) erstellen. Wenn ein Client in einem Singlethread-Apartment einen Prozessinternen Server anfordert, dessen Threadingmodell Free ist, wenn kein MTA im Prozess vorhanden ist, erstellt COM einen Host-MTA und lädt den Server in ihn.

Für einen 32-Bit-Prozessserver müssen die Schlüssel InprocHandler32, InprocServer, InprocServer32 und Insertable registriert werden. Der Eintrag InprocServer wird nur aus Gründen der Abwärtskompatibilität benötigt. Wenn sie fehlt, funktioniert die Klasse weiterhin, kann aber nicht in 16-Bit-Anwendungen geladen werden.

Wenn ein Container die Registrierung nach einem Prozessserver durchsucht, hat die 16-Bit-Version Priorität mit einem 16-Bit-Container, und die 32-Bit-Version hat Priorität mit einem 32-Bit-Container.

InprocServer