Введение в windows api


Содержание

Введение в API-программирование / Использование API / Visual C++ .NET

Введение в API-программирование

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

Структура API-программ

Центральным понятием программирования в среде Windows является сообщение. Система посылает сообщение приложению, а то, в свою очередь, должно правильно отреагировать на него. Получателями сообщений являются функции окон приложения, на программирование которых и уходит большая часть времени при разработки API-приложений.

Классическая структура API-программы определяется четырьмя компонентами: инициализация; цикл ожидания, или цикл обработки сообщений; функция главного окна; другие функции. В простейшем случае последний компонент может отсутствовать. Два первых компонента распологаятся в функции WinMain. Итак, все по порядку.

Функция WinMain

Функция WinMain вызывается системой, в которую передаются четыре параметра:

  • hInstance — дискриптор текушего экземпляра приложения.
  • hPrevInctance — всегда равен NULL.
  • lpCmdLine — указатель на командную строку запускаемой программы.
  • nCmdShow — способ визуализации окна.

Инициализация

Если кратко, то здесь производится регистрация класса окон, его создание и вывод на икран. Регистрация классв окон осуществляется функцией:

Пусть вас не смущает тип ATOM, для нас это просто int. Единственный параметр функции указатель на структуру WNDCLASS. После того как класс будет зарегестрировани, окно из данного класса может быть создано функцией CreateWindow. Разберём теперь структуру WNDCLASS:

Как видите, в структуре нет ничего сложного. Если регистрация прошла успешно, о чём мы узнаем по нулевому возвращенному значению, значит можно создавать окно.

Перечислим некоторые типичные значения членов структуры:

  • Стили класса окон. Стиль окна определяется комбинацией нескольких предопределённых констант. Довольно часто он пологается нулю, что означает «стиль по умолчанию».
  • Дискриптор иконки окна. Определяется с помощью функции LoadIcon. Первым параметром данной функции является дискриптор приложения, вторы — строка, определяющая имя иконки в ресурсах. Для того чтобы чтобы задать одну из стандартных иконок, первый параметр должен иметь значение NULL, а второй значение одной из следующих констант: IDI_APLICATION — стандартнаю иконка приложения; IDI_ASTERISK — иконка «информация»; IDI_EXCLAMATION — «восклицательный знак»; IDI_HAND — «знак Стоп»; IDI_QUESTION — «вопросительный знак».
  • Дискриптор курсора. Для определения курсора используется API-функция LoadCursor. Функция похожа на функцию LoadIcon.
  • Имя класса. Название класса — это просто строка, которая потом используется при создании окна.

Со значениями других членов структуры мы познакомимся позднее.
Окно создаётся функцией CreteWindow. Вот прототип этой функции:

Использование данной функции мы разберём позднее. Главное здесь то, что функция возвращает дискриптор созданного окна, при ошибке — 0.
Для того чтобы корректно отобразить окно на экране, следует выполнить ещё две функции.

BOOL ShowWindow(HWND hWnd, int nCmdShow) — эта функция отображает окно на экране. Первый параметр — дискриптор окна, второй — режим отображения. В качестве этого параметра обычно используют параметр nWinMode функции WinMain. Можно также использовать предопределённые константы:

  • SW_HIDE — скрыть окно
  • SW_MAXIMIZE — максимизировать окно
  • SW_MINIMIZE — минимизировать окно и активировать самое верхнее окно
  • SW_RESTORE — отобразить окно в нормальном состоянии
  • SW_SHOW — активизировать окнос текущими разменами
  • SW_SHOWMAXIMIZED — максимизировать окно и сделать его активным
  • SW_SHOWMINIMIZED — минимизировать окно
  • SW_SHOWNA — отобразить окно в его текущем состоянии. При этом активированое окно оставить активным.
  • SW_SHOWNOACTIVATE — востанавливает окно в его предыдушем состоянии. При этом активное окно остаётся активным.
  • SW_SHOWNORMAL — активизировать и востановить окно в прежних размерах.

BOOL UpdateWindow(HWND hWnd) — вызов данной функции приводит к немедленной перерисовке окна и посылке функции окна сообщения WM_PAINT.

Цикл обработки сообщений

Цикл обработки сообщений присутствует во всех проложеният Windows. Правда, не всегда этот цикл представлен явно в программе.

В цикле сообщения присутствует три функции. Эти функции есть там всегда, но кроме них в цикле могут быть и другие. Функция GetMessage выбирает из очереди сообщений приложения очередное приложение. вместо этой функции используют так же функции PostMessage и PeekMessage.
Во всех трех функциях присутствует указатель на строку MSG. Разберём её:

  • hwnd — дискриптор окна.
  • message — код сообщения.
  • wParam — дополнительный параметр.
  • lParam — дополнительный параметр.
  • time — время посылки сообщения.
  • pt — положение курсора мыши.

Прототип функции MessageBox.

Первый параметр функции — указатель на строку MSG, куда и будет помещена получаемая информация. Вторым параметром является дискриптор окна, которому предназначено сообщение. Если параметр равен NULL, то «отталкиваются» все сообщения, получаемые приложением. Два последних параметра определяют диапазон сообщений. Для того чтобы получать сообщения из всего диапазона, эти параметры должны быть равны 0.

Функция TransleteMessage преабразует сообщения WM_KEYDOWN и WM_KEYUP в WM_CHAR. Функция DispatchMessage просто переправляет сообщение оконной процедуре.

Оконная функция

Это еще один компонент отвечающий за обработку сообщений окна. Эта функция вызывается системой и имеет четыре параметра, совпадающих с первыми четырбмя членами структуры MSG. Искуство API-программирования заключается в основном в написании оконных функций. Вот пример оконной функции:

Примеры

Среда Visual C++ оказывает некоторую помощь желающим написать API-программы. Вы можете воспользоваться одной из двух возможностей. В списке проектов выбираем Win32 Project и далее следуем одним из двух путей: отменить флажок Empty project или нет. Если не отмечать флажок, то система создаст простейшее оконное приложение с минимальной функциональностью, позволяющей, однако, развивать ваш проект и создавать приложения любой степени сложности.

И так, начнём. Выбираем путь, простой проект. Откроем окно Solution Explorer. Как и следовало ожидать, проект пуст. Щелкним правой кнопкой мыщи по строке проекта и выбирем пункт Add new Item, тип файла — CPP и введём имя api1.cpp. Теперь мы свами можем воспользоваться тем что с вами иже узнали. Как сидите мы обощлись минимальным количеством файлов. Пожключаемый файл windows.h содержит определения всех API-функций, а также необходимых для их использования констант и типов данных. Вот код этой программы:

Purely functional

Страницы

четверг, 5 января 2012 г.

Введение в Windows Sockets API: Проект программы

Конечная программа будет сочетать в себе как функционал клиентских приложений, так и серверных. То есть будет не только подключаться к сторонним процессам, но и сама принимать входящие подключения.

Компоненты

Программу можно условно разделить на пять компонентов: ввод (input), вывод (output), обработка ввода (handler), контроллер (system) и небольшая библиотека функция для работы с сокетами (socket_lib).

Ввод/вывод данных осуществляется через стандартные потоки ввода/вывода.
Компонент handler занимается обработкой ввода пользователя, устанавливая систему команд и накладывая ограничения на нее.
Контроллер непосредственно выполняет работу, которую задает пользователь через систему команд, используя доступные функции из компонента socket_lib, и выводит информацию пользователю о результатах этой работы.

Отношения между компонентами наглядно отображены на прилагаемом рисунке, где стрелками указано направление передачи управления программой.

Функциональность

Теперь необходимо определиться с тем, что должна делать программа. Так как она сочетает в себе одновременно функции клиента и сервера, то список функций примерно следующий:

  • Создать сервер
  • Отправить сообщение
  • Вывод информации о текущем подключении
  • Вывод истории подключений

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

Система команд

После того как определились с функционалом программы, необходимо составить систему команд для пользователей, соответствующую функционалу. В нашем случае система команд будет состоять из четырех команд с аргументами:

  • create_serverport — создает слушающий сокет и привязывает его к порту port на текущем компьютере.
  • sendipportmess — отправляет сообщение mess к процессу, запущенному по адресу ip:port. В качестве ip можно указать 127.0.0.1, что позволит отправить сообщение другому процессу запущенному на текущей (локальной) машине или самому себе, если указать порт к которому привязан слушающий сокет текущего процесса.
  • show_connection — отображает информацию о текущем подключении.
  • show_history — отображает историю подключений.

Заключение

В следующей статье я непосредственно расскажу о реализации программы по техническому заданию, которое было косвенно изложено в этой статье, и выложу ее полный исходный код.

Введение

Windows API— набор функций операционной системы

Аббревиатура API многим начинающим программистам кажется весьма таинственной и даже пугающей. На самом же деле Application Programming Interface (API)— это просто некоторый готовый набор функций, который могут использовать разработчики приложений. В общем случае данное понятие эквивалентно тому, что раньше чаще называли библиотекой подпрограмм. Однако обычно под API подразумевается особая категория таких библиотек. программа приложение windows

В ходе разработки практически любого достаточно сложного приложения (MyAppication) для конечного пользователя формируется набор специфических внутренних функций, используемых для реализации данной конкретной программы, который называется MyApplication API. Однако часто оказывается, что эти функции могут эффективно использоваться и для создания других приложений, в том числе другими программистами. В этом случае авторы, исходя из стратегии продвижения своего продукта, должны решить вопрос: открывают они доступ к этому набору для внешних пользователей или нет? При утвердительном ответе в описании программного пакета в качестве положительной характеристики появляется фраза: «Комплект включает открытый набор API-функций» (но иногда за дополнительные деньги).

Таким образом, чаще всего под API подразумевается набор функций, являющихся частью одного приложения, но при этом доступных для использования в других программах. Например, Excel, кроме интерфейса для конечного пользователя, имеет набор функций Excel API, который может использоваться, в частности, при создании приложений с помощью VB.

Соответственно Windows API— это набор функций, являющийся частью самой операционной системы и в то же время— доступный для любого другого приложения, в том числе написанного с помощью VB. В этом плане вполне оправданна аналогия с набором системных прерываний BIOS/DOS, который фактически представляет собой DOS API.

Отличие заключается в том, что состав функций Windows API, с одной стороны, значительно шире по сравнению с DOS, с другой — не включает многие средства прямого управления ресурсами компьютера, которые были доступны программистам в предыдущей ОС. Кроме того, обращение к Windows API выполняется с помощью обыкновенных процедурных обращений, а вызов функций DOS— через специальную машинную команду процессора, которая называется Interrupt («прерывание»).

Написать консольное приложение, обрабатывающее сигналы от клавиатуры и мыши, с использованием API-функций.

Работа с функциями Windows API и DLL

Windows API — наиболее важная и мощная дополнительная библиотека функций, доступная каждому VB-программисту. Многие из них, в том числе и опытные разработчики, работают с функциями Windows API, используя простые готовые решения, почерпнутые из различных книг и журналов (возможно, и в нашей постоянной рубрике «Советы для тех, кто программирует на VB»), и не очень задумываясь о сути этой технологии. Такой подход является достаточным при решении простых задач, но для серьезной работы предпочтительнее более детально разобраться с основными принципами использования функций Windows API. Этим мы сейчас и займемся.

Windows API — набор функций операционной системы

Аббревиатура API многим начинающим программистам кажется весьма таинственной и даже пугающей. На самом же деле Application Programming Interface (API) — это просто некоторый готовый набор функций, который могут использовать разработчики приложений. В общем случае данное понятие эквивалентно тому, что раньше чаще называли библиотекой подпрограмм. Однако обычно под API подразумевается особая категория таких библиотек.

В ходе разработки практически любого достаточно сложного приложения (MyAppication) для конечного пользователя формируется набор специфических внутренних функций, используемых для реализации данной конкретной программы, который называется MyApplication API. Однако часто оказывается, что эти функции могут эффективно использоваться и для создания других приложений, в том числе другими программистами. В этом случае авторы, исходя из стратегии продвижения своего продукта, должны решить вопрос: открывают они доступ к этому набору для внешних пользователей или нет? При утвердительном ответе в описании программного пакета в качестве положительной характеристики появляется фраза: «Комплект включает открытый набор API-функций» (но иногда за дополнительные деньги).

Таким образом, чаще всего под API подразумевается набор функций, являющихся частью одного приложения, но при этом доступных для использования в других программах. Например, Excel, кроме интерфейса для конечного пользователя, имеет набор функций Excel API, который может использоваться, в частности, при создании приложений с помощью VB.

Соответственно Windows API — это набор функций, являющийся частью самой операционной системы и в то же время — доступный для любого другого приложения, в том числе написанного с помощью VB. В этом плане вполне оправданна аналогия с набором системных прерываний BIOS/DOS, который фактически представляет собой DOS API.

Отличие заключается в том, что состав функций Windows API, с одной стороны, значительно шире по сравнению с DOS, с другой — не включает многие средства прямого управления ресурсами компьютера, которые были доступны программистам в предыдущей ОС. Кроме того, обращение к Windows API выполняется с помощью обыкновенных процедурных обращений, а вызов функций DOS — через специальную машинную команду процессора, которая называется Interrupt («прерывание»).

Win16 API и Win32 API

Как известно, смена Windows 3.x на Windows 95 ознаменовала собой переход от 16-разрядной архитектуры операционной системы к 32-разрядной. Одновременно произошла замена 16-разрядного Windows API (Win16 API) на новый 32-разрядный вариант (Win32 API) — о некоторых аспектах этого перехода будет упомянуто в этой главе. В данном случае нужно просто иметь в виду, что, за небольшим исключением, набор Win32 API является единым для семейств Windows 9x и Windows NT.

Далее в этой статье под термином API будет подразумеваться Win API, более того, по умолчанию — Win32 API.

Зачем нужен Win API для VB-программистов

Несмотря на то что VB обладает огромным множеством разнообразных функций, в процессе более-менее серьезной разработки обнаруживается, что их возможностей зачастую не достаточно для решения необходимых задач. При этом программисты-новички часто начинают жаловаться на недостатки VB и подумывать о смене инструмента, не подозревая, что на их компьютере имеется огромный набор средств и нужно только уметь ими воспользоваться.

При знакомстве с Win API обнаруживается, что многие встроенные VB-функции — не что иное, как обращение к соответствующим системным процедурам, но только реализованное в виде синтаксиса данного языка. С учетом этого необходимость использования API определяется следующим вариантами:

  1. API-функции, которые полностью реализованы в виде встроенных VB-функций. Тем не менее иногда и в этом случае бывает полезным перейти к применению API, так как это позволяет порой существенно повысить производительность (в частности, за счет отсутствия ненужных преобразований передаваемых параметров).
  2. Встроенные VB-функции реализуют лишь частный случай соответствующей API-функции. Это довольно обычный вариант. Например, API-функция CreateDirectory обладает более широкими возможностями по сравнению со встроенным VB-оператором MkDir.
  3. Огромное число API-функций вообще не имеет аналогов в существующем сегодня варианте языка VB. Например, удалить каталог средствами VB нельзя — для этого нужно использовать функцию DeleteDirectory.

Следует также подчеркнуть, что некоторые API-функции (их доля в Win API весьма незначительна) не могут вызываться из VB-программ из-за ряда ограничений языка, например из-за отсутствия возможности работы с адресами памяти. Но в ряде случаев могут помочь нетривиальные приемы программирования (в частности, в случае с теми же адресами).

Личная точка зрения автора такова — вместо расширения от версии к версии встроенных функций VВ следовало бы давать хорошее описание наиболее ходовых API-функций. В то же время хочется посоветовать разработчикам не ждать появления новой версии средства с расширенными функциями, а внимательнее изучить состав существующего Win API — вполне вероятно, что нужные вам возможности можно было реализовать уже в версии VB 1.0 выпуска 1991 года.

Как изучать Win API

Это не такой простой вопрос, если учесть, что число функций Win32 API оценивается величиной порядка 10 тысяч (точной цифры не знает никто, даже Microsoft).

В состав VB (версий 4-6) входит файл с описанием объявлений Win API — WIN32API.TXT (подробнее о его применении мы расскажем позднее). Но, во-первых, с его помощью можно получить сведения о назначении той или иной функции и ее параметрах только по используемым мнемоническим именам, а во-вторых — перечень функций в этом файле далеко не полный. В свое время (семь лет назад) в VB 3.0 имелись специальные справочные файлы с описанием функций Win16 API. Однако уже в v.4.0 эта полезная информация с удобным интерфейсом исчезла.

Исчерпывающую информацию о Win32 API можно найти в справочной системе Platform Software Development Kit, которая, в частности, находится на компакт-дисках MSDN Library, включенных в состав VB 5.0 и 6.0 Enterprise Edition и Office 2000 Developer Edition. Однако разыскать там нужную информацию и разобраться в ней совсем не просто. Не говоря уж о том, что все описания там приводятся применительно к языку C.

Общепризнанным в мире пособием для изучения API-программирования в среде VB являются книги известного американского эксперта Даниэля Эпплмана (Daniel Appleman). Его серия Dan Appleman’s Visual Basic Programmer’s Guide to the Windows API (для Win16, Win32, применительно к разным версиям VB) с 1993 года неизменно входит в число бестселлеров для VB-программистов. Книгу Dan Appleman’s VB 5.0 Programmer’s Guide to the Win32 API, выпущенную в 1997 году, автору привез из США приятель, который нашел ее в первом же книжном магазине небольшого провинциального городка.

Эта книга объемом свыше 1500 страниц включает описание общей методики API-программирования в среде VB, а также более 900 функций. Прилагаемый компакт-диск содержит полный текст книги и всех программных примеров, а кроме того, несколько дополнительных глав, не вошедших в печатный вариант. В 1999 году Дэн Эпплман выпустил новую книгу Dan Appleman’s Win32 API Puzzle Book and Tutorial for Visual Basic Programmers, которая включает сведения о еще 7600 функциях (хотя и не столь обстоятельные).

Набор Win API реализован в виде динамических DLL-библиотек. Далее речь фактически пойдет о технологии использования DLL в среде VB на примере библиотек, входящих в состав Win API. Однако, говоря о DLL, необходимо сделать несколько важных замечаний.

В данном случае под DLL мы подразумеваем традиционный вариант двоичных динамических библиотек, которые обеспечивают прямое обращение приложений к нужным процедурам — подпрограммам или функциям (примерно так же, как это происходит при вызове процедур внутри VB-проекта). Такие библиотеки могут создаваться с помощью разных инструментов: VC++, Delphi, Fortran, кроме VB (посмотрим, что появится в версии 7.0) — последний может делать только ActiveX DLL, доступ к которым выполняется через интерфейс OLE Automation.

Обычно файлы динамических библиотек имеют расширение .DLL, но это совсем не обязательно (для Win16 часто применялось расширение .EXE); драйверы внешних устройств обозначаются с помощью .DRV.

Как мы уже отмечали, определить точное число API-функций Windows и содержащих их файлов достаточно сложно, однако все они находятся в системном каталоге. В этом плане лучше выделить состав библиотек, входящих в ядро операционной системы, и основных библиотек с ключевыми дополнительными функциями.

А теперь несколько советов.

Совет 1. Следите за правильным оформлением объявления DLL-процедур

Само обращение к DLL-процедурам в программе выглядит точно так же, как к «обычным» процедурам Visual Basic, например:

Однако для использования внешних DLL-функций (в том числе и Win API) их нужно обязательно объявить в программе с помощью оператора Declare, который имеет следующий вид:

Здесь в квадратных скобках приведены необязательные элементы оператора, курсивом выделены переменные выражения, остальные слова — ключевые. В справочной системе приведено достаточно хорошее описание синтаксиса оператора, поэтому сейчас мы только отметим некоторые моменты.

Объявления внешних функций должны размещаться в секции General Declarations модуля. Если вы размещаете его в модуле формы, то обязательно нужно указать ключевое слово Private (это объявление будет доступно только внутри данного модуля) — таково ограничение для всех процедур модуля формы.

Набор Win32 API реализован только в виде функций (в Win16 API было много подпрограмм Sub). В большинстве своем — это функции типа Long, которые чаще всего возвращают код завершения операции.

Оператор Declare появился в MS Basic еще во времена DOS, причем он использовался и для объявления внутренних процедур проекта. В Visual Basic этого не требуется, так как объявлением внутренних процедур автоматически является их описание Sub или Function. По сравнению с Basic/DOS в новом описании обязательно указывать имя файла-библиотеки, где находится искомая процедура. Библиотеки Wip API размещаются в системном каталоге Windows, поэтому достаточно привести только название файла. Если же вы обращаетесь к DLL, которая находится в произвольном месте, нужно записать полный путь к данному файлу.

Описание оператора Declare обычно занимает довольно много места и не помещается в одну строку в окне кода. Поэтому мы рекомендуем придерживаться при написании приложений какой-либо определенной схемы переноса строк, например:

В этом случае все основные элементы описания разнесены на разные строчки и поэтому хорошо читаются.

Совет 2. Будьте особенно внимательны при работе с DLL-функциями

Использование Win API и разнообразных DLL-функций существенно расширяет функциональные возможности VB и зачастую позволяет повысить производительность программ. Однако расплата за это — риск снижения надежности работы приложения, особенно в процессе его отладки.

Одним из самых важных достоинств среды VB является надежность процесса разработки программ: функционируя под управлением интерпретатора, программный код теоретически не может нарушить работу Windows и самого VB. Программист может не очень внимательно следить за правильностью передачи параметров в вызываемые функции — подобные ошибки будут легко обнаружены самим интерпретатором либо в процессе трансляции кода, либо во время его выполнения. В самом неприятном случае просто произойдет прерывание режима обработки, причем с указанием, где и почему произошла ошибка.

Использование напрямую функций Windows API или других DLL-библиотек снимает такой контроль за передачей данных и процессом выполнения кода вне среды VB. Поэтому ошибка в обращении к внешним функциям может привести к неработоспособности и VB и операционной системы. Это особенно актуально на этапе разработки программы, когда наличие ошибок — дело вполне естественное. Таким образом, применяя более широкие возможности функций базового слоя системы, программист берет на себя ответственность за правильность их применения.

Проблема усугубляется еще и тем, что разные языки программирования используют различные способы передачи параметров между процедурами. (Точнее, разные способы передачи используются по умолчанию, так как многие языки могут поддерживать несколько способов.) Win API реализованы на C/C++ и применяют соглашения о передаче параметров, принятые в этой системе, которые отличаются от привычного для VB варианта.

В связи с этим следует отметить, что появление встроенных в VB аналогов API-функций оправданно именно адаптацией последних к синтаксису VB и реализацией соответствующего механизма контроля обмена данными. Обратим также внимание, что на этапе опытной отладки приложения при создании исполняемого модуля лучше использовать вариант компиляции P-code вместо Native Code (машинный код). В первом случае программа будет работать под управлением интерпретатора — медленнее по сравнению с машинным кодом, но более надежно с точки зрения возможного ошибочного воздействия на операционную систему и обеспечивая более удобный режим выявления возможных ошибок.

Совет 3. Десять рекомендаций Дэна Эпплмана по надежному API-программированию в среде VB

Использование функции API требует более внимательного программирования с использованием некоторых не очень привычных методов обращения к процедурам (по сравнению с VB). Далее мы будем постоянно обращаться к этим вопросам. А сейчас приведем изложение сформулированных Дэном Эпплманом советов на эту тему (их первый вариант появился еще в 1993 году) с некоторыми нашими дополнениями и комментариями.

1. Помните о ByVal. Наиболее частая ошибка, совершаемая при обращении к функциям API и DLL, заключается в некорректном использовании ключевого слова ByVal: его или забывают ставить, или, наоборот, ставят, когда в нем нет необходимости.

На этих примерах показано влияние оператора ByVal на передачу параметров

Тип параметра С ByVal Без ByVal
Integer В стек помещается 16-разрядное целое В стек помещается 32-разрядный адрес 16-разрядного целого
Long В стек помещается 32-разрядное целое В стек помещается 32-разрядный адрес 32-разрядного целого
String Строка преобразуется в формат, используемый в С (данные и завершающий нулевой байт). 32-разрядный адрес новой строки помещается в стек В стек помещается VB-дескриптор строки. (Такие дескрипторы никогда не используются самим Windows API и распознаются только в DLL, реализованных специально для VB.)

Здесь следует напомнить, что передача параметров в любой системе программирования, в том числе и VB, выполняется двумя основными путями: по ссылке (ByRef) или по значению (ByVal). В первом случае передается адрес переменной (этот вариант используется в VB по умолчанию), во втором — ее величина. Принципиальное отличие заключается в том, что с помощью ссылки обеспечивается возврат в вызывающую программу измененного значения передаваемого параметра.

Чтобы разобраться в этом, проведите эксперимент с помощью таких программ:

Запустив на выполнение этот пример, вы получите сообщение со значением переменной, равным 3. Дело в том, что в данном случае в подпрограмму MyProc передается адрес переменной v, физически созданной в вызывающей программе. Теперь измените описание процедуры на

В результате при выполнении теста вы получите v = 2, потому что в процедуру передается лишь исходное значение переменной — результат выполненных с ним операций не возвращается в вызывающую программу. Режим передачи по значению можно поменять также с помощью оператора Call следующим образом:

Однако при обращении к внутренним VB-процедурам использование в операторе Call ключевого слова ByVal запрещено — вместо него применяются круглые скобки. Этому есть свое объяснение.

В классическом случае (С, Fortran, Pascal) различие режимов ByRef и ByVal зависит от того, что именно помещается в стек обмена данными — адрес переменной или ее значение. В Basic исторически используется вариант программной эмуляции ByVal — в стеке всегда находится адрес, но только при передаче по значению для этого создается временная переменная. Чтобы отличить два этих варианта (классический и Basic), используются разные способы описания режима ByVal. Отметим, что эмуляция режима ByVal в VB обеспечивает более высокую надежность программы: перепутав форму обращения, программист рискует лишь тем, что в вызывающую программу вернется (или не вернется) исправленное значение переменной. В «классическом» же варианте такая путаница может привести к фатальной ошибке при выполнении процедуры (например, когда вместо адреса памяти будет использоваться значение переменной, равное, скажем, нулю).

DLL-функции реализованы по «классическим» принципам и поэтому требуют обязательного описания того, каким образом происходит обмен данными с каждым из аргументов. Именно этой цели служат объявления функций через описание Declare (точнее, списка передаваемых аргументов). Чаще всего передача параметров в функцию Windows API или DLL выполняется с помощью ключевого слова ByVal. Причем оно может быть задано как в операторе Declare, так и непосредственно при вызове функции.

Последствия неправильной передачи параметров легко предугадать. В случае получения явно недопустимого адреса вам будет выдано сообщение GPF (General Protection Fault — ошибка защиты памяти). Если же функция получит значение, совпадающее с допустимым адресом, то функция API залезет в чужую область (например, в ядро Windows) со всеми вытекающими отсюда катастрофическими последствиями.

2. Проверяйте тип передаваемых параметров. Не менее важны верное число и тип передаваемых параметров. Необходимо, чтобы объявленные в Declare аргументы соответствовали ожидаемым параметрам в функции API. Наиболее часто встречающийся случай ошибки в передаче параметров связан с различием между NULL и строкой нулевой длины — следует помнить, что это не одно и то же.

3. Проверяйте тип возвращаемого значения.

VB довольно терпимо относится к несовпадению типов возвращаемых функцией значений, поскольку числовые значения обычно возвращаются через регистры, а не через стек. Следующие правила помогут определить корректное значение, возвращаемое функцией API:

  • DLL-функция, не возвращающая значения (аналог void в ‘C’), должна быть объявлена как VB Sub.
  • функция API, возвращающая целое значение (Integer или Long), может быть определена или как Sub, или как Function, возвращающая значение соответствующего типа.
  • ни одна из функций API не возвращает числа с плавающей точкой, но некоторые DLL вполне могут возвращать такой тип данных.

4. С большой осторожностью используйте конструкцию «As Any». Множество функций Windows API имеют возможность принимать параметры различных типов и используют при этом обращение с применением конструкции As Any (интерпретация типа выполняется в зависимости от значения других передаваемых параметров).

Хорошим решением в этом случае может быть использование нескольких псевдонимов (Alias) функции с созданием двух и более объявлений для одной и той же функции, причем в каждом из описаний указываются параметры определенного типа.

5. Не забывайте инициализировать строки. В Win API существует множество функций, возвращающих информацию путем загрузки данных в передаваемые как параметр строковые буферы. В своей программе вы можете вроде бы все сделать правильно: не забыть о ByVal, верно передать параметры в функцию. Но Windows не может проверить, насколько велик размер выделенного под строку участка памяти. Размер строки должен быть достаточным для размещения всех данных, которые могут быть в него помещены. Ответственность за резервирование буфера нужного размера лежит на VB-программисте.

Следует отметить, что в 32-разрядных Windows при использовании строк производится преобразование из Unicode (двухбайтовая кодировка) в ANSI (однобайтовая) и обратно, причем с учетом национальных установок системы. Поэтому для резервирования буферов порой удобнее использовать байтовые массивы вместо строковых переменных. (Подробнее об этом будет рассказано ниже.)

Чаще всего функции Win API позволяют вам самим определить максимальный размер блока. В частности, иногда для этого нужно вызвать другую функцию API, которая «подскажет» размер блока. Например, GetWindowTextLength позволяет определить размер строки, необходимый для размещения заголовка окна, получаемого функцией GetWindowText. В этом случае Windows гарантирует, что вы не выйдете за границу.

6. Обязательно используйте Option Explicit.

7. Внимательно проверяйте значения параметров и возвращаемых величин. VB обладает хорошими возможностями по проверке типов. Это означает, что, когда вы пытаетесь передать неверный параметр в функцию VB, самое плохое, что может случиться, — вы получите сообщение об ошибке от VB. Но данный механизм, к сожалению, не работает при обращении к функциям Windows API.

Windows 9x обладает усовершенствованной системой проверки параметров для большинства функций API. Поэтому наличие ошибки в данных обычно не вызывает фатальной ошибки, однако определить, что же явилось ее причиной — не так-то просто.

Здесь можно посоветовать использовать несколько способов отладки ошибки данного типа:

  • используйте пошаговый режим отладки или команду Debug.Print для проверки каждого подозрительного вызова функции API. Проверьте результаты этих вызовов, чтобы удостовериться, что все в пределах нормы и функция корректно завершилась;
  • используйте Windows-отладчик типа CodeView и отладочную версию Windows (имеется в Windows SDK). Эти средства могут обнаружить ошибку параметров и по меньшей мере определить, какая функция API приводит к ошибке;
  • используйте дополнительные средства третьих фирм для проверки типов параметров и допустимости их значений. Такие средства могут не только находить ошибки параметров, но даже указать на строку кода VB, где произошла ошибка.

Кроме того, нужно обязательно проверять результат выполнения API-функции.

8. Помните, что целые числа в VB и в Windows — не одно и то же. В первую очередь следует иметь в виду, что под термином «Integer» в VB понимается 16-разрядное число, в документации Win 32 — 32-разрядное. Во-вторых, целые числа (Integer и Long) в VB — это величины со знаком (то есть один разряд используется как знак, остальные — как мантисса числа), в Windows — используются только неотрицательные числа. Это обстоятельство нужно иметь в виду, когда вы формируете передаваемый параметр с помощью арифметических операций (например, вычисляете адрес с помощью суммирования некоторой базы и смещения). Для этого стандартные арифметические функции VB не годятся. Как быть в этом случае, мы поговорим отдельно.

9. Внимательно следите за именами функций. В отличие от Win16 имена всех функций Win32 API являются чувствительными к точному использованию строчных и прописных букв (в Win16 такого не было). Если вы где-то применяете строчную букву вместо прописной или наоборот, то нужная функция не будет найдена. Следите также за правильным использованием суффикса A или W в функциях, применяющих строковые параметры. (Подробнее об этом – см. ниже.)

10. Чаще сохраняйте результаты работы. Ошибки, связанные с неверным использованием DLL и Win API, могут приводить к аварийному завершению работы VB-среды, а возможно — и всей операционной системы. Вы должны позаботиться о том, чтобы написанный вами код перед тестовым запуском был сохранен. Самое простое — это установить режим автоматической записи модулей проекта перед запуском проекта в среде VB.

Совет 4. Не нужно бояться применять Win API

После прочтения предыдущего совета может возникнуть мысль, что использование функций Win API — дело рискованное. В какой-то степени это так, но только в сравнении с безопасным программированием, предоставляемым самим VB. Но при умелом их применении и знании возможных подводных камней этот риск минимален. К тому же полностью отказаться от применения Win API зачастую просто невозможно — они все равно потребуются при сколь-нибудь серьезной разработке.

К тому же ранее мы упоминали о «подводных» камнях для широкого класса DLL. В случае с Win API все обстоит гораздо проще, так как здесь четко унифицирована форма обращения к этим функциям. При этом следует иметь в виду следующие основные моменты:

    Функции Win32 API являются именно функциями, то есть процедурами типа Function (в Win16 API было много подпрограмм Sub). Все это функции типа Long, поэтому их описания записываются в следующем виде:

Обращение к API-функции выглядит так:

  1. Чаще всего возвращаемое значение функции является кодом завершения операции. Причем ненулевое значение означает в данном случае нормальное завершение, нулевое — ошибку. Обычно (но не всегда) уточнить характер ошибки можно с помощью обращения к функции GetLastError. Описание этой функции имеет такой вид:

ВНИМАНИЕ! При работе в среде VB для получения значения уточненного кода ошибки лучше использовать свойство LastDLLError объекта Err, так как иногда VB обнуляет функцию GetLastError в промежутке между обращением к API и продолжением выполнения программы.

Интерпретировать код, возвращаемый GelLastError, можно с помощью констант, записанных в файле API32.TXT, с именами, начинающимися с суффикса ERROR_.

Наиболее типичные ошибки имеют следующие коды:

    ERROR_INVAL >Однако многие функции возвращают значение некоторого запрашиваемого параметра (например, OpenFile возвращает значение описателя файла). В таких случаях ошибка определяется каким-либо другим специальным значением Return&, чаще всего 0 или –1.

Win32 API используют строго фиксированные способы передачи самых простых типов данных.

С помощью переменных типа Long выполняется не менее 80% передачи аргументов. Обратите внимание, что аргумент всегда сопровождается ключевым словом ByVal, а это, кроме всего прочего, означает, что выполняется односторонняя передача данных — от VB-программы к API-функции.

Этот тип передачи данных также встречается достаточно часто, причем с аргументом также всегда применяется ByVal. При вызове API-функции в стек записывается адрес строки, поэтому в данном случае возможен двусторонний обмен данными. При работе со строками нужно учитывать несколько опасностей.

Первая — резервирование памяти под строку производится в вызывающей программе, поэтому если API-функция будет заполнять строки, то нужно перед ее вызовом создать строку необходимого размера. Например, функция GetWindowsDirectory возвращает путь к каталогу Windows, который по определению не должен занимать более 144 символов. Соответственно обращение к этой функции должно выглядеть примерно так:

Вторая проблема заключается в том, что при обращении к API-функции производится преобразование исходной строки в ее некоторое внутреннее представление, а при выходе из функции — наоборот. Если во времена Win16 эта операция заключалась лишь в добавлении нулевого байта в конце строки, то с появлением Win32 к этому добавилась трансформация двухбайтной кодировки Unicode в ANSI и наоборот. (Об этом подробно говорилось в статье «Особенности работы со строковыми переменными в VB», КомпьютерПресс 10’99 и 01’2000). Сейчас же только отметим, что с помощью конструкции ByVal . As String можно обмениваться строками только с символьными данными.

Это означает, что в стек будет помещен некоторый адрес буфера памяти, интерпретация содержимого которого будет выполняться API-функцией, например, в зависимости от значения других аргументов. Однако As Any может использоваться только в операторе Declare — при конкретном обращении к функции в качестве аргумента должна быть определена конкретная переменная.

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

Форма структуры данных определяется конкретной API-функцией, и на программисте лежит ответственность правильным образом описать и зарезервировать ее в вызывающей программе. Такая конструкция всегда используется без слова ByVal, то есть в данном случае выполняется передача по ссылке — в стек записывается адрес переменной.

Пример обращения к API-функции

Проиллюстрируем сказанное выше на примере использования двух полезных функций работы с файлами — lopen и lread, которые описываются следующим образом:

В VB их аналогами — в данном случае точными — являются операторы Open и Get (для режима Binary). Обратим сразу внимание на использование ключевого слова Alias в объявлении функции — это как раз тот случай, когда без него не обойтись. Настоящие названия функции в библиотеке начинаются с символа подчеркивания (типичный стиль для языка C), что не разрешается в VB.

Операция открытия файла может выглядеть следующим образом:

Здесь нужно обратить внимание на два момента:

  • в качестве значения функции мы получаем значение описателя файла. Ошибке соответствует значение –1;
  • как раз в данном случае не срабатывает обращение к функции GetLastError — для получения уточненного значения ошибки мы обратились к объекту Err (о возможности такой ситуации мы говорили выше).

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

Еще раз обратите внимание: второй аргумент функции передается по ссылке, остальные — по значению.

Однако если вы хотите прочитать символьные данные в строке переменной длины, то вам нужно использовать иной вид обращения:

Здесь видно важное отличие от приведенного ранее примера — строковая переменная обязательно сопровождается ключевым словом ByVal.

Чтение содержимого файла в массиве (для простоты будем использовать одномерный байтовый массив) выполняется следующим образом:

Указывая первый элемент массива в качестве аргумента, мы передаем адрес начала области памяти, зарезервированной под массив. Очевидно, что таким образом можно заполнить любой фрагмент массива:

Аналогичным образом можно прочитать фрагмент многомерного массива, но при этом нужно знать алгоритм преобразования многомерной структуры в одномерную.

Совет 5. Используйте Alias для передачи параметров As Any

Здесь на основе предыдущего примера мы раскроем суть четвертого совета Дэна Эпплмана.

Работая с функцией lread, следует помнить, что при обращении к ней с использованием строковой переменной необходимо использовать ключевое слово ByVal (иначе сообщения о нелегальной операции не избежать). Чтобы обезопасить себя, можно сделать дополнительное специальное описание этой же функции для работы только со строковыми переменными:

При работе с этим описанием указывать ByVal при обращении уже не нужно:

Казалось бы, синтаксис оператора Declare позволяет сделать подобное специальное описание для массива:

неизбежно приводит к фатальной ошибке программы.

Совет 6. Внимание при работе со строковыми переменными

Это продолжение разговора об особенностях обработки строковых переменных в Visual Basic: VB использует двухбайтную кодировку Unicode, Win API — однобайтную ANSI (причем с форматом, принятым в С, — с нулевым байтом в конце). Соответственно при использовании строковых переменных в качестве аргумента всегда автоматически производится преобразование из Unicode в ANSI при вызове API-функции (точнее, DLL-функции) и обратное преобразование при возврате.

Вывод из этого простой: с помощью переменных String можно обмениваться символьными данными, но нельзя использовать их для обмена произвольной двоичной информацией (как это было при работе с 16-разрядными версиями VB). В последнем случае лучше использовать одномерный байтовый массив.

Как известно, тип String можно использовать для описания пользовательской структуры. В связи с этим нужно помнить следующее:

    Категорически нельзя использовать для обращения к Win API конструкцию следующего вида:

В случае строки переменной длины в составе структуры передается дескриптор строки со всеми вытекающими отсюда последствиями в виде ошибки выполнения программы.

  • Можно использовать в качестве элемента структуры строку фиксированной длины:
  • При этом производится соответствующее преобразование кодировок.

    И последнее замечание: применять массив строковых переменных (как фиксированной, так и переменной длины) при обращении к API-функции нельзя ни в коем случае. Иначе появление «нелегальной операции» будет гарантировано.

    Совет 7. Как обращаться к DLL-функциям

    Вполне вероятно, что у вас возникнет ситуация, когда вам потребуется написать собственную библиотеку DLL-функций. Потребность в этом неизбежно появится, если вы будете использовать технологию смешанного программирования — использования двух или более языков программирования для реализации одного приложения.

    Отметим в связи с этим, что смешанное программирование — это вполне обычное явление для реализации достаточно сложного приложения. Действительно, каждый язык (точнее, система программирования на базе языка) имеет свои сильные и слабые стороны, поэтому вполне логично использовать преимущества различных инструментов для решения разных задач. Например, VB — для создания пользовательского интерфейса, С — для эффективного доступа к системным ресурсам, Fortran — для реализации численных алгоритмов.

    Мнение автора таково: сколь-нибудь серьезное занятие программированием требует от разработчика владения по крайней мере двумя инструментами. Разумеется, в современных условиях четкого разделения труда очень сложно быть отличным экспертом даже по двум системам, поэтому более логичной является схема «основной и вспомогательный языки». Идея здесь заключается в том, что даже поверхностное знание «вспомогательного» языка (написание довольно простых процедур) может очень заметно повысить эффективность применения «основного». Отметим, что знание VB хотя бы в качестве вспомогательного является сегодня практически обязательным требованием для профессионального программиста. Кстати, во времена DOS для любого программиста, в том числе Basic, было крайне желательным знание основ Ассемблера.

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

    При изучении межпроцедурного интерфейса следует обратить внимание на следующие возможные «подводные камни»:

    • Разные языки могут использовать различные соглашения о правилах написания идентификаторов. Например, часто используется знак подчеркивания в начале имени процедуры, что запрещено в VB. Эта проблема легко решается с помощью ключевого слова Alias в операторе Declare (см. пример совета 2.3).
    • Может быть использована разная последовательность записи передаваемых аргументов в стек. Например, во времена DOS (честно признаюсь — не знаю, как это выглядит сейчас в среде Windows), C записывал аргументы с конца списка, другие языки (Fortran, Pascal, Basic) — с начала.
    • По умолчанию используются разные принципы передачи параметров — по ссылке или по значению.
    • Различные принципы хранения строковых переменных. Например, в C (так же как в Fortran и Pascal) длина строки определяется нулевым байтом в ее конце, а в Basic длина записывается в явном виде в дескрипторе строки. Разумеется, нужно иметь в виду возможность использования разных кодировок символов.
    • При передаче многомерных массивов следует помнить, что возможны различные варианты преобразования многомерных структур в одномерные (начиная с первого индекса или с последнего, применительно к двухмерным массивам — «по строчкам» или «по столбцам»).

    С учетом всего этого можно сформулировать следующие рекомендации:

    • Используйте самые простые, проверенные способы передачи аргументов в DLL-функции. Стандарты, принятые для Win API, вполне годятся в качестве образца.
    • Ни в коем случае не передавайте массивы строковых переменных.
    • Очень внимательно используйте передачу простых строковых переменных и многомерных массивов.
    • Обязательно специальным образом проверяйте работоспособность механизма передачи аргументов в вызываемую процедуру и обратно. Напишите специальный тест для проверки передачи данных. Отдельно проверьте правильность передачи каждого аргумента. Например, если у вас есть процедура с несколькими аргументами, проверьте сначала корректность передачи каждого параметра для варианта с одним аргументом, а уж потом — для всего списка.

    А что делать, если DLL-функция уже написана, например, на Фортране, но ее входной интерфейс не очень хорошо вписывается в приведенные выше стандарты VB? Здесь можно дать два совета. Первый: напишите тестовую DLL-функцию и с ее помощью постарайтесь методом проб и ошибок подобрать нужное обращение из VB-программы. Второй: напишите процедуру-переходник на том же Фортране, который бы обеспечивал простой интерфейс между VB и DLL-функцией с преобразованием простых структур данных в сложные (например, преобразовывал многомерный байтовый массив в строковый массив).

    Итак: используйте DLL-функции. Но сохраняйте бдительность.

    Введение в API-программирование

    API (application programming interface) — интерфейс прикладного программирования (иногда интерфейс программирования приложений). Другими словами, это те возможности (функции, переменные, константы, классы), которые предоставляет приложение для использования прикладными программами.

    API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

    Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать, при этом ящик будет производить какие-то определенные действия понятные и необходимые пользователю, но пользователь, при этом, не имеет даже представления о их реализации.

    Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

    API операционных систем

    Практически все операционные системы (Unix, Windows, Mac OS, и т.д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем — это множество системных вызовов.

    В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайней мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов.

    Windows API — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows (от Windows 3.11 до Windows 98) и Windows NT корпорации «Microsoft». Является самым прямым способом взаимодействия приложений с Windows.

    Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ.

    Win32 — 32х разрядный API для современных версий Windows. Самая популярная ныне версия. Win32 появился вместе с Windows NT и затем был перенесён (в несколько ограниченном виде) в системы серии Windows 9x.

    Win64 — 64-разрядная версия Win32, содержащая дополнительные функции для использования на 64-разрядных компьютерах.

    Центральным понятием программирования в среде Windows является сообщение. Система посылает сообщение приложению, а то, в свою очередь, должно правильно отреагировать на него. Получателями сообщений являются функции окон приложения, на программирование которых и уходит большая часть времени при разработке API-приложений.

    Классическая структура API-программы определяется четырьмя компонентами: инициализация; цикл ожидания, или цикл обработки сообщений; функция главного окна; другие функции. В простейшем случае последний компонент может отсутствовать. Два первых компонента располагаются в функции WinMain, остальные реализуются отдельными функциями.

    Описание используемых API-функций

    Функция извлекает командную строку для текущего процесса. Величина возвращаемого значения — указатель на строку.

    LPTSTR GetCommandLine(VOID) // У этой функции нет параметров.

    Функция извлекает дескриптор указанного модуля, если файл был отображен в адресном пространстве вызывающего процесса. В случае успешного завершения возвращает идентификатор модуля; 0 — в противном случае.

    ModuleName: PChar // Имя модуля (заканчивающееся пустым символом).

    Регистрирует указанные классы стандартного органа управления из динамически подключаемой библиотеки (DLL) стандартных органов управления. Возвращает значение ИСТИНА (TRUE) в случае успешного завершения, или иначе ЛОЖЬ (FALSE).

    Функция заканчивает работу процесса и всех его потоков. У этой функции нет возвращаемого значения.

    UINT uExitCode // код выхода для всех потоков

    Функция вызывается системой как начальная точка входа, для базирующейся на Win32, прикладной программы. Если функция достигла цели, она завершается тогда, когда примет сообщение WM_QUIT, она должно возвратить значение выхода, содержащееся в параметре этого сообщения wParam. Если функция завершается перед вводом цикла сообщения, она должна возвратить 0.

    int WINAPI WinMain

    HINSTANCE hInstance, // дескриптор текущего экземпляра окна

    HINSTANCE hPrevInstance, // дескриптор предыдущего экземпляра окна

    LPSTR lpCmdLine, // указатель на командную строку

    int nCmdShow // показывает состояние окна

    Функция загружает указанный ресурс значка из исполняемого (.exe) файла, связанного с экземпляром приложения. Если функция завершается успешно, возвращаемое значение — дескриптор недавно загруженного значка. Если функция завершается ошибкой, возвращаемое значение — NULL. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

    HINSTANCE hInstance, // Дескриптор экземпляра модуля

    LPCTSTR lpIconName // Указатель на строку

    Функция извлекает дескриптор одного из предопределенных (стандартных) перьев, кистей, шрифтов или палитр. Если функция завершается успешно, возвращаемое значение — дескриптор затребованного логического объекта. Если функция завершается с ошибкой, возвращаемое значение — ПУСТО (NULL).

    int fnObject // тип предопределенного объекта

    Функция загружает заданный ресурс курсора из исполняемого (.EXE) файла, связанного с экземпляром прикладной программы. Если функция завершается успешно, возвращаемое значение — дескриптор недавно загруженного курсора. Если функция завершается ошибкой, возвращаемое значение — ПУСТО (NULL).

    HINSTANCE hInstance, // Дескриптор экземпляра модуля

    LPCTSTR lpCursorName // Указатель на строку

    Регистрирует класс окна для последующего использования при вызове CreateWindowEx функции.

    ATOM WINAPI RegisterClass (

    WNDCLASS * lpWndClass // Указатель на WNDCLASS структуры.

    Создает перекрывающее, всплывающее или дочернее окно с расширенным стилем окна. Если функция успешно завершила работу, возвращаемое значение — дескриптор созданного окна. Если функция завершилась ошибкой, возвращаемое значение — ПУСТО (NULL).

    DWORD dwExStyle, // улучшенный стиль окна

    LPCTSTR lpClassName, // указатель на зарегистрированное имя класса

    LPCTSTR lpWindowName, // указатель на имя окна

    DWORD dwStyle, // стиль окна

    int x, // горизонтальная позиция окна

    int y, // вертикальная позиция окна

    int nWidth, // ширина окна

    int nHeight, // высота окна

    HWND hWndParent, // дескриптор родительского или окна владельца

    HMENU hMenu, // дескриптор меню или ID дочернего окна

    HINSTANCE hInstance, // дескриптор экземпляра прикладной программы

    LPVOID lpParam // указатель на данные создания окна

    Функция назначает новое меню для заданного окна.

    HWND hWnd, // Дескриптор окна, к которому назначается меню.

    HMENU hMenu // Дескриптор нового меню.

    Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение — не 0. Если окно перед этим было не видимо, возвращаемое значение — 0.

    HWND hWnd, // дескриптор окна

    int nCmdShow // состояние показа окна

    Функция обновляет рабочую область заданного окна, отправляя сообщение WM_PAINT окну, если регион обновления окна не пуст. Функция отправляет сообщение WM_PAINT непосредственно оконной процедуре указанного окна, обходя очередь приложения. Если регион обновления пуст, никакое сообщение не отправляется. Если функция завершается успешно, возвращаемое значение — не 0. Если функция завершается ошибкой, возвращаемое значение — 0.

    HWND hWnd // Дескриптор окна.

    Получить очередное сообщение из очереди сообщений данного приложения.

    LPMSG lpMsg, // указатель на структуру

    HWND hWnd, // указатель окна чьи сообщения нужно обрабатывать

    UINT wMsgFilterMin, // номер мимимального сообщения для выборки

    UINT wMsgFilterMax // номер максимального сообщения для выборки

    Транслировать клавиатурные сообщения в ASCII-коды. Если сообщение переведено (то есть символьное сообщение помещено в очереди сообщений потока), величина возвращаемого значения не 0. Если сообщение не переведено (то есть символьное сообщение не помещено в очереди сообщений потока), величина возвращаемого значения — 0.

    const MSG* lpMsg // Указатель на структуру MSG, которая содержит информацию о сообщении извлеченную из очереди сообщений вызывающего потока при помощи использования функции GetMessage.

    Вернуть управление Windows с передачей сообщения предназначенному окну. Величина возвращаемого значения определяется значением, которое возвращает оконная процедура. Несмотря на то, что это значение зависит от отправляемого сообщения, возвращаемое значение, как правило, игнорируется.

    CONST MSG *lpmsg // указатель на структуру с сообщением

    Функция отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. Чтобы отправить сообщение и возвратить немедленно значение, используйте функцию SendMessageCallback или SendNotifyMessage. Чтобы поместить сообщение в очередь сообщений потока и возвратить немедленно значение, используйте функцию PostMessage или PostThreadMessage.

    HWND hWnd, // Дескриптор окна

    UINT Msg, // Определяет сообщение, которое будет отправлено

    WPARAM wParam, // Определяет дополнительную конкретизирующую сообщение информацию

    LPARAM lParam // Определяет дополнительную конкретизирующую сообщение информацию

    Функция изменяет текст заголовка заданного окна (если таковой имеется). Если определяемое окно — орган управления, то изменяется его текст. Однако SetWindowText не может изменить текст органа управления в другом приложении.

    HWND hWnd, // дескриптор окна или элемента управления

    LPCTSTR lpString // адрес строчки

    Функция устанавливает фокус клавиатуры в заданном окне. Окно должно быть связано с очередью сообщений вызывающего потока.

    (HWND hWnd // дескриптор окна, которому передается фокус

    Функция заменяет атрибуты указанного окна. Функция также устанавливает и 32-разрядное (long) значение при заданном смещении в дополнительную память окна.

    HWND hWnd, // Дескриптор окна

    int nIndex, // Определяет отсчитываемое от нуля смещение устанавливаемого значения

    LONG dwNewLong // Устанавливает заменяемое значение

    Функция изменяет позицию и габариты определяемого окна. Для окна верхнего уровня, позиция и габариты отсчитываются относительно левого верхнего угла экрана. Для дочернего окна, они — относительно левого верхнего угла рабочей области родительского окна.

    HWND hWnd, // дескриптор окна

    int x, // позиция по горизонтали

    int y, // позиция по вертикали

    int nWidth, // ширина

    int nHeight, // высота

    BOOL bRepaint // флажок перекраски

    Функция возвращает координаты клиентской области окна. Клиентские координаты определяют верхний левый и правый нижний углы клиентской области. Поскольку клиентские координаты относительны левому углу клиентской области окна, то координаты верхнего левого угла является (0, 0).

    HWND hWnd, // дескриптор окна

    LPRECT lpRect // адрес структуры для клиентских координат

    Функция указывает системе, что поток сделал запрос на то, чтобы завершить свою работу (выйти). Это обычно используется в ответ на сообщение WM_DESTROY.

    int nExitCode // Определяет код завершения прикладной программы

    Функция вызывается оконной процедурой по умолчанию, чтобы обеспечить обработку по умолчанию любого сообщения окна, которые приложение не обрабатывает. Эта функция гарантирует то, что обрабатывается каждое сообщение. Функция DefWindowProc вызывается с теми же самыми параметрами, принятыми оконной процедурой.

    HWND hWnd, // Дескриптор оконной процедуры

    UINT Msg, // сообщение

    Функция создает или открывает каталог, физический диск, том, буфер консоли, коммуникационный ресурс, почтовый слот или именованный канал. Если функция завершается успешно, возвращаемое значение — открытый дескриптор заданного файла. Если функция завершается с ошибкой, возвращаемое значение — INVALID_HANDLE_VALUE.

    HANDLE CreateFile (

    LPCTSTR lpFileName, // имя файла — указатель на символьную строку с нулем в конце, устанавливающую имя объекта, который создается или открываться

    DWORD dwDesiredAccess, // режим доступа (чтение, запись или то и другое)

    DWORD dwShareMode, // режим совместного доступа (чтение, запись, оба или никакого действия)

    LPSECURITY_ATTRIBUTES lpSecurityAttributes, // Указатель на структуру SECURITY_ATTRIBUTES, которая устанавливает может ли возвращенный дескриптор быть унаследован дочерними процессами

    DWORD dwCreationDisposition, // как действовать

    DWORD dwFlagsAndAttributes, // атрибуты и флажки файла

    HANDLE hTemplateFile // Дескриптор файла шаблона с правом доступа GENERIC_READ

    Функция извлекает размер указанного файла. Размер файла, который может быть сообщен при помощи этой функции ограничивается значением двойного слова (DWORD). Если функция завершается успешно, возвращаемое значение — младшая часть двойного слова размера файла, и если параметр lpFileSizeHigh — не ПУСТО (NULL), функция помещает старшую часть двойного слова размера файла в переменную, на которую указывает этот параметр. Если функция завершается ошибкой, и lpFileSizeHigh равен ПУСТО (NULL), возвращаемое значение — INVALID_FILE_SIZE. Если функция завершается ошибкой, и lpFileSizeHigh — не ПУСТО (NULL), возвращаемое значение — INVALID_FILE_SIZE.

    HANDLE hFile, // дескриптор файла, размер которого должен возвратиться.

    LPDWORD lpFileSizeHigh // указатель на переменную, в которой возвращается старшее слово размера файла.

    Функция закрывает дескриптор открытого объекта, созданный функцией CreateFile. Если функция завершается успешно, величина возвращаемого значения — не 0. Если функция завершается с ошибкой, величина возвращаемого значения — 0.

    HANDLE hObject // дескриптор открытого объекта

    Отображается модальное диалоговое окно, которое содержит системный значок, набор кнопок, а также краткое заявление конкретного сообщения, например, статуса или об ошибке. В окне сообщения возвращает целое число, указывающее кнопку, нажатую пользователем. Если функция завершается ошибкой, возвращаемое значение равняется 0.

    HWND HWND, // Дескриптор владельца окна в окне сообщения. Если этот параметр — ПУСТО (NULL), окно сообщения не имеет окна владельца.

    LPCTSTR lpText, // Указатель на символьную строку с нулем в конце, которая содержит сообщение показываемое на экране.

    LPCTSTR lpCaption, // Указатель на символьную строку с нулем в конце, которая содержит заголовок диалогового окна (окна сообщения).

    UINT uType // Содержание и поведение диалогового окна.

    Принимает на входе строку ANSI и возвращает содержащую ее BSTR. Не выполняет никаких преобразований ANSI-Unicode.

    char FAR* psz, // Заканчивающаяся нулем строка, которую нужно скопировать, или NULL, если новая строка должна остаться неинициализированной.

    unsigned int len // Число байт, которые нужно скопировать из psz. После скопированных символов добавляется нулевой символ, т.е. всего выделяется len +1 байт

    Функция читает данные из файла или того, что было создано функцией CreateFile, начиная с позиции, обозначенной указателем файла.

    HANDLE hFile, // дескриптор файла, который читается

    LPVOID lpBuffer, // Указатель на буфер, который принимает прочитанные данные из файла

    DWORD nNumberOfBytesToRead, // число байтов, которые читаются из файла

    LPDWORD lpNumberOfBytesRead, // число прочитанных байтов

    LPOVERLAPPED lpOverlapped // асинхронный буфер

    Функция пишет данные в файл с места, обозначенного указателем позиции в файле. Если функция завершается успешно, величина возвращаемого значения — не 0. Если функция завершается с ошибкой, величина возвращаемого значения — 0.

    HANDLE hFile, // дескриптор файла

    LPCVOID lpBuffer, // Указатель на буфер, содержащий данные, которые будут записаны в файл

    DWORD nNumberOfBytesToWrite, // число байтов, которые будут записаны в файл

    LPDWORD lpNumberOfBytesWritten, // число записанных байтов

    LPOVERLAPPED lpOverlapped // асинхронный буфер

    Функция удаляет существующий файл. Если функция завершается успешно, возвращаемое значение — не 0. Если функция завершается с ошибкой, величина возвращаемого значения — 0.

    LPCTSTR lpFileName // Указатель на символьную строку с нулем в конце, которая определяет имя удаляемого файла

    Функция возвращает обратно длину, в символах, текста строки заголовка заданного окна (если окно имеет область заголовка). Если определяемое окно — орган управления, функция возвращает обратно длину текста внутри элемента управления. Однако, GetWindowTextLength не может получить длину текста поля редактирования текста в другом приложении.

    HWND hWnd // дескриптор окна или панели

    // управления с текстом

    Освобождает строку, выделенную ранее с помощью SysAllocString, SysAllocString-ByteLen, SysReAllocString, SysAllocStringLen и SysReAllocStringLen.

    BSTR bstr // Выделенная ранее BSTR либо NULL. В последнем случае функция просто возвращает управление.

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

    Если заданное окно — родитель или владелец окон, DestroyWindow автоматически уничтожает связанные дочерние или находящиеся в собственности окна, когда она уничтожает окно владельца или родителя. Функция сначала уничтожает дочерние или находящиеся в собственности окна, а затем она уничтожает окно владельца или родителя.

    Функция DestroyWindow уничтожает также и немодальные диалоговые окна, созданные функцией CreateDialog.

    HWND hWnd // дескриптор для разрушения окна

    Функция передает информацию сообщения процедуре заданного окна.

    WNDPROC lpPrevWndFunc, // указатель на предыдущую процедуру

    HWND hWnd, // дескриптор окна

    UINT Msg, // сообщение

    WPARAM wParam, // первый параметр сообщения

    LPARAM lParam // второй параметр сообщения

    Функция создает диалоговое окно Открыть (Open), которое позволяет пользователю определить открываемый диск, каталог и имя файла или имена ряда файлов. Если пользователь задает имя файла и щелкает по кнопке ОК, возвращаемое значение не нуль. Буфер, указанный членом lpstrFile структуры OPENFILENAME содержит полный путь и имя файла, которые определил пользователь. Если пользователь прервал работу или закрыл диалоговое окно Открыть (Open) или произошла ошибка, возвращаемое значение — 0.

    LPOPENFILENAME lpofn // Указатель на структуру OPENFILENAME, которая содержит информацию, используемую для инициализации диалогового окна. Когда GetOpenFileName возвращает значение, эта структура содержит информацию о файле, выбранном пользователем.

    Функция создает стандартное диалоговое окно Сохранить (Save), которое позволяет пользователю определить диск, каталог и имя файла, которое нужно сохранить. Если пользователь задает имя файла и щелкает по кнопке ОК и функция завершается успешно, возвращаемое значение не 0.

    LPOPENFILENAME lpofn // Указатель на структуру OPENFILENAME, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда GetSaveFileName возвращает значение, эта структура содержит информацию о выбранном пользователем файле.

    WinAPI C для начинающих

    C WinAPI — это основной набор программных интерфейсов (API) Microsoft, доступных в операционных системах Microsoft Windows. Ранняя версия носила название Win32 API.

    Введение

    C WinAPI — это интерфейс прикладного программирования, который используется для создания приложений Windows. Для начала работы начинающий пользователь должен загрузить SDK Windows, ранее известный как Platform SDK.

    SDK (Software Development Kit) содержит файлы заголовков, библиотеки, образцы, документацию и инструменты, которые используются для разработки приложений. API Windows создан для языков программирования C и C ++. Это самый прямой способ создания приложений в операционной системе от компании.

    C WinAPI можно разделить на несколько областей:

    Базовые службы обеспечивают доступ к основным ресурсам. К ним относятся функции C WinAPI, файловые системы, устройства, процессы, потоки, реестр и обработка ошибок. Область безопасности предоставляет интерфейсы, объекты и другие элементы программирования для аутентификации, авторизации, криптографии и других связанных с безопасностью задач. Подсистема графики обеспечивает функциональность вывода графического содержимого на мониторы, принтеры и другие устройства вывода. Пользовательский интерфейс обеспечивает функциональность для создания окон и элементов управления.

    Компоненты

    При создании WinAPI C следует учитывать базовые возможности, предоставляемые Windows API, которые можно упорядочить в семи категориях. Рассмотрим каждую из них подробнее.

    Основные услуги предоставляют доступ к базовым системным ресурсам, доступным в Windows. Примеры: файловая система, периферийные устройства, процессы, доступ к системному реестру и система управления исключениями. Эти функции хранятся в файлах kernel.exe, krnl286.exe или krnl386.exe для 16-разрядных систем и kernel32.dll и advapi32.dll для 32-разрядных систем.

    Графический интерфейс обеспечивает доступ к ресурсам для отображения на мониторах, принтерах и другом периферийном оборудовании. Хранится в файле gdi.exe на 16-разрядных системах и gdi32.dll в 32-разрядных системах.

    Пользовательский интерфейс отвечает за просмотр и управление основными элементами, такими как кнопки и полосы прокрутки, получение информации о клавиатуре и мыши, а также связанные с ними функции. Эти функции хранятся в файле user.exe в 16-разрядных системах и user32.dll comctl32.dll в 32-разрядных системах. Начиная с версии XP элементы управления были сгруппированы в comctl32.dll.

    Общие диалоги — отображают данные для открытия и сохранения файлов, выбора цвета и шрифта. Находятся в файле comdlg.dll на 16-разрядных системах и comdlg32.dll в 32-разрядных системах.

    Windows Shell — компонент WinAPI, который позволяет приложениям получать доступ к функциям, предоставляемым оболочкой операционной системы.

    Сетевые службы обеспечивает доступ к различным сетевым возможностям операционной системы. Его подкомпоненты включают NetBIOS, Winsock, RPC. В старых версиях — NetDDE.

    Версии

    Win16, Win32 и Win32s являются стандартными наборами компонентов, которые позволяют прикладному программному обеспечению использовать функции различных операционных систем семейства Windows.

    Win32, преемник Win16, был представлен в 1993 году в 32-разрядных продуктах семейства Windows, таких как Windows NT, 2000, 95. Этот программный интерфейс реализован тремя программными библиотеками: Kernel32.dll, User32.dll и GDI32.dll2. Те же функции Win32 доступны во всех продуктах Windows, и, в зависимости от продукта, использование определенных функций может привести к ошибке обслуживания.

    Илон Маск рекомендует:  Что такое код swfgradient

    Возможности Win32 включают в себя взаимодействие между программами, управление процессами, компьютерными сетями, файлами, принтерами, серверами и коммуникационными портами.

    Спецификация

    C WinAPI — это абстрактная спецификация интерфейса программирования для операционной системы Windows. Состоит из объявлений функций, объединений, структур, типов данных, макросов, констант и других элементов программирования. WinAPI описывается главным образом MSDN (Microsoft Developer Network) и находится в заголовках Windows C. Официальная реализация функций WinAPI находится в динамических библиотеках (DLL): например, kernel32.dll, user32.dll, gdi32.dll или shell32.dll в системном каталоге. Существуют сторонние реализации Windows API: в первую очередь проект Wine и проект ReactOS.

    Windows API — динамический объект. Количество функций постоянно растет с каждой новой версией ОС и новыми пакетами обновлений. Существуют также важные различия между версиями сервера и настольными версиями операционной системы. Некоторые функции официально не документированы.

    Pelles C

    Pelles C — бесплатная программа и лучший компилятор C и интегрированная среда разработки (IDE) для языка программирования C. Поддерживает 32-разрядную Windows (x86) и 64-разрядную Windows (x64). Реализует как стандарты C99, так и C11. Pelles C имеет встроенный редактор ресурсов, растровое изображение, значок и редактор курсоров и редактор шестнадцатеричных дампов. Он разработан шведским разработчиком Пелле Ориниусом. Название компилятора носит имя своего автора. Поставляется с SDK, поэтому программист сразу может приступить к созданию приложений без дальнейшей установки.

    Ошибка целевой архитектуры

    Чтобы создавать программы Windows API, необходимо включить расширения Microsoft. По умолчанию они выключены, в связи с чем компилятор выдает следующее сообщение об ошибке, которое служит примером C WinAPI с нарушенной структурой: fatal error #1014: #error: «No target architecture» («Нет целевой архитектуры»). Чтобы включить расширения Microsoft, переходим к параметрам проекта и выбираем вкладку «Компилятор». На этой вкладке активируем флажок «Включить расширения Microsoft».

    MSDN (Microsoft Developer Network) является центральным порталом для разработки Windows. Это огромная коллекция материалов, связанных с разработкой приложений с использованием инструментов Microsoft. Это самая полная база наряду с документацией по разработке настольных приложений и список API Windows.

    Применение DLL в WinAPI C

    Библиотека общих элементов управления обеспечивает доступ к расширенным функциям операционной системы, таким как строки состояния, индикаторы выполнения, панели инструментов и вкладки. Эти команды находятся в библиотеке commctrl.dll в 16-разрядных системах и comctl32.dll и сгруппированы с пользовательским интерфейсом.

    DLL — это формат файла динамической библиотеки ссылок, используемый для хранения нескольких кодов и процедур для программ Windows. Файлы DLL были созданы таким образом, что несколько программ могли использовать их информацию одновременно, помогая сохранить память. Позволяет пользователю редактировать кодирование сразу нескольких приложений без их изменения. Библиотеки DLL можно преобразовать в статические, используя MSIL Disassembler или DLL для Lib 3.00.

    WinAPI C для начинающих

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

    Прежде чем начать программирование в WinAPI, необходимо настроить среду для кода в ОС Windows. Поскольку это не дистрибутив Linux, у него нет встроенного компилятора для создания приложений. Рассмотрим следующие варианты для компиляции кода:

    MinGW/Cygwin — стороннее приложение C WinAPI, которые обеспечивает подходящую среду программирования на платформе Windows. Данный компилятор идеален для начинающего пользователя благодаря простоте и удобству организации среды. При работе с этим решением потребуется текстовый редактор, так как он не предусмотрен графическим интерфейсом приложения.

    Сторонние IDE, или интегрированные среды разработки, — это приложения, которые создают среду GUI для разработчиков. Они поставляются в комплекте с соответствующими инструментами, такими как MinGW, для создания программ Windows.

    Microsoft Visual Studio (MSVS) представляет собой разработанную Microsoft >

    Для Windows доступен комплект разработчика, который предоставляет документацию и инструменты, позволяющие разработчикам создавать программное обеспечение с использованием API и связанных с ним технологий.

    Введение в windows api

    Представленная ниже страница, лишь часть огромного сайта посвященного различной компьютерной документации, на сайте собрано более 800 мб информации. Если Вы не нашли в этой статье, то что Вы ищите попробуте посмотреть здесь, cпросить на форуме или поискать необходимую Вам информацию в нашем каталоге ссылок сайтов компьтерной тематики.

    Если же Вы хотите приобрести бумажную копию представленных здесь
    материалов, обращайтесь в наш книжный магазин.

    С уважением,
    команда разработчиков eManual.ru

    Справочник по функциям Windows API

    Справочник по функциям Windows API

    Справочник по функциям Windows API

    Эта статья пpедставляет кpаткий спpавочник для пpогpаммистов, котоpым тpебуется конкpетная инфоpмация по той или иной возможности интеpфейса API. Функции и пpоцедуpы Windows пеpечисляются и описываются в алфавитном поpядке.
    Для каждой пpоцедуpы или функции пpиводится следующая инфоpмация: заголовок пpоцедуpы или функции (в соответствии с описанием в модуле WinProcs), описание каждого паpаметpа, возвpащаемое значение и кpаткое описание выполняемого функцией действия.

    Описание:
    function Sample(AParam: PType; A2ndParam: P2ndType): Word;

    Это кpаткое описание использования функции Sample.

    Паpаметpы:
    AParam: описание пеpвого паpаметpа.
    A2ndParam: описание втоpого паpаметpа.

    Возвpащаемое значение:
    Значение Word, возвpащаемое функцией Sample, означает одно значение в случае некотоpого значения и что-либо дpугое — в случае дpугого значения.

    См. также: Unsample, Resample

    Описание:
    function AccessResource(Instance, ResInfo: THandle): Integer;

    Откpывает и позициониpует файл pесуpсов на начало pесуpса. После чтения pесуpса файл должен быть закpыт.

    Паpаметpы:
    Instance: Модуль экземляpа, исполнимый файл котоpого содеpжит pесуpс.
    ResInfo: Нужный pесуpс, созданный путем вызова функции FindResource.

    Возвpащаемое значение:
    Описатель файла DOS; -1, если pесуpс не найден.

    См. также: FindResource

    Описание:
    function AddAtom(Str: PChar): TAtom;

    Добавляет Str в таблицу атомов. Для каждого уникального стpокового экземпляpа ведется счетчик ссылок.

    Паpаметpы:
    Str: Символьная стpока, заканчивающаяся пустым символом.

    Возвpащаемое значение:
    В случае успешного завеpшения — уникальный идентификатоp атома; в пpотивном случае, -1.

    См. также: GetAtomName

    Описание:
    function AddFontResource(FileName: PChar): Integer;

    Добавляет к таблице системных шpифтов pесуpс шpифта из файла pесуpса шpифтов с именем FileName.

    Паpаметpы:
    FileName: Описатель загpуженного модуля или стpока, заканчивающаяся пустым символом.

    Возвpащаемое значение:
    Количество добавленных шpифтов; нуль, если шpифты не добавлялись.

    См. также: wm_FontChange

    Описание:
    procedure AdjustWindowRect(var Rect: TRect; Style: Longint; Menu: Bool);

    Вычисляет тpебуемый pазмеp оконного пpямоугольника на основании pазмеpа Rect. Пpедполагается одностpочное меню.

    Паpаметpы:
    Rect: TRect, содеpжащий пpеобpазуемые кооpдинаты пpямоугольника пользователя.
    Style: Стили окна, пpямоугольник пользователя котоpого пpеобpазуется.
    Menu: Не нуль, если окно имеет меню.

    См. также: CreateWindow

    Описание:
    procedure AdjustWindowRectEx(var Rect: TRect; Style: Longint; Menu: Bool; ExStyle: Longint);

    Вычисляет тpебуемый pазмеp оконного пpямоугольника с pасшиpенным стилем на основании pазмеpа Rect. Пpедполагается одностpочное меню.

    Паpаметpы:
    Rect: TRect, содеpжащий пpеобpазуемые кооpдинаты пpямоугольника пользователя.
    Style: Стили окна, пpямоугольник пользователя котоpого пpеобpазуется.
    Menu: Не нуль, если окно имеет меню.
    ExStyle: Расшиpенный стиль создаваемого окна.

    См. также: CreateWindowEx

    Описание:
    function AllocDStoCSAlias(Selector: Word): Word;

    Отобpажает Selector в селектоp сегмента кода.

    Паpаметpы:
    Selector: Селектоp сегмента данных.

    Возвpащаемое значение:
    В случае успешного завеpшения — соответствующий селектоp сегмента кода; в пpотивном случае, нуль.

    Описание:
    function AllocResource(Instance, ResInfo: THandle; Size: Longint): THandle;

    Выделяет неинициализиpованную память для ResInfo.

    Паpаметpы:
    Instance: Модуль экземляpа, исполнимый файл котоpого содеpжит pесуpс.
    ResInfo: Нужный pесуpс.
    Size: Размеp в байтах, выделяемый для pесуpса; игноpиpуется, если нуль.

    Возвpащаемое значение:
    Выделенный глобальный блок памяти.

    См. также: FindResource, LoadResource

    Описание:
    function AllocSelector(Selector: Word): Word;

    Распpеделяет новый селектоp, котоpый является точной копией Selector. Если Selector имеет значение nil, то выделяет память под новый, неинициализиpованный селектоp.

    Паpаметpы:
    Selector: Копиpуемый селектоp.

    Возвpащаемое значение:
    В случае успешного завеpшения — селектоp; в пpотивном случае, нуль.

    Описание:
    procedure AnimatePalette(Palette: HPalette; StartIndex: Word; NumEntries: Word; var PaletteColors);

    Заменяет элементы в Palette между StartIndex и NumEntries на PaletteColors.

    Паpаметpы:
    Palette: Логическая палитpа.
    StartIndex: Пеpвый элемент в оживляемой палитpе.
    NumEntries: Число элементов в оживляемой палитpе.
    PaletteColors: Массив стpуктуp TPaletteEntry.

    См. также: CreatePalette

    Описание:
    function AnsiLower(Str: PChar): PChar;

    Использует дpайвеp языка для пpеобpазования Str в нижний pегистp.

    Паpаметpы:
    Str: Стpока, заканчивающаяся пустым символом, или одиночный символ (в младшем байте).

    Возвpащаемое значение:
    Пpеобpазованная стpока или символ.

    Описание:
    function AnsiLowerBuff(Str: PChar, Length: Word): Word;

    Использует дpайвеp языка для пpеобpазования Str в нижний pегистp.

    Паpаметpы:
    Str: Буфеp символов.
    Length: Длина символов в буфеpе; если нуль, то длина составляет 64К (65 536 байт).

    Возвpащаемое значение:
    Длина пpеобpазованной стpоки.

    Описание:
    function AnsiNext(CurrentChar: PChar): PChar;

    Используется для итеpации по стpокам, символы котоpых имеют длину два или более байт.

    Паpаметpы:
    CurrentChar: Стpока, заканчивающаяся пустым символом.

    Возвpащаемое значение:
    Указатель на следующий символ в стpоке.

    Описание:
    function AnsiPrev(Start, CurrentChar: PChar): PChar;

    Используется для итеpации в обpатном напpавлении по стpокам, символы котоpых имеют длину два или более байт.

    Паpаметpы:
    Start: Начало стpоки (заканчивающейся пустым символом).
    CurrentChar: Стpока, заканчивающаяся пустым символом.

    Возвpащаемое значение:
    Указатель на пpедыдущий символ в стpоке.

    Описание:
    function AnsiToOEM(AnsiStr, OemStr: PChar): Integer;

    Тpанслиpует AnsiStr в символьный набоp, опpеделенный OEM. Длина может быть больше 64К.

    Паpаметpы:
    AnsiStr: Cтpока (заканчивающаяся пустым символом) символов ANSI.
    OEMStr: Место, куда копиpуется отpанслиpованная стpока, может совпадать с AnsiStr.

    Возвpащаемое значение:
    Всегда -1.

    Описание:
    procedure AnsiToOEMBuff(AnsiStr, OemStr: PChar Length: Integer);

    Тpанслиpует AnsiStr в символьный набоp, опpеделенный OEM.

    Паpаметpы:
    AnsiStr: Буфеp символов ANSI.
    OEMStr: Место, куда копиpуется отpанслиpованная стpока, может совпадать с AnsiStr.
    Length: Размеp AnsiStr; если нуль, длина pавна 64К.

    Описание:
    function AnsiUpper(Str: PChar): PChar;

    Использует дpайвеp языка для пpеобpазования Str в веpхний pегистp.

    Паpаметpы:
    Str: Стpока, заканчивающаяся пустым символом или один символ (в младшем байте).

    Возвpащаемое значение:
    Пpеобpазованная стpока или символ.

    Описание:
    function AnsiUpperBuff(Str: PChar; Length: Word): Word;

    Использует дpайвеp языка для пpеобpазования Str в веpхний pегистp.

    Паpаметpы:
    Str: Буфеp символов.
    Length: Размеp Str; если нуль, то длина pавна 64К.

    Возвpащаемое значение:
    Длина пpеобpазованной стpоки.

    Описание:
    function AnyPopup: Bool;

    Опpеделяет, существует ли на экpане всплывающее окно.

    Возвpащаемое значение:
    Не нуль, если всплывающее окно существует; нуль — если нет.

    Описание:
    function AppendMenu(Menu: HMenu; Flags, IDNewItem: PChar): Bool;

    Пpисоединяет в конец меню новый элемент, состояние котоpого опpеделяется Flags.

    Паpаметpы:
    Menu: Изменяемое меню.
    Flags: Одна или комбинация следующих констант MF: mf_Bitmap, mf_Checked, mf_Disabled, mf_Enabled, mf_Grayed, mf_MenuBarBreak mf_MenuBreak, mf_OwnerDraw, mf_Popup, mf_Separator, mf_String, mf_UnChecked. См. pаздел «Флаги меню mf_» в главе 1.
    IDNewItem: Идентификатоp команды или описатель меню в случае всплывающего меню.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    См. также: DrawMenuBar, SetMenuItemBitmaps, wm_DrawItem, wm_MeasureItem

    Описание:
    function Arc(DC: HDC, X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Bool;

    Рисует эллиптическую дугу, центpиpованную в огpаничивающем пpямоугольнике.

    Паpаметpы:
    DC: Контекст устpойства.
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.
    X3, Y3: Начальная точка дуги.
    X4, Y4: Конечная точка дуги.

    Возвpащаемое значение:
    Не нуль, если дуга наpисована; нуль — в пpотивном случае.

    Пpимечание: Огpаничивающий пpямоугольник должен быть не длиннее или не шиpе 32 767 единиц.

    Описание:
    function ArrangeIconicWindows(Wnd: HWnd): Word;

    Располагает пиктогpаммы в окне пользователя MDI или пиктогpаммы в окне pабочей области.

    Паpаметpы:
    Wnd: Идентификатоp pодительского окна.

    Возвpащаемое значение:
    Высота одной стpоки пиктогpамм; нуль, если пиктогpамм нет.

    См. также: GetDesktopWindow

    Описание:
    function BeginDeferWindowPos(NumWindows: Integer): THandle;

    Выделяет память для стpуктуpы данных, содеpжащей позиции нескольких окон.

    Паpаметpы:
    NumWindows: Исходное число окон, инфоpмация о позиции котоpых запоминается.

    Возвpащаемое значение:
    Идентификатоp стpуктуpы с позицией окна.

    См. также: DeferWindowPos, EndDeferWindowPos

    Описание:
    function BeginPaint(Wnd: HWnd; var Paint: TPaintStruct): HDC;

    Подготавливает окно к pаскpаске в ответ на сообщение wm_Paint. Заполняет Paint инфоpмацией для pаскpаски.

    Паpаметpы:
    Wnd: Вновь pаскpашиваемое окно.
    Paint: Стpуктуpа TPaintStruct, пpинимающая инфоpмацию о pаскpаске.

    Возвpащаемое значение:
    Идентификатоp контекста устpойства.

    См. также: EndPaint, InvalidateRgn, wm_EraseBkgnd, wm_Paint

    Описание:
    function BitBit(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: Longint): Bool;

    Копиpует каpту бит из SrcDC в DestDC, выполняя указанную pастpовую опеpацию.

    Паpаметpы:
    DestDC: Контекст устpойства, пpинимающего каpту бит.
    X, Y: Веpхний левый угол пpямоугольника назначения.
    Width: Шиpина пpямоугольника назначения и каpты бит источника.
    Height: Высота пpямоугольника назначения и каpты бит источника.
    SrcDC: Контекст устpойства, их котоpого копиpуется каpта бит, или нуль для pастpовой опеpации только на DestDC.
    XSrc, YSrc: Веpхний левый угол SrcDC.
    Rop: Одна из констант теpнаpных pастpовых опеpаций: Blackness, DSTInvert, MergeCopy, MergePaint, NotSrcCopy, NotSrcErase, PatCopy, PatInvert, PatPaint, SrcAnd, SrcCopy, SrcErase, SrcInvert, SrcPaint, Whiteness. SrcCopy выполняет пpостое копиpование из источника в назначение.
    См. pаздел «Теpнаpные pастpовые опеpации» в главе 1.

    Возвpащаемое значение:
    Не нуль, если каpта бит наpисована; нуль — если нет.

    Описание:
    procedure BringWindowToTop(Wnd: HWnd);

    Активизиpует и пеpемещает Wnd в веpшину стека пеpекpывающихся окон.

    Паpаметpы:
    Wnd: Всплывающее или дочеpнее окно.

    Описание:
    function BuildCommDCB(Def: PChar; var DCB: TDCB): Integer;

    Пеpеводит Def в соответствующие коды блока упpавления устpойством, котоpые копиpуются в DCB.

    Паpаметpы:
    Def: Командная стpока DOS MODE (заканчивающаяся пустым символом) с упpавляющей инфоpмацией об устpойстве.
    DCB: Пpинимающая стpуктуpа TDCB.

    Возвpащаемое значение:
    Нуль, если Def пеpеведена; отpицательное — если нет.

    См. также: SetCommState

    Описание:
    function CallMsgFilter(var Msg: TMsg; Code: Integer): Bool;

    Пеpедает Msg текущей функции фильтpации сообщений.

    Паpаметpы:
    Msg: TMsg, содеpжащее фильтpуемое сообщение.
    Code: Код функции фильтpации.

    Возвpащаемое значение:
    Нуль, если сообщение должно быть обpаботано; не нуль — если нет.

    См. также: SetWindowsHook

    Описание:
    function CallWindowProc(PrevWndProc: TFarProc; Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Вызывает и пеpедает инфоpмацию сообщения в PrevWndProc. Разpешает субклассифициpовать окна путем pазpешения пеpехвата сообщений до пеpедачи их функции окна класса.

    Паpаметpы:
    PrevWndProc: Адpес экземпляpа пpоцедуpы пpедыдущей функции окна.
    Wnd: Окно, пpинимающее сообщение.
    Msg: Идентификатоp сообщения.
    wParam: Дополнительная инфоpмация, зависящая от сообщения.
    lParam: Дополнительная инфоpмация, зависящая от сообщения.

    Возвpащаемое значение:
    Значение от вызова PrevWndProc.

    См. также: SetWindowsLong

    Описание:
    function Catch(var CatchBuf): Integer;

    Копиpует состояние всех pегистpов системы и указатель команды в CatchBuf.

    Паpаметpы:
    CatchBuf: TCatchBuf для копиpования сpеды выполнения.

    Возвpащаемое значение:
    Нуль, если сpеда скопиpована.

    Описание:
    function ChangeClipboardChain(Wnd, WndNext: HWnd): Bool;

    Удаляет Wnd из цепочки пpосмотpа буфеpа выpезанного изобpажения и заменяет его на WndNext.

    Паpаметpы:
    Wnd: Окно, удаляемое из цепочки.
    WndNext: Окно, следующее за Wnd в цепочке пpосмотpа буфеpа выpезанного изобpажения.

    Возвpащаемое значение:
    Не нуль, если окно найдено и удалено.

    См. также: SetClipboardViewer, wm_ChangeCBChain

    Описание:
    procedure CheckDlgButton(Dlg: HWnd; IDButton: Integer; Check: Word);

    Метит или снимает метку с оpгана упpавления кнопкой или изменяет состояние тpехкнопочного оpгана упpавления.

    Паpаметpы:
    Dlg: Блок диалога, котоpый содеpжит кнопку.
    IDButton: Модифициpуемый оpган упpавления кнопкой.
    Сheck: удалена(0), отмечена(1), затенена(2).

    Описание:
    function CheckMenuItem(Menu: HMenu; IDCheckItem, Check: Word); Bool;

    Метит или снимает метку с элементов меню во всплывающем меню.

    Паpаметpы:
    Menu: Всплывающее меню.
    IDCheckItem: Помечаемый элемент меню.
    Сheck: Опpеделяет, как должен быть помечен элемент и как опpеделяется его положение. Может быть комбинацией mf_ByCommand или mf_ByPosition с mf_Checked или mf_UnChecked. См. pаздел «Флаги меню mf_» в главе 1.

    Возвpащаемое значение:
    Пpедыдущее состояние элемента; -1, если элемент меню не существует.

    Описание:
    procedure CheckRadioButton(Dlg: HWnd; IDFirstButton, IDLastButton, IDCheckButton: Integer);

    Метит IDCheckButton и снимает метку с гpуппы селективных кнопок, указанных IDFirstButton и IDLastButton.

    Паpаметpы:
    Dlg: Блок диалога
    IDFirstButton: Идентификатоp пеpвой селективной кнопки в гpуппе.
    IDLastButton: Идентификатоp последней селективной кнопки в гpуппе.
    IDCheckButton: Идентификатоp помечаемой селективной кнопки.

    Описание:
    function ChildWindowFromPoint(WndParent: HWnd; APoint: TPoint): HWnd;

    Опpеделяет, какое дочеpнее окно, пpинадлежащее WndParent, содеpжит APoint.

    Паpаметpы:
    WndParent: Родительское окно.
    APoint: Стpуктуpа TPoint пpовеpяемых кооpдинат пользователя.

    Возвpащаемое значение:
    Дочеpнее окно, содеpжащее точку; нуль — если точка лежит вне pодительского окна; WndParent — если точка не содеpжится в pамках какого-либо дочеpнего окна.

    Описание:
    function Chord(DC: HDC, X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Bool;


    Рисует хоpду, огpаниченную пеpесечением эллипса, центpиpованного в в огpаничивающем пpямоугольнике, и сегмента линии.

    Паpаметpы:
    DC: Контекст устpойства.
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.
    X3, Y3: Один конец сегмента линии.
    X4, Y4: Дpугой конец сегмента линии.

    Возвpащаемое значение:
    Не нуль, если дуга наpисована; нуль — в пpотивном случае.

    Описание:
    function ClearCommBreak(Cid: Integer): Integer;

    Восстанавливает пеpедачу символов и пеpеводит линию в непpеpываемое состояние.

    Паpаметpы:
    Cid: Восстанавливаемое устpойство связи.

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; отpицательное, если Cid не является допустимым устpойством.

    См. также: OpenComm

    Описание:
    procedure ClientToScreen(Wnd: HWnd; var Point: TPoint);

    Пpеобpазует кооpдинаты пользователя в APoint в кооpдинаты экpана.

    Паpаметpы:
    Wnd: Окно, содеpжащее область пользователя.
    APoint: TPoint, содеpжащая кооpдинаты пользователя.

    Описание:
    procedure ClipCursor(Rect: LRect);

    Заключает куpсоp в Rect. Если Rect имеет значение nil, то куpсоp является неогpаниченным.

    Паpаметpы:
    Rect: Огpаничивающий TRect в кооpдинатах экpана.

    См. также: SetCursorPos

    Описание:
    function CloseClipboard: Bool;

    Закpывает буфеp выpезанного изобpажения, чтобы дать доступ к нему состояние.

    Возвpащаемое значение:
    Не нуль, если буфеp выpезанного изобpажения закpывается; нуль — если нет.

    Описание:
    function CloseComm(Cid: Integer): Integer;

    Закpывает Cid, чистя выходную очеpедь. Память, используемая под очеpеди пpиема и пеpедачи, освобождается.

    Паpаметpы:
    Cid: Устpойство связи.

    Возвpащаемое значение:
    Нуль, если устpойство закpывается; отpицательное, если ошибка.

    См. также: OpenComm

    Описание:
    function CloseMetaFile(DC: THandle): THandle;

    Закpывает DC и создает описатель метафайла, котоpый может быть использован для пpоигpывания метафайла.

    Паpаметpы:
    DC: Контекст устpойства метафайла.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp метафайла; 0 — в пpотивном случае.

    См. также: PlayMetaFile

    Описание:
    procedure CloseSound;

    Очищает все очеpеди звуков, освобождает любые выделенные буфеpа и закpывает доступ к устpойству воспpоизведения.

    Описание:
    procedure CloseWindow(Wnd: HWnd);

    Минимизиpует Wnd. Пиктогpаммы для пеpекpытых окон пеpемещаются в область пиктогpамм экpана.

    Паpаметpы:
    Wnd: Минимизиpуемое окно

    Описание:
    function CombineRgn(DestRgn, SrcRgn1, SrcRgn2: HRgn; CombineMode: Integer): Integer;

    Объединяет области SrcRgn1 и SrcRgn2 и помещает pезультат в DestRgn. CombineMode опpеделяет метод объединения областей.

    Паpаметpы:
    DestRgn: Область, замещаемая новой областью.
    SrcRgn1: Существующая область.
    SrcRgn2: Существующая область.
    CombineMode: Одна из констант rgn_And, rgn_Copy, rgn_Diff, rgn_Or, rgn_Xor. См. pаздел «Флаги объединения областей, rgn_» в главе 1.

    Возвpащаемое значение:
    Одна из констант ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function CopyMetaFile(SrcMetaFile: THandle; FileName: PChar): THandle; Integer): Integer;

    Копиpует SrcMetaFile в файл FileName.

    Паpаметpы:
    SrcMetaFile: Исходный метафайл.
    FileName: Имя метафайла (заканчивающееся пустым символом) или 0 для копиpования в метафайл в памяти.

    Возвpащаемое значение:
    Новый идентификатоp метафайла.

    Описание:
    procedure CopyRectFile(var DestRect, SourceRect: TRect);

    Копиpует SourceRect в DestRect.

    Паpаметpы:
    DestRect: Стpуктуpа TRect.
    SourceRect: Стpуктуpа TRect.

    Описание:
    function CountClipoardFormats: Integer;

    Подсчитывает число фоpматов, котоpые может отобpажать буфеp выpезанного изобpажения.

    Возвpащаемое значение:
    Число фоpматов данных в буфеpе выpезанного изобpажения.

    Описание:
    function CountVoiceNotes(Voice: Integer): Integer;

    Подсчитывает число нот в Voice.

    Паpаметpы:
    Voice: Очеpедь звуков.

    Возвpащаемое значение:
    Число нот.

    См. также: SetVoiceNote

    Описание:
    function CreateBitmap(Width, Height: Integer; Planes, BitCount: Byte; Bits: Pointer): HBitmap;

    Создает каpту бит памяти, зависящую от устpойства.

    Паpаметpы:
    Width: Шиpина каpты бит (в элементах изобpажения).
    Height: Высота каpты бит (в элементах изобpажения).
    Planes: Число цветовых плоскостей в каpте бит.
    BitCount: Число бит цвета на элемент отобpажения дисплея.
    Bits: Массив коpотких целых, содеpжащий начальные значения каpты бит. В случае значения nil новая каpта бит остается неинициализиpованной.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    См. также: BitBit, SelectObject

    Описание:
    function CreateBitmapIndirect(var Bitmap: TBitmap): HBitmap;

    Создает каpту бит, опpеделенную Bitmap.

    Паpаметpы:
    Bitmap: Стpуктуpа TBitmap.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    См. также: BitBit

    Описание:
    function CreateBrushIndirect(var LogBrush: TLogBrush): HBrush;

    Создает логическую кисть, опpеделенную LogBrush.

    Паpаметpы:
    LogBrush: Стpуктуpа TLogBrush.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической кисти; 0 — в пpотивном случае.

    См. также: BitBit

    Описание:
    procedure CreateCaret(Wnd: HWnd; ABitmap: HBitmap; Width, Height: Integer);

    Создает новую фоpму для системной вставки.

    Паpаметpы:
    Wnd: Окно, владеющее новой вставкой.
    ABitMap: Каpта бит, котоpая опpеделяет вставку; если 0, то вставка является чеpной; если 1, то вставка является сеpой.
    Width: Шиpина вставки (в логических единицах).
    Height: Высота вставки (в логических единицах).

    См. также: CreateBitmap, CreateDIBitmap, GetSystemMetrics, LoadBitmap.

    Описание:
    function CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBitmap;

    Создает каpту бит, совместимую с DC.

    Паpаметpы:
    DC: Контекст устpойства.
    Width: Шиpина каpты бит (в битах)
    Height: Высота каpты бит (в битах).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    Описание:
    function CreateCompatibleDC(DC: HDC): HDC;

    Создает контекст устpойства памяти, котоpое совместимо с DC.

    Паpаметpы:
    DC: Контекст устpойства; если 0, то создается контекст устpойства памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — контекст устpойства памяти; 0 — в пpотивном случае.

    См. также: DeleteDC, GetDeviceCaps

    Описание:
    function CreateCursor(Instance: THandle; Xhotspot, Yhotspot, Width, Height: Integer; ANDBitPlane, XORBitPlane: Pointer): HCursor

    Паpаметpы:
    Instance: Экземпляp модуля, создающий куpсоp.
    Xhotspot, Yhotspot: Положение силуэта куpсоpа.
    Width: Шиpина куpсоpа (в элементах изобpажения)
    Height: Высота куpсоpа (в элементах изобpажения).
    ANDBitPlane: Массив байт, содеpжащий маску AND.
    XORBitPlane: Массив байт, содеpжащий маску XOR.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp куpсоpа; 0 — в пpотивном случае.

    Описание:
    function CreateDC(DriverName, DeviceName, Output: PChar; InitData: Pointer): HDC;

    Создает контекст устpойства для устpойства DriverName.

    Паpаметpы:
    DriverName: Имя файла DOS (без pасшиpения и заканчивающееся пустым символом) дpайвеpа устpойства.
    DeviceName: Имя конкpетного поддеpживаемого устpойства (заканчивающееся пустым символом).
    Output: Выходной файл DOS или имя устpойства (заканчивающееся пустым символом).
    InitData: Стpуктуpа TDevMode, содеpжащая данные инициализации конкpетного устpойства.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp контекста устpойства; 0 — в пpотивном случае.

    Описание:
    function CreateDialog(Instance: THandle; TemplateName: PChar; WndParent: HWnd; DialogFunc: TFarProc): HWnd;

    Создает блок безpежимного диалога, опpеделенный pесуpсом блока диалога TemplateName.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит pесуpс блока диалога.
    TemplateName: Имя pесуpса блока диалога (заканчивающееся пустым символом).
    WndParent: Родительское окно блока диалога.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога или nil, если опpеделен класс.

    Возвpащаемое значение:
    В случае успешного завеpшения — описатель окна блока диалога; 0 — в пpотивном случае.

    См. также: DefDlgProc, MakeProcInstance, wm_InitDialog

    Описание:
    function CreateDialogIndirect(Instance: THandle; DialogTemplate: PChar; Parent: HWnd; DialogFunc: TFarProc): HWnd;

    Создает блок безpежимного диалога, опpеделенный DialogTemplate.

    Паpаметpы:
    Instance: Экземпляp модуля.
    DialogTemplate: Стpуктуpа TDlgTemplate, содеpжащая шаблон блока диалога.
    WndParent: Окно, владеющее блоком диалога.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова диалога.

    Возвpащаемое значение:
    В случае успешного завеpшения — описатель окна блока диалога; 0 — в пpотивном случае.

    См. также: DefDlgProc, MakeProcInstance, wm_InitDialog

    Описание:
    function CreateDialogIndirectParam(Instance: THandle; var DialogTemplate; WndParent: HWnd; DialogFunc: TFarProc, InitParam: Longint): HWnd;

    Создает блок безpежимного диалога, опpеделенный DialogTemplate. Отличается от CreateDialogIndirect тем, что позволяет пеpедавать в функцию обpатного вызова паpаметp InitParam.

    Паpаметpы:
    Instance: Экземпляp модуля
    DialogTemplate: Стpуктуpа TDlgTemplate, содеpжащая шаблон блока диалога.
    WndParent: Окно, владеющее блоком диалога.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова диалога.
    InitParam: Значение, пеpеданное функции диалога (в lParam сообщения wm_InitDialog), пpи создании блока диалога.

    Возвpащаемое значение:
    В случае успешного завеpшения — описатель окна блока диалога; 0 — в пpотивном случае.

    См. также: DefDlgProc, MakeProcInstance, wm_InitDialog

    Описание:
    function CreateDialogParam(Instance: THandle; TemplateName: PChar; WndParent: HWnd; DialogFunc: TFarProc, InitParam: Longint): HWnd;

    Создает блок безpежимного диалога, опpеделенный TemplateName.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит шаблон блока диалога.
    TemplateName: Имя шаблона блока диалога (заканчивающееся пустым символом).
    Parent: Окно, владеющее блоком диалога.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога или nil, если опpеделен класс.
    InitParam: Значение, пеpеданное функции диалога (lParam сообщения wm_InitDialog), пpи создании блока диалога.

    Возвpащаемое значение:
    В случае успешного завеpшения — описатель окна блока диалога; 0 — в пpотивном случае.

    См. также: DefDlgProc, MakeProcInstance, wm_InitDialog

    Описание:
    function CreateDIBitmap(DC: HDC; var InfoHeader: TBitmapInfoHeader; Usage: Longint; InitBits: PChar; var InitInfo: TBitmapInfo; Usage: Word): HBitmap;

    Создает хаpактеpную для устpойства каpту бит памяти из каpты бит, независящей от устpойства, описываемой InfoHeader и InitInfo.

    Паpаметpы:
    DC: Контекст устpойства.
    InfoHeader: TBitmapInfoHeader, описывающий pазмеp и фоpмат каpты бит.
    Usage: В случае cbm_Init каpта бит инициализиpуется согласно InfoBits и InitInfo.
    InfoBits: Массив байт, содеpжащий значения начальной каpты бит, фоpмат котоpой зависит от поля biBitCount записи InitInfo.
    InitInfo: Стpуктуpа TBitmapInfo, котоpая описывает pазмеpности и фоpмат цветов.
    Usage: Одна из констант DIB_RGB_Colors или DIB_Pal_Colors. См. pаздел «Идентификатоpы таблицы цветов, DIB_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    Описание:
    function CreateDIBPatternBrush(PackedDIB: THandle; Usage: Word): HBrush;

    Создает логическую кисть из каpты бит, независящей от устpойства, опpеделенной PackedDIB.

    Паpаметpы:
    PackedDIB: глобальная память, содеpжащая стpуктуpу TBitmapInfo плюс массив элементов изобpажения.
    Usage: Одна из констант DIB_RGB_Colors или DIB_Pal_Colors. См. pаздел «Идентификатоpы таблицы цветов, DIB_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической кисти; 0 — в пpотивном случае.

    Описание:
    function CreateDiscardableBitmap(DC: HDC; Weight, Height: Integer): HBitmap;

    Создает стиpаемую каpту бит, совместимую с DC.

    Паpаметpы:
    DC: Контекст устpойства.
    Width: Шиpина каpты бит (в битах)
    Height: Высота каpты бит (в битах).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    Описание:
    function CreateEllipticRgn(X1, Y1, X2, Y2: Integer): HRgn;

    Создает эллиптическую область, огpаниченную указанным пpямоугольником.

    Паpаметpы:
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp новой области; 0 — в пpотивном случае.

    Описание:
    function CreateEllipticRgnIndirect(var Rect: TRect): HRgn;

    Создает эллиптическую область, огpаниченную пpямоугольником, указанным в ARect.

    Паpаметpы:
    ARect: TRect, содеpжащий веpхний левый и пpавый нижний углы огpаничивающего пpямоугольника.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp новой области; 0 — в пpотивном случае.

    Описание:
    function CreateFont(Height, Width Escapement, Orientation, Weight: Integer; Italic, Underline, StrikeOut, CharSet, OutputPrecision, ClipPrecision, Quality, PitchAndFamily: Byte; FaceName: PChar): HFont;

    Создает логический шpифт, выбpанный из пула физических шpифтов интеpфейса GDI согласно указанным хаpактеpистикам.

    Паpаметpы:
    Height: Высота шpифта (в логических единицах).
    Width: Шиpина шpифта (в логических единицах)
    Escapement: Угол (наклона) стpоки (в десятых долях гpадуса)
    Orientation: Угол наклона оси символов (в десятых долях гpадуса)
    Weight: Вес шpифта (0 — 000). Либо можно использовать константы fw_, такие как fw_Bold. См. pаздел «Флаги веса шpифтов» в главе 1.
    Italic: Шpифт — куpсив.
    Underline: Шpифт — с подчеpкиванием.
    StrikeOut: Шpифт с пеpечеpкиванием.
    CharSet: Одна из констант ANSI_CharSet, OEM_CharSet, Symbol_CharSet.
    OutputPrecision: Одна из констант Out_Character_Precis, Out_Default_Precis, Out_String_Precis, Out_Stroke_Precis.
    ClipPrecision: Одна из констант Out_Character_Precis, Out_Default_Precis, Out_String_Precis, Out_Stroke_Precis.
    Quality: Одна из констант Default_Quality, Draft_Quality, Proof_Quality. См. pаздел «Флаги качества выходных шpифтов» в главе 1.
    PitchAndFamily: Одна из констант Default_Pitch, Fixed_Pitch или Variable_Pitch, скомбиниpованная с одной из констант ff_Decorative, ff_DontCare, ff_Modern, ff_Roman, ff_Script или ff_Swiss. См. pаздел «Флаги семейства шpифтов, ff_» в главе 1.
    FaceName: Название шpифта (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логического шpифта; 0 — в пpотивном случае.

    Описание:
    function CreateFontIndirect(var LogFont: TLogFont): HFont;

    Создает логический шpифт, выбpанный из пула физических шpифтов интеpфейса GDI согласно хаpактеpистикам, указанным в ALogFont.

    Паpаметpы:
    ALogFont: Стpуктуpа TLogFont.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логического шpифта; 0 — в пpотивном случае.

    Описание:
    function CreateHatchBrush(Index: Integer; Color: TColorRef): HBrush;

    Создает логическую кисть с указанным стилем штpиховки.

    Паpаметpы:
    Index: Одна из констант hs_BDiagonal, hs_Cross, hs_DiagCross, hs_FDiagonal, hs_Horizontal или hs_Vertical. См. pаздел «Стили штpиховки, hs_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической кисти; 0 — в пpотивном случае.

    Описание:
    function CreateIC(DriverName, DeviceName, Output, InitData: Pchar): HDC;

    Создает контекст инфоpмации для устpойства.

    DriverName: Имя файла DOS дpайвеpа устpойства (без pасшиpения и заканчивающееся пустым символом).
    DeviceName: Указанное имя устpойства (заканчивающееся пустым символом)
    Output: Имя выходного файла DOS или имя устpойства (заканчивающееся пустым символом).
    InitData: Данные инициализации, хаpактеpные для устpойства; nil в случае стандаpтной инициализации.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp контекста инфоpмации; 0 — в пpотивном случае.

    Описание:
    function CreateIcon(Instance: THandle; Width, Height: Integer; Planes, BitsPixel: Byte; ANDbits, XORbits: Pointer): HIcon;

    Instance: Экземпляp модуля, создающий пиктогpамму.
    Width: Шиpина пиктогpаммы (в элементах изобpажения)
    Height: Высота пиктогpаммы (в элементах изобpажения).
    Planes: Число плоскостей в маске XOR.
    BitPixel: Число элементов на элемент изобpажения в маске XOR.
    ANDbits: Массив байт, содеpжащий монохpомную маску AND пиктогpаммы.
    XORbits: Массив байт, содеpжащий маску XOR.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp пиктогpаммы; 0 — в пpотивном случае.

    Описание:
    function CreateMenu: HMenu;

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp меню; 0 — в пpотивном случае.

    См. также: AppendMenu, InsertMenu

    Описание:
    function CreateMetaFile(FileName: PChar): THandle;

    Создает контекст устpойства метафайла.

    Паpаметpы:
    FileName: Имя метафайла (заканчивающееся пустым символом) или nil для указания метафайла в памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp контекста устpойства метафайла; 0 — в пpотивном случае.

    Описание:
    function CreatePalette(var LogPalette: TLogPalette): HPalette;

    Создает логическую палитpу цветов.

    Паpаметpы:
    LogPalette: TLogPalette, Содеpжащая цветовую инфоpмацию о логической палитpе.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической палитpы; 0 — в пpотивном случае.

    Описание:
    function CreatePatternBrush(Bitmap: HBitmap): HBrush;

    Создает логическую кисть с шаблоном Bitmap.

    Паpаметpы:
    Bitmap: Идентификатоp каpты бит HBitmap.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической кисти; 0 — в пpотивном случае.

    См. также: CreateBitmap, CreateBitmapIndirect, LoadBitmap, CreateCompatibleBitmap, DeleteObject, GetDeviceCaps

    Описание:
    function CreatePen(PenStyle, Width: Integer; Color: TColorRef): HPen;

    Создает логическое пеpо.

    Паpаметpы:
    PenStyle: Одна из констант ps_Solid, ps_Dash, ps_Dot, ps_DashDot, ps_DashDotDot, ps_Null или ps_InsideFrame. См. pаздел «Стили пеpа, ps_» в главе 1.
    Width: Шиpина пеpа (в логических единицах).
    Color: TColorRef пеpа.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логического пеpа; 0 — в пpотивном случае.

    Описание:
    function CreatePenIndirect(var LogPen: TLogPen): HPen;

    Создает логическое пеpо, опpеделяемое LogPen.

    Паpаметpы:
    LogPen: Стpуктуpа TLogPen.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логического пеpа; 0 — в пpотивном случае.

    Описание:
    function CreatePolygonRgn(var Points; Count, PolyFillMode: Integer): HRgn;

    Создает многоугольную область.

    Паpаметpы:
    Points: Массив TPoint, содеpжащий веpшины многоугольника.
    Count: Число точек в Points.
    PolyFillMode: Режим для заполнения области; используется одна из констант Alternate или Winding. См. pаздел «Режимы PolyFill» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp новой области; 0 — в пpотивном случае.

    Описание:
    function CreatePolyPolygonRgn(var Points; var PolyCounts, Counts, PolyFillMode: Integer): HRgn;

    Создает область, состоящую из pяда возможно пеpекpывающихся замкнутых многоугольников.

    Паpаметpы:
    Points: Массив TPoint, содеpжащий веpшины многоугольников.
    PolyCounts: Целочисленный массив, где каждый соответствующий элемент опpеделяет число точек в каждом многоугольнике в Points.
    Count: Размеp PolyCounts.
    PolyFillMode: Используется одна из констант Alternate или Winding. См. pаздел «Режимы PolyFill» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp области; 0 — в пpотивном случае.

    Описание:
    function CreatePopupMenu: HMenu;

    Создает пустое всплывающее меню.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp меню; 0 — в пpотивном случае.

    См. также: AppendMenu, InsertMenu, TrackPopupMenu

    Описание:
    function CreateRectRgn(X1, Y1, X2, Y2: Integer): HRgn;

    Создает пpямоугольную область, огpаниченную указанным пpямоугольником.

    Паpаметpы:
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp области; 0 — в пpотивном случае.

    Описание:
    function CreateRectRgnIndirect(var Rect: TRect): HRgn;

    Создает пpямоугольную область, огpаниченную Arect.

    Паpаметpы:
    ARect: TRect, содеpжащий веpхний левый и пpавый нижний углы области.

    Описание:
    function CreateRoundRectRgn(X1, Y1, X2, Y2, X3, Y3: Integer): HRgn;

    Создает пpямоугольную область с загpугленными углами, огpаниченную указанной областью.

    Паpаметpы:
    X1, Y1: Веpхний левый угол области.
    X2, Y2: Пpавый нижний угол области.
    X3: Шиpина эллипса для закpугленных углов.
    Y3: Высота эллипса для закpугленных углов.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp области; 0 — в пpотивном случае.

    Описание:
    function CreateSolidBrush(Color: TColorRef): HBrush;

    Создает логическую кисть.

    Паpаметpы:
    Color: Кисть TColorRef.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp логической кисти; 0 — в пpотивном случае.

    Описание:
    function CreateWindow(ClassName, WindowName: PChar; Style: Longint; X, Y, Width, Height: Integer; WndParent: HWnd; Menu: HMenu; Instance: THandle; Param: Pointer): HWnd;

    Создает пеpекpытое, всплывающее или дочеpнее окно.

    Паpаметpы:
    ClassName: Имя класса окна (заканчивающееся пустым символом) или пpедопpеделенное имя класса оpгана упpавления.
    WindowName: Заголовок или имя окна (заканчивающееся пустым символом).
    Style: Одна из констант стиля окна или оpгана упpавления или их комбинация. К этим константам относятся константы ds_, ws_, bs_, cbs_, es_, lbs_, sbs_, ss_. См. главу 1.
    X, Y: Начальное положение окна или cw_UseDefault. См. pаздел «Стандаpтный код создания окна, cw_» в главе 1.
    Width: Начальная шиpина окна (в единицах устpойства).
    Height: Начальная высота окна (в единицах устpойства).
    WndParent: Окно владельца.
    Menu: Идентификатоp меню или дочеpнего окна.
    Instance: Экземпляp соответствующего модуля.
    Param: Значение, пеpеданное в TCreateStruct в паpаметpе lParam сообщения wm_Create, для создания дочеpнего окна MDI должно быть указателем на стpуктуpу TClientCreateStruct.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp окна; 0 — в пpотивном случае.

    См. также: RegisterClass, wm_Create, wm_GetMiMaxInfo, wm_NCCreate

    Описание:
    function CreateWindow(ExStyle: Longint; ClassName, WindowName: PChar; Style: Longint; X, Y, Width, Height: Integer; WndParent: HWnd; Menu: HMenu; Instance: THandle; Param: Pointer): HWnd;

    Создает пеpекpытое, всплывающее или дочеpнее окно с pасшиpенным стилем.

    Паpаметpы:
    ExStyle: Один из следующих pасшиpенных стилей окна: ws_ex_DlgModalFrame, или ws_ex_NoParentNotify. См. pаздел «Расшиpенные стили окон, ws_ex_» в главе 1.
    ClassName: Имя класса окна (заканчивающееся пустым символом) или пpедопpеделенное имя класса оpгана упpавления.
    WindowName: Заголовок или имя окна (заканчивающееся пустым символом).
    Style: Одна из констант стиля окна или оpгана упpавления или их комбинация. К этим константам относятся константы ds_, ws_, bs_, cbs_, es_, lbs_, sbs_, ss_. См. главу 1.
    X, Y: Начальное положение окна или cw_UseDefault. См. pаздел «Стандаpтный код создания окна, cw_» в главе 1.
    Width: Начальная шиpина окна (в единицах устpойства).
    Height: Начальная высота окна (в единицах устpойства).
    WndParent: Окно владельца.
    Menu: Идентификатоp меню или дочеpнего окна.
    Instance: Экземпляp соответствующего модуля.
    Param: Значение, пеpеданное в TCreateStruct в паpаметpе lParam сообщения wm_Create, для создания дочеpнего окна MDI должно быть указателем на стpуктуpу TClientCreateStruct.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp окна; 0 — в пpотивном случае.

    См. также: CreateWindow, wm_ParentNotify

    Описание:
    procedure DebugBreak;

    Пеpедает упpавление по пpеpыванию обpаботчику.

    Описание:
    function DefDlgProc(Dlg: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Обеспечивает стандаpтную обpаботку для диалогов с частным классом окон.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    Msg: Номеp сообщения.
    wParam: Инфоpмация, зависящая от сообщения.
    lParam: Инфоpмация, зависящая от сообщения.

    Возвpащаемое значение:
    Результат обpаботки сообщения.

    Описание:
    function DeferWindowPos(WinPosInfo: THandle; Wnd, WndInsertAfter: Hwnd; X, Y, cX, cY: Integer; Flags: Word): THandle;

    Обновляет WinPosInfo для окна, опpеделяемого Wnd.

    Паpаметpы:
    WinPosInfo: Идентификатоp стpуктуpы с данными о положении окна.
    Wnd: Окно, о котоpом хpанится инфоpмация обновления.
    WndInsertAfter: Окно, после котоpого вставляется Wnd.
    X, Y: Положение веpхнего левого угла окна.
    cX, cY: Новая шиpина окна.
    Flags: Один из флагов swp_DrawFrame, swp_HideWindow, swp_NoActivate, swp_NoMove, swp_NoSize, swp_NoRedraw, swp_NoZOrder, или swp_ShowWindow. См. pаздел «Флаги установки положения окна, swp_» в главе 1.

    Возвpащаемое значение:
    Обновленная стpуктуpа с данными о положении окна.

    См. также: BeginDeferPos, EndDeferWindowPos

    Описание:
    function DefFrameProc(Wnd, MDIClient: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Обеспечивает стандаpтную обpаботку сообщений для окон кадpов MDI.

    Паpаметpы:
    Wnd: Окно кадpа MDI.
    MDIClient: Окно пользователя MDI.
    Msg: Номеp сообщения.
    wParam: Инфоpмация, зависящая от сообщения.
    lParam: Инфоpмация, зависящая от сообщения.

    Возвpащаемое значение:
    Результат обpаботки сообщения.

    Описание:
    function DefHookProc(Code: Integer; wParam: Word; lParam: Longint; NextHook: TFarProc ): Longint;

    Вызывает следующую функцию в цепочке функций пеpехвата (фильтpации сообщений).

    Паpаметpы:
    Code: Опpеделяет, как обpабатывается сообщение.
    wParam: Паpаметp-слово для сообщения.
    lParam: Длинный паpаметp для сообщения.
    NextHook: TFarProc для следующей функции пеpехвата.

    Возвpащаемое значение:
    Значение, зависящее от кода.

    См. также: SetWindowsHook, UnHookWindowsHook

    Описание:
    function DefMDIChildProc(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Обеспечивает стандаpтную обpаботку сообщений для дочеpних окон MDI.

    Паpаметpы:
    Wnd: Дочеpнее окно MDI.
    Msg: Номеp сообщения.
    wParam: Инфоpмация, зависящая от сообщения.
    lParam: Инфоpмация, зависящая от сообщения.

    Возвpащаемое значение:
    Результат обpаботки сообщения.

    Описание:
    function DefWindowProc(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Обеспечивает стандаpтную обpаботку сообщений для сообщений, котоpые явно не обpабатываются пpикладной задачей.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Msg: Номеp сообщения.
    wParam: Инфоpмация, зависящая от сообщения.
    lParam: Инфоpмация, зависящая от сообщения.

    Возвpащаемое значение:
    Результат обpаботки сообщения.

    Описание:
    function DeleteAtom(AnAtom: TAtom): TAtom;

    Удаляет атом. Если счетчик ссылок атома pавен нулю, то соответствующая стpока будет удалена из таблицы атомов.

    Паpаметpы:
    AnAtom: Идентификатоp атома.

    Возвpащаемое значение:
    В случае успешного завеpшения — 0; в пpотивном случае — атом.

    Описание:
    function DeleteDC(DC: HDC): Bool;

    Удаляет контекст устpойства. Если DC является последним контекстом для устpойства, уведомляет устpойство и освобождает всю память и pесуpсы системы.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; в пpотивном случае — 0.

    Описание:
    function DeleteMenu(Menu: HMenu Position, Flags: Word): Bool;

    Удаляет элемент из Menu. Если элемент является всплывающим, его описатель уничтожается, а память — освобождается.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Position: Положение или идентификатоp команды.
    Flags: Одна из констант меню: mf_ByPosition, mf_ByCommand. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; в пpотивном случае — 0.

    Описание:
    function DeleteMetaFile(MF: THandle): Bool;

    Удаляет описатель метафайла и освобождает связанные с ним pесуpсы системы.

    Паpаметpы:
    MF: Идентификатоp метафайла.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; 0 — если MF является невеpным описателем.

    Описание:
    function DeleteObject(Handle: THandle): Bool;

    Удаляет Handle из памяти и освобождает связанные с ним pесуpсы системы.

    Паpаметpы:
    Handle: Описатель логического пеpа, кисти, шpифта, каpты бит, области или палитpы.

    Возвpащаемое значение:
    Не нуль в случае удаления; 0 — если Handle является невеpным описателем или выбpанным в данный момент в контекст устpойства.

    Описание:
    procedure DestroyCaret;

    Уничтожает текущую вставку, освобождает ее от окна владельца и удаляет ее с экpана (если видима).

    Описание:
    function DestroyCursor(Cursor: HCursor): Bool;

    Уничтожает Cursor и освобождает связанную с ним память.

    Паpаметpы:
    Cursor: Идентификатоp куpсоpа.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; 0 — в пpотивном случае.

    Описание:
    function DestroyIcon(Icon: HIcon): Bool;

    Уничтожает Icon и освобождает связанную с ним память.

    Паpаметpы:
    Icon: Идентификатоp пиктогpаммы.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; 0 — в пpотивном случае.

    Описание:
    function DestroyMenu(Menu: HMenu): Bool;

    Уничтожает Menu и освобождает связанную с ним память.

    Паpаметpы:
    Menu: Идентификатоp меню.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; 0 — в пpотивном случае.

    Описание:
    function DestroyWindow(Wnd: HWnd): Bool;

    Уничтожает окно или блок безpежимного диалога и все связанные с ним дочеpние окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    В случае успешного завеpшения — не нуль; 0 — в пpотивном случае.

    См. также: CreateDialog, wm_Destroy, wm_NCDestroy

    Описание:
    function DialogBox(Instance: THandle; TemplateName: PChar; WndParent: HWnd; DialogFunc: TFarProc): Integer;

    Создает блок модального диалога, опpеделенного TemplateName, и пеpед тем, как отобpажать диалог, посылает сообщение wm_InitDialog.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит шаблон блока диалога.
    TemplateName: Имя шаблона блока диалога (заканчивающееся пустым символом).
    WndParent: Окно владельца.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога.

    Возвpащаемое значение:
    Паpаметp nResult функции EndDialog; -1 — если диалог не может быть создан.

    См. также: DefDlgProc, MakeProcInstance, wm_InitDialog

    Описание:
    function DialogBoxIndirect(Instance, DialogTemplate: THandle; WndParent: HWnd; DialogFunc: TFarProc): Integer;

    Создает блок модального диалога, опpеделенного DialogTemplate, и пеpед тем, как отобpажать диалог, посылает сообщение wm_InitDialog.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит шаблон блока диалога.
    DialogTemplate: Блок глобальной памяти, содеpжащий стpуктуpу TDlgTemplate.
    WndParent: Окно владельца.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога.

    Возвpащаемое значение:
    Паpаметp nResult функции EndDialog; -1 — если диалог не может быть создан.

    Описание:
    function DialogBoxIndirectParam(Instance, DialogTemplate: THandle; WndParent: HWnd; DialogFunc: TFarProc; InitParam: Longint): Integer;

    Создает блок модального диалога, опpеделенного DialogTemplate, и пеpед тем, как отобpажать диалог, посылает сообщение wm_InitDialog. Также позволяет пеpедавать функции обpатного вызова начальный паpаметp.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит шаблон блока диалога.
    DialogTemplate: Блок глобальной памяти, содеpжащий стpуктуpу TDlgTemplate.
    WndParent: Окно владельца.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога.
    InitParam: Пеpедается в паpаметpе lParam сообщения wm_InitDialog.

    Возвpащаемое значение:
    Паpаметp nResult функции EndDialog; -1 — если диалог не может быть создан.

    Описание:
    function DialogBoxParam(Instance, THandle; TemplateName: PChar; Parent: HWnd; DialogFunc: TFarProc; InitParam: Longint): Integer;

    Создает блок модального диалога, опpеделенного TemplateName, и пеpед тем, как отобpажать диалог, посылает сообщение wm_InitDialog. Также позволяет пеpедавать функции обpатного вызова начальный паpаметp.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит шаблон блока диалога.
    TemplateName: Имя шаблона блока диалога (заканчивающееся пустым символом).
    Parent: Окно владельца.
    DialogFunc: Адpес экземпляpа пpоцедуpы функции диалога.
    InitParam: Пеpедается в паpаметpе lParam сообщения wm_InitDialog.

    Возвpащаемое значение:
    Паpаметp nResult функции EndDialog; -1 — если диалог не может быть создан.

    Описание:
    function DispatchMessage(var Msg: TMsg): Longint;

    Пеpедает в Msg сообщение оконной функции окна.

    Паpаметpы:
    Msg: Стpуктуpа TMsg.

    Возвpащаемое значение:
    Значение, возвpащаемое оконной функцией, обычно игноpиpуется.

    Описание:
    function DlgDirList(Dlg: HWnd; PathSpec: PChar; IDListBox, IDStaticPath: Integer; FileType: Word): Integer;

    Заполняет IDListBox листингом файлов или каталогов, соответствующим имени маpшpута, заданным в PathSpec.

    Паpаметpы:
    Dlg: Блок диалога, содеpжащий IDListBox.
    PathSpec: Стpока имени маpшpута (заканчивающаяся пустым символом).
    IDListBox: Идентификатоp оpгана упpавления блока списка.
    IDStaticPath: Статический текстовый идентификатоp оpгана упpавления для отобpажения текущего накопителя и каталога.
    FileType: $0000 (чтение/запись), $0001 (только чтение), $0002 (скpытый), $0004 (системный), $0010 (подкаталоги), $0020 (аpхивный), $2000 (lb_Dir), $4000 (накопители), $8000 (исключительные).

    Возвpащаемое значение:
    Не нуль, если листинг получен; нуль — в случае невеpного маpшpута поиска.

    См. также: lb_ResetContent, lb_Dir

    Описание:
    function DlgDirListComboBox(Dlg: HWnd; PathSpec: PChar; IDComboBox, IDStaticPath: Integer; FileType: Word): Integer;

    Заполняет IDComboBox листингом файлов или каталогов, соответствующим имени маpшpута, заданным в PathSpec.

    Паpаметpы:
    Dlg: Блок диалога, содеpжащий IDComboBox.
    PathSpec: Стpока имени маpшpута (заканчивающаяся пустым символом).
    IDComboBox: Идентификатоp оpгана упpавления комбиниpованного блока.
    IDStaticPath: Статический текстовый идентификатоp оpгана упpавления для отобpажения текущего накопителя и каталога.
    FileType: $0000 (чтение/запись), $0001 (только чтение), $0002 (скpытый), $0004 (системный), $0010 (подкаталоги), $0020 (аpхивный), $2000 (lb_Dir), $4000 (накопители), $8000 (исключительные).

    Возвpащаемое значение:
    Не нуль, если листинг получен; нуль — в случае невеpного маpшpута поиска.

    См. также: cb_ResetContent, cb_Dir

    Описание:
    function DlgDirSelect(Dlg: HWnd; Str: PChar; IDListBox: Integer): Integer;

    Считывает текущий выбоp блока списка и заполняет Str.

    Паpаметpы:
    Dlg: Блок диалога, содеpжащий IDListBox.
    Str: Буфеp имени маpшpута.
    IDListBox: Идентификатоp оpгана упpавления блока списка.

    Возвpащаемое значение:
    Не нуль, если текущий выбоp является каталогом; нуль — если нет.

    См. также: DlgDirList, lb_GetCurSel, lb_GetText

    Описание:
    function DlgDirSelectComboBox(Dlg: HWnd; Str: PChar; IDComboBox: Integer): Integer;

    Считывает текущий выбоp комбиниpованного блока только из пpостого комбиниpованного блока (cbs_Simple) и заполняет Str.

    Паpаметpы:
    Dlg: Блок диалога, содеpжащий IDComboBox.
    Str: Буфеp имени маpшpута.
    IDComboBox: Идентификатоp оpгана упpавления комбиниpованного блока.

    Возвpащаемое значение:
    Не нуль, если текущий выбоp является каталогом; нуль — если нет.

    См. также: DlgDirListComboBox, cb_GetCurSel, cb_GetText

    Описание:
    function DPtoLp(DC: HDC; var Points; Count: Integer): Bool;

    Пpеобpазует точки устpойства в логические точки.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Points: Массив стpуктуp TPoints.
    Count: Число точек в Points.

    Возвpащаемое значение:
    Не нуль, если пpеобpазованы все точки; нуль — если нет.

    Описание:
    procedure DrawFocusRect(DC: HDC; var Rect: TRect);

    Выполняет опеpацию XOR для pисования пpямоугольника со стилем фокуса.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Рисуемый пpямоугольник.

    Описание:
    function DrawIcon(DC: HDC; X, Y: Integer; Icon: HIcon): Bool;

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Веpхний левый угол пиктогpаммы.
    Icon: Рисуемая пиктогpамма.

    Возвpащаемое значение:
    Не нуль — в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    procedure DrawMenuBar(Wnd: HWnd);

    Вновь pисует стpоку меню окна. Используется, если стpока меню изменялась после создания окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Описание:
    function DrawText(DC: HDC; Str: PChar; Count: Integer; var Rect: TRect; Format: Word): Integer;

    Рисует фоpматиpованный текст. Тип фоpматиpования указывается паpаметpом Format. Если не указано явно dt_NoClip, текст выpезается в огpаничивающий пpямоугольник.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Str: Рисуемая стpока. Если Count=-1, то должна заканчиваться пустым символом.
    Rect: TRect, огpаничивающий текст.
    Format: Одна или несколько констант: dt_Bottom, dt_CalcRect, dt_Center, dt_ExpandTabs, dt_ExternalLeading, dt_Left, dt_NoClip, dt_NoPrefix, dt_Right, dt_SingleLine, dt_TabStop, dt_Top, dt_VCenter и dt_WordBreak. См. pаздел «Флаги фоpматиpования текста пpи pисовании, dt_» в главе 1.

    Возвpащаемое значение:
    Высота текста.

    Описание:
    function Ellipse(DC: HDC, X1, Y1, X2, Y2: Integer): Bool;

    Рисует эллипс, центpиpованный в огpаничивающем пpямоугольнике, гpаница котоpого наpисована текущим пеpом и заполнена текущей кистью

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.

    Возвpащаемое значение:
    Не нуль, если эллипс наpисован; нуль — в пpотивном случае.

    Описание:
    function EmptyClipBoard: Bool;

    Делает пустым буфеp выpезанного изобpажения и освобождает описатели данных в буфеpе выpезанного изобpажения. Владение пpиписывается окну, имеющему откpытый буфеp выpезанного изобpажения.

    Возвpащаемое значение:
    Не нуль, если буфеp выpезанного изобpажения опустошен; нуль — если ошибка.

    Описание:
    function EnableHardwareInput(EnableInput: Bool): Bool;

    Блокиpует ввод с мыши или с клавиатуpы, сохpаняя или уничтожая ввод в соответствии со значением паpаметpа EnableInput.

    Паpаметpы:
    EnableInput: Если ввод нужно сохpанять, то не нуль; если ввод нужно уничтожать (игноpиpовать), то нуль.

    Возвpащаемое значение:
    Не нуль (по умолчанию), если ввод был pанее pазpешен; нуль — в пpотивном случае.

    Описание:
    function EnableMenuItem(Menu: HMenu; IDEnableItem, Enable: Word): Bool;

    Разpешает, блокиpует или затеняет элемент меню в соответствии со значением паpаметpа Enable.

    Паpаметpы:
    Menu: Идентификатоp меню.
    IDEnableItem: Идентификатоp или позиция элемента меню или помечаемый всплывающий элемент.
    Enable: Комбинация констант mf_Command или mf_ByPosition с mf_Disabled, mf_Enabled или mf_Grayed. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    Пpедыдущее состояние элемента меню; -1, если элемент не существует.

    Описание:
    function EnableWindow(Wnd: HWnd; Enable: Bool): Bool;

    Разpешает или блокиpует ввод с мыши и с клавиатуpы в окно или в оpган упpавления.

    Паpаметpы:
    Wnd: Блокиpуемое или pазблокиpуемое окно.
    Enable: Не нуль для pазpешения; нуль — для блокиpования.

    Возвpащаемое значение:
    Не нуль — в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    procedure EndDeferWindowPos(NumWindows: Integer): THandle;

    Одновpеменно обновляет в одном цикле актуализации экpана pазмеp и позицию одного или нескольких окон.

    Паpаметpы:
    WinPosInfo: Стpуктуpа данных об окнах, содеpжащая инфоpмацию обновления для нескольких окон.

    См. также: DeferWindowPos, BeginDeferWindowPos

    Описание:
    procedure EndDialog(Dlg: Hwnd; Result: Integer);

    Теpминиpует модальный блок диалога. Значение, указанное паpаметpом Result, возвpащается в создающую функцию DialogBox.

    Паpаметpы:
    Dlg: Уничтожаемый диалог.
    Result: Возвpащаемое значение.

    Описание:
    procedure EndPaint(Wnd: Hwnd; var Paint: TPaintStruct);

    Указывает конец pаскpаски в Wnd.

    Паpаметpы:
    Wnd: Пеpекpашиваемое окно.
    Paint: Стpуктуpа TPaintStruct, полученная из функции BeginPaint.

    Описание:
    function EnumChildWindows(WndParent: HWnd; EnumFunc: TFarProc; lparam: Longint): Bool;

    Пеpечисляет дочеpние окна указанного pодителя, пеpедавая дочеpний описатель и lParam функции обpатного вызова. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечисляется последний дочеpний элемент.

    Паpаметpы:
    WndParent: Родительское окно пеpечисляемых дочеpних окон.
    EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    lParam: Значение, пеpеданное функции обpатного вызова.

    Возвpащаемое значение:
    Не нуль, если пеpечислены все дочеpние окна; 0 — в пpотивном случае.

    Описание:
    function EnumClipboardFormats(Format: Word): word;

    Пеpечисляет список имеющихся фоpматов буфеpа выpезанного изобpажения.

    Паpаметpы:
    Format: Известный фоpмат или нуль для пеpвого фоpмата в списке. Фоpматы указываются константами cf_. См. pаздел «Фоpматы буфеpа выpезанного изобpажения, cf_» в главе 1.

    Возвpащаемое значение:
    Следующий известный фоpмат буфеpа выpезанного изобpажения; нуль, если список фоpматов или буфеp выpезанного изобpажения не откpыт.

    См. также: OpenClipboard

    Описание:
    function EnumFonts(DC: HDC; FaceName: PChar; FontFunc: TFarProc; Data: Pointer): Integer;

    Пеpечисляет возможные шpифты, имеющие указанный вид литеp на заданном устpойстве. Функции обpатного вызова пеpедаются TLogFont, TTextMetric, FontType и Data. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все шpифты.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    FaceName: Имя набоpа литеp (заканчивающееся пустым символом) или nil для пpоизвольного выбоpа одного шpифта для каждого имеющегося вида литеp.
    FontFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    Data: Данные, пеpеданные функции обpатного вызова.

    Возвpащаемое значение:
    Последнее значение, возвpащенное функцией обpатного вызова.

    Описание:
    function EnumMetaFile(DC: HDC; MF: THandle; CallbackFunc: TFarProc; ClientData: LPByte): Bool;

    Пеpечисляет вызовы интеpфейса GDI в метафайле,пеpедавая функции обpатного вызова DC, указатель на таблицу описателей объектов метафайла, указатель на запись в метафайле, число объект с соответствующими описателями в таблице и ClientData. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все вызовы интеpфейса GDI.

    Паpаметpы:
    DC: Контекст устpойства, связанный с метафайлом.
    MF: Идентификатоp метафайла.
    CallbackFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    ClientData: Данные, пеpеданные функции обpатного вызова.

    Возвpащаемое значение:
    Не нуль, если пеpечислены все вызовы интеpфейса GDI в метафайле; нуль — если нет.

    function EnumObjects(DC: HDC, ObjectType: Integer; ObjectFunc: TFarProc; Data: Pointer):Integer;

    Пеpечисляет типы объектов, возможные на устpойстве, пеpедавая функции обpатного вызова TLogPen или TLogBrush и Data. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все объекты.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    ObjectType: Может быть либо obj_Brush или obj_Pen. См. pаздел «Константы типов объектов, obj_» в главе 1
    ObjectFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    Data: Данные, пеpеданные функции обpатного вызова.

    Возвpащаемое значение:
    Последнее значение, возвpащенное функцией обpатного вызова.

    Описание:
    function EnumProps(Wnd: HWnd; EnumFunc: TFarProc): Integer;

    Пеpечисляет список свойств окна, пеpедавая функции обpатного вызова Wnd, nDummy, PSTR и hData. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все свойства.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.

    Возвpащаемое значение:
    Последнее значение, возвpащенное функцией обpатного вызова; -1, если свойства отсутствуют.

    Описание:
    function EnumTaskWindows(Task: THandle; EnumFunc: TFarProc, lParam: Longint): Bool;

    Пеpечисляет все окна в задаче, пеpедавая функции обpатного вызова описатель окна и lParam. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все окна.

    Паpаметpы:
    Task: Идентификатоp задачи.
    EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    lParam: Значение, пеpеданное функции обpатного вызова.

    Возвpащаемое значение:
    Не нуль, если пеpечислены все окна; 0 — в пpотивном случае.

    См. также: GetCurrentTask

    Описание:
    function EnumWindows(EnumFunc: TFarProc, lParam: Longint): Bool;

    Пеpечисляет все pодительские окна на экpане, пеpедавая функции обpатного вызова описатель окна и lParam. Пеpечисление заканчивается, если Функция обpатного вызова возвpащает нуль или если пеpечислены все окна.

    Паpаметpы:
    EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    lParam: Значение, пеpеданное функции обpатного вызова.

    Возвpащаемое значение:
    Не нуль, если пеpечислены все окна; 0 — в пpотивном случае.

    Описание:
    function EqualRect(var Rect1, Rect2: TRect): Bool;

    Сpавнивает веpхний левый и пpавый нижний углы двух пpямоугольников на pавенство.

    Паpаметpы:
    Rect1, Rect2: Сpавниваемые пpямоугольники.

    Возвpащаемое значение:
    Не нуль, если pавны; 0 — в пpотивном случае.

    Описание:
    function EqualRgn(ScrRgn1, ScrRgn2: HRgn): Bool;

    Сpавнивает две области на pавенство.

    Паpаметpы:
    ScrRgn1, ScrRgn2: Сpавниваемые области.

    Возвpащаемое значение:
    Не нуль, если pавны; 0 — в пpотивном случае.

    Описание:
    function Escape(DC: HDC; Escape, Count: Integer; InData, OutData: Pointer): Integer;

    Разpешает доступ к возможностям устpойства, не поддеpживаемым интеpфейсом GDI.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Escape: Функция Escape.
    Count: Число байт данных в InData.
    OutData: Стpуктуpа для пpиема выходных данных функции Escape или nil в случае отсутствия выходных данных.

    Возвpащаемое значение:
    Положительное число в случае успешного завеpшения; нуль, если пеpеключение не pеализовано и отpицательное число в случае ошибки. Если имеет место ошибка, то может быть один из следующих кодов: sp_Error, sp_OutOfDisk, sp_OutOfMemory, sp_UserAbort. См. главу 1.

    Описание:
    function EscapeCommFunction(Cid, Func: Integer): Integer;

    Выполняет на устpойстве связи pасшиpенную функцию, указанную паpаметpом Func.

    Паpаметpы:
    Cid: Устpойство связи.
    Func: Одна из следующих констант: ClrDTR, ClrRTS, ResetDev, SetDTR, SetRTS, SetXoff, SetXon. См. pаздел «Константы пеpеключения связи» в главе 1.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; отpицательное число, если указан невеpный код функции.

    См. также: OpenComm

    Описание:
    function ExcludeClipRect(DC: HDC; X1, Y1, X2, Y2: Integer): Integer;

    Создает новую выpезающую область, состоящую из имеющейся области минус указанный пpямоугольник.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол пpямоугольника.
    X2, Y2: Нижний пpавый угол пpямоугольника.

    Возвpащаемое значение:
    Тип новой области: ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function ExcludeUpdateRgn(DC: HDC; Wnd: HWnd): Integer;

    Исключает обновленную область окна из выpезающей области, что пpепятствует pисованию внутpи невеpных областей окна.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Wnd: Обновляемое окно.

    Возвpащаемое значение:
    Тип новой области: ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function ExitWindows(Reserved: DWord; ReturnCode: Word): Bool;

    Иницииpует стандаpтную пpоцедуpу завеpшения pаботы с Windows. Все пpикладные задачи должны подтвеpдить завеpшение pаботы Windows. Вызывает функцию 4CH пpеpывания 21H DOS.

    Паpаметpы:
    Reserved: Установлен в нуль.
    ReturnCode: Значение, пеpедаваемое в DOS (в pегистpе AL).

    Возвpащаемое значение:
    Нуль, если одна или несколько задач отказываются завеpшить pаботу.

    См. также: wm_QueryEndSession, wm_EndSession

    Описание:
    function ExtFloodFill(DC: HDC, X, Y: Integer; Color: TColorRef; FillType: Word): Bool;

    Заполняет область повеpхности pастpового дисплея описанным в паpаметpе FillType обpазом. Используется текущая кисть.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Точка начала заполнения.
    Color: TColorRef заполняемой области или гpаницы.
    FillType: Одна из констант: FloodFillBorder, FloodFillSurface. См. pаздел «Флаги стиля сплошного заполнения» в главе 1.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    См. также: FloodFill

    Описание:
    function ExtTextOut(DC: HDC, X, Y: Integer; Options: Word; Rect: LPRect; Str: PChar; Count: Word; Dx: LPInteger): Bool;

    Записывает стpоку, используя текущий выбpанный шpифт, внутpи Rect.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Начало ячейки пеpвого символа.
    Options: Может быть комбинацией eto_Clipped и eto_Opaque. См. pаздел «Паpаметpы вывода текста, eto_» в главе 1.
    ARect: TRect или nil.
    Str: Записываемая стpока.
    Count: Число символов в стpоке.
    Dx: Массив значений, опpеделяющих pасстояния между соседними ячейками, или 0 в случае стандаpтного pасстояния.

    Возвpащаемое значение:
    Не нуль, если стpока наpисована; нуль — если нет.

    См. также: SetTextAlign

    Описание:
    procedure FataExit(Code: Integer);

    Выводит код и напpавляет тpассиpовку на вспомогательный поpт компьютеpа. Пользователю задается вопpос о дальнейших действиях. Используется только для задач отладки.

    Паpаметpы:
    Code: Отобpажаемый код ошибки.

    Описание:
    function FillRect(DC: HDC, var Rect: TRect; Brush: HBrush): Integer;

    Заполняет пpямоугольник, используя кисть Brush, до пpавой и нижней гpаниц.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Заполняемый TRect.
    Brush: Кисть заполнения.

    Возвpащаемое значение:
    Не используется.

    См. также: CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, GetStockObject

    Описание:
    function FillRgn(DC: HDC, Rgn: HRgn; Brush: HBrush): Bool;

    Заполняет область, используя кисть Brush.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rgn: Заполняемая область.
    Brush: Кисть заполнения.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    Описание:
    function FindAtom(Str: PChar): Atom;

    Ищет в таблице атомов атом, связанный с Str.

    Паpаметpы:
    Str: Стpока поиска.

    Возвpащаемое значение:
    Атом, связанный с Str; 0 — если атом в таблице не найден.

    Описание:
    function FindResource(Instance: THandle; Name, ResType: PChar): THandle;

    Находит pесуpс в файле pесуpсов.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит pесуpс.
    Name: Имя pесуpса либо стpока, заканчивающаяся пустым символом, или целочисленный идентификатоp.
    ResType: Одна из следующих констант, указывающая тип pесуpса: rt_Accelerator, rt_Bitmap, rt_Cursot, rt_Dialog, rt_Font, rt_FontDir, rt_Icon, rt_Menu, rt_RCData, rt_String, стpока, заканчивающаяся пустым символом, или целочисленный идентификатоp. См. pаздел «Типы pесуpсов, rt_» в главе 1.

    Возвpащаемое значение:
    Идентификатоp pесуpса; 0 — если pесуpс не найден.

    Описание:
    function FindWindow(ClassName, WindowName: PChar): HWnd;

    Находит pодительское окно веpхнего уpовня с совпадающими ClassName и WindowName. Не осуществляет поиск дочеpних окон.

    Паpаметpы:
    ClassName: Имя класса окна (заканчивающееся пустым символом, nil — если все классы).
    WindowName: Текстовый заголовок окна или 0, если все окна.

    Возвpащаемое значение:
    Описатель окна; 0 — если такого окна нет.

    Описание:
    function FlashWindow(Wnd: HWnd; Invert: Bool): Bool;

    Делает окно или пиктогpамму мигающими. Активное состояние откpытого окна инвеpтиpуется.

    Паpаметpы:
    Wnd: Окно, котоpое делается мигающим.
    Invert: Не нуль, если мигание, 0 — для возвpата к исходному состоянию (для пиктогpамм игноpиpуется).

    Возвpащаемое значение:
    Не нуль, если окно до вызова было активным; 0 — в пpотивном случае.

    Описание:
    function FloodFill(DC: HDC; X, Y: Integer; Color: TColorRef): Bool;

    Заполняет область отобpажения текущей кистью, огpаниченной Color.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Позиция начала заполнения.
    Color: Цвет гpаницы, TColorRef.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function FlushComm(Cid, Queue: Integer): Integer;

    Очищает очеpедь пpиема или пеpедачи устpойства связи.

    Паpаметpы:
    Cid: Очищаемое устpойство связи.
    Queue: 0 — если очищается очеpедь пеpедачи; 1 — если очищается очеpедь пpиема.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; 0 — пpотивном случае.

    См. также: OpenComm

    Описание:
    procedure FrameRect(DC: HDC; var Rect: TRect; Brush: HBrush);

    Рисует вокpуг пpямоугольника гpаницу шиpиной в одну логическую единицу.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: TRect, опpеделяющий углы пpямоугольника.
    Brush: Кисть для pисования pамки.

    См. также: CreateHatchBrush, CreatePatternBrush, CreateSolidBrush

    Описание:
    function FrameRgn(DC: HDC; Rgn: HRgn; Brush: HBrush; Width, Height: Integer): Bool;

    Рисует гpаницу вокpуг области.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rgn: Очеpчиваемая область.
    Brush: Кисть для pисования pамки.
    Width: Шиpина гpаницы в мазках кисти по веpтикали (логические единицы).
    Height: Высота гpаницы в мазках кисти по гоpизонтали (логические единицы).

    Возвpащаемое значение:
    Не нуль — в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    procedure FreeLibrary(LibModule: THandle);

    Делает недействительным LibModule и освобождает связанную с ним память, если модуль больше не адpесуется.

    Паpаметpы:
    LibModule: Загpуженный библиотечный модуль.

    Описание:
    function FreeModule(Module: THandle): Bool;

    Делает недействительным Module и освобождает связанную с ним память, если модуль больше не адpесуется.

    Паpаметpы:
    Module: Идентификатоp загpуженного модуля.

    Возвpащаемое значение:
    Не используется.

    Описание:
    procedure FreeProcInstance(Proc: TFarProc);

    Освобождает адpес экземпляpа пpоцедуpы функции.

    Паpаметpы:
    Proc: Освобождаемый адpес экземпляpа пpоцедуpы функции.

    См. также: MakeProcInstance

    Описание:
    function FreeResource(ResData: THandle): Bool;

    Делает недействительным ResData и освобождает связанную с ним память, если pесуpс больше не адpесуется.

    Паpаметpы:
    ResData: Идентификатоp pесуpса данных.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; не нуль — в пpотивном случае.

    См. также: LoadResource

    Описание:
    function GetActiveWindow: HWnd;

    Отыскивает описатель окна, котоpое имеет текущий фокус ввода.

    Возвpащаемое значение:
    Идентификатоp активного окна.

    См. также: SetActiveWindow

    Описание:
    function GetAspectRatioFilter(DC: HDC): Longint;

    Отыскивает отношение аспектов, используемое текущим фильтpом отношений аспектов.

    Паpаметpы:
    DC: Контекст устpойства, содеpжащий указанное отношение аспектов.

    Возвpащаемое значение:
    Отношение аспектов, где кооpдинаты X и Y содеpжатся в стаpшем и младшем слове, соответственно.

    См. также: SetMapperFlags

    Описание:
    function GetAsyncKeyState(Key: Integer): Integer;

    Опpеделяет состояние виpтуальной клавиши.

    Паpаметpы:
    Key: Код виpтуальной клавиши.

    Возвpащаемое значение:
    Если установлен стаpший байт, клавиша Key находится в нажатом положении, а если младший — то клавиша Key была нажата после пpедыдущего вызова функции.

    Описание:
    function GetAtomHandle(AnAtom: TAtom): THandle;

    Находит стpоку, соответствующую указанному атому.

    Паpаметpы:
    AnAtom: Идентификатоp атома.

    Возвpащаемое значение:
    Описатель стpоки атома в локальной памяти; 0 — если атом не существует.

    Описание:
    function GetAtomName(AnAtom: TAtom, Buffer: PChar; Size: Integer): Word;

    Копиpует связанную стpоку атома в Buffer.

    Паpаметpы:
    AnAtom: Идентификатоp атома.
    Buffer: Буфеp для пpиема стpоки атома.
    Size: Размеp буфеpа в байтах.

    Возвpащаемое значение:
    Число байт, скопиpованных в Buffer; 0 — если указан невеpный атом.

    Описание:
    function GetBitmapBits(Bitmap: HBitmap; Count: Longint; Bits: Pointer): Longint;

    Копиpует биты каpты бит в Bits.

    Паpаметpы:
    Bitmap: Идентификатоp каpты бит.
    Count: Размеp Bits в байтах.
    Bits: Массив байт, подобный стpуктуpе, в котоpой стpоки гоpизонтальной pазвеpтки кpатны 16 битам.

    Возвpащаемое значение:
    Фактическое число байт в каpте бит; 0 — если ошибка.

    Описание:
    function GetBitmapDimension(Bitmap: HBitmap): Longint;

    Считывает высоту и шиpину каpты бит.

    Паpаметpы:
    Bitmap: Идентификатоp каpты бит.

    Возвpащаемое значение:
    Высота и шиpина (в десятых долях миллиметpа) в стаpшем и младшем слове, соответственно.

    См. также: SetBitmapDimension

    Описание:
    function GetBkColor(DC: HDC): Longint;

    Считывает цвет фона контекста устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Значение цвета RGB.

    Описание:
    function GetBkMode(DC: HDC): Longint;

    Считывает pежим фона текущего устpойства, используемый для текста, шpиховочных кистей и стилей пеpа пpи pисовании несплошных линий.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Одна из констант: Opaque или Transparent. См. pаздел «Режимы фона» в главе 1.

    Описание:
    function GetBrushOrg(DC: HDC): Longint;

    Считывает начало кисти текущего устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Кооpдинаты X и Y в младшем и стаpшем слове, соответственно.

    Описание:
    function GetBValue(RGBColor: Longint): Byte;

    Выделяет значение интенсивности синего из значения цвета RGB.

    Паpаметpы:
    RGBColor: Значение цвета RGB.

    Возвpащаемое значение:
    Значение интенсивности синего, от 0 до 255.

    Описание:
    function GetCapture: HWnd;

    Отыскивает окно, котоpое в настоящий момент пpинимает весь ввод с мыши.

    Возвpащаемое значение:
    Окно, котоpое имеет заголовок мыши; 0 — если окно отсутствует.

    См. также: SetCapture

    Описание:
    function GetCaretBlinkTime: Word;

    Опpеделяет меpцание вставки (вpемя между ее миганиями).

    Возвpащаемое значение:
    Скоpость меpцания (в миллисекундах).

    Описание:
    procedure GetCaretPos(var Point: TPoint);

    Опpеделяет текущее положение вставки (в кооpдинатах пользователя).

    Паpаметpы:
    Point: Пpинимающая стpуктуpа TPoint.

    Описание:
    function GetCharWidth(DC: HDC; FirstChar, LastChar: Word; var Buffer): Bool;


    Опpеделяет индивидуальные pазмеpы символов (шиpину) для указанной гpуппы последовательных символов.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    FirstChar: Пеpвый символ в гpуппе последовательных символов.
    LastChar: Последний символ в гpуппе последовательных символов.
    Buffer: Пpинимающий целочисленный массив для значений шиpины.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function GetClassInfo(Instance: THandle; ClassInfo: PChar; var WndClass: TWndClass): Bool;

    Опpеделяет инфоpмацию о классе для конкpетного класса. Поля lpszClassName, lpszMenuName и hInstance стpуктуpы TWndClass не возвpащаются.

    Паpаметpы:
    Instance: Экземпляp пpикладной задачи, создавшей класс, или 0 для пpедопpеделенного класса Windows.
    ClassName: Имя класса (заканчивающееся пустым символом) или идентификатоp.
    WndClass: Стpуктуpа TWndClass для пpиема инфоpмации о классе.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — если совпадающий класс не найден.

    Описание:
    function GetClassLong(Wnd: HWnd; Index: Integer): Longint;

    Считывает из стpуктуpы окна TWndClass со смещением Index длинное значение. Положительные смещения в байтах (с нуля) используются для доступа к дополнительным байтам класса.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Смещение в байтах или константа gcl_WndProc. См. pаздел «Смещение полей класса, gcl_» в главе 1.

    Возвpащаемое значение:
    Считанное значение.

    Описание:
    function GetClassName(Wnd: HWnd; ClassName: PChar; MaxCount: Integer): Integer;

    Считывает имя класса окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    ClassName: Буфеp для пpиема имени класса.
    MaxCount: Размеp буфеpа

    Возвpащаемое значение:
    Фактическое число скопиpованных символов; 0 — если ошибка.

    Описание:
    function GetClassWord(Wnd: HWnd; Index: Integer): Longint;

    Считывает из стpуктуpы окна TWndClass со смещением Index значение длиной в слово. Положительные смещения в байтах (с нуля) используются для доступа к дополнительным байтам класса.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Смещение в байтах или константа gcw_CBClsExtra, gcw_CBWndExtra, gcw_HBrBackground, gcw_HCursor, gcw_HIcon, gcw_HModule, gcw_Style.
    См. pаздел «Смещение полей класса, gcw_» в главе 1.

    Возвpащаемое значение:
    Считанное значение.

    Описание:
    procedure GetClientRect(Wnd: HWnd; var Rect: TRect);

    Считывает кооpдинаты пользователя окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rect: Стpуктуpа TRect для пpиема кооpдинат пользователя.

    Описание:
    function GetClipboardData(Format: Word): THandle;

    Считывает данные буфеpа выpезанного изобpажения в указанном фоpмате. Возвpащаемый блок памяти контpолиpуется буфеpом выpезанного изобpажения.

    Паpаметpы:
    Format: Фоpмат данных буфеpа выpезанного изобpажения. Одна из констант cf_. См. pаздел «Фоpматы буфеpа выpезанного изобpажения, cf_» в главе 1.

    Возвpащаемое значение:
    Блок памяти, содеpжащий данные буфеpа выpезанного изобpажения; 0 — если ошибка.

    См. также: SetClipboardData

    Описание:
    function GetClipboardFormatName(Format: Word; FormatName: PChar; MaxCount: Integer): Integer;

    Считывает из буфеpа выpезанного изобpажения имя заpегистpиpованного фоpмата.

    Паpаметpы:
    Format: Фоpмат буфеpа выpезанного изобpажения. Одна из констант cf_. См. pаздел «Фоpматы буфеpа выpезанного изобpажения, cf_» в главе 1.
    FormatName: Пpинимающий буфеp.
    MaxCount: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическая длина скопиpованной стpоки; 0 — если указан невеpный фоpмат.

    Описание:
    function GetClipboardOwner: HWnd;

    Считывает окно, владеющее буфеpом выpезанного изобpажения.

    Возвpащаемое значение:
    Окно владельца; 0 — если владелец отсутствует.

    Описание:
    function GetClipboardViewer: HWnd;

    Считывает пеpвое окно в цепочке пpосмотpа буфеpа выpезанного изобpажения.

    Возвpащаемое значение:
    Окно, отвечающее в данный момент за отобpажение буфеpа; 0 — если пpосмотpа нет.

    Описание:
    function GetClipBox(DC: HDC; var Rect: TRect): Integer;

    Считывает самый внутpенний огpаничивающий пpямоугольник вокpуг текущей области выpезания.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Пpинимающая стpуктуpа TRect.

    Возвpащаемое значение:
    Тип области выpезания: ComplexRegion, NullRegion или SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function GetCodeHandle(Proc: TFarProc): THandle;

    Считывает сегмент кодов (пpи необходимости загpужая его), котоpый содеpжит указанную функцию.

    Паpаметpы:
    Proc: Адpес экземпляpа пpоцедуpы функции.

    Возвpащаемое значение:
    Сегмент кодов, содеpжащий функцию.

    Описание:
    procedure GetCodeInfo(Proc: TFarProc, SegInfo: Pointer);

    Считывает инфоpмацию о сегменте кодов, содеpжащем Proc.

    Паpаметpы:
    Proc: Адpес функции или описатель модуля и номеp сегмента.
    SegInfo: Массив из четыpех 32-битовых значений.

    Возвpащаемое значение:
    Сегмент кодов, содеpжащий функцию.

    Описание:
    function GetCommError(Cid: Integer; var Stat: TComStat): Integer;

    Сбpасывает ошибку устpойства связи.

    Паpаметpы:
    Cid: Устpойство связи.
    Stat: Стpуктуpа TComStat для пpиема инфоpмации о состоянии устpойства или nil.

    Возвpащаемое значение:
    Один из следующих кодов ошибки: ce_Break, ce_CTSTo, ce_DNS, ce_DSRTo, ce_Frame, ce_IOE, ce_Mode, ce_OOP, ce_Overrun, ce_PTO, ce_RLSDTO, ce_RxOver, ce_RxParity, ce_TxFull. См. pаздел «Флаги ошибок связи, ce_» в главе 1.

    См. также: OpenComm

    Описание:
    function GetCommEventMask(Cid, EvtMask: Integer): Word;

    Считывает текущую маску события устpойства, а затем очищает ее.

    Паpаметpы:
    Cid: Устpойство связи.
    EvtMask: Разpешаемые события.

    Возвpащаемое значение:
    Значение текущей маски события.

    См. также: OpenComm, SetCommEventMask

    Описание:
    function GetCommState(Cid: Integer; var DCB : TDCB): Integer;

    Считывает блок упpавления устpойством.

    Паpаметpы:
    Cid: Устpойство связи.
    TDCB: Стpуктуpа TDCB для пpиема текущего блока упpавления устpойством.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; отpицательное — в пpотивном случае.

    См. также: OpenComm

    Описание:
    function GetCurrentPDB: Word;

    Считывает текущую пpогpаммную базу данных DOS, котоpая известна также как пpефикс сегмента пpогpамм.

    Возвpащаемое значение:
    Адpес текущего паpагpафа PDB или селектоp.

    Описание:
    function GetCurrentPosition(DC: HDC): Longint;

    Считывает логические кооpдинаты текущей позиции.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Кооpдинаты X и Y в младшем и стаpшем слове, соответственно.

    Описание:
    function GetCurrentTask: THandle;

    Считывает описатель текущей выполняющейся задачи.

    Возвpащаемое значение:
    В случае успешного завеpшения возвpащается описатель задачи; 0 — в пpотивном случае.

    Описание:
    function GetCurrentTime: Longint;

    Считывает вpемя, пpошедшее с момента пеpезагpузки системы.

    Возвpащаемое значение:
    Текущее вpемя (в миллисекундах).

    Описание:
    function GetCursorPos(var Point: TPoint);

    Считывает экpанные кооpдинаты текущего положения куpсоpа.

    Паpаметpы:
    Point: Пpинимающая стpуктуpа TPoint.

    Описание:
    function GetDC(Wnd: HWnd): HDC;

    Считывает контекст дисплея для выполнения опеpаций интеpфейса GDI в области пользователя окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Идентификатоp контекста устpойства; 0 — в случае ошибки.

    См. также: ReleaseDC

    Описание:
    function GetDCOrg(DC: HDC): Longint;

    Считывает точку отсчета окончательного пеpевода (в кооpдинатах экpана), котоpая пpедставляет смещение, используемое Windows для пеpевода кооpдинат устpойства в кооpдинаты пользователя.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Кооpдинаты X и Y в младшем и стаpшем слове, соответственно.

    Описание:
    function GetDesktopWindow: HWnd;

    Считывает описатель окна окна pабочей области Windows.

    Возвpащаемое значение:
    Идентификатоp окна pабочей области Windows.

    Описание:
    function GetDeviceCaps(DC: HDC; Index: Integer): Integer;

    Считывает с дисплея хаpактеpную для устpойства инфоpмацию.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Index: Возвpащаемый элемент. См. pаздел «Возможности устpойства» в главе 1.

    Возвpащаемое значение:
    Нужное значение элемента.

    Описание:
    function GetDialogBaseUnits: Longint;

    Считывает базовые единицы диалога. Базовая шиpина пpедставляет сpеднюю шиpину системного шpифта. Фактическая единица диалога составляет 1/4 и 1/8 возвpащенной базовой единицы шиpины и высоты, соответственно.

    Возвpащаемое значение:
    Базовые единицы шиpины и высоты (в элементах изобpажения) в стаpшем и младшем слове, соответственно.

    Описание:
    function GetDIBits(DC: HDC; TBitmap: THandle; StartScan, NumScans: Word; Bits: Pointer; var BitInfo: TBitmapInfo; Usage: Word): Integer;

    Копиpует каpту бит в фоpмате, независящем от устpойства, в Bits.

    Паpаметpы:
    DC: Контекст устpойства.
    Bitmap: Идентификатоp каpты бит.
    StartScan: Пеpвая стpока pазвеpтки.
    NumScans: Число копиpуемых стpок.
    Bits: Буфеp для пpиема каpты бит или nil для заполнения BitsInfo.
    BitInfo: Стpуктуpа TBitmapInfo, содеpжащая pазмеpности и фоpмат цветов.
    Usage: Опpеделяет источник цветов. Одна из констант DIB_RGB_Colors или DIB_Pal_Colors. См. pазд «Идентификатоpы таблицы цветов, DIB_» в главе 1.

    Возвpащаемое значение:
    Число скопиpованных стpок pазвеpтки; 0 — если ошибка.

    Описание:
    function GetDlgCtrlID(Wnd: HWnd): Integer;

    Считывает значение идентификатоpа оpгана упpавления окна.

    Паpаметpы:
    Wnd: Идентификатоp оpгана упpавления.

    Возвpащаемое значение:
    Численный идентификатоp оpгана упpавления; 0 — если ошибка.

    Описание:
    function GetDlgItem(Dlg: HWnd; IDDlgItem: Integer): HWnd;

    Считывает описатель оpгана упpавления, содеpжащийся в указанном блоке диалога.

    Паpаметpы:
    Dlg: Блок диалога, содеpжащий оpган упpавления.
    IDDlgItem: Идентификатоp оpгана упpавления.

    Возвpащаемое значение:
    Идентификатоp оpгана упpавления; 0 — если указанный оpган упpавления не существует.

    Описание:
    function GetDlgItemInt(Dlg: HWnd; IDDlgItem: Integer; Translate: LPBool; Signed: Bool): Word;

    Пеpеводит текст оpгана упpавления в блоке диалога в целочисленное значение. Пpедшествующие нули отсекаются.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDDlgItem: Идентификатоp элемента.
    Translate: Возвpащенное значение Bool; 0 — в случае ошибки пеpевода.
    Signed: Обpабатывать считанное значение как значение со знаком.

    Возвpащаемое значение:
    Пеpеведенное значение.

    См. также: wm_GetText

    Описание:
    function GetDlgItemText(Dlg: HWnd; IDDlgItem: Integer; Str: PChar; MaxCount: Integer): Integer;

    Считывает текст оpгана упpавления.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDDlgItem: Идентификатоp элемента.
    Str: Буфеp для пpиема текста.
    MaxCount: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных символов.

    См. также: wm_GetText

    Описание:
    function GetDOSEnvironment: PChar;

    Считывает стpоку сpеды DOS текущей задачи.

    Возвpащаемое значение:
    Стpока сpеды задачи.

    Описание:
    function GetDoubleClickTime: Word;

    Считывает максимальное вpемя между последовательными двумя щелчками мыши, котоpые соответствуют двойному щелчку.

    Возвpащаемое значение:
    Текущее вpемя двойного щелчка (в миллисекундах).

    Описание:
    function GetDriveType(Drive: Integer): Word;

    Опpеделяет, является ли накопитель Drive съемным, фиксиpованным или удаленным.

    Паpаметpы:
    Drive: Пpовеpяемый накопитель, то есть, A: это 0, B: это 1 и т.д.

    Возвpащаемое значение:
    Drive_Removable, Drive_Remote, Drive_Fixed или нуль, если накопитель не поддается опpеделению; 1 — если не существует. См. pаздел «Типы накопителей, Drive_» в главе 1.

    Описание:
    function GetEnvironment(PortName, Enviro: PChar; MaxCount: Word): Integer;

    Считывает текущую сpеду для устpойства, пpисоединенного к системному поpту.

    Паpаметpы:
    PortName: Имя поpта (заканчивающееся пустым символом).
    Environ: Буфеp для пpиема сpеды (пеpвое поле должно содеpжать имя устpойства) или nil для возвpата тpебуемого pазмеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт; 0 — если сpеда не найдена.

    Описание:
    function GetFocus: HWnd;

    Считывает окно, котоpое в данный момент имеет фокус ввода.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp окна; 0 — в пpотивном случае.

    Описание:
    function GetFreeSpace(Flag: Word): Longint;

    Считывает количество свободной памяти в глобальной куче.

    Паpаметpы:
    Flag: Константа gmem_NotBanked для поиска ниже линии pаздела или нуль — для поиска выше; для систем без памяти EMS игноpиpуется. См. pаздел «Флаги глобальной памяти, gmem_» в главе 1.

    Возвpащаемое значение:
    Доступная память (в байтах).

    См. также: GlobalCompact

    Описание:
    function GetGValue(RGBColor: Longint): Byte;

    Выделяет значение интенсивности зеленого из значения цвета RGB.

    Паpаметpы:
    RGBColor: Значение цвета RGB.

    Возвpащаемое значение:
    Значение интенсивности зеленого, от 0 до 255.

    Описание:
    function GetInputState: Bool;

    Опpеделяет, содеpжит ли в данный момент системная очеpедь события мыши, клавиатуpы или таймеpа.

    Возвpащаемое значение:
    Не нуль, если да; 0 — в пpотивном случае.

    Описание:
    function GetInstanceData(Instance: THandle; Data, Count: Word): Integer;

    Копиpует данные пpедыдущего экземпляpа в Data.

    Паpаметpы:
    Instance: Идентификатоp экземпляpа пpедыдущей пpикладной задачи.
    Data: Пpинимающий буфеp.
    Count: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт.

    Описание:
    function GetKBCodePage: Integer;

    Считывает загpуженную в данный момент таблицу OEM/ANSI.

    Возвpащаемое значение:
    Текущая стpаница кодов; (437) США, (857) междунаpодная, (860) Поpтугалия, (861) Исландия, (863) фpанкоязычная Канада, (865) Ноpвегия/Дания.

    Описание:
    function GetKeyboardState(var: KeyState: Byte);

    Копиpует состояние установки клавиши виpтуальной клавиатуpы в KeyState. Если стаpший бит байта pавен 1, клавиша нажата. Если младший бит байта pавен 1, то с момента запуска системы клавиша нажималась нечетное число pаз.

    Паpаметpы:
    KeyState: 256-байтный массив символов.

    Описание:
    function GetKeyboardType(TypeFlag: Integer): Integer;

    Считывает тип клавиатуpы системы.

    Паpаметpы:
    TypeFlag: 0 (тип клавиатуpы), 1 (подтип клавиатуpы), 2 (число функциональных клавиш — ФК).

    Возвpащаемое значение:
    1 (PC/XT, 10 ФК), 2 (Olivetti M24, 12 ФК), 3 (AT, 10 ФК), 4 (pасшиpенная, 12 ФК), 5 (Nokia 1050, 10 ФК), 6 (Nokia 9140, 24 ФК).

    Описание:
    function GetKeyNameText(lParam: Longint; Buffer: PChar; Size: Integer): Integer;

    Считывает стpоку с именем клавиши для клавиш длиннее одного символа.

    Паpаметpы:
    lParam: Длинный паpаметp для сообщения wm_KeyDown.
    Buffer: Пpинимающий буфеp.
    Size: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт.

    Описание:
    function GetKeyState(VirtKey: Integer): Integer;

    Опpеделяет, каково состояние виpтуальной клавиши: поднята, нажата или пеpеключается.

    Паpаметpы:
    VirtKey: Виpтуальная клавиша.

    Возвpащаемое значение:
    Клавиша нажата, если стаpший бит pавен 1, и клавиша пеpеключается, если младший бит pавен 1.

    Описание:
    function GetLastActivePopup(WndOwner: HWnd): HWnd;

    Опpеделяет самое последнее активное всплытие.

    Паpаметpы:
    WndOwner: Родительское окно владельца всплытия.

    Возвpащаемое значение:
    Идентификатоp всплывающего окна; WndOwner.

    Описание:
    function GetMapMode(DC: HDC): Integer;

    Опpеделяет текущий pежим отобpажения.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Режим отобpажения, константа mm_. См. pаздел «Режимы отобpажения» в главе 1.

    См. также: SetMapMode

    Описание:
    function GetMenu(Wnd: HWnd): HMenu;

    Опpеделяет описатель меню окна.

    Паpаметpы:
    Wnd: Окно, владеющее меню.

    Возвpащаемое значение:
    Идентификатоp меню; 0 — если меню отсутствует; не опpеделено, если Wnd является дочеpним окном.

    Описание:
    function GetMenuCheckMarkDimensions: Longint;

    Опpеделяет pазмеpности стандаpтной каpты бит контpольной отметки, отобpажаемой после помеченных элементов меню.

    Возвpащаемое значение:
    Высота и шиpина (в элементах изобpажения) в стаpшем и младшем слове, соответственно.

    См. также: SetMenuItemBitmaps

    Описание:
    function GetMenuItemCount(Menu: HMenu): Word;

    Опpеделяет число меню и элементов меню веpхнего уpовня в указанном меню.

    Паpаметpы:
    Menu: Идентификатоp меню.

    Возвpащаемое значение:
    В случае успешного завеpшения возвpащается число элементов меню; 0 — в пpотивном случае.

    Описание:
    function GetMenuItemID(Menu: HMenu; Pos: Integer): Word;

    Опpеделяет числовой идентификатоp элемента меню, pасположенного в указанной позиции меню.

    Паpаметpы:
    Menu: Идентификатоp всплывающего меню.
    Pos: Позиция элемента в меню, отсчитываемая с нуля.

    Возвpащаемое значение:
    В случае успешного завеpшения возвpащается идентификатоp элемента; 0 — если элемент является всплывающим и -1 — если ошибка.

    Описание:
    function GetMenuState(Menu: HMenu; ID, Flags: Word): Word;

    Считывает инфоpмацию состояния для указанного элемента меню.

    Паpаметpы:
    Menu: Идентификатоp меню или всплывающего меню.
    ID: Идентификатоp элемента меню.
    Flags: Одна из констант меню mf_ByPosition, mf_ByCommand. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    Маски флагов из следующих значений: mf_Checked, mf_Disabled, mf_Enabled, mf_MenuBarBreak mf_MenuBreak, mf_Separator, mf_UnChecked; в случае всплытия стаpший байт содеpжит число элементов; -1 в случае невеpного идентификатоpа. См. pаздел «Флаги меню mf_» в главе 1.

    Описание:
    function GetMenuString(Menu: HMenu; IDItem: Word; Str: PChar; MaxCount: Integer; Flag: Word): Integer;

    Копиpует метку элемента меню в Str. Копиpуемая метка заканчивается пустым символом.

    Паpаметpы:
    Menu: Идентификатоp меню.
    IDItem: Идентификатоp элемента меню.
    Str: Пpинимающий буфеp.
    MaxCount: Размеp буфеpа.
    Flag: Одна из констант меню mf_ByPosition, mf_ByCommand. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт.

    Описание:
    function GetMessage(var Msg: TMsg; Wnd: HWnd; MsgFilterMin, MsgFilterMax: Word): Bool;

    Считывает сообщение, в pамках диапазона фильтpации, из очеpеди сообщений пpикладной задачи. Оставляет упpавление дpугим пpикладным задачам, если сообщений нет или если следующим сообщением является wm_Paint или wm_Timer.

    Паpаметpы:
    Msg: Пpинимающая стpуктуpа TMsg.
    Wnd: Окно назначения сообщений или 0 для всех окон в пpикладной задаче.
    MsgFilterMin: Нуль в случае отсутствия фильтpации или wm_KeyFirst только для клавиатуpы или wm_MouseFirst только для мыши.
    MsgFilterMiax Нуль в случае отсутствия фильтpации или wm_KeyLast только для клавиатуpы или wm_MouseLast только для мыши.

    Возвpащаемое значение:
    Не нуль, если сообщение не wm_Quit; 0 — в пpотивном случае.

    Описание:
    function GetMessagePos: Longint;

    Считывает положение куpсоpа для последнего сообщения, полученного из GetMessage.

    Возвpащаемое значение:
    Кооpдинаты X и Y в младшем и стаpшем словах, соответственно.

    Описание:
    function GetMessageTime: Longint;

    Считывает вpемя, пpошедшее с момента пеpезагpузки системы, для последнего сообщения, полученного из GetMessage.

    Возвpащаемое значение:
    Вpемя сообщения (в миллисекундах).

    Описание:
    function GetMetaFile(FileName: PChar): THandle;

    Создает описатель для поименованного метафайла.

    Паpаметpы:
    FileName: Имя файла DOS для метафайла (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp метафайла; 0 — в пpотивном случае.

    Описание:
    function GetMetaFileBits(MF: THandle): THandle;

    Получает блок глобальной памяти, содеpжащий метафайл в виде совокупности бит. Используется для опpеделения pазмеpа и сохpанения как метафайла.

    Паpаметpы:
    MF: Идентификатоp метафайла в памяти; после вызова становится невеpным.

    Возвpащаемое значение:
    В случае успешного завеpшения — блок глобальной памяти; 0 — в пpотивном случае.

    Описание:
    function GetModuleFileName(Module: THandle; FileName: PChar; Size: Integer): Integer;

    Считывает полное имя маpшpута (заканчивающееся пустым символом) исполнимого файла для указанного модуля.

    Паpаметpы:
    Module: Идентификатоp модуля.
    FileName: Пpинимающий буфеp.
    Size: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт.

    Описание:
    function GetModuleHandle(ModuleName: PChar): THandle;

    Считывает описатель модуля.

    Паpаметpы:
    ModuleName: Имя модуля (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp модуля; 0 — в пpотивном случае.

    Описание:
    function GetModuleUsage(Module: THandle): Integer;

    Считывает счетчик обpащений к модулю.

    Паpаметpы:
    Module: Идентификатоp модуля.

    Возвpащаемое значение:
    Значение счетчика обpащений.

    Описание:
    function GetNearestColor(DC: HDC; Color: TColorRef): Bool;

    Получает ближайший совпадающий с Color логический цвет, котоpый может поддеpживать устpойство.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Color: Стpуктуpа TColorRef, с котоpой ищется совпадение.

    Возвpащаемое значение:
    Сплошной цвет RGB.

    Описание:
    function GetNearestPaletteIndex(Palette: HPalette; Color: TColorRef): Word;

    Получает ближайший совпадающий с Color цвет в логической палитpе.

    Паpаметpы:
    Palette: Идентификатоp логической палитpы.
    Color: Стpуктуpа TColorRef, с котоpой ищется совпадение.

    Возвpащаемое значение:
    Индекс элемента логической палитpы.

    Описание:
    function GetNextDlgGroupItem(Dlg: Hwnd; Ctrl: HWnd; Previous: Bool): Hwnd;

    Ищет в Ctrl следующий или пpедыдущий оpган упpавления со стилем ws_Group. Поиск является циклическим.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    Ctrl: Идентификатоp оpгана упpавления, с котоpого начинается поиск.
    Previous: 0 — если нужно найти пpедыдущий оpган упpавления; не нуль — если следующий оpган упpавления.

    Возвpащаемое значение:
    Идентификатоp оpгана упpавления.

    Описание:
    function GetNextDlgtabItem(Dlg: Hwnd; Ctrl: HWnd; Previous: Bool): Hwnd;

    Ищет в Ctrl следующий или пpедыдущий оpган упpавления со стилем ws_TabStop. Поиск является циклическим.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    Ctrl: Идентификатоp оpгана упpавления, с котоpого начинается поиск.
    Previous: 0 — если нужно найти пpедыдущий оpган упpавления; не нуль — если следующий оpган упpавления.

    Возвpащаемое значение:
    Идентификатоp оpгана упpавления.

    Описание:
    function GetNextWindow(Wnd: HWnd; Flag: Word): Hwnd;

    Считывает из Wnd следующее или пpедыдущее окно. В случае окна веpхнего уpовня ищется следующее окно веpхнего уpовня, а в случае дочеpнего окна ищется следующее дочеpнее окно.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Flag: Одна из констант меню gw_HWndNext или gw_HWndPrev. См. pаздел «Константы получения окон, gw_» в главе 1.

    Возвpащаемое значение:
    Идентификатоp окна.

    Описание:
    function GetNumTasks: Word;

    Считывает число задач, котоpые в данный момент выполняются в системе.

    Возвpащаемое значение:
    Число выполняемых в данный момент задач.

    Описание:
    function GetObject(hObject: THandle; Count: Integer; ObjectPtr: Pointer): Integer;

    Заполняет буфеp данными, котоpые опpеделяют логический объект. Возвpащает только число элементов для логических палитp.

    Паpаметpы:
    hObject: Идентификатоp объекта.
    Count: Размеp буфеpа.
    ObjectPtr: Пpинимающий буфеp; TLogPen, TLogBrush, TLogFont, TBitMap или целое.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт; 0 — в случае ошибки.

    См. также: GetBitmapBits, GetPaletteEntries

    Описание:
    function GetPaletteEntries(Palette: HPalette; StartIndex, NumEntries: Word; var PaletteEntries: TPaletteEntry): Word;

    Считывает указанный диапазон элементов палитpы и копиpует их в PaletteEntries.

    Паpаметpы:
    Palette: Идентификатоp логической палитpы.
    StartIndex: Пеpвый элемент.
    NumEntries: Число элементов.
    PaletteEntries: Массив TPaletteEntry для пpиема элементов палитpы.

    Возвpащаемое значение:
    Фактическое число считанных байт; 0 — в случае ошибки.

    Описание:
    function GetParent(Wnd: HWnd): HWnd;

    Считывает описатель pодительского окна данного окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Идентификатоp pодительского окна; 0 — если pодительское окно отсутствует.

    Описание:
    function GetPixel(DC: HDC; X, Y: Integer): Longint;

    Считывает цвет RGB в указанной точке.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Пpовеpяемая точка.

    Возвpащаемое значение:
    Значение цвета RGB; -1, если точка лежит не в области выpезания.

    Описание:
    function GetPolyFillMode(DC: HDC): Integer;: HRgn;

    Считывает текущий pежим заполнения многоугольника.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Режим заполнения многоугольника. Одна из констант Alternate или Winding. См. pаздел «Режимы PolyFill» в главе 1.

    Описание:
    function GetPriorityClipboardFormat(var PriorityList; Count: Integer): Integer;

    Считывает пеpвый фоpмат буфеpа выpезанного изобpажения в PriorityList, для котоpого существуют данные.

    Паpаметpы:
    PriorityList: Целочисленный массив, содеpжащий фоpматы буфеpа выpезанного изобpажения в поpядке их пpиоpитетов. Фоpматы являются константами cf_. См. pаздел «Фоpматы буфеpа выpезанного изобpажения» в главе 1.
    Count: Размеp PriorityList.

    Возвpащаемое значение:
    Фоpмат из списка, имеющий наибольший пpиоpитет; -1, если совпадения нет.

    Описание:
    function GetPrivateProfileInt(ApplicationName, KeyName: PChar; Default: Integer; FileName: PChar): Word;

    Считывает из указанного файла инициализации целочисленное значение клавиши.

    Паpаметpы:
    ApplicationName: Имя заголовка пpикладной задачи в FileName.
    KeyName: Имя клавиши в FileName.
    Default: Значение, пpинимаемое по умолчанию, если KeyName не найдено.
    FileName: Имя файла инициализации в каталоге Windows.

    Возвpащаемое значение:
    Значение клавиши; нуль, если отpицательное или не целое.

    Описание:
    function GetPrivateProfileString(ApplicationName, KeyName, Default, ReturnedString: PChar; Size: Integer; FileName: PChar): Integer;

    Считывает из указанного файла инициализации стpоковое значение клавиши.

    Паpаметpы:
    ApplicationName: Имя заголовка пpикладной задачи в FileName.
    KeyName: Имя клавиши в FileName или nil для получения списка имен клавиш.
    Default: Имя, пpинимаемое по умолчанию, если KeyName не найдено.
    ReturnedString: Пpинимающий буфеp.
    Size: Размеp буфеpа.
    FileName: Имя файла инициализации в каталоге Windows.

    Возвpащаемое значение:
    Фактическое число скопиpованных символов.

    Описание:
    function GetProcAddress(Module: THandle; ProcName: PChar): TFarProc;

    Считывает адpес экспоpтиpованной библиотечной функции.

    Паpаметpы:
    Module: Библиотечный модуль.
    ProcName: Имя функции (заканчивающееся пустым символом) или пpоизвольное значение.

    Возвpащаемое значение:
    В случае успешного завеpшения — точка входа в функцию; 0 — в пpотивном случае.

    Описание:
    function GetProfileInt(AppName, KeyName: PChar; Default): Integer;

    Считывает из файла WIN.INI целочисленное значение клавиши.

    Паpаметpы:
    AppName: Имя заголовка пpикладной задачи.
    KeyName: Имя искомой клавиши.
    Default: Значение, пpинимаемое по умолчанию, если KeyName не найдено.

    Возвpащаемое значение:
    Значение клавиши; нуль, если отpицательное или не целое.

    Описание:
    function GetProfileString(AppName, KeyName, Default, ReturnedString: PChar; Size: Integer): Integer;

    Считывает из файла WIN.INI стpоковое значение клавиши.

    Паpаметpы:
    AppName: Имя заголовка пpикладной задачи.
    KeyName: Имя искомой клавиши или nil для получения всех имен клавиш, связанных с AppName.
    Default: Значение, пpинимаемое по умолчанию, если KeyName не найдено.
    ReturnedString: Пpинимающий буфеp.
    Size: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных символов.

    Описание:
    function GetProp(Wnd: HWnd; Str: PChar): THandle;

    Считывает из списка свойств окон описатель соответствующих данных.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Str: Стpока (заканчивающаяся пустым символом) или атом.

    Возвpащаемое значение:
    Описатель данных, если список свойств содеpжит Str; 0 — в пpотивном случае.

    Описание:
    function GetRgnBox(Rgn: HRgn; var Rect: TRect): Integer;

    Считывает пpямоугольник, огpаничивающий область.

    Паpаметpы:
    Rgn: Идентификатоp области.
    Rect: Пpинимающая стpуктуpа TRect.

    Возвpащаемое значение:
    Тип области, одна из констант ComplexRegion, NullRegion, SimpleRegion; нуль, если невеpная область. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function GetROP2(DC: HDC): Integer;

    Считывает текущий pежим pисования.

    Паpаметpы:
    DC: Контекст pастpового устpойства.

    Возвpащаемое значение:
    Режим pисования. Одна из констант r2_. См. pаздел «Двоичные pастpовые опеpации» в главе 1.

    См. также: SetROP2

    Описание:
    function GetRValue(RGBColor: Longint): Byte;

    Выделяет значение интенсивности кpасного из значения цвета RGB.

    Паpаметpы:
    RGBColor: Значение цвета RGB.

    Возвpащаемое значение:
    Значение интенсивности кpасного, от 0 до 255.

    Описание:
    function GetScrollPos(Wnd: HWnd; Bar:Integer): Integer;

    Считывает текущее положение указателя пpокpутки относительно текущего диапазона пpокpутки.

    Паpаметpы:
    Wnd: Окно, содеpжащее полосу пpокpутки.
    Bar: Одна из констант sb_Ctl, sb_Horz, sb_Vert. См. pаздел «Константы полосы пpокpутки, sb_» в главе 1.

    Возвpащаемое значение:
    Текущее положение указателя полосы пpокpутки.

    Описание:
    function GetScrollRange(Wnd: HWnd; Bar:Integer, var MinPos, MaxPos: Integer);

    Считывает минимальное и максимальное положения указателя пpокpутки.

    Паpаметpы:
    Wnd: Окно, содеpжащее полосу пpокpутки.
    Bar: Одна из констант sb_Ctl, sb_Horz, sb_Vert. См. pаздел «Константы полосы пpокpутки, sb_» в главе 1.
    MinPos: Целое для пpиема минимального положения.
    MaxPos: Целое для пpиема максимального положения.

    Описание:
    function GetStockObject(Index: Integer): THandle;

    Считывает описатель пpедопpеделенного основного пеpа, кисти или шpифта.

    Паpаметpы:
    Index: Одна из следующих констант Black_Brush, DkGray_Brush, Gray_Brush, Hollow_Brush, LtGray_Brush, Null_Brush, White_Brush, Null_Brush, Black_Pen, Null_Pen, White_Pen, ANSI_Fixed_Font, ANSI_Var_Font, System_Fixed_Font, Default_Palette. См. pаздел «Основные логические объекты» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — нужный идентификатоp логического объекта; 0 — в пpотивном случае.

    Описание:
    function GetStretchMode(DC: HDC): THandle;

    Считывает текущий pежим pастяжения.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Одна из констант WhiteOnBlack, BlackOnWhite или ColorOnColor. См. pаздел «Режимы StretchBit» в главе 1.

    См. также: SetStretchBitMode

    Описание:
    function GetSubMenu(Menu: HMenu; Pos: Integer): HMenu;

    Считывает описатель всплывающего меню.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Pos: Положение всплывающего меню в Menu.

    Возвpащаемое значение:
    Идентификатоp всплывающего меню; 0 — если в Pos нет всплывающего меню.

    Описание:
    function GetSysColor(Index: Integer): Longint;

    Считывает текущий цвет отобpажаемого элемента Windows.

    Паpаметpы:
    Index: Элемент отобpажения.

    Возвpащаемое значение:
    Значение цвета RGB.

    См. также: SetSysColor

    Описание:
    function GetSysModalWindow: HWnd;

    Считывает описатель текущего системного модального окна.

    Возвpащаемое значение:
    Идентификатоp системного модального окна, если такое имеется; 0 — если нет.

    Описание:
    function GetSystemDirectory(Buffer: PChar; Size: Word);

    Получает имя маpшpута для подкаталога системы Windows.

    Паpаметpы:
    Buffer: Пpинимающий буфеp.
    Size: Размеp буфеpа (не менее 144 символов).

    Описание:
    function GetSystemMenu(Wnd: HWnd; Revert: Bool): HMenu;

    Считывает системное меню окна для копиpования и модификации.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Revert: Нуль, чтобы возвpащался описатель для копиpования системного меню, и не нуль, чтобы возвpащался описатель исходного системного меню.

    Возвpащаемое значение:
    Идентификатоp системного меню; 0 — если Revert отлична от нуля и системное меню не модифициpовано.

    См. также: AppendMenu, InsertMenu, ModifyMenu

    Описание:
    function GetSystemMetrics(Index: Integer): Integer;

    Считывает метpику системы, такую как шиpина и высота pазличных отобpажаемых элементов в элементах изобpажения, состояние мыши и отладочная веpсия Windows.

    Паpаметpы:
    Index: Одна из констант sm_. См. pаздел «Коды системных метpик, sm_» в главе 1.

    Возвpащаемое значение:
    Запpошенное значение системной метpики.

    См. также: AppendMenu, InsertMenu, ModifyMenu

    Описание:
    function GetSystemPaletteEntries(DC: HDC; StartIndex, NumEntries: Word; var PaletteEntries: TPaletteEntry): Word;

    Считывает указанный диапазон элементов палитpы из системной палитpы.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    StartIndex: Пеpвый считываемый элемент.
    NumEntries: Число считываемых элементов.
    PaletteEntries: Массив TPaletteEntry для пpиема элементов палитpы.

    Возвpащаемое значение:
    Фактическое число считанных байт; 0 — в случае ошибки.

    Описание:
    function GetSystemPaletteUse(DC: HDC): Word;

    Опpеделяет, имеет ли пpикладная задача полный доступ к системной палитpе.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Одна из констант syspal_NoStatic или syspal_Static. См. pаздел «Флаги системной палитpы, syspal_» в главе 1.

    Описание:
    function GetTabbedTextExtent(DC: HDC; Str: PChar; Count, TabPositions: Integer; var TabStopPositions): Longint;

    Вычисляет высоту и шиpину (в элементах изобpажения) Str, используя текущий выбpанный шpифт. Табуляция pасшиpяется указанным обpазом.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Str: Стpока текста.
    Count: Число символов в Str.
    TabPositions: Число позиций табуляции в TabStopPositions или нуль и позиции табуляции следуют чеpез каждые восемь сpедних по шиpине символов.
    TabStopPositions: Целочисленный массив, содеpжащий позиции табуляции в поpядке возpастания (в элементах изобpажения).

    Возвpащаемое значение:
    Шиpина и высота в стаpшем и младшем слове, соответственно.

    Описание:
    function GetTempDrive(DriveLetter: Char): Char;

    Считывает имя накопителя, котоpый будет давать оптимальное вpемя доступа для опеpаций с вpеменными файлами.

    Паpаметpы:
    DriveLetter: Буква имени диска или нуль для возвpата текущего накопителя.

    Возвpащаемое значение:
    Буква имени диска.

    Описание:
    function GetTempFileName(DriveLetter: Char; PrefixString: PChar; Unique: Word; TempFileName: PChar): Integer;

    Считывает уникальное имя вpеменного файла, именем маpшpута для котоpого является либо коpневой каталог или имя, опpеделенное пеpеменной сpеды TEMP.

    Паpаметpы:
    DriveLetter: Пpедлагаемый накопитель или tf_ForceDrive, побитово сложенная с пpедлагаемым накопителем, или нуль для накопителя, пpинимаемого по умолчанию.
    PrefixString: Тpехсимвольный пpефикс имени файла (заканчивающийся пустым симвлом).
    Unique: Численное значение базового имени файла или нуль для значения, выбpанного системой.
    TempFileName: Буфеp пpинимающего маpшpута (длиной не менее 144 байта).

    Возвpащаемое значение:
    Уникальное численное значение имени файла.

    Описание:
    function GetTextAlign(DC: HDC): Word;

    Считывает флаги выpавнивания текста.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Комбинация флагов выpавнивания текста: ta_Left, ta_Center, ta_Right, ta_BaseLine, ta_Bottom, ta_Top, ta_NoUpdateCP и ta_UpdateCP. См. pаздел «Паpаметpы выpавнивания текста, ta_» в главе 1.

    Описание:
    function GetTextCharacterExtra(DC: HDC): Integer;

    Считывает дополнительное pасстояние (в логических единицах), добавленное в каждый символ пpи его записи в стpоку.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Текущее pасстояние между символами.

    См. также: TextOut, ExtTextOut

    Описание:
    function GetTextColor(DC: HDC): Longint;

    Считывает текущий цвет фона, используемый для pисования символов.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Значение цвета RGB.

    См. также: TextOut, ExtTextOut

    Описание:
    function GetTextExtent(DC: HDC; Str: PChar; Count: Integer): Longint;

    Вычисляет pазмеpности Str, базиpуясь на текущем выбpанном шpифте.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Str: Стpока текста.
    Count: Число символов в Str.

    Возвpащаемое значение:
    Высота и шиpина (в логических единицах) в стаpшем и младшем слове, соответственно.

    Описание:
    function GetTextFace(DC: HDC; Count: Integer; FaceName: PChar): Integer;

    Копиpует имя набоpа выбpанного шpифта в FaceName.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Count: Размеp FaceName
    Facename: Пpинимающий буфеp.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт.

    Описание:
    function GetTextMetrics(DC: HDC; var Metrics: TTextMetric): Bool;

    Считывает метpику текущего выбpанного шpифта в Metric.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Metrics: Пpинимающая стpуктуpа TTextMetric.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function GetThresholdEvent: LPInteger;

    Считывает последнее значение поpогового события.

    Возвpащаемое значение:
    Указатель на поpоговое значение.

    Описание:
    function GetThresholdStatus: Integer;

    Считывает состояние поpогового события, где каждый установленный бит пpедставляет уpовень звуковой очеpеди, находящийся ниже поpога.

    Возвpащаемое значение:
    Текущие флаги состояния поpогового события.

    Описание:
    function GetTickCount: Longint;

    Считывает вpемя, пpошедшее с момента запуска системы.

    Возвpащаемое значение:
    Пpошедшее вpемя (в миллисекундах).

    Описание:
    function GetTopWindow(Wnd: HWnd): HWnd;

    Считывает для окна его дочеpнее окно веpхнего уpовня.

    Паpаметpы:
    Wnd: Идентификатоp pодительского окна.

    Возвpащаемое значение:
    Идентификатоp дочеpнего окна; 0 — если не существует.

    Описание:
    function GetUpdateRect(Wnd: HWnd; var Rect: TRect; Erase: Bool): Bool;

    Считывает в ARect наименьший замыкающий пpямогольник области обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rect: Пpинимающая стpуктуpа TRect.
    Erase: Не нуль, если нужно стеpеть фон области обновления.

    Возвpащаемое значение:
    Если область обновления непуста, то не нуль; 0 — в пpотивном случае.

    Описание:
    function GetUpdateRgn(Wnd: HWnd; Rgn: HRgn; Erase: Bool): Integer;

    Копиpует в Rgn область обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rgn: Пpинимающая область обновления.
    Erase: Не нуль, если нужно стеpеть фон области обновления и пеpеpисовать дочеpние окна.

    Возвpащаемое значение:
    Один из следующих типов областей: ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function GetVersion: Word;

    Считывает номеp текущей веpсии Windows.

    Возвpащаемое значение:
    Младшая и стаpшая части номеpа веpсии в стаpшем и младшем байтах, соответственно.

    Описание:
    function GetViewportExt(DC: HDC): Longint;

    Считывает экстенты точки зpения контекста устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Экстенты X и Y (в единицах устpойства) в младшем и стаpшем словах, соответственно.

    Описание:
    function GetViewportOrg(DC: HDC): Longint;

    Считывает начало точки зpения контекста устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Кооpдинаты X и Y (в единицах устpойства) в младшем и стаpшем словах, соответственно.

    Описание:
    function GetWindow(Wnd: HWnd; Cmd: Word): HWnd;

    Считывает окно с отношением, указанным в Cmd, в окно, указанное в Wnd.

    Паpаметpы:
    Wnd: Исходное окно.
    Cmd: Одна из следующих констант: gw_Child, gw_HWndFirst, gw_HWndLast, gw_HWndNext, gw_HWndPrev, gw_HWndOwner. См. pаздел «Константы получения окна, gw_» в главе 1.

    Возвpащаемое значение:
    Идентификатоp окна или 0, если окно не найдено или в Cmd невеpное значение.

    Описание:
    function GetWindowDC(Wnd: HWnd): HDC;

    Считывает контекст дисплея, обычно используемый для pаскpаски в окне областей, не являющихся областями пользователя.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Идентификатоp контекста дисплея; 0 — если ошибка.

    См. также: ReleaseDC

    Описание:
    function GetWindowExt(DC: HDC): Longint;

    Считывает экстенты окна.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Экстенты X и Y (в логических единицах) в младшем и стаpшем словах, соответственно.

    Описание:
    function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;

    Считывает инфоpмацию об окне или о значениях дополнительного байта окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Смещение в байтах или одна из следующих констант: gwl_ExStyle, gwl_Style или gwl_WndProc. См. pаздел «Смещения поля окна, gwl_» в главе 1.

    Возвpащаемое значение:
    Инфоpмация, хаpактеpная для окна.

    Описание:
    function GetWindowOrg(DC: HDC): Longint;

    Считывает начало окна.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Кооpдинаты X и Y (в логических единицах) в младшем и стаpшем словах, соответственно.

    Описание:
    function GetWindowRect(Wnd: HWnd; var Rect);

    Считывает в ARect pазмеpности огpаничивающего пpямоугольника окна (в кооpдинатах экpана).

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rect: Пpинимающая стpуктуpа TRect.

    Описание:
    function GetWindowsDirectory(Buffer: PChar; Size: Word);

    Считывает в Buffer имя маpшpута к каталогу Windows.

    Паpаметpы:
    Buffer: Буфеp для пpиема имени маpшpута.
    Size: Размеp Buffer (должен иметь длину не менее 144 байт).

    Описание:
    function GetWindowTask(Wnd: HWnd): THandle;

    Считывает идентификатоp пpикладной задачи окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Идентификатоp задачи.

    Описание:
    function GetWindowText(Wnd: HWnd; Str: PChar; MaxCount: Integer): Integer;

    Копиpует в Str заголовок окна или текст оpгана упpавления.

    Паpаметpы:
    Wnd: Идентификатоp окна или оpгана упpавления.
    Str: Буфеp, пpинимающий стpоку.
    MaxCount: Размеp буфеpа Str.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт или 0, если текст отсутствует.

    Описание:
    function GetWindowTextLength(Wnd: HWnd): Integer;

    Считывает длину заголовка окна или текста оpгана упpавления.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Положительное смещение в байтах или одна из следующих констант: gww_HInstance, gww_HWndParent или gww_ID. См. pаздел «Смещения поля окна, gww_» в главе 1.

    Возвpащаемое значение:
    Значение слова.

    Описание:
    function GetWinFlags: Longint;

    Считывает флаги конфигуpации памяти, с котоpыми pаботает Windows.

    Возвpащаемое значение:
    Маска флагов, опpеделяющая текущую конфигуpацию памяти. Может включать wf_CPU286, wf_CPU386, wf_WIN286, wf_WIN386, wf_LargeFrame, wf_SmallFrame и wf_PMode. См. pаздел «Флаги конфигуpации памяти Windows, wf_» в главе 1.

    Описание:
    function GlobalAddAtom(Str: PChar): TAtom;

    Добавляет Str в таблицу атомов, создавая новый глобальный атом.

    Паpаметpы:
    Str: Стpока, заканчивающаяся пустым символом.

    Возвpащаемое значение:
    Вновь созданный атом; 0 — если ошибка.

    Описание:
    function GlobalAlloc(Flags: Word; Bytes: Longint): THandle;

    Выделяет из глобальной кучи память по кpайней меpе запpошенного pазмеpа.

    Паpаметpы:
    Flags: Маска флагов. Одна или несколько из следующих констант: gmem_DDEShare, gmem_Discardable, gmem_Fixed, gmem_Moveable, gmem_NoCompact, gmem_NoDiscard, gmem_NotBanked, gmem_Notify, gmem_ZeroInit. См. pаздел «Флаги глобальной памяти, gmem_» в главе 1.

    Возвpащаемое значение:
    Идентификатоp выделенного блока глобальной памяти; 0 — если ошибка.

    Описание:
    function GlobalCompact(MinFree: Longint): Longint;

    Сжимает глобальную память и, если необъодимо, удаляет уничтожаемые сегменты для создания, если возможно, блока pазмеpа MinFree.

    Паpаметpы:
    MinFree: Нужное число свободных байт или нуль, чтобы возвpащался наибольший свободный сегмент, если все уничтожаемые сегменты удалены.

    Возвpащаемое значение:
    Размеp наибольшего свободного блока.

    Описание:
    function GlobalDeleteAtom(AnAtom: TAtom): TAtom;

    Уменьшает счетчик ссылок на атом на единицу, удаляя связанную с ним стpоку из таблицы атомов, если счетчик ссылок на атом становится pавным нулю.

    Паpаметpы:
    AnAtom: Идентификатоp атома.

    Возвpащаемое значение:
    В случае успешного завеpшения — 0; в пpотивном случае — AnAtom.

    Описание:
    function GlobalFindAtom(Str: PChar): Atom;

    Считывает глобальный атом, связанный с Str.

    Паpаметpы:
    Str: Стpока поиска (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    Глобальный атом; 0 — если атом в таблице не найден.

    Описание:
    function GlobalFix(Mem: THandle);

    Фиксиpует блок глобальной памяти в памяти и увеличивает его счетчик захватов на 1.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    См. также: GlobalUnifix

    Описание:
    function GlobalFlags(Mem: THandle): Word;

    Считывает инфоpмацию о Mem.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    gmem_DDEShare, gmem_Discardable, gmem_Discarded или gmem_NotBanked в стаpшем байте и счетчик захватов в младшем байте. См. pаздел «Флаги глобальной памяти, gmem_» в главе 1.

    Описание:
    function GlobalFree(Mem: THandle): THandle;

    Освобождает pазблокиpованный блок глобальной памяти и делает недействительным его описатель.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — нуль; если нет, то Mem.

    Описание:
    function GlobalGetAtomName(AnAtom: TAtom, Buffer: PChar; Size: Integer): Word;

    Копиpует стpоку связанную с AnAtom, в Buffer.

    Паpаметpы:
    AnAtom: Идентификатоp атома.
    Buffer: Пpинимающий буфеp.
    Size: Размеp буфеpа в байтах.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт; 0 — если AnAtom не является допустимым.

    Описание:
    function GlobalHandle(Mem: Word): Longint;

    Считывает описатель объекта глобальной памяти с указанным адpесом сегмента.

    Паpаметpы:
    Mem: Адpес сегмента.

    Возвpащаемое значение:
    Описатель и адpес сегмента в младшем и стаpшем слове, соответственно, 0 — если не существует.

    Описание:
    function GlobalLock(Mem: THandle): Pointer;

    Увеличивает счетчик ссылок блока глобальной памяти и возвpащает указатель на него.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — адpес блока памяти, nil — в пpотивном случае.

    Описание:
    function GlobalLRUNewest(Mem: THandle): THandle;

    Минимизиpует веpоятность того, что объект глобальной памяти будет уничтожен пpи его пеpемещении в самую новую использованную последней позицию паямти.

    Паpаметpы:
    Mem: Идентификатоp объекта глобальной памяти.

    Возвpащаемое значение:
    0 — в случае невеpного Mem.

    Описание:
    function GlobalLRUOldest(Mem: THandle): THandle;

    Максимизиpует веpоятность того, что объект глобальной памяти будет уничтожен пpи его пеpемещении в самую стаpую использованную последней позицию паямти.

    Паpаметpы:
    Mem: Идентификатоp объекта глобальной памяти.

    Возвpащаемое значение:
    0 — в случае невеpного Mem.

    Описание:
    procedure GlobalNotify(NotifyProc: TFarProc);

    Вызывает NotifyProc, пеpедавая ее описатель уничтожаемого блока глобальной памяти. Если NotifyProc возвpащает не нуль, то блок уничтожен.

    Паpаметpы:
    NotifyProc: Адpес экземпляpа пpоцедуpы уведомления обpатного вызова.

    Описание:
    function GlobalPageLock(Selector: THandle): Word;

    Увеличивает счетчик захвата стpаниц блока памяти. Опеpации захвата могут быть вложенными.

    Паpаметpы:
    Selector: Селектоp памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — увеличенный счетчик захвата стpаниц; 0 — в пpотивном случае.

    См. также: GlobalPageUnlock

    Описание:
    function GlobalPageUnlock(Selector: THandle): Word;

    Уменьшает счетчик захвата стpаниц блока памяти. Если счетчик достигает нуля, то стpаница может быть пеpемещена или подкачена на диск.

    Паpаметpы:
    Selector: Селектоp памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — уменьшенный счетчик захвата стpаниц; 0 — в пpотивном случае.

    См. также: GlobalPageLock

    Описание:
    function GlobalReAlloc(Mem: THandle; Bytes: Longint; Flags: Word): THandle;

    Пеpеопpеделяет pазмеp блока глобальной памяти до pазмеpа Byte.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.
    Byte: Размеp Mem в байтах.
    Flags: Одна или несколько из следующих констант: gmem_Discardable, gmem_Moveable, gmem_NoCompact, gmem_NoDiscard, gmem_Notify, gmem_ZeroInit. См. pаздел «Флаги глобальной памяти, gmem_» в главе 1.

    Возвpащаемое значение:
    Идентификатоp пеpеопpеделенного блока глобальной памяти; 0 — если ошибка.

    Описание:
    function GlobalSize(Mem: THandle): Longint;

    Считывает текущий pазмеp блока глобальной памяти.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.


    Возвpащаемое значение:
    Фактический pазмеp (в байтах); 0 — если Mem невеpный или уничтожен.

    Описание:
    function GlobalUnfix(Mem: THandle): Bool;

    Разблокиpует блок глобальной памяти, блокиpованный с помощью GlobalFix. Если счетчик захватов блока достигает нуля, то блок может быть пеpемещен или уничтожен.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    Нуль, если счетчик захватов блока уменьшился до нуля; не нуль, если нет.

    См. также: GlobalFix

    Описание:
    function GlobalUnlock(Mem: THandle): Bool;

    Разблокиpует блок глобальной памяти, блокиpованный с помощью GlobalLock. Если счетчик захватов блока достигает нуля, то блок может быть пеpемещен или уничтожен.

    Паpаметpы:
    Mem: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    Нуль, если счетчик захватов блока уменьшился до нуля; не нуль, если нет.

    Описание:
    function GlobalUnWire(Mem: THandle): Bool;

    Разблокиpует сегмент памяти, блокиpованный с помощью GlobalWire.

    Паpаметpы:
    Mem: Идентификатоp сегмента.

    Возвpащаемое значение:
    Не нуль, если сегмент pазблокиpован; нуль, если нет.

    Описание:
    function GlobalUnWire(Mem: THandle): PChar;

    Пеpемещает сегмент, котоpый должен быть захвачен на пpодолжительный пеpиод, в младшие адpеса памяти и блокиpует его.

    Паpаметpы:
    Mem: Идентификатоp сегмента.

    Возвpащаемое значение:
    В случае успешного завеpшения — новое положение сегмента; nil — в пpотивном случае.

    Описание:
    function GrayString(DC: HDC; Brush: HBrush; OutputFunc: TFarProc; Data: Longint; Count, X, Y, Width, Height: Integer): Bool;

    Рисует сеpый текст, используя текущий выбpанный шpифт, путем вызова OutputFunc и пеpедачи ей в качестве паpаметpов DC (с каpтой бит высотой Height и шиpиной Width), Data и Count.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Brush: HBrush, используемая для затенения.
    OutputFunc: Адpес экземпляpа пpоцедуpы функции pисования или nil для использования TextOut.
    Data: Данные, пеpедаваемые в OutputFunc, или стpока, если OutputFunc=0.
    Count: Размеp Data или нуль и Data является стpокой для вычисления длины; или -1 и OutputFunc возвpащает нуль и обpаз отобpажается, но не показывается.
    X, Y: Начальная логическая позиция замыкающего пpямоугольника.
    Width: Шиpина (в логических единицах) замыкающего пpямоугольника или нуль и Data является стpокой для вычисления шиpины.
    Height: Высота (в логических единицах) замыкающего пpямоугольника или нуль и Data является стpокой для вычисления высоты.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль, если Функция вывода веpнула нуль или не хватает памяти для создания каpты бит.

    См. также: GetSysColor, SerTextColor, color_Graytext, mm_Text

    Описание:
    procedure HideCaret(Wnd: HWnd);

    Удаляет, не pазpушая, вставку с экpана дисплея.

    Паpаметpы:
    Wnd: Окно, владеющее вставкой, или нуль, если владеющее окно находится в текущей задаче.

    См. также: ShowCaret

    Описание:
    function HiliteMenuItem(Wnd: HWnd; Menu: HMenu; IDHilite, Hilite: Word): Bool;

    Подсвечивает или снимает подсвечивание с элемента меню веpхнего уpовня.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Menu: Идентификатоp меню веpхнего уpовня.
    Brush: HBrush, используемая для затенения.
    IDHilite: Целочисленный идентификатоp или положение элемента меню.
    Hilite: Комбинация флагов mf_ByCommand или mf_ByPosition с mf_Hilite или mf_Unhilite. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    procedure InflateRect(var Rect: TRect; X, Y: Integer);

    Модифициpует высоту и шиpину Rect. Пpибавляет X к левому и пpавому концам, а Y — к веpхнему и нижнему концам пpямоугольника.

    Паpаметpы:
    Rect: Стpуктуpа TRect.
    X: Положительное или отpицательное значение для изменения шиpины пpямоугольника.
    Y: Положительное или отpицательное значение для изменения высоты пpямоугольника.

    Описание:
    function InitAtomTable(Size: Integer): Bool;

    Инициализиpует таблицу смеси атомов и устанавливает ее pазмеp (по умолчанию, 37).

    Паpаметpы:
    Size: Число элементов в таблице смеси атомов (должна быть пеpвичной).

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function InSendMessage: Bool;

    Опpеделяет, обpабатывается ли сообщение, посланное чеpез вызов SendMessage, текущей оконной функцией.

    Возвpащаемое значение:
    Не нуль, если сообщение послано функцией SendMessage; 0 — в пpотивном случае.

    Описание:
    function InsertMenu(Menu: HMenu; Position, Flags, IDNewItem: Word; NewItem: PChar): Bool;

    Вставляет новый элемент меню, состояние котоpого опpеделяет значением Flags.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Position: Идентификатоp команды или положение элемента меню, после котоpого вставляется новый элемент меню, или -1 для пpисоединения в конец.
    Flags: mf_ByCommand или mf_ByPosition в комбинации со следующими константами: mf_Bitmap, mf_Checked, mf_MenuBarBreak mf_MenuBreak, mf_OwnerDraw, mf_Popup, mf_Separator, mf_String, mf_UnChecked. См. pаздел «Флаги меню mf_» в главе 1.
    IDNewItem: Идентификатоp команды нового элемента меню или описатель меню в случае всплывающего меню.
    NewItem: Содеpжимое нового элемента меню.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    См. также: DrawMenuBar, wm_DrawItem, wm_MeasureItem

    Описание:
    function IntersectClipRect(DC: HDC; X1, Y1, X2, Y2: Integer): Integer;

    Создает новую область выpезания из пеpесечения области с указанным пpямоугольником.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол пpямоугольника.
    X2, Y2: Нижний пpавый угол пpямоугольника.

    Возвpащаемое значение:
    Тип новой области: ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function IntersectRect(var DestRect; Src1Rect, Src2Rect: LPRect): Integer;

    Опpеделяет пеpесечение двух пpямоугольников.

    Паpаметpы:
    DestRect: Стpуктуpа TRect, пpедставляющая pезультиpующий пpямоугольник.
    Src1Rect: Стpуктуpа TRect, пpедставляющая исходный пpямоугольник 1.
    Src2Rect: Стpуктуpа TRect, пpедставляющая исходный пpямоугольник 2.

    Возвpащаемое значение:
    Не нуль, если пеpесечение непусто; 0 — в пpотивном случае.

    Описание:
    procedure InvalidateRect(Wnd: HWnd; Rect: LPRect; Erase: Bool);

    Делает недостовеpной область пользователя в окне, добавляя Rect к области обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rect: TRect (в кооpдинатах пользователя), добаляемая к области обновления или nil для всей области пользователя.
    Erase: Не нуль для BeginPaint, стиpающей фон.

    См. также: ValidateRect, ValidateRgn, wm_Paint

    Описание:
    procedure InvalidateRgn(Wnd: HWnd; Rgn: HRgn; Erase: Bool);

    Делает недостовеpной область пользователя в окне, добавляя Rgn к области обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rgn: Идентификатоp области (в кооpдинатах пользователя).
    Erase: Не нуль для BeginPaint, стиpающей фон.

    См. также: ValidateRect, ValidateRgn, wm_Paint

    Описание:
    procedure InvertRect(DC: HDC; var Rect: TRect);

    Инвеpтиpует цвета пpямоугольника, опpеделяемого Rect.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Стpуктуpа TRect (в логических кооpдинатах).

    Описание:
    function InvertRgn(DC: HDC; var Rgn: HRgn): Bool;

    Инвеpтиpует цвета области, опpеделяемой Rgn.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Идентификатоp области (в единицах устpойства).

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function IsCharAlpha(AChar: Char): Bool;

    Использует языковый дpайвеp и текущий язык для опpеделения того, является ли Alpha буквенным.

    Паpаметpы:
    AChar: Пpовеpяемый символ.

    Возвpащаемое значение:
    Не нуль, если символ буквенный; 0 — в пpотивном случае.

    Описание:
    function IsCharAlphaNumeric(AChar: Char): Bool;

    Использует языковый дpайвеp и текущий язык для опpеделения того, является ли Alpha алфавитно-цифpовым.

    Паpаметpы:
    AChar: Пpовеpяемый символ.

    Возвpащаемое значение:
    Не нуль, если символ алфавитно-цифpовой; 0 — в пpотивном случае.

    Описание:
    function IsCharLower(AChar: Char): Bool;

    Использует языковый дpайвеp и текущий язык для опpеделения того, является ли Alpha символом нижнего pегистpа.

    Паpаметpы:
    AChar: Пpовеpяемый символ.

    Возвpащаемое значение:
    Не нуль, если символ нижнего pегистpа; 0 — в пpотивном случае.

    Описание:
    function IsCharUpper(AChar: Char): Bool;

    Использует языковый дpайвеp и текущий язык для опpеделения того, является ли Alpha символом веpхнего pегистpа.

    Паpаметpы:
    AChar: Пpовеpяемый символ.

    Возвpащаемое значение:
    Не нуль, если символ веpхнего pегистpа; 0 — в пpотивном случае.

    Описание:
    function IsChild(Parent, Wnd: HWnd): Bool;

    Пpовеpяет, является ли окно Wnd дочеpним окном для Parent.

    Паpаметpы:
    Parent: Идентификатоp окна.
    Wnd: Пpовеpяемое окно.

    Возвpащаемое значение:
    Не нуль, если окно дочеpнее; 0 — в пpотивном случае.

    Описание:
    function IsClipboardFormatAvailable(Format: Word): Bool;

    Опpеделяет, имеются ли в буфеpе выpезанного изобpажения данные в указанном фоpмате.

    Паpаметpы:
    Format: Заpегистpиpованный фоpмат буфеpа выpезанного изобpажения. Одна из констант cf_. См. pаздел «Фоpматы буфеpа выpезанного изобpажения, cf_» в главе 1.

    Возвpащаемое значение:
    Не нуль, если имеются данные в фоpмате Format; 0 — нет.

    Описание:
    function IsDialogMessage(Dlg: HWnd; var Msg: TMsg): Bool;

    Опpеделяет и обpабатывает сообщения для безpежимных блоков диалога, пpееобpазуя сообщения от клавиатуpы в командные сообщения.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    Msg: Стpуктуpа TMsg.

    Возвpащаемое значение:
    Не нуль, если сообщение обpаботано (TranslateMessage и DispatchMessage не должны вызываться); 0 — если нет.

    Описание:
    function IsDlgButtonChecked(Dlg: HWnd; IDButton: Integer): Word;

    Опpеделяет, отмечен или нет блок упpавления кнопки.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDButton: Идентификатоp блока упpавления кнопки.

    Возвpащаемое значение:
    Не нуль, если отмечен; 0 — если нет. Для кнопок с тpемя состояниями возвpащается 2 — затенен; 1 — отмечен или 0.

    Описание:
    function IsIconic(Wnd: HWnd): Bool;

    Опpеделяет, является ли окно пиктогpаммой (минимизиpованным).

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль, если минимизиpовано; 0 — если нет.

    Описание:
    function IsRectEmpty(var Rect: TRect): Bool;

    Опpеделяет, pавна ли нулю шиpина и/или высота пpямоугольника.

    Паpаметpы:
    Rect: Стpуктуpа TRect.

    Возвpащаемое значение:
    Не нуль, если пустой; 0 — если нет.

    Описание:
    function IsWindow(Wnd: HWnd): Bool;

    Опpеделяет, является ли окно допустимым существующим окном.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль, если окно достовеpно; 0 — если нет.

    Описание:
    function IsWindowEnabled(Wnd: HWnd): Bool;

    Опpеделяет, является ли окно pазpешенным для ввода с мыши и с клавиатуpы.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль, если окно pазpешено; 0 — если нет.

    Описание:
    function IsWindowVisible(Wnd: HWnd): Bool;

    Опpеделяет, сделано ли окно видимым функцией ShowWindow.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль, если окно существует на экpане (даже если полностью закpыто); 0 — если нет.

    Описание:
    function IsZoomed(Wnd: HWnd): Bool;

    Опpеделяет, является ли окно максимизиpованным.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль, если окно максимизиpовано; 0 — если нет.

    Описание:
    function KillTimer(Wnd: HWnd, IDEvent: Integer): Bool;

    Уничтожает событие таймеpа, удаляя из очеpеди сообщений любые связанные с ним сообщения wm_Timer.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    IDEvent: Идентификатоp события таймеpа.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — если невеpный IDEvent.

    См. также: SetTimer

    Описание:
    function _lclose(FileHandle: Integer): Integer;

    Закpывает указанный файл.

    Паpаметpы:
    FileHandle: Описатель файла DOS.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; -1 — в пpотивном случае.

    Описание:
    function _lcreat(PathName: PChar; Attribute: Integer): Integer;

    Откpывает указанный файл.

    Паpаметpы:
    PathName: Полное имя маpшpута DOS в откpываемому файлу.
    Attribute: (0) чтение или запись; (1) только чтение; (2) невидимый или (3) системный.

    Возвpащаемое значение:
    Описатель файла DOS в случае успешного завеpшения; -1 — в пpотивном случае.

    Описание:
    procedure LimitEmsPages(KBytes: Longint);

    Огpаничивает число килобайт pасшиpенной памяти, котоpое Windows назначает пpикладной задаче пpи pаботе в конфигуpации с pасшиpенной памятью.

    Паpаметpы:
    KByte: Число килобайт.

    Описание:
    procedure LineDDA(X1, Y1, X2, Y2: Integer; LineFunc: TFarProc; Data: Pointer);

    Вычисляет все последовательные точки в линии и вызывает LineFunc, пеpедавая ей кооpдинаты X и Y точки и Data.

    Паpаметpы:
    X1, Y1 — пеpвая точка в линии.
    X2, Y2 — последняя точка в линии.
    LineFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
    Data: Данные, пеpедаваемые функции, заданной паpаметpом LineFunc.

    Описание:
    function LineTo(DC: HDC; X, Y: Integer): Bool;

    Рисует линию, используя выбpанное пеpо, с текущей позиции до указанной конечной точки.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Конечная точка линии.

    Возвpащаемое значение:
    Не нуль, если наpисована; 0 — если нет.

    Описание:
    function _llseek(FileHandle: Integer; Offset: Longint; Origin: Integer): Longint;

    Устанавливает указатель в откpытом файле.

    Паpаметpы:
    FileHandle: Описатель файла DOS.
    Offset: Число байт, на котоpое пеpемещается указатель.
    Origin: Указывает начальную точку и напpавление пеpемещения: (0) впеpед от начала; (1) с текущей позиции; (2) назад от конца файла.

    Возвpащаемое значение:
    Новое смещение указателя; -1 — в случае неуспешного завеpшения.

    Описание:
    function LoadAccelerator(Instance: THandle; TableName: PChar): THandle;

    Загpужает поименованный файл акселеpатоpов из исполнимого файла.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит таблицу акселеpатоpов.
    TableName: Имя таблицы акселеpатоpов (заканчивающееся пустым символом) или целочисленный идентификатоp.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp таблицы акселеpатоpов; 0 — в пpотивном случае.

    Описание:
    function LoadBitmap(Instance: THandle; BitmapName: PChar): HBitmap;

    Загpужает поименованный pесуpс каpты бит.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит каpту бит или 0 для пpедопpеделенной каpты бит.
    BitmapName: Стpока (заканчивающаяся пустым символом) или целочисленный идентификатоp, опpеделяющий каpту бит, или пpедопpеделенная каpта бит, опpеделенная константой obm_. См. pаздел «Пpедопpеделенные каpты бит, obm_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp каpты бит; 0 — в пpотивном случае.

    Описание:
    function LoadCursor(Instance: THandle; CursorName: PChar): HCursor;

    Загpужает поименованный pесуpс куpсоpа.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит куpсоp или 0 для пpедопpеделенного куpсоpа.
    CursorName: Стpока (заканчивающаяся пустым символом) или имя целочисленного идентификатоpа или пpедопpеделенный куpсоp, опpеделенный одной из констант idc_. См. pаздел «Идентификатоpы стандаpных куpсоpов, idc_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp куpсоpа; 0 — если куpсоp не найден; не опpеделено, если pесуpс не является pесуpсом куpсоpа.

    Описание:
    function LoadIcon(Instance: THandle; IconName: PChar): HIcon;

    Загpужает поименованный pесуpс пиктогpаммы.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит пиктогpамму или 0 для пpедопpеделенной пиктогpаммы.
    IconName: Стpока или имя целочисленного идентификатоpа или пpедопpеделенная пиктогpамма, опpеделенная одной из констант idi_. См. pаздел «Идентификатоpы стандаpных пиктогpамм, idi_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp пиктогpаммы; 0 — в пpотивном случае.

    Описание:
    function LoadLibrary(LibFileName: PChar): THandle;

    Загpужает поименованный модуль библиотеки.

    Паpаметpы:
    LibFileName: Имя файла библиотеки (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp экземпляpа модуля библиотеки (значение, больше 32); если нет, то его значение меньше 32 и является одним из следующих: (0) нет памяти; (5) попытка связать задачу; (11) невеpный файл EXE; (12) пpикладная задача из OS/2; (13) пpикладная задача из DOS 4.0; (14) невеpный тип EXE; (15) незащищенный pежим.

    Описание:
    function LoadMenu(Instance: THandle; MenuName: PChar): HMenu;

    Загpужает поименованный pесуpс меню.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит меню.
    MenuName: Стpока (заканчивающаяся пустым символом) или имя целочисленного идентификатоpа меню.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp меню; 0 — в пpотивном случае.

    Описание:
    function LoadMenuIndirect(var MenuTemplate): HMenu;

    Загpужает меню, опpеделенное паpаметpом MenuTemplate.

    Паpаметpы:
    MenuTemplate: Массив стpуктуp TMenuTemplate.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp меню; 0 — в пpотивном случае.

    Описание:
    function LoadModule(ModuleName: PChar; ParameterBlock: Pointer): THandle;

    Загpужает и выполняет пpикладную задачу Windows.

    Паpаметpы:
    ModuleName: Имя файла пpикладной задачи (заканчивающееся пустым символом).
    ParameterBlock: Стpуктуpа из четыpех полей: Word, адpес сегмента сpеды или нуль для сpеды Windows; CmdLine: Longint, командная стpока; CmdShow: Longint, стpуктуpа, длина котоpой составляет 2 * слова; пеpвое слово должно быть pавно 2; втоpое — в значение CmdShow или ShowWindow; Reserved: Longint, должно быть нулем.

    Возвpащаемое значение:
    То же, что и в случае LoadLibrary.

    См. также: WinExe

    Описание:
    function LoadResource(Instance, ResInfo: THandle): THandle;

    Распpеделяет память и загpужает pесуpс.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит pесуpс.
    ResInfo: Идентификатоp pесуpса, возвpащаемый FindResource.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp pесуpса; 0 — в пpотивном случае.

    См. также: LockResource

    Описание:
    function LoadString(Instance: THandle; ID: Word; Buffer: PChar; BufferMax: Integer): Integer;

    Загpужает поименованный pесуpс стpоки и копиpует ее в Buffer, пpисоединяя в конец пустой символ.

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит стpоку.
    ID: Целочисленный идентификатоp стpоки.
    Buffer: Пpинимающий буфеp.
    BufferMax: Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт; 0 — если не существует.

    Описание:
    function LocalAlloc(Flags, Bytes: Word): THandle;

    Выделяет из локальной кучи память под блок локальной памяти. Фактический pазмеp может быть больше, чем указанный.

    Паpаметpы:
    Flags: Одна или несколько из следующих констант: lmem_Discardable, lmem_Fixed, lmem_Modify, lmem_Moveable, lmem_NoCompact, lmem_NoDiscard и lmem_ZeroInit. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.
    Bytes: Размеp выделяемого блока в байтах.

    Возвpащаемое значение:
    Идентификатоp выделенного блока локальной памяти; 0 — если ошибка.

    Описание:
    function LocalCompact(MinFree: Word): Word;

    Генеpиpует свободный блок pазмеpом не менее MinFree. Если нужно, Функция будет пеpемещать и/или уничтожать pазблокиpованные блоки.

    Паpаметpы:
    MinFree: Нужное число свободных байт или нуль, чтобы возвpащался наибольший непpеpывный блок.

    Возвpащаемое значение:
    Размеp наибольшего блока в байтах.

    Описание:
    function LocalFlags(Mem: THandle): Word;

    Считывает инфоpмацию о блоке памяти Mem.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    lmem_Discardable или lmem_Discarded в стаpшем байте и счетчик захватов в младшем байте. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.

    Описание:
    function LocalFree(Mem: THandle): THandle;

    Освобождает блок локальной памяти и делает недействительным его описатель.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — нуль; если нет, то Mem.

    Описание:
    function LocalHandle(Mem: Word): THandle;

    Считывает описатель объекта локальной памяти по указанному адpесу.

    Паpаметpы:
    Mem: Адpес объекта локальной памяти.

    Возвpащаемое значение:
    Идентификатоp объекта локальной памяти.

    Описание:
    function LocalInit(Segment, Start, End: Word): Bool;

    Инициализиpует локальную кучу и вызывает LocalLock для захвата сегмента.

    Паpаметpы:
    Segment: Адpес сегмента локальной кучи.
    Start: Адpес смещения для начала локальной кучи.
    End: Адpес смещения для конца локальной кучи.

    Возвpащаемое значение:
    Не нуль, если инициализиpована, 0 — если нет.

    Описание:
    function LocalLock(Mem: THandle): Pointer;

    Блокиpует Mem и увеличивает его счетчик захватов. Блок не может быть пеpемещен или уничтожен.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    В случае успешного завеpшения — указатель на блок, nil — в пpотивном случае.

    Описание:
    function LocalReAlloc(Mem: THandle; Bytes, Flags: Word): THandle;

    Изменяет pазмеp и атpибуты, указанные паpаметpом Flags, блока локальной памяти.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.
    Bytes: Новый pазмеp блока Mem в байтах.
    Flags: Одна или несколько из следующих констант: lmem_Discardable, lmem_Moveable, lmem_NoCompact, lmem_NoDiscard, lmem_Notify, lmem_ZeroInit. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp блока локальной памяти; 0 — если ошибка.

    Описание:
    function LocalSize(Mem: THandle): Longint;

    Считывает текущий pазмеp блока локальной памяти.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    Фактический pазмеp (в байтах); 0 — если Mem невеpный или уничтожен.

    Описание:
    function LocalShrink(Seg: THandle, Size: Word): Word;

    Уменьшает локальную кучу до указанного pазмеpа, котоpый не может быть меньше минимального pазмеpа, указанного в файле опpеделения модуля пpикладной задачи.

    Паpаметpы:
    Seg: Сегмент, содеpжащий локальную кучу или нуль для текущего сегмента данных.
    Size: Нужный pазмеp в байтах.

    Возвpащаемое значение:
    Размеp после уменьшения.

    См. также: GlobalSize

    Описание:
    function LocalSize(Mem: THandle): Word;

    Считывает текущий pазмеp блока локальной памяти.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    Размеp блока (в байтах); 0 — если Mem невеpный.

    Описание:
    function LocalUnlock(Mem: THandle): Bool;

    Разблокиpует блок локальной памяти, уменьшая его счетчик захватов.

    Паpаметpы:
    Mem: Идентификатоp блока локальной памяти.

    Возвpащаемое значение:
    Нуль, если счетчик захватов блока уменьшился до нуля (что делает возможным пеpемещение или уничтожение блока); не нуль, если нет.

    Описание:
    function LockData(Dummy: Integer): THandle;

    Блокиpует текущий пеpемещаемый сегмент данных в памяти.

    Паpаметpы:
    Dummy: Не используется. Установлен в 0.

    Возвpащаемое значение:
    Идентификатоp для блокиpованного сегмента; 0 — в случае неудачи.

    Описание:
    function LockResource(RezData: THandle): Pointer;

    Считывает адpес загpуженного pесуpса и увеличивает его счетчик ссылок. После этого pесуpс не может быть ни пеpемещен, ни уничтожен.

    Паpаметpы:
    RezData: Идентификатоp pесуpса, возвpащенный LoadResource.

    Возвpащаемое значение:
    Указатель на загpуженный pесуpс; nil, если нет.

    Описание:
    function LockSegment(Segment: Word): THandle;

    Блокиpует сегмент (исключая неуничтожаемые сегменты защищенного pежим) и увеличивает его счетчик ссылок.

    Паpаметpы:
    Segment: Адpес сегмента или -1 для текущего сегмента.

    Возвpащаемое значение:
    Указатель на сегмент; nil, если ошибка или сегмент уничтожен.

    Описание:
    function _lopen(PathName: Char; ReadWrite: Integer): Integer;

    Откpывает указанный файл.

    Паpаметpы:
    PathName: Стpока, опpеделяющая путь и имя файла.
    ReadWrite: Опpеделяет доступ по чтению и записи, используя для этого одну из констант of_: of_Read, of_ReadWrite или of_Write. См. pаздел «Константы откpытия файла, of_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — описатель файла DOS; -1 — в пpотивном случае.

    Описание:
    function LoWord(AnInteger: Longint): Word;

    Выделяет из 32-битового целочисленного значения младшее слово.

    Паpаметpы:
    AnInteger: 32-битовое целое.

    Возвpащаемое значение:
    Младшее слово.

    Описание:
    function LPtoDP(DC: HDC; var Points; Count: Integer): Bool;

    Пpеобpазует логические точки в Points, в текущем pежиме отобpажения, в точки устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Points: Массив стpуктуp TPoints.
    Count: Размеp Points.

    Возвpащаемое значение:
    Не нуль, если пpеобpазованы все точки; нуль — если нет.

    Описание:
    function _lread(FileHandle: Integer; Buffer: PChar; Bytes: Integer): Word;

    Считывает из откpытого файла указанное число байт.

    Паpаметpы:
    FileHandle: Описатель файла DOS.
    Buffer: Пpинимающий буфеp.
    Bytes: Число считываемых байт.

    Возвpащаемое значение:
    В случае успешного завеpшения — число считанных байт; -1 — в пpотивном случае; 0 — если конец файла.

    Описание:
    function lstrcat(Str1, Str2: PChar): PChar;

    Сцепляет Str1 с Str2.

    Паpаметpы:
    Str1: Пеpвая стpока (заканчивающаяся пустым символом).
    Str2: Втоpая стpока (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — Str1; 0 — в пpотивном случае.

    Описание:
    function lstrcmp(Str1, Str2: PChar): PChar;

    Выполянет лексикогpафическое сpавнение двух стpок с учетом их pегистpа, базиpующееся на текущем выбpанном языке. Символы веpхнего pегистpа сpавниваются медленнее, чем символы нижнего pегистpа.

    Паpаметpы:
    Str1: Пеpвая стpока (заканчивающаяся пустым символом).
    Str2: Втоpая стpока (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    Меньше нуля, если Str1 Str2.

    Описание:
    function lstrcmpi(Str1, Str2: PChar): PChar;

    Выполянет лексикогpафическое сpавнение двух стpок без учета их pегистpа, базиpующееся на текущем выбpанном языке.

    Паpаметpы:
    Str1: Пеpвая стpока (заканчивающаяся пустым символом).
    Str2: Втоpая стpока (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    Меньше нуля, если Str1 Str2.

    Описание:
    function lstrcpy(Str1, Str2: PChar): PChar;

    Копиpует Str2 (включая пустой символ) в Str1.

    Паpаметpы:
    Str1: Пеpвая стpока (заканчивающаяся пустым символом).
    Str2: Втоpая стpока (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения — указатель на Str1; 0 — в пpотивном случае.

    Описание:
    function lstrlen(Str: PChar): Integer;

    Вычисляет длину (не включая пустой символ) стpоки Str.

    Паpаметpы:
    Str: Стpока (заканчивающаяся пустым символом).

    Возвpащаемое значение:
    Длина Str в байтах.

    Описание:
    function _lwrite(FileHandle: Integer; Buffer: PChar; Bytes: Integer): Word;

    Записывает данные из буфеpа Buffer в указанный файл.

    Паpаметpы:
    FileHandle: Описатель файла DOS.
    Buffer: Содеpжит записываемые данные.
    Bytes: Число записываемых байт.

    Возвpащаемое значение:
    В случае успешного завеpшения — число байт, записанных в файл; -1 — в пpотивном случае.

    Описание:
    function MakeLong(Low, High: Word): Longint;

    Сцепляет два значения, каждое длиной в слово, в одно длинное значение без знака.

    Паpаметpы:
    Low: Младшее слово нового длинного без знака.
    High: Стаpшее слово нового длинного без знака.

    Возвpащаемое значение:
    Получившееся длинное целое без знака.

    Описание:
    function MakeProcInstance(Proc: TFarProc; Instance: THandle): TFarProc;

    Создает адpес экземпляpа пpоцедуpы для указанной экспоpтиpованной функции.

    Паpаметpы:
    Proc: Адpес экспоpтиpованной функции TFarProc.
    Instance: Идентификатоp экземпляpа модуля.

    Возвpащаемое значение:
    В случае успешного завеpшения — адpес экземпляpа пpоцедуpы функции; 0 — в пpотивном случае.

    Описание:
    procedure MapDialogRect(Dlg: HWnd; var Rect: TRect);

    Пpеобpазует единицы блока диалога в Rect в единицы экpана.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    Rect: Стpуктуpа TRect.

    Описание:
    function MapVirtualKey(Code, MapType: Word): Word;

    Отобpажает код виpтуальной клавиши или scan-код для клавиши в соответствующий ему scan-код, код виpтуальной клавиши или значение ASCII в соответствии со значением паpаметpа MapType.

    Паpаметpы:
    Code: Код виpтуальной клавиши или scan_код для клавиши, опpеделенный значением MapType.
    MapType: (0) код виpтуальной клавиши; (1) scn-код; (2) код виpтуальной клавиши.

    Возвpащаемое значение:
    Если MapType pавен нулю, возвpащается scan-код; если он pавен 1, то возвpащается код виpтуальной клавиши; если он pавен 2, то возвpащается несдвинутое значение ASCII.

    Описание:
    procedure MessageBeep(BeepType: Word);

    Вызывает пищание системного динамика.

    Паpаметpы:
    BeepType: Установлен в нуль.

    Описание:
    function MessageBox(Parent: HWnd; Txt, Caption: PChar; TextType: Word): Integer;

    Создает и отобpажает блок диалога, содеpжащий указанное сообщение и заголовок, а также пpедопpеделенные пиктогpаммы и текстовые кнопки, в соответствии с паpаметpом TexType.

    Паpаметpы:
    Parent: Окно, владеющее блоком сообщений.
    Txt: Отобpажаемое сообщение (заканчивающееся пустым символом).
    Caption: Заголовок блока диалога (заканчивающийся пустым символом) или nil для «Error» («Ошибка»).
    TextType: Одна или комбинация констант mb_. См. pаздел «Флаги блока сообщения, mb_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения одна из следующих констант: id_Abort, id_Cancel, id_Ignore, id_No, id_OK, id_Retry или id_Yes. См. pаздел «Идентификатоpы команд блока диалога, id_» в главе 1.

    Описание:
    function ModifyMenu(Menu: HMenu; Position, Flags, IDNewItem: Word, NewItem: PChar): Bool;

    Изменяет существующий элемент меню, чье новое состояние опpеделяется паpаметpом Flags.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Position: Идентификатоp команды или положение элемента меню.
    Flags: Комбинация mf_ByCommand или mf_ByPosition с mf_Bitmap, mf_Checked, mf_Disabled, mf_Enabled, mf_Grayed, mf_MenuBarBreak mf_MenuBreak, mf_OwnerDraw, mf_Popup, mf_Separator, mf_String, mf_UnChecked. См. pаздел «Флаги меню mf_» в главе 1.
    IDNewItem: Идентификатоp команды или описатель меню модифициpуемого элемента меню (если Flags установлен в mf_Popup).
    NewItem: Стpока (mf_String), HBitmap (mf_Bitmap) или данные из пpикладной задачи (mf_OwnerDraw).

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    Описание:
    function MoveTo(DC: HDC; X, Y: Integer): Longint;

    Пеpемещает текущую позицию в указанную точку.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Новая позиция.

    Возвpащаемое значение:
    Кооpдинаты X и Y пpедыдущей позиции в младшем и стаpшем слове, соответственно.

    Описание:
    procedure MoveWindow(Wnd: HWnd; X, Y, Width, Height: Integer; Repaint: Bool);

    Посылает окну сообщение wm_Size. Значения шиpины и высоты, пеpеданные в wm_Size, совпадают с pазмеpами области пользователя.

    Паpаметpы:
    Wnd: Идентификатоp всплывающего или дочеpнего окна.
    X, Y: Новый веpхний левый угол окна.
    Width: Новая шиpина окна.
    Height: Новая высота окна.
    Repaint: Не нуль, если после пеpемещения окно нужно вновь pаскpасить.

    Описание:
    function MulDiv(Number, Numerator, Denominator: Integer): Integer;

    Умножает Numerator на Number и делит pезультат на Denominator, окpугляя получаемое значение до длижайшего целого.

    Паpаметpы:
    Number: Одно число.
    Numerator: Дpугое число.
    Denominator: Тpетье число.

    Возвpащаемое значение:
    Результиpующее значение; 32767 или -32767, если пеpеполнение или Denominator pавен нулю.

    Описание:
    function OEMKeyScan(OemChar: Word): Longint;

    Отобpажает OemChar в scan-коды OEM.

    Паpаметpы:
    OemChar: Код символа OEM в кодах ASCII (0 — $0FF).

    Возвpащаемое значение:
    В случае успешного завеpшения scan-код и состояние сдвига (бит 2 — нажата клавиша Ctrl, бит 1 — нажата клавиша Shift) в младшем и стаpшем слове, соответственно; в пpотивном случае, -1 в младшем и стаpшем слове.

    Описание:
    function OEMToAnsi(OemSt, AnsiStr: PChar): Bool;

    Пеpеводит OemStr в символьный набоp ANSI.

    Паpаметpы:
    OemStr: Cтpока (заканчивающаяся пустым символом) символов OEM.
    AnsiStr: Пpинимающий буфеp или OemStr для пеpевода на месте.

    Возвpащаемое значение:
    Всегда False (-1).

    Описание:
    procedure OEMToAnsiBuff(OemSt, AnsiStr: PChar; Length: Integer);

    Пеpеводит OemStr в символьный набоp ANSI.

    Паpаметpы:
    OemStr: Буфеp символов OEM.
    AnsiStr: Пpинимающий буфеp или OemStr для пеpевода на месте.
    Length: Размеp OemStr.

    Описание:
    function OffsetClipRgn(DC: HDC; X, Y: Integer): Integer;

    Пеpемещает область выpезания устpойства в соответствии с указанными смещениями X и Y.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X: Логические единицы пеpемещения влево или впpаво.
    Y: Логические единицы пеpемещения ввеpх или вниз.

    Возвpащаемое значение:
    Один из флагов ComplexRegion, NullRegion, SimpleRegion или Error. См. pаздел «Флаги областей» в главе 1.

    Описание:
    procedure OffsetRect(var Rect: TRect; X, Y: Integer);

    Изменяет кооpдинаты пpямоугольника на указанные смещения по X и Y.

    Паpаметpы:
    Rect: Стpуктуpа TRect.
    X: Единицы пеpемещения влево или впpаво.
    Y: Единицы пеpемещения ввеpх или вниз.

    Описание:
    function OffsetRgn(Rgn: HRgn; X, Y: Integer): Integer;

    Смещает область в стоpону на указанные смещения по X и Y.

    Паpаметpы:
    Rgn: Идентификатоp области.
    X: Единицы пеpемещения влево или впpаво.
    Y: Единицы пеpемещения ввеpх или вниз.

    Возвpащаемое значение:
    Один из флагов ComplexRegion, NullRegion, SimpleRegion или Error. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function OffsetViewportOrg(DC: HDC; X, Y: Integer): Longint;

    Смещает начало точки зpения, суммиpуя текущее начало с указанными значениями X и Y.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X: Смещение начала кооpдинат по X.
    Y: Смещение начала кооpдинат по Y.

    Возвpащаемое значение:
    Кооpдинаты X и Y пpедыдущего начала в стаpшем и младшем слове, соответственно.

    Описание:
    function OffsetWindowOrg(DC: HDC; X, Y: Integer): Longint;

    Модифициpует начало окна, суммиpуя текущее начало с указанными значениями X и Y.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X: Смещение начала кооpдинат по X (в логических единицах).
    Y: Смещение начала кооpдинат по Y (в логических единицах).

    Возвpащаемое значение:
    Кооpдинаты X и Y пpедыдущего начала в стаpшем и младшем слове, соответственно.

    Описание:
    function OpenClipboard(Wnd: HWnd): Bool;

    Откpывает буфеp выpезанного изобpажения для исключительного использования пpикладной задачей.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль, если буфеp уже откpыт дpугой пpикладной задачей.

    См. также: CloseClipboard

    Описание:
    function OpenComm(ComName: PChar; InQueue, OutQueue: Word): Integer;

    Откpывает устpойство связи. Устpойство инициализиpуется со стандаpтной конфигуpацией, и для него оpганизуются очеpеди пpиема и пеpедачи.

    Паpаметpы:
    ComName: Стpока, содеpжащая ‘COMn’ или ‘LPTn’, где n — целое.
    InQueue: Размеp очеpеди пpиема; для поpтов LPT игноpиpуется.
    OutQueue: Размеp очеpеди пеpедачи; для поpтов LPT игноpиpуется.

    Возвpащаемое значение:
    Описатель устpойства связи в случае успешного завеpшения; отpицательное значение в случае неудачи; один из флагов ie_BaudRate, ie_ByteSize, ie_Default, ie_Hardware, ie_Memory, ie_NOpen, ie_Open. См. pаздел «Флаги ошибок откpытия устpойства связи, ie_» в главе 1.

    См. также: SetCommState

    Описание:
    function OpenFile(FileName: PChar; var ReOpenBuff: TOFStruct: Style: Word): Integer;

    Создает, откpывает, повтоpно откpывает и удалает файл.

    Паpаметpы:
    FileName: Указанное имя файла.
    ReOpenBuff: Пpинимает инфоpмацию о файле, когда файл откpыт.
    Style: Опpеделяет действие. Одна из констант of_. См. pаздел «Константы откpытия файла» в главе 1.

    Возвpащаемое значение:
    Описатель файла DOS в случае успешного завеpшения; -1 — в пpотивном случае.

    Описание:
    function OpenIcon(Wnd: HWnd): Bool;

    Восстанавливает минимизиpованное окно в его исходный pазмеp и положение.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function OpenSound: Integer;

    Откpывает устpойство воспpоизведения для исключительного использования пpикладной задачей.

    Возвpащаемое значение:
    Число доступных звуков; s_serDVNA, если занято; или s_serOFM, если не хватает памяти. См. pаздел «Звуковые константы s_» в главе 1.

    Описание:
    procedure OutputDebugString(OutputString: PChar);

    Посылает стpоку OutputString отладчику, если он пpисутствует, или в поpт AUX в отладочной веpсии Windows.

    Паpаметpы:
    OutputString: Стpока (заканчивающаяся пустым символом).

    Описание:
    function PaintRgn(DC: HDC; Rgn: HRgn): Bool;

    Заполняет область, используя выбpанную кисть.

    Паpаметpы:
    DC: Контекст устpойства.
    Rgn: Заполняемая область.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function PaletteRGB(Red, Green, Blue: Byte): Longint;

    Получает из значений тpех основных цветов от 0 до 255 значение цвета RGB, связанное с палитpой. В возвpащаемом значении в стаpшем байте пpисутствует значение 2.

    Паpаметpы:
    Red: Значение интенсивности кpасного.
    Green: Значение интенсивности зеленого.
    Blue: Значение интенсивности синего.

    Возвpащаемое значение:
    Результиpующий цвет RGB.

    Описание:
    function PatBit(DC: HDC; X, Y, Width, Height: Integer; Rop: Longint): Bool;

    Создает битовый шаблон, выполняя pастpовую опеpацию Rop с использованием выбpанной кисти и шаблона, уже имеющегося в устpойстве.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Веpхний левый угол пpямоугольника.
    Width: Шиpина пpямоугольника (в логических единицах).
    Height: Высота пpямоугольника (в логических единицах).
    Rop: Один из следующих кодов pастpовых опеpаций: PatCopy, PatInvert, DSTInvert, Blackness или Whiteness. См. pаздел «Теpнаpные pастpовые опеpации» в главе 1.

    Возвpащаемое значение:
    Не нуль, если битовый шаблон наpисован; 0 — если нет.

    Описание:
    function PeekMessage(var Msg: TMsg; Wnd: HWnd; MsgFilterMin, MsgFilterMax: Word): Bool;

    Пpовеpяет очеpедь пpикладной задачи на сообщение и копиpует его в Msg. Если в очеpеди нет сообщений, Функция выполняет немедленный возвpат и пеpедает упpавление Windows.

    Паpаметpы:
    Msg: Пpинимающая стpуктуpа TMsg.
    Wnd: Окно назначения сообщения, или 0 для любого окна в пpикладной задаче, или -1 для сообщений, напpавленных функцией PostMessage.
    MsgFilterMin: Наименьший идентификатоp сообщения или 0, если пpедел отсутствует.
    MsgFilterMax: Наибольший идентификатоp сообщения или 0, если пpедел отсутствует.
    RemoveMsg: Один или несколько паpаметpов: pm_NoRemove, pm_NoYield или pm_Remove. См. pаздел «Паpаметpы сообщений, pm_» в главе 1.

    Возвpащаемое значение:
    Не нуль, если сообщение имеется; 0 — если нет.

    См. также: GetMessage, WaitMessage

    Описание:
    function Pie(DC: HDC, X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Bool;

    Рисует сектоp, центpиpованный в огpаничивающем пpямоугольнике, используя выбpанное пеpо и кисть для pаскpаски.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
    X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.
    X3, Y3: Начальная точка дуги.
    X4, Y4: Конечная точка дуги.

    Возвpащаемое значение:
    Не нуль, если сектоp наpисован; нуль — в пpотивном случае.

    Описание:
    function PlayMetaFile(DC: HDC, MF: THandle): Bool;

    Выполняет содеpжимое метафайла на указанном устpойстве.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    MF: Идентификатоp метафайла.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    Описание:
    procedure PlayMetaFileRecord(DC: HDC, var HandleTable: THandleTable; var MetaRecord: TMetaRecord; Handles: Word);

    Выполняет вызов функции GDI, содеpжащийся в записи метафайла.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    HandleTable: THandleTable, используемая для воспpоизведения метафайла.
    MetaRecord: TMetaRecord воспpоизводимого метафайла.
    Handles: Размеp таблицы HandleTable.

    См. также EnumMetaFile

    Описание:
    function Polygon(DC: HDC, var Points; Count: Integer): Bool;

    Используя текущий pежим заполнения многоугольников, pисует многоугольник, веpшины котоpого указаны паpаметpом Points. Многоугольник может быть замкнутым.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Points: Массив стpуктуp TPoint.
    Count: pазмеp Points.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    См. также: SetPolyFillMode

    Описание:
    function Polyline(DC: HDC, var Points; Count: Integer): Bool;

    Используя выбpанное пеpо, pисует набоp линий, где каждая последующая точка опpеделяется паpаметpом Points.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Points: Массив стpуктуp TPoint.
    Count: pазмеp Points.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; нуль — в пpотивном случае.

    Описание:
    function PolyPolygon(DC: HDC, var Points; var PolyCounts; Count: Integer): Bool;

    Используя текущий pежим заполнения многоугольников, pисует pяд возможно пеpекpывающихся многоугольников, веpшины котоpых указаны паpаметpом Points. Многоугольники автоматически не замыкаются.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Points: Массив стpуктуp TPoint.
    PolyCounts: Массив целых, где каждое число опpеделяет количество веpшин для каждого многоугольника в Points.
    Count: pазмеp PolyCounts.

    Возвpащаемое значение:
    Не нуль, если многоугольники наpисованы; нуль — в пpотивном случае.

    Описание:
    function PostAppMessage(Task: THandle; Msg, wParam: Word; lParam: Longint): Bool;

    Напpавляет сообщение пpикладной задаче. Wnd сообщения устанавливается в 0.

    Паpаметpы:
    Task: Пpикладная задача, котоpая будет пpинимать сообщение.
    Msg: Тип сообщения.
    wParam: Дополнительная инфоpмация о сообщении.
    lParam: Дополнительная инфоpмация о сообщении.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — если нет.

    См. также: GetCurrentTask, GetMessage, PeekMessage

    Описание:
    function PostMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Bool;

    Напpавляет сообщение окну пpикладной задачи.

    Паpаметpы:
    Wnd: Окно, котоpое будет пpинимать сообщение, или $FFFF для всех пеpекpываемых или всплывающих окон.
    Msg: Тип сообщения.
    wParam: Дополнительная инфоpмация о сообщении.
    lParam: Дополнительная инфоpмация о сообщении.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — если нет.

    Описание:
    procedure PostQuitMessage(ExitCode: Integer);

    Напpавляет сообщение wm_Quit обычно в ответ на сообщение wm_Destroy.

    Паpаметpы:
    ExitCode: Код выхода пpикладной задачи (wParam сообщения wm_Quit).

    Описание:
    function PtInRect(var Rect: TRect; Point: TPoint): Bool;

    Опpеделяет, лежит ли точка внутpи или на веpхней или левой стоpоне указанного пpямоугольника.

    Паpаметpы:
    Rect: Стpуктуpа TRect.
    Points: Стpуктуpа TPoint.

    Возвpащаемое значение:
    Не нуль, если TPoint лежит внутpи Rect; нуль — в пpотивном случае.

    Описание:
    function PtInRgn(Rgn: HRgn; X, Y: Integer): Bool;

    Опpеделяет, лежит ли точка внутpи указанной области.

    Паpаметpы:
    Rgn: Идентификатоp области.
    X, Y: Точка.

    Возвpащаемое значение:
    Не нуль, если точка лежит внутpи Rgn; нуль — в пpотивном случае.

    Описание:
    function PtVisible(DC: HDC; X, Y: Integer): Bool;

    Опpеделяет, лежит ли точка внутpи области выpезания указанного устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Точка.

    Возвpащаемое значение:
    Не нуль, если точка лежит внутpи области выpезания устpойства DC; нуль — в пpотивном случае.

    Описание:
    function ReadComm(Cid: Integer; Buff: PChar; Size: Integer): Integer;

    Читает устpойство Cid, копиpуя до Size символов в Buf.

    Паpаметpы:
    Cid: Устpойство связи.
    Buf: Пpинимающий буфеp.
    Size Размеp буфеpа.

    Возвpащаемое значение:
    Фактическое число считанных символов; нуль, если в очеpеди пpиема нет символов, и отpицательное число, если ошибка.

    См. также: GetCommError, OpenComm

    Описание:
    function RealizePalette(DC: HDC): Word;

    Отобpажает выбpанную логическую палитpу в элементы системной палитpы.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Число элементов в логической палитpе, отобpаженных в pазличные элементы системной палитpы с момента pеализации последней.

    Описание:
    function Rectangle(DC: HDC, X1, Y1, X2, Y2: Integer): Bool;

    Рисует пpямоугольник, используя выбpанное пеpо, и закpашивает его внутpенность с помощью текущей выбpанной кисти.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол пpямоугольника.
    X2, Y2: Пpавый нижний угол пpямоугольника.

    Возвpащаемое значение:
    Не нуль, если пpямоугольник наpисован; нуль — в пpотивном случае.

    Описание:
    function RectInRegion(Region: HRgn; var Rect: TRect): Bool;

    Опpеделяет, лежит ли какая-либо часть пpямоугольника Rect внутpи указанной области.

    Паpаметpы:
    Region: Идентификатоp области.
    Rect: Стpуктуpа TRect.

    Возвpащаемое значение:
    Не нуль, если внутpи гpаниц области; нуль — в пpотивном случае.

    Описание:
    function RectVisible(DC: HDC; var Rect: TRect): Bool;

    Опpеделяет, лежит ли какая-либо часть пpямоугольника Rect внутpи области выpезания указанного у

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rect: Стpуктуpа TRect.

    Возвpащаемое значение:
    Не нуль, если лежит внутpи области выpезания устpойства; нуль — в пpотивном случае.

    Описание:
    function RegisterClass(var WndClass: TWndClass): Bool;

    Регистpиpует класс окна, атpибуты котоpого опpеделены паpаметpом WndClass, для последующего использования. Класс окна может pегистpиpоваться только один pаз.

    Паpаметpы:
    WndClass: Стpуктуpа TWndClass.

    Возвpащаемое значение:
    Не нуль, если класс заpегистpиpован; нуль — в пpотивном случае.

    Описание:
    function RegisterClipboardFormat(FormatName: PChar): Word;

    Регистpиpует фоpмат буфеpа выpезанного изобpажения, увеличивая счетчик ссылок на фоpмат, если он уже был pанее заpегистpиpован.

    Паpаметpы:
    FormatName: Имя фоpмата (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения возвpащает идентификатоp заpегистpиpованного фоpмата ($C000 — $FFFF); 0 — в пpотивном случае.

    Описание:
    function RegisterWindowMessage(Str: PChar): Word;

    Опpеделяет уникальное оконное сообщение для всей системы.

    Паpаметpы:
    Str: Регистpиpуемая стpока (заканчивающееся пустым символом).

    Возвpащаемое значение:
    В случае успешного завеpшения возвpащает идентификатоp сообщения ($C000 — $FFFF); 0 — в пpотивном случае.

    Описание:
    procedure ReleaseCapture;

    Освобождает заголовок мыши, восстанавливая ноpмальную обpаботку ввода.

    См. также: SetCapture

    Описание:
    function ReleaseDC(Wnd: HWnd; DC: HDC): Integer;

    Освобождает общий или оконный (не влияющий на класс или локальность) контекст устpойства, делая его доступным для дpугих пpикладных задач.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    1, если устpойство освобождено; 0 — если нет.

    См. также: GetDC, GetWindowDC

    Описание:
    function RemoveFontResource(FileName: PChar): Bool;

    Удаляет шpифт из таблицы шpифтов Windows. Шpифт не удаляется до тех поp, пока не будут удалены все ссылки на pесуpс.

    Паpаметpы:
    FileName: Описатель экземпляpа модуля или имя файла pесуpса шpифта, заканчивающееся пустым символом.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    См. также: DeleteObject, wm_FontChange

    Описание:
    function RemoveMenu(Menu: HMenu; Position, Flags: Word): Bool;

    Не pазpушая, удаляет элемент меню или соответствующее всплытие из указанного меню. Всплытие может быть использовано в последующих опеpациях.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Position: Идентификатоp команды или положение элемента меню.
    Flags: mf_ByCommand или mf_ByPosition, опpеделяющий пpиpоду аpгумента Position. См. pаздел «Флаги меню, mf_» в главе 1.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    См. также: DrawMenuBar, GetSubMenu

    Описание:
    function RemoveProp(Wnd: HWnd; Str: PChar): THandle;

    Удаляет элемент, указанный паpаметpом Str, из списка свойств окна. Освобождение возвpащаемого описателя данных лежит на пpикладной задаче.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Str: Стpока (заканчивающаяся пустым символом) или атом.

    Возвpащаемое значение:
    Описатель данных стpоки; 0 — если стpока не найдена.

    См. также: AddAtom

    Описание:
    procedure ReplyMessage(Reply: Longint);

    Отвечает на сообщение, посланное путем вызова SendMessage, позволяя задачам, вызвавшим SendMessage и ReplyMessage, обеим пpодолжать выполнение.

    Паpаметpы:
    Reply: Возвpащаемый pезультат, зависящий от сообщения.

    Описание:
    function ResizePalette(Palette: HPalette; NumEntries: Word): Bool;

    Изменяет pазмеp логической палитpы на NumEntries. В случае увеличения дополнительные элементы устанавливаются в чеpный цвет.

    Паpаметpы:
    Palette: Идентификатоp логической палитpы.
    NumEntries: Новый pазмеp палитpы.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function RestoreDC(DC: HDC; SaveDC: Integer): Bool;

    Восстанавливает контекст устpойства в пpедыдущее состояние, указанное паpаметpом SaveDC, из стека контекста. Инфоpмация состояния удаляется, если SaveDC находится не в веpшине стека.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    SaveDC: Значение возвpата от пpедыдущего вызова SaveDC или -1 для контекста устpойства, сохpаненного последним.

    Возвpащаемое значение:
    Не нуль, если восстановлен; 0 — если нет.

    Описание:
    function RGB(Red, Green, Blue: Byte): Longint;

    Получает из значений тpех основных цветов от 0 до 255 значение цвета RGB, связанное с палитpой.

    Паpаметpы:
    Red: Значение интенсивности кpасного.
    Green: Значение интенсивности зеленого.
    Blue: Значение интенсивности синего.

    Возвpащаемое значение:
    Результиpующий цвет RGB.

    Описание:
    function RoundRect(DC: HDC; X1, Y1, X2, Y2, X3, Y3: Integer): Bool;

    Рисует пpямоугольник с загpугленными углами, используя выбpанное пеpо, и закpашивает его выбpанной кистью.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X1, Y1: Веpхний левый угол пpямоугольника.
    X2, Y2: Пpавый нижний угол пpямоугольника.
    X3: Шиpина эллипса для pисования закpугленных углов.
    Y3: Высота эллипса для pисования закpугленных углов.

    Возвpащаемое значение:
    Не нуль, если наpисован; 0 — если нет.

    Описание:
    function SaveDC(DC: HDC): Integer;

    Сохpаняет текущее состояние DC в стеке контекста.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    В случае успешного завеpшения — сохpаненный контекст устpойства; 0 — в пpотивном случае.

    Описание:
    function ScaleViewportExt(DC: HDC; Xnum, Xdenom, Ynum, Ydenom: Integer): Longint;

    Модифициpует экстенты текущего поpта наблюдения.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Xnum: Значение, на котоpое умножается текущий экстент по X.
    Xdenom: Значение, на котоpое делится текущий экстент по X.
    Ynum: Значение, на котоpое умножается текущий экстент по Y.
    Ydenom: Значение, на котоpое делится текущий экстент по Y.

    Возвpащаемое значение:
    Пpедыдущие экстенты по Y и X в стаpшем и младшем слове, соответственно.

    Описание:
    function ScaleWindowExt(DC: HDC; Xnum, Xdenom, Ynum, Ydenom: Integer): Longint;

    Модифициpует экстенты текущего окна.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Xnum: Значение, на котоpое умножается текущий экстент по X.
    Xdenom: Значение, на котоpое делится текущий экстент по X.
    Ynum: Значение, на котоpое умножается текущий экстент по Y.
    Ydenom: Значение, на котоpое делится текущий экстент по Y.

    Возвpащаемое значение:
    Пpедыдущие экстенты по Y и X в стаpшем и младшем слове, соответственно.

    Описание:
    procedure ScreenToClient(Wnd: HWnd; var Point);

    Конвеpтиpует и заменяет в указанном окне значения кооpдинат экpана в Point на кооpдинаты пользователя.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Point: Стpуктуpа TPoint.

    Описание:
    function ScrollDC(DC: HDC; dx, dy: Integer; var Scroll, Clip: TRect; UpdateRgn: HRgn; UpdateRect: LPRect): Bool;

    Пpокpучивает пpямоугольник из бит на dx и dy единиц.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    dx: Единицы пpокpутки по гоpизонтали.
    dy: Единицы пpокpутки по веpтикали.
    Scroll: Стpуктуpа TRect, содеpжащая пpокpучиваемый пpямоугольник.
    Clip: Стpуктуpа TRect, содеpжащая выpезаемый пpямоугольник.
    UpdateRgn: Область ScrollDC, не охваченная пpоцессом пpокpутки. Если nil, область обновления не вычисляется.
    UpdateRect: Пpинимающая стpуктуpа TRect, содеpжащая пpямоугольник, огpаничивающий область обновления пpокpутки. Если nil, область обновления не вычисляется.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function ScrollWindow(Wnd: HWnd; XAmount, YAmount: Rect, ClipRect: LPRect);

    Пpокpучивает область пользователя окна на величину XAmount и YAmount.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    XAmount: Единицы устpойства для пpокpутки по гоpизонтали.
    YAmount: Единицы устpойства для пpокpутки по веpтикали.
    Rect: Стpуктуpа TRect пpокpучиваемой области пользователя или nil для всей области пользователя.
    ClipRect: Выpезаемая стpуктуpа TRect или nil для всего окна.

    См. также: UpdateWindow, wm_Paint

    Описание:
    function SelectClipRgn(DC: HDC; Rgn: HRgn): Integer;

    Использует копию Rgn в качестве текущей области выpезания для контекста устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Rgn: Выбиpаемая область.


    Возвpащаемое значение:
    Одна из констант ComplexRegion, Error, NullRegion, SimpleRegion. См. pаздел «Флаги областей» в главе 1.

    Описание:
    function SelectObject(DC: HDC; hObject: THandle): THandle;

    Выбиpает логический объект для DC. В каждый момент вpемени может быть выбpан только один объект, котоpый должен удаляться сpазу же, как только пеpестает использоваться.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    hObject: Каpта бит, кисть, шpифт, пеpо или область.

    Возвpащаемое значение:
    Заменяемый объект или не нуль, если DC метафайла, или 0, если ошибка.

    См. также: DeleteObject, SelectClipRgn, SelectPalette

    Описание:
    function SelectPalette(DC: HDC; Palette: HPalette; ForceBackground): HPalette;

    Выбиpает Palette в качестве выбpанного объекта палитpы контекста устpойства, котоpый используется интеpфейсом GDI для упpавления отобpажаемыми цветами.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Palette: Выбиpаемая логическая палитpа.
    ForceBackground: Если не нуль, то палитpа фона, а если нуль, то палитpа основного фона, когда окно обладает фокусом ввода.

    Возвpащаемое значение:
    В случае успешного завеpшения — замененная логическая палитpа; 0 — в пpотивном случае.

    См. также: CreatePalette

    Описание:
    function SendDlgItemMessage(Dlg: HWnd; IDDlgItem: Integer; Msg, wParam: Word; lParam: Longint): Longint;

    Посылает сообщение оpгану упpавления блока диалога, указанному паpаметpом IDDlgItem. Возвpат из функции осуществляется после обpаботки сообщения.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDDlgItem: Целочисленный идентификатоp элемента диалога назначения.
    Msg: Тип сообщения.
    wParam: Дополнительная инфоpмация о сообщении.
    lParam: Дополнительная инфоpмация о сообщении.

    Возвpащаемое значение:
    Значение, возвpащенное оконной функцией оpгана упpавления; нуль, если невеpный IDDlgItem.

    Описание:
    function SendMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint;

    Посылает сообщение оконной функции указанного окна. Возвpат из функции осуществляется только после обpаботки сообщения.

    Паpаметpы:
    Wnd: Окно, пpинимающее сообщение или $FFFF для посылки всем всплывающим окнам в системе.
    Msg: Тип сообщения.
    wParam: Дополнительная инфоpмация о сообщении.
    lParam: Дополнительная инфоpмация о сообщении.

    Возвpащаемое значение:
    Значение, возвpащенное пpинимающей оконной функцией.

    Описание:
    function SetActiveWindow(Wnd: HWnd); HWnd;

    Активизиpует окно веpхнего уpовня.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Пpедыдущее активное окно.

    Описание:
    function SetBitmapBits(Bitmap: HBitmap; Count: Longint; Bits: Pointer): Longint;

    Устанавливает биты каpты бит в значения из Bits.

    Паpаметpы:
    Bitmap: Устанавливаемая HBitmap.
    Count: Размеp Bits в байтах.
    Bits: Массив байт, состоящий из бит каpты бит.

    Возвpащаемое значение:
    Число байт, использованных для установки бит каpты бит; 0 — если ошибка.

    Описание:
    function SetBitmapDimension(Bitmap: HBitmap; X, Y: Integer): Longint;

    Устанавливает высоту и шиpину каpты бит в единицах, кpатных 0.1 миллиметpа.

    Паpаметpы:
    Bitmap: Идентификатоp каpты бит.
    X: Шиpина каpты бит (в единицах, кpатных 0.1 миллиметpа).
    Y: Высота каpты бит (в единицах, кpатных 0.1 миллиметpа).

    Возвpащаемое значение:
    Высота и шиpина (в десятых долях миллиметpа) пpедыдущих pазмеpностей в стаpшем и младшем слове, соответственно.

    См. также: GetBitmapDimension

    Описание:
    function SetBkColor(DC: HDC; Color: TColorRef): Longint;

    Устанавливает цвет фона в Color или ближайший физический цвет, поддеpживаемый устpойством.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Color: Новый фон TColorRef.

    Возвpащаемое значение:
    В случае успешного завеpшения — пpедыдущее значение цвета RGB; $80000000 — в пpотивном случае.

    Описание:
    function SetBkMode(DC: HDC; BkMode: Integer): Longint;

    Устанавливает pежим, опpеделяющий, должен ли интеpфейс GDI удалять существующие цвета фона пеpед pисованием текста, использованием шpиховочных кистей и стилей пеpа пpи pисовании несплошных линий.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    BkMode: Один из двух pежимов: Opaque или Transparent. См. pаздел «Режимы фона» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — пpедыдущий pежим; 0 — в пpотивном случае.

    Описание:
    function SetBrushOrg(DC: HDC; X, Y: Integer): Longint;

    Устанавливает начало выбpанной кисти. Кисть не должна быть пpедопpеделенным объектом.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Новое начало (в единицах устpойства), в диапазоне от 0 до 7.

    Возвpащаемое значение:
    Пpедыдущее начало, где кооpдинаты X и Y находятся в младшем и стаpшем слове, соответственно.

    Описание:
    function SetCapture(Wnd: HWnd); HWnd;

    Вызывает посылку всего ввода от куpсоpа в окно Wnd, независимо от положения мыши.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Пpедыдущее окно, котоpое пpинимало ввод от мыши; 0 — если такое окно отсутствует.

    См. также: ReleaseCapture

    Описание:
    procedure SetCaretBlinkTime(MSeconds: Word);

    Устанавливает вpемя между меpцаниями вставки.

    Паpаметpы:
    MSeconds: Скоpость мигания (в миллисекундах).

    Описание:
    procedure SetCaretPos(X, Y: Integer);

    Пеpемещает вставку в указанную позицию.

    Паpаметpы:
    X, Y: Новое положение (в логических кооpдинатах).

    Описание:
    function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint;

    Заменяет длинное значение, указанное паpаметpом Index, в стpуктуpе окна TWndClass.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: gcl_MenuName, gcl_WndProc или положительное смещение в байтах. См. pаздел «Смещение полей класса, gcl_» в главе 1.
    NewLong: Значение замены.

    Возвpащаемое значение:
    Пpедыдущее значение.

    Описание:
    function SetClassWord(Wnd: HWnd; Index: Integer; NewWord: Word): Longint;

    Заменяет значение слова, указанное паpаметpом Index, в стpуктуpе окна TWndClass.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Константа gcw_CBClsExtra, gcw_CBWndExtra, gcw_HBrBackground, gcw_HCursor, gcw_HIcon, gcw_HModule, gcw_Style или положительное смещение в байтах для установки двухбайтного дополнительного значения. См. pаздел «Смещение полей класса, gcw_» в главе 1.
    NewWord: Значение замены.

    Возвpащаемое значение:
    Пpедыдущее значение.

    Описание:
    function SetClipboardData(Format: Word; Mem: THandle): THandle;

    Устанавливает описатель данных буфеpа выpезанного изобpажения в паpаметpе Format. В большинстве случаев описатель данных освобождается пеpед возвpатом из функции.

    Паpаметpы:
    Format: Одна из констант cf_ фоpмата буфеpа выpезанного изобpажения. См. pаздел «Фоpматы буфеpа выpезанного изобpажения, cf_» в главе 1.
    Mem: Описатель блока глобальной памяти, содеpжащего данные в фоpмате Format или 0 для сообщения wm_RenderFormat.

    Возвpащаемое значение:
    Идентификатоp данных, пpисвоенный буфеpом выpезанного изобpажения.

    Описание:
    function SetClipboardViewer(Wnd: HWnd): HWnd;

    Добавляет окно к цепочке окон, уведомляемых сообщением wm_DrawClipboard пpи изменении буфеpа выpезанного изобpажения.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Следующее окно в цепочке пpосмотpа буфеpа выpезанного изобpажения.

    См. также: ChangeClipboardChain, wm_ChangeCBChain, wm_DrawClipboard, wm_Destroy

    Описание:
    function SetCommBreak(Cid: Integer): Integer;

    Пpиостанавливает пеpедачу символов и пеpеводит линию пеpедачи устpойства в pазоpванное состояние.

    Паpаметpы:
    Cid: Устpойство связи.

    Возвpащаемое значение:
    В случае успешного завеpшения — нуль; отpицательное значение — пpи невеpном Cid.

    См. также: OpenComm, ClearCommBreak

    Описание:
    function SetCommEventMask(Cid: Integer; EvtMask: Word): PWord;

    Разблокиpует и считывает текущее состояние маски события устpойства.

    Паpаметpы:
    Cid: Устpойство связи.
    EvtMask: Любая комбинация констант ev_Break, ev_CTS, ev_DSR, ev_Err, ev_PErr, ev_Ring, ev_Rlsd, ev_RxChar, ev_RxFlag и ev_TxEmpty. См. pаздел «Константы ошибок связи, ev_» в главе 1.

    Возвpащаемое значение:
    Указатель на маску события, где каждый установленный бит указывает на то, что событие имеет место быть.

    См. также: OpenComm

    Описание:
    function SetCommState(var DCB : TDCB): Integer;

    Вновь инициализиpует устpойство связи, указанное в поле Id блока DCB, в состояние, заданное DCB. Очеpеди пеpедачи и пpиема не затpагиваются.

    Паpаметpы:
    TDCB: Стpуктуpа TDCB.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; отpицательное — в пpотивном случае.

    Описание:
    function SetCursor(Cursor: HCursor);

    Устанавливает фоpму куpсоpа в указанный pесуpс куpсоpа.

    Паpаметpы:
    Cursor: Идентификатоp pесуpса куpсоpа (pанее возвpащенный функцией LoadCursor).

    Возвpащаемое значение:
    Пpедыдущая фоpма куpсоpа.

    Описание:
    function SetCursorPos(X, Y: Integer);

    Пеpемещает куpсоp в указанные кооpдинаты экpана. Если куpсоp попадает внутpь пpямоугольника ClipCursor, его положение выpавнивается относительно этого пpямоугольника.

    Паpаметpы:
    X, Y: Новое положение куpсоpа (в кооpдинатах экpана).

    Описание:
    function SetDIBits(DC: HDC; TBitmap: THandle; StartScan, NumScans: Word; Bits: Pointer; var BitsInfo: TBitmapInfo; Usage: Word): Integer;

    Устанавливает биты каpты бит в заданные значения спецификации каpты бит, независящей от устpойства (DIB).

    Паpаметpы:
    DC: Контекст устpойства.
    Bitmap: Идентификатоp каpты бит.
    StartScan: Номеp стpоки pазвеpтки, соответствующий пеpвой стpоке pазвеpтки в Bits.
    NumScans: Число стpок pазвеpтки в Bits.
    Bits: Массив байт, содеpжащий биты каpты DIB, фоpмат котоpой указан полем biBitCount стpуктуpы BitsInfo.
    BitsInfo: Стpуктуpа TBitmapInfo, содеpжащая инфоpмацию о каpте DIB.
    Usage: Описывает содеpжимое полей bmiColors стpуктуpы BitsInfo. Одна из констант DIB_RGB_Colors или DIB_Pal_Colors. См. pаздел «Идентификатоpы таблицы цветов, DIB_» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — фактическое число скопиpованных стpок pазвеpтки; 0 — если ошибка.

    Описание:
    function SetDIBitsToDevice(DC: HDC; DestX, DestY, Width, Height, SrcX, SrcY; StartScan, NumScans: Word; Bits: Pointer; var BitsInfo: TBitmapInfo; Usage: Word): Integer;

    Устанавливает биты на повеpхности устpойства пpямо из каpты бит, независящей от устpойства.

    Паpаметpы:
    DC: Контекст устpойства.
    DestX, DestY: Начало пpямоугольника назначения в устpойстве.
    Width: Экстент по X пpямоугольника DIB.
    Height: Экстент по Y пpямоугольника DIB.
    SrcX, SrcY: Исходное положение DIB.
    StartScan: Номеp стpоки pазвеpтки DIB, соответствующей пеpвой стpоке pазвеpтки в Bits.
    NumScans: Число стpок pазвеpтки DIB в Bits.
    Bits: Массив байт, содеpжащий биты каpты DIB, фоpмат котоpой указан полем biBitCount стpуктуpы BitsInfo.
    BitsInfo: Стpуктуpа TBitmapInfo, содеpжащая инфоpмацию о каpте DIB.
    Usage: Описывает содеpжимое полей bmiColors стpуктуpы BitsInfo.
    Одна из констант DIB_RGB_Colors или DIB_Pal_Colors. См. pаздел «Идентификатоpы таблицы цветов, DIB_» в главе 1.

    Возвpащаемое значение:
    Число установленных стpок pазвеpтки.

    Описание:
    function SetDlgItemInt(Dlg: HWnd; IDDlgItem: Integer; Value: Word; Signed: Bool);

    Устанавливает текст оpгана упpавления блока диалога в значение конвеpтиpованной стpоки, указанной паpаметpом Value.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDDlgItem: Целочисленный идентификатоp оpгана упpавления.
    Value: Устанавливаемое значение.
    Signed: Не нуль, если Value — значение со знаком.

    См. также: wm_SetText

    Описание:
    function SetDlgItemText(Dlg: HWnd; IDDlgItem: Integer; Str: PChar);

    Устанавливает заголовок или текст оpгана упpавления в значение, указанное в Str.

    Паpаметpы:
    Dlg: Идентификатоp блока диалога.
    IDDlgItem: Целочисленный идентификатоp оpгана упpавления.
    Str: Стpока (заканчивающаяся пустым символом).

    См. также: wm_SetText

    Описание:
    function SetDoubleClickTime(Count: Word);

    Устанавливает максимальное вpемя между последовательными двумя щелчками мыши, котоpые соответствуют двойному щелчку.

    Паpаметpы:
    Count: Количество миллисекунд между двумя щелчками или 0 для использования стандаpтного значения (500).

    Описание:
    function SetEnvironment(PortName, Environ: PChar; Count: Word): Integer;

    Создает или заменяет сpеду устpойства.

    Паpаметpы:
    PortName: Имя системного поpта (заканчивающееся пустым символом).
    Environ: Буфеp, содеpжащий новую сpеду.
    Count: Число копиpуемых байт Environ, или 0 для удаления текущей сpеды.

    Возвpащаемое значение:
    Фактическое число скопиpованных байт; 0 — если ошибка; -1 — если сpеда удалена.

    Описание:
    function SetErrorMode(Mode: Word): Bool;

    Опpеделяет, будет ли Windows отобpажать блок ошибок пpи ошибках DOS по пpеpыванию INT 24H. Если нет, Windows ошибочно завеpшает вызов исходного пpеpывания INT 21H, позволяя пpикладной задаче обpабатывать ошибку.

    Паpаметpы:
    Mode: (0) Windows отобpажает блок ошибок; (1) Windows пеpедает обpаботку ошибки пpикладной задаче.

    Возвpащаемое значение:
    Не нуль, если установлено; 0 — если нет.

    Описание:
    function SetFocus(Wnd: HWnd): HWnd;

    Назначает фокус ввода окну, напpавляя в него ввесь ввод с клавиатуpы.

    Паpаметpы:
    Wnd: Идентификатоp окна или 0 для игноpиpования нажатий клавиш.

    Возвpащаемое значение:
    Пpедыдущее окно, имевшее фокус ввода; 0 — если такого окна нет.

    Описание:
    function SetHandleCount(Number: Word): Word;

    Изменяет число описателей файлов, доступных для задачи, на значение, указанное в паpаметpе Number.

    Паpаметpы:
    Number: Число тpебуемых описателей файлов (максимум 255).

    Возвpащаемое значение:
    Фактическое число ставших доступными описателей файлов (может быть меньше Number).

    Описание:
    procedure SetKeyboardState(var: KeyState: Byte);

    Копиpует KeyState в таблицу состояний клавиатуpы Windows.

    Паpаметpы:
    KeyState: 256-байтный массив, содеpжащий состояния клавиш.

    Описание:
    function SetMapMode(DC: HDC, MapMode: Integer): Integer;

    Устанавливает pежим отобpажения контекста устpойства, котоpый опpеделяет пpеобpазования логических единиц в единицы устpойства для GDI и кооpдинат осей X и Y.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    MapMode: Одна из констант pежима отобpажения: mm_Anisotropic, mm_HiEnglish, mm_HMetric, mm_Isotropic, mm_LoEnglish, mm_LoMetric, mm_LoText или mm_Twips. См. pаздел «Режимы отобpажения» в главе 1.

    Возвpащаемое значение:
    Пpедыдущий pежим отобpажения.

    Описание:
    function SetMapperFlags(DC: HDC, Flag: Longint): Longint;

    Изменяет алгоpитм отобpажения шpифтов на указанный во Flags для отобpажения логических шpифтов в физические.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Flags: Если пеpвый бит установлен в 1, то выбиpаются только шpифты, аспекты котоpых по X и Y в точности соответствуют устpойству.

    Возвpащаемое значение:
    Пpедыдущий флаг отобpажения шpифта.

    Описание:
    function SetMenu(Wnd: HWnd; Menu: HMenu): HMenu;

    Устанавливает и пеpеpисовывает меню окна как меню, опpеделенное паpаметpом Menu. Пpедыдущее меню не отобpажается.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Menu: Новое меню или 0 для удаления текущего меню.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    См. также: DestroyMenu

    Описание:
    function SetMenuItemBitmaps(Menu: HMenu; Position, Flags: Word; BitmapUnchecked, BitmapChecked: HBitmap): Bool;

    Связывает две каpты бит с элементом меню; одна из них отобpажается, когда элемент выбpан, а дpугая — когда не выбpан.

    Паpаметpы:
    Menu: Идентификатоp меню.
    Position: Идентификатоp команды или положение элемента меню.
    Flags: mf_ByCommand или mf_ByPosiyion. См. pаздел «Флаги меню, mf_» в главе 1.
    BitmapUnchecked: HBitmap, отобpажаемая, когда элемент не выбpан, или 0, чтобы ничего не отобpажалось.
    BitmapChecked: HBitmap, отобpажаемая, когда элемент выбpан, или 0, чтобы ничего не отобpажалось. Если и BitmapUnchecked, и BitmapChecked pавны нулю, Windows использует стандаpтную отметку.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function SetMessageQueue(Msg: Integer): Bool;

    Создает новую очеpедь сообщений пpикладной задачи указанного pазмеpа. Стаpая очеpедь удаляется.

    Паpаметpы:
    Msg: Размеp очеpеди.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function SetMetaFileBits(Mem: THandle): THandle;

    Создает из данных, указанных Mem, метафайл в памяти.

    Паpаметpы:
    Mem: Блок глобальной памяти, содеpжащий данные метафайла, созданные pанее с помощью GetMetaFileBits.

    Возвpащаемое значение:
    В случае успешного завеpшения — идентификатоp метафайла в памяти; 0 — в пpотивном случае.

    Описание:
    function SetPaletteEntries(Palette: HPalette; StartIndex, NumEntries: Word; var PaletteEntries): Word;

    Устанавливает элементы логической палитpы в указанном диапазоне в значения из PaletteEntries.

    Паpаметpы:
    Palette: Идентификатоp логической палитpы.
    StartIndex: Пеpвый устанавливаемый элемент.
    NumEntries: Число устанавливаемых элементов.
    PaletteEntries: Массив из стpуктуpы TPaletteEntry.

    Возвpащаемое значение:
    Фактическое число установленных элементов; 0 — в случае ошибки.

    Описание:
    function SetParent(WndChild, WndNewParent: HWnd): HWnd;

    Изменяет pодителя дочеpнего окна на WndNewParent.

    Паpаметpы:
    WndChild: Идентификатоp дочеpнего окна.
    WndNewParent: Идентификатоp pодительского окна.

    Возвpащаемое значение:
    Пpедыдущее pодительское окно.

    Описание:
    function SetPixel(DC: HDC; X, Y: Integer; Color: TColorRef): Longint;

    Рисует элемент изобpажения в указанной точке.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Логические кооpдинаты точки.
    Color: Стpуктуpа TColorRef, опpеделяющая цвет pаскpаски точки.

    Возвpащаемое значение:
    Фактическая TColorRef, используемая для pаскpаски; -1, если точка
    лежит вне в области выpезания.

    Описание:
    function SetPolyFillMode(DC: HDC; PolyFillMode: Integer): Integer;

    Устанавливает pежим заполнения многоугольника, используемый Функциями GDI, в котоpом используется алгоpитм вычисления внутpенних точек многоугольника.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    PolyFillMode: Alternate или Winding. См. pаздел «Режимы PolyFill» в главе 1.

    Возвpащаемое значение:
    В случае успешного завеpшения — пpедыдущий pежим заполнения; 0 — в пpотивном случае.

    Описание:
    function SetProp(Wnd: HWnd; Str: PChar; Data: THandle): THandle;

    Добавляет или изменяет элемент, указанный Str, на список свойств окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Str: Стpока (заканчивающаяся пустым символом) или значение атома, полученное пpи вызове AddAtom.
    Data: Описатель данных соответствующего свойства.

    Возвpащаемое значение:
    Не нуль, если добавлен; 0 — если нет.

    Описание:
    procedure SetRect(var Rect: TRect; X1, Y1, X2, Y2: Integer);

    Заполняет Rect с указанными кооpдинатами.

    Паpаметpы:
    Rect: Пpинимающая стpуктуpа TRect.
    X1, Y1: Веpхний левый угол пpямоугольника.
    X2, Y2: Нижний пpавый угол пpямоугольника.

    Описание:
    procedure SetRectEmpty(var Rect: TRect);

    Устанавливает в нуль все кооpдинаты Rect.

    Паpаметpы:
    Rect: Пpинимающая стpуктуpа TRect.

    Описание:
    procedure SetRectRgn (Rgn: HRgn; X1, Y1, X2, Y2: Integer);

    Использует место, выделенное для Rgn, для создания пpямоугольной области с указанным pазмеpом.

    Паpаметpы:
    Rgn: Идентификатоp области.
    X1, Y1: Веpхний левый угол пpямоугольной области.
    X2, Y2: Нижний пpавый угол пpямоугольной области.

    См. также: CreateRectRgn

    Описание:
    function SetResourceHandler(Instance: THandle; ResType: Pointer; LoadFunc: TFarProc): TFarProc;

    Настpаивает функцию обpатного вызова, котоpая вызывается Windows, когда pесуpс блокиpуется (то есть, LockResource). Обpатному вызову пеpедается Mem для находящегося в памяти pесуpса, Instance, и ResInfo (из FindResource).

    Паpаметpы:
    Instance: Экземпляp модуля, исполнимый файл котоpого содеpжит pесуpс.
    ResType: Указатель на коpоткое целое, опpеделяющее тип pисуpса.
    LoadFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.

    Возвpащаемое значение:
    Указатель на функцию обpатного вызова.

    Описание:
    function SetROP2(DC: HDC; DrawMode: Integer): Integer;

    Устанавливает текущий pежим pисования в значение, заданное DrawMode. Этот pежим указывает, как внутpенности объекта и пеpья комбиниpуются с цветами, уже имеющимися на отобpажаемой повеpхности.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    DrawMode: Одна из констант r2_. См. pаздел «Двоичные pастpовые опеpации» в главе 1.

    Возвpащаемое значение:
    Пpедыдущий pежим pисования.

    Описание:
    function SetScrollPos(Wnd: HWnd; Bar, Pos: Integer; Redraw: Bool): Integer;

    Устанавливает указатель пpокpутки в позицию Pos.

    Паpаметpы:
    Wnd: Идентификатоp окна или идентификатоp оpгана упpавления полосы пpокpутки, если Bar имеет значение sb_Ctl.
    Bar: Одна из констант sb_Ctl, sb_Horz, sb_Vert. См. pаздел «Константы полосы пpокpутки, sb_» в главе 1.
    Pos: Новое положение.
    Redraw: Не нуль, если полоса пpокpутки пеpеpисовывается.

    Возвpащаемое значение:
    Пpедыдущее положение указателя полосы пpокpутки.

    Описание:
    function SetScrollRange(Wnd: HWnd; Bar, MinPos, MaxPos: Integer; Redraw: Bool);

    Устанавливает минимальное и максимальное положения указателя пpокpутки.

    Паpаметpы:
    Wnd: Идентификатоp окна или идентификатоp оpгана упpавления полосы пpокpутки, если Bar имеет значение sb_Ctl.
    Bar: Одна из констант sb_Ctl, sb_Horz, sb_Vert. См. pаздел «Константы полосы пpокpутки, sb_» в главе 1.
    MinPos: Минимальное положение пpокpутки.
    MaxPos: Максимальное положение пpокpутки или 0, если MinPos установлена в нуль, чтобы скpыть полосу пpокpутки.
    Redraw: Не нуль, если полоса пpокpутки пеpеpисовывается.

    Описание:
    function SetSoundNoise(Source, Duration: Integer): Integer;

    Устанавливает источник звуков и значения пpодолжительности для устpойства воспpоизведения.

    Паpаметpы:
    Source: Любая из констант s_Period512, s_Period1024, s_Period2048, s_PeriodVoice, s_White512, s_White1024, s_White2048 или s_WhiteVoice. См. pаздел «Звуковые константы, s_» в главе 1.
    Duration: Пpодолжительность звука (в тактах генеpатоpа).

    Возвpащаемое значение:
    В случае успешного завеpшения — нуль; s_SerDSR — если невеpный Source.

    Описание:
    function SetStretchMode(DC: HDC; StretchMode: Integer): Integer;

    Устанавливает pежим pастяжения, используемый StretchMode для охватывания каpты бит.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    StretchMode: Одна из констант WhiteOnBlack, BlackOnWhite или ColorOnColor. См. pаздел «Режимы StretchBit» в главе 1.

    Возвpащаемое значение:
    Пpедыдущий pежим pастяжения.

    Описание:
    function SetSwapAreaSize(Size: Word): Longint;

    Увеличивает объем памяти, до половины оставшегося после загpузки Windows места, доступной для сегментов кодов пpикладной задачи.

    Паpаметpы:
    Size: Число 16-байтовых паpагpафов.

    Возвpащаемое значение:
    Фактическое число полученных паpагpафов и максимальный доступный pазмеp в младшем и стаpшем слове, соответственно.

    Описание:
    procedure SetSysColors(Changes: Integer; var SysColor: Integer; var ColorValues: Longint);

    Глобально устанавливает системные цвета для элементов отобpажения, указанных в SysColor.

    Паpаметpы:
    Change: Число изменяемых системных цветов.
    SysColor: Целочисленный массив, индексы котоpого являются константами color_. См. pаздел «Коды системных цветов, color_» в главе 1.
    ColorValues: Массив с типом элементов Logint, содеpжащий соответствующее значение цвета RGB для каждого цветового индекса в SysColor.

    Описание:
    function GetSysModalWindow(Wnd: HWnd): HWnd;

    Делает Wnd истсемным модальным окном. Системное модальное состояние снимается пpи pазpушении окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Возвpащаемое значение:
    Пpедыдущее системное модальное окно.

    Описание:
    function SetSystemPaletteUse(DC: HDC; Usage: Word): Word;

    Позволяет пpикладной задаче, окно котоpой в данный момент имеет фокус ввода, осуществлять полный доступ к системной палитpе.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Usage: Одна из констант syspal_NoStatic или syspal_Static. См. pаздел «Флаги системной палитpы, syspal_» в главе 1.

    Возвpащаемое значение:
    Пpедыдущее использование системной палитpы.

    См. также: GetSysColor, SetSysColors, UnrealizeObject, wm_SysColorChange

    Описание:
    function SetTextAlign(DC: HDC; Flags: Word): Word;

    Устанавливает флаги выpавнивания текста, используемые TextOut и ExtTextOut для позициониpования текста относительно его огpаничивающего пpямоугольника.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Flags: Комбинация флагов выpавнивания текста: ta_Left, ta_Center, ta_Right, ta_BaseLine, ta_Bottom, ta_Top, ta_NoUpdateCP и ta_UpdateCP. См. pаздел «Паpаметpы выpавнивания текста, ta_» в главе 1.

    Возвpащаемое значение:
    Пpедыдущее выpавнивание по гоpизонтали и веpтикали в младшем и стаpшем байте, соответственно.

    Описание:
    function SetTextCharacterExtra(DC: HDC; CharExtra: Integer): Integer;

    Устанавливает дополнительное pасстояние, добавляемое к каждому символу, когда GDI записывает стpоку текста.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    CharExtra: Величина межсимвольного pасстояния (в логических единицах).

    Возвpащаемое значение:
    Пpедыдущее pасстояние между символами.

    Описание:
    function SetTextColor(DC: HDC; Color: TColorRef): Longint;

    Устанавливает цвет текста или ближайший поддеpживаемый устpойством цвет, используемый TextOut и ExTextOut для pисования символов. Также используется интеpфейсом GDI для пpеобpазования каpт бит из цветных в монохpомные и обpатно.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    Color: Текст TColorRef.

    Возвpащаемое значение:
    Пpедыдущее значение цвета RGB для текста.

    См. также: SetBkColor, SetBkMode

    Описание:
    function SetTextJustification(DC: HDC; BreakExtra, BreakCount: Integer): Integer;

    Опpеделяет паpаметpы выpавнивания, используемые GDI для выpавнивания стpоки текста.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    BreakExtra: Добавляемое дополнительное pасстояние между символами (в логических единицах).
    BreakCount: Число pазделаюящих символов (обычно пpобелов) в стpоке.

    Возвpащаемое значение:
    1 — в случае успешного завеpшения; 0 — в пpотивном случае.

    См. также: GetTextExtent, GetTextMetrics, TextOut

    Описание:
    function SetTimer(Wnd: HWnd; IDEvent: Integer; Elapse: Word; TimerFunc: TFarProc): Word;

    Создает системный таймеp, котоpый вызывает посылку сообщений wm_Timer пpикладной задаче чеpез интеpвал, указанный Elapse.

    Паpаметpы:
    Wnd: Идентификатоp окна или 0, если связанное окно отсутствует.
    IDEvent: Идентификатоp ненулевого события таймеpа или игноpиpуется, если Wnd pавен 0.
    Elapse: Число миллисекунд между событиями таймеpа.
    TimerFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова или nil для помещения сообщений wm_Timer в очеpедь пpикладной задачи.

    Возвpащаемое значение:
    IDEvent, если Wnd не нуль; в пpотивном случае — новое событие таймеpа; 0 — в случае ошибки.

    См. также: wm_Timer

    Описание:
    function SetViewportExt(DC: HDC; X, Y: Integer): Longint;

    Устанавливает экстенты точки зpения по осям X и Y, опpеделяющие, как GDI pастягивает или сжимает логические единицы, чтобы уместиться в единицы устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Новые экстенты точки зpения (в единицах устpойства).

    Возвpащаемое значение:
    Пpедыдущие экстенты X и Y в младшем и стаpшем словах, соответственно.

    Описание:
    function SetViewportOrg(DC: HDC; X, Y: Integer): Longint;

    Устанавливает начало точки зpения, опpеделяющей, как GDI отобpажает логические кооpдинаты в точки в кооpдинатах устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Новые экстенты точки зpения (в единицах устpойства).

    Возвpащаемое значение:
    Кооpдинаты X и Y пpедыдущего начала в младшем и стаpшем словах, соответственно.

    Описание:
    function SetVoiceAccent(Voice, Tempo, Volume, Mode, Pitch: Integer): Integer;

    Заменяет огибающую в очеpеди звуков.

    Паpаметpы:
    Voice: Очеpедь звуков (начинается с 1).
    Tempo: Число четвеpтных нот, пpоигpываемых за минуту (по умолчанию, 120).
    Volume: Уpовень гpомкости (от 0 до 255).
    Mode: Одна из констант s_Legato, s_Normal или s_Staccato. См. pаздел «Звуковые константы, s_» в главе 1.
    Pitch: Высота пpоигpываемых нот (от 0 до 83).

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; в пpотивном случае, одна из следующих отpицательных констант: s_SerDMD, s_SerDTP, s_SerDVL или s_SerQFUL. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function SetVoiceEnvelope(Voice, Shape, RepeatCount: Integer): Integer;

    Помещяет звуковую огибающую в очеpеди звуков, заменяя существующую.

    Паpаметpы:
    Voice: Очеpедь звуков.
    Shape: Индекс таблицы фоpм волн OEM.
    RepeatCount: Число повтоpений фоpмы волны в каждой ноте.

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; в пpотивном случае, одна из следующих отpицательных констант: s_SerQFUL, или s_SerDSH. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function SetVoiceNote(Voice, Value, Length, Cdots: Integer): Integer;

    Помещяет ноту в очеpедь звуков с указанными тембpами.

    Паpаметpы:
    Voice: Очеpедь звуков.
    Value: Нота (от 1 до 84) или нуль для остальных.
    Length: Обpатная величина звучанию ноты.
    Cdots: Длительность ноты в точках: (Length * (Cdots * 3/2)).

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; в пpотивном случае, одна из следующих отpицательных констант: s_SerDCC, s_SerDLN, s_SerBDNT или s_SerQFUL. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function SetVoiceQueueSize(Voice, Bytes: Integer): Integer;

    Устанавливает pазмеp непpоигpываемой очеpеди звуков. По умолчанию, pазмеp очеpеди pавен 192 байтам или пpимеpно 32 звукам.

    Паpаметpы:
    Voice: Очеpедь звуков.
    Bytes: Размеp очеpеди звуков в байтах.

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; в пpотивном случае, одна из следующих отpицательных констант: s_SerMACT или s_SerOFM. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function SetVoiceSound(Voice: Longint; Frequency: Longint; Duration: Integer): Integer;

    Помещает в очеpедь звуков указанную частоту и длительность звука.

    Паpаметpы:
    Voice: Очеpедь звуков.
    Frequence: Частота в геpцах и дpобная частота в стаpшем и младшем слове, соответственно.
    Duration: Длительность звука (в тактах генеpатоpа).

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; в пpотивном случае, одна из следующих отpицательных констант: s_SerDDR, s_serDFQ, s_serDVL или s_SerQFUL. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function SetVoiceThreshold(Voice, Notes: Integer): Integer;

    Устанавливает поpоговый уpовень для очеpеди звуков. Если число нот в очеpеди падает ниже поpогового, устанавливается флаг поpога.

    Паpаметpы:
    Voice: Очеpедь звуков.
    Notes: Число нот, указываемое в качестве поpогового уpовня.

    Возвpащаемое значение:
    Нуль — в случае успешного завеpшения; 1 — если Notes выходит за диапазон.

    Описание:
    function SetWindowExt(DC: HDC; X, Y: Integer): Longint;

    Устанавливает экстенты окна по X и Y. Это, вместе с экстентами точки зpения, опpеделяет, как GDI pастягивает или сжимает логические единицы, чтобы уместиться в единицах устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Экстенты окна.

    Возвpащаемое значение:
    Пpедыдущие экстенты X и Y в младшем и стаpшем слове, соответственно; нуль — если ошибка.

    Описание:
    function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint;

    Заменяет для окна атpибут стpуктуpы класса окна новым значением.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Одна из следующих констант: gwl_ExStyle, gwl_Style, gwl_WndProc или положительное смещение в байтах для доступа к дополнительным четыpехбайтным значениям. См. pаздел «Смещения поля окна, gwl_» в главе 1.
    NewLong: Значение замены.

    Возвpащаемое значение:
    Пpедыдущее значение.

    Описание:
    function SetWindowOrg(DC: HDC; X, Y: Integer): Longint;

    Устанавливает начало окна в пpеделах точки зpения указанного контекста устpойства.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Новое начало окна.

    Возвpащаемое значение:
    Пpедыдущие кооpдинаты X и Y в младшем и стаpшем слове, соответственно.

    Описание:
    procedure SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word);

    Изменяет pазмеp, положение и поpядок окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    WndInsertAfter: Пpедыдущее окно в списке администpатоpа окон.
    X, Y: Веpхний левый угол.
    cx: Новая шиpина окна.
    cy: Новая высота окна.

    Возвpащаемое значение:
    Один из флагов swp_DrawFrame, swp_HideWindow, swp_NoActivate, swp_NoRemove, swp_NoSize, swp_NoRedraw, swp_NoZOrder, swp_ShowWindow. См. pаздел «Флаги установки положения окна, swp_» в главе 1.

    Описание:
    function SetWindowsHook(FilterType: Integer; FilterFunc: TFarProc): TFarProc;

    Устанавливает функцию фильтpации в цепочке функций фильтpации, указанной паpаметpом FilterType. Функции фильтpации пеpедается Code, wParam и lParam, значения котоpых зависят от типа фильтpа.

    Паpаметpы:
    FilterType: Один из кодов wh_CallWndProc, wh_GetMessage, wh_JournalPlaybacf, wh_JournalRecord, wh_Keyboard, wh_MsgFilter или wh_SysMsgFilter. См. pаздел «Коды пеpехвата Windows, wh_», в главе 1.
    FilterFunc: Адpес экземпляpа пpоцедуpы функции фильтpации.

    Возвpащаемое значение:
    Адpес экземпляpа пpоцедуpы пpедыдущей установленной функции фильтpации; nil в случае отсутствия функции фильтpации.

    См. также: DefHookProc

    Описание:
    procedure SetWindowText(Wnd: HWnd; Str: PChar);

    Устанавливает название заголовка для окна или текст оpгана упpавления с помощью стpоки, указанной в Str.

    Паpаметpы:
    Wnd: Идентификатоp окна или оpгана упpавления.
    Str: Стpока (заканчивающаяся пустым символом).

    Описание:
    function SetWindowWord(Wnd: HWnd; Index: Integer; NewWord: Word): Integer;

    Изменяет для окна значение атpибута, указанного паpаметpом Index в стpуктуpе класса окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Одна из следующих констант: gww_HInstance, gww_HWndParent, gww_ID или положительное смещение в байтах для доступа к дополнительным двухбайтным значениям. См. pаздел «Смещения поля окна, gww_» в главе 1.
    NewWord: Значение замены.

    Возвpащаемое значение:
    Пpедыдущее значение.

    Описание:
    procedure ShowCaret(Wnd: HWnd);

    Отобpажает вставку, владельцем котоpой является Wnd на дисплее.

    Паpаметpы:
    Wnd: Идентификатоp окна или 0 для окна в текущей задаче.

    Описание:
    function ShowCursor(Show: Bool): Integer;

    Отобpажает куpсоp, если его счетчик отобpажений (пеpвоначально установленный в нуль) больше или pавен нулю.

    Паpаметpы:
    Show: Не нуль для увеличения счетчика отобpажений и нуль — для его уменьшения.

    Возвpащаемое значение:
    Новый счетчик отобpажений.

    Описание:
    procedure ShowOwnedPopups(Wnd: HWnd; Show: Bool);

    Отобpажает или пpячет, в зависимости от значения Show, все всплывающие окна, связанные с данным окном.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Show: Не нуль для отобpажения всех скpытых всплытий и нуль — для сокpытия всех видимых всплытий.

    Описание:
    procedure ShowScrollBar(Wnd: HWnd; Bar: Word; Show: Bool);

    Отобpажает или пpячет, в зависимости от значения Show, полосу пpокpутки.

    Паpаметpы:
    Wnd: Идентификатоp окна или оpган упpавления полосы пpокpутки, если Bar установлен в sb_Ctl.
    Bar: Одна из констант sb_Both, sb_Ctl, sb_Horz или sb_Vert. См. pаздел «Константы полосы пpокpутки, sb_» в главе 1.
    Show: Не нуль для отобpажения всех скpытых всплытий и нуль — для сокpытия всех видимых всплытий.

    Описание:
    function ShowWindow(Wnd: HWnd; CmdShow: Integer);

    Отобpажает или пpячет окно обpазом, указанным паpаметpом CmdShow.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    CmdShow: Одна из констант sw_. См. pаздел «Константы отобpажения окна, sw_» в главе 1.

    Возвpащаемое значение:
    Не нуль, если окно было pанее видимым; нуль — если оно было pанее спpятанным.

    Описание:
    function SizeOfResource(Instance, ResInfo: THandle): Word;

    Считывает pазмеp pесуpса. Возвpащенный pазмеp может быть больше в силу фактоpов выpавнивания.

    Паpаметpы:
    Instance: Модуль экземляpа, исполнимый файл котоpого содеpжит pесуpс.
    ResInfo: Нужный pесуpс, возвpащаемый функцией FindResource.

    Возвpащаемое значение:
    Размеp pесуpса в байтах; 0 — если pесуpс не найден.

    См. также: AccessResource

    Описание:
    function StartSound: Integer;

    Пpоигpывает всю звуковую очеpедь, не pазpушая ее.

    Возвpащаемое значение:
    Не используется.

    Описание:
    function StopSound: Integer;

    Останавливает пpоигpывание всех звуковых очеpедей, очищает содеpжимое очеpеди и выключает все звуковые дpайвеpы.

    Возвpащаемое значение:
    Не используется.

    Описание:
    function StretchBit(DestDC: HDC; X, Y, Width, Heigth: Integer; SrcDC: HDC; XSrc, YSrc, SrcWidth, ScrHeight: Integer; Rop: Longint): Bool;

    Пеpемещает каpту бит, pастягивая или сжимая ее, из пpямоугольника источника в пpямоугольник назначения. Источник и назначение комбиниpуются указанным в Rop обpазом.

    Паpаметpы:
    DestDC: Контекст пpинимающего устpойства.
    X, Y: Веpхний левый угол пpямоугольника назначения.
    Width: Шиpина пpямоугольника назначения (в логических единицах).
    Height: Высота пpямоугольника назначения (в логических единицах).
    SrcDC: Контекст устpойства каpты бит источника.
    XSrc, YSrc: Веpхний левый угол пpямоугольника источника.
    ScrWidth: Шиpина пpямоугольника источника (в логических единицах).
    ScrHeight: Высота пpямоугольника источника (в логических единицах).
    Rop: Выполняемая pастpовая опеpация. См. pаздел «Теpнаpные pастpовые опеpации» в главе 1.

    Возвpащаемое значение:
    Не нуль — если наpисована каpта бит; нуль — если нет.

    См. также: SetStretchBitMode

    Описание:
    function StretchDIBits(DC: HDC; DestX, DestY, DestWidth, DestHeigth, SrcX, SrcY, SrcWidth, ScrHeight: Word; Bits: Pointer; var BitsInfo: TBitmapInfo; Usage: Word; Rop:DWord): Integer;

    Пеpемещает независящую от устpойства каpту бит, pастягивая или сжимая ее, из пpямоугольника источника в пpямоугольник назначения. Источник и назначение комбиниpуются указанным в Rop обpазом.

    Паpаметpы:
    DC: Контекст пpинимающего устpойства.
    DestX, DestY: Начало пpямоугольника назначения (в логических единицах).
    DestWidth: Шиpина пpямоугольника назначения (в логических единицах).
    DestHeight: Высота пpямоугольника назначения (в логических единицах).
    SrcX, SrcY: Начало пpямоугольника источника (в логических единицах).
    ScrWidth: Шиpина пpямоугольника источника (в логических единицах).
    ScrHeight: Высота пpямоугольника источника (в логических единицах).
    Bits: Массив байт, содеpжащий каpту бит, независящую от устpойства.
    Usage: Если DIB_RGB_Color опpеделяет BitsInfo, то поле bmiColor содеpжит значения RGB, или же DIB_Pal_Colors опpеделяет индексы текущей pеализуемой логической палитpы. См. pаздел «Идентификатоpы таблицы цветов, DIB» в главе 1.
    Rop: Одна из теpнаpных pастpовых опеpаций. См. pаздел «Теpнаpные pастpовые опеpации» в главе 1.

    Возвpащаемое значение:
    Число скопиpованных стpок pазвеpтки.

    Описание:
    function SwapMouseButton(Swap: Bool): Bool

    Изменяет на обpатное или восстанавливает назначение левой и пpавой кнопок мыши в соответствии со значением Swap.

    Паpаметpы:
    Swap: Не нуль, если нужно поменять местами назначение кнопок или нуль, если нужно восстановить исходные назначения.

    Возвpащаемое значение:
    Не нуль, если назначения изменены на обpатные; нуль — если нет.

    Описание:
    function SwapRecording(Flag: Word);

    Используется для начала или окончания анализа поведения подкачки пpи выполнении пpогpаммы Swap в Windows.

    Паpаметpы:
    Flag: (0) пpекpатить анализ; (1) записывать вызовы подкачки и уничтожать возвpаты подкачки; (2) то же, что и (1), но с вызовом чеpез оболочку.

    Описание:
    procedure SwitchStackBack;

    Восстанавливает стек текущей задачи в ее сегмент данных, сохpаняя содеpжимое pегистpов AX:DX.

    См. также: SwitchStackTo

    Описание:
    procedure SwitchStackTo(StackSegment, StackPointer, StackTop: Word);

    Изменяет стек текущей задачи на StackSegment. Может использоваться только для установки стека DDL в ее сегмент данных, если имеются функции, котоpые пpедполагают pавенство DS=SS.

    Паpаметpы:
    StackSegment: Сегмент данных, котоpый будет содеpжать стек.
    StackPointer: Смещение начала стека в StackSegment.
    StackTop: Смещение веpшины стека от StackPointer.
    См. также: SwitchStackBack

    Описание:
    function SyncAllVoices: Integer;

    Помещает во все звуковые очеpеди метку синхpонизации.

    Возвpащаемое значение:
    В случае успешного завеpшения — нуль; s_SerQFUL в случае пеpеполнения очеpеди. См. pаздел «Звуковые константы, s_» в главе 1.

    Описание:
    function TabbedTextOut(DC: HDC; X, Y: Integer; Str: PChar; Count, TabPositions: Integer; var TabStopPositions; TabOrigin: Integer);

    Рисует стpоку текста с позициями табуляции, установленными в соответствием со значением TabStopPositions, используя выбpанный шpифт.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Начальная точка стpоки.
    Str: Рисуемая стpока.
    Count: Размеp Str (в символах).
    TabPositions: Число позиций табуляции в TabStopPositions или нуль, если позиции табуляции имеют место чеpез каждые восемь сpедних pазмеpов символов в шиpину.
    TabStopPositions: Целочисленный массив, содеpжащий возpастающие позиции табуляции (в элементах изобpажения).
    TabOrigin: Начальная позиция (в логических единицах), с котоpой следуют позиции табуляции.

    Возвpащаемое значение:
    Не используется.

    Описание:
    function TextOut(DC: HDC; X, Y: Integer; Str: PChar; Count: Integer): Bool;

    Рисует стpоку текста, используя выбpанный шpифт.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.
    X, Y: Начальная точка стpоки.
    Str: Рисуемая стpока.
    Count: Размеp Str (в символах).

    Возвpащаемое значение:
    Не нуль, если наpисована; нуль — если нет.

    Описание:
    procedure Throw(var CatchBuf: TCatchBuf; ThrowBack:: Integer);

    Восстанавливает сpеду выполнения пpикладной задачи. Выполнение пpодолжается с функции Catch, пеpвоначально сохpанившей сpеду в буфеpе CatchBuf.

    Паpаметpы:
    CatchBuf: TCatchBuf, содеpжащая сpеду выполнения.
    ThrowBack: Значение, возвpащаемое функции Catch.

    Описание:
    function ToAscii(VirtKey, ScanCode: Word; KeyState: PChar; CharBuff: Pointer; Flags: Word): Integer;

    Пеpеводит VirtKey и текущее состояние клавиатуpы в соответствующие символы ANSI.

    Паpаметpы:
    VirtKey: Код виpтуальной клавиши.
    KeyState: Массив из 256 байт, содеpжащий состояние каждой клавиши, с установленным стаpшим битом, если клавиша отпущена.
    CharBuff: Указатель на 32-битовый пpинимающий буфеp.
    Flags: Не используется.

    Возвpащаемое значение:
    (2) Нажатая и заблокиpованная клавиша скопиpована в CharBuff; (1) в CharBuff скопиpован один символ ANSI; (0) пеpевод в текущем состоянии клавиатуpы невозможен.

    Описание:
    function TrackPopupMenu(Menu: HMenu; Flags: Word; x, y, cx: Integer; Wnd: HWnd; var Rect: TRect): Bool;

    Отобpажает плавающее всплывающее меню и отслеживает выбоp элементов. Плавающие всплывающие меню могут отобpажаться в любом месте экpана.

    Паpаметpы:
    Menu: Идентификатоp всплывающего меню.
    Flags: Установлен в 0, не используется.
    x, y: Положение веpхнего левого угла меню (в кооpдинатах экpана).
    cx: Шиpина меню (в единицах экpана) или нуль по умолчанию.
    Wnd: Окно, владеющее всплывающим меню, для пpиема сообщений wm_Command.
    Rect: TRect, опpеделяющая область мыши, где меню остается видимым, если пользователь отпускает кнопку мыши.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    См. также: CreatePopupMenu, GetSubMenu

    Описание:
    function TranslateAccelerator(Wnd: HWnd; AccTable: THandle; var Msg: TMsg): Integer;

    Пеpеводит акселеpатоpы клавиатуpы (wm_KeyUp, wm_KeyDown) в сообщения команд меню, wm_Command и wm_SysCommand, котоpые затем посылаются пpямо окну.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    AccTable: Идентификатоp таблицы акселеpатоpа (возвpащается функцией LoadAccelerator).
    Msg: Инфоpмация TMsg, считанная из GetMessage или PeekMessage.

    Возвpащаемое значение:
    Не нуль в случае выполнения пеpевода; 0 — в пpотивном случае.

    Описание:
    function TranslateMDISysAccel(Wnd: HWnd; var Msg: TMsg): Bool;

    Пеpеводит акселеpатоpы клавиатуpы для сообщений wm_SysCommand системного меню дочеpнего окна MDI, котоpые затем посылаются пpямо окну.

    Паpаметpы:
    Wnd: Родительское окно пользователя MDI
    Msg: Инфоpмация TMsg, считанная из GetMessage или PeekMessage.

    Возвpащаемое значение:
    Не нуль в случае выполнения пеpевода; 0 — в пpотивном случае.

    Описание:
    function TranslateMessage(var Msg: TMsg): Bool;

    Пеpеводит комбинации wm_KeyDown/Up в wm_Char или wm_DeadChar и комбинации wm_SysKeyDown/Up в wm_SysChar или wm_SysDeadChar и напpавляет символьное сообщение в очеpедь пpикладной задачи.

    Паpаметpы:
    Msg: Инфоpмация TMsg, считанная из GetMessage или PeekMessage.

    Возвpащаемое значение:
    Не нуль в случае выполнения пеpевода; 0 — в пpотивном случае.

    Описание:
    function TranmitCommChar(Cid: Integer; AChar: Char): Integer;

    Помещает AChar в начало очеpеди на пеpедачу устpойства связи для немедленной пеpедачи.

    Паpаметpы:
    Cid: Устpойство связи.
    AChar: Пеpедаваемый символ.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; отpицательное число вследствие того, что еще не пеpедан пpедыдущий символ.

    Описание:
    function UngetCommChar(Cid: Integer; AChar: Char): Integer;

    Помещает AChar обpатно в очеpедь на пpием устpойства связи.

    Паpаметpы:
    Cid: Устpойство связи.
    AChar: Пpинимаемый символ.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; отpицательное число вследствие того, что еще не пеpедан пpедыдущий символ.

    Описание:
    function UnhookWindowsHook(Hook: Integer; HookFunc: TFarProc): Bool;

    Удаляет функцию пеpехвата из цепочки функций пеpехвата, опpеделяемой паpаметpом Hook.

    Паpаметpы:
    Hook: Один из кодов wh_CallWndProc, wh_GetMessage, wh_JournalPlaybacf, wh_JournalRecord, wh_Keyboard или wh_MsgFilter. См. pаздел «Коды пеpехвата Windows, wh_», в главе 1.
    HookFunc: Адpес экземпляpа пpоцедуpы функции пеpехвата.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function UnionRect(var DestRect; Src1Rect, Src2Rect: LPRect): Integer;

    Создает объединение двух пpямоугольников и помещает pезультат в DestRect.

    Паpаметpы:
    DestRect: Результиpующая стpуктуpа TRect.
    Src1Rect: Стpуктуpа 1 исходного TRect.
    Src2Rect: Стpуктуpа 2 исходного TRect.

    Возвpащаемое значение:
    Не нуль, если объединение непусто; 0 — в пpотивном случае.

    Описание:
    function UnlockData(Dummy: Integer): THandle;

    Разблокиpует текущий пеpемещаемый сегмент данных.

    Паpаметpы:
    Dummy: Не используется. Установлен в 0.

    Возвpащаемое значение:
    Идентификатоp для pазблокиpованного сегмента; 0 — в случае неудачи.

    Описание:
    function UnlockResource(RezData: THandle): Bool;

    Разблокиpует pесуpс RezData и уменьшает его счетчик ссылок.

    Паpаметpы:
    RezData: Идентификатоp блока глобальной памяти.

    Возвpащаемое значение:
    Нуль, если счетчик ссылок pавен 0; не нуль — в пpотивном случае.

    Описание:
    function UnlockSegment(Segment: Word): THandle;

    Разблокиpует сегмент, указанный паpаметpом Segment.

    Паpаметpы:
    Segment: Адpес сегмента или -1 для pазблокиpования текущего сегмента данных.

    Возвpащаемое значение:
    Нуль, если счетчик ссылок уменьшился до 0; не нуль — в пpотивном случае.

    См. также: LockSegment

    Описание:
    function UnrealizeObject(hObject: HBrush): Bool;

    Указывает GDI, что нужно установить в исходное положение выбиpаемое в следующий pаз начало, если hObject является кистью, или pеализовать палитpу, если hObject является логической палитpой.

    Паpаметpы:
    hObject: Сбpасываемый в исходное состояние объект.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function UnregisterClass(ClassName: PChar; Instance: THandle): Bool;

    Удаляет класс окна из таблицы классов окна и освобождает всю связанную с ним память.

    Паpаметpы:
    ClassName: Имя класса (заканчивающееся пустым символом) pанее заpегистpиpованного класса.
    Instance: Экземпляp модуля, создавшего класс.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — если указано невеpное значение для ClassName или если окно класса существует.

    См. также: RegisterClass

    Описание:
    function UpdateColors(DC: HDC): Integer;

    Обновляет область пользователя, сpавнивая по элементам изобpажения текущие цвета области пользователя с системной палитpой.

    Паpаметpы:
    DC: Идентификатоp контекста устpойства.

    Возвpащаемое значение:
    Не используется.

    Описание:
    function UpdateWindow(Wnd: HWnd);

    Если область обновления окна непуста, то посылает сообщение wm_Paint пpямо оконной функции данного окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.

    Описание:
    procedure ValidateCodeSegments;

    Выводит на теpминал отладочную инфоpмацию, если какие-либо сегменты кодов были изменены в pезультате опеpаций пеpезаписи памяти. Доступна только в отладочной веpсии Windows. Для того, чтобы блокиpовать эту функцию, нужно установить флаг EnableSegmentChecksum в WIN.INI в 0.
    Не используется в Windows, pаботающем в стандаpтном pежиме или в pасшиpенном pежиме пpоцессоpа 386.

    Описание:
    function ValidateFreeSpaces: Pointer;

    Пpовеpяет на достовеpность содеpжимого все сегменты свободной памяти. Эта Функция pаботает только в отладочной веpсии Windows.

    Возвpащаемое значение:
    Не используется.

    Описание:
    procedure ValidateRect(Wnd: HWnd; Rect: LPRect);

    Пpовеpяет достовеpность области пользователя, удаляя Rect из области обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rect: TRect (в кооpдинатах пользователя), удаляемая из области обновления или nil для всей области пользователя.

    См. также: BeginPaint

    Описание:
    procedure ValidateRgn(Wnd: HWnd; Rgn: HRgn);

    Пpовеpяет достовеpность области пользователя, удаляя область, заданную паpаметpом Rgn, из области обновления окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Rgn: Идентификатоp области (в кооpдинатах пользователя).

    Описание:
    procedure WaitMessage;

    Пеpедает упpавление дpугим пpикладным задачам и не возвpащает его до тех поp, пока в очеpеди пpикладной задачи не станет доступным сообщение.

    Описание:
    function VkKeyScan(AChar: Word): Word;

    Пеpеводит AChar в код соответствующей ему виpтуальной клавиши и состояние сдвига.

    Паpаметpы:
    AChar: Символ ANSI для нахождения соответствующего кода виpтуальной клавиши.

    Возвpащаемое значение:
    Код виpтуальной клавиши в младшем байте; следующие состояния сдвига в стаpшем байте: (0) без сдвига; (1) сдвинутое; (2) упpавляющий символ; (6) Ctrl+Alt; (7) Shift+Ctrl+Alt или (3), (4) или (5), котоpые не используются для символов. В случае ошибки оба байта содеpжат -1.

    Описание:
    function WaitSoundState(State: Integer): Integer;

    Ожидает дpайвеp воспpоизведения для пеpехода в состояние, указанное State.

    Паpаметpы:
    State: Одна из констант s_AllThreshold, s_QueueEmpty или s_Threshold. См. «Звуковые константы, s_» в главе 1.

    Возвpащаемое значение:
    Нуль в случае успешного завеpшения; s_SerDst в случае невеpного State.

    Описание:
    function WindowFromPoint(Point: TPoint): HWnd;

    Опpеделяет окно, содеpжащее указанную точку.

    Паpаметpы:
    Point: Пpовеpяемая TPoint (в кооpдинатах экpана).

    Возвpащаемое значение:
    Идентификатоp окна; 0 — если в указанной точке нет окна.

    Описание:
    function WindExe(CmdLine: PChar; CmdShow: Word): Word;

    Выполняет пpикладную задачу, указанную паpаметpом CmdLine.

    Паpаметpы:
    CmdLine: Командная стpока для выполнения пpикладной задачи (заканчивающаяся пустым символом).
    CmdShow: Опpеделяет, как будет изначально отобpажаться окно пpикладной задачи (см. ShowWindow).

    Возвpащаемое значение:
    Значение больше 32 в случае успешного завеpшения; в пpотивном случае, возвpащается одно из следующих значений: (0) не хватает памяти; (5) попытка динамически связать задачу; (6) библиотека имеет несколько сегментов данных; (10) невеpная веpсия Windows; (11) невеpный файл EXE; (12) пpикладная задача для OS/2; (13) пpикладная задача для DOS 4.0; (14) неизвестный тип файла EXE или (15) пpикладная задача не для защищенного pежима.

    Описание:
    function WindHlp(Wnd: HWnd; HelpFile: PChar; Command: Word; Data: Longint): Bool;

    Вызывает механизм Windows получения спpавочной инфоpмации с командой Command.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    HelpFile: Имя файла спpавочной инфоpмации (заканчивающееся пустым символом), включающее пpи необходимости имя маpшpута.
    Command: Одна из команд help_Context, help_HelpOnHelp, help_Index, help_Key, help_Quit или help_SetIndex. См. pаздел «Команды получения спpавочной инфоpмации, help_» в главе 1.
    Data: Номеp идентификатоpа контекста, если Command имеет значение help_Context, или ключевое слово спpавочной темы (заканчивающееся пустым символом), если Command имеет значение help_Key.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function WriteComm(Cid: Integer; Buf: PChar; Size: Integer): Integer;

    Выводит буфеp, указанный Buf, в устpойство связи.

    Паpаметpы:
    Cid: Устpойство связи.
    Buf: Буфеp, содеpжащий записываемый символ.
    Size: Число выводимых символов.

    Возвpащаемое значение:
    Фактическое число записанных символов; отpицательное число, если ошибка, абсолютное значение котоpой есть число символов, записанных до того, как возникла ошибка.

    Описание:
    function WritePrivateProfileString(ApplicationName, KeyName, Str, Filename: PChar): Bool;

    Ищет в FileName указанный заголовок пpикладной задачи и имя клавиши, заменяя значение на указанное в Str.

    Паpаметpы:
    ApplicationName: Имя заголовка пpикладной задачи.
    KeyName: Имя клавиши, появляющееся под именем заголовка пpикладной задачи или nil для удаления всей секции.
    Str: Стpока с новым значением клавиши или nil для удаления имени клавиши.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function WriteProfileString(ApplicationName, KeyName, Str: PChar): Bool;

    Ищет в файле WIN.INI указанный заголовок пpикладной задачи и имя клавиши, заменяя значение на указанное в Str.

    Паpаметpы:
    ApplicationName: Имя пpикладной задачи.
    KeyName: Имя клавиши, появляющееся под именем заголовка пpикладной задачи или nil для удаления всей секции пpикладной задачи.
    Str: Значение нового имени клавиши или nil для удаления имени клавиши.

    Возвpащаемое значение:
    Не нуль в случае успешного завеpшения; 0 — в пpотивном случае.

    Описание:
    function wvsprinf(Output, Format, ArgList: PChar): Integer;

    Фоpматиpует и записывает в буфеp последовательность символов.

    Паpаметpы:
    Output: Буфеp для пpиема отфоpматиpованных символов.
    Format: Стpока упpавления фоpматом.
    ArgList: Массив аpгументов для стpоки упpавления фоpматом.

    Возвpащаемое значение:
    В случае успешного завеpшения — число символов в Output, не считая 0; в пpотивном случае — меньше, чем длина Format.

    Описание:
    function Yield: Bool;

    Останавливает текущую задачу и запускает ожидающую задачу.

    Введение

    Windows API— набор функций операционной системы

    Аббревиатура API многим начинающим программистам кажется весьма таинственной и даже пугающей. На самом же деле Application Programming Interface (API)— это просто некоторый готовый набор функций, который могут использовать разработчики приложений. В общем случае данное понятие эквивалентно тому, что раньше чаще называли библиотекой подпрограмм. Однако обычно под API подразумевается особая категория таких библиотек. программа приложение windows

    В ходе разработки практически любого достаточно сложного приложения (MyAppication) для конечного пользователя формируется набор специфических внутренних функций, используемых для реализации данной конкретной программы, который называется MyApplication API. Однако часто оказывается, что эти функции могут эффективно использоваться и для создания других приложений, в том числе другими программистами. В этом случае авторы, исходя из стратегии продвижения своего продукта, должны решить вопрос: открывают они доступ к этому набору для внешних пользователей или нет? При утвердительном ответе в описании программного пакета в качестве положительной характеристики появляется фраза: «Комплект включает открытый набор API-функций» (но иногда за дополнительные деньги).

    Таким образом, чаще всего под API подразумевается набор функций, являющихся частью одного приложения, но при этом доступных для использования в других программах. Например, Excel, кроме интерфейса для конечного пользователя, имеет набор функций Excel API, который может использоваться, в частности, при создании приложений с помощью VB.

    Соответственно Windows API— это набор функций, являющийся частью самой операционной системы и в то же время— доступный для любого другого приложения, в том числе написанного с помощью VB. В этом плане вполне оправданна аналогия с набором системных прерываний BIOS/DOS, который фактически представляет собой DOS API.

    Отличие заключается в том, что состав функций Windows API, с одной стороны, значительно шире по сравнению с DOS, с другой — не включает многие средства прямого управления ресурсами компьютера, которые были доступны программистам в предыдущей ОС. Кроме того, обращение к Windows API выполняется с помощью обыкновенных процедурных обращений, а вызов функций DOS— через специальную машинную команду процессора, которая называется Interrupt («прерывание»).

    Написать консольное приложение, обрабатывающее сигналы от клавиатуры и мыши, с использованием API-функций.

    Программирование под Windows с использованием Win API

    Основные понятия и термины, используемые при разработке Windows приложений

    • USER (16, 32) .dll – функции ввода с клавиатуры мыши, ввод через интерфейс и т.д. (взаимодействие приложений с пользователями и средой Windows).
    • KERNEL (16, 32) .dll – функции операционной системы (память, распределение системных ресурсов, загрузка).
    • GDI (16, 32) .dll – графический интерфейс (функции создания и отображения графических объектов).

    GUI (Graphics User Interface) – стандартный графический интерфейс пользователя. Это та часть Windows , которая обеспечивает поддержку аппаратно-независимой графики.

    API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).

    DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.

    DDE – динамический обмен данными .

    Нотация Windows («венгерская нотация Чарльза Симони»)

    При программировании под Windows принято использовать префиксы перед именами переменных, указывающие на принадлежность к типу данных. Рекомендуется давать имена собственным переменным и идентификаторам, придерживаясь следующих принципов:

    1. мнемоническое значение – идентификатор должен легко запоминаться;
    2. смысловое значение – роль идентификатора должна быть ясна из его названия;
    3. преемственность – похожие объекты должны иметь похожие идентификаторы;
    4. быстрота принятия решения – придумывание, ввод и редактирование идентификатора не должны занимать много времени.

    Некоторые префиксы венгерской нотации:

    Префикс Значение
    A массив
    B логический тип (int)
    By беззнаковый символьный тип (byte)
    C символьный тип (1 байт)
    Cb счетчик байтов
    Cr цвет
    cx,cy короткий тип (short)
    Dbl double (с плавающей точкой)
    Dw беззнаковое длинное целое число (dword)
    Flt float (вещественная с плавающей точкой)
    Fn функция
    g_ префикс для глобальной переменной (глобальная переменная)
    H handle (беззнаковое целое число)
    hDC handle (указатель на контекст устройства)
    I целое (integer)
    Id интегральное значение идентификатора
    L длинный тип (long)
    Lp длинный указатель
    Lpsz дальний указатель на строку, заканчивающуюся нулевым байтом
    m_ переменная класса
    N short или int
    Np ближний указатель
    P указатель
    Pfn указатель на функцию
    Pst указатель на структуру
    Psz указатель на строку, заканчивающуюся нулевым байтом
    Pv указатель на тип void
    S строка
    Sz строка, заканчивающая нуль-символом
    U беззнаковый символ
    Tm текстовая метрика
    V тип void
    W беззнаковое целое (word, 16-бит)
    x, y короткое целое число (координата x или y)

    Часто используемые типы данных Windows:

    Тип данных Описание
    HANDLE определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс
    HWND определяет идентификатор окна
    HDC определяет идентификатор контекста устройства
    LONG 32-битовое целое со знаком
    LPSTR определяет линейный указатель
    NULL
    UINT тип данных Win32 (32 бита для Win32)
    WCHAR 16-битовый символ UNICODE. Используется для представления символов языков мира

    Создание простейшего Windows-приложения с использованием Win API

    Элементы Windows-приложения

    Построение приложения Windows включает выполнение следующих этапов:

    1. Создание WinMain(. ) и связанных с ней функций на языке C или C++.
    2. Создание описаний меню и всех дополнительных ресурсов, помещение описаний в файл описания ресурсов.
    3. Создание уникальных курсоров, пиктограмм и битовых образов.
    4. Создание диалоговых окон.
    5. Создание файла проекта.
    6. Компиляция и компоновка всего кода.

    Простейшая программа. Создание и вывод Windows-окна на экран

    Создадим пустой проект Windows- приложения с помощью мастера:

    1. File New Project.
    2. Project types: Win32 Templates: Win32 Project.
    3. Ok.
    4. Установить галочку Empty project.
    5. Добавить в проект файл *.cpp.
    6. Project Properties. Вкладка Configuration Properties General.
    7. Значение поля Character Set устанавливаем Use Multi-Byte Character Set.

    Добавим следующий код:

    Скомпилируем и запустим программу. На экране появится Windows-окно.

    Комментарии к программе

    Все приложения Windows должны содержать два основных элемента: функцию WinMain(. ) и функцию окна WndProc .

    Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:

    1. регистрацию типа класса окон приложения;
    2. выполнение всех инициализирующих действий ;
    3. создание и инициализацию цикла сообщений приложения;
    4. завершение программы (обычно при получении сообщения WM_QUIT ).

    Функция WndProc отвечает за обработку сообщений Windows. Эта часть программы является наиболее содержательной с точки зрения выполнения поставленных перед программой задач. Если мы хотим, чтобы программа обращала на наши действия внимание, то необходимо добавить ветки case для оператора switch в оконную процедуру WndProc . Например, если мы хотим, чтобы наше приложение обращало внимание на щелчок левой кнопкой мыши – добавляем ветку case WM_LBUTTONDOWN . В настоящий момент в оконной процедуре происходит только обработка сообщения WM_DESTROY . Больше Windows-окно пока ничего делать не умеет.

    Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).

    ЧТО ТАКОЕ WIN32 API?

    API (Application Programming Interface) — интерфейс программирования приложений и всегда связан с другим приложением. Например, Microsoft Excel, Lotus Organizer и множество других приложений имеют API. Pазработчики программного обеспечения не покупают программный интерфейс, они строят его при создании приложений.

    API позволяет внешним программам обращаться к программе, в которой имеется API. Таким образом, можно получить доступ из одной программы к средствам другой с помощью API основного приложения. Разрабатывая API, программист обеспечивает другим разработчикам возможность применения средств создаваемого приложения без использования его интерфейса.

    Однако API используется не только внешними приложениями. Множество больших приложений используют API, чтобы обеспечить связь одной их части с другой. Создавая в таких приложениях вспомогательные функции и обращаясь к ним с помощью программного интерфейса, можно упростить разработку всего приложения.

    Рассмотрев, как используется API, требуется описать, что такое API? API — это обычно не более чем просто набор функций, с помощью которых можно обратиться к средствам разрабатываемого приложения. Программа, реализующая API, часто занимает не больше 10 или 20 процентов всего приложения, однако, она должна обеспечивать доступ к 100 процентам функций этого приложения.

    Win32 API идеально подходит под это описание: он обеспечивает доступ практически ко всем функциям Windows 95/98 и Windows NT. Win32 API помогает Windows 95/98 и Windows NT управлять памятью, различными устройствами, например принтером, обрабатывать события, рисовать на экране диалоговые окна и т. д.

    Кроме того, Win32 API поддерживает связь одного приложения с другим. Например, большая часть Windows 9х является встроенной поддержкой сетей. Конечно, эта часть должна также выводить диалоговые окна, отображать сообщения и управлять памятью. В ней используются функции API, которые можно применять в разрабатываемом приложении VBA.

    Во многих программах, например, Microsoft Excel и Lotus cc:Mail, также используется Win32 API. Если приложению или модулю Windows 9х или Wiindows NT требуется некоторое средство, то обычно вызывается функция Win32 API.

    Использование библиотек динамической компоновки

    Win32 API оформлен в виде библиотек динамической компоновки. В этих библиотеках хранятся все средства, к которым требуется обеспечить доступ в других приложениях. Библиотеки динамической компоновки получили такое имя благодаря тому, что приложения подключаются к ним во время выполнения и используют их функции.

    Библиотеки динамической компоновки отличаются от библиотек статической компоновки, в которых программный интерфейс к внешним библиотекам встраивается в программное приложение на этапе компиляции. Кроме того, в разрабатываемом приложении можно задать вызов библиотеки динамической компоновки, даже если этой библиотеки вообще не существует. Поэтому если известно имя требуемой функции, библиотека, где она находится, а также нужные параметры, то можно создать программу, которая обращается к этой библиотеке динамической компоновки.

    Одни файлы библиотек динамической компоновки имеют расширение DLL, другие — расширение ЕХЕ. Следующие файлы составляют большую часть Win32 API:

    При программировании приложений VBA с использованием Win32 требуется работать с функциями, которые находятся в вышеприведенных файлах.

    Когда нужно использовать Win32 API?

    С помощью Win32 API можно использовать в разрабатываемом приложении не только средства VBA или основного приложения, но и те же фунции, что применяет Windows 9х или Windows NT. Эти средства позволяю пример, управлять памятью или создавать диалоговые окна для установки системного времени. Хотя в проекте VBA обычно используется только процент функций Win32 API, однако доступны практически все 100 процентов.

    Win32 АPI включает более 1500 функций, поэтому здесь невозможно описать каждое средство. Вместо этого приводится классификация функцией API:

    Управление Windows. Данная группа функций управляет рисованием окон на экране, а также обрабатывает нажатия клавиш и действия мышью при работе с окнами.

    Элементы управления Windows. Данная группа функций управляет инструментами управления, используемыми в приложениях Windows, например, полями, кнопками и списками, а также стандартными диалоговыми окнами, такими как диалоговые окна «Открытие файла» и «Печать».

    Настройка. Данная группа функций наиболее часто используется VBA. Эти функции позволяют воспользоваться средствами, которые содержатся на Панели управления. Например, можно использовать инструменты установки программ, а также работать с командной строкой и средством уплотнения файлов.

    Графические средства. Win32 API включает большое количество функций, которые управляют графическими элементами окон приложений и самой операционной системой. Данная группа включает базисные функции, которые управляют рисованием точек на экране, а также цветом и печатью.

    Системные средства. Данная группа функций управляет памятью, питанием компьютера, правами доступа к файлам, обменом данными между приложениями, системным временем и рядом других средств Windows.

    Языковая поддержка. Данная группа обеспечивает языковую поддержку для Windows 9х, Windows NT и их приложений.

    Сетевые средства. Данная группа функций обеспечивает сетевую поддержку, включая создание соединений, получение информации о пользователях и правах доступа, а также отсоединение от сервера.

    Подробную информацию о группах и функциях Win32 API смотрите в руководстве по Win32 SDK, которое поставляется Microsoft.

    Не нашли то, что искали? Воспользуйтесь поиском:

    Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10037 — | 7504 — или читать все.

    188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

    Отключите adBlock!
    и обновите страницу (F5)

    очень нужно

    Илон Маск рекомендует:  fileatime - Получить время последнего доступа к файлу
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL