EnumPrinters
说明:用来枚举可用的打印机,打印服务,域和打印供应商。
BOOL EnumPrinters( _In_ DWORD Flags, _In_ LPTSTR Name, _In_ DWORD Level, _Out_ LPBYTE pPrinterEnum, _In_ DWORD cbBuf, _Out_ LPDWORD pcbNeeded, _Out_ LPDWORD pcReturned );
参数
Flags [in]
-
被枚举的打印对象类型。可以是下列值中的一个或者多个。
Value Meaning - PRINTER_ENUM_LOCAL
如果没有同时传递PRINTER_ENUM_NAME标识,忽略Name参数,枚举本地安装的打印机。如果同时传递了PRINTER_ENUM_NAME标识,根据Name枚举本地的打印机。 - PRINTER_ENUM_NAME
枚举由Name标识的打印机。可以是一个服务,一个域,或者一个打印供应商。如果Name是NULL,枚举可用的打印供应商。 - PRINTER_ENUM_SHARED
枚举有共享属性的打印机。无法单独使用;和另一个PRINTER_ENUM类型进行或操作,一起使用。 - PRINTER_ENUM_CONNECTIONS
枚举用户连接过的打印机列表。 - PRINTER_ENUM_NETWORK
枚举计算机域里的网络打印机。当level为1时,这个值有效。 - PRINTER_ENUM_REMOTE
枚举计算机域里的网络打印机和打印服务。当level为1时,这个值有效。 - PRINTER_ENUM_CATEGORY_3D
只枚举3D打印机。 - PRINTER_ENUM_CATEGORY_ALL
枚举所有的打印设备,包括3D打印机。 如果level为4,你可以只使用PRINTER_ENUM_CONNECTIONS和PRINTER_ENUM_LOCAL常量。
备注
3D打印设备默认是不会被枚举的。3D打印机,你在枚举时,必须包含PRINTER_ENUM_CATEGORY_3D 和 PRINTER_ENUM_LOCAL。这样就可以和其它本地打印机一样枚举到3D打印机。
Name [in]
如果level为1,标识里包含PRINTER_ENUM_NAME,而且Name非空,那么,Name是一个指针,指向以空结束的字符串,这个字符串枚举对象的名称。字符串可以是一个服务,一个域,或者一个打印供应商。
如果level为1,标识里包含PRINTER_ENUM_NAME,而且Name是空,枚举可用的打印供应商。
如果level为1,标识里包含PRINTER_ENUM_REMOTE,而且Name是空,那么枚举用户域里的打印机。
如果level为2或者5,Name是一个指针,指向以空结束的字符串,这个字符串为被枚举打印机的服务的名称。如果字符串为空,枚举安装在本地计算机上的打印机。
如果level为4,Name应当为空。查询本地计算机上的打印机。
当Name为空,设置标识为PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,枚举安装在本地的打印机。这些打印机包括通过物理连接到本地的,也包括通过网络连接的远程打印机。
当Name为空,设置标识为PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME,枚举服务器上安装的本地打印机。
note:上面仅仅是英文文档的翻译,如果在实际使用时有偏差,可在评论里留言。

浙公网安备 33010602011771号