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


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

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

Синтаксис

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 .

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

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

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

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

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

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

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

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

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

Требования

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

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

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort