如何将 [D]COM 调用记录到模块中



有没有办法监视和记录带有参数的COM调用,这些调用被输入到特定的EXE/DLL模块中,而无需显式地将日志记录功能添加到模块本身?我正在考虑如何在 Spy++ 中跟踪 Windows 消息,但对于 COM。

动机是记录用于诊断和自动测试目的的呼叫 - 例如,单击客户端PC上窗口上的按钮,监视发送到服务器模块的COM调用,然后"重播"这些呼叫,而无需客户端PC。

如果存在可以做到这一点的工具,那就太好了。如果不是,是否可以写,如果是,如何写?

COM 方法的调用者只是调用具有约定的函数。 参数等,并且调用方和被调用方之间没有中间层,除非代理/存根对封送调用。即使在后一种情况下,也有标准的方式来挂接用于日志记录目的的调用,您无需进行特定的准备即可完成。总而言之,您需要注意跟踪呼叫和诊断自己。In 可以将每个感兴趣的方法直接记录在 prolog 中,或者您可以将对象/接口包装到自定义的中间层中,该中间层跟踪调用并将其进一步传递给预期的被调用方(例如,如此处所述)。

最新更新