InprocServer32
Registra um servidor em processo de 32 bits e especifica o modelo de threading do apartamento em que o servidor pode ser executado.
Entrada do Registro
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Comentários
ThreadingModel é um valor REG_SZ que 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 com thread único ou multithread |
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 de thread único (STA). Se o primeiro STA em um processo for inicializado por COM, em vez de por uma chamada explícita para CoInitialize ou CoInitializeEx, ele será chamado de STA do host. Por exemplo, o COM cria um STA de host se um servidor em processo a ser carregado exigir um STA, mas atualmente não houver nenhum 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 do 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 do apartamento é executado em |
---|---|
<\não especificado> | STA Principal |
Ambos | Mesmo apartamento que cliente |
Grátis | Apartamento multithreaded |
Neutro | Apartamento neutro |
Se o modelo de threading do servidor for Apartment, o apartamento em que o servidor está carregado dependerá do apartamento em que o cliente está sendo executado, conforme indicado na tabela a seguir.
O cliente do apartamento é executado em | O servidor do apartamento é executado em |
---|---|
Multithread | STA do anfitrião |
Neutro (na rosca STA) | Mesmo apartamento que cliente |
Neutro (na linha MTA) | STA do anfitrião |
COM também pode criar um host multithreaded apartamento (MTA). Se um cliente em um apartamento de thread único solicitar um servidor em processo cujo modelo de threading é Livre quando não houver MTA no processo, COM criará um MTA de host e carregará o servidor nele.
Para um servidor em processo de 32 bits, as chaves InprocHandler32, InprocServer, InprocServer32 e Insertable 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