描述
SetPrinterData功能设置打印机或打印服务器的配置数据。
在Windows 2000及更高版本的Windows中,要指定存储数据的注册表项,请调用SetPrinterDataEx功能。调用SetPrinterData相当于使用pKeyName参数设置为“PrinterDriverData”的SetPrinterDataEx函数。
C++ 语法
DWORD SetPrinterData( __in HANDLE hPrinter, __in LPTSTR pValueName, __in DWORD Type, __in LPBYTE pData, __in DWORD cbData ); |
PowerBASIC 语法
FUNCTION SetPrinterDataA ( _ BYVAL hPrinter AS DWORD, _ BYREF pValueName AS ASCIIZ, _ BYVAL Type AS DWORD, _ BYREF pData AS ANY, _ BYVAL cbData AS DWORD _ ) AS DWORD |
Unicode版本:
FUNCTION SetPrinterDataW ( _ BYVAL hPrinter AS DWORD, _ BYREF pValueName AS WSTRINGZ, _ BYVAL Type AS DWORD, _ BYREF pData AS ANY, _ BYVAL cbData AS DWORD _ ) AS DWORD |
参数
hPrinter
[in]处理功能设置配置数据的打印机或打印服务器。使用OpenPrinter或AddPrinter功能来检索打印机句柄。
pValueName
[in]指向指定要设置的数据的以空字符结尾的字符串的指针。
对于打印机,此字符串是注册表中打印机“PrinterDriverData”键下的注册表值的名称。
对于打印服务器,此字符串是以下备注部分中列出的预定义字符串之一。
在Windows 95/98 / Me中,pValueName不能为空。
Type
[in]指定指示pData参数指向的数据类型的代码。
pData
[in]指向包含打印机配置数据的字节数组的指针。
cbData
[in]指定数组的大小(以字节为单位)。
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,则返回值为错误值。
备注
要检索打印机的现有配置数据,请调用GetPrinterDataEx或GetPrinterData功能。
如果hPrinter是打印服务器的句柄,pValueName可以指定以下预定义值之一。
SPLREG_ALLOW_USER_MANAGEFORMS
Windows XP,SP2或更高版本。
Windows Server 2003,SP1或更高版本。
SPLREG_ARCHITECTURE
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_DNS_MACHINE_NAME
SPLREG_DS_PRESENT
成功返回后,pData如果机器位于DS域,则包含&H0001,否则为0。
SPLREG_DS_PRESENT_FOR_USER
成功返回后,如果用户登录到DS域,则pData包含&H0001,否则为0。
SPLREG_EVENT_LOG
SPLREG_MAJOR_VERSION
SPLREG_MINOR_VERSION
SPLREG_NET_POPUP
SPLREG_NET_POPUP_TO_COMPUTER
成功返回时,如果作业通知应发送到客户端计算机,则pData包含1,如果作业通知要发送给用户,则为0。
SPLREG_OS_VERSION
Windows XP或更高版本。
SPLREG_OS_VERSIONEX
Windows 2000或更高版本。
SPLREG_PORT_THREAD_PRIORITY_DEFAULT
Windows 2000或更高版本。
SPLREG_PORT_THREAD_PRIORITY
Windows 2000或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY
Windows 7或更高版本。
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY
Windows 7或更高版本。
SPLREG_REMOTE_FAX
Windows 2000或更高版本。
成功返回后,pData如果传真服务支持远程客户端,则包含&H0001,否则为0。
SPLREG_RETRY_POPUP
Windows 2000或更高版本。
成功返回后,如果服务器设置为重试所有作业的PopUps,pData包含1,如果服务器未重试所有作业的PopUps,则为0。
SPLREG_SCHEDULER_THREAD_PRIORITY
Windows 2000或更高版本。
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT
Windows 2000或更高版本。
SPLREG_WEBSHAREMGMT
Windows Server 2003或更高版本。
SPLREG_W3SVCINSTALLED
Windows 2000或更高版本。
以下值pValueName表示发生错误时的池打印行为。
SPLREG_RESTART_JOB_ON_POOL_ERROR
pData的值表示发生错误后在其他端口上重新启动作业的时间(以秒为单位)。此设置与SPLREG_RESTART_JOB_ON_POOL_ENABLED一起使用。
SPLREG_RESTART_JOB_ON_POOL_ENABLED
pData中的非零值表示SPLREG_RESTART_JOB_ON_POOL_ERROR已启用。
在SPLREG_RESTART_JOB_ON_POOL_ERROR中指定的时间是最短时间。实际时间可能会更长,这取决于以下端口监视器设置,它们位于HKLM \\ SYSTEM \\ CurrentControlSet \\ Control \\ Print \\ Monitors \\ MonitorName \\ Ports下。
端口监视器设置 |
含义 |
StatusUpdateEnabled |
如果非零值,端口监视器将使用端口状态更新后台处理程序。 |
StatusUpdateInterval |
指定端口监视器使用端口状态更新后台处理程序的时间间隔(以秒为单位)。 |
为了确保后台处理程序将作业重定向到池中的下一个可用打印机(当打印作业在设定的时间内未打印时),端口监视器必须支持SNMP(请参见下表),并且池中的网络端口必须配置为“启用SNMP状态”。
操作系统版本 |
支持SNMP的端口监视器 |
Windows NT 4.0 |
HP标准TCP / IP端口监视器。 |
Windows2000 / XP / Vista / Windows 7 |
标准TCP / IP端口监控。 |
在Windows 95/98 / Me中,Microsoft Layer for Unicode支持 SetPrinterDataW.
引用文件 #INCLUDE Once
WinSpool.inc