Inprocserver32

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

Registrierungseintrag

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

Hinweise

ThreadingModel ist ein REG _ SZ-Wert, der das Threadingmodell angibt. Die möglichen Werte werden in der folgenden Tabelle angezeigt.

Wert Beschreibung
Wohnung Singlethread-Apartment
Beide Singlethread-Apartment oder Multithread-Apartment
Kostenlos Multithread-Apartment
Neutral Neutrales Apartment

Sie müssen für jedes vom Prozessserver bereitgestellte Objekt 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. Dieses Apartment wird manchmal als Haupt-Singlethread-Apartment (STA) bezeichnet. Wenn das erste STA in einem Prozess nicht durch einen expliziten Aufruf von CoInitialize oder CoInitializeEx, sondern durch COM initialisiertwird, wird es als Host-STA bezeichnet. Com erstellt z. B. ein Host-STA, wenn ein zu ladener In-Process-Server ein STA erfordert, aber derzeit kein STA im Prozess vorhanden ist.

Nach Möglichkeit wird der Prozessserver in das gleiche Apartment geladen wie der Client, der ihn lädt. Wenn das Threadingmodell des Clientapartments 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.
Haupt-STA
Beide Gleiches Apartment wie Client
Kostenlos Multithread-Apartment
Neutral Neutrales Apartment

Wenn das Threadingmodell des Servers Apartment ist, hängt das Apartment, in dem der Server geladen wird, von dem Apartment ab, in dem 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) Gleiches Apartment wie Client
Neutral (im MTA-Thread) Host STA

COM kann auch ein Multithread-Apartment (MTA) des Hosts erstellen. Wenn ein Client in einem Singlethread-Apartment einen Prozessserver 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 InprocServer-Eintrag 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 In-Process-Server 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