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


Помощник по отладке управляемого кода failedQI

Помощник по отладке управляемого кода (MDA) failedQI активируется при попытке среды выполнения вызвать класс QueryInterface в указателе интерфейса СОМ от имени вызываемой оболочки среды выполнения (RCW) и при вызове QueryInterface происходит сбой.

Признаки

Не удается выполнить приведение типов для вызываемой оболочки среды выполнения либо происходит непредвиденный сбой при вызове модели СОМ из вызываемой оболочки среды выполнения.

Причина

  • Вызов выполняется из неправильного контекста.

  • Зарегистрированному прокси не удается выполнить вызов класса QueryInterface, поскольку вызов выполнялся из неправильного контекста.

  • Прокси, принадлежащие OLE, возвращают значение сбоя HRESULT.

Решение

Правила COM см. в документации MSDN.

Влияние на среду выполнения

Если не удается выполнить вызов класса QueryInterface, контекст переключается и выполняется повторный вызов QueryInterface, чтобы подтвердить, что проблема заключалась в неверном контексте.

Output

Управляемое имя интерфейса, идентификатор GUID интерфейса и значение сбоя HRESULT.

Конфигурация

<mdaConfig>
  <assistants>
    <failedQI/>
  </assistants>
</mdaConfig>

См. также

Ссылки

MarshalAsAttribute

Основные понятия

Диагностика ошибок посредством управляемых помощников по отладке

Маршалинг взаимодействия

Другие ресурсы

Взаимодействие