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.

InprocServer