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 缓冲区中的任何数据。 如果回调函数返回非零值,则富编辑控件使用 EDITSTREAM 结构的 dwError 成员将值传递回应用程序。

注解

EM_STREAMINEM_STREAMOUT消息发送到富编辑控件时,EDITSTREAM 结构的 pfnCallback 成员会指定指向 EditStreamCallback 函数的指针。 丰富编辑控件重复调用 函数,以将数据流传入或传出控件。

发送EM_STREAMINEM_STREAMOUT消息时,为 EDITSTREAM 结构的 dwCookie 成员指定一个值。 Rich edit 控件使用 dwCookie 参数将此值传递给 EditStreamCallback 函数。 例如,可以使用 dwCookie 将句柄传递给打开的文件。 然后,回调函数可以使用 dwCookie 句柄从文件读取或写入文件。

控件重复调用回调函数,每次调用时传输一部分数据。 控件继续调用回调函数,直到出现以下情况之一:

  • 回调函数返回非零值。
  • 回调函数在 * 的印刷量 参数中返回零。
  • 发生错误,阻止丰富编辑控件将数据传入或传出自身。 例如内存不足的情况、系统函数故障或读取缓冲区中的无效字符。
  • 对于流式传入操作,RTF 代码包含指定 RTF 块末尾的数据。
  • 对于单行编辑控件上的流式传入操作,回调以段落尾字符 (CR、LF、VT、LS 或 PS) 读取。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 richedit.h

另请参阅

EDITSTREAM

EM_STREAMIN

EM_STREAMOUT

引用