OpenPrinter函数


OpenPrinter函数


OpenPrinter函数获取指定打印机或打印服务器的标识句柄。

BOOL OpenPrinter(

    LPTSTR pPrinterName, // 指向印表机或服务器名称的指针
    LPHANDLE phPrinter,         // 指向印表机或服务器的句柄
    LPPRINTER_DEFAULTS pDefault //指向打印机默认结构的指针 
   ); 

参数

pPrinterName
指向一个以Null终结的字符串,用来指定打印机或打印服务器的名称。

phPrinter
指向一个变量,以接收句柄标识打开的打印机或打印服务器对象。

pDefault
指向一个 PRINTER_DEFAULTS 结构。此值可以为空。


返回值

如果函数成功,返回值是非零。
如果函数失败,返回值是零。要得到扩展的错误信息,请调用getlasterror函数 。

备注

pDefault参数允许一个应用程序
来指定数据类型和设备模式值用于StartDocPrinter函数提交打印文档 。不过,一旦文件已经开始,
这些值可以使用setjob函数凌驾(覆盖)。
 
PRINTER_DEFAULTS 数据结构成员之一 DesiredAccess , 指向由pDefault指定的openprinter句柄权限。
如果应用程序要打开一个打印机执行管理任务。
例如setprinter函数,它应打开打印机与PRINTER_ALL_ACCESS 权限。
如果某个应用程序只执行基本的打印业务只要PRINTER_ACCESS_USE就足够了。

在Windows 95 : openprinter忽略了desiredaccess成员printer_defaults 。

应用程序可以决定客户在打印服务器上有什么权限,或获取一个打印服务器句柄以调用waitforprinterchange 。
这样,它应要求openprinter与pprintername设置为服务器的名称,并应指定一个服务权限值,如SERVER_ALL_ACCESS 。
printer_defaults结构的成员pdatatype和pdevmode应设置为NULL 。
该句柄经过这样的调用可能会被传递到ClosePrinter 或 WaitForPrinterChange 函数。

如果用户并不持有打开一个指定的打印机或打印服务器的权限,与预期的许可, openprinter调用将失败,并且

getlasterror将返回值error_access_denied 。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值