EditStreamCallback Function |
The EditStreamCallback function is an application defined
callback function used with the EM_STREAMIN
and EM_STREAMOUT
messages. It is used to transfer a stream of data into or out of a rich
edit control. The EDITSTREAMCALLBACK type defines a pointer to this
callback function. EditStreamCallback is a placeholder for the
application-defined function name.
Syntax
DWORD EditStreamCallback(
DWORD_PTR dwCookie,
LPBYTE pbBuff,
LONG cb,
LONG *pcb
);
Parameters
- dwCookie
- [in] Value of the dwCookie member of the EDITSTREAM
structure. The application specifies this value when it sends the
EM_STREAMIN or EM_STREAMOUT message.
- pbBuff
- [in] Pointer to a buffer to read from or write to. For a
stream-in (read) operation, the callback function fills this buffer
with data to transfer into the rich edit control. For a stream-out
(write) operation, the buffer contains data from the control that the
callback function writes to some storage.
- cb
- [in] Number of bytes to read or write.
- pcb
- [in] Pointer to a variable that the callback function sets to
the number of bytes actually read or written.
Return Value
The callback function returns zero to indicate success.
The callback function returns a nonzero value to indicate an error.
If an error occurs, the read or write operation ends and the rich edit
control discards any data in the pbBuff buffer. If the callback
function returns a nonzero value, the rich edit control uses the
dwError member of the EDITSTREAM structure to pass the
value back to the application.
Remarks
When you send the EM_STREAMIN or EM_STREAMOUT message
to a rich edit control, the pfnCallback member of the
EDITSTREAM structure specifies a pointer to an
EditStreamCallback function. The rich edit control repeatedly
calls the function to transfer a stream of data into or out of the
control.
When you send the EM_STREAMIN or EM_STREAMOUT message,
you specify a value for the dwCookie member of the
EDITSTREAM structure. The rich edit control uses the
dwCookie parameter to pass this value to your
EditStreamCallback function. For example, you might use
dwCookie to pass a handle to an open file. The callback function
can then use the dwCookie handle to read from or write to the
file.
The control calls the callback function repeatedly, transferring a
portion of the data with each call. The control continues to call the
callback function until one of the following conditions occurs:
- The callback function returns a nonzero value.
- The callback function returns zero in the * pcb parameter.
- An error occurs that prevents the rich edit control from
transferring data into or out of itself. Examples are out-of-memory
situations, failure of a system function, or an invalid character in
the read buffer.
- For a stream-in operation, the RTF code contains data specifying
the end of an RTF block.
- For a stream-in operation on a single-line edit control, the
callback reads in an end-of-paragraph character (CR, LF, VT, LS, or
PS).
Function Information
Header |
Declared in Richedit.h |
Import library |
None |
Minimum operating systems |
Windows 95, Windows
NT 4.0 |
See Also
Rich
Edit Controls Overview, EDITSTREAM,
EM_STREAMIN,
EM_STREAMOUT