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_FORMAT 和 WIA_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 |