На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

DocumentProperties



The DocumentProperties function retrieves or modifies printer initialization information or displays a printer-configuration dialog box for the specified printer.

LONG DocumentProperties(

HWND hWnd, // handle to window that displays dialog box
HANDLE hPrinter, // handle to printer object
LPTSTR pDeviceName, // pointer to device name
PDEVMODE pDevModeOutput, // pointer to modified device mode structure
PDEVMODE pDevModeInput, // pointer to original device mode structure
DWORD fMode // mode flag
);


Parameters

hWnd

Identifies the parent window of the printer-configuration dialog box.

hPrinter

Identifies a printer object.

pDeviceName

Points to a null-terminated string that specifies the name of the device for which the printer-configuration dialog box should be displayed.

pDevModeOutput

Points to a DEVMODE structure that receives the printer configuration data specified by the user.

pDevModeInput

Pointer to a DEVMODE structure that the operating system uses to initialize the dialog box controls.
This parameter is only used if the DM_IN_BUFFER flag is set in the fMode parameter. If DM_IN_BUFFER is not set, the operating system uses the printer's default DEVMODE.

fMode

Specifies a mask of values that determines the operations the function performs. If this parameter is zero, the DocumentProperties function returns the number of bytes required by the printer driver's DEVMODE data structure. Otherwise, use one or more of the following constants to construct a value for this parameter; note, however, that in order to change the print settings, an application must specify at least one input value and one output value:

Value Meaning
DM_IN_BUFFER Input value. Before prompting, copying, or updating, the function merges the printer driver's current print settings with the settings in the DEVMODE structure specified by the pDevModeInput parameter. The function updates the structure only for those members specified by the DEVMODE structure's dmFields member. This value is also defined as DM_MODIFY. In cases of conflict during the merge, the settings in the DEVMODE structure specified by pDevModeInput override the printer driver's current print settings.
DM_IN_PROMPT Input value. The function presents the printer driver's Print Setup dialog box and then changes the settings in the printer's DEVMODE data structure to those values specified by the user. This value is also defined as DM_PROMPT.
DM_OUT_BUFFER Output value. The function writes the printer driver's current print settings, including private data, to the DEVMODE data structure specified by the pDevModeOutput parameter. The caller must allocate a buffer sufficiently large to contain the information. If the bit DM_OUT_BUFFER sets is clear, the pDevModeOutput parameter can be NULL. This value is also defined as DM_COPY.


Return Values

If the fMode parameter is zero, the return value is the size of the buffer required to contain the printer driver initialization data. Note that this buffer can be larger than a DEVMODE structure if the printer driver appends private data to the structure.
If the function displays the initialization dialog box, the return value is either IDOK or IDCANCEL, depending on which button the user selects.
If the function does not display the dialog box and is successful, the return value is IDOK.

If the function fails, the return value is less than zero.

Remarks

The printer object handle identified by the hPrinter parameter can be obtained by calling the OpenPrinter function.
The string pointed to by the pDeviceName parameter can be obtained by calling the GetPrinter function.
Note that the DEVMODE structure actually used by a printer driver contains the device-independent part (as defined above) followed by a driver-specific part that varies in size and content with each driver and driver version. Because of this driver dependence, it is very important for applications to query the driver for the correct size of the DEVMODE structure before allocating a buffer for it.

To make changes to print settings that are local to an application, an application should follow these steps:

1. Get the number of bytes required for the full DEVMODE structure by calling DocumentProperties and specifying zero in the fMode parameter.
2. Allocate memory for the full DEVMODE structure.
3. Get the current printer settings by calling DocumentProperties. Pass a pointer to the DEVMODE structure allocated in Step 2 as the pDevModeOutput parameter and specify the DM_OUT_BUFFER value.
4. Modify the appropriate members of the returned DEVMODE structure and indicate which members were changed by setting the corresponding bits in the dmFields member of the DEVMODE.

5. Call DocumentProperties and pass the modified DEVMODE structure back as both the pDevModeInput and pDevModeOutput parameters and specify both the DM_IN_BUFFER and DM_OUT_BUFFER values (which are combined using the OR operator).

The DEVMODE structure returned by the third call to DocumentProperties can be used as an argument in a call to the CreateDC function.
To create a handle to a printer-device context using the current printer settings, you only need to call DocumentProperties twice, as described above. The first call gets the size of the full DEVMODE and the second call initializes the DEVMODE with the current printer settings. Pass the initialized DEVMODE to CreateDC to obtain the handle to the printer device context.

See Also

AdvancedDocumentProperties, CreateDC, DEVMODE, GetPrinter, OpenPrinter


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

DocumentProperties



Функция DocumentProperties извлекает или модифицирует информацию инициализации принтера или отображает принтер-конфигурацию диалогового блока для определенного принтера.

ДОЛГО (ДЛИНОЙ) DocumentProperties(

HWND hWnd, // РУЧКА в окно, которое отображает диалоговую РУЧКУ блока hPrinter, // ручка на объект принтера LPTSTR pDeviceName, // указатель в имя устройства PDEVMODE pDevModeOutput, // указатель на модифицировавшее структуру режима устройства PDEVMODE pDevModeInput, // указателя в структуру режима оригинального флага режима устройства DWORD fMode //
);


Параметры

hWnd

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

hPrinter

Идентифицирует объект принтера.

pDeviceName

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

pDevModeOutput

Точки на структуру DEVMODE, которые получают данные конфигурации принтера определялся пользователем.

pDevModeInput

Указатель в структуру DEVMODE, что операционная система использует, чтобы инициализировать диалоговые элементы управления блока.
Этот параметр только использован если флаг DM_IN_BUFFER установлен в параметре fMode. Если DM_IN_BUFFER не установлен, операционная система использует принтер по умолчанию DEVMODE.

fMode

Определяет маску величин, которые определяют операции, что функция выполняет. Если этот параметр - нуль, функциональный возврат DocumentProperties количество байтов требовалось принтером драйверной структуры данных DEVMODE. В противном случае, использовать одна или более из следующих констант, чтобы создавать величину для этого параметра; примечание, тем не менее, что для того, чтобы изменять установочные параметры распечатки, приложение должно определить по крайней мере один входная величина и одна выходная величина:

Значение Величины
величина Ввода DM_IN_BUFFER. Прежде, чем указать, копирование, или обновляя, функция объединяет драйверную текущую распечатку установочных параметров принтера с установочными параметрами в структуре DEVMODE определенной параметром pDevModeInput. Функция корректирует структуру только для тех участников определенных DEVMODE структурного элемента dmFields. Эта величина также определена как DM_MODIFY. В случаях конфликта в течение слияния, установочные параметры в структуре DEVMODE определенной pDevModeInput аннулируют драйверную текущую распечатку установочных параметров принтера.
величина Ввода DM_IN_PROMPT. Функция представляет Установку драйверной Распечатки принтера диалогового блока затем изменяет установочные параметры в структуре данных принтера DEVMODE в те величины определенные пользователем. Эта величина также определена как DM_PROMPT.
Выходная величина DM_OUT_BUFFER. Функция записывает драйверную текущую распечатку установочных параметров принтера, включая закрытые данные, в структуру данных DEVMODE определенную параметром pDevModeOutput. Вызывающий оператор должен распределить буфер достаточно большой, чтобы содержать информацию. Если битовые комплекты DM_OUT_BUFFER ясен, параметр pDevModeOutput может быть НЕДЕЙСТВИТЕЛЕН. Эта величина также определена как DM_COPY.


Обратные Величины

Если параметр fMode является нулем, обратная величина является размером буфера требовавшегося, чтобы содержать данные драйверной инициализации принтера. Отметьте, что этот буфер может быть большим чем структура DEVMODE если драйвер принтера добавляет закрытые данные в структуру.
Если функция отображает диалогового блока инициализации, обратная величина - или IDOK или IDCANCEL, в зависимости от которого кнопка пользователь выбирается.
Если функция не отображает диалогового блока и имеет успех, обратная величина - IDOK.

Если функция терпит неудачу, обратная величина - менее чем нуль.

Замечания

Объектная ручка принтера идентифицированная параметром hPrinter может быть получена вызовом функции OpenPrinter.
Строка указанная, чтобы параметром pDeviceName может быть получена вызовом функции GetPrinter.
Отметьте, что структура DEVMODE действительно использованная драйвером принтера содержит машинонезависимую часть (как определено над) сопровожденное драйверной-специфической частью, которая изменяется по величине и содержимое с каждой драйверной и драйверной версией. Из-за этой драйверной зависимости, очень важно для приложений на запросе драйвер для правильного размера структуры DEVMODE перед распределением буфера для этого.

Чтобы делать изменениями, чтобы печатать установочные параметры, которые локальные в приложении, приложение должно последовать за этими шагами:

1. Получите количество байтов необходимое для полной структуры DEVMODE вызывая DocumentProperties и определяя нуль в параметре fMode.
2. Распределите память для полной структуры DEVMODE.
3. Получите текущие установочные параметры принтера вызывая DocumentProperties. Передайте указатель в структуру DEVMODE распределенную на этапе 2 как параметр pDevModeOutput и определяйте величину DM_OUT_BUFFER.
4. Модифицируйте подходящих участников возвращанной структуры DEVMODE и указывайте, что какие участники были изменены установкой соответствующих битов в элементе dmFields DEVMODE.

5. Назовите DocumentProperties и передавайте модифицировать структуру DEVMODE как как pDevModeInput так и параметры pDevModeOutput и определяйте как DM_IN_BUFFER так и величины DM_OUT_BUFFER (который объединен используя ИЛИ оператор).

Структура DEVMODE возвращанная третьим вызовом на DocumentProperties может быть использована как аргумент на вызове в функцию CreateDC.
Для того, чтобы создавать ручку в принтер-устройство контекстного использования текущие установочные параметры принтера, Вам только нужно называть DocumentProperties дважды, как описано выше. Первый вызов получает размер полного DEVMODE и второй вызов инициализирует DEVMODE с текущими установочными параметрами принтера. Передайте инициализированный DEVMODE на CreateDC, чтобы получать ручку в контекст устройства принтера.

Смотри Также

AdvancedDocumentProperties, CreateDC, DEVMODE, GetPrinter, OpenPrinter


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz