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.
Verwandte Themen