求大神解释下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)来定义缓冲区。。。。。
求大神帮帮我!!! 踩个水,不懂。。。 为神马还没有人来解决这个问题。。 网络的打印机不用你去关心啊,直接StartDoc操作系统就会自动帮你连接网络操作网络打印机 本帖最后由 无符号整形 于 2016-6-28 20:07 编辑
我个人的理解:工作组,域就是一个区域,里面有很多的多媒体设备和电脑。 二、再说了,网络分为域 工作组等等等等,你究竟要访问哪个域(或工作组)的打印机呢? 看不懂
页:
[1]