ISequentialStream::Read 方法 (objidl.h)

Read 方法會從數據流物件讀取指定的位元組數目到記憶體,從目前的搜尋指標開始。

語法

HRESULT Read(
  [out] void  *pv,
  [in]  ULONG cb,
  [out] ULONG *pcbRead
);

參數

[out] pv

數據流數據的讀取緩衝區指標。

[in] cb

要從數據流物件讀取的數據位元組數目。

[out] pcbRead

ULONG 變數的指標,接收從數據流物件讀取的實際位元元組數目。

注意 讀取的位元組數目可能是零。
 

傳回值

這個方法可以傳回其中一個值。

傳回碼 描述
S_OK 所有要求的數據都已成功從數據流物件讀取; cb 中要求的位元組數目,與 在 cbRead 中傳回的位元組數目相同。
S_FALSE 在 cbRead 中傳回的值小於 cb 所要求的位元元組數目。 這表示已到達數據流的結尾。 讀取的位元組數目表示已填滿多少 pv 緩衝區。
E_PENDING 僅限異步記憶體:目前無法使用要讀取的部分或所有數據。
STG_E_ACCESSDENIED 呼叫端沒有讀取此資料流物件所需的許可權。
STG_E_INVALIDPOINTER 其中一個指標值無效。
STG_E_REVERTED 物件已因交易樹狀結構中上方的還原作業而失效。

備註

這個方法會將這個數據流物件的位元組讀取到記憶體中。 數據流對象必須在 STGM_READ 模式中開啟。 這個方法會依讀取的實際位元組數目來調整搜尋指標。

實際讀取的位元組數目也會在 azureRead 參數中傳回。

來電者的附註

讀取的實際位元組數目可以小於發生錯誤時所要求的位元元組數目,或讀取作業期間到達數據流結尾時所要求的位元組數目。 傳回的位元組數目應該一律與要求的位元組數目進行比較。 如果傳回的位元組數目小於要求的位元組數目,通常表示 Read 方法嘗試讀取超過數據流結尾。

應用程式應該同時處理傳回的錯誤和 S_OK 數據流結尾讀取作業的傳回值。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 objidl.h
程式庫 Uuid.lib
Dll Ole32.dll

另請參閱

ISequentialStream::Write

IStorage::OpenStream

IStream

IStream - 複合檔案實作

STGMOVE