Поделиться через


Функция RoTransformError (roerrorapi.h)

Сообщает об измененной ошибке и информативной строке подключенному отладчику.

Синтаксис

BOOL RoTransformError(
  [in] HRESULT oldError,
  [in] HRESULT newError,
  [in] HSTRING message
);

Параметры

[in] oldError

Тип: HRESULT

Исходный код ошибки, связанный с условием ошибки.

[in] newError

Тип: HRESULT

Другой код ошибки, связанный с условием ошибки. Если oldError и newError совпадают или оба являются кодами успешного выполнения, например S_OK, функция не оказывает никакого влияния и возвращает значение FALSE.

[in] message

Тип: HSTRING

Информативная строка, помогающая разработчикам исправить состояние ошибки. Максимальная длина — 512 символов, включая символ null в конце; длинные строки усекаются.

Если строка пуста, функция завершается успешно, но сведения об ошибке не передаются. Рекомендуется всегда указывать информативную строку.

Если аргумент message имеет значение NULL, функция завершается успешно и сообщает универсальную строку в Winerror.h, если она доступна, или универсальную строку, связанную с E_FAIL.

Хотя строка сообщения является HSTRING, функция RoTransformError не поддерживает внедренные символы NULL, поэтому сообщаются только символы, предшествующие первому значению NULL.

Возвращаемое значение

Тип: BOOL

Код возврата Описание
TRUE
Сообщение об ошибке успешно отправлено.
FALSE
message имеет значение NULL или указывает на пустую строку, или oldError и newError являются одинаковыми, или оба являются кодами успешного выполнения.

Комментарии

Используйте функцию RoTransformError , чтобы заменить пользовательский код ошибки для существующего условия ошибки. Например, если текущее условие ошибки E_FAIL, можно заменить более конкретный код ошибки, например E_FILENOTFOUND, и сообщить о преобразованной ошибке подключенному отладчику.

В противном случае поведение функции RoTransformError совпадает с поведением функции RoTransformErrorW .

Если флаг UseSetErrorInfo устанавливается путем вызова функции RoSetErrorReportingFlags , а вызывающий поток инициализирован в COM, функция создает соответствующий объект ошибки, поддерживающий IRestrictedErrorInfo , и связывает его с COM-каналом путем вызова SetErrorInfo. Если поток не инициализирован в COM, вызов по-прежнему будет выполнен без ошибок, но ошибка не будет связана с COM-каналом.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header roerrorapi.h

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

RO_ERROR_REPORTING_FLAGS

RoGetErrorReportingFlags

RoOriginateError

RoSetErrorReportingFlags

RoTransformErrorW