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
Observações
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 com thread único |
Ambos | Apartamento com thread único ou multithread |
Livre | 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 às vezes é chamado de STA (apartamento de thread único) principal. 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, COM cria um STA de host se um servidor em processo a ser carregado requer um STA, mas atualmente não há 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 de apartamento é executado em |
---|---|
<\not especificado> | STA Principal |
Ambos | Mesmo apartamento que o cliente |
Livre | Apartamento multithreaded |
Neutro | Apartamento neutro |
Se o modelo de threading do servidor for Apartment, o apartamento em que o servidor é carregado depende do apartamento em que o cliente está em execução, conforme indicado na tabela a seguir.
O cliente do apartamento é executado em | O servidor de apartamento é executado em |
---|---|
Multithread | Host STA |
Neutro (no thread STA) | Mesmo apartamento que o cliente |
Neutro (no thread do MTA) | Host STA |
O COM também pode criar um MTA (apartamento multithreaded) de host. Se um cliente em um apartamento de thread único solicitar um servidor em processo cujo modelo de threading é Gratuito 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, o InprocHandler32, InprocServer, InprocServer32e chaves de inseriveis devem ser registradas. A entrada inprocServer é necessária apenas para compatibilidade com versões anteriores. Se estiver ausente, a classe ainda funcionará, mas não poderá ser carregada em aplicativos de 16 bits.
Se um contêiner estiver pesquisando no registro um servidor em processo, 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