Титульный

28.01.2018


DECLARE_HANDLE

 Top Previous Next

Недокументированный макрос, использующийся для объявления некоторых типов данных.

Прототип

void DECLARE_HANDLE{

char _type[]

}

Параметры

_type

Наименование объявляемого типа данных.

Возвращаемое значение

Макрос ничего не возвращает.

Реализация

#ifdef STRICT

#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n

#else

#define DECLARE_HANDLE(n) typedef HANDLE n

Если квалификатор STRICT (включает более строгий контроль за типами данных) не объявлен, то тип _type объявляется как эквивалентен типа HANDLE. Если же он объявлен, то тип _type объявляется как указатель на структуру _type__, содержащую одно поле типа int.

Примечание

Рассмотри пример. Пусть мы объявляем тип:

DECLARE_HANDLE(ABC);

Если квалификатор STRICT не объявлен, то тип ABC объявляется как эквивалент типа HANDLE:

typedef HANDLE ABC

Если же квалификатор STRICT объявлен, то тип ABC объявляется так:

typedef struct ABC__{

int i;

}*ABC

Заголовочный файл Winnt.h (включен в Windows.h)


DIBINDEX

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

Прототип

LONG DIBINDEX(

WORD wColorTableIndex

);

Параметры

wColorTableIndex

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

Возвращаемое значение

Спецификатор номера в таблице цветов в форме значения типа COLORREF.

Реализация

#define DIBINDEX(n) MAKELONG((n),0x10FF)

Примечание

DIBINDEX индексирует цвета в таблице цветов DIB похожим образом, что PALETTEINDEX индексирует цвета в логической палитре.

DIBINDEX также работает с 16-разрядными растровыми изображениями и контекстами устройств (DCs).

Заголовочный файл Mmsystem.h (включен в Windows.h)


GET_APPCOMMAND_LPARAM

Извлекает из параметра LPARAM команду приложения.

Прототип

short GET_APPCOMMAND_LPARAM(

LPARAM lParam

);

Параметры

lParam

Конвертируемое значение

Возвращаемое значение

Биты старшего слова, содержащие команду приложения.

Реализация

#define FAPPCOMMAND_MASK 0xF000

#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))

Заголовочный файл Winuser.h (включен в Windows.h)


GET_DEVICE_LPARAM

Извлекает из параметра LPARAM тип устройства ввода.

Прототип

WORD GET_DEVICE_LPARAM(

LPARAM lParam

);

Параметры

lParam

Конвертируемое значение.

Возвращаемое значение

Бит старшего слова, задающий тип устройства ввода.

Реализация

#define FAPPCOMMAND_MASK 0xF000

#define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))

Примечание

Данный макрос эквивалентен макросу GET_MOUSEORKEY_LPARAM.

Заголовочный файл Winuser.h (включен в Windows.h)


GET_FLAGS_LPARAM

Извлекает из параметра LPARAM состояние отдельных виртуальных клавиш.

Прототип

int GET_FLAGS_LPARAM(

LPARAM lParam

);

Параметры

lParam

Значение, из которого извлекается состояние клавиши.

Возвращаемое значение

Младшее слово, содержащее состояние виртуальной клавиши.

Реализация

#define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))

Примечание

Данный макрос эквивалентен макросу GET_KEYSTATE_LPARAM.

Заголовочный файл Winuser.h (включен в Windows.h)


GET_KEYSTATE_LPARAM

Извлекает из параметра LPARAM состояние отдельных виртуальных клавиш.

Прототип

int GET_KEYSTATE_LPARAM(

LPARAM lParam

);

Параметры

lParam

Значение, из которого извлекается состояние клавиш.

Возвращаемое значение

Младшее слово, содержащее состояние виртуальной клавиши.

Реализация

#define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)

Примечание

Данный макрос эквивалентен макросу GET_FLAGS_LPARAM.

Заголовочный файл Winuser.h (включен в Windows.h)


GET_MOUSEORKEY_LPARAM

Извлекает из параметра LPARAM тип устройства ввода.

Прототип

WORD GET_MOUSEORKEY_LPARAM(

LPARAM lParam

);

Параметры

lParam

Конвертируемое значение.

Возвращаемое значение

Бит старшего слова, задающий тип устройства ввода.

Реализация

#define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM

Примечание

Данный макрос эквивалентен макросу GET_DEVICE_LPARAM.

Заголовочный файл Winuser.h (включен в Windows.h)


GET_X_LPARAM

Извлекает знаковое значение координаты по горизонтали из значения типа LPARAM.

Прототип

int GET_X_LPARAM(

LPARAM lParam

);

Параметры

lParam

Значение типа LPARAM, из которого извлекается координата.

Возвращаемое значение

Мадшее слово значения типа LPARAM.

Реализация

#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))

Заголовочный файл Windowsx.h (включен в Windows.h)


GET_XBUTTON_WPARAM

Извлекает из параметра wparam состояние определенных кнопок.

Прототип

int GET_XBUTTON_WPARAM(

WPARAM wParam

);

