点选打印 DLL

可以选择通过将其名称与 模块 注册表值关联来提供特殊的 Point 和 Print DLL。 此 DLL 必须导出以下两个函数:

GenerateCopyFilePaths
此函数由服务器的后台处理程序和客户端的后台处理程序调用,可用于修改 Directory 注册表值指定的目录路径。 可以修改服务器) 上的源路径 (或客户端) 上 (的目标路径,或同时修改这两者。

SpoolerCopyFileEvent
此函数(也由服务器的后台处理程序和客户端的后台处理程序调用)接收一个事件代码,指示某些与连接相关的打印机事件的发生。

点和打印 DLL 不需要仅导出这些函数。 例如,Microsoft 的 ICM 组件使用的 Mscms.dll 也会导出一组 ICM API 函数。

请注意,除了导出 GenerateCopyFilePathsSpoolerCopyFileEvent 的 Point 和 Print DLL 以外,还可以指定其他 DLL。 为此,请将 DLL 文件名分配给 文件 注册表项,而不是 模块 注册表项。 (请参阅 安装Queue-Specific文件) 。

安装应用程序通过调用 SetPrinterDataEx 将 DLL 的名称置于服务器的注册表中后,所有后续对 SetPrinterDataEx 的调用都会导致调用 DLL 的 SpoolerCopyFileEvent 函数,并提供的事件代码为 COPYFILE_EVENT_SET_PRINTER_DATAEX。

文件注册表项下 列出的文件不同 (请参阅 安装Queue-Specific文件) ,当客户端连接到打印机时,不会将点和打印 DLL 从打印服务器复制到客户端。 相反,在与打印服务器建立连接时,假定 DLL 已是客户端驻留的。 因此,DLL 可用于与点和打印功能无关的其他目的。

在客户端上安装 Point 和 Print DLL 的一种方法是在 打印机 INF 文件中 将其名称指定为依赖文件,以便在 下载特定于驱动程序的文件时,可以将该文件复制到客户端的驱动程序目录。