failedQI MDA

当运行时为一个运行时可调用包装 (RCW) 对 COM 接口指针调用 QueryInterface 时,如果 QueryInterface 调用失败,则将激活 failedQI 托管调试助手 (MDA)。

症状

对 RCW 的强制转换失败,或从 RCW 对 COM 的调用意外失败。

原因

  • 调用是从错误的上下文中发出的。

  • 注册的代理无法进行 QueryInterface 调用,因为该调用是在错误的上下文中发出的。

  • OLE 拥有的代理返回失败的 HRESULT。

解决方法

有关 COM 规则,请参见 MSDN 文档。

对运行时的影响

如果 QueryInterface 调用失败,则切换上下文并重试 QueryInterface 调用,检查一下故障是不是因为上下文不正确造成的。

Output

接口的托管名称、接口的 GUID 和故障的 HRESULT。

配置

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

请参见

参考

MarshalAsAttribute

概念

使用托管调试助手诊断错误

互操作封送处理

其他资源

互操作性