Параметры

wParam

Значение, из которого извлекается состояние кнопок.

Возвращаемое значение

Старшее слово задающее, какая кнопка была отпущена. Допустимые значения првиелены ниже.

XBUTTON1 (0x0001) - была отпущена первая дополнительная кнопка.

XBUTTON2 (0x0002) - была отпущена вторая дополнительная кнопка.

Реализация

#define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))

Заголовочный файл Winuser.h (включен в Windows.h)


GET_Y_LPARAM

Извлекает знаковое значение координаты по вертикали из значения типа LPARAM.

Прототип

int GET_Y_LPARAM(

LPARAM lParam

);

Параметры

lParam

Значение типа LPARAM, из которого извлекается значение координаты.

Возвращаемое значение

Старшее слово значения типа LPARAM.

Реализация

#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))

Заголовочный файл Windowsx.h (включен в Windows.h)


GetBValue

Возвращает интенсивность синего цвета для значения цвета в формате RGB.

Прототип

BYTE GetBValue(

DWORD rgb

);

Параметры

rgb

Цвет в формате RGB.

Возвращаемое значение

Интенсивность синего цвета в цвете формата RGB.

Реализация

#define GetBValue(c) ((BYTE)((c)>>16))

Примечание

Значение интенсивности находится в интервале от 0 до 255.

Заголовочный файл Wingdi.h (включен в Windows.h)


GetGValue

Возвращает интенсивность зеленого цвета для значения цвета в формате RGB.

Прототип

BYTE GetGValue(

DWORD rgb

);

Параметры

rgb

Цвет в формате RGB.

Возвращаемое значение

Интенсивность зеленого цвета в цвете формата RGB.

Реализация

#define GetGValue(c) ((BYTE)(((WORD)(c))>>8))

Примечание

Значение интенсивности находится в интервале от 0 до 255.

Заголовочный файл Wingdi.h (включен в Windows.h)


GetRValue

Возвращает значение интенсивности красного цвета для значения цвета в формате RGB.

Прототип

BYTE GetRValue(

DWORD rgb

);

Параметры

rgb

Значение цвета в формате RGB.

Возвращаемое значение

Интенсивность красного цвета в цвете формата RGB.

Реализация

#define GetRValue(c) ((BYTE)(c))

Примечание

Значение интенсивности находится в интервале от 0 до 255.

Заголовочный файл Wingdi.h (включен в Windows.h)


HIBYTE

Возвращает старший байт заданного 16-разрядного числа.

Прототип

BYTE HIBYTE(

WORD wValue

);

Параметры

wValue

Значение, из которого извлекается старший байт.

Возвращаемое значение

Старший байт заданного значения.

Реализация

#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))

Заголовочный файл Windef.h (включен в Windows.h)


HIWORD

Возвращает старшее слово заданного 32-разрядного значения.

Прототип

WORD HIWORD(

DWORD dwValue

);

Параметры

dwValue

Значение, из которого извлекается старшее слово.

Возвращаемое значение

Старшее слово заданного значения.

Реализация

#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))

Заголовочный файл Windef.h (включен в Windows.h)


IS_INTRESOURCE

Определяет, является ли полученное значение целочисленным идентификатором ресурса.

Прототип

BOOL IS_INTRESOURCE(

const void *p

);

Параметры

p

Указатель, который проверяется на содержание в нём целочисленного идентификатора.

Возвращаемое значение

Если полученное значение является целочисленным идентификатором ресурса, то макрос возвращает значение TRUE. В противном случае, он возвращает значение FALSE.

Реализация

#define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0)

Примечание

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

Заголовочный файл Winuser.h (включен в Windows.h)


LANGIDFROMLCID

Извлекает идентификатор языка из идентификатора локали.

Прототип

WORD LANGIDFROMLCID(

LCID lcid

);

Параметры

lcid

Идентификатор локали. Для создания значения этого типа вы можете использовать макрос MAKELCID, или одно из предопределеннных значений.

LOCALE_INVARIANT

LOCALE_SYSTEM_DEFAULT

LOCALE_USER_DEFAULT

Начиная с Windows Vista также поддерживаются значения:

LOCALE_CUSTOM_DEFAULT

LOCALE_CUSTOM_UI_DEFAULT

LOCALE_CUSTOM_UNSPECIFIED

Возвращаемое значение

Идентификатор языка.

Реализация

#define LANGIDFROMLCID(lcid) ((WORD )(lcid))

Заголовочный файл Winnt.h (включен в Windows.h)


LOBYTE

Возвращает младший байт заданного значения.

Прототип

BYTE LOBYTE(

WORD wValue

);

Параметры

wValue

Значение, из которого извлекается младший байт.

Возвращаемое значение

Младший байт заданного значения.

Реализация

#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))

Заголовочный файл Windef.h (включен в Windows.h)


LOWORD

Возвращает младшее слово заданного значения.

Прототип

WORD LOWORD(

DWORD dwValue

);

Параметры

dwValue

Значение, из которого извлекается младшее слово.

Возвращаемое значение

Младшее слово заданного значения.

Реализация

#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))

Заголовочный файл Windef.h (включен в Windows.h)


MAKEINTRESOURCE

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

Прототип

LPTSTR MAKEINTRESOURCE(

WORD wInteger

);

Параметры

wInteger

Конвертируемое целое значение.

Возвращаемое значение

Значение, в котором младшее слово содержит заданное конвертируемое число, а старшее слово - нуль.

Реализация

#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))

#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))

#ifdef UNICODE

#define MAKEINTRESOURCE MAKEINTRESOURCEW

#else

#define MAKEINTRESOURCE MAKEINTRESOURCE

#endif

Примечание

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

Заголовочный файл Winuser.h (включен в Windows.h)


MAKELANGID

Создает идентификатор языка из идентификатора основного языка и идентификатора диалекта.

Прототип

WORD MAKELANGID(

USHORT usPrimaryLanguage,

USHORT usSubLanguage

);

Параметры

usPrimaryLanguage

Идентификатор основного языка. Идентификатор может быть предопределенным значением или определенным пользователем значением для основного языка. Для определенных пользователем языков значение находится в интервале от 0x0200 до 0x03FF. Все прочие значения зарезервированы для использования операционной системой.

usSubLanguage

Идентификатор диалекта (sublanguage). Данный параметр может содержать предопределенный идентификатор диалекта или идентификатор определенного пользователем диалекта. Идентификатор определенного пользователем диалекта должен находиться в интервале от 0x20 до 0x3F. Все прочие значения зарезервированы для использования операционной системой.

Возвращаемое значение

Идентификатор языка.

Реализация

#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))

Примечание

Таблица ниже показывает сочетания параметров usPrimaryLanguage и usSubLanguage, которые имеют специальное значение.

Идентификатор основного языка | Идентификатор диалекта | Описание
LANG_NEUTRAL | SUBLANG_NEUTRAL | нейтральный язык
LANG_NEUTRAL | SUBLANG_DEFAULT | язык по умолчанию
LANG_NEUTRAL | SUBLANG_SYS_DEFAULT | системный язык по умолчанию
LANG_NEUTRAL | SUBLANG_CUSTOM_DEFAULT | Windows Vista и новее: пользовательская локаль по умолчанию
LANG_NEUTRAL | SUBLANG_CUSTOM_UNSPECIFIED | Windows Vista и новее: неопределенная (unspecified) пользовательская локаль
LANG_NEUTRAL | SUBLANG_UI_CUSTOM_DEFAULT | Windows Vista и новее: локаль многоязыкового пользовательского интерфейса по умолчанию

Заголовочный файл Winnt.h (включен в Windows.h)


MAKELCID

На основе идентификатора языка и идентификатора порядка сортировки (sort order identifier) создает идентификатор локали.

Прототип

DWORD MAKELCID(

WORD wLanguageID,

WORD wSortID

);

Параметры

wLanguageID

Идентификатор языка. Он состоит из идентификатора основного языка и идентификатора диалекта. Для создания идентификатора языка обычно используется макрос MAKELANGID.

wSortID

Идентификатор порядка сортировки.

Возвращаемое значение

Идентификатор локали.

Реализация

#define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD )(srtid))) << 16) | \

((DWORD)((WORD )(lgid)))))

Заголовочный файл Winnt.h (включен в Windows.h)


MAKELONG

Создаёт значение типа LONG путем конкатенации заданных значений.

Прототип

DWORD MAKELONG(

WORD wLow,

WORD wHigh

);

Параметры

wLow

Младшее слово нового значения.

wHigh

Старшее слово нового значения.

Возвращаемое значение

Значение типа LONG.

Реализация

#define MAKELONG(a, b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))

Заголовочный файл Windef.h (включен в Windows.h)


MAKELPARAM

Создаёт значение типа LPARAM путём конкатенации заданных значений.

Прототип

LPARAM WINAPI MAKELPARAM(

WORD wLow,

WORD wHigh

);

Параметры

wLow

Младшее слово нового значения.

wHigh

Старшее слово нового значения.

Возвращаемое значение

Значение типа LPARAM.

Реализация

#define MAKELPARAM(l,h) ((LPARAM)MAKELONG(l,h))

Заголовочный файл winuser.h (включен в Windows.h)


MAKELRESULT

Создаёт значение типа LRESULT путём конкатенации заданных значений.

Прототип

LRESULT MAKELRESULT(

WORD wLow,

WORD wHigh

);

Параметры

wLow

Младшее слово нового значения.

wHigh

Старшее слово нового значения.

Возвращаемое значение

Значение типа LRESULT.

Реализация

#define MAKELRESULT(l,h) ((LRESULT)MAKELONG(l,h))

Заголовочный файл winuser.h (включен в Windows.h)


MAKEROP4

Создает четверной (quaternary) код растровой операции для использования в функции MaskBlt. Макрос принимает два троичных кода растровой операции, один для переднего плана, второй для фона изображения и с помощью логической операции заносит их в старшее слово 32-разрядного значения. Младшее слово полученного значения будт игнорироваться.

Прототип

DWORD MAKEROP4(

DWORD fore,

DWORD back

);

Параметры

fore

Троичный код растровой операции для переднего плана изображения.

back

Троичный код растровой операции для фона изображения.

Возвращаемое значение

Четверной код растровой операции, используемый в функции MaskBlt.

Реализация

#define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))

Заголовочный файл wingdi.h (включен в Windows.h)


MAKEWORD

Создает значение типа WORD путем конкатенации заданных значений.

Прототип

WORD MAKEWORD(

BYTE bLow,

BYTE bHigh

);

Параметры

bLow

Младший байт нового значения.

bHigh

Старший байт нового значения.

Возвращаемое значение

Значение типа WORD.

Реализация

#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))

Заголовочный файл Windef.h (включен в Windows.h)


MAKEWPARAM

Создаёт значение типа WPARAM путём конкатенации заданных значений.

Прототип

WPARAM MAKEWPARAM(

WORD wLow,

WORD wHigh

);

Параметры

wLow

Младшее слово нового значения.

wHigh

Старшее слово нового значения.

Возвращаемое значение

Значение типа WPARAM.

Реализация

#define MAKEWPARAM(l,h) ((WPARAM)MAKELONG(l,h))

Заголовочный файл Winuser.h (включен в Windows.h)


PALETTEINDEX

Макрос принимает номер записи в логической палитре цветов и возвращает спецификатор записи палитры, состоящий из значения типа COLORREF, описывающего цвет ассоциированный с данным номером. Приложение, использующее логическую палитру может передавать этот спецификатор в функцию GDI в качестве цвета вместо цвета, задаваемого в виде интенсивностей красного, зеленого и синего цветов. Это позволяет функции использовать цвет, находящийся в заданной записи палитры.

Прототип

COLORREF PALETTEINDEX(

WORD wPaletteIndex

);

Параметры

wPaletteIndex

Номер записи палитры, содержащей цвет, используемый для графической операции.

Возвращаемое значение

Спецификатор номера логической палитры (a logical-palette index specifier).

Реализация

#define PALETTEINDEX(i) ((0x01000000|(COLORREF)(WORD)(i)))

Заголовочный файл Wingdi.h (включен в Windows.h)


PALETTERGB

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

Прототип

COLORREF PALETTERGB(

BYTE bRed,

BYTE bGreen,

BYTE bBlue

);

Параметры

bRed

Интенсивность красного цвета.

bGreen

Интенсивность зеленого цвета.

bBlue

Интенсивность синего цвета.

Возвращаемое значение

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

Реализация

#define PALETTERGB(r,g,b) (0x02000000|RGB(r,g,b))

Заголовочный файл Wingdi.h (включен в Windows.h)


PRIMARYLANGID

Извлекает идентификатор основного языка из идентификатора языка.

Прототип

WORD PRIMARYLANGID(

WORD lgid

);

Параметры

lgid

Идентификатор языка. Данное значение представляет собой объединение идентификатора основного языка и идентификатора диалекта. Обычно его создают с помощью макроса MAKELANGID.

Возвращаемое значение

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

Реализация

#define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff)

Заголовочный файл Winnt.h (включен в Windows.h)


RGB

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

Прототип

COLORREF RGB(

BYTE byRed,

BYTE byGreen,

BYTE byBlue

);

Параметры

byRed

Интенсивность красного цвета.

byGreen

Интенсивность зеленого цвета.

byBlue

Интенсивность синего цвета.

Возвращаемое значение

Цвет в формате COLORREF.

Реализация

#define RGB(r,g,b) ((COLORREF)((BYTE)(r)|((BYTE)(g) << 8)|((BYTE)(b) << 16)))

Примечание

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

Для извлечения отдельных значений для красного, зеленого и синего компонентов цвета в формате COLORREF, используйте макросы GetRValue, GetGValue, и GetBValue соответственно.

При создании или проверке логической палитры, используйте структуру RGBQUAD для описания значений цвета и проверки отдельных значений. Более подробно об использовании значений цвета в цветовой палитре, смотрите описание макросов PALETTEINDEX и PALETTERGB.

Заголовочный файл Wingdi.h (включен в Windows.h)


SORTIDFROMLCID

Извлекает идентификатор порядка сортировки из идентификатора локали.

Прототип

WORD SORTIDFROMLCID(

LCID lcid

);

Параметры

lcid

Идентификатор локали. Для создания значения этого типа вы можете использовать макрос MAKELCID, или одно из предопределеннных значений.

LOCALE_INVARIANT

LOCALE_SYSTEM_DEFAULT

LOCALE_USER_DEFAULT

Начиная с Windows Vista также поддерживаются значения:

LOCALE_CUSTOM_DEFAULT

LOCALE_CUSTOM_UI_DEFAULT

LOCALE_CUSTOM_UNSPECIFIED

Возвращаемое значение

Идентификатор порядка сортировки.

Реализация

#define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) >> 16) & 0xf))

Заголовочный файл Winnt.h (включен в Windows.h)


SUBLANGID

Извлекает из идентификатора языка идентификатор диалекта.

Прототип

WORD SUBLANGID(

WORD lgid

);

Параметры

lgid

Идентификатор языка. Это может быть предопределенное значение, или значение созданное макросом MAKELANGID.

Возвращаемое значение

Идентификатор диалекта (sublang). Это может быть предопределенный идентификатор диалекта или же значение, определенное пользователем.

Реализация

#define SUBLANGID(lgid) ((WORD )(lgid) >> 10)

Заголовочный файл Winnt.h (включен в Windows.h)


TEXT

Определяет заданную строку как UNICODE строку, если определен спецификатор UNICODE, или как ANSI строку, если квалификатор не определен.

Прототип

void TEXT(

LPTSTR string

);

Параметры

string

Указатель на строку, которую следует интерпретировать как UTF-16, или как ANSI строку.

Возвращаемое значение

Макрос ничего не возвращает.

Реализация

#ifdef UNICODE

#define __TEXT(q) L##q

#else

#define __TEXT(q) q

#endif

#define TEXT(q) __TEXT(q)

Примечание

Данный макрос интерпретирует ANSI строку согласно текущей кодовой странице Windows ANSI. Символьные последовательности ANSI, не являющиеся ASCII последовательностями интерпретируются по разному разными кодовыми страницами. Например, символ 0xC4 в кодовой странице 1252 (Latin-1) отображается в виде заглавной буквы А с диерезисом (A). В кодовой странице 1253 (греческая), этот же символ отображается в виде зглавной буквы дельта (Δ). Эти различия в интерпретации символов приводят к усложнению разработки и сопровождения программ. Например, разрботчик пришлось бы исправлять строку при использовании новой кодовой страницы. Также проблемы могут возникнуть при использовании приложения, например, когда компьютер конечного пользователя использует кодовую страницу отличную от той, что использовалась компьютером разработчика приложения.

Заголовочный файл Winnt.h (включен в Windows.h)


__int32

Описывает знаковое целое размером в 4 байта. Диапазон значений от -2 147 483 647 до 2 147 483 647.

Объявление

#define __int32 long

Заголовочный файл _mingw.h (включен в Windows.h)


__int3264

Описывает знаковое целое размером в 4 или 8 байт.

Объявление

#if defined(_WIN64)

#define __int3264 __int64

#else

#define __int3264 __int32

Из этого объявления следует, что на 64-разрядных системах тип __int3264 аналогичен типу __int64, а на 32-разрядных - типу __int32.

Заголовочный файл basetsd.h (включен в Windows.h)


__int64

Описывает знаковое целое размером в 8 байт. Диапазон значений от -(2^63 - 1) до (2^63 - 1).

Объявление

#define __int64 long long

Заголовочный файл _mingw.h (включен в Windows.h)


ATOM

Описывает атом.

Объявление

typedef WORD ATOM;

Из этого определения видно, что тип ATOM эквивалентен типу WORD,

Заголовочный файл Windef.h (включен в Windows.h)


BOOL

Используется для хранения логических значений (TRUE и FALSE).

Объявление

#ifndef __OBJC__

typedef WINBOOL BOOL;

#else

#define BOOL WINBOOL

#endif

Из этого объявления видно, что тип BOOL эквивалентен типу WINBOOL.

Заголовочный файл Windef.h (включен в Windows.h)


BYTE

Описывает беззнаковое целое размером в один байт. Диапазон значений от 0 до 255.

Объявление

typedef unsigned char BYTE;

typedef BYTE *PBYTE,*LPBYTE;

Заголовочный файл Windef.h (включен в Windows.h)


CHAR

Используется для описания ANSI символа.

Объявление

typedef char CHAR;

Заголовочный файл Winnt.h (включен в Windows.h)


COLOR16

Используется для хранения цвета.

Объявление

typedef USHORT COLOR16;

Из этого объявления видно, что тип COLOR16 эквивалентен типу USHORT.

Заголовочный файл Wingdi.h (включен в Windows.h)


COLORREF

Используется для описания цвета в формате макроса RGB.

Объявление

typedef DWORD COLORREF;

typedef DWORD* LPCOLORREF;

Из этого объявления следует, что тип COLORREF по факту экивалентен типу DWORD.

Примечание

При явном задании цвета, значение COLORREF имеет следующую шестнадцатеричную форму.

0x00bbggrr

Младший байт содержит значение относительной интенсивности красного цвета; второй байт содержит значение для зеленого цвета; а третий байт - для синего. Старший байт должен содержать значение нуль. Максимальное значение для одного байта 0xFF.

Для создания значения типа COLORREF используйте макрос RGB. Для извлечения отдельных значений для красного, зеленого и синего цветов используйте макросы GetRValue, GetGValue, и GetBValue соответственно.

Заголовочный файл Windef.h (включен в Windows.h)


DWORD

Описывает 32-разрядное беззнаковое целое. Диапазон значений от 0 до 4 294 967 295.

Объявление

typedef unsigned long DWORD;

typedef DWORD *PDWORD,*LPDWORD;

Примечание

MSDN утверждает, что данный тип задан в заголовочном файле IntSafe.h. Однако у себя я такой заголовочный файл не нашел. А данное объявление типа нашел в файле windef.h.

Заголовочный файл Windef.h (включен в Windows.h)


DWORD_PTR

Описывает беззнаковое целое размером в 4 или 8 байт.

Объявление

typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;

Из этого объявления следует, что тип DWORD_PTR эквивалентен типу ULONG_PTR.

Заголовочный файл basetsd.h (включен в Windows.h)


HACCEL

Используется для хранения описателя таблицы ускорителей (accelerator table).

Объявление

DECLARE_HANDLE(HACCEL);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HANDLE

Используется для хранения описателей объектов ядра, таких как: маркер доступа, устройство связи (communication device), консольный ввод, буфер экрана консоли, событие, файл, проекция файла, порт завершения ввода/вывода, задание, почтовый ящик, уведомление ресурса памяти, мьютекс, именованный канал, канал, процесс, семафор, поток, транзакция, ожидаемый таймер.

Объявление

#ifdef STRICT

typedef void *HANDLE;

#else

typedef PVOID HANDLE;

#endif

typedef HANDLE *PHANDLE,*LPHANDLE;

Из этого определения следует, что тип HANDLE по своей сути является универсальным указателем (см. тип PVOID).

Заголовочный файл Winnt.h (включен в Windows.h)


HBITMAP

Используется для хранения описателя растрового изображения или битовой карты (bitmap).

Объявление

DECLARE_HANDLE(HBITMAP);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HBRUSH

Используется для хранения описателя кисти.

Объявление

DECLARE_HANDLE(HBRUSH);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HCOLORSPACE

Используется для хранения описателя пространства цветов (color space).

Объявление

DECLARE_HANDLE(HCOLORSPACE);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HCURSOR

Используется для хранения описателя курсора.

Объявление

typedef HICON HCURSOR;

Из этого оъявления следует, что тип HCURSOR эквивалентен типу HICON.

Заголовочный файл Windef.h (включен в Windows.h)


HDC

Используется для хранения описателя контекста устройства.

Объявление

DECLARE_HANDLE(HDC);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HDDEDATA

Используется для хранения описателя данных DDE.

Объявление

DECLARE_HANDLE(HDDEDATA);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл ddeml.h


HDESK

Используется для хранения описателя рабочего стола (desktop).

Объявление

DECLARE_HANDLE(HDESK);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HDROP

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

Объявление

DECLARE_HANDLE(HDROP);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Shellapi.h


HENHMETAFILE

Используется для хранения описателя расширенного метафайла (enhanced metafile).

Объявление

DECLARE_HANDLE(HENHMETAFILE);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HFILE

Используется для хранения описателя файла открытого функцией OpenFile, не CreateFile.

Объявление

typedef int HFILE;

Из этого объявления видно, что тип HFILE эквивалентен типу int.

Заголовочный файл Windef.h (включен в Windows.h)


HFONT

Используется для хранения описателя шрифта.

Объявление

DECLARE_HANDLE(HFONT);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HGDIOBJ

Используется для хранения описателя объекта GDI.

Объявление

#define near

#define NEAR near

#ifdef STRICT

typedef void NEAR* HGDIOBJ;

#else

DECLARE_HANDLE(HGDIOBJ);

#endif

Из этого объявления видно, что тип HGDIOBJ вводится либо макросом DECLARE_HANDLE, либо он эквивалентен типу void*.

Заголовочный файл Windef.h (включен в Windows.h)


HGLOBAL

Используется для хранения описателя блока глобальной памяти.

Объявление

typedef HANDLE HGLOBAL;

Из этого объявления следует, что тип HGLOBAL эквивалентен типу HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HGLRC

Используется для хранения описателя контекста отображения OpenGL.

Объявление

DECLARE_HANDLE(HGLRC);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл Windef.h (включен в Windows.h)


HHOOK

Используется для хранения описателя хука (hook).

Объявление

DECLARE_HANDLE (HHOOK);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл Windef.h (включен в Windows.h)


HICON

Используется для хранения описателя иконки.

Объявление

DECLARE_HANDLE(HICON);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HIMAGELIST

Используется для хранения описателя коллекции изображений.

Объявление

typedef struct _IMAGELIST *HIMAGELIST;

Из этого определения следует, что тип HIMAGELIST содержит указатель на недокументированную структуру _IMAGELIST. Описания этой структуры я не нашел.

Заголовочный файл Commctrl.h


HINSTANCE

Используется для хранения описателя экземпляра приложения.

Объявление

DECLARE_HANDLE(HINSTANCE);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HKEY

Используется для хранения описателя ключа реестра.

Объявление

DECLARE_HANDLE(HKEY);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл minwindef.h (включен в Windows.h)


HKL

Используется для хранения идентификатора локали ввода.

Объявление

DECLARE_HANDLE(HKL);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл minwindef.h (включен в Windows.h)


HLOCAL

Используется для хранения описателя блока локальной памяти.

Объявление

typedef HANDLE HLOCAL;

Из этого объявления следует, что тип HLOCAL эквиалентен типу HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HMENU

Используется для хранения описателя меню.

Объявление

DECLARE_HANDLE(HMENU);

Данный тип вводится посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HMETAFILE

Используется для хранения описателя метафайла.

Объявление

DECLARE_HANDLE(HMETAFILE);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл minwindef.h (включен в Windows.h)


HMODULE

Используется для хранения описателя какого-либо модуля (например, библиотеки или исполняемого файла).

Объявление

typedef HINSTANCE HMODULE;

Из этого объявления следует, что тип данных HMODULE эквивалентен типу HINSTANCE.

Заголовочный файл Windef.h (включен в Windows.h)


HMONITOR

Используется для хранения описателя монитора.

Объявление

DECLARE_HANDLE(HMONITOR);

Данный тип вводится посредством макроса DECLARE_HANDLE,

Заголовочный файл windef.h (включен в Windows.h)


HPALETTE

Используется для хранения описателя палитры.

Объявление

DECLARE_HANDLE(HPALETTE);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HPEN

Используется для хранения описателя пера.

Объявление

DECLARE_HANDLE(HPEN);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HRESULT

Используется для хранения кода результата при работе с COM интерфейсами.

Объявление

typedef LONG HRESULT;

Из этого объявления видно, что тип HRESULT эквивалентен типу LONG.

Заголовочный файл Winnt.h (включен в Windows.h)


HRGN

Используется для хранения описателя региона.

Объявление

DECLARE_HANDLE(HRGN);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HRSRC

Содержит описатель информационного блока ресурса.

Объявление

DECLARE_HANDLE(HRSRC);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


HSZ

Используется для хранения описателя строки DDE.

Объявление

DECLARE_HANDLE(HSZ);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл ddeml.h


HWINSTA

Используется для хранения описателя объекта WindowStation.

Объявление

DECLARE_HANDLE(HWINSTA);

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл minwindef.h (включен в Windows.h)


HWND

Используется для хранения описателя окна.

Объявление

DECLARE_HANDLE(HWND)

Данный тип объявляется посредством макроса DECLARE_HANDLE.

Заголовочный файл Windef.h (включен в Windows.h)


INT

Описывает знаковое целое размером 2 или 4 байта. Диапазон значений от -32767 до 32767.

Объявление

typedef int INT;

Заголовочный файл Windef.h (включен в Windows.h)


INT_PTR

Описывает знаковое целое размером 4 или 8 байтов.

Объявление

#if defined(_WIN64)

typedef __int64 INT_PTR, *PINT_PTR;

#else

typedef int INT_PTR, *PINT_PTR;

Из этого объявления следует, что на 64-разрядных машинах тип INT_PTR эквивалентен типу __int64, а на 32-рахрядных машинах стандартному типу int языка C.

Заголовочный файл basetsd.h (включен в Windows.h)


LANGID

Описывает идентификатор языка.

Объявление

typedef WORD LANGID;

Из этого объявления следует, что тип LANGID эквивалентен типу WORD.

Заголовочный файл Winnt.h (включен в Windows.h)


LCID

Описывает идентификатор локали.

Объявление

typedef DWORD LCID;

typedef PDWORD PLCID;

Из этого объявления следует что тип LCID эквивалентен типу DWORD.

Заголовочный файл Winnt.h (включен в Windows.h)


LGRPID

Используется для хранения идентификатора группы языков.

Объявление

typedef DWORD LGRPID;

Из этого объявления видно, что тип LGRPID эквивалентен типу DWORD.

Заголовочный файл Winnls.h


LONG

Описывает 32-разрядное знаковое целое. Диапазон значений от -2 147 483 647 до 2 147 483 647.

Объявление

typedef long LONG;

typedef LONG *PLONG;

Заголовочный файл Winnt.h (включен в Windows.h)


LONG_PTR

Описывает знаковое целое размером в 4 или 8 байт.

Объявление

#if defined(_WIN64)

typedef __int64 LONG_PTR, *PLONG_PTR;

#else

typedef long LONG_PTR, *PLONG_PTR;

Из этого объявления следует, что на 64-разрядных машинах тип LONG_PTR эквивалентен типу __int64, а на 32-разрядных машинах - стандартному типу long языка C.

Заголовочный файл basetsd.h (включен в Windows.h)


LPARAM

Совместно с типом WPARAM описывает дополнительные параметры оконных сообщений.

Объявление

typedef LONG_PTR LPARAM

Из этого объявлеия следует, что тип LPARAM эквивалентен типу LONG_PTR.

Заголовочный файл Windef.h (включен в Windows.h)


LPCSTR

Описывает константый указатель на строку символов CHAR.

Объявление

#define CONST const

.........

typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR

Ключевое слово CONST вводится в заголовочном файле windef.h так,как показано выше.

Заголовочный файл Winnt.h (включен в Windows.h)


LPCTSTR

Описывает константный указатель на строку символов TCHAR.

Объявление

typedef const TCHAR *LPCTSTR;

Заголовочный файл Winnt.h (включен в Windows.h)


LPCWSTR

Описывает константный указатель на строку символов WCHAR.

Объявление

#define CONST const

.........

typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;

Ключевое слово CONST вводится в заголовочном файле windef.h так,как показано выше.

Заголовочный файл Winnt.h (включен в Windows.h)


LPSTR

Описывает указатель на строку символов CHAR.

Объявление

typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;

Заголовочный файл Winnt.h (включен в Windows.h)


LPTSTR

Описывает указатель на строку символов TCHAR.

Объявление

typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;

Заголовочный файл Winnt.h (включен в Windows.h)


LPWSTR

Описывает указатель на строку символов WCHAR.

Объявление

typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;

Заголовочный файл Winnt.h (включен в Windows.h)


LRESULT

Описывает значение возвращаемое оконной процедурой в ответ на сообщение.

Объявление

typedef LONG_PTR LRESULT;

Из данного объявления следует, что тип LRESULT эквивалентен типу LONG_PTR.

Заголовочный файл Windef.h (включен в Windows.h)


PVOID

Описывает универсальный указатель.

Объявление

typedef void *PVOID,*LPVOID;

Заголовочный файл Winnt.h (включен в Windows.h)


TCHAR

Используется для описания ANSI или UNICODE символа.

Объявление

#ifdef UNICODE

typedef WCHAR TCHAR;

typedef WCHAR _TCHAR;

#else

typedef CHAR TCHAR;

typedef CHAR _TCHAR;

#endif

Из этого объявления следует, что тип TCHAR эквивалентен типу CHAR (в случае ANSI символов), или типу WCHAR (в случае UNICODE символов). Тип _TCHAR эквивалентен типу TCHAR.

Заголовочный файл Winnt.h (включен в Windows.h)


UINT

Описывает беззнаковое целое размером 4 байта. Диапазон значений от 0 до 65535.

Объявление

typedef unsigned int UINT,*PUINT,*LPUINT;

Заголовочный файл Windef.h (включен в Windows.h)


UINT_PTR

Описывает беззнаковое целое размером 4 или 8 байта.

Объявление

#if defined(_WIN64)

typedef unsigned __int64 UINT_PTR, *PUINT_PTR;

#else

typedef unsigned int UINT_PTR, *PUINT_PTR;

Из этого объявления следует, что на 64-разрядных машинах тип UINT_PTR соответствует беззнаковой версии типа __int64, а на 32-разрядных машинах он соответствует стандартному типу unsigned int языка C.

Заголовочный файл basetsd.h (включен в Windows.h)


ULONG

Описывает беззнаковое целое размером 4 байта. Диапазон знчаений от 0 до 4 294 967 295.

Объявление

typedef unsigned long ULONG,*PULONG;

Заголовочный файл Winnt.h (включен в Windows.h)


ULONG_PTR

Описывает беззнаковое целое размером в 4 или 8 байт.

Объявление

#if defined(_WIN64)

typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;

#else

typedef unsigned long ULONG_PTR, *PULONG_PTR;

Из этого объявления следует, что на 64-разрядных системах тип ULONG_PTR эквивалентен беззнаковому варианту типа __int64, а на 32-разрядных системах эквивалентен типу unsigned long языка C (диапазон от 0 до 4 294 967 295).

Заголовочный файл basetsd.h (включен в Windows.h)


USHORT

Используется для хранения беззнакового короткого целого.

Объявление

typedef unsigned short USHORT,*PUSHORT;

Заголовочный файл Winnt.h (включен в Windows.h)


WCHAR

Используется для описания UNICODE символа.

Объявление

typedef wchar_t WCHAR;

Заголовочный файл Winnt.h (включен в Windows.h)


WINBOOL

Используется для хранения логических значений (ИСТИНА и ЛОЖЬ).

Объявление

typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;

Из этого объявления следует, что тип WINBOOL эквивалентен стандартному типу int. Здесь же вводятся типы PWINBOOL и LPWINBOOL являющиеся указателями на тип int.

Заголовочный файл Windef.h (включен в Windows.h)


WORD

Описывает беззнаковое целое размером 2 байта. Диапазон значений от 0 до 65535.

Объявление

typedef unsigned short WORD;

typedef WORD *PWORD,*LPWORD;

Заголовочный файл Windef.h (включен в Windows.h)


WPARAM

 Top Previous

Совместно с типом LPARAM описывает дополнительные параметры оконных сообщений.

Объявление

typedef UINT_PTR WPARAM;

Из этого объявления следует, что тип WPARAM эквивалентен типу UINT_PTR.

Заголовочный файл Windef.h (включен в Windows.h)