访问应用程序的COm服务器

时间:2013-12-04 19:51:28

标签: mfc

我使用第三方软树控件编写了一个基于MFC应用程序的简单对话框。我正在尝试为应用程序编写自动化客户端。为此,我为基于对话框的应用程序示例应用程序编写了一个单例进程外COM测试代理。 Com服务器向自动化客户端公开Run方法。此Run方法访问mfc应用程序的内容,实际上模仿GUI上的单击。我面临的问题是当自动化客户端尝试在Com对象上调用Run方法时,它能够对其进行invioke,但是当Run方法尝试访问控件的方法(如getCaretInedx)时崩溃。

我已尝试缓存异常并将消息记录到文件中但无法执行此操作。

我的问题是:com对象访问应用程序的方式有什么限制吗?或者我错过了什么来促进这一点。

非常感谢任何帮助或指针。由于这是我在COM中的第一次,我未能取得很大进展。

由于

1 个答案:

答案 0 :(得分:0)

您客户的窗口是否真的被创建了?如果没有,则hwnd不存在,这可能就是它崩溃的原因。此外,您的客户端可能在启动时隐藏在另一个窗口后面,并且可能表现出与用户通过常规交互调用它时不同的行为。

通常,调用依赖于COM服务器或从COM服务器与UI交互的代码充满了危险,特别是当代码没有首先写入时,表现得像这样。大多数用户界面并不是对HWND现有的等等。