deletePortUI 函数 (winsplp.h)

端口监视器 UI 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。 如果用户取消操作或不受支持的操作,则函数应 (ERROR_CANCELLED) 调用 SetLastError,然后返回 FALSE

注解

需要端口监视器 UI DLL 来定义 DeletePortUI 函数,并在 MONITORUI 结构中包含该函数的地址。

后台处理程序从其 DeletePort 函数中调用 DeletePortUIDeletePortUI 接收的参数是 DeletePort 接收的参数。 (Microsoft Windows SDK documentation 中介绍了 DeletePort 函数。)

函数应执行以下操作:

  1. 调用 OpenPrinter,并使用以下格式指定打印机名称:
    \\ServerName\,XcvPortPortName

    其中 ,ServerNamePortName 是作为 DeletePortUI 函数参数接收的服务器和端口名称。

    调用 OpenPrinter 需要PRINTER_DEFAULTS结构,如Windows SDK文档中所述。 结构的 DesiredAccess 成员必须设置为 SERVER_ACCESS_ADMINISTER。 其 pDatatypepDevMode 成员可以为 NULL

    此调用会导致调用打印监视器服务器 DLL 的 XcvOpenPort 函数。

  2. 调用 XcvData,指定以下输入参数:
    • OpenPrinter 接收的句柄
    • 作为函数参数接收的端口名称
    • “DeletePort”的数据名称字符串

    此调用会导致调用服务器 DLL 的 XcvClosePort 函数。

  3. 如果需要用户交互,请通过显示对话框从用户获取信息,然后调用 XcvData(指定自定义数据名称字符串)将信息发送到服务器 DLL。 XcvData 调用会导致调用服务器的 XcvDataPort 函数。
  4. 调用 ClosePrinter,指定从 OpenPrinter 接收的句柄。 这会导致调用服务器 DLL 的 XcvClosePort 函数。

要求

要求
目标平台 桌面
标头 winsplp.h (包括 Winsplp.h)

另请参阅

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort