次の方法で共有


IPrinterQueue::SendBidiQuery メソッド (printerextension.h)

指定したクエリを使用して非同期更新操作を実行し、 IPrinterQueueEvent::OnBidiResponseReceived メソッドを 呼び出します。

構文

HRESULT SendBidiQuery(
  [in] BSTR bstrBidiQuery
);

パラメーター

[in] bstrBidiQuery

指定したクエリ。

戻り値

このメソッドは HRESULT 値を返します。

注釈

SendBidiQuery メソッドが呼び出されると、キャッシュされた応答が使用可能な場合、IPrinterQueueEvent::OnBidiResponseReceived イベントが直ちに発生します。 その後、印刷システムは 、Bidi 通信インターフェイスを使用する非同期操作を開始します。 この時点で SendBidiQuery は を返し、呼び出し元のブロックを解除します。 非同期操作が完了すると、印刷システムは IPrinterQueueEvent::OnBidiResponseReceived イベントをもう一度発生させます。 SendBidiQuery は、関連する応答から意図的に切り離されます。 分離が行われるのは、キャッシュされたデータがない場合、結果として生じる待機時間が多くの要因によって発生する可能性があり、即時応答が期待できないためです。 さらに、呼び出し元は、キャッシュされたデータがあるかどうか、およびデバイスからの応答があるかどうかに基づいて、複数の応答を受け取る可能性があります。

Bidi 通信インターフェイスを使用すると、ポート モニターは基になる要求された値を更新します。 USB の場合、JavaScript コンポーネントが使用可能な場合は、要求された値を更新するために JavaScript コードが呼び出されます。

キャッシュは、次の状況でも更新されます。

  • 事前に定義された間隔で

    • WSD デバイスの場合、デバイスがイベントを介して変更を報告すると、データが更新されます。

    • TCP & USB デバイスの場合、更新間隔は Bidi 値が定義されている場所に基づきます。

    • すべての標準 Bidi 値 (ポート モニターの埋め込み Bidi ファイルで定義) は、ポート モニターによって事前設定された間隔で更新されます。 特定の Bidi クエリが IHV Bidi 拡張機能の一部である場合、更新間隔は個々の値の XML 拡張ファイルで指定されます。

  • プリンターの構成が変更されたとき

    • たとえば、WSD ベースのデバイスがイベントを発生させ、スプーラー (WSDMon) にデバイスに関する何かが変更されたことを知らせる場合などです。 つまり、プリンターの構成が変更されました。

要件

要件
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム デスクトップ
Header printerextension.h

こちらもご覧ください

Bidi 通信インターフェイス

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived