Печать и вывод текста, страница 4

Определение DEVMODE

typedef  struct _devicemode

TCHAR dmDeviceName[CCHDEVICENAME] ,

WORD dmSpecVersion;

WORD dmDriverVersion;

WORD dmSize;

WORD dmDriverExtra;

DWORD dmFields;

union

struct

short dmOrientation;

short dmPaperSize;

short dmPaperLength;

short dmPaperWidth;

POINTL  dmPosition;

short dmScale;

short dmCopies;

short dmDefaultSource;

short dmPrintQuality;

short dmColor;

short dmDuplex;

short dmYResolution;

short dmTTOption;

short dmCollate;

TCHAR dmFormName[CCHFORMNAMK]

WORD dmLogPixels;

DWORD dmBitsPerPel;

DWORD dmPelsWidth;

DWORD dmPelsHeight;

union

DWORD    dmDisplayFUg

DWORD    dmNup;

} DWORD    dmDisplayFrequency;

DWORD      dmlCMMethod;

DWORD      dmICMIntent;

DWORD       dmMediaType ;

DWORD       dmDitherType;

DWORD    dmReservedl ;

DWORD    dmReserved2;

DWORD    dmPanningWidth;

DWORD    dmPanningHeight; }   DEVMODE;

Члены

dmDeviceName

TCHAR[CCHDEVICENAME]. Имя устройства, поддерживаемого драйвером (например, "PCL/HP LaserJet" в случае PCL/HP LaserJet). Это имя является уникальным среди драйверов устройств.

dmSpecVersion

WORD. Номер версии технических требований, которым соответствуют данные инициализации, лежащие в основе указанной структуры. Текущая версия, определенная как DM_SPECVERSION, имеет номер 0x0400.

dmDriver Version

WORD. Номер версии драйвера принтера, присвоенный разработчиком драйвера принтера.

dmSize

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

dmDriftfExtfu

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

dmfJeUf

DWORD. Комбинация флажков, перечисленных в табл. 14.3, которая определяет, используются ли драйвером принтера остальные члены структуры DEVMODE, или эти члены игнорируются. Для объединения этих флажков используется двоичный оператор OR (|).

Таблица 14.3. Значения члена dmFfeUs структуры DEVMODE

Значение

Описание

DM_ORIENTATKN

Использовать член dmOrientation.

DM_PAPERSIZE

Использовать член dmPaperSize. Если в качестве параметра dmPaperSize установлено значение DMPAPER USER, в приложении необходимо также включить флажки DM_PAPERWIOTH и DM_PAPERLENGTH.

DM_PAPERLENGTH

Использовать член dmPaperLengfh. Этот флажок следует включать, только если в качестве параметра dmPaperSize установлено значение DMPAPER_USER.

DM_PAPERWDTH

Использовать член dmPaperWidth. Этот флажок следует включать, только если в качестве параметра dmPaperSize установлено значение DMPAPER_USER.

DM_POSmON

Использовать член dmPos'rtion.

DM_SCALE

Использовать член dmScale.

DM_COP1ES

Использовать член dmCop/es.

DM_DEFAULTSOURCE

Использовать член dmDefaullSource.

DM_PRINTQUALITY

Использовать член dmPrinf Quality .

DM_COLOR

Использовать член dmCo/or.

DM_DUPLEX

Использовать член dmDuplex.

DM_YRESOLUTK)N

Использовать член dmY Resolution.

DM_nOPTION

Использовать член dmTTOption.

DM_COUATE

Использовать член dmCollate.

DM_FORMNAME

Использовать член dmFormafName.

DMJ.OGPIXELS

Использовать член dmLogPixels.

DM_BITSPERPEL

Использовать член dmB/fsPerPe/.

DM_PELSWIDTH

Использовать член dmPelsWidth.

DM_PELSHEIGHT

Использовать член dmPe/sHe/gnf.

DM_DISPLAYFLAGS

Использовать член dmDisplay Flags.

DM_NUP

Использовать член dmNup.

DM_DBPLAYFREQUENCY

Использовать член dmD/sp/ay Frequency.

DM_ICMMETHOO

Использовать член dmICMMethod.

DM_ICMNTENT

Использовать член dmICMIntent.

OM_MEOIATYPE

Использовать член dmMediaType.

DM_MTHERTYPE

Использовать член dmDitherType.

DM_PANNINGWIDTH

Использовать член dmPanringWidth.

DM_PANNINGHEIGHT

Использовать член dmParmingHeight .

dmOrientation

short. Ориентация бумаги. Этот член может иметь значение DMORIENT_PORTRAIT или DMORIENT_LANDSCAPE.

dmPaperSize

short. Формат бумаги, на которой должна быть выполнена печать. Эт член может иметь одно из значений, перечисленных в табл. 14.4.

Таблица 14.4. Значения члена dmPaperSize структуры DEVMODE

Значение

Описание

DMPAPER_10X14

10x14 дюймов.

DMPAPERJ1X17

1 1x17 дюймов.

DMPAPER_12X11

12x1 1 дюймов.

DMPAPER_A3

Лист A3, 297x420 мм.

DMPAPER_A3_ROTATED

Развернутый лист A3.

DMPAPER_A4

Лист А4, 210x297 мм.

DMPAPER_A4_ROTATED

Развернутый лист А4.

DMPAPER_A4SMALL

Малый лист А4, 210x297 мм.

DMPAPER_A5

Лист А5, 148x210 мм.

DMPAPER_AS_ROTATED

Развернутый лист А5.

DMPAPER_A6

Лист А6, 105x148 мм.

DMPAPER_A6_ROTATED

Развернутый лист А6.

DMPAPER_B4

Лист В4, 250x354 мм.

DMPAPER_B4_JIS_ROTATED

Развернутый лист В4 (JIS).

DMPAPER_B5

Лист В5, 182x257 мм.

DMPAPER_B5_JB_ROTATED

Развернутый лист В5 (JIS).

DMPAPER_B6_JES

Лист В6, 128x182 мм.

DMPAPER_B6_JB_ROTATED

Развернутый лист В6 (JIS).

