На главную

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 | Скачать Вниз

SetPrinter



The SetPrinter function sets the state of the specified printer by pausing printing, resuming printing, or clearing all print jobs. The function can also be used to set printer data.

BOOL SetPrinter(

HANDLE hPrinter, // handle of printer object
DWORD Level, // structure level
LPBYTE pPrinter, // address of array containing printer data
DWORD Command // printer-state command
);


Parameters

hPrinter

Handle to the printer of interest.

Level

Windows 95: Specifies the type of data contained in pPrinter. This parameter must be 0, 2, 3, 4, or 5. This parameter must be zero if Command is not equal to zero.
Windows NT: Specifies the type of data contained in pPrinter. This parameter must be 0, 2, 3, 5, or 6. This parameter must be zero if Command is not equal to zero.

pPrinter

This is either a DWORD value indicating the printer status, or a pointer to an array of bytes that may contain printer data.
If Level is 0, and the Command parameter is PRINTER_CONTROL_SET_STATUS, pPrinter must contain a DWORD value that specifies the new printer status to set. For a list of the possible status values, see the Status member of the PRINTER_INFO_2 structure. Note that PRINTER_STATUS_PAUSED and PRINTER_STATUS_PENDING_DELETION are not valid status values to set.

If Level is 0, but the Command parameter is not PRINTER_CONTROL_SET_STATUS, pPrinter must be NULL.
Windows 95: If Level is 2, 3, 4, or 5, pPrinter points to an array that contains PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_4, or PRINTER_INFO_5 structures, respectively.
Windows NT: If Level is 2, 3, 5, or 6, pPrinter points to an array that contains PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_5, or PRINTER_INFO_6 structures, respectively.

Command

This parameter can be zero or one of the following values. If it is zero, the printer retains its original state and the printer data is reconfigured by using the structure to which pPrinter points.

Value Meaning
PRINTER_CONTROL_PAUSE Pauses the printer.
PRINTER_CONTROL_PURGE Deletes all print jobs in the printer.
PRINTER_CONTROL_RESUME Resumes a paused printer.
PRINTER_CONTROL_SET_STATUS Sets the printer status.


If Command is any of the above values, Level must be zero.

Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

You can obtain the handle hPrinter is by calling the OpenPrinter function.
To modify the current printer settings, an application should call GetPrinter to retrieve the current settings into a PRINTER_INFO_2 structure, modify the members of that structure as necessary, and then call the SetPrinter function.
The SetPrinter function ignores the following members of a PRINTER_INFO_2 structure:

pServerName, AveragePPM, Status, and cJobs
Pausing a printer suspends scheduling of all print jobs for that printer, except for the one print job that may be currently printing. Print jobs can be submitted to a paused printer, but no jobs will be scheduled to print on that printer until printing is resumed. If a printer is cleared, all print jobs for that printer are deleted, except for the current print job.
If the printer data structure contains a pointer to a security descriptor, only those components of the security descriptor that the caller has permission to write should be present. An application that wants to write particular security descriptor components must open the printer with sufficient access permission to modify those components. The following table shows the security descriptor components that can be modified for particular access permission values:

Access Permission Modifiable Security Descriptor Components
WRITE_OWNER Owner, primary proup
WRITE_DAC Discretionary access-control list (ACL)
ACCESS_SYSTEM_SECURITY System ACL


If the calling application lacks a required permission, SetPrinter fails. Those components of a security descriptor that an application does not wish to modify should be NULL or not be present, as appropriate. If you do not want to modify the security descriptor, and are calling SetPrinter with a PRINTER_INFO_2 structure, set the pSecurityDescriptor member of that structure to NULL.
Windows 95: SetPrinter does not update the pShareName member in the PRINTER_INFO_2 structure.

Windows 95: SetPrinter is not supported when called against a Windows NT printer from a Windows 95 machine using the printer's UNC name.

See Also

AddPrinter, GetPrinter, OpenPrinter, PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_4, PRINTER_INFO_5, PRINTER_INFO_6


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

SetPrinter



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

BOOL SetPrinter(

РУЧКА hPrinter, // ручка принтера возражают Уровню DWORD, // структурному уровню LPBYTE pPrinter, // адресу массива, содержащим данные принтера DWORD Команды // принтер-государственная команда
);


Параметры

hPrinter

Прооперируйте принтер интереса.

Уровень

Windows 95: Определяет тип данных содержимых в pPrinter. Этот параметр должен быть 0, 2, 3, 4, или 5. Этот параметр должен быть нулем если Команда не равная нулю.
Windows NT: Определяет тип данных содержимых в pPrinter. Этот параметр должен быть 0, 2, 3, 5, или 6. Этот параметр должен быть нулем если Команда не равная нулю.

pPrinter

Это - также величина DWORD, указывающая статус принтера, или указатель в массив байтов, которые могут содержать данные принтера.
Если Уровень - 0, и Командный параметр - PRINTER_CONTROL_SET_STATUS, pPrinter должен содержать величину DWORD, которая определяет новый статус принтера, чтобы устанавливаться. Для списка возможных величин статуса, смотри элемент Статуса структуры PRINTER_INFO_2. Отметьте, что PRINTER_STATUS_PAUSED и PRINTER_STATUS_PENDING_DELETION будут недействительные величины статуса, чтобы устанавливаться.

Если Уровень - 0, но Командный параметр - не PRINTER_CONTROL_SET_STATUS, pPrinter должен быть НЕДЕЙСТВИТЕЛЕН.
Windows 95: Если Уровень - 2, 3, 4, или 5, точки pPrinter на массив, которые содержат PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_4, или структуры PRINTER_INFO_5, соответственно.
Windows NT: Если Уровень - 2, 3, 5, или 6, точки pPrinter на массив, которые содержат PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_5, или структуры PRINTER_INFO_6, соответственно.

Команда

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

Значение Величины
PRINTER_CONTROL_PAUSE Останавливается принтер.
PRINTER_CONTROL_PURGE Удаляет все рабочие места распечатки в принтере.
PRINTER_CONTROL_RESUME Продолжает остановленный принтер.
PRINTER_CONTROL_SET_STATUS Устанавливает статус принтера.


Если Команда - любая из величин вышеуказанного, Уровень должен - нулевым.

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

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

Замечания

Вы можете получить ручку hPrinter - вызывая функцию OpenPrinter.
Для того, чтобы модифицировать текущие установочные параметры принтера, приложение должно называть GetPrinter, чтобы извлекать текущие установочные параметры в структуру PRINTER_INFO_2, модифицируйте участников этой структуры как необходимый, затем назовите функцию SetPrinter.
Функция SetPrinter игнорирует следующих участников структуры PRINTER_INFO_2:

pServerName, AveragePPM, Status, и cJobs
Пауза принтера задерживает планирование всех рабочих мест распечатки для этого принтера, за исключением один работа распечатки, которая может к настоящему времени печататься. Рабочие места Распечатки могут быть поданы остановленному принтеру, но никакие рабочие места не будут запланированы, чтобы печататься в этом принтере пока печать не будет продолжена. Если принтер очищен, все печатают рабочие места для этого принтера удалены, за исключением текущей работы распечатки.
Если структура данных принтера содержит указатель в дескриптор безопасности, только те компоненты дескриптора безопасности, что вызывающий оператор имеет разрешение записывать должно присутствовать. Приложение, которое хочет записывать компоненты дескриптора конкретной безопасности должно открыть принтер с достаточным разрешением доступа, чтобы модифицировать те компоненты. Следующая таблица показывает компоненты дескриптора безопасности, которые могут быть модифицированы для величин разрешения конкретного доступа:

Разрешение Доступа Модифицируемых Компонентов Дескриптора Владельца Безопасности WRITE_OWNER, первичного proup Дискреционного доступа-управление WRITE_DAC указывают (ACL) ACCESS_SYSTEM_SECURITY System ACL


Если вызывающее приложение недостает необходимого разрешения, SetPrinter терпит неудачу. Те компоненты дескриптора безопасности, что приложение не хочет модифицировать, должны быть НЕДЕЙСТВИТЕЛЬНЫ или не представлять, как подходящий. Если Вы не хотите модифицировать дескриптор безопасности и вызывать SetPrinter со структурой PRINTER_INFO_2, устанавливать элемент pSecurityDescriptor этой структуры на НЕДЕЙСТВИТЕЛЬНЫЙ.
Windows 95: SetPrinter не корректирует элемент pShareName в структуре PRINTER_INFO_2.

Windows 95: SetPrinter не поддерживан когда названо против принтера Windows NT из машины Windows 95, использовавшей имя принтера UNC.

Смотри Также

AddPrinter, GetPrinter, OpenPrinter, PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_4, PRINTER_INFO_5, PRINTER_INFO_6


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