INPROC 示例:演示进程内自动化服务器应用程序(C++ 示例)
更新:2007 年 11 月
INPROC 为进程内自动化服务器。与提供的其他自动化服务器的示例不同,INPROC 可以作为动态链接库 (DLL) 加载到客户端的地址空间中。该示例使用本机编译器 COM 支持。有关更多信息,请参见 MFC INPROC 示例。
安全说明: |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 |
获取示例和安装示例的说明:
在 Visual Studio 的“帮助”菜单上,单击“示例”。
有关更多信息,请参见定位示例文件。
示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。
还可以在计算机的硬盘上查找示例。默认情况下,将示例和自述文件复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。
生成并运行示例
生成并运行此示例
打开应用程序 inproc.sln。
在“生成”菜单上,单击“生成解决方案”。
注册服务器:
将 server\inproc.reg 中的路径更改为刚生成的 inproc.dll 的路径。
运行 regedit server\inproc.reg。
将 ipdrive 项目设置为启动项目(右键单击该项目节点,然后单击“设为启动项目”),然后运行该应用程序。
与 MFC 版本的比较
此示例和同名 MFC 示例的区别在于:
COleDispatchDriver 类不再是必需的。而是使用 #import 导入类型库。
_bstr_t 和 _variant_t 包装类用于简化 BSTR 和 VARIANT 类型的操作。
__declspec(property) 用于简化 COM 对象属性的赋值操作。
现在,COM 错误是使用 _com_error 类处理的。
使用 Visual C++ 本机编译器 COM 支持,产生的示例代码更简短、更高效。基于 MFC 的 INPROC 示例只使用调度接口。将此示例与 MFC 版本相比较,找出源代码的差异。
关键字
此示例说明以下关键字:
dispinterface、#import、_com_ptr_t、_variant_t、_bstr_t、_com_error