手机版

COM编程入门(14)

发布时间:2021-06-06   来源:未知    
字号:

COM编程入门,十分浅显易懂

走马观花看COM服务器——描述COM服务器的基本要求 描述IUnknown之方法的目的 AddRef() 和 Release() 一个定制接口的例子——例子代码示范了上述概念 来测试COM服务器

走马观花看COM服务器

本文我们将讨论最简单的一种COM服务器,进程内服务器(in-process)。“进程内”意思是服务器被加载到客户端程序的进程空间。进程内服务器都是DLLs,并且与客户端程序同在一台计算机上。进程内服务器在被COM库使用之前必须满足两个条件或标准:

1. 必须正确在注册表的HKEY_CLASSES_ROOT\CLSID 键值下注册;

2. 必须输出DllGetClassObject()函数;

这是进程内服务器运行的最小需求。在注册表的HKEY_CLASSES_ROOT\CLSID 键值下必须创建一个键值,用服务器的GUID作为键名字,这个键值必须包含两个键值清单,一是服务器的位置,二是服务器的线程模型。 COM库对

DllGetClassObject() 函数进行调用是在CoCreateInstance() API中完成的。

还有三个函数通常也要输出:

DllCanUnloadNow():由COM库调用来检查是否服务器被从内存中卸载; DllRegisterServer():由类似RegSvr32的安装实用程序调用来注册服务

器;

DllUnregisterServer():由卸载实用程序调用来删除由

DllRegisterServer()创建的注册表入口;

另外,只输出正确的函数是不够的——还必须遵循COM规范,这样COM库和客户端程序才能使用服务器。

服务器生命其管理

DLL服务器的一个与众不同的方面是控制它们被加载的时间。“标准的”DLLs被动的并且是在应用程序使用它们时被随机加载/或卸载。从技术上 讲,DLL服

COM编程入门(14).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)