DMPAPER_CSHEET

Лист С, 17x22 дюймов.

DMPAPER_DBL_JAPANESE_POSTCARD

Двойная японская открытка, 200x148 мм.

DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED

Развернутая двойная японская открытка.

DMPAPER_DSHEET

Лист D, 22x34 дюймов.

DMPAPER_ENV_9

Конверт №9, 3 7/8x8 7/8 дюймов.

DMPAPER_ENV_10

Конверт №10, 4 1/8x9 1/2 дюймов.

DMPAPER_ENV_11

Конверт №11, 4 1/2x10 3/8 дюймов.

DMPAPERJENV_12

Конверт №12, 4 3/4x11 дюймов.

DMPAPER_ENV_14

Конверт №14, 5x11  1/2 дюймов.

DMPAPER_ENV_B4

Конверт В4, 250x353 мм.

DMPAPER_ENV_B5

Конверт В5, 176x250 мм.

DMPAPER_ENV_B6

Конверт В6, 176x125 мм.

DMPAPER_ENV_C3

Конверт СЗ, 324x458 мм.

DMPAPER_ENV_C4

Конверт С4, 229x324 мм.

DMPAPER_ENV_C5

Конверт С5, 162x229 мм.

DMPAPER ENV_C6

Конверт С6, 114x162 мм.

DMPAPER_ENV_C65

Конверт С65, 114x229 мм.

DMPAPER_ENV_DL

Конверт DL, 110x220 мм.

DMPAPER_ENV_ITALY

Конверт Italy, 1 1 0x230 мм.

DMPAPER_ENV_MONARCH

Конверт Monarch, 3 7/8x7 1/2 дюймов.

DMPAPER_ENV_PERSONAL

Конверт 6 3/4, 3 5/8x6 1 /2 дюймов.

DMPAPER_ESHEET

Лист Е, 34x44 дюймов.

DMPAPER_EXECUTIVE

Лист Executive, 7 1/4x10 1/2 дюймов.

DMPAPER_FANFOLD_LGL_GERMAN

Германский фальцованный лист Legal, 8 1/ 2x13 дюймов.

DMPAPER_FANFOLD_STD_GERMAN

Германский фальцованный лист Standard, 8 1/ 2x12 дюймов.

DMPAPER_FANFOLD_US

Американский фальцованный лист Standard, 14 7/8x1 1 дюймов.

DMPAPER_FOLIO

Лист Folio, 8 1/2x13 дюймов.

DMPAPER_JAPANESE_POSTCARD_ROTATED

Японская развернутая открытка, 148x100 мм.

DMPAPER_JENV_CHOU3

Японский конверт Chou №3.

DMPAPER_JENV_CHOU3_ROTATED

Развернутый японский конверт Chou №3.

DMPAPER_JENV_CHOU4

Японский конверт Chou №4.

DMPAPER_JENV_CHOU4_ROTATED

Развернутый японский конверт Chou №4.

DMPAPER_JENV_KAKU2

Японский конверт Kaku №2.

DMPAPER_JENV_KAKU2_ROTATED

Развернутый японский конверт Kaku №2.

DMPAPER_JENV_KAKU3

Японский конверт Kaku №3.

DMPAPER_JENV_KAKU3_ROTATED

Развернутый японский конверт Kaku №3.

DMPAPER_JENV_YOU4

Японский конверт You №4.

DMPAPER_JENV_YOU4_ROTATED

Развернутый японский конверт You №4.

DMPAPER_LAST

Конверт Last.

DMPAPER_LEDGER

Лист Ledger, 17x11 дюймов.

DMPAPER_LEDGER ROTATED

Развернутый лист Ledger.

DMPAPER_LEGAL

Лист Legal, 8 1/2x14 дюймов.

DMPAPER_LETTER

Лист Letter, 8 1/2x11 дюймов.

DMPAPER_LETTERSMALL

Малый лист Letter, 8 1/2x11 дюймов.

DMPAPER_NOTE

Лист Note, 8 1/2x11 дюймов.

DMPAPER_P16K

Лист PRC 16K, 146x215 мм.

DMPAPER_P16K_ROTATED

Развернутый лист PRC 16K.

DMPAPER_P32K

Лист PRC 32K, 97x151 мм.

DMPAPER_P32K_ROTATED

Развернутый лист PRC 32K.

DMPAPER_P32KBIG

Лист PRC 32K (большой), 97x151 мм.

DMPAPER_P32KBJG_ROTATED

Развернутый лист PRC 32K (большой).

DMPAPER_PENV_1

Конверт №1 PRC, 102x165 мм.

DMPAPER_PENV_1_ROTATED

Развернутый конверт №1 PRC.

DMPAPER_PENV_2

Конверт №2 PRC, 102x176 мм.

DMPAPER_PENV_2_ROTATED

Развернутый конверт №2 PRC.

DMPAPER_PENV_3

Конверт №3 PRC, 125x176 мм.

DMPAPER_PENV_3_ROTATED

Развернутый конверт №3 PRC.

DMPAPER_PENV_4

Конверт №4 PRC, 110x208 мм.

DMPAPER_PENV_4_ROTATED

Развернутый конверт №4 PRC.

DMPAPER_PENV_S

Конверт №5 PRC, 110x220 мм.

DMPAPER_PENV_5_ROTATED

Развернутый конверт №5 PRC.

DMPAPER_PENV_4

Конверт №6 PRC, 120x230 мм.

DMPAPER_PENV_4_ROTATED

Развернутый конверт №6 PRC.

DMPAPER_PENV_7

Конверт №7 PRC, 160x230 мм.

DMPAPER_PENV_7_ROTATED

Развернутый конверт №7 PRC.

DMPAPER_PENV_8

Конверт №8 PRC, 120x309 мм.

DMPAPER_PENV_8_ROTATED

Развернутый конверт №8 PRC.

DMPAPER_PENV_»

Конверт №9 PRC, 229x324 мм.

DMPAPER_PENV_»_ROTATH>

Развернутый конверт №9'PRC.

DMPAPER_PENV_10

Конверт №10 PRC, 324x458 мм.

