Параметры функции


Подавляющее количество Windows API-функций использует переданные им статические параметры для выполнения с их участием каких-либо действий. Тем не менее, определенная часть функций возвращает значения, которые должны быть сохранены в буфере, и этот буфер функция возвращает в виде указателя на него. Для большинства функций этот буфер должен быть создан самим приложением перед вызовом функции. Во многих случаях параметр может принимать одно или более значений из некоторой таблицы. Эти значе­ния определяются как константы и объединяются с использованием логиче­ского оператора or. Реальные параметры, передаваемые в функцию, идентифицируются с битовой маской, в которой позиция определенных бит имеет определенный смысл для функции.

Пример такого слияния: функция createWindowEx имеет параметр, называе­мый dwStyle, который является суммой констант, связанных оператором or. Чтобы передать функции более чем одну константу, параметр должен выгля­деть, к примеру, так: "ws_caption or ws_child or ws_clipchildren". (Будет создано дочернее окно с полосой заголовка, при этом будет запрещено рисо­вание родительского окна в области, занятой дочерним окном.)

Наоборот, если функция должна возвращать одно или более значений, опре­деляемых специальными константами, то с помощью логического умножения (оператор and) определяется, входит ли результат в набор возвращаемых зна­чений.


Читайте также

Сообщения (часть 4)

При обработке сообщений часто приходится сталкиваться с ситуациями, когда один 32-разрядный…

Синтаксис функций Windows API

Большая часть функций API уже импортирована в среду Delphi и описана в ее модулях

Импортирование функций Windows API

Если вызываемая функция API не описана в среде Delphi, то ее необходимо предварительно…

Нестандартно импортируемые функции

Некоторые функции импортируются в исходный код Delphi нестандартно. Они являются исключениями

Функции обратного вызова

Другое очень важное понятие в Windows-программировании - это понятие функции обратного…



Комментарии (0)







Разрешённые теги: <b><i><br>Добавить новый комментарий: