Функция обратного вызова 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
Значение dwCookie члена структуры EDITSTREAM. Приложение указывает это значение при отправке сообщения EM_STREAMIN или EM_STREAMOUT.
[in] pbBuff
Тип: LPBYTE
Указатель на буфер для чтения или записи. Для операции потоковой передачи (чтения) функция обратного вызова заполняет этот буфер данными для передачи в элемент управления расширенными изменениями. Для операции потоковой передачи (записи) буфер содержит данные из элемента управления, который функция обратного вызова записывает в некоторое хранилище.
[in] cb
Тип: LONG
Число байтов для чтения или записи.
[in] pcb
Тип: LONG*
Указатель на переменную, которую функция обратного вызова задает количеству байтов, фактически считываемых или записанных.
Возвращаемое значение
Тип: DWORD
Функция обратного вызова возвращает ноль, чтобы указать успешность.
Функция обратного вызова возвращает ненулевое значение, указывающее ошибку. Если возникает ошибка, операция чтения или записи завершается, а элемент управления расширенными изменениями удаляет все данные в буфере pbBuff. Если функция обратного вызова возвращает ненулевое значение, элемент управления расширенными изменениями использует элемент dwError член структуры EDITSTREAM, чтобы передать значение обратно приложению.
Замечания
При отправке сообщения
При отправке сообщения EM_STREAMIN или EM_STREAMOUT необходимо указать значение для члена dwCookie структуры EDIT STREAM. Элемент управления расширенными изменениями использует параметр dwCookie для передачи этого значения в функцию EditStreamCallback. Например, можно использовать dwCookie для передачи дескриптора в открытый файл. Затем функция обратного вызова может использовать dwCookie дескриптор для чтения из файла или записи в нее.
Элемент управления многократно вызывает функцию обратного вызова, передав часть данных с каждым вызовом. Элемент управления продолжает вызывать функцию обратного вызова до тех пор, пока не возникнет одно из следующих условий:
- Функция обратного вызова возвращает ненулевое значение.
- Функция обратного вызова возвращает ноль в параметре pcb *
. - Ошибка, которая предотвращает передачу данных в сам элемент управления расширенными возможностями редактирования. Примерами являются ситуации вне памяти, сбой системной функции или недопустимый символ в буфере чтения.
- Для операции потоковой передачи код RTF содержит данные, указывающие конец блока RTF.
- Для операции потоковой передачи в однострочный элемент управления редактирования обратный вызов считывается в символе конца абзаца (CR, LF, VT, LS или PS).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | richedit.h |
См. также
Справочник