DMPAPER_PENV_10_ROTATED

Развернутый конверт №10 PRC.

DMPAPER_QUARTO

Лист Quarto, 215x275 мм.

DMPAPER_STATEMENT

Лист Statement, 5 1 /2x8 1 /2 дюймов.

DMPAPER_TABLOD

Лист Tabloid, 11x17 дюймов.

DMPAPER_USER

Формат бумаги, определяемый пользователем. Размеры должны быть указаны членами dmPaperLengfn и dmPaperWidfh.

dmPaperLength

short. Длина бумаги книжной ориентации (в десятых долях миллиметра). Член dmPaperSize должен указывать значение DMPAPER_USER; в ином случае значение этого члена игнорируется.

dmPaperWldth

short. Ширина бумаги книжной ориентации (в десятых долях миллиметра). Член dmPaperSize должен указывать значение DMPAPER_USER; в ином случае значение этого члена игнорируется.

dmPosition

POINTL. Применяется только для устройств отображения. Структура POINTL указывает позиционные координаты устройства отображения относительно области рабочего стола. Основное устройство всегда имеет координаты (0,0).

dmScale

short. Коэффициент масштабирования печатного вывода. Кажущийся формат страницы масштабируется относительно физического формата страницы на коэффициент dmScale/lQQ.

dmCopies

short. Число напечатанных копий, если устройство поддерживает многостраничные копии.

dmDefaultSomrct

short. Заданный по умолчанию магазин бумагоподающего устройства, из которого подается бумага. Этот член может иметь одно из заранее определенных значений, приведенных в табл. 14.5, или значение, определяемое драйвером, которое превышает значение DMBIN_USER

dmPrintQuattty

short. Разрешающая способность принтера. В табл. 14.6 перечислены четыре заранее определенных значения, не зависящих от устройства. Если дано положительное значение, оно указывает число точек на дюйм (DPI — dots per inch) и поэтому зависит от устройства. Этот член управляет только графической разрешающей способностью. Эта установка не воздействует на текст, .если текст не печатается как графика

Таблица 14.5. Значения члена dmDefaultSource структуры DEVMODE

Значение

Описание

DMBIN_AUTO

Автоматический выбор магазина бумагоподающего устройства

DMBIN_CASSETTE

Кассета с бумагой

DMBIN_ENVELOPE

Самонаклад для конвертов

DMBW_ENVMANUAL

Самонаклад для конвертов с ручным приводом

DMBIN_FORMSOURCE

Листоподающее устройство для бланков

DMBIN_LARGECAPACITY

Магазин бумагоподающего устройства большой емкости

DMBIN_LARGEFMT

Листоподающее устройство большой емкости

DMBIN_LOWER

Нижний магазин бумагоподающего устройства

DMBIN_MANUAL

Самонаклад с ручным приводом

DMBN_MDDLE

Средний магазин бумагоподающего устройства

DMBIN_ONLYONE

Только одно Листоподающее устройство

DMBIN_SMALLFMT

Листоподающее устройство малой емкости

DMBIN_TRACTOR

Листоподающее устройство с цепным приводом

DMBW_UPPER

Верхний магазин бумагоподающего устройства

Таблица 14.6. Значения члена dmPrintQualrty структуры DEVMODE

Значение

Описание

DMRES_HIGH

Высокая разрешающая способность

DMRES_MEDMM

Средняя разрешающая способность

DMRES_LOW

Низкая разрешающая способность

DMRES_DRAFT

Разрешающая способность черновой печати

dmColor

short. Позволяет определить, использовать ли на цветном принтере цветную или монохромную печать. Этот параметр может иметь значение DMCOLOR_COLOR или DMCOLOR_MONOCHROME.

dmDuplex

short. Устанавливается в одно из значений, приведенных в табл. 14.7, для указания того, какой тип двухсторонней (или дуплексной) печати должен использоваться на принтере, позволяющем выполнять двустороннюю печать.

dmYResobaitm

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

dmnOption

short. Указывает, как должна выполняться печать шрифтов TrueType. В качестве этого параметра может быть установлено одно из значений в табл. 14.8.

Таблица 14.7, Значения члена dmDuplex структуры DEVMODE

Значение

Описание

DMDUP_SIMPLEX

Двусторонняя печать не применяется

DMDUP_HORIZONTAL

Двусторонняя печать с обращением листа по горизонтали (вдоль длинного края)

DMDUP_VERTICAL

Двусторонняя печать с обращением листа по вертикали (вдоль короткого края)

Таблица 14.8. Значения члена dmTTOption структуры DEVMODE

Значение

Описание

DMTT_BITMAP

Печатать шрифты TrueType как графику. Это значение указывает на заданное по умолчанию действие для матричных принтеров.

DMTT_DOWNLOAD

Считывать в память принтера шрифты TrueType как загружаемые. Это значение указывает на заданное по умолчанию действие для принтеров Hewlett-Packard, в которых используется язык управления принтером (PCL — Printer Control Language).

DMTT_DOWNLOAD_OUTLINE

Считывать в память принтера шрифты TrueType как контурные загружаемые шрифты.

DMTT_SUBDEV

Заменять шрифты TrueType шрифтами устройства. Это значение указывает на заданное по умолчанию действие для принтеров PostScript.

dmCollate

short. Устанавливается равным DMCOLLATEJTRUE для использования подборки копий при печати нескольких копий. Если подборка копий не требуется, должно быть установлено значение DMCOLLATE_FALSE. Использование флажка DMCOLLATE_FALSE обеспечивает более быстрый и эффективный вывод на принтерах, позволяющих печатать несколько копий, поскольку данные при этом отправляются на постранично-печатаю-щее устройство только один раз, независимо от числа копий. Принтер просто получает сообщение, что страницу нужно напечатать еще раз.

dm Form Name

TCHAR[CCHFORMNAME]. Название используемого формата (например, "Letter" или "Legal"). Этот член в Windows 98 не поддерживается.

dmLogPixels

WORD. Число пикселей на логический дюйм.

dmBitsPerPel

