Compartir a través de


Función AddPortUI (winsplp.h)

Una función AddPortUI del archivo DLL del monitor de puerto de la interfaz de usuario agrega un puerto de impresora y, a continuación, obtiene información de configuración del puerto del usuario y la envía al archivo DLL del servidor de supervisión de puertos.

Sintaxis

BOOL AddPortUI(
  [in, optional]  PCWSTR pszServer,
  [in]            HWND   hWnd,
                  PCWSTR pszMonitorNameIn,
  [out, optional] PWSTR  *ppszPortNameOut
);

Parámetros

[in, optional] pszServer

Puntero proporcionado por el autor de la llamada a una cadena que representa un nombre de servidor o NULL si la impresora es local.

[in] hWnd

Identificador proporcionado por el autor de la llamada de la ventana que se debe usar como elemento primario para los cuadros de diálogo. Si es NULL, no se deben mostrar cuadros de diálogo.

pszMonitorNameIn

Puntero proporcionado por el autor de la llamada a una cadena que representa el nombre del monitor. Puede ser NULL.

[out, optional] ppszPortNameOut

Puntero proporcionado por el autor de la llamada a una ubicación para recibir una cadena de nombre de puerto. Puede ser NULL, en cuyo caso no se devuelve un nombre.

Valor devuelto

Si la operación se realiza correctamente, la función debe devolver TRUE. De lo contrario, se debe llamar a SetLastError para especificar un código de error y la función debe devolver FALSE. Si el usuario cancela la operación o no es compatible, la función debe llamar a SetLastError(ERROR_CANCELLED), devuelve FALSE.

Comentarios

Los archivos DLL de interfaz de usuario del monitor de puertos son necesarios para definir una función AddPortUI e incluir la dirección de la función en una estructura MONITORUI .

El administrador de colas llama a AddPortUI desde su función AddPort. Los tres primeros argumentos recibidos por AddPortUI son los argumentos recibidos por AddPort. (La función AddPort se describe en la documentación de Microsoft Windows SDK).

La función debe realizar las siguientes operaciones:

  1. Llame a OpenPrinter y especifique un nombre de impresora con el formato siguiente:

    \\ServerName\,XcvMonitorMonitorName

    donde ServerName y MonitorName son los nombres de servidor y monitor recibidos como argumentos de función AddPortUI .

    La llamada a OpenPrinter requiere una estructura de PRINTER_DEFAULTS, que se describe en la documentación de Windows SDK. El miembro DesiredAccess de la estructura debe establecerse en SERVER_ACCESS_ADMINISTER. Sus miembros pDatatype y pDevMode pueden ser NULL.

    Esta llamada hace que se llame a la función XcvOpenPort del archivo DLL del servidor de supervisión de impresión.

  2. Obtenga un nombre de puerto del usuario mostrando un cuadro de diálogo.

  3. Llame a XcvData y especifique los argumentos de entrada siguientes:

    • Identificador recibido de OpenPrinter

    • El nombre del puerto recibido del usuario

    • Cadena de nombre de datos personalizada, como "PortExists"

    Esta llamada hace que se llame a la función XcvDataPort del archivo DLL del servidor. La función XcvDataPort debe devolver un valor que indique si ya se ha usado el nombre de puerto especificado. Si lo tiene, el archivo DLL de la interfaz de usuario debe solicitar otro nombre del usuario y volver a llamar a XcvData .

  4. Una vez recibido un nuevo nombre de puerto válido, llame a XcvData de nuevo, esta vez especificando los argumentos de entrada siguientes.

    • Identificador recibido de OpenPrinter

    • El nombre del puerto validado recibido del usuario

    • Cadena de nombre de datos de "AddPort"

    Esta llamada hace que se vuelva a llamar a la función XcvDataPort del archivo DLL del servidor.

  5. Obtenga los parámetros de configuración de puerto del usuario mostrando un cuadro de diálogo.

  6. Llame a XcvData una o varias veces, especificando cadenas de nombre de datos personalizadas, para enviar cada parámetro de configuración al archivo DLL del servidor. Cada llamada XcvData hace que se llame a la función XcvDataPort del servidor.

  7. Llame a ClosePrinter y especifique el identificador recibido de OpenPrinter. Esto hace que se llame a la función XcvClosePort del archivo DLL del servidor.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winsplp.h (incluya Winsplp.h)

Consulte también

MONITORUI

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort