' Ecco due dichiarazioni dell'API WinHelp
Private Declare Function WinHelp Lib "user32" _ Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile _ As String, ByVal wCommand As Long, ByVal dwData _ As Long) As Long Private Declare Function WinHelpSearch Lib "user32" Alias _ "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As _ String, ByVal wCommand As Long, ByVal dwData As String) _ As Long ' Ecco le costanti di cui c'e' bisogno Private Const HELP_PARTIALKEY = &H105& Private Const HELP_HELPONHELP = &H4 Private Const HelpFile = _ "c:\program\files\devstudio\vb5\help\vb5.hlp" 'Ora aggiungi due pulsanti nel tuo form '(cmdHelpAbout e cmdHelpSearch) ed inserisci il seguente 'codice nelle loro relative Sub Click. Controlla che la 'directory del file di help corrisponda con la tua 'installazione di Visual Basic. Private Sub cmdHelpAbout_Click() ' ' WinHelp Me.hwnd, HelpFile, HELP_HELPONHELP, &H0 ' ' End Sub Private Sub cmdHelpSearch_Click() ' ' WinHelpSearch Me.hwnd, HelpFile, HELP_PARTIALKEY, _ "option" ' ' End Sub 'Manda in esecuzione il tuo progetto e, quando premi sul 'pulsante HelpAbout vedrai comparire l'help contestuale '(che utilizza l'help di sistema). Se premi sul pulsante 'HelpSearch vedrai comparire una lista di voci 'sull'argomento "option". ZD Tips © 1998 by Mauro Rossi Alcune API di Windows hanno parametri che possono essere di diversi tipi. Ad esempio, l'API WinHelp puo' accettare l'ultimo parametro come tipo Long o Stringa a seconda della richiesta che deve soddisfare. Visual Basic permette di dichiarare questo tipo di dati come tipo Any nella chiamata API, ma questo puo' portare ad errori di tipo oppure anche a crash del sistema se il valore non e' quello giusto. È possibile prevenire gli errori e migliorare il controllo di tipi a run-time dichiarando piu' versioni della stessa funzione API nel programma. Aggiungendo una dichiarazione di funzione per ogni tipo possibile per un parametro, e' possibile continuare a fare uso di un potente controllo di tipi. Per capire come mettere in pratica la soluzione sopra descritta, aggiungi le seguenti funzioni e costanti API in un form di Visual Basic. Nota che le due dichiarazioni di API differiscono solamente per il loro nome iniziale ("WinHelp" e "WinHelpSearch") e nella dichiarazione del tipo dell'ultimo parametro ("dwData as Long" e "dwData as String"). |