A
arong2008
Unregistered / Unconfirmed
GUEST, unregistred user!
[red]基本思路:[/red]在中间层维持一个客户端事件类对象列表,触发事件时就顺序调用客户端的事件类方法。
[red]具体实现:[/red]中间层的有一个全局的流对象列表,当有一个新的客户端注册事件时,就增加一个流对象,再用的CoMarshalInterface(或CoMarshalInterThreadInterfaceInStream)函数把客户端事件类对像存入流中,触发事件时再用CoUnMarshalInterface(或CoGetInterfaceAndReleaseStream)从流对象中取出接口调用方法。
[red]问题:[/red]执行客户端事件注册都已成功,当触发事件时,调用CoUnMarshalInterface(或CoGetInterfaceAndReleaseStream)函数时返回STG_E_READFAULT错误,错误消息是:“执行读取操作时发生磁盘错误”
[red]具体实现:[/red]中间层的有一个全局的流对象列表,当有一个新的客户端注册事件时,就增加一个流对象,再用的CoMarshalInterface(或CoMarshalInterThreadInterfaceInStream)函数把客户端事件类对像存入流中,触发事件时再用CoUnMarshalInterface(或CoGetInterfaceAndReleaseStream)从流对象中取出接口调用方法。
[red]问题:[/red]执行客户端事件注册都已成功,当触发事件时,调用CoUnMarshalInterface(或CoGetInterfaceAndReleaseStream)函数时返回STG_E_READFAULT错误,错误消息是:“执行读取操作时发生磁盘错误”