Полезные советы

Использование параметра Alias при вызове функций API

Ряд функций Windows API содержит параметры, которые могут определяться различным образом. Например, при вызове функции WinHelp последний параметр может передавать данные типа Long или String в зависимости от заданного действия.

Visual Basic позволяет объявлять такой тип данных, как Any, при вызовах функций API, но это может привести к ошибкам несовпадения типов или даже к аварийному отказу системы, если значение имеет неправильный тип.

Поэтому во избежание подобных ошибок или для улучшения проверки типов данных во время выполнения приложения бывает полезно произвести объявление нескольких версий одной и той же функции API. Написав для каждого возможного типа параметра свое объявление функции, вы осуществляете более жесткую проверку типов данных.

Для иллюстрации данной методики добавьте к модулю формы следующие функции API и константы. Обратите внимание, что два описания функции API отличаются друг от друга только своим названием (WinHelp и WinHelpSearch) и объявлением типа последнего параметра (dwData as Long и dwData as String).


'Объявления 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
	
Private Const HELP_PARTIALKEY = &H105&
Private Const HELP_HELPONHELP = &H4&
Private Const HelpFile = "C:\PROGRA~1\MSVB6\HELP\VB6.HLP"

Теперь поместите на форму две командные кнопки (cmdHelpAbout и cmdHelpSearch) и напишите для них следующий код. Измените путь к файлу справки в соответствии со своими установками для 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

Запустите полученный проект на выполнение. Если вы щелкните кнопку cmdHelpAbout, то увидите раздел Справки об использовании справочной системы. Если же вы щелкните кнопку cmdHelpSearch, то на экране появится список элементов Справки по теме option.


   
Hosted by uCoz