Функция обратного вызова 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 в элемент управления с расширенным редактированием член pfnCallback структуры EDITSTREAM указывает указатель на функцию EditStreamCallback . Элемент управления многофункциональным редактированием неоднократно вызывает функцию для передачи потока данных в элемент управления или из него.

При отправке сообщения EM_STREAMIN или EM_STREAMOUT необходимо указать значение для элемента dwCookie структуры EDITSTREAM . Элемент управления "Полнофункциональное редактирование" использует параметр dwCookie для передачи этого значения в функцию EditStreamCallback . Например, можно использовать dwCookie для передачи дескриптора в открытый файл. Затем функция обратного вызова может использовать дескриптор dwCookie для чтения из файла или записи в файл.

Элемент управления вызывает функцию обратного вызова несколько раз, передавая часть данных при каждом вызове. Элемент управления продолжает вызывать функцию обратного вызова до тех пор, пока не произойдет одно из следующих условий:

  • Функция обратного вызова возвращает ненулевое значение.
  • Функция обратного вызова возвращает ноль в параметре * pcb .
  • Возникает ошибка, которая не позволяет элементу управления полнофункционированным редактированием передавать данные в сам по себе или из него. Примерами могут быть ситуации нехватки памяти, сбой системной функции или недопустимый символ в буфере чтения.
  • Для операции потоковой передачи код RTF содержит данные, указывающие конец блока RTF.
  • Для операции потокового входа в однострочный элемент управления редактированием обратный вызов считывает символ конца абзаца (CR, LF, VT, LS или PS).

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header richedit.h

См. также раздел

EDITSTREAM

EM_STREAMIN

EM_STREAMOUT

Справочные материалы