Aximp.exe (Importador de Controle ActiveX do Windows Forms)
O Importador de Controle ActiveX converte definições de tipo em uma biblioteca de tipos COM para um controle ActiveX em um controle do Windows Forms.
O Windows Forms só pode hospedar controles do Windows Forms — ou seja, classes derivadas de Control. Aximp.exe gerencia uma classe wrapper para um controle ActiveX que pode ser hospedado no Windows Form. Isso permite usar o mesmo suporte de tempo de design e a mesma metodologia de programação aplicável a outros controles do Windows Forms.
Para hospedar o controle ActiveX, você deve gerar um controle wrapper derivado de AxHost. Esse controle de wrapper contém uma instância do controle ActiveX subjacente. Ele sabe como se comunicar com o controle ActiveX, mas é exibido como um controle do Windows Forms. Esse controle gerado hospeda o controle ActiveX e expõe suas propriedades, métodos e eventos como os do controle gerado.
Essa ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor do Visual Studio ou o PowerShell do Desenvolvedor do Visual Studio.
No prompt de comando, digite o seguinte:
Sintaxe
aximp [options]{file.dll | file.ocx}
Comentários
Argumento | Descrição |
---|---|
file | O nome do arquivo de origem que contém o controle ActiveX a ser convertido. O argumento do arquivo deve ter a extensão .dll ou .ocx. |
Opção | Descrição |
---|---|
/delaysign |
Especifica Aximp.exe para assinar o controle resultante usando-se a assinatura com atraso. Você deve especificar essa opção com a opção /keycontainer: , /keyfile: ou /publickey: . Para obter mais informações sobre o processo de assinatura com atraso, consulte Assinatura com Atraso de um Assembly. |
/help |
Exibe sintaxe de comando e opções para a ferramenta. |
/keycontainer: containerName |
Assina o controle resultante com um nome forte usando o par de chaves pública/privada encontrado no contêiner de chave especificado por containerName. |
/keyfile: Filename |
Assina o controle resultante com um nome forte usando o par de chaves pública/privada oficial do editor encontrado em filename. |
/nologo |
Suprime a exibição do banner de inicialização da Microsoft. |
/out: Filename |
Especifica o nome do assembly a ser criado. |
/publickey: Filename |
Assina o controle resultante com um nome forte usando a chave pública encontrada no arquivo especificado por filename. |
/rcw: Filename |
Usa o runtime callable wrapper especificado, em vez de gerar um novo. Convém especificar várias instâncias. O diretório atual é usado em caminhos relativos. Para obter mais informações, consulte RCW (Runtime Callable Wrapper). |
/silent |
Suprime a exibição de mensagens de sucesso. |
/source |
Gera o código-fonte do C# para o wrapper do Windows Forms. |
/verbose |
Especifica o modo detalhado; exibe informações de andamento adicionais. |
/? |
Exibe sintaxe de comando e opções para a ferramenta. |
Aximp.exe converte uma biblioteca de tipos inteira do Controle ActiveX de uma só vez e produz um conjunto de assemblies que contêm os metadados de Common Language Runtime e controlam a implementação dos tipos definidos na biblioteca de tipos original. Os arquivos gerados são nomeados de acordo com o seguinte padrão:
Proxy de Common Language Runtime para tipos COM: progid.dll
Proxy do Windows Forms para controles ActiveX (em que Ax significa ActiveX): Axprogid.dll
Observação
Se o nome de um membro do controle ActiveX corresponder a um nome definido no .NET Framework, Aximp.exe prefixará o nome do membro com "Ctl" ao criar a classe derivada AxHost. Por exemplo, se o controle ActiveX tiver um membro chamado "Layout", ele será renomeado "CtlLayout" na classe derivada AxHost porque o evento Layout é definido dentro do .NET Framework.
É possível examinar esses arquivos gerados com ferramentas como Ildasm.exe (IL Disassembler).
O uso de Aximp.exe para gerar um assembly do .NET. para o controle ActiveX WebBrowser (shdocvw.dll) não é compatível.
Quando você executar Aximp.exe em shdocvw.dll, ele sempre criará outro arquivo chamado shdocvw.dll no diretório no qual a ferramenta é executada. Se você colocar esse arquivo gerado no diretório Documentos, ele poderá causar problemas para o Windows Explorer. Quando o computador é reinicializado, o Windows examina o diretório Documentos antes do diretório system32 para encontrar uma cópia de shdocvw.dll. Ele usará a cópia encontrada em Documentos e tentará carregar os wrappers gerenciados. O Windows Explorer não funcionará corretamente porque depende do mecanismo de renderização na versão de shdocvw.dll localizada no diretório system32. Se esse problema ocorrer, exclua a cópia de shdocvw.dll no diretório Documentos e reinicie o computador.
Exemplo
O comando a seguir gera MediaPlayer.dll e AxMediaPlayer.dll para o controle msdxm.ocx
do Media Player.
aximp c:\systemroot\system32\msdxm.ocx