Partilhar via


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.

InprocServer