CRichEditCtrl:: Коды ошибок StreamIn

#mfc #rtf

#mfc #rtf

Вопрос:

Кто-нибудь знает значение кодов ошибок CRichEditCtrl::StreamIn ?

Я использую следующий код для вставки форматированного текста в свой элемент управления, и иногда я получаю код ошибки типа -16 обратно.

 EDITSTREAM es;
es.dwError = 0;
es.dwCookie = (DWORD) amp;mf; // mf is a CMemFile
es.pfnCallback = RtfStreamInCallback; // this is my callback

pRichEditCtrl->StreamIn(nFormat,es);
  

После вызова StreamIn ошибка es.dwError = -16. Но что это значит?

Ответ №1:

Код ошибки является возвращаемым значением из вашей функции обратного вызова.

Смотрите раздел о возвращаемом значении в записи MSDN для EditStreamCallback:

Тип возвращаемого значения: DWORD Функция обратного вызова возвращает ноль, указывающий на успех. Функция обратного вызова возвращает ненулевое значение, указывающее на ошибку. При возникновении ошибки операция чтения или записи завершается, а элемент управления расширенного редактирования удаляет все данные из буфера pbBuff. Если функция обратного вызова возвращает ненулевое значение, расширенное управление редактированием использует элемент dwError структуры EDITSTREAM для передачи значения обратно в приложение.

http://msdn.microsoft.com/en-US/library/bb774368 (v = VS.85).aspx

Комментарии:

1. Спасибо. Я прочитал эту документацию по меньшей мере дюжину раз, но всегда пропускал эту часть.