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
目标平台 桌面
标头 printerextension.h

另请参阅

Bidi 通信接口

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived