Поделиться через


Библиотеки DLL для вывода и печати

При необходимости можно указать специальную библиотеку DLL Point и Print, связав ее имя со значением реестра модуля . Эта библиотека DLL должна экспортировать следующие две функции:

GenerateCopyFilePaths
Эта функция, вызываемая как сервером очереди, так и очередью очереди клиента, может использоваться для изменения пути к каталогу, указанного в значении реестра каталогов . Можно изменить исходный путь (на сервере) или путь назначения (на клиенте) или оба варианта.

SpoolerCopyFileEvent
Эта функция, также вызываемая как сервером очереди, так и очередью очереди клиента, получает код события, указывающий на возникновение определенных событий принтера, связанных с подключением.

Библиотеки DLL-библиотеки Point и Print не должны экспортировать только эти функции. Например, Mscms.dll, который используется компонентом ICM корпорации Майкрософт, также экспортирует набор функций API ICM.

Обратите внимание, что вы можете указать другие библиотеки DLL в дополнение к библиотекам DLL Point и Print или вместо него, которые экспортируют GenerateCopyFilePaths и SpoolerCopyFileEvent. Для этого назначьте имена dll-файлов разделу реестра Файлы , а не разделу реестра Module . (См. раздел Установка файлов Queue-Specific.

После того как приложение установки поместит имя библиотеки DLL в реестр сервера путем вызова SetPrinterDataEx, все последующие вызовы SetPrinterDataEx приводят к вызову функции SpoolerCopyFileEvent библиотеки DLL с предоставленным кодом события COPYFILE_EVENT_SET_PRINTER_DATAEX.

В отличие от файлов, перечисленных в разделе реестра Файлы (см. раздел Установка файлов Queue-Specific), библиотека DLL-библиотеки Point и Print не копируются с сервера печати на клиент при подключении клиента к принтеру. Вместо этого предполагается, что библиотека DLL уже находится на клиенте при подключении к серверу печати. В результате библиотеку DLL можно использовать для дополнительных целей, не связанных с функциями point и print.

Одним из способов установки библиотеки DLL point и print на клиенте является указание ее имени в INF-файле принтера в качестве зависимого файла, чтобы файл можно было скопировать в каталог драйверов клиента во время скачивания файлов, относящихся к драйверу.