InprocServer32
Registreert een 32-bits in-processerver en specificeert het threadingmodel van het appartement waarin de server kan worden uitgevoerd.
Registervermelding
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Opmerkingen
ThreadingModel is een REG_SZ waarde waarmee het threadingmodel wordt opgegeven. De mogelijke waarden worden weergegeven in de volgende tabel.
Waarde | Beschrijving |
---|---|
Appartement | Appartement met één thread |
Beide | Een-threaded of multithreaded appartement |
Vrij | Multithreaded appartement |
Neutraal | Neutraal appartement |
U moet dezelfde waarde gebruiken voor elk object dat wordt geleverd door de in-process server.
Als ThreadingModel niet aanwezig is of niet is ingesteld op een waarde, wordt de server in het eerste appartement geladen dat in het proces is geïnitialiseerd. Dit appartement wordt soms aangeduid als het belangrijkste single-threaded appartement (STA). Als de eerste STA in een proces wordt geïnitialiseerd door COM, in plaats van door een expliciete aanroep van CoInitialize of CoInitializeEx, wordt deze de host-STA genoemd. COM maakt bijvoorbeeld een host-STA als een in-process-server die moet worden geladen een STA vereist, maar er momenteel geen STA is in het proces.
Indien mogelijk wordt de in-process server geladen in hetzelfde appartement als de client die het laadt. Als het threadingmodel van het client appartement niet compatibel is met het opgegeven model, wordt de server geladen zoals aangegeven in de volgende tabel.
Threadingmodel van server | Appartementsserver wordt uitgevoerd in |
---|---|
<\nopgegeven> | Hoofd-STA |
Beide | Hetzelfde appartement als client |
Vrij | Multithreaded appartement |
Neutraal | Neutraal appartement |
Als het threadingmodel van de server Appartement is, is het appartement waarin de server wordt geladen, afhankelijk van het appartement waarin de client wordt uitgevoerd, zoals aangegeven in de volgende tabel.
Appartement client wordt uitgevoerd in | Appartementsserver wordt uitgevoerd in |
---|---|
Multithreaded | Host STA |
Neutraal (op STA-thread) | Hetzelfde appartement als client |
Neutraal (op MTA-thread) | Host STA |
COM kan ook een host multithreaded appartement (MTA) maken. Als een client in een appartement met één thread een in-processerver aanvraagt waarvan het threadingmodel gratis is wanneer er geen MTA in het proces is, maakt COM een host-MTA en laadt de server erin.
Voor een 32-bits in-processerver moet de InprocHandler32-, InprocServer, InprocServer32en invoegbare sleutels zijn geregistreerd. De InprocServer vermelding is alleen nodig voor achterwaartse compatibiliteit. Als deze ontbreekt, werkt de klasse nog steeds, maar kan deze niet worden geladen in 16-bits toepassingen.
Als een container het register doorzoekt op een in-processerver, heeft de 16-bits versie prioriteit met een 16-bits container en heeft de 32-bits versie prioriteit met een 32-bits container.
Verwante onderwerpen