使用C ++或C访问应用程序的COM接口

时间:2009-01-04 00:50:31

标签: c++ c com interface

在回答问题时,我怎样才能(或找到更多信息)自动化某些功能而无需用户干预,使用以下内容从C ++(或C):

  • ATL
  • 或直接在C / C ++中的自动化代码

此致

2 个答案:

答案 0 :(得分:3)

如果应用程序公开类型库(以及Microsoft Office应用程序),那么您可以使用#import关键字从Microsoft C ++获取它。这将为应用程序公开的COM接口创建C ++包装器。

类型库通常是.TLB文件,但它们经常作为Win32资源嵌入可执行文件中。

要了解应用程序是否以这种方式公开其功能,您可能需要查阅特定应用程序的文档,因为发现(和理解)类型库非常复杂。

Windows SDK包含一个工具“OLE / COM查看器”,可以在注册表中显示COM对象的类型库信息,也可以显示.TLB文件或资源。

如果您想使用应用程序,VBScript(或JScript)可以为您提供快速的实验方法。它们都能够使用OLE自动化接口。

答案 1 :(得分:0)

通过自动化,您意味着能够拥有一个运行应用程序,与之通信并执行某些功能的脚本。像某种自动测试脚本或类似的东西。

为此,最简单的方法(如果应用程序已经存在,如Word,Excel,Visual Studio等)是用支持DCOM的语言编写脚本(例如Ruby及其WIN32OLE库)并使用它来打电话给申请表。

如果您正在开发一个应用程序然后变得更加棘手,您可以将现有的脚本语言嵌入到您的可执行文件中,并提供一种与之接口的方法。也许有一个命令行选项可以在应用程序的上下文中自动运行脚本。或者如果你想做一些认真的开发工作,你可以尝试添加DCOM(我没有尝试过,所以我不知道涉及多少工作)。