DWORD. Цветовая разрешающая способность устройства отображения, в битах на пиксель (например, 4 бита для 16 цветов, 8 битов для 256 цветов или 16 битов для 65536 цветов). Этот член не поддерживается в Windows 98.

dmPelsWidth

DWORD. Ширина видимой поверхности устройства, в пикселях. Этот член не поддерживается в Windows 98.

dmPelsHeight

DWORD. Высота видимой поверхности устройства в пикселях. Этот член не поддерживается в Windows 98.

dmDisplay Flags

DWORD. Режим визуального отображения устройства. Этот параметр может иметь одно из значений, перечисленных в табл. 14.9.

Таблица 14.9. Значения члена dmDisplayRags структуры DEVMODE

Значение

Описание

DM_GRAYSCALE

Дисплей не является цветным. Если это значение не указано, дисплей считается цветным.

DMJNTERLACED

Дисплей поддерживает режим строчной развертки с чередованием. Если это значение не указано, подразумевается режим строчной развертки без чередования.

dmNup

DWORD. Устанавливается равным   DMNUP_SYSTEM, если принте{ обеспечивает печать нескольких страниц документа на одной печатно! странице; в ином случае устанавливается равным DMNUP_ONEUP.

dmDisplayfnq»encyDWORD. Частота развертки устройства отображения в конкретном режиме в герцах (Гц). Этот член в Windows 98 не поддерживается.

dmlCMMelkod

DWORD. Если в приложении не применяются функции ICM (Image Colo Matching — Согласование цветов изображения), этот член должен тольк< указывать, разрешены ли функции ICM. Если же в приложении применя ются функции ICM, система Windows анализирует этот член, определя: способ поддержки ICM. Этот член может иметь одно из заранее опреде ленных значений, перечисленных в табл. 14.10, или значение, определя емое драйвером, которое превышает значение DMICMMETHOD_USER Драйвер принтера должен предоставлять пользовательский интерфейс дл: настройки значения этого члена. Большинство драйверов принтеров под держивает только значение DMICMMETHOD_SYSTEM или DMICMMETHOD_NONE. Драйверы для принтеров PostScript поддержи вают все значения.

Таблица 14. 10. Значения члена dmICMMethod структуры DEVMODE

Значение

Описание

DMICMMETHOD_DEV1CE

Поддержка ICM осуществляется устройством назначения.

DMICMMETHOD DRIVER

Поддержка ICM осуществляется драйвером устройства.

DMICMMETHOD NONE

Поддержка ICM запрещена.

DMICMMETHOD_SYSTEM

Поддержка ICM осуществляется системой Windows.

dmICMIntent

DWORD. Указывает, какой из трех возможных методов согласования цве тов (эти методы называются также "назначениями"), должен использован ся по умолчанию. Этот член в основном предназначен для приложения не обеспечивающих ICM. В приложениях ICM назначения устанавлива ются с помощью функций ICM. Этот член может иметь одно из заране определенных значений, приведенных в табл. 14.11, или значение, опре деляемое драйвером, которое превышает значение DMICM_USER

dmMediaType

DWORD. Тип носителя, на котором выполняется печать. Этот член мо жег иметь одно из заранее определенных значений, приведенных в таб; 14.12, или значение, определяемое драйвером, которое превышает значе ние DMMEDIA_USER

Таблица 14.11. Значения члена dmICMIntent структуры DEVMODE

Значение

Описание

DMICM_ABS_COLORIMETRIC

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

DMICM COLORMETRIC

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

DMICM_CONTRAST

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

DMICM_SATURATE

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

Таблица 14. 12. Значения члена dmMediaType структуры DEVMODE

Значение

Описание

DMMEDIA_STANDARD

Обычная бумага

DMMECHA_GLOSSY

Глянцевая бумага

DMMEDIA_TRANSPARENCY

Прозрачная пленка

dmDitherType

DWORD. Указывает, как должна осуществляться передача полутонов. Этот член может иметь одно из заранее определенных значений, перечисленных в табл. 14.13, или значение, определяемое драйвером, которое превышает значение DMDITHER_USER.

Таблица 14. 13. Значения члена dmMediaType структуры DEVMODE

Значение

Описание

DMDITHER_NONE

Передача полутонов не предусмотрена.

DMDTTHER_COARSE

Передача полутонов с помощью крупной кисти.

DMDITHER_RNE

Передача полутонов с помощью тонкой кисти.

DMDfTHERJJNEART

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

DMDITHER_ERRORDIFFUSION

(Windows 98) Использовать алгоритм рассредоточения ошибок для лучшей передачи полутонов.

DMDITHER_GRAYSCALE

Передачу полутонов обеспечивает устройство.

dmReservedl

DWORD. Неиспользуемое значение; должно быть установлено равным 0.

dmReserved2

DWORD. Неиспользуемое значение; должно быть установлено равным 0.

dmPanningWidth

DWORD. Должно быть установлено равным 0.

dmPanningHeight

DWORD. Должно быть установлено равным 0.

Пример

В следующем примере показано, как использовать функцию DeviceCapabilities, чтобы определить, поддерживает ли принтер замену шрифтов. Это — средство, которое поддерживают многие принтеры PostScript.

Ос.    \local-sources\chapl4\14-02.txt

EndDoc                                  Windows 98   • Windows 2000

Описание

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

Синтаксис

int EndDoc( HOC hDC)

Параметры

HOC

HOC. Контекст устройства для задания на печать.

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

int. В случае успешного выполнения, возвращаемое значение больше нуЯя; в ином случае возвращаемое значение — SP_ERROR.

Включаемый файл

wingdi.h

См. также

StartDoc, AbortDoc

Пример

См. пример для функции EndPage.

EndPaqe                                 Windows 98   • Windows 2000

Описание

Функция EndPage извещает устройство о том, что приложение завершило запись страницы. Эта функция обычно применяется в сочетании с функцией StartPage для перехода на новую страницу. Данная функция заменяет управляющий код принтера NEWFRAME. Для каждой новой страницы в приложении необходимо определить контекст устройства с соответствующими установками. Это связано с тем, что в Windows 98 при переходе от одной страницы к другой установки не сохраняются.

Синтаксис

int EndPage( HDC HOC)

Параметры

НОС

HDC. Контекст устройства для задания на печать.

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

int. В случае успешного выполнения возвращаемое значение больше HfW; в ином случае возвращаемое значение — SP_ERROR.

Включаемый файл

wingdi.h

См. также

StartPage, EndDoc

Пример

В следующем примере выполняется вывод двух страниц на принтер, называемый "HP Laser Printer", когда пользователь выбирает пункт меню Test!. Обратите внимание, что вывод каждой страницы начинается с вызова функции StartPage и заканчивается вызовом функции EndPage.

Си.    \local -sources \ chapl 4\14-03.txt

Escape                                   Windows 98   • Windows 2000

Описание

Функция Escape позволяет получить в приложении доступ к возможностям устройства, которые не являются непосредственно доступными с помощью функций GDI. Вызовы функции Escape, выполненные в приложении, преобразуются и направляются прямо в драйвер. API Win32 определяет функции GDI, которые заменяют большую часть управляющих кодов принтера, предусмотренных в API Windows 3.x. Эти новые функции должны применяться вместо управляющих кодов принтера.

Синтаксис

int Escape( HDC hDC, int nEscape, int cblnput, LPCTSTR IpvInData, LPVOID IpvOutData )

Параметры hDC

HDC. Контекст устройства, которое должно принять управляющий код.

nEscape

int Функция управляющего кода, которая должна быть выполнена. В приложениях на основе Win32 можно использовать только два управляющих кода, приведенных в табл. 14.14. Если в приложении определено приватное значение управляющего кода, то в нем должна использоваться функция Ext Escape. Описание управляющих кодов приведено ниже.

Таблица 14. 14. Значения параметра nEscape функции Escape

Управляющий кол

Описание

PASSTHROUGH

Позволяет приложению посылать данные непосредственно на принтер.

QUERYESCSUPPORT

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

cblnput

int. Число байтов данных, указанных параметром IpvInData.

IpvInData

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

IpvOutData

LPVOID. Указатель на структуру данных, которая должна принять данные, возвращенные в результате вызова функции Escape. Устанавливается равным NULL, если в результате вызова не должны быть возвращены какие-либо данные.

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

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

Включаемый файл

wingdi.h

См. также

AbortDoc, EndDoc, EndPage, SetAbortProc, StartDoc, StartPage, GetDeviceCaps, DeviceCapabilities, ResetDC, Ext Escape

Таблица 14. 15. Коды ошибок функции Escape

Значение

Описание

SP ERROR

Общая ошибка.

SP_OUTOFDISK

В настоящее время нет достаточного объема дискового пространства для буферизации и нельзя рассчитывать на появление дополнительного пространства.

SP_OUTOFMEMORY

Нет достаточного объема памяти для буферизации

SP_USERABORT

Пользователь завершил задание с помощью диспетчера печати Windows Print Manager.

Определение управляющего кода PASSTHROUGH

Описание

Управляющий код принтера PASSTHROUGH позволяет отправлять в при ложении данные непосредственно на принтер, обходя стандартный ко» драйвера печати. Для использования этого управляющего кода в приложе нии необходимо иметь полную информацию о том, как работает принтер ' Настоятельно рекомендуется не выполнять в приложениях действия, которые занимают память принтера, например загружать шрифт или макрокоманду. Для предотвращения нарушения потока данных при передач* последовательных управляющих кодов PASSTHROUGH приложение вс время выполнения этой последовательности не должно обращаться 1 принтеру каким-то иным способом.

Синтаксис

int Escape( HDC hDC, PASSTHROUGH, NULL, LPCSTR IpInData, NULL)

Параметры

hDC

HDC. Обозначает контекст устройства.

IpInData

LPCSTR. Указатель на структуру, первое слово которой (16 битов) содержит число байтов входных данных. Остальные байты структуры содержат сами данные.

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

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

Определение управляющего кода QUERYESCSUPPORT

Описание

Управляющий код принтера QUERYESCSUPPORT позволяет в приложении определить, поддерживается ли драйвером устройства конкретный управляющий код.

Синтаксис

int Escape( HDC hDC, QUERYESCSUPPORT, sizeof(int), LPINT IpEscNum, NULL )

Параметры

hDC

HDC. Обозначает контекст устройства.

IpEscNum

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

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

int. Отлично от нуля, если поддерживается данный управляющий код; в; ином случае — 0.

Пример

В следующем примере показано использование управляющего кода PASSTHROUGH для отправки на принтер данных. Когда пользовател! выбирает пункт меню Test!, на принтер отправляются три копии двухстраничной распечатки. Число копий устанавливается с помощью управляю-

шего кода PASSTHROUGH. Обратите внимание, что результаты выполнения этого примера в значительной степени зависят от конкретной модели принтера. В этом примере показано, как работает функция Escape, но это — не самый лучший способ установки числа копий, которые должны быть напечатаны. Вместо этого для указания числа копий следует использовать структуру DEVMODE с функцией CreateDC.

См.    \local-sources\cbapl4\14-04.txt

ExtEscape                                Windows 98   • Windows 2000

Описание

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

Синтаксис .

int ExtEscape( HDC hDC, int nEscape, int cblnput, LPCSTR IpszInData, int cbOutput, LPSTR IpszOutData )

Параметры

HOC

HDC. Контекст устройства, которое должно принять управляющий код.

nEscape

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

Таблица 14. 16. Значения параметра nEscape функции ExtEscape

Управляющий кол

Описание

CHECKJPEGFORMAT

(Windows 2000) Проверить, обеспечивает ли принтер поддержку изображений JPEG.

CHECKPNGFORMAT

(Windows 2000) Проверить, обеспечивает ли принтер поддержку изображений PNG.

DRAWPATTERNRECT

Вывести белый, полутоновый или черный прямоугольник.

GET_PS_FEATURESETTING

(Windows 2000) Получить информацию об установке указанного средства драйвера PostScript.

POSTSCRIPT_DATA

Отправить данные непосредственно на принтер. Поддерживается только в режиме совместимости.

POSTSCRIPTJDENTITY

(Windows 2000) Установить драйвер PostScript в режим выполнения функций GDI или PostScript.

POSTSCRIPTJNJECTION

(Windows 2000) Вставить блок произвольных данных в поток заданий PostScript.

POSTSCRIPT_PASSTHROUGH

(Windows 2000) Отправить данные непосредственно драйверу принтера PostScript. Поддерживается в режиме совместимости или в режиме выполнения функций PS.

cblnput

int. Число байтов данных, указанных параметром IpszInData.

IpszInData

LPCSTR. Указатель на структуру ввода, необходимую для указанного управляющего кода.

cbOutput

int. Число байтов данных, указанных параметром IpszOutData.

IpszOutData

LPSTR. Указатель на структуру, которая принимает вывод, полученный в результате выполнения управляющего кода. Если управляющий код

представляет собой запрос, этот параметр не должен быть равен NULL. Если в этой структуре не должны быть возвращены данные, параметр cbOutput должен быть установлен равным 0.

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

int. Результат выполнения функции. В случае успешного выполнения функции возвращаемое значение больше или равно нулю. В ином случае возвращаемое значение меньше нуля указывает на ошибку.

Включаемый файл

wingdi.h

См. также

Escape

Определение управляющего кода CHECKJPEGFORMAT

Описание

Управляющий код принтера CHECKJPEGFORMAT определяет, может ли принтер обрабатывать изображение JPEG.

Синтаксис

int ExtEscape( HDC hDC, CHECKJPEGFORMAT, int cblnput, LPCSTR IpInData, sizeof( DWORD), LPSTR IpszOutData )

Параметры

hDC

HDC. Обозначает контекст устройства.

cblnput

int. Размер изображения JPEG в байтах.

lp In Data

LPCSTR Указатель на буфер, содержащий изображение JPEG.

IpszOutData

LPSTR. Указатель на переменную DWORD, которая принимает результаты выполнения функции. Если принтер может обрабатывать изображение указанного типа, возвращаемое значение — 1; в ином случае возвращаемое значение — нуль.

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

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

Определение уп

фавляющего кода CHECKPNGFORMAT

Описание

Управляющий код принтера CHECKPNGFORMAT определяет, может ли принтер обрабатывать изображения PNG.

Синтаксис

int ExtEscape( HDC hDC, CHECKPNGFORMAT, int cblnput, LPCSTR IpInData, sizeof( DWORD), LPSTR IpszOutData )

Параметры

hDC

HDC. Обозначает контекст устройства.

cblnput

int. Размер изображения PNG, в байтах.

IpInData

LPCSTR Указатель на буфер, содержащий изображение PNG.

IpszOutData

LPSTR. Указатель на переменную DWORD, которая принимает результаты выполнения функции. Если принтер может обрабатывать изображение указанного типа, возвращаемое значение — 1; в ином случае возвращаемое значение — нуль.

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

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

Определение управляющего кода DRAWPATTERNRECT

Описание

Управляющий код принтера DRAWPATTERNRECT позволяет создать белую, полутоновую или черную прямоугольную область с использованием возможности задания шаблонов и правил языка управления принтером (PCL — Printer Control Language).

Синтаксис

int ExtEscape( HDC hDC, DRAWPATTERNRECT, sizeof( DRAWPATRECT ), LPCSTR IpInData, 0, NULL )

Параметры

hDC

HDC. Обозначает контекст устройства.

IpInData

LPCSTR. Указатель на структуру DRAWPATRECT, которая описывает прямоугольную область.

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

int. В случае успешного выполнения возвращаемое значение — 1 ; в ином случае возвращаемое значение — нуль.

Определение DRAWPATRECTtypedef struct    DRAWPATRECT {

POINT ptPosition;

POINT ptSize;

WORD wStyle;

WORD wPattern; }   DRAWPATRECT,   *PDRAWPATRECT;

Члены

ptPosition

POINT. Левый верхний угол прямоугольной области.

ptSize

POINT. Правый нижний угол прямоугольной области.

wStyle

WORD. Устанавливается равным 0 для обозначения черной прямоугольной области, 1 — белой прямоугольной области, или 2 — серой прямоугольной области.

wPattern

WORD. Доля серого в цвете прямоугольника в процентах (0—100). Здесь 0 обозначает белый прямоугольник, а 100 — черный прямоугольник.

Определение yправляющего кода GET_PS_FEATURESETTING

Описание

Управляющий код принтера GET_PS_FEATURESETTING позволяет получить информацию о конкретном средстве, установленном для драйвера PostScript. Это средство поддерживается, только если драйвер PostScript находится в режиме выполнения функций PostScript или функций GDI.

Синтаксис

int ExtEscape( HDC hDC, GET_PS_FEATURESETTING, sizeof(INT), LPCSTR IpInData, INT cbOutput, LPSTR IpszOutData )

Параметры

hDC

HDC. Обозначает контекст устройства.

IpInData

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

cbOutput

INT. Размер буфера IpszOutData в байтах.

Таблица 14.17. Значения члена IpInData управляющего кода GET_PS_FEATURESETTING

Значение

Описание

FEATURESETTING_CUSTPAPER

Получить информацию о характеристиках бумаги, определяемых пользователем. Значение параметра cbOutput должно быть установлено равным sizeof(PSFEATURE_CUSTPAPER), а параметр /psaOufData должен указывать на структуру PSFE ATURE_CUSTP APER .

FEATURESETTING_MIRROR

Получить информацию об установке зеркального отображения вывода. Значение параметра cbOufpuf должно быть установлено равным sizeof(BOOL), а параметр IpszOutData должен указывать на переменную типа BOOL, которая принимает значение TRUE, если включена установка зеркального отображения вывода; в ином случае принимает значение FALSE.

FEATURESETTING_NEGATIVE

Получить информацию об установке негативного вывода. Значение параметра cbOufpuf должно быть установлено равным sizeof(BOOL), а параметр IpszOutData должен указывать на переменную типа BOOL, которая принимает значение TRUE, если включена установка негативного вывода; в ином случае принимает значение FALSE.

FEATURESETTING_NUP

Получить информацию о компоновке страницы. Значение параметра cbOufpuf должно быть установлено равным sizeof(BOOL), а параметр IpszOutData должен указывать на переменную типа BOOL, которая принимает значение TRUE, если принтер обеспечивает печать нескольких страниц документа на одной печатной странице; в ином случае принимает значение FALSE.

FEATURESETTJNG_OUTPUT

Получить информацию об опциях вывода драйвера PostScript. Значение параметра cbOufpuf должно быть установлено равным sizeof(PSFEATURE_OUTPUT), а параметр IpszOutData должен указывать на структуру PSFEATURE_OUTPUT.

FEATURESETTING_PROTOCOL

Получить информацию об установке протокола вывода. Значение параметра cbOufpuf должно быть установлено равным sizeof(INT), а параметр IpszOutData должен указывать на переменную типа INT. Протокол вывода может иметь значение PSPROTOCOL ASCII, PSPROTOCOL BCP, PSPROTOCOL ТВСР или PSPROTOCOL_BIN AR Y .

FEATIN****NG_PSLEYEL

Определить уровень языка PostScript. Значение параметра cbOufpuf должно быть установлено равным sizeof(INT), a параметр IpszOutData должен указывать на переменную типа INT, которая принимает данные об уровне PostScript.

IpszOutData

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

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

int. В случае успешного выполнения возвращаемое значение — больше нуля; в ином случае возвращаемое значение — меньше или равно нулю..

Определение PSFEATURE_CUSTPAPERtypedef  Struct    PSFEATURE CUSTPAPER{

LONG lOrientation;

LONG IWidth;

LONG IHeight;

LONG IWidthOffset;

LONG IHeightOffset; }    PSFEATURE_CUSTPAPER,   *PPSFE*TURE_CU8TPAPER

Члены

lOrientation

LONG. Определяемая пользователем ориентация бумаги. Этот параметр может иметь значение от 0 до 3, если выбраны размеры страницы, опре-

деляемые пользователем. В ином случае возвращаемое значение равно -1, и все другие члены структуры равны нулю.

IWidlh

LONG. Определяемая пользователем ширина страницы, в пунктах.

IHeight

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

IWidthOffset

LONG. Определяемое пользователем смещение ширины страницы, в пунктах.

IHeightOffset

LONG. Определяемое пользователем смещение высоты страницы, в пунктах.

Определение PSFEATURE_OUTPUTtypedef struct    PSFEATURE OUTPUT {

BOOL bPagelndependent ;

BOOL bSetPageDevice; }   PSFEATURE_OUTPUT ,    *PPSFEATORE OUTPUT;

Члены

bPagelndependent

BOOL. Устанавливается равным TRUE, если вывод PostScript не зависит от страницы, или FALSE, если вывод PostScript зависит от страницы.

bSetPageDevice

1   BOOL. Устанавливается равным TRUE, если код средства принтера включен, или FALSE, если все коды средств принтера подавлены.

Определение управляющего кода POSTSCRIPT DATA

Описание

Управляющий код принтера POSTSCRIPT_DATA отправляет данные непосредственно в драйвер принтера.

Синтаксис

int ExtEscape( HDC hDC, POSTSCRIPT DATA, int cblnput, LPCSTR IpszInData, 0, NULL )

Параметры

hDC

HDC. Обозначает контекст устройства.

cblnput

int. Размер в (байтах) данных, указанных параметром IpszInData.

IpszInData

LPCSTR Указатель на буфер, содержащий данные, которые должны быть отправлены на принтер. Первое слово буфера (16 битов) содержит число байтов входных данных.

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

int. В случае успешного выполнения возвращаемое значение больше нуля; в ином случае возввашаемое значение менмпр или пянил uvnin

Определение управляющего кода POSTSCRIPT IDENTIFY

Описание

Управляющий код принтера POSTSCRIPTJDENTIFY переводит драйвер PostScript в режим выполнения функций GDI или функций PostScript.

Синтаксис

int ExtEscape( HDC hDC, POSTSCRIPT_IDENTIFY, sizeof(DWORD), LPCSTR IpszInData, 0, NULL )

Параметры

hDC

HDC. Обозначает контекст устройства.

IpszInData

LPCSTR. Указатель на переменную, содержащую значение PSIDENT_GDICENTRIC или PSIDENT_PSCENTRIC.

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

int. В случае успешного выполнения возвращаемое значение больше нуля; в ином случае возвращаемое значение меньше или равно нулю.

Определение управляющего кода POSTSCRIPT_INJECTION

Описание

Управляющий код принтера POSTSCRIPT_INJECTION вставляет блок произвольных данных в указанные точки потока заданий PostScript. Этот управляющий код поддерживают драйверы PostScript, которые находятся в режиме выполнения функций GDI и функций PostScript.

Синтаксис

int ExtEscape( HDC hDC, POSTSCRIPTJNJECTION, int cblnput, LPCSTR IpszInData, 0, NULL )

Параметры hDC

HDC. Обозначает контекст устройства.

cblnput

int. Размер в байтах буфера, указанного параметром IpszInData. В качестве этого параметра должна быть установлена сумма значения sizeof(PSINJECTDATA) и значения размера произвольных данных, которые будут введены в поток заданий.

IpszInData

LPCSTR. Указатель на структуру PSINJECTDATA, за которой следуют произвольные данные, которые будут введены в поток заданий.

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

int. В случае успешного выполнения возвращаемое значение больше нуля; в ином случае возвращаемое значение меньше или равно нулю.

Определение PSINJECTDATAtypedef struct _PSINJECTDATA{

DWORD       DataBytes ;

WORD         InjectionPoint;

WORD         PageNumber ; }   PSINJECTDATA,   *PPSINJECTDATA;

Члены

DataBytes

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

InjectionPattt

WORD. Указывает, где должны быть введены произвольные данные в вывод PostScript. Этот параметр может иметь одно из значений, перечисленных в табл. 14.18.

Таблица 14.18. Значения члена InjectionPoint структуры PSINJECTDATA

Значение

Описание

PSINJECT_BEGWSTREAM

Перед первым байтом потока заданий

PSH4JECT_PSADOBE

Перед командой %!PS-Adobe

PSINJECT_PAGESATEND

Заменяет команду драйвера %%Pages (atend)

PSINJECT_PAGES

Заменяет команду драйвера %%Pages лпп

PSINJECT_DOCNEEDEDRES

После команды %%DocumentNeededResources

PSINJECT_DOCSUPPLIEDRES

После команды %%DocumentSuppliedResources

PSINJECT_PAGEORDER

Заменяет команду драйвера %%PageOrder

PSINJECT_OReNTATION

Заменяет команду драйвера %%Orientatk>n

PSINJECT_BOUNDINGBOX

Заменяет команду драйвера %%BoundingBox

PSINJECT_DOCUMENTPROCESSCOLORS

Заменяет команду драйвера %%DocumentProcessColors <цвет>

PSINJECT_COMMENTS

Перед командой %%EndComments

PSINJECT_BEGNDEFAULTS

После команды %%BeginDefaurts

PSINJECT_ENDDEFAULTS

Перед командой %%EndDefautts

PSINJECT_BEGINPROLOG

После команды %%BeginProlog

PSINJECT_ENDPROLOG

Перед командой %%EndProlog

PSINJECT_BEGINSETUP

После команды %%BeginSetup

PSINJECT_ENDSETUP

Перед командой %%EndSetup

PSINJECT_TRA«JER

После команды %% Trailer

PSINJECT_EOF

После команды %%EOF

PSINJECTJENDSTREAM

После последнего байта потока заданий

PSINJECT_DOCUMENTPROCESSCOLORSATEND

Заменяет команду драйвера %%DocurnentProcessColors (atend)

Точки ввода данных на уровне страницы

PSINJECT_PAGENUMBER

Заменяет команду драйвера %%Раде

PSINJECT_BEGINPAGESETUP

После команды %%BeginPageSetup

PSINJECT_ENDPAGESETUP

Перед командой %%EndPageSetup

PSINJECT_PAGETRAILER

После команды %%PageTrailer

PSINJECT_PLATECOLOR

Заменяет команду драйвера %%PlateColor: <цмг>

PSINJECT_SHOWPAGE

Перед оператором showpage

PSNJECT_PAGEBBOX

Заменяет команду драйвера %%PageBoundtngBox

PSNJECT_ENDPAGECOMMENTS

Перед командой %%EndPageComments

PSINJECT_VMSAVE

Перед оператором save

PSINJECT_VMRESTORE

После оператора restore

PageNumber

WORD. Номер страницы (начиная с 1), к которой применяются вводимые данные. Для применения вводимых данных ко всем страницам должно быть указано значение нуль.

Определение управляющего кода POSTSCRIPT_PASSTHROUGH

Описание

Управляющий код принтера POSTSCRIPT_PASSTHROUGH отправляет данные непосредственно в драйвер принтера PostScript. Этот управляющий код поддерживается драйверами PostScript, которые находятся в режиме выполнения функций PostScript и в режиме совместимости.

Синтаксис

int ExtEscape( HDC hDC, POSTSCRIPT PASSTHROUGH, int cblnput, LPCSTR IpszInData, 0, NULL )

Параметры

hDC

HDC. Обозначает контекст устройства.

cblnput

int. Размер в байтах данных, указанных параметром IpszInData.

IpszInData

LPCSTR Указатель на буфер, содержащий данные, которые должны быть отправлены на принтер. Первое слово буфера (16 битов) содержит число байтов входных данных.

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

int. В случае успешного выполнения возвращаемое значение больше нуля; в ином случае возвращаемое значение — меньше или равно нулю.См. пример для функции Escape. Несмотря на то что в этом примере не используется функция ExtEscape, принцип применения ее аналогичен функции Escape. Способ применения функции ExtEscape зависит от конкретных аппаратных средств, которые используются в приложении.

ExtTextOut                              Windows 98   • Windows 2000

Описание

Функция ExtTextOut позволяет вывести символьную строку с использованием выбранного шрифта. Может быть предусмотрен необязательный прямоугольник, предназначенный для отсечения, выкрывания кроющей краской или того и другого. При использовании этой функции с функцией SetTextAlign, в которой значение параметра uMode установлено равным TA_UPDATECP, параметры X и У при последующих вызовах функции ExtTextOut будут игнорироваться. Вместо этой функции за текущей позицией будет следить система Windows.

Синтаксис

BOOL ExtTextOut( HDC hDC, int X, int Y, UINT uOptions, CONST RECT* Iprc, LPCTSTR IpszString, UINT cbCount, CONST INT* IpDx )

Параметры

hDC

HDC. Контекст устройства вывода.

X

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

Y

int. Логическая координата у точки отсчета, используемой для позиционирования строки.

и Options

UINT. Определяет способ использования в функции ExtTextOut прямоугольной области, определяемой приложением. Этот параметр может представлять собой комбинацию значений, перечисленных в табл. 14.19.

IprOfi

CONST RECT*. Указатель на необязательную структуру RECT, которая определяет размеры прямоугольной области, используемой для отсечения, заливкой кроющей краской или того и другого.

Таблица 14. 19. Значения параметра uOptions функции ExtTextOut

Значение

Описание

ETO_CLIPPED

Текст должен быть ограничен прямоугольной областью.

ETO_GLYPH_INDEX

Параметр IpszString указывает на массив, возвращенный функцией GetCharacterPlacement, и должен быть интерпретирован непосредственно функциями GDI. Индексация глифов применяется только к шрифтам TrueType, но этот флажок позволяет обойти языковую обработку растровых и векторных шрифтов. Обратите внимание, что все индексы глифов представляют собой 16-разрядные значения, даже несмотря на то, что данная строка считается массивом 8-разрядных значений.

ETO_NUMERICSLATIN

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

ETO_NUMEMCSLOCAL

Использовать для отображения чисел соответствующую региональную установку.

ETO_OPAQUE

Прямоугольная область будет заполнена текущим цветом фона.