CORRECTIF : le contrôle commun Mscomctl.ocx ou Comctl32.ocx de Windows peut entraîner la fermeture inattendue de votre application ou de l'IDE Visual Basic 6. Vous pouvez également recevoir un message d'erreur « Divis...

Traductions disponibles Traductions disponibles
Numéro d'article: 896559 - Voir les produits auxquels s'applique cet article
Avertissement
Support standard pour Microsoft Visual Basic 6.0 terminé le 31 mars 2005. Microsoft publie ce package non lié à la sécurité car il contient des améliorations qui étaient prêtes à être publiées juste avant la fin du support standard. Visual Basic 6.0 disposait d'un support étendu jusqu'au 31 mars 2008. Microsoft n'étend en aucun cas la phase de support standard pour Visual Basic 6.0.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Les contrôles communs Microsoft Windows se déclinent en deux versions : Comctl32.ocx inclut Windows Common Controls 5.0 et était fourni avec Microsoft Visual Studio 5.0. Mscomctl.ocx inclut Windows Common Controls 6.0 et était fourni avec Microsoft Visual Studio 6.0. Ce correctif résout les bogues critiques suivants dans ces contrôles.

Windows Common Controls 5.0 : Comctl32.ocx

Prenons l'exemple du scénario suivant.
  • Vous exécutez une application qui définit un intercepteur des événements Windows sous Microsoft Windows 2000 ou une version ultérieure du système d'exploitation.
  • Vous démarrez une application qui utilise le contrôle ListView ou TreeView de Microsoft Windows Common Controls 5.0.
Dans ce scénario, votre application peut se fermer de manière inattendue ou un message d'erreur semblable à celui qui suit peut s'afficher :
Project1 : Project1.exe - Erreur d'application
L'instruction à « 0x202d0f51 » emploie l'adresse mémoire « 0x40000001 ». La mémoire ne peut pas être « écrite ». Cliquez sur OK pour terminer le programme.
Remarque Normalement, les applications d'accessibilité basées sur Microsoft Active Accessibility définissent un intercepteur des événements Windows. Par exemple, Narrator est basé sur Microsoft Active Accessibility. Toutefois, les utilitaires exécutés sous le système d'exploitation Microsoft Windows XP Édition Tablet PC définissent également un intercepteur des événements Windows.

Windows Common Controls 6.0 : Mscomctl.ocx

Si vous exécutez une application qui utilise la version 6.1.97.64 ou une version ultérieure de Mscomctl.ocx et inclut un contrôle ListView dont la propriété AllowColumnReorder est définie sur True, vous recevez le message d'erreur suivant lorsque vous tentez de retrier les colonnes :
Project1 : Project1.exe - Erreur d'application
L'instruction à « 0x27618848 » emploie l'adresse mémoire « 0x016e1e90 ». La mémoire ne peut pas être « read ».
En fonction du paramétrage par défaut de votre débogueur système, vous pouvez également recevoir un message d'erreur « 0xC0000094 Division par zéro » ou l'application peut se fermer de manière inattendue.

Remarque Si vous exécutez votre application dans l'IDE Visual Basic 6, vous pouvez également rencontrer l'un de ces problèmes.

Cause

Le problème rencontré avec Windows Common Controls 5.0 se produit car Comctl32.ocx tente de copier le membre texte d'un élément ListView à l'aide d'un masque de LVI_IMAGE disposant d'un membre texte NULL.

Ce problème avec Windows Common Controls 6.0 se produit à cause d'une modification de la version 6.1.97.64 du fichier Mscomctl.ocx. La version 6.1.97.64 est fournie avec le correctif 826287. La version 6.1.97.64 du fichier Mscomctl.ocx modifie le comportement du contrôle ListView lorsque Visual Studio 6.0 fonctionne sur un ordinateur exécuté sous Windows XP ou un système d'exploitation ultérieur. La majorité des appels de contrôle ImageList de Mscomctl.ocx sont des wrappers d'appels vers la classe de contrôle commun d'environnement ImageList définie dans Comctl32.dll. Toutefois, la méthode ImageList_GetImageRect n'est pas encapsulée. Elle continue d'utiliser les versions antérieures de la structure ImageList et de la classe de contrôle ImageList définies dans le fichier Mscomctl.ocx. Cette conception provoque une erreur de division par zéro au cours de l'opération de nouveau tri des colonnes.

Résolution

Important Si l'application que vous exécutez vous a été fournie par un tiers, vous pouvez contacter ce dernier avant de procéder à l'installation du correctif. Par exemple, vous n'avez pas développé l'application vous-même. Si vous installez ce correctif sans procéder à des tests suffisants, les applications peuvent cesser de fonctionner.

Remarque Une fois installé, il est impossible de désinstaller ou de supprimer le correctif joint.

Vous pouvez télécharger le fichier suivant à partir du Centre de téléchargement Microsoft :
Réduire cette imageAgrandir cette image
Télécharger
Télécharger le package contenant les contrôles communs pour Visual Basic 6.0.
http://www.microsoft.com/fr-fr/download/details.aspx?id=10019
Pour plus d'informations sur la façon de télécharger des fichiers du Support technique Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
119591 Comment obtenir des fichiers de support technique Microsoft auprès des services en ligne
Microsoft a analysé ce fichier en vue de détecter la présence de virus. Microsoft a utilisé les logiciels de détection de virus les plus récents disponibles à la date de publication de ce fichier. Le fichier est conservé sur des serveurs sécurisés, empêchant toute modification non autorisée du fichier.

Un correctif pris en charge pour Visual Basic 6 SP6 est disponible auprès de Microsoft.
La version anglaise de ce correctif possède les attributs de fichier répertoriés dans le tableau suivant ou ceux d'une version ultérieure. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire de l'utilitaire Date et heure du Panneau de configuration.
   Date         Heure   Version      Taille    Nom de fichier
   ------------------------------------------------------
   18.08.03  20:25  6.0.81.6   1 344 512  Comctl32.ocx     
   02.11.04  00:16  6.1.97.86  1 064 208  Mscomctl.ocx     

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Plus d'informations

Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants de la Base de connaissances Microsoft.
827217 CORRECTIF : violation d'accès dans Comctl32.ocx sous Windows 2000 ou ultérieur
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft
Remarque Il s'agit d'un article de « PUBLICATION RAPIDE » rédigé directement au sein du service de support technique Microsoft. Les informations qui y sont contenues sont fournies en l'état, en réponse à des problèmes émergents. En raison du délai rapide de mise à disposition, les informations peuvent contenir des erreurs typographiques et, à tout moment et sans préavis, faire l'objet de révisions. Pour d'autres considérations, consultez les Conditions d'utilisation.

Propriétés

Numéro d'article: 896559 - Dernière mise à jour: mercredi 8 janvier 2014 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 6.0 Édition professionnelle
  • Microsoft Visual Studio 6.0 Enterprise Edition
Mots-clés : 
kbqfe kbvs600sp6 kbpending kbbug KB896559
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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