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 |
|
程式庫 |
|