自动化客户端:使用类型库
如果客户端要操作服务器的对象,自动化客户端必须具有有关服务器对象的属性和方法的信息。 属性具有数据类型;方法通常返回值并接受参数。 客户端需要有关所有这些数据类型的信息,以便静态绑定到服务器对象类型。
可以通过多种方式了解此类型信息。 建议的方法是创建类型库。
有关 MkTypLib 的信息,请参阅 Windows SDK。
Visual C++ 可以读取类型库文件,并创建派生自 COleDispatchDriver 的调度类。 该类的对象具有复制服务器对象的属性和操作。 应用程序调用此对象的属性和操作,以及继承自 COleDispatchDriver
的功能将这些调用路由到 OLE 系统,该系统反过来又将这些调用路由到服务器对象。
如果选择在创建项目时包含 Azure 自动化,Visual C++ 会自动维护此类型库文件。 在每个生成过程中,将使用 MkTypLib 生成 .tlb 文件。
从类型库 (.tlb) 文件创建调度类
在“类视图”或“解决方案资源管理器”中,右键单击项目,然后单击“添加”,然后单击快捷菜单上的“添加类”。
在“添加类”对话框中,选择左窗格中的 Visual C++/MFC 文件夹。 从右窗格中选择 “来自 TypeLib 的 MFC 类”图标,然后单击“打开”。
在“从 Typelib 向导中添加类”对话框中,从 “可用类型库”下拉列表中选择一个类型库。 “接口”框显示可用于所选类型库的接口。
注意
可以从多个类型库中选择接口。
若要选择接口,请双击它们,或单击“添加”按钮。 执行此操作时,调度类的名称将显示在“生成的类”框中。 可以在
Class
框中编辑类名。“文件”框显示将声明类的文件。 (也可以编辑此文件名)。 如果希望将标头和实现信息写入到现有文件或项目目录以外的目录中,还可以使用浏览按钮来选择其他文件。
注意
所选接口的所有调度类都将放入此处指定的文件中。 如果要在单独的标头中声明接口,则必须针对要创建的每个头文件运行此向导。
注意
某些类型库信息可能存储在具有 .DLL、.OCX、或 OLB 文件扩展名的文件中。
单击“完成” 。
然后,向导将使用指定的类和文件名为调度类编写代码。