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 消息发送到富编辑控件时,EDITSTREAM 结构的 pfnCallback 成员指定指向 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

参考