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


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

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

Синтаксис

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

Параметры

[in] oldError

Тип: HRESULT

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

[in] newError

Тип: HRESULT

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

[in] cchMax

Тип: UINT

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

[in] message

Тип: PCWSTR

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

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

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

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

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

Тип: BOOL

Код возврата Description
TRUE
Сообщение об ошибке было успешно сообщено.
ЛОЖНЫЙ
сообщение имеет значение NULL или указывает на пустую строку или старыйError и 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]
целевая платформа Виндоус
Header roerrorapi.h
Library mincore.lib

См. также

RO_ERROR_REPORTING_FLAGS

RoGetErrorReportingFlags

RoOriginateErrorW

RoSetErrorReportingFlags

RoTransformError