Небольшой пример для использования файла справки в Access
' Вызов справки
Private Sub butHelp1_Click()
Me.Refresh
Const intHelpFile As Long = 1
Const IdTopic As Long = 5
Select Case Me.HelpID
Case 1: HtmlHelp hwnd, HFile(intHelpFile), HH_DISPLAY_TOC, 0
Case 2: HtmlHelp hwnd, HFile(intHelpFile), HH_DISPLAY_INDEX, 0
Case 3: HTMLHelpTopic hwnd, HFile(intHelpFile), HH_DISPLAY_TOPIC, Me.Topic
Case 4: HtmlHelp hwnd, HFile(intHelpFile), HH_HELP_CONTEXT, IdTopic
Case 5: ShowSearch (intHelpFile)
End Select
End Sub
' Найти справочный файл
Public Function HFile(ByVal i_HFile As Integer) As String
Select Case i_HFile
Case 1: HFile = Application.CodeProject.Path "\help\Автоматизация.chm"
Case 2: HFile = Application.CodeProject.Path "\help\Лекции Access.chm"
End Select
If Dir(HFile, vbNormal) = "" Then MsgBox "Файл не существует: " HFile
End Function
'----- Отобразить вкладку поиска
'----- Ошибка: start searching with a string dosn't work
'
Public Sub ShowSearch(ByVal intHelpFile As Integer)
Dim searchIt As HH_FTS_QUERY
With searchIt
.cbStruct = Len(searchIt)
.fUniCodeStrings = 1
.pszSearchQuery = "Папка"
.iProximity = 0
.fStemmedSearch = 0
.fTitleOnly = 1
.fExecute = 1
.pszWindow = ""
End With
Call HtmlHelpSearch(0, HFile(intHelpFile), HH_DISPLAY_SEARCH, searchIt)
End Sub
' http://www.help-info.de/en/Help_Info_HTMLHelp/hh_api.htm#VB6
Type HH_IDPAIR
dwControlId As Long
dwTopicId As Long
End Type
'This array should contain the number of controls that have
'context-sensitive help, plus one more for a zero-terminating
'pair.
Public ids(2) As HH_IDPAIR
Declare Function GetDlgCtrlID Lib "user32" _
(ByVal hwnd As Long) As Long
Public Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, ByVal dwData As Long) As Long
Public Declare Function HTMLHelpTopic Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, ByVal dwData As String) As Long
Public Declare Function HtmlHelpSearch Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, dwData As HH_FTS_QUERY) As Long
Public Const HH_DISPLAY_TOPIC = H0 ' select last opened tab, [display a specified topic]
Public Const HH_DISPLAY_TOC = H1 ' select contents tab, [display a specified topic]
Public Const HH_DISPLAY_INDEX = H2 ' select index tab and searches for a keyword
Public Const HH_DISPLAY_SEARCH = H3 ' select search tab and perform a search
Private Const HH_SET_WIN_TYPE = H4
Private Const HH_GET_WIN_TYPE = H5
Private Const HH_GET_WIN_HANDLE = H6
Private Const HH_DISPLAY_TEXT_POPUP = HE ' Display string resource ID or
Public Const HH_HELP_CONTEXT = HF ' display mapped numeric value in dwData
Private Const HH_TP_HELP_CONTEXTMENU = H10 ' Text pop-up help, similar to WinHelp's HELP_CONTEXTMENU.
Private Const HH_TP_HELP_WM_HELP = H11 ' text pop-up help, similar to WinHelp's HELP_WM_HELP.
Public Type HH_FTS_QUERY ' UDT for accessing the Search tab
cbStruct As Long ' Sizeof structure in bytes.
fUniCodeStrings As Long ' TRUE if all strings are unicode.
pszSearchQuery As String ' String containing the search query.
iProximity As Long ' Word proximity.
fStemmedSearch As Long ' TRUE for StemmedSearch only.
fTitleOnly As Long ' TRUE for Title search only.
fExecute As Long ' TRUE to initiate the search.
pszWindow As String ' Window to display in
End Type