Наиболее известные API

  • API операционных систем
    • POSIX
    • Windows API
    • Cocoa
    • Linux Kernel API
    • OS/2 API
    • Amiga ROM Kernel
  • API графических интерфейсов
    • OpenGL
    • OpenVG
    • X11
    • Qt
    • GTK
    • Motiff
    • Tk
    • GDI
    • GDI+
    • Direct3D (часть DirectX)
    • DirectDraw (часть DirectX)
    • Zune
    • SDL
  • API звуковых интерфейсов
    • DirectSound (часть DirectX)
    • DirectMusic (часть DirectX)
    • OpenAL
  • API аутентификационных систем
    • BioAPI
    • PAM
  • Web API
    • Используется в веб-разработке, как правило, определенный набор HTTP запросов, а также определение структуры HTTP ответов. Для выражения которых используют XML или JSON форматы. «Web API» является практически синонимом для веб-службы, хотя в последнее время за счет тенденции Web 2.0, осуществлен переход от SOAP к REST типу коммуникации. Веб-интерфейсы обеспечивающие сочетание нескольких сервисов в новых приложениях известны как гибридные.

· Структура окон, функций, сообщений

· Сообщения являются реакцией системы Windows на различные происходящие в системе события: движение мыши, нажатие клавиши, срабатывание таймера и т. д. Отличительным признаком сообщения является его код, который может принимать значения (для системных сообщений) от 1 до 0x3FF. Каждому коду соответствует своя символическая константа, имя которой достаточно ясно говорит об источнике сообщения. Так, при движении мыши возникают сообщения WMMOUSEMOVE (код 0x200), при нажатии на левую клавишу мыши - сообщение WMLBUTTONDOWN (код 0x201), при срабатывании таймера - WMJTTMER (код Ох 113).

· Перечисленные события относятся к числу аппаратных; однако сообщения могут возникать и в результате программных действий системы или прикладной программы. Так, по ходу создания и вывода на экран главного окна Windows последовательно посылает в приложение целую группу сообщений, сигнализирующих об этапах этого процесса: WMGETMINMAXINFO для уточнения размеров окна, WMJ5RASEBK.GND при заполнении окна цветом фона, WMJ3IZE при оценке размеров рабочей области окна, WM PAINT для получения от программы информации о содержимом окна и многие другие. Некоторые из этих сообщений Windows обрабатывает сама; другие обязана обрабо-
тать прикладная программа.

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

·

· Оконная функция вызывается, как только в структуру Msg попадает очередное сообщение, извлеченное из входной очереди. Задача оконной функции - определить природу сообщения и обработать его соответствующим образом. Из заголовка оконной функции LRESULT CALLBACK WndProc(HWND hwnd.UINT msg,WPARAM wParam,LPARAM lParam) видно, что она получает при активизации ее (функцией DispatchMessage()) 4 параметра. Первый параметр (hwnd) - дескриптор окна, которому предназначено данное сообщение. Это тот самый дескриптор, который был получен нами как результат работы функции CreateWindow(). Теперь этот же дескриптор вернулся к нам из Windows как параметр оконной функции. Он особенно полезен в тех случаях, когда на базе одного класса создается несколько различающихся чем-то окон. Если класс один, то и оконная функция для всех этих окон одна; анализируя тогда параметр hwnd, программа может определить, в какое именно окно пришло сообщение. У нас окно одно, однако аргумент hwnd все же понадобится.

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

·