FIX: I controlli Microsoft Windows Common Controls Mscomctl.ocx o Comctl32.ocx potrebbero causare la chiusura imprevista dell'applicazione o di Visual Basic 6 IDE, oppure è possibile che venga visualizzato un messaggio di errore di divisione per zero

Traduzione articoli Traduzione articoli
Identificativo articolo: 896559 - Visualizza i prodotti a cui si riferisce l?articolo.
Avviso
Il supporto Mainstream per Microsoft Visual Basic 6.0 è terminato il 31 marzo 2005. Microsoft intende rilasciare questo pacchetto che non riguarda la sicurezza poiché contiene miglioramenti che erano già pronti per essere rilasciati prima del termine del supporto Mainstream. L'applicazione Visual Basic 6.0 è passata al supporto "Extended", in esecuzione fino al 31 marzo 2008. Microsoft non intende in alcun modo estendere il supporto Mainstream per Visual Basic 6.0.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Sono disponibili due versioni di Microsoft Windows Common Controls. Comctl32.ocx include i controlli Microsoft Windows Common Controls 5.0 ed era incluso in Microsoft Visual Studio 5.0. Mscomctl.ocx include i controlli Microsoft Windows Common Controls 6.0 ed era incluso in Visual Studio 6.0. Questo hotfix corregge i seguenti bug critici nei controlli.

Windows Common Controls 5.0: Comctl32.ocx

Si consideri lo scenario descritto di seguito.
  • Si esegue un'applicazione che consente di impostare un hook WinEvent in Microsoft Windows 2000 o una versione successiva del sistema operativo.
  • Si avvia un applicazione che utilizza il controllo ListView o il controllo TreeView di Microsoft Windows Common Controls 5.0.
In questo scenario, l'applicazione potrebbe essere chiusa in modo imprevisto oppure è possibile ricevere un messaggio di errore simile al seguente.
Project1: Project1.exe - Errore di applicazione
L'istruzione a "0x202d0f51" ha fatto riferimento alla memoria a "0x40000001". Impossibile scrivere nella memoria. Fare clic su OK per terminare l'applicazione.
Nota In genere, le applicazioni di accesso facilitato basate su Microsoft Active Accessibility consentono di impostare un hook WinEvent. Ad esempio, l'Assistente vocale è basato su Microsoft Active Accessibility. Tuttavia, anche le utilità che vengono eseguite in Microsoft Windows XP Tablet PC Edition consentono di impostare un hook WinEvent.

Windows Common Controls 6.0: Mscomctl.ocx

Se si utilizza un'applicazione che utilizza la versione 6.1.97.64 di Mscomctl.ocx o successiva e l'applicazione include un controllo ListView con la proprietà AllowColumnReorder impostata su True, viene visualizzato il seguente messaggio di errore durante il tentativo di riordinare le colonne:
Project1: Project1.exe - Errore di applicazione
L'istruzione a "0x27618848" ha fatto riferimento alla memoria a "0x016e1e90". Impossibile leggere la memoria.
In base all'impostazione di debugger predefinita per il sistema, è possibile che venga visualizzato il messaggio di errore "0xC0000094 Divisione per zero" oppure l'applicazione potrebbe essere chiusa in modo imprevisto.

Nota Se l'applicazione viene eseguita in Visual Basic 6 IDE, è possibile che si verifichino entrambi i problemi.

Cause

Il problema relativo ai controlli Windows Common Controls 5.0 si verifica poiché Comctl32.ocx tenta di copiare il membro del testo di un elemento ListView mediante l'utilizzo di una mask di LVI_IMAGE che dispone del membro di testo NULL.

Il problema con i controlli Windows Common Controls 6.0 si verifica a causa di una modifica nella versione 6.1.97.64 del file Mscomctl.ocx. La versione 6.1.97.64 è inclusa nell'hotfix 826287. La versione 6.1.97.64 del file Mscomctl.ocx modifica il comportamento del controllo ListView quando Visual Studio 6.0 è in esecuzione su un computer in cui è installato Windows XP o un sistema operativo successivo. La maggior parte delle chiamate del controllo ImageList in Mscomctl.ocx sono wrapper di chiamate nella classe di controllo comune della shell ImageList definita in Comctl32.dll. Tuttavia, il metodo ImageList_GetImageRect non prevede wrapper. Tale metodo implica l'utilizzo della versione precedente della struttura di ImageList oltre che la versione precedente della classe di controllo ImageList definita nel file Mscomctl.ocx. Questa struttura comporta la visualizzazione di un errore di divisione per zero durante l'operazione di riordino della colonna.

Risoluzione

Importante Se l'applicazione in esecuzione è stata fornita da terze parti, potrebbe essere necessario contattare tale fornitore prima di installare l'aggiornamento. Ad esempio, se l'applicazione non è stata sviluppata internamente. Se l'aggiornamento è stato installato senza un testing approfondito, le applicazioni potrebbero smettere di funzionare.

Nota Impossibile installare o rimuovere l'aggiornamento fornito dopo l'installazione.

Il seguente file è disponibile per il download nell'Area download Microsoft:
Riduci l'immagineEspandi l'immagine
Download
Download del pacchetto Visual Basic 6.0 Common Controls.
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=25437d98-51d0-41c1-bb14-64662f5f62fe
Per ulteriori informazioni sul download di file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
119591 Come ottenere file di supporto Microsoft dai servizi online
Il file è stato controllato e non contiene virus. Microsoft ha utilizzato il software antivirus più recente disponibile al momento della data di pubblicazione del file. Il file viene salvato su server con un livello di protezione avanzata che impedisce modifiche non autorizzate.

È disponibile un aggiornamento per Visual Basic 6 SP6 fornito da Microsoft.
La versione in lingua inglese di questo hotfix presenta gli attributi di file elencati nella tabella seguente (o attributi successivi). Date e ore elencate di seguito sono espresse in UTC (Universal Time Coordinate). Quando si visualizzano le informazioni sui file, l'ora viene convertita in ora locale. Per calcolare la differenza tra l'ora UTC e quella locale, utilizzare la scheda Fuso orario dello strumento Data e ora del Pannello di controllo.
   Data         Ora    Versione       Dimensione       Nome file
   ------------------------------------------------------
   18 agosto 2003  20:25  6.0.81.6   1,344,512  Comctl32.ocx     
   2 novembre 2004  00:16  6.1.97.86  1,064,208  Mscomctl.ocx     

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati alla fine del presente articolo.

Informazioni

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
827217 FIX: Violazione di accesso di Comctl32.ocx in Windows 2000 o versione successiva (in inglese)
824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Proprietà

Identificativo articolo: 896559 - Ultima modifica: lunedì 6 ottobre 2008 - Revisione: 2.4
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Studio 6.0 Enterprise Edition
Chiavi: 
kbqfe kbvs600sp6 kbpending kbbug KB896559
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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