Compartilhar via


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.

inprocServer