ID do artigo: 896559 - Última revisão: sexta-feira, 18 de novembro de 2005 - Revisão: 2.4

CORRECÇÃO: O arquivo Mscomctl.ocx controles comuns do Windows ou Comctl32.ocx pode impedir que seu aplicativo ou IDE do Visual Basic 6 inesperadamente ou você pode receber uma mensagem de erro "Divisão por zero"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Aviso
Suporte básico para o Microsoft Visual Basic 6.0 foi encerrado em 31 de março de 2005. A Microsoft está lançando este pacote não relacionado à segurança porque ele contém aperfeiçoamentos que estavam prontos para lançamento apenas antes do fim do suporte Mainstream. Visual Basic 6.0 tem transição para o suporte estendido e o suporte Extended executa por meio de 31 de março de 2008. Microsoft não é estender a fase de suporte Mainstream para o Visual Basic 6.0 de forma alguma.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Há duas versões de controles comuns do Microsoft Windows. Comctl32.ocx contém Windows Common Controls 5.0 e foi incluída com o Microsoft Visual Studio 5.0. Mscomctl.ocx contém 6.0 de controles comuns do Windows e foi incluído no Visual Studio 6.0. Esse hotfix corrige os seguintes bugs críticos nesses controles.

Controles comuns do Windows 5.0: Comctl32.ocx

Considere o seguinte cenário.
  • Você está executando um aplicativo que define um gancho WinEvent no Microsoft Windows 2000 ou uma versão posterior do sistema operacional.
  • Iniciar um aplicativo que usa o controle TreeView do Microsoft Windows Common Controls 5.0 ou o controle ListView .
Nesse cenário, seu aplicativo pode fechar inesperadamente ou você pode receber uma mensagem de erro semelhante à seguinte:
Projeto1: Project1.exe - Erro do aplicativo
A instrução em "0x202d0f51" consultou a memória em "0x40000001". A memória não pôde ser "gravada". Clique em OK para encerrar o programa
Observação Normalmente, aplicativos de acessibilidade que são criados no Microsoft Active Accessibility definem um gancho WinEvent. Por exemplo, o Narrator é criado no Microsoft Active Accessibility. No entanto, utilitários executado no sistema operacional Microsoft Windows XP Tablet PC Edition também definir um gancho WinEvent.

Controles comuns do Windows 6.0: Mscomctl.ocx

Se você estiver executando um aplicativo que usa o arquivo Mscomctl.ocx versão 6.1.97.64 ou uma versão posterior e o aplicativo contém um controle ListView com a propriedade AllowColumnReorder definida como True , você recebe a seguinte mensagem de erro quando tenta reordenar as colunas:
Projeto1: Project1.exe - Erro do aplicativo
A instrução em "0x27618848" consultou a memória em "0x016e1e90". A memória não pôde ser "lida".
Dependendo da configuração do depurador padrão para o seu sistema, você também pode receber uma mensagem de erro "0xC0000094 divisão por zero" ou o aplicativo pode fechar inesperadamente.

Observação Se você executar o aplicativo no IDE do Visual Basic 6, você também terá esses dois problemas.

Causa

O problema com o Windows Common Controls 5.0 ocorre porque Comctl32.ocx tenta copiar o membro de texto de um item ListView usando uma máscara de LVI_IMAGE tem um membro de texto NULL.

O problema com o Windows 6.0 de controles comuns ocorre devido a uma alteração na versão 6.1.97.64 do arquivo Mscomctl.ocx. Versão 6.1.97.64 está incluída no hotfix 826287. Versão 6.1.97.64 do arquivo Mscomctl.ocx altera o comportamento do controle ListView quando o Visual Studio 6.0 está em execução em um computador que está executando o Windows XP ou um sistema operacional posterior. A maioria das chamadas de controle ImageList no Mscomctl.ocx são invólucros de chamadas em ImageList shell comum classe de controle que é definido na Comctl32.dll. No entanto, o método ImageList_GetImageRect não é empacotado. Este método ainda usa a versão anterior da estrutura ImageList e a versão anterior da classe de controle ImageList que são definidas no arquivo Mscomctl.ocx. Esse design causa um erro divisão por zero ocorrer durante a operação de reordenação de coluna.

Resolução

importante Se o aplicativo que você estiver executando tiver sido fornecido a você por um terceiro, convém entrar em contato com o terceiros que forneceu o aplicativo para você antes de instalar a correção. Por exemplo, você não desenvolver o aplicativo sozinho. Se você instalar essa correção sem testes suficientes, os aplicativos podem parar de funcionar.

Observação A correção incluída não pode ser desinstalada ou removida depois que ele é instalado.

O seguinte arquivo está disponível para download no Centro de download da Microsoft:
Recolher esta imagemExpandir esta imagem
Download
Download the Visual Basic 6.0 Common Controls package now. (http://www.microsoft.com/downloads/details.aspx?FamilyId=25437D98-51D0-41C1-BB14-64662F5F62FE)
http://www.microsoft.com/downloads/details.aspx?FamilyId=25437D98-51D0-41C1-BB14-64662F5F62FE (http://www.microsoft.com/downloads/details.aspx?FamilyId=25437D98-51D0-41C1-BB14-64662F5F62FE)
Para obter mais informações sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
119591  (http://support.microsoft.com/kb/119591/ ) Como obter arquivos de suporte da Microsoft de serviços on-line
Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo.

Uma correção com suporte está disponível no Microsoft Visual Basic 6 SP6.
A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version    Size       File name
   ------------------------------------------------------
   18-Aug-2003  20:25  6.0.81.6   1,344,512  Comctl32.ocx     
   02-Nov-2004  00:16  6.1.97.86  1,064,208  Mscomctl.ocx     

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
827217  (http://support.microsoft.com/kb/827217/ ) CORRECÇÃO: Violação de acesso em Comctl32.ocx no Windows 2000 ou posterior
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão que é usada para descrever as atualizações de software

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Studio 6.0 Enterprise Edition
Palavras-chave: 
kbmt kbqfe kbvs600sp6 kbpending kbbug KB896559 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 896559  (http://support.microsoft.com/kb/896559/en-us/ )