Функция GenerateCopyFilePaths (winsplp.h)
Функция GenerateCopyFilePath s и печати библиотеки DLL используется для изменения путей к источнику и назначению, используемых спулерами печати при копировании файлов, связанных с очередью печати, в клиент печати.
Синтаксис
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
Вызывающий указатель на строку, представляющую значение, предоставленное для записи каталога сервера в реестре. Дополнительные сведения см. в разделе поддержки точки и печати во время установки принтера.
[in] pSplClientInfo
Указатель на SPLCLIENT_INFO_1 структуру, предоставляемую вызывающим абонентом.
[in] dwLevel
Указанное вызывающее значение, указывающее номер уровня структуры, на который указывает pSplClientInfo. Должно быть 1.
[in, out] pszSourceDir
Для входных данных получает указатель на строку, представляющую полный путь к каталогу сервера (включая имя сервера), из которого копируются файлы.
Для выходных данных функция может изменить эту строку.
[in, out] pcchSourceDirSize
Предоставленный вызывающим адресом, содержащий длину буфера, на который указывает pszSourceDir. (Обратите внимание, что это длина буфера, а не длина строки.)
[in, out] pszTargetDir
Для ввода получает указатель, предоставленный вызывающим абонентом, на строку, представляющую путь к каталогу клиента, в который копируются файлы. Применяются следующие правила:
- При вызове функции на сервере этот путь равен PRINT$.
- При вызове функции на клиенте строка содержит полный путь.
[in, out] pcchTargetDirSize
Вызывающий адрес, содержащий длину буфера, на который указывает pszTargetDir. (Обратите внимание, что это длина буфера, а не длина строки.)
[in] dwFlags
Флаг, предоставленный вызывающим абонентом. Может быть одним из следующих вариантов:
COPYFILE_FLAG_CLIENT_SPOOLER
Указывает, что функция вызывается spooler клиента.
COPYFILE_FLAG_SERVER_SPOOLER
Указывает, что функция вызывается spooler сервера.
Возвращаемое значение
Если операция выполнена успешно, функция должна возвращать ERROR_SUCCESS. В противном случае он должен возвращать код ошибки, определенный в winerror.h.
Замечания
Все библиотеки DLL точки и печати должны экспортировать функцию GenerateCopyFilePaths, которая вызывается spooler печати. Его целью является разрешение библиотеки DLL "Точка" и "Печать" изменять путь к исходному или целевому каталогу или перед копированием файлов, связанных с очередью печати, с сервера на клиент. (Файлы копируются при подключении клиента к серверу печати. Полное описание шагов, связанных с созданием подключения "Точка и печать", см. в разделе поддержка точки и печати.)
Библиотека DLL "Точка" и "Печать" выполняется как на сервере, так и на клиенте. Функция GenerateCopyFilePaths должна проверять аргумент dwFlags, чтобы определить место выполнения.
Как правило, эта функция используется для обеспечения совместимости при выполнении различных версий операционной системы на клиенте и сервере. Например, если функция при выполнении на сервере определяет (считывая структуру SPLCLIENT_INFO_1), что ее операционная система является более новой, чем клиент, она может изменить исходные и конечные пути, чтобы быть совместимыми со старой ОС клиента. С другой стороны, если функция определяет, что операционная система клиента является более новой, чем клиент, она, вероятно, не должна ничего делать на сервере и выполнять изменения при необходимости при выполнении на клиенте.
Аргументы для pszSourceDir и pszTargetDir указывают на буферы, содержащие строки, представляющие текущие пути к исходному и целевому каталогу. Если необходимо внести изменения в любую из этих строк, функция должна внести изменения в предоставленные буферы. Максимальная допустимая длина строки указывает на аргументы pcchSourceDirSize и pcchTargetDirSize.
Если изменения исходного или целевого каталогов не требуются, функция должна просто вернуть ERROR_SUCCESS.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | winsplp.h (include Winsplp.h) |
библиотеки | Mscms.lib |
DLL | Mscms.dll |