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
Entrambi Apartment a thread singolo o multithreading
Libero Appartamento multithreading
Neutra 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
<\non specificato> STA principale
Entrambi Stesso appartamento del cliente
Libero Appartamento multithreading
Neutra 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 le chiavi InprocHandler32, InprocServer, InprocServer32 e Insertable. La voce InprocServer è necessaria solo per 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