다음을 통해 공유


AddPortUI 함수(winsplp.h)

포트 모니터 UI DLL의 AddPortUI 함수는 프린터 포트를 추가한 다음, 사용자로부터 포트 구성 정보를 가져와 포트 모니터 서버 DLL로 보냅니다.

구문

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

매개 변수

[in, optional] pszServer

서버 이름을 나타내는 문자열에 대한 호출자 제공 포인터 또는 프린터가 로컬인 경우 NULL 입니다.

[in] hWnd

대화 상자의 부모로 사용해야 하는 창의 호출자 제공 핸들입니다. NULL인 경우 대화 상자가 표시되지 않아야 합니다.

pszMonitorNameIn

모니터의 이름을 나타내는 문자열에 대한 호출자 제공 포인터입니다. NULL일 수 있습니다.

[out, optional] ppszPortNameOut

포트 이름 문자열을 받을 위치에 대한 호출자 제공 포인터입니다. NULL일 수 있습니다. 이 경우 이름이 반환되지 않습니다.

반환 값

작업이 성공하면 함수는 TRUE를 반환해야 합니다. 그렇지 않으면 SetLastError를 호출하여 오류 코드를 지정하고 함수는 FALSE를 반환해야 합니다. 사용자가 작업을 취소하거나 지원되지 않는 경우 함수는 SetLastError(ERROR_CANCELLED)를 호출한 다음 FALSE를 반환해야 합니다.

설명

포트 모니터 UI DLL은 AddPortUI 함수를 정의하고 MONITORUI 구조에 함수의 주소를 포함해야 합니다.

스풀러는 AddPort 함수 내에서 AddPortUI 를 호출합니다. AddPortUI에서 받은 처음 세 인수는 AddPort에서 받은 인수입니다. AddPort 함수는 Microsoft Windows SDK 설명서에 설명되어 있습니다.

함수는 다음 작업을 수행해야 합니다.

  1. 다음 형식의 프린터 이름을 지정하여 OpenPrinter를 호출합니다.

    \\ServerName\,XcvMonitorMonitorName

    여기서 ServerNameMonitorNameAddPortUI 함수 인수로 수신된 서버 및 모니터 이름입니다.

    OpenPrinter를 호출하려면 Windows SDK 설명서에 설명된 PRINTER_DEFAULTS 구조가 필요합니다. 구조체의 DesiredAccess 멤버는 SERVER_ACCESS_ADMINISTER 설정해야 합니다. pDatatypepDevMode 멤버는 NULL일 수 있습니다.

    이 호출로 인해 인쇄 모니터 서버 DLL의 XcvOpenPort 함수가 호출됩니다.

  2. 대화 상자를 표시하여 사용자로부터 포트 이름을 가져옵니다.

  3. 다음 입력 인수를 지정하여 XcvData를 호출합니다.

    • OpenPrinter에서 받은 핸들

    • 사용자로부터 받은 포트 이름

    • "PortExists"와 같은 사용자 지정된 데이터 이름 문자열

    이 호출로 인해 서버 DLL의 XcvDataPort 함수가 호출됩니다. XcvDataPort 함수는 지정된 포트 이름이 이미 사용되었는지 여부를 나타내는 값을 반환해야 합니다. 이 경우 UI DLL은 사용자에게 다른 이름을 요청하고 XcvData 를 다시 호출해야 합니다.

  4. 유효한 새 포트 이름을 받은 후 XcvData 를 다시 호출합니다. 이번에는 다음 입력 인수를 지정합니다.

    • OpenPrinter에서 받은 핸들

    • 사용자로부터 받은 유효성이 검사된 포트 이름

    • "AddPort"의 데이터 이름 문자열

    이 호출로 인해 서버 DLL의 XcvDataPort 함수가 다시 호출됩니다.

  5. 대화 상자를 표시하여 사용자로부터 포트 구성 매개 변수를 가져옵니다.

  6. XcvData를 한 번 이상 호출하여 사용자 지정된 데이터 이름 문자열을 지정하여 각 구성 매개 변수를 서버 DLL로 보냅니다. 각 XcvData 호출로 인해 서버의 XcvDataPort 함수가 호출됩니다.

  7. OpenPrinter에서 받은 핸들을 지정하여 ClosePrinter를 호출합니다. 이로 인해 서버 DLL의 XcvClosePort 함수가 호출됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 winsplp.h(Winsplp.h 포함)

추가 정보

MONITORUI

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort