Функция GenerateCopyFilePaths (winsplp.h)
Функция GenerateCopyFilePaths в библиотеке DLL point и print используется для изменения исходных и конечных путей, используемых очереди печати при копировании файлов, связанных с очередью печати, в клиент печати.
Синтаксис
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
Указывает, что функция вызывается диспетчером очереди печати клиента.
COPYFILE_FLAG_SERVER_SPOOLER
Указывает, что функция вызывается сервером очереди очереди.
Возвращаемое значение
Если операция выполнена успешно, функция должна вернуть ERROR_SUCCESS. В противном случае он должен вернуть код ошибки, определенный в файле winerror.h.
Комментарии
Все библиотеки DLL point и print должны экспортировать функцию GenerateCopyFilePaths , которая вызывается очередью печати печати. Его назначение — разрешить библиотеке DLL-библиотеке Point и Print изменять путь к исходному или целевому каталогу или и тому, и тому, и другое, прежде чем средство очереди печати печати копирует файлы, связанные с очередью печати, с сервера на клиент. (Файлы копируются при подключении клиента к серверу печати. Полное описание действий, связанных с созданием подключения point и print, см. в разделе Поддержка точек и печати.)
Библиотека DLL point и print выполняется как на сервере, так и на клиенте. Функция GenerateCopyFilePaths должна проверка аргумент dwFlags, чтобы определить, где она выполняется.
Как правило, эта функция используется для обеспечения совместимости, когда на клиенте и сервере выполняются разные версии операционной системы. Например, если функция при выполнении на сервере определяет (считывая структуру SPLCLIENT_INFO_1 ), что ее операционная система новее клиентской, она может изменить исходный и конечный пути для обеспечения совместимости с устаревшей ОС клиента. С другой стороны, если функция определяет, что операционная система клиента новее клиентской, она, вероятно, не должна выполнять никаких действий на сервере и при необходимости вносить изменения при выполнении на клиенте.
Аргументы для параметров pszSourceDir и pszTargetDir указывают на буферы, содержащие строки, представляющие текущий исходный и конечный каталоги. Если необходимы изменения в любой из этих строк, функция должна вносить изменения в предоставленные буферы. На максимально допустимую длину строк указывают аргументы pcchSourceDirSize и pcchTargetDirSize .
Если изменения исходного или целевого каталогов не требуются, функция должна просто возвращать ERROR_SUCCESS.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | winsplp.h (включая Winsplp.h) |
Библиотека | Mscms.lib |
DLL | Mscms.dll |