Dela via


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.

InprocServer