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