Динамически созданные команды принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
При каждом указании команды принтера в файле GPD для мини-driver Unidrv можно использовать один из следующих двух методов:
Поместите командную строку в файл GPD.
При создании командной строки в GPD-файле Unidrv отправляет команду в средство spooler печати в соответствующее время. Эти строки команд могут включать стандартные переменные, которые Unidrv вычисляет перед отправкой команды.
Укажите функцию обратного вызова.
Если вы предоставляете функцию обратного вызова, Unidrv вызывает функцию, когда время отправки команды, а функция отвечает за отправку команды в средство spooler печати. Это позволяет включить код, который динамически создает командную строку, а затем отправляет его на принтер.
Чтобы поместить строку команды в GPD-файл, необходимо включить атрибут *Cmd в запись команды *Command.
Чтобы предоставить код, динамически создающий командную строку, необходимо выполнить следующее:
Укажите подключаемый модуль отрисовки, реализующий метод IPrintOemUni::CommandCallback .
Включите атрибут команды *CallbackID и, при необходимости, атрибут *Params в записи команды *Command в файле GPD.
Когда Unidrv готов к выполнению команды принтера, она проверяет базу данных minidriver, чтобы определить, была ли указана команда атрибутом *Cmd или атрибутом *CallbackID. В предыдущем случае Unidrv отправляет командную строку в средство spooler печати. В последнем случае Unidrv вызывает метод IPrintOemUni::CommandCallback , передав значения *CallbackID и *Params в качестве входных аргументов.