Функция 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

См. также раздел

SpoolerCopyFileEvent