Condividi tramite


InprocServer32

Registra un server in-process a 32 bit e specifica il modello di threading dell'apartment in cui il server può essere eseguito.

Voce del Registro di sistema

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
   {CLSID}
      InprocServer32
         (Default) = path
         ThreadingModel = value

Osservazioni

ThreadingModel è un valore REG_SZ che specifica il modello di threading. I valori possibili sono illustrati nella tabella seguente.

Valore Descrizione
Appartamento Apartment a thread singolo
Ambedue Apartment a thread singolo o multithreading
Gratuito Appartamento multithreading
Neutrale Appartamento neutro

 

È necessario utilizzare lo stesso valore per ogni oggetto fornito dal server in-process.

Se threadingModel non è presente o non è impostato su un valore, il server viene caricato nel primo apartment inizializzato nel processo. Questo appartamento è talvolta definito apartment a thread singolo principale (STA). Se il primo sta sta in un processo viene inizializzato da COM, anziché da una chiamata esplicita a CoInitialize o CoInitializeEx, viene chiamato STA host. Ad esempio, COM crea un host STA se un server in-process da caricare richiede un sta sta, ma attualmente non è presente alcuna sta sta nel processo.

Quando possibile, il server in-process viene caricato nello stesso apartment del client che lo carica. Se il modello di threading dell'apartment client non è compatibile con il modello specificato, il server viene caricato come indicato nella tabella seguente.

Modello di threading del server Il server apartment viene eseguito in
<\nspecificato> STA principale
Ambedue Stesso appartamento del cliente
Gratuito Appartamento multithreading
Neutrale Appartamento neutro

 

Se il modello di threading del server è Apartment, l'apartment in cui viene caricato il server dipende dall'apartment in cui è in esecuzione il client, come indicato nella tabella seguente.

Il client apartment viene eseguito in Il server apartment viene eseguito in
Multithreading Host STA
Neutro (nel thread STA) Stesso appartamento del cliente
Neutro (nel thread MTA) Host STA

 

COM può anche creare un apartment multithreading host (MTA). Se un client in un apartment a thread singolo richiede un server in-process il cui modello di threading è Gratuito quando non è presente alcun MTA nel processo, COM crea un host MTA e lo carica nel server.

Per un server in-process a 32 bit, è necessario registrare InprocHandler32, InprocServer, InprocServer32e chiavi di inseriscibili. La voce InprocServer è necessaria solo per garantire la compatibilità con le versioni precedenti. Se manca, la classe funziona ancora, ma non può essere caricata nelle applicazioni a 16 bit.

Se un contenitore cerca un server in-process nel Registro di sistema, la versione a 16 bit ha priorità con un contenitore a 16 bit e la versione a 32 bit ha priorità con un contenitore a 32 bit.

InprocServer