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 |