Visual Basic 6. Руководство разработчика

       

Объявление 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 (Модуль): тогда другие процедуры смогут получить к ним доступ.



Содержание раздела