Поделиться через


Структура DOCUMENTPROPERTYHEADER (winddiui.h)

Структура DOCUMENTPROPERTYHEADER используется в качестве входного параметра для функции DrvDocumentPropertySheets библиотеки DLL интерфейса принтера.

Синтаксис

typedef struct _DOCUMENTPROPERTYHEADER {
  WORD     cbSize;
  WORD     Reserved;
  HANDLE   hPrinter;
  LPTSTR   pszPrinterName;
  PDEVMODE pdmIn;
  PDEVMODE pdmOut;
  DWORD    cbOut;
  DWORD    fMode;
} DOCUMENTPROPERTYHEADER, *PDOCUMENTPROPERTYHEADER;

Члены

cbSize

Размер структуры DOCUMENTPROPERTYHEADER в байтах.

Reserved

Зарезервировано. Должен равняться нулю.

hPrinter

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

pszPrinterName

Указатель на строку, завершающуюся значением NULL, представляющую имя принтера.

pdmIn

Указатель на входную структуру DEVMODEW , которую функция DrvDocumentPropertySheets должна скопировать во внутреннюю структуру DEVMODEW интерфейса принтера (перед отображением страницы свойств, если применимо). Если DM_IN_BUFFER или DM_MODIFY не заданы в fMode, этот указатель имеет значение NULL.

pdmOut

Указатель на выходную структуру DEVMODEW , в которую функция DrvDocumentPropertySheets должна копировать внутреннее содержимое БИБЛИОТЕКи DEVMODEW интерфейса принтера (после отображения страницы свойств, если применимо). Если DM_OUT_BUFFER или DM_COPY не заданы в fMode, этот указатель имеет значение NULL.

cbOut

Указывает размер (в байтах) буфера, на который указывает pdmOut . Дополнительные сведения см. в разделе "Примечания".

fMode

Один или несколько битовых флагов, перечисленных в следующей таблице. (Флаги определены в файлах заголовков Wingdi.h и Winddiui.h.)

Флаг Определение
Флаги не заданы (то есть fMode равно 0). Функция DrvDocumentPropertySheets должна возвращать размер в байтах своей структуры DEVMODEW, включая все открытые и закрытые члены, в элементе cbOut .
DM_ADVANCED Если этот параметр задан, функция DrvDocumentPropertySheets должна создавать только страницу документа Дополнительно. Если значение не задано, функция DrvDocumentPropertySheets должна создать страницы документа PageSetup и Дополнительно. (См. описание элемента pDlgPage структуры COMPROPSHEETUI .)
DM_IN_BUFFER или DM_MODIFY Вызывающий объект предоставил указатель структуры DEVMODEW в pdmIn, а функция DrvDocumentPropertySheets должна обновить свою внутреннюю структуру DEVMODEW, чтобы она отражала содержимое предоставленного DEVMODEW.
DM_IN_PROMPT или DM_PROMPT Функция DrvDocumentPropertySheets должна создавать страницы своих свойств. (Этот флаг никогда не устанавливается, если параметр pPSUIInfo функции DrvDocumentPropertySheets имеет значение NULL.)
DM_NOPERMISSION Обратный вызов библиотеки DLL _CPSUICALLBACK интерфейса принтера не должен позволять пользователю изменять свойства на отображаемых страницах страниц свойств.
DM_OUT_BUFFER или DM_COPY Вызывающий объект предоставил указатель структуры DEVMODEW в pdmOut, а функция DrvDocumentPropertySheets должна скопировать содержимое своей внутренней структуры DEVMODEW в предоставленный объект DEVMODEW.
DM_PROMPT_NON_MODAL Функция DrvDocumentPropertySheets должна создавать страницы страниц свойств и запускать немодальный пользовательский интерфейс. (Этот флаг никогда не устанавливается, если параметр pPSUIInfo функции DrvDocumentPropertySheets имеет значение NULL.)
DM_USER_DEFAULT Не используется.
DM_OUT_DEFAULT или DM_UPDATE Не используется.

Комментарии

Входное значение в элементе cbOut не обязательно равно размеру буфера, на который указывает элемент pdmOut . Например, если параметр pPSUInfo функции DrvDocumentPropertySheets имеет значение NULL и если элемент fMode структуры DOCUMENTPROPERTYHEADER равен нулю или элемент pdmOut той же структуры имеет значение NULL, драйвер должен записать в элемент cbOut общий размер структуры DEVMODEW принтера (включая открытые и закрытые элементы структуры). В этом случае драйвер должен рассматривать элемент cbOut как элемент ,доступный только для записи. Таким образом, драйвер не должен использовать член cbOut в качестве размера буфера, на который указывает член pdmOut , если была вызвана функция DrvDocumentPropertySheets. Пример "плоттера", поставляемый с комплектом драйверов Для Windows (WDK), демонстрирует, как правильно использовать член cbOut .

Требования

Требование Значение
Заголовок winddiui.h (включая Winddiui.h)

См. также раздел

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

Пример драйвера плоттера MSPLOT