IStream 介面 (objidl.h)

IStream介面可讓您讀取和寫入資料流程物件。 Stream 物件包含結構化儲存物件中的資料,其中儲存體會提供 結構。 簡單的資料可以直接寫入資料流程,但最常是串流是儲存物件內巢狀的專案。 它們類似于標準檔案。

IStream介面會定義類似 MS-DOS FAT 檔案函式的方法。 例如,每個資料流程物件都有自己的存取權限和搜尋指標。 DOS 檔案與資料流程物件之間的主要差異在於,在後者的情況下,資料流程是使用 IStream 介面指標來開啟,而不是檔案控制碼。

此介面中的方法會將物件的資料呈現為您可以讀取或寫入的連續位元組序列。 還有一種方法可用來認可和還原在交易模式中開啟的資料流程變更,以及限制對資料流程中某個位元組範圍的存取的方法。

串流可以長時間保持開啟狀態,而不需要耗用檔案系統資源。 IUnknown::Release方法類似于檔案上的 close 函式。 發行之後,資料流程物件已不再有效,因此無法使用。

非同步 Moniker 的用戶端可以選擇資料提取或資料推送模型,以驅動非同步 IMoniker::BindToStorage 作業,以及接收非同步通知。 如需詳細資訊 ,請參閱 URL Monikers 。 下表比較下列兩種下載模型中傳回的非同步ISequentialStream::ReadIStream::Seek呼叫行為

IStream 方法呼叫 資料提取模型中的行為 資料推送模型中的行為
呼叫 read 來讀取部分資料 (,而不是所有可用的資料) 傳回S_OK。 用戶端必須先繼續讀取所有可用的資料,再從 IBindStatusCallback::OnDataAvailable 傳回,否則系結作業會遭到封鎖。 (,讀取直到傳回S_FALSE或E_PENDING) 傳回S_OK。 即使用戶端此時從 IBindStatusCallback::OnDataAvailable 傳回,系結作業仍會繼續, 且 IBindStatusCallback::OnDataAvailable 會重複呼叫,直到系結完成為止。
呼叫 Read 以讀取所有可用的資料 如果系結作業尚未完成,則會傳回E_PENDING,當有更多資料可用時,將會再次呼叫 IBindStatusCallback::OnDataAvailable 與資料提取模型相同。
呼叫 read 來讀取所有可用的資料,而系結作業超過檔案結尾 () 傳回S_FALSE。 後續會呼叫 IBindStatusCallback::OnDataAvailable ,並將 grfBSC 旗標設定為 BSCF_LASTDATANOTIFICATION。 與資料提取模型相同。
搜尋 稱為 Seek 無法在資料提取模型中運作 Seek 無法在資料推送模型中運作。
 

如需本主題的一般資訊,請參閱 非同步 Monikers 和資料 提取模型與資料推送模型 ,以取得更詳細的資訊。 此外,如需管理記憶體之 COM 規則的詳細資料,請參閱 管理記憶體配置

繼承

IStream介面繼承自ISequentialStream介面。 IStream 也有下列類型的成員:

方法

IStream介面具有這些方法。

 
IStream::Clone

Clone 方法會建立新的資料流程物件,其本身的搜尋指標會參考與原始資料流程相同的位元組。
IStream::Commit

Commit 方法可確保對在交易模式中開啟的資料流程物件所做的任何變更都反映在父儲存體中。
IStream::CopyTo

從資料流中目前的搜尋指標將指定的位元組數目複製到另一個資料流中目前的搜尋指標。
IStream::LockRegion

LockRegion 方法會限制對資料流程中指定位元組範圍的存取。
IStream::Revert

Revert 方法會捨棄自上一次 IStream::Commit 呼叫以來對交易資料流程所做的所有變更。 在直接模式中開啟的資料流程,並使用 IStream::Revert 的 COM 複合檔案實作進行資料流程時,這個方法沒有任何作用。
IStream::Seek

將搜尋指標變更為新的位置。 新位置相對於資料流程的開頭、資料流程結尾或目前的搜尋指標。
IStream::SetSize

變更資料流物件的大小。
IStream::Stat

Stat 方法會擷取此資料流程的 STATSTG 結構。
IStream::UnlockRegion

UnlockRegion 方法會移除先前使用 IStream::LockRegion 限制的位元組範圍存取限制。

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式|UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式|UWP 應用程式]
目標平臺 Windows
標頭 objidl.h

另請參閱

ISequentialStream

IStream - 複合檔案實作