generateCopyFilePaths 函数 (winsplp.h)
Point 和 Print DLL 的 GenerateCopyFilePaths 函数用于修改打印后台处理程序在将打印队列关联的文件复制到打印客户端时使用的源和目标路径。
语法
DWORD GenerateCopyFilePaths(
[in] LPCWSTR pszPrinterName,
[in] LPCWSTR pszDirectory,
[in] LPBYTE pSplClientInfo,
[in] DWORD dwLevel,
[in, out] LPWSTR pszSourceDir,
[in, out] LPDWORD pcchSourceDirSize,
[in, out] LPWSTR pszTargetDir,
[in, out] LPDWORD pcchTargetDirSize,
[in] DWORD dwFlags
);
参数
[in] pszPrinterName
调用方提供的指向表示打印队列名称的字符串的指针。
[in] pszDirectory
调用方提供的指向字符串的指针,该字符串表示为注册表中服务器的 Directory 条目提供的值。 有关详细信息,请参阅 支持打印机安装期间的点和打印。
[in] pSplClientInfo
调用方提供的指向 SPLCLIENT_INFO_1 结构的指针。
[in] dwLevel
调用方提供的值,指示 pSplClientInfo 指向的结构的级别号。 必须为 1。
[in, out] pszSourceDir
对于输入, 接收调用方提供的指向表示完整服务器目录路径的字符串的指针, (包括服务器名称) 要从中复制文件。
对于输出,函数可以修改此字符串。
[in, out] pcchSourceDirSize
调用方提供的地址,其中包含 pszSourceDir 指向的缓冲区的长度。 (请注意,这是缓冲区长度,而不是字符串 length。)
[in, out] pszTargetDir
对于输入, 接收调用方提供的指向字符串的指针,该字符串表示要向其复制文件的客户端目录路径。 下列规则适用:
- 在服务器上调用 函数时,此路径相对于 PRINT$。
- 在客户端上调用 函数时,字符串包含完整路径。
[in, out] pcchTargetDirSize
调用方提供的地址,其中包含 pszTargetDir 指向的缓冲区长度。 (请注意,这是缓冲区长度,而不是字符串 length。)
[in] dwFlags
调用方提供的标志。 可以是以下值之一:
COPYFILE_FLAG_CLIENT_SPOOLER
指示客户端的后台处理程序正在调用函数。
COPYFILE_FLAG_SERVER_SPOOLER
指示函数正由服务器的后台处理程序调用。
返回值
如果操作成功,函数应返回 ERROR_SUCCESS。 否则,它应返回 winerror.h 中定义的错误代码。
注解
所有 Point 和 Print DLL 都必须导出由打印后台处理程序调用的 GenerateCopyFilePaths 函数。 其用途是允许 Point 和 Print DLL 在打印后台处理程序将打印队列关联的文件从服务器复制到客户端之前修改源目录或目标目录路径或两者。 (客户端连接到打印服务器时复制文件。有关创建 Point 和 Print 连接所涉及的步骤的完整说明,请参阅 支持点和 Print.)
点和打印 DLL 在服务器和客户端上执行。 GenerateCopyFilePaths 函数应检查 dwFlags 参数来确定其执行位置。
通常,此函数用于在客户端和服务器上执行不同版本的操作系统时提供兼容性。 例如,如果函数在服务器上执行时,通过读取 SPLCLIENT_INFO_1 结构) 其操作系统比客户端的更新来确定 (,则它可以修改源路径和目标路径,使其与客户端的旧版 OS 兼容。 另一方面,如果函数确定客户端的操作系统比客户端的操作系统更新,则它可能在服务器上不执行任何操作,并在客户端上执行时执行修改(如有必要)。
pszSourceDir 和 pszTargetDir 参数的参数指向包含表示当前源和目标目录路径的字符串的缓冲区。 如果需要修改这些字符串中的任意一个,则函数应在提供的缓冲区中进行修改。 允许的最大字符串长度由 pcchSourceDirSize 和 pcchTargetDirSize 参数指向。
如果不需要对源目录或目标目录进行任何修改,该函数应只返回 ERROR_SUCCESS。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | winsplp.h (包括 Winsplp.h) |
Library | Mscms.lib |
DLL | Mscms.dll |