Объявление 32-разрядных функций и структур
В некоторых API-функциях в качестве параметров используются структуры. В приложении MousePos (папка MousePos данной главы на компакт-диске) приводится пример объявления и использования простой структуры. В этом приложении для получения информации о положении мыши в момент выполнения щелчка используется функция GetCursorPosQ. Эта функция должна возвратить вызвавшей ее программе два значения: координаты Х и Y мыши. Эти значения хранятся в структуре POINTAPI, которая состоит из двух элементов - Х и Y. Доступ к ним можно получить из программы с помощью выражений PointAPl.X и PointAPl.Y.
Чтобы создать проект MousePos, выполните следующие действия:
1. Откройте окно API Viewer, выбрав команду API Viewer в меню Add-Ins.
2. В открывшемся окне в меню File (Файл) выберите команду Load Text File (Загрузить текстовый файл).
3. Выберите файл Win32api.txt и выполните двойной щелчок на элементе GetCursorPos в списке Available Items (Доступные объекты).
4. В окне списка Selected Items (Выделенные объекты) появится следующее объявление:
Declare Function GetCursorPos Lib "user32" _
Alias "GetCursorPos" (IpPoint As POINTAPI) As Long
Параметр, необходимый для вызова функции - это структура данных, называемая POINTAPI. Она хранит координаты точки экрана. Чтобы найти определение структуры данных POINTAPI с помощью API Viewer выполните следующие действия:
5. В раскрывающемся списке API Type (API-типы) выберите Types (Типы). Список Available Items (Доступные объекты) будет содержать названия всех структур данных, используемых API-функциями.
6. Найдите структуру данных POINTAPI и выполните двойной щелчок на ее названии. В окне списка Selected Items (Выделенные объекты) появится ее определение.
Type POINTAPI
х As Long
у As Long
End Type
7. Щелкните на кнопке Сору, чтобы скопировать это определение в буфер обмена (вместе с объявлением функции GetCursorPos()).
Совет
Объявления функций можно помещать в любом месте, но обычно их помещают в Module (Модуль): тогда другие процедуры смогут получить к ним доступ.