Identificando problemas no registro de ActiveX de terceiros.

1) Introdução

Controles ActiveX são componentes de software baseados na tecnologia COM (Component Object Model) que podem ser inseridos em uma aplicação para realizar diversas tarefas. Estes objetos são desenvolvidos em ambientes de programação tais como C/C++, Delphi e Visual Basic, entre outros.

Alguns objetos ActiveX são automaticamente registrados no E3: E3Alarm, E3Browser e E3Chart (desenvolvidos pela Elipse Software); Microsoft Forms (desenvolvidos pela Microsoft); e Relatório (ActiveReports, desenvolvido pela Data Dynamics).

Outros ActiveX precisam ser registrados no E3 para que estejam disponíveis no menu “Inserir” do E3 Studio, e esse registro pode apresentar problemas em alguns ActiveX de terceiros. Um problema comum, por exemplo, é uma inconsistência entre as versões do ActiveX e da TypeLib.

Este artigo mostra como verificar as versões do ActiveX e da TypeLib, e como alterá-las para contornar o problema de registro do controle no E3.

 
2) Verificando as versões do ActiveX

Para verificar a consistência das versões do ActiveX, pode-se utilizar ferramentas de desenvolvimento como o OLE View, ou então verificar diretamente as chaves criadas no Registro do Windows. A verificação através do Registro do Windows será um pouco diferente de acordo com a versão do Windows (32 ou 64 bits). Para que não haja problemas com relação à versão do Windows, utilize a versão 32 bits do editor do Registro do Windows, da seguinte forma:
  1. Clique no menu Iniciar, e então clique em Executar
  2. Na janela que será aberta, digite %systemroot%\syswow64\regedit e clique em OK.
Acesse a chave HKEY_CLASSES_ROOT e clique com o botão direito, selecionando a opção Find….

Busque nome do ActiveX que deseja verificar. Ao localizar a pasta, ela deve se apresentar neste formato, com uma pasta CLSID interna:

Guarde o valor do CLSID para fazer uma nova pesquisa. Localize a pasta HKEY_CLASSES_ROOT\CLSID, e dentro dela procure por outra pasta com o valor do CLSID. Ela deve se apresentar desta forma:

Aqui devem ser verificados os seguintes valores:

O caminho do arquivo OCX: verifique aqui se o caminho está realmente apontando para o diretório onde o OCX se encontra;

A versão do ActiveX;

E o TypeLib do ActiveX.

Guarde o valor do TypeLib para fazer uma nova pesquisa. Localize a pasta HKEY_CLASSES_ROOT\TypeLib, e dentro dela procure por outra pasta com o valor do TypeLib. Ela deve se apresentar desta forma:

onde podemos observar a versão da TypeLib e novamente o caminho completo do arquivo OCX.

Verifique então se este caminho completo é o correto, ou seja, se é o mesmo onde se encontra o arquivo OCX que deseja utilizar. Além disso, verifique se as versões do ActiveX e do TypeLib são as mesmas.

Outra verificação possível é com relação às versões das interfaces internas do TypeLib. Para fazer essa verificação, acesse a pasta HKEY_CLASSES_ROOT\Interface e procure pelo valor da TypeLib. Poderão ser encontradas várias ocorrências como a da figura abaixo:

No entanto, esta verificação ajuda na detecção de problemas, mas não deve ser uma restrição. Podem ocorrer interfaces de versões diferentes, principalmente se o usuário tiver mais de uma versão do mesmo ActiveX registrado na máquina.


3) Alterando a versão do ActiveX

Caso as versões do ActiveX e do TypeLib não sejam as mesmas, isso caracteriza um problema no desenvolvimento do ActiveX. Neste caso, o desenvolvedor deve ser notificado. Porém, existe uma forma de contornar o problema para que o E3 e outros softwares de desenvolvimento consigam registrar o ActiveX: trocar a versão do ActiveX diretamente no Registro do Windows. O importante é que a versão de ambos seja a mesma, mas em geral a troca da versão do ActiveX vai ser mais bem sucedida do que a troca da versão da TypeLib, em função das versões das interfaces internas que foram observadas na sessão anterior.

Para alterar a versão do ActiveX, é preciso acessar o Registro do Windows novamente. Repita os passos do início deste artigo, conforme a versão de Windows instalada em sua máquina, até encontrar novamente o CLSID do ActiveX. Selecione a pasta Version, clique com o botão direito sobre a variável Default e selecione Modify. Na janela que abrir, altere o valor da versão para a mesma da TypeLib.

Após esses passos, o ActiveX poderá ser registrado no E3 sem problemas.

4) Conclusão

Os procedimentos apresentados nesse artigo foram feitos para contornar um problema de desenvolvimento do ActiveX de terceiros, e deve ser utilizado apenas em casos em que ou o usuário não consiga contatar o desenvolvedor, ou o ActiveX seja de uma versão onde o suporte técnico não está mais disponível. O procedimento correto do usuário deve ser sempre entrar em contato com o desenvolvedor do ActiveX para solucionar o problema.

ALERTA: Esse artigo contém procedimentos que mostram como modificar o Registro do Windows. Contudo, sérios problemas podem acontecer se o registro for modificado incorretamente. Logo, siga os procedimentos com bastante atenção. Para maior segurança, faça uma cópia de segurança do registro antes de modificá-lo, assim será possível restaurá-lo caso algum problema ocorra. Para mais informações sobre como fazer a cópia de segurança e a restauração do Registro do Windows, leia o artigo da Microsoft “How to back up and restore the registry in Windows“.

Artigos relacionados

How to view the system registry by using 64-bit versions of Windows.
http://support.microsoft.com/kb/305097

Registry changes in x64-based versions of Windows Server 2003 and in Windows XP Profesisonal x64 Edition
http://support.microsoft.com/kb/896459

How to back up and restore the registry in Windows
http://support.microsoft.com/kb/322756

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *