InprocServer32
Registrerar en 32-bitars in-process-server och anger trådningsmodellen för den lägenhet som servern kan köras i.
Registerpost
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Anmärkningar
ThreadingModel är ett REG_SZ värde som anger trådmodellen. Möjliga värden visas i följande tabell.
Värde | Beskrivning |
---|---|
Lägenhet | Entrådad lägenhet |
Båda | Entrådad eller flertrådad lägenhet |
Gratis | Flertrådad lägenhet |
Neutral | Neutral lägenhet |
Du måste använda samma värde för varje objekt som tillhandahålls av den pågående servern.
Om ThreadingModel inte finns eller inte har angetts till ett värde, läses servern in i den första lägenheten som initierades under processen. Denna lägenhet kallas ibland för den viktigaste enkeltrådade lägenheten (STA). Om den första STA i en process initieras av COM, i stället för av ett explicit anrop till CoInitialize eller CoInitializeEx, kallas den värd-STA. Com skapar till exempel en värd-STA om en pågående server som ska läsas in kräver en STA men det för närvarande inte finns någon STA i processen.
När det är möjligt läses den pågående servern in i samma lägenhet som klienten som läser in den. Om trådningsmodellen för klientlägenheten inte är kompatibel med den angivna modellen läses servern in enligt följande tabell.
Trådningsmodell för server | Lägenhetsservern körs i |
---|---|
<\not angiven> | Main STA |
Båda | Samma lägenhet som klienten |
Gratis | Flertrådad lägenhet |
Neutral | Neutral lägenhet |
Om serverns trådningsmodell är Lägenhet beror den lägenhet som servern läses in i på den lägenhet som klienten körs i, enligt följande tabell.
Lägenhetsklienten körs i | Lägenhetsservern körs i |
---|---|
Multithreaded | Värd-STA |
Neutral (på STA-tråd) | Samma lägenhet som klienten |
Neutral (på MTA-tråd) | Värd-STA |
COM kan också skapa en värd för flertrådad lägenhet (MTA). Om en klient i en entrådad lägenhet begär en processserver vars trådningsmodell är Kostnadsfri när det inte finns någon MTA i processen skapar COM en värd-MTA och läser in servern i den.
För en 32-bitars processerver måste InprocHandler32, InprocServer, InprocServer32och Infogbara nycklar registreras. Posten InprocServer behövs endast för bakåtkompatibilitet. Om den saknas fungerar klassen fortfarande men den kan inte läsas in i 16-bitarsprogram.
Om en container söker i registret efter en processerver har 16-bitarsversionen prioritet med en 16-bitars container och 32-bitarsversionen har prioritet med en 32-bitars container.
Relaterade ämnen