IWiaDataTransfer::idtGetData 方法 (wia_xp.h)

IWiaDataTransfer::idtGetData 方法从 Windows 映像采集 (WIA) 设备检索完整文件。

语法

HRESULT idtGetData(
  [in, out] LPSTGMEDIUM      pMedium,
  [in]      IWiaDataCallback *pIWiaDataCallback
);

参数

[in, out] pMedium

类型: LPSTGMEDIUM

指向 STGMEDIUM 结构的指针。

[in] pIWiaDataCallback

类型: IWiaDataCallback*

指向 IWiaDataCallback 接口的 指针。

返回值

类型: HRESULT

此方法可以返回以下任何一个值:

返回值 含义
E_INVALIDARG 此方法的一个或多个参数包含无效数据。
E_OUTOFMEMORY 此方法无法分配足够的内存来完成其操作。
E_UNEXPECTED 出现未知错误。
S_FALSE 应用程序取消了操作。
S_OK 已成功获取映像。
STG_E_MEDIUMFULL 应用程序用于获取映像的存储介质已满。
WIA_S_NO_DEVICE_AVAILABLE 没有 WIA 硬件设备附加到用户的计算机。
 

此方法将返回 错误代码中指定的值;如果由于上表中指定的原因以外的任何原因而失败,此方法将返回标准 COM 错误。

注解

在大多数情况下,此方法的操作方式与 IDataObject::GetData 方法相同。 主要区别在于 IWiaDataTransfer::idtGetData 为指向 IWiaDataCallback 接口的指针提供了附加参数。 应用程序使用此可选参数在数据传输期间获取状态通知。 如果不需要状态通知,应将其设置为零。

数据传输的格式由项 WIA_IPA_FORMATWIA_IPA_TYMED 属性的值决定。 应用程序通过调用 IWiaPropertyStorage::WriteMultiple 方法设置这些属性。

IWiaDataTransfer::idtGetBandedData 方法不同, IWiaDataTransfer::idtGetData 将完整文件从 WIA 设备传输到应用程序,而不仅仅是单个数据带。 pMedium 参数是指向 STGMEDIUM 结构的指针,该结构包含有关要用于数据传输的存储介质的信息。 程序使用 pIWiaDataCallback 参数向此方法传递指向 IWiaDataCallback 接口的指针。 此方法将定期使用接口指针调用 BandedDataCallback 方法,并为应用程序提供有关正在进行的数据传输的状态信息。

NULL 作为 pMedium 结构的 lpszFileName 成员的值传递,以允许 WIA 确定新文件的文件名和位置。 返回后,pMedium 结构的 lpszFileName 成员包含新文件的位置和名称。

如果此方法返回的值是 COM SUCCESS 值,或者传输是多页文件传输,并且返回的错误代码是WIA_ERROR_PAPER_JAM、WIA_ERROR_PAPER_EMPTY或WIA_ERROR_PAPER_PROBLEM,则 WIA 不会删除该文件。

要求

   
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wia_xp.h (包括 Wia.h)
Library Wiaguid.lib
DLL Wiaservc.dll