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


Функция AddPrintDeviceObject (winsplp.h)

Предупреждение

Начиная с Windows 10 интерфейсы API, поддерживающие сторонних поставщиков печати, являются устаревшими. Корпорация Майкрософт не рекомендует инвестировать в сторонних поставщиков печати. Кроме того, в Windows 8 и более новых продуктах, где доступна модель драйвера печати версии 4, сторонние поставщики печати не могут создавать очереди, использующие драйверы печати версии 4, или управлять ими.

Функция поставщика печати AddPrintDeviceObject создает объект устройства для очереди поставщика печати.

Синтаксис

HRESULT AddPrintDeviceObject(
  [in]  HANDLE hPrinter,
  [out] HANDLE *phDeviceObject
);

Параметры

[in] hPrinter

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

[out] phDeviceObject

Handle для объекта устройства, если он был успешно создан.

Возвращаемое значение

Функция AddPrintDeviceObject возвращает S_OK, если объект устройства был успешно создан. В противном случае возвращается ошибка.

Комментарии

Функция AddPrintDeviceObject должна вызываться в следующих ситуациях:

Пользователь устанавливает принтер

  • Поставщик печати должен вызвать эту функцию после установки принтера.

  • Функция должна вызываться путем олицетворения пользователя, устанавливающего принтер.

Поставщик печати должен вызывать эту функцию для каждого ранее установленного принтера, принадлежащего поставщику. В течение этого времени AddPrintDeviceObject не нужно олицетворять контекст пользователя при его вызове.

Любой объект устройства, добавленный с помощью AddPrintDeviceObject , будет сохраняться до тех пор, пока вы не удалите его с помощью RemovePrintDeviceObject или пока служба очереди очереди не перезапустится. А при остановке служб очереди очереди автоматически удаляются все объекты устройства.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winsplp.h (включая Winspool.h)
Библиотека WinSpool.lib
DLL Winspool.drv

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

RemovePrintDeviceObject