IActionOnCLREvent::OnEvent 方法

对已经通过调用 ICLROnEventManager::RegisterActionOnEvent 方法进行注册的事件执行回调。

HRESULT OnEvent (
    [in] EClrEvent event,
    [in] PVOID     data
);

参数

  • event
    [in] EClrEvent 的值之一,指示事件的类型。

  • data
    [in] 一个指针,该指针指向包含有关 event 详细信息的对象。

返回值

HRESULT

说明

S_OK

OnEvent 已成功返回。

HOST_E_CLRNOTAVAILABLE

公共语言运行时 (CLR) 尚未加载到进程中或者处于无法运行托管代码或成功处理调用的状态。

HOST_E_TIMEOUT

调用超时。

HOST_E_NOT_OWNER

调用方不拥有锁。

HOST_E_ABANDONED

事件在被阻止的线程或纤程正在等待它时被取消。

E_FAIL

发生了未知的灾难性故障。 如果某方法返回 E_FAIL,CLR 便无法再在进程中使用。 对任何宿主方法的后续调用都将返回 HOST_E_CLRNOTAVAILABLE。

备注

data 参数是一个指针,指向未指定类型的对象。 如果 event 参数为 Event_DomainUnload,则 data 是卸载的 AppDomain 的数字标识符。 宿主可将此标识符用作密钥以采取合适的操作。

如果 event 为 Event_MDAFired,则 data 是一个指针,该指针指向包含托管调试助手 (MDA) 的输出消息的 MDAInfo 实例。 MDA 是 CLR 的一项功能,能通过生成有关事件的 XML 消息帮助开发人员进行调试,如果没有该功能则很难捕获此类事件。 此消息在托管和非托管代码之间进行调试转换时非常有用。 有关更多信息,请参见 使用托管调试助手诊断错误

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**MSCorEE.h

**库:**作为一项资源包含在 MSCorEE.dll 中

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

EClrEvent 枚举

IActionOnCLREvent 接口

ICLRControl 接口

ICLROnEventManager 接口

MDAInfo 结构

概念

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