IWiaTransferCallback::GetNextStream 方法

获取指定项的新流。

语法

HRESULT GetNextStream(
  [in]  LONG    lFlags,
  [in]  BSTR    bstrItemName,
  [in]  BSTR    bstrFullItemName,
  [out] IStream **ppDestination
);

参数

lFlags [in]

类型: LONG

当前未使用。 应设置为零。

bstrItemName [in]

类型: BSTR

指定要为其创建流的项的名称。

bstrFullItemName [in]

类型: BSTR

指定要为其创建流的项的全名。

ppDestination [out]

类型: IStream**

接收指向新 IStream 对象的指针的地址。

返回值

类型: HRESULT

如果此方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

备注

当图像处理筛选器实现此方法时,Windows 映像采集 (WIA) 2.0 微型驱动程序在图像获取期间调用此方法,以便从客户端获取目标流。

筛选器的 IWiaTransferCallback::GetNextStream 必须委托给应用程序的回调方法。 筛选器使用应用程序回调的 IWiaTransferCallback::GetNextStream 实现返回的流来创建其自己的流,并将其传回 WIA 2.0 服务。 筛选是在筛选器的流调用 IStream::Write 方法时完成的。

筛选器的流不能对每次写入时写入它的字节数做出任何假设,因为未筛选的图像数据可能来自 WIA 2.0 预览组件而不是驱动程序。 WIA 2.0 预览组件始终只将整个未筛选图像数据写入筛选器的流一次,这意味着筛选器的流有一个写入到其中的源。 例如,如果驱动程序和预览组件都写入到筛选器的流中,则筛选器的流不能假定它将在首次调用 IStream::Write 时接收完整的标头,尽管其相应的驱动程序始终先在一次写入中写入标头数据。 它也不能假设后续写入只包含一个扫描行。 因此,筛选流可能需要对写入它的字节数进行计数,以确定图像数据从何处开始。

图像处理筛选器的 IWiaTransferCallback::GetNextStream 实现应从要为其获取图像的项读取其图像处理所需的属性。 筛选器不会直接从传递到 InitializeFilter的 pWiaItem2 中读取属性。 相反,筛选器必须对此 WIA 2.0 项调用 FindItemByName 才能获取实际的 WIA 2.0 项。 原因是所获取的图像实际上可能是 pWiaItem2 的子项。 例如,在文件夹获取期间,筛选器使用 pWiaItem2 获取 iWiaTransferCallback::GetNextStream (中的 pWiaItem2 子项,在文件夹获取期间,驱动程序返回由 pWiaItem2 子项表示的图像) 。 WIA 2.0 预览组件调用传递子 WIA 2.0 项的图像处理筛选器时也是如此。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Wia.h
IDL
Wia.idl

Wiaguid.lib