Получение сведений об ошибках

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

  1. Проверьте, представляет ли возвращаемое значение ошибку, которую объект готов обрабатывать.
  2. Вызовите QueryInterface, чтобы получить указатель на интерфейс ISupportErrorInfo. Затем вызовите ISupportErrorInfo::InterfaceSupportsErrorInfo, чтобы убедиться, что ошибка была вызвана объектом, возвращаемым им, и что объект ошибки относится к текущей ошибке, а не к предыдущему вызову.
  3. Чтобы получить указатель на объект ошибки, вызовите функцию GetErrorInfo.
  4. Чтобы получить сведения из объекта ошибки, используйте методы IErrorInfo.

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