iStreamAsync::ReadAsync 方法 (shobjidl.h)

以異步方式從數據流讀取資訊。 例如,Shell 會在以異步方式傳輸檔案專案時,在檔案項目上實作這個介面。

語法

HRESULT ReadAsync(
  [out]           void         *pv,
  [in]            DWORD        cb,
  [out, optional] LPDWORD      pcbRead,
  [in]            LPOVERLAPPED lpOverlapped
);

參數

[out] pv

類型: void*

當這個方法成功傳回時,會傳回 長度為 cb 位元組的緩衝區,並包含讀取作業中的資訊 之 cbRead 位元組。

[in] cb

類型: DWORD

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

[out, optional] pcbRead

類型: LPDWORD

DWORD 值的指標,當這個方法成功傳回時,會指出實際讀取到 pv 所指向緩衝區的位元組數目。 此值可以是 NULL

[in] lpOverlapped

類型: LPOVERLAPPED

重迭結構的指標,其中包含異步讀取作業中使用的資訊。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

IStreamAsync::ReadAsync 應該在開始輸入/輸出 (I/O) 作業時,將 OVERLAPPED 結構的 hEvent 成員所指定的事件重設為非簽署狀態。

這個方法已在Shell中實作為公用 ReadFile API的精簡包裝函式。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl.h