Freigeben über


InprocServer32

Registriert einen 32-Bit-In-Process-Server 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

Bemerkungen

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

Wert Beschreibung
Wohnung Singlethread-Wohnung
Beide Singlethreaded- oder Multithread-Apartment
Kostenlos Multithread-Wohnung
Neutral Neutrale Wohnung

 

Sie müssen für jedes Objekt, das vom Prozessserver bereitgestellt wird, denselben 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 Haupt-Singlethread-Wohnung (STA) bezeichnet. Wenn das erste STA in einem Prozess von COM initialisiert wird und nicht durch einen expliziten Aufruf von CoInitialize oder CoInitializeEx-, wird es als Host STA bezeichnet. Beispielsweise erstellt COM ein Host-STA, wenn ein zu ladener In-Process-Server ein STA erfordert, aber derzeit kein 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 der Client-Wohnung nicht mit dem angegebenen Modell kompatibel ist, wird der Server wie in der folgenden Tabelle angegeben geladen.

Threadingmodell des Servers Apartmentserver wird ausgeführt in
<\nangegebenen> Haupt-STA
Beide Gleiche Wohnung wie Der Kunde
Kostenlos Multithread-Wohnung
Neutral Neutrale Wohnung

 

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

Der Apartmentclient wird ausgeführt in Apartmentserver wird ausgeführt in
Multithreaded Host STA
Neutral (im STA-Thread) Gleiche Wohnung wie Der Kunde
Neutral (im MTA-Thread) Host STA

 

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

Für einen 32-Bit-In-Process-Server müssen der InprocHandler32, InprocServer-, InprocServer32-und Einfügebaren Schlüssel registriert werden. Der InprocServer- Eintrag ist nur aus Gründen der Abwärtskompatibilität erforderlich. Wenn sie fehlt, funktioniert die Klasse weiterhin, kann aber nicht in 16-Bit-Anwendungen geladen werden.

Wenn ein Container die Registrierung für einen 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-