REVISIÓN: Los controles comunes de Windows Mscomctl.ocx o Comctl32.ocx pueden provocar que la aplicación o el IDE de Visual Basic 6 se cierre de manera inesperada, o que reciba el mensaje de error "División por cero"

Seleccione idioma Seleccione idioma
Id. de artículo: 896559 - Ver los productos a los que se aplica este artículo
Aviso
El soporte técnico principal para Microsoft Visual Basic 6.0 terminó el 31 de marzo de 2005. Microsoft lanza este paquete que no está relacionado con la seguridad, ya que contiene mejoras que estaban listas para ser publicadas justo antes del final del soporte técnico principal. Visual Basic 6.0 cambió a Soporte extendido, que se encontraba en vigor hasta el 31 de marzo de 2008. Microsoft no ampliará la fase de soporte técnico principal para Visual Basic 6.0 bajo ningún concepto.
Expandir todo | Contraer todo

En esta página

Síntomas

Existen dos versiones de los controles comunes de Microsoft Windows. Comctl32.ocx contiene controles comunes de Windows 5.0 y se incluía en Microsoft Visual Studio 5.0. Mscomctl.ocx contiene controles comunes de Windows 6.0 y se incluía en Visual Studio 6.0. Esta revisión corrige los siguientes errores críticos en estos controles.

Controles comunes de Windows 5.0: Comctl32.ocx

Tenga en cuenta la situación siguiente.
  • Está ejecutando una aplicación que establece un enlace de WinEvent en Microsoft Windows 2000 o una versión posterior del sistema operativo.
  • Inicia una aplicación que usa el control ListView o el control TreeView de los controles comunes de Microsoft Windows 5.0.
En esta situación, es posible que la aplicación se cierre de manera inesperada o que reciba un mensaje de error similar al siguiente:
Project1: Project1.exe - Error de la aplicación
La instrucción de "0x202d0f51" hace referencia a la memoria en "0x40000001". La memoria no se puede "escribir". Haga clic en Aceptar para finalizar este programa
Nota: normalmente, las aplicaciones de accesibilidad basadas en Microsoft Active Accessibility establecen un enlace de WinEvent. Por ejemplo, Narrador se basa en Microsoft Active Accessibility. No obstante, las utilidades que se ejecutan en el sistema operativo Microsoft Windows XP Tablet PC Edition también establecen un enlace de WinEvent.

Controles comunes de Windows 6.0: Mscomctl.ocx

Si ejecuta una aplicación que usa la versión 6.1.97.64 de Mscomctl.ocx o una posterior y que contiene un control ListView con la propiedad AllowColumnReorder establecida en True, aparece el siguiente mensaje de error al intentar cambiar el orden de las columnas:
Project1: Project1.exe - Error de la aplicación
La instrucción en "0x27618848" hace referencia a la memoria en "0x016e1e90". La memoria no se puede "leer".
En función de la configuración predeterminada del depurador del sistema, también es posible que reciba el mensaje de error "0xC0000094 División por cero" o que la aplicación se cierre de forma inesperada.

Nota: si ejecuta la aplicación en el IDE de Visual Basic 6, también experimentará esos problemas.

Causa

El problema con los controles comunes de Windows 5.0 se produce porque Comctl32.ocx intenta copiar el miembro de texto de un elemento ListView mediante una máscara de LVI_IMAGE que tiene un miembro de texto NULL (nulo).

El problema con los controles comunes de Windows 6.0 se produce por un cambio en la versión 6.1.97.64 del archivo Mscomctl.ocx. La versión 6.1.97.64 se incluye con la revisión 826287. La versión 6.1.97.64 del archivo Mscomctl.ocx cambia el comportamiento del control ListView cuando Visual Studio 6.0 se ejecuta en un equipo que ejecuta Windows XP o un sistema operativo posterior. La mayor parte de las llamadas del control ImageList de Mscomctl.ocx son contenedores de llamadas en la clase de controles comunes de shell ImageList que se define en Comctl32.dll. Sin embargo, el método ImageList_GetImageRect no se ha ajustado. Este método continúa utilizando la versión anterior de la estructura ImageList, así como la versión anterior de la clase de controles ImageList que se definen en el archivo Mscomctl.ocx. Este diseño provoca un error de división por cero durante la operación de cambio de orden de columnas.

Solución

Importante: si otro fabricante le proporcionó la aplicación que ejecuta, puede resultar útil ponerse en contacto con dicho fabricante antes de instalar la revisión. Por ejemplo, no desarrolló personalmente la aplicación. Si instala esta revisión sin realizar suficientes pruebas, es posible que las aplicaciones dejen de funcionar.

Nota: no es posible desinstalar o quitar la revisión adjunta una vez instalada.

El siguiente archivo se puede descargar desde el Centro de descarga de Microsoft:
Contraer esta imagenAmpliar esta imagen
Descargar
Descargue ahora el paquete de controles comunes de Visual Basic 6.0.
http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=25437d98-51d0-41c1-bb14-64662f5f62fe
Para obtener más información acerca de cómo descargar los archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591 Cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft exploró este archivo en busca de virus. Microsoft exploró este archivo en busca de virus con el software de detección de virus más reciente disponible en la fecha de publicación. Asimismo, el archivo se almacenó en servidores seguros que ayudan a prevenir que se realicen cambios no autorizados.

Hay una revisión compatible disponible en Microsoft para Visual Basic 6 SP6.
La versión en inglés de esta revisión tiene los atributos de archivo mostrados en la tabla siguiente (u otros posteriores). Las fechas y las horas de estos archivos aparecen según la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para ver la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria de la herramienta Fecha y hora del Panel de control.
 Fecha       Hora   Versión        Tamaño     Nombre de archivo
   ------------------------------------------------------
 18-ago-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     

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a".

Más información

Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
827217 REVISIÓN: Infracción de acceso en Comctl32.ocx en Windows 2000 o posterior (en inglés)
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 896559 - Última revisión: miércoles, 08 de octubre de 2008 - Versión: 2.4
La información de este artículo se refiere a:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Studio 6.0 Enterprise
Palabras clave: 
kbqfe kbvs600sp6 kbpending kbbug KB896559

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com