Итак, будем полагать, что, используя инструментарий HHW, справочное руководство успешно создано, построен и зарегистрирован скомпилированный chm-файл. Будем полагать также, что инструментарий AWB позволил создать индексируемый aw-файл ответов на возможные вопросы пользователей, желающих получить нужную им справку. Как присоединить полученный aw-файл к Office Assistant, чтобы пользователь приложения Office 2000 мог задавать вопросы на естественном языке, работая с привычным для него Помощником?
Прежде всего, напомню, что когда пользователь формирует свой вопрос в окне Помощника, то для ответа на этот вопрос Office Assistant вызывает Answer Wizard и именно Мастер Ответов, используя имеющиеся в его распоряжении aw-файлы, формирует названия разделов справочных руководств (chm-файлов), в которых может содержаться нужная справка. Переходя от такого общего понимания к пониманию на объектном уровне, замечу, что в лекции, посвященной общим объектам Office 2000 , уже рассматривался объект Answer Wizard. Одним из основных свойств этого объекта является свойство Files, возвращающее коллекцию aw-файлов, с которыми работает Мастер Ответов. Поэтому все, что нужно сделать для того, чтобы Office Assistant мог должным образом реагировать на вопросы пользователя, - это добавить нужный aw-файл в коллекцию файлов объекта Answer Wizard. Приведем текст соответствующей процедуры, решающей эту задачу:
Public Sub HelpOfHelp() 'Создание объекта Answer Wizard 'добавление файлов ответа к справочной системе Dim i As Integer Dim customAnswerWizard As AnswerWizard Set customAnswerWizard = Application.AnswerWizard With customAnswerWizard 'Восстановление стандартного множества aw-файлов .ResetFileList 'Показать Помощника Assistant.Visible = True Debug.Print .Files.Count 'Отключение стандартных файлов в тех случаях, 'когда используется только собственное справочное руководство '.ClearFileList 'Добавление собственного справочного руководства .Files.Add ("e:\O2000\Book2\Cd\Help1\HelpOfHelp.aw") 'Отладочная печать aw-файлов For i = 1 To .Files.Count Debug.Print .Files(i) Next i Debug.Print .Files.Count End With End Sub