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 [仅限桌面应用] |
标头 |
|
IDL |
|
库 |
|