EDITSTREAMCALLBACK 回调函数 (richedit.h)
EditStreamCallback 函数是应用程序定义的回调函数,用于 EM_STREAMIN 和 EM_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_STREAMIN 或 EM_STREAMOUT 消息时指定此值。
[in] pbBuff
类型:LPBYTE
指向要读取或写入到的缓冲区的指针。 对于流传入(读取)操作,回调函数会用数据传输到富编辑控件中填充此缓冲区。 对于流出(写入)操作,缓冲区包含回调函数写入某些存储的控件中的数据。
[in] cb
类型:LONG
要读取或写入的字节数。
[in] pcb
类型:LONG*
指向回调函数设置为实际读取或写入字节数的变量的指针。
返回值
类型:DWORD
回调函数返回零以指示成功。
回调函数返回非零值以指示错误。 如果发生错误,读取或写入操作将结束,富编辑控件将放弃 pbBuff 缓冲区中的任何数据。 如果回调函数返回非零值,则富编辑控件使用 dwErrorEDITSTREAM 结构的成员将值传递回应用程序。
言论
将 EM_STREAMIN 或 EM_STREAMOUT 消息发送到富编辑控件时,EDITSTREAM 结构的 pfnCallback 成员指定指向 EditStreamCallback 函数的指针。 丰富的编辑控件重复调用函数,以将数据流传输到控件或从控件中传出。
发送 EM_STREAMIN 或 EM_STREAMOUT 消息时,请为 EDITSTREAM 结构 dwCookie 成员指定值。 富编辑控件使用 dwCookie 参数将此值传递给 EditStreamCallback 函数。 例如,可以使用 dwCookie 将句柄传递给打开的文件。 然后,回调函数可以使用 dwCookie 句柄读取或写入文件。
该控件重复调用回调函数,每次调用时传输一部分数据。 该控件继续调用回调函数,直到出现以下条件之一:
- 回调函数返回非零值。
- 回调函数在 * 参数中返回零。
- 发生错误,导致富编辑控件无法将数据传入或移出自身。 例如内存不足情况、系统函数故障或读取缓冲区中的无效字符。
- 对于流传入操作,RTF 代码包含指定 RTF 块末尾的数据。
- 对于单行编辑控件上的流传入操作,回调在段落结尾字符(CR、LF、VT、LS 或 PS)中读取。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | richedit.h |
另请参阅
参考