共用方式為


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 成員設定為 TRUEIWiaDataTransfer::idtGetBandedData 方法會將數據緩衝區分成一半。 當緩衝區的一半已滿時,IWiaDataTransfer::idtGetBandedData 會使用透過 pIWiaDataCallback 參數傳入的 IWiaDataCallback 指標,將通知傳送給應用程式。 當應用程式從緩衝區的完整一半擷取數據時,設備驅動器可以使用數據填滿另一半。

數據傳輸的格式取決於專案 WIA_IPA_FORMATWIA_IPA_TYMED 屬性的值。 應用程式會使用呼叫 IWiaPropertyStorage::WriteMultiple 方法來設定這些屬性。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 wia_xp.h (包括 Wia.h)
程式庫 Wiaguid.lib
Dll Wiaservc.dll