BUG : Une défaillance de protection générale peut se produire lorsque le contrôle ComboBox est défini sur une bande de CoolBar

Ancien nº de publication de cet article : F269618
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Si une application Visual Basic comporte un contrôle ComboBox sur une bande du contrôle CoolBar, celui-ci fonctionne comme prévu dans les versions de Visual Basic antérieures à Microsoft Visual Studio 6.0 Service Pack 4 (SP4). Cependant, si vous utilisez SP4, il se peut que l'application ne réponde plus (se bloque) à la fermeture de la feuille qui héberge le contrôle CoolBar. Le blocage se produit uniquement sur les systèmes utilisant Windows 98 ou Windows 95.
Cause
Ceci se produit car les commandes de la bande CoolBar ne sont pas effacées en temps voulu.
Résolution
Pour contourner ce problème, ajoutez la ligne de code suivante au Gestionnaire d'événements Form_QueryUnload :
CoolBarName.Bands.Clear
Statut
Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés dans la section "Liste des produits concernés par cet article".
Plus d'informations

Étapes à suivre pour reproduire ce comportement

  1. Créez un projet Standard EXE avec Visual Basic à partir de Visual Studio 6.0 SP4 sous Windows 98. Form1 est créé par défaut.
  2. Dans la boîte de dialogue Composants, appuyez sur les touches CTRL+T, sélectionnez Microsoft Windows Common Controls-3 6.0 (Sp4), et cliquez sur OK.
  3. Ajoutez un contrôle CoolBar à Form1. Utilisez les paramètres par défaut.
  4. Ajoutez un contrôle ComboBox dans l'une des bandes du contrôle CoolBar.
  5. Enregistrez le projet et appuyez sur la touche F5 pour exécuter l'application. Cliquez sur le X dans le coin supérieur droit de la feuille pour fermer, et notez qu'un message d'erreur similaire à ce qui suit apparaît :
    Le nom du fichier a causé une défaillance de protection générale dans le module USER.EXE à 0004:00000499.

    Ce programme a effectué une opération non conforme et va être arrêté. Si le problème persiste, contactez le vendeur du programme.
    Le nom du fichier est le nom de votre projet.

  6. Le nom du fichier est le nom de votre projet.Ouvrez à nouveau le projet dans l'environnement de développement intégré (IDE) Visual Basic. Parfois, Windows se bloque lorsque Visual Basic est ouvert à nouveau, il se peut qu'un redémarrage de votre ordinateur soit nécessaire. Le message "ressource faible", indiquant que vous devez fermer d'autres applications ou des pilotes fonctionnant en tâche de fond peut également s'afficher.
  7. Le nom du fichier est le nom de votre projet.Ajoutez le code suivant à Form1 :
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)    CoolBar1.Bands.ClearEnd Sub
  8. Le nom du fichier est le nom de votre projet.Enregistrez le projet et appuyez sur la touche F5 pour exécuter l'application. Cliquez sur le X dans le coin supérieur droit de la feuille pour fermer et notez que le projet fonctionne correctement.

    REMARQUE : Si vous cliquez sur le bouton Fin dans l'IDE de Visual Basic pour terminer l'application, notez que le problème persiste car le Gestionnaire d'événements Form_QueryUnload n'a aucune chance de s'exécuter. Par conséquent, ne terminez pas votre application à l'aide du bouton Fin dans l'IDE. Pour contourner ce problème, vous pouvez remplacer la version SP4 du fichier Comct332.ocx dans le répertoire système par le Service Pack 3 de Visual Studio 6.0. Vous devez tout de même implémenter en même temps la solution mentionnée à la dernière étape.
Références
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
189632 BUG: Error in CoolBar Event Can Cause Hanging or Exception
189914 BUG : Wrapped CoolBar Control May GPF Client EXE Program
257630 FIX : Exception error closing an application containing a Coolbar Control
Comct332 gpf halts halt
Propriétés

ID d'article : 269618 - Dernière mise à jour : 02/23/2014 22:17:03 - Révision : 4.0

Microsoft Visual Basic 6.0 Édition professionnelle, Microsoft Visual Basic 6.0 Édition Entreprise

  • kbnosurvey kbarchive kbbug kboswin98 kboswin95 kbvbp600 kbpending kbgrpdsvb KB269618
Commentaires