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


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

Функция dll пользовательского интерфейса мониторинга портов DeletePortUI удаляет порт принтера.

Синтаксис

BOOL DeletePortUI(
  [in, optional] PCWSTR pszServer,
  [in]           HWND   hWnd,
  [in]           PCWSTR pszPortName
);

Параметры

[in, optional] pszServer

Вызывающий указатель на строку, представляющую имя сервера или NULL, если принтер является локальным. (Монитор портов может игнорировать этот параметр.)

[in] hWnd

Вызывающий дескриптор окна, который должен использоваться в качестве родительского элемента для диалоговых окон. Если null, диалоговые окна не должны отображаться.

[in] pszPortName

Вызывающий указатель на строку, представляющую имя порта, который необходимо удалить.

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

Если операция выполнена успешно, функция должна вернуть TRUE. В противном случае он должен возвращать FALSE. Если операция отменена пользователем или не поддерживается, функция должна вызвать SetLastError(ERROR_CANCELLED), а затем вернуть FALSE.

Замечания

Библиотеки DLL пользовательского интерфейса монитора портов необходимы для определения функции DeletePortUI и включения адреса функции в структуру MONITORUI.

Spooler вызывает DeletePortUI из функции DeletePort. Аргументы, полученные DeletePortUI, являются аргументами, полученными DeletePort. (Функция DeletePort описана в документации по пакету SDK для Microsoft Windows.)

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

  1. Вызов OpenPrinter, указав имя принтера со следующим форматом:
    \\ ServerName\,XcvPortPortName

    где ServerName и PortName являются именами серверов и портов, полученным и в качестве аргументов функции DeletePortUI.

    Для вызова OpenPrinter требуется структура PRINTER_DEFAULTS, описанная в документации по пакету SDK для Windows. Элемент DesiredAccess структуры должен иметь значение SERVER_ACCESS_ADMINISTER. Его элементы pDatatype и pDevMode могут быть null.

    Этот вызов приводит к вызову функции XcvOpenPort сервера монитора печати.

  2. Вызовите XcvData, указав следующие входные аргументы:
    • Дескриптор, полученный от OpenPrinter
    • Имя порта, полученное в качестве аргумента функции
    • Строка имени данных "DeletePort"

    Этот вызов приводит к вызову функции XcvClosePort библиотеки DLL сервера.

  3. Если требуется взаимодействие с пользователем, получите сведения, отображая диалоговое окно, а затем вызовите XcvData, указав настраиваемые строки имен данных, чтобы отправить сведения в библиотеку DLL сервера. Вызов XcvData приводит к вызову функции XcvDataPort сервера.
  4. Вызов ClosePrinter, указав дескриптор, полученный от OpenPrinter. Это приводит к вызову функции XcvClosePort библиотеки DLL сервера.

Требования

Требование Ценность
целевая платформа Настольный
заголовка winsplp.h (include Winsplp.h)

См. также

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort