次の方法で共有


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 関数が呼び出されます。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー winsplp.h (Winsplp.h を含む)

関連項目

MONITORUI

XcvClosePort する

XcvData する

XcvDataPort する

XcvOpenPort