hnsdchy 发表于 2016-3-2 00:12:43

求大神解释下EnumPrinters函数的几个问题

求大神帮我解释下EnumPrinters函数的几个问题
函数原形
BOOL EnumPrinters(DWORD Flags, LPTSTR Name,   DWORD Level,   LPBYTE pPrinterEnum,DWORD cbBuf, LPDWORD pcbNeeded,   LPDWORD pcReturned);
      
       一、MSDN说该函数The EnumPrinters function enumerates available printers, print servers, domains, or print providers.
英语学得不好,我自己查翻译软件说这个函数枚举可用的打印机、打印服务器,域和打印提供者。后面这个域和打印提供者到底是指什么,我很迷茫。请大神指点下,谢谢
   二、关于Flags参数。MSDN上面列举了PRINTER_ENUM_LOCAL、PRINTER_ENUM_NAME、PRINTER_ENUM_SHARED、PRINTER_ENUM_DEFAULT、PRINTER_ENUM_CONNECTIONS、PRINTER_ENUM_NETWORK、PRINTER_ENUM_REMOTE等七个选择。请问PRINTER_ENUM_CONNECTIONS、PRINTER_ENUM_NETWORK 和 PRINTER_ENUM_REMOTE各有什么区别,个人感觉都是列举网络上的打印机,没发现区别?
    三、关于pcbNeeded参数。MSDN说这是参数pPrinterEnum指向的缓冲区的必需长度。而pPrinterEnum是指向结构体PRINTER_INFO数组的指针。我在测试时发现,其实pcbNeeded是能枚举到的打印机的个数,而不是缓冲区的长度,如果要确定缓冲区的长度,就应该使用sizeof(PRINTER_INFO)*pcbNeeded才行呀,可在<windows程序设计>一书里,真的只使用了malloc(pcbNeeded)来定义缓冲区。。。。。
求大神帮帮我!!!

jzh823 发表于 2016-3-4 10:50:54

踩个水,不懂。。。

jzh823 发表于 2016-3-5 09:18:06

为神马还没有人来解决这个问题。。

无符号整形 发表于 2016-6-27 21:52:01

网络的打印机不用你去关心啊,直接StartDoc操作系统就会自动帮你连接网络操作网络打印机

无符号整形 发表于 2016-6-27 21:54:08

本帖最后由 无符号整形 于 2016-6-28 20:07 编辑

我个人的理解:工作组,域就是一个区域,里面有很多的多媒体设备和电脑。

无符号整形 发表于 2016-6-27 22:02:27

二、再说了,网络分为域 工作组等等等等,你究竟要访问哪个域(或工作组)的打印机呢?

BEYOND风信子 发表于 2016-6-28 07:16:51

看不懂
页: [1]
查看完整版本: 求大神解释下EnumPrinters函数的几个问题