EDITSTREAMCALLBACK 回呼函式 (richedit.h)

EditStreamCallback 函式是搭配 EM_STREAMINEM_STREAMOUT 訊息使用的應用程式定義回呼函式。 它用來將數據串流傳送到或移出豐富的編輯控制件。 EDITSTREAMCALLBACK 類型會定義這個回呼函式的指標。 EditStreamCallback 是應用程式定義函式名稱的佔位符。

語法

EDITSTREAMCALLBACK Editstreamcallback;

DWORD Editstreamcallback(
  [in] DWORD_PTR dwCookie,
  [in] LPBYTE pbBuff,
  [in] LONG cb,
  [in] LONG *pcb
)
{...}

參數

[in] dwCookie

類型:DWORD_PTR

EDITSTREAM 結構 dwCookie 成員的值。 應用程式會在傳送 EM_STREAMINEM_STREAMOUT 訊息時指定此值。

[in] pbBuff

類型:LPBYTE

要讀取或寫入之緩衝區的指標。 對於串流輸入(讀取)作業,回呼函式會填入此緩衝區,並將數據傳輸至豐富的編輯控件。 針對數據流輸出(寫入)作業,緩衝區會包含回呼函式寫入某些記憶體之控件的數據。

[in] cb

類型:LONG

要讀取或寫入的位元組數目。

[in] pcb

類型:LONG*

回呼函式設定為實際讀取或寫入位元組數目的變數指標。

傳回值

類型:DWORD

回調函式會傳回零,表示成功。

回調函式會傳回非零值,表示錯誤。 如果發生錯誤,讀取或寫入作業會結束,而豐富的編輯控件會捨棄 pbBuff 緩衝區中的任何數據。 如果回呼函式傳回非零值,豐富編輯控件會使用 dwErrorEDITSTREAM 結構的成員,將值傳回應用程式。

言論

當您將 EM_STREAMINEM_STREAMOUT 訊息傳送至豐富的編輯控件時,pfnCallbackEDITSTREAM 結構的成員會指定 EditStreamCallback 函式的指標。 豐富的編輯控制項會重複呼叫 函式,以將數據流傳入或移出控件。

當您傳送 EM_STREAMINEM_STREAMOUT 訊息時,請為 EDITSTREAM 結構的成員指定 dwCookie 成員的值。 豐富的編輯控件會使用 dwCookie 參數,將此值傳遞至您的 EditStreamCallback 函式。 例如,您可以使用 dwCookie 將句柄傳遞至開啟的檔案。 回呼函式接著可以使用 dwCookie 句柄來讀取或寫入檔案。

控件會重複呼叫回呼函式,使用每個呼叫來傳輸部分數據。 控制者會繼續呼叫回呼函式,直到發生下列其中一個情況:

  • 回調函式會傳回非零值。
  • 回呼函式會在 * 參數中傳回零。
  • 發生錯誤,導致豐富的編輯控件無法將數據傳送到或移出本身。 範例包括記憶體不足的情況、系統函式失敗,或讀取緩衝區中的無效字元。
  • 針對數據流輸入作業,RTF 程式代碼包含指定 RTF 區塊結尾的數據。
  • 如果是單行編輯控件上的數據流輸入作業,回呼會以段落結尾字元 (CR、LF、VT、LS 或 PS) 讀取。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 richedit.h

另請參閱

EDITSTREAM

EM_STREAMIN

EM_STREAMOUT

參考