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.
Argomenti correlati