次の方法で共有


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 によって受け取られた最初の 3 つの引数は、AddPort によって受け取られた引数です。 (AddPort 関数については、Microsoft Windows SDKドキュメントを参照してください)。

関数は、次の操作を実行する必要があります。

  1. OpenPrinter を呼び出し、プリンター名を次の形式で指定します。

    \\ServerName\,XcvMonitorMonitorName

    ここで 、ServerNameMonitorName は、 AddPortUI 関数引数として受け取るサーバー名とモニター名です。

    OpenPrinter の呼び出しには、Windows SDKドキュメントで説明されているPRINTER_DEFAULTS構造体が必要です。 構造体の DesiredAccess メンバーは、SERVER_ACCESS_ADMINISTERに設定する必要があります。 その pDatatype メンバーと pDevMode メンバーは NULL にすることができます

    この呼び出しにより、印刷モニター サーバー DLL の XcvOpenPort 関数が呼び出されます。

  2. ダイアログ ボックスを表示して、ユーザーからポート名を取得します。

  3. XcvData を呼び出し、次の入力引数を指定します。

    • OpenPrinter から受け取ったハンドル

    • ユーザーから受信したポート名

    • "PortExists" などのカスタマイズされたデータ名文字列

    この呼び出しにより、サーバー DLL の XcvDataPort 関数が呼び出されます。 XcvDataPort 関数は、指定したポート名が既に使用されているかどうかを示す値を返す必要があります。 ある場合、UI DLL はユーザーに別の名前を要求し、 XcvData をもう一度呼び出す必要があります。

  4. 有効な新しいポート名を受信した後、 XcvData をもう一度呼び出します。今回は、次の入力引数を指定します

    • OpenPrinter から受け取ったハンドル

    • ユーザーから受信した検証済みポート名

    • "AddPort" のデータ名文字列

    この呼び出しにより、サーバー DLL の XcvDataPort 関数が再度呼び出されます。

  5. ダイアログ ボックスを表示して、ユーザーからポート構成パラメーターを取得します。

  6. XcvData を 1 回以上呼び出し、カスタマイズされたデータ名文字列を指定して、各構成パラメーターをサーバー DLL に送信します。 各 XcvData 呼び出しにより、サーバーの XcvDataPort 関数が呼び出されます。

  7. OpenPrinter から受信したハンドルを指定して ClosePrinter を呼び出します。 これにより、サーバー DLL の XcvClosePort 関数が呼び出されます。

要件

要件
対象プラットフォーム デスクトップ
Header winsplp.h (Winsplp.h を含む)

こちらもご覧ください

MONITORUI

XcvClosePort

XcvData

XcvDataPort

XcvOpenPort