Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

Dscbcaps

typedef struct

{

DWORD dwSize;

DWORD dwFlags;

DWORD dwBufferBytes;

DWORD dwReserved;

} DSCBCAPS, *LPDSCBCAPS;

typedef const DSCBCAPS *LPCDSCBCAPS;

Переменные

  1. dwSize — размер структуры в байтах. Эта переменная должна быть инициализирована до первого обращения к объекту структуры.

  2. dwFlags — определяет возможности устройства. Может иметь нулевое значение или значение DSCBCAPS_WAVEMAPPED, указывающее на то, что для создания форматов, не поддерживаемых устройством, следует использовать средства Win32.

  3. dwBufferBytes — размер буфера записи в байтах.

  4. dwReserved — зарезервировано для дальнейшего использования.

Примечание

Объект структуры DSCBCAPS используется в качестве аргумента метода IDirectSoundCaptureBuffer::GetCaps.

Описание данной структуры содержится в файле заголовка dsound.h.

Dscbufferdesc

typedef struct

{

DWORD dwSize;

DWORD dwFlags;

DWORD dwBufferBytes;

DWORD dwReserved;

LPWAVEFORMATEX lpwfxFormat;

} DSCBUFFERDESC, *LPDSCBUFFERDESC;

typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC;

Переменные

  1. dwSize — размер структуры в байтах. Эта переменная должна быть инициализирована до первого обращения к объекту структуры.

  2. dwFlags — определяет возможности устройства. Может иметь нулевое значение или значение DSCBCAPS_WAVEMAPPED, указывающее на то, что для создания форматов, не поддерживаемых устройством, следует использовать средства Win32.

  3. dwBufferBytes — размер создаваемого буфера записи в байтах.

  4. dwReserved — зарезервировано для дальнейшего использования.

  5. lpwfxFormat — указатель на объект структуры WAVEFORMATEX, содержащий описание формата записываемой аудио информации.

Примечание

Объект структуры DSCBUFFERDESC используется в качестве аргумента метода IDirectSoundCapture::CreateCaptureBuffer.

Описание данной структуры содержится в файле заголовка dsound.h.

Dsccaps

typedef struct

{

DWORD dwSize;

DWORD dwFlags;

DWORD dwFormats;

DWORD dwChannels;

} DSCCAPS, *LPDSCCAPS;

typedef const DSCCAPS *LPCDSCCAPS;

Переменные

  1. dwSize — размер структуры в байтах. Эта переменная должна быть инициализирована до первого обращения к объекту структуры.

  2. dwFlags — в настоящее время для данной структуры флаги не определены.

  3. dwFormats — перечень стандартных форматов, поддерживаемых устройством. Перечень этих форматов приведён в описании структуры WAVEINCAPS.

  4. dwChannels — число каналов, поддерживаемых устройством. Значение 1 соответствует моно режиму, значение 2 — стерео и т.д.

Примечание

Объект структуры DSCCAPS используется в качестве аргумента метода IDirectSoundCapture::GetCaps.

Описание данной структуры содержится в файле заголовка dsound.h.

Logfont

typedef struct tagLOGFONT { // lf

LONG lfHeight;

LONG lfWidth;

LONG lfEscapement;

LONG lfOrientation;

LONG lfWeight;

BYTE lfItalic;

BYTE lfUnderline;

BYTE lfStrikeOut;

BYTE lfCharSet;

BYTE lfOutPrecision;

BYTE lfClipPrecision;

BYTE lfQuality;

BYTE lfPitchAndFamily;

TCHAR lfFaceName[LF_FACESIZE];

} LOGFONT;

Переменные

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

  • > 0 — программа масштабирования шрифтов преобразует эту величину в единицы устройства и сопоставляет её с высотой ячеек имеющихся шрифтов.

  • 0 — программа масштабирования шрифтов использует при поиске значение, установленное по умолчанию.

  • < 0 — программа масштабирования шрифтов преобразует эту величину в единицы устройства и использует её абсолютное значение для задания высоты символов.

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

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

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

  2. lfEscapement — определяет угол наклона, выраженный в десятках градусов, между базовой линией строки текста и горизонтальной осью устройства. В Windows NT в графическом режиме GM_ADVANCED имеется возможность определять угол наклона базовой линии строки текста независимо от угла ориентации символов в строке. В Windows 95 и в графическом режиме GM_COMPATIBLE Windows NT переменная lfEscapement определяет одновременно угол наклона базовой линии строки текста и ориентацию символов. Поэтому переменные lfEscapement и lfOrientation должны иметь одно и то же значение.

  3. lfOrientation — определяет угол наклона, выраженный в десятках градусов, между базовой линией каждого символа в строке текста и горизонтальной осью устройства.

  4. lfWeight — определяет вес шрифта, значение которого находится в диапазоне о 0 до 1000. Например, значение 400 соответствует обычному шрифту, а значение 700 — полужирному шрифту. Если данная переменная имеет нулевое значение, то используется значение веса шрифта, установленное по умолчанию. В таблице чч.4. приведены предопределённые значения веса шрифта:

Таблица чч.4. Предопределённые значения веса шрифта

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

Значение

FW_DONTCARE

0

FW_THIN

100

FW_EXTRALIGHT

200

FW_ULTRALIGHT

200

FW_LIGHT

300

FW_NORMAL

400

FW_REGULAR

400

FW_MEDIUM

500

FW_SEMIBOLD

600

FW_DEMIBOLD

600

FW_BOLD

700

FW_EXTRABOLD

800

FW_ULTRABOLD

800

FW_HEAVY

900

FW_BLACK

900

  1. lfItalic — если эта величина имеет значение TRUE, то текст выводится курсивом.

  2. lfUnderline — если эта величина имеет значение TRUE, то текст выводится с подчёркиванием.

  3. lfStrikeOut — если эта величина имеет значение TRUE, то текст выводится с зачёркиванием.

  4. lfCharSet — определяет используемый набор символов. Может иметь следующие значения: ANSI_CHARSET, BALTIC_CHARSET, CHINESEBIG5_CHARSET, DEFAULT_CHARSET, EASTEUROPE_CHARSET, GB2312_CHARSET, GREEK_CHARSET, HANGUL_CHARSET, MAC_CHARSET, OEM_CHARSET, RUSSIAN_CHARSET, SHIFTJIS_CHARSET, SYMBOL_CHARSET и TURKISH_CHARSET. В корейской версии Windows определено значение JOHAB_CHARSET. В ближневосточной версии Windows определены значения HEBREW_CHARSET и ARABIC_CHARSET. В таиландской версии Windows определено значение THAI_CHARSET.

  5. Набор символов OEM_CHARSET зависит от используемой версии Windows. Набор символов DEFAULT_CHARSET при задании имени и размера шрифта полностью определяет логический шрифт. Если задаваемое имя шрифта не существует, то вместо заданного шрифт может использоваться шрифт с любым набором символов. Поэтому необходимо осторожно подходить к использованию набора символов DEFAULT_CHARSET.

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

  7. Эта переменная используется при масштабировании символов. Для получения надёжных результатов необходимо использовать стандартные наборы символов. При определении начертания шрифта в переменной lfFaceName убедитесь, что значение переменной lfCharSet соответствует набору символов, определённому для начертания, определяемого переменной lfFaceName.

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

  • OUT_CHARACTER_PRECIS — не используется.

  • OUT_DEFAULT_PRECIS — задаёт параметры масштабирования, используемые по умолчанию.

  • OUT_DEVICE_PRECIS — сообщает процедуре масштабирования шрифтов о необходимости использования шрифта устройства, если в системе определены несколько шрифтов с одним и тем же именем.

  • OUT_OUTLINE_PRECIS — сообщает процедуре масштабирования шрифтов о необходимости использования шрифтов TrueType и подобных им шрифтов. Это значение используется только в Windows NT.

  • OUT_RASTER_PRECIS — сообщает процедуре масштабирования о необходимости использования растровых шрифтов, если в системе определены несколько шрифтов с одним и тем же именем.

  • OUT_STRING_PRECIS — данная величина не используется процедурой масштабирования шрифтов, но оно возвращается при составлении списка растровых шрифтов.

  • OUT_STROKE_PRECIS — в Windows NT данная величина не используется процедурой масштабирования шрифтов, но оно возвращается при составлении списка шрифтов TrueType и подобных им шрифтов, а также векторных шрифтов. В Windows 95 данная величина используется процедурой масштабирования шрифтов, и возвращается при составлении списка шрифтов TrueType и векторных шрифтов.

  • OUT_TT_ONLY_PRECIS — сообщает процедуре масштабирования шрифтов о необходимости использования только шрифтов TrueType. Если в системе не определены шрифты TrueType, процедура масштабирования шрифтов использует параметры, используемые по умолчанию.

  • OUT_TT_PRECIS — сообщает процедуре масштабирования шрифтов о необходимости использования шрифтов TrueType, если в системе определены несколько шрифтов с одним и тем же именем.

  1. Приложение использует значения OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS и OUT_TT_PRECIS для задания режима, в котором процедура масштабирования шрифтов выбирает шрифт при наличии в операционной системе нескольких шрифтов с одним и тем же именем. Например, если в операционной системе определёны растровый и TrueType шрифты с именем Symbol, присваивание данной переменной значения OUT_TT_PRECIS заставляет процедуру масштабирования шрифтов выбрать версию TrueType. Присваивание значения OUT_TT_ONLY_PRECIS заставляет процедуру масштабирования шрифтов выбрать версию TrueType даже в том случае, когда ей придётся для этого выбрать шрифт TrueType с другим именем.

  2. lfClipPrecision — определяет точность процедуры отсечки. Под точностью процедуры отсечки понимают то, как поступать с символами, частично выходящими за область отсечки. Данная переменная может принимать одно из следующих значений:

  • CLIP_DEFAULT_PRECIS — требует использовать процедуру отсечки, определённую по умолчанию.

  • CLIP_CHARACTER_PRECIS — не используется.

  • CLIP_STROKE_PRECIS — не используется процедурой масштабирования шрифтов, но возвращается при составлении списка растровых, векторных или TrueType шрифтов. В Windows NT для совместимости эта величина всегда возвращается при составлении списка шрифтов.

  • CLIP_MASK — не используется.

  • CLIP_EMBEDDED — этот флаг используется при работе с внедрёнными шрифтами, имеющими атрибут "только для чтения".

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

  • CLIP_TT_ALWAYS — не используется.

  1. lfQuality — определяет качество выводимых символов. Качество выводимых символов определяет, с какой точностью интерфейс графических устройств (GDI) должен добиваться соответствия параметров логического шрифта параметрам используемого физического шрифта. Данная переменная может принимать одно из следующих значений:

  • DEFAULT_QUALITY — качество выводимого шрифта не имеет значения.

  • DRAFT_QUALITY — качество шрифта может быть хуже, чем при использовании значения PROOF_QUALITY. При использовании растровых шрифтов возможно использование масштабирования, что расширяет диапазон размеров шрифтов за счёт снижения их качества. При необходимости синтезируются жирные, курсивные, подчёркнутые и зачёркнутые шрифты.

  • PROOF_QUALITY — при выводе символов шрифта требуется обеспечить совпадение дополнительных параметров, кроме указанных в атрибутах логического шрифта. Для растровых шрифтов нельзя использовать операцию масштабирования и необходимо выбрать ближайший по размерам шрифт. Хотя при выборе размера шрифта может быть использован шрифт другого размера, значение PROOF_QUALITY обеспечивает более высокое качество отображения символов и отсутствие искажений при их выводе. При необходимости синтезируются жирные, курсивные, подчёркнутые и зачёркнутые шрифты.

  1. lfPitchAndFamily — определяет, будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит данный шрифт. Два наименее значимых бита определяют, будет ли шрифт иметь фиксированную или переменную ширину литер, и могут принимать одно из следующих значений: DEFAULT_PITCH, FIXED_PITCH и VARIABLE_PITCH. Биты с 4 по 7 данной переменной определяют семейство, к которому принадлежит данный шрифт, и могут принимать одно из следующих значений: FF_DECORATIVE, FF_DONTCARE, FF_MODERN, FF_ROMAN, FF_SCRIPT и FF_SWISS.

  2. Полное значение данной переменной получается с использованием операции логического ИЛИ между константой, определяющей ширину литер, и константой, определяющей семейство.

  3. Семейство шрифтов определяет их общее начертание. Оно используется для определения шрифтов при отсутствии более точного определения их начертания. Используемые в данном случае семейства шрифтов имеют следующие отличительные особенности:

  • FF_DECORATIVE — нестандартный шрифт. Например, Old English.

  • FF_DONTCARE — начертание шрифта не имеет значение или неизвестно.

  • FF_MODERN — шрифт с постоянной шириной штриха, имеющий или не имеющий засечек. К этим шрифтам относятся современные шрифты, такие как Pica, Elite и CourierNew.

  • FF_ROMAN — шрифт с переменной шириной штриха (пропорциональный) имеющий засечки. Примером данного шрифта является Serif.

  • FF_SCRIPT — шрифт подобный рукописному. Примером данного шрифта являются Script и Cursive.

  • FF_SWISS — шрифт с переменной шириной штриха (пропорциональный) не имеющий засечек. Примером данного шрифта является Sans Serif.

  1. lfFaceName — текстовая строка, завершающаяся нулём, содержащая имя шрифта. Длина данной строки не должна превышать 32 символа, включая завершающий её нулевой символ. Для составления списка всех имён доступных шрифтов может использоваться функция EnumFontFamilies. Если строка lfFaceName пуста, GDI использует первый шрифт, соответствующий всем другим заданным атрибутам.

Примечание

Объект структуры LOGFONT содержит атрибуты шрифта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]