IWiaDataTransfer::idtGetBandedData 方法 (wia_xp.h)
IWiaDataTransfer::idtGetBandedData 方法會將數據範圍從硬體裝置傳輸到應用程式。 為了有效率,應用程式會從 Windows 映射擷取數據, (WIA) 連續的頻外硬體裝置。
語法
HRESULT idtGetBandedData(
[in] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
[in] IWiaDataCallback *pIWiaDataCallback
);
參數
[in] pWiaDataTransInfo
類型: PWIA_DATA_TRANSFER_INFO
WIA_DATA_TRANSFER_INFO 結構的指標。
[in] pIWiaDataCallback
類型: IWiaDataCallback*
IWiaDataCallback 介面的指標。 此方法會定期呼叫 BandedDataCallback 方法,以提供應用程式數據傳輸狀態通知。
傳回值
類型: HRESULT
這個方法可以傳回下列任何一個值:
傳回值 | 意義 |
---|---|
E_INVALIDARG | 這個方法的一或多個參數包含無效的數據。 |
E_OUTOFMEMORY | 這個方法無法配置足夠的記憶體來完成其作業。 |
E_UNEXPECTED | 發生未知的錯誤。 |
S_FALSE | 應用程式已取消作業。 |
S_OK | 已成功取得映像。 |
STG_E_MEDIUMFULL | 應用程式用來取得映像的儲存媒體已滿。 |
WIA_S_NO_DEVICE_AVAILABLE | 沒有 WIA 硬體裝置連結至使用者的電腦。 |
這個方法會傳回 錯誤碼中指定的值,如果因上表中指定的任何原因而失敗,則傳回標準 COM 錯誤。
備註
IWiaDataTransfer::idtGetBandedData 方法會配置記憶體區段來傳輸數據,而不需要透過元件物件模型/遠端過程呼叫 (COM/RPC) 封送處理層進行額外的數據複製。 此記憶體區段會在應用程式與硬體裝置的專案樹狀結構之間共用。
或者,應用程式可以將指標傳入 IWiaDataTransfer::idtGetBandedData 將作為其共用區段的記憶體區塊。 應用程式會在呼叫 IWiaDataTransfer::idtGetBandedData 之前,將指標儲存在 WIA_DATA_TRANSFER_INFO 結構的 ulSection 成員中,以傳遞此句柄。
應用程式可以使用雙緩衝來改善效能。 若要這樣做,應用程式必須將 WIA_DATA_TRANSFER_INFO 結構的 bDoubleBuffer 成員設定為 TRUE。 IWiaDataTransfer::idtGetBandedData 方法會將數據緩衝區分成一半。 當緩衝區的一半已滿時,IWiaDataTransfer::idtGetBandedData 會使用透過 pIWiaDataCallback 參數傳入的 IWiaDataCallback 指標,將通知傳送給應用程式。 當應用程式從緩衝區的完整一半擷取數據時,設備驅動器可以使用數據填滿另一半。
數據傳輸的格式取決於專案 WIA_IPA_FORMAT 和 WIA_IPA_TYMED 屬性的值。 應用程式會使用呼叫 IWiaPropertyStorage::WriteMultiple 方法來設定這些屬性。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版、Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wia_xp.h (包括 Wia.h) |
程式庫 | Wiaguid.lib |
Dll | Wiaservc.dll |