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


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

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

Синтаксис

BOOL RoTransformErrorW(
  [in] HRESULT oldError,
  [in] HRESULT newError,
  [in] UINT    cchMax,
  [in] PCWSTR  message
);

Параметры

[in] oldError

Тип: HRESULT

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

[in] newError

Тип: HRESULT

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

[in] cchMax

Тип: UINT

Максимальное число символов в сообщении, за исключением завершающего пустого символа. Если значение равно 0, строка считывается до первого символа NULL или 512 символов, в зависимости от того, что меньше. Если значение cchMax больше 512, все символы после 512 игнорируются.

[in] message

Тип: PCWSTR

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

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

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

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

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

Тип: BOOL

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

Комментарии

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

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

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

Примечание Это не версия ANSI функции RoTransformErrorW . Строки сообщения должны быть в Юникоде.
 

Требования

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

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

RO_ERROR_REPORTING_FLAGS

RoGetErrorReportingFlags

RoOriginateErrorW

RoSetErrorReportingFlags

RoTransformError