InprocServer32
Registra um servidor em processo de 32 bits e especifica o modelo de threading do apartamento no qual o servidor pode ser executado.
Entrada de registo
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Comentários
ThreadingModel é um valor REG_SZ especifica o modelo de threading. Os valores possíveis são mostrados na tabela a seguir.
Valor | Descrição |
---|---|
Apartamento | Apartamento de rosca única |
Ambos | Apartamento single-threaded ou multithreaded |
Grátis | Apartamento multithreaded |
Neutro | Apartamento neutro |
Você deve usar o mesmo valor para cada objeto fornecido pelo servidor em processo.
Se ThreadingModel não estiver presente ou não estiver definido como um valor, o servidor será carregado no primeiro apartamento que foi inicializado no processo. Este apartamento é por vezes referido como o principal apartamento single-threaded (STA). Se o primeiro STA em um processo é inicializado por COM, em vez de por uma chamada explícita para CoInitialize ou CoInitializeEx, ele é chamado de STA host. Por exemplo, COM cria um STA host se um servidor em processo a ser carregado requer um STA, mas atualmente não há STA no processo.
Sempre que possível, o servidor em processo é carregado no mesmo apartamento que o cliente que o carrega. Se o modelo de threading do apartamento cliente não for compatível com o modelo especificado, o servidor será carregado conforme indicado na tabela a seguir.
Modelo de threading do servidor | O servidor de apartamentos é executado em |
---|---|
<\nespecificado> | STA Principal |
Ambos | Mesmo apartamento como cliente |
Grátis | Apartamento multithreaded |
Neutro | Apartamento neutro |
Se o modelo de threading do servidor for Apartamento, o apartamento no qual o servidor está carregado depende do apartamento em que o cliente está sendo executado, conforme indicado na tabela a seguir.
O cliente do apartamento é executado em | O servidor de apartamentos é executado em |
---|---|
Multithreaded | Anfitrião STA |
Neutro (no segmento STA) | Mesmo apartamento como cliente |
Neutro (no segmento MTA) | Anfitrião STA |
COM também pode criar um apartamento multithreaded host (MTA). Se um cliente em um apartamento de thread único solicitar um servidor em processo cujo modelo de threading seja Free quando não houver MTA no processo, o COM criará um MTA de host e carregará o servidor nele.
Para um servidor em processo de 32 bits, as chaves InprocHandler32, InprocServer, InprocServer32e Insertable chaves devem ser registradas. A entrada InprocServer é necessária apenas para compatibilidade com versões anteriores. Se estiver faltando, a classe ainda funciona, mas não pode ser carregada em aplicativos de 16 bits.
Se um contêiner estiver procurando um servidor em processo no Registro, a versão de 16 bits terá prioridade com um contêiner de 16 bits e a versão de 32 bits terá prioridade com um contêiner de 32 bits.
Tópicos relacionados