COM学习笔记

《COM技术内幕》

COM关注的注册表位置
HKEY_CLASSES_ROOT
- CLSID
 - InprocServer32
CLSID和文件名

HKEY_CLASSES_ROOT包含:(结构)
1. 各种应用程序注册的文件后缀,后部分是
2. ProgID
3. AppID
4. 组件类别
5. Interface
6. Licenses
7. TypeLib

ProgID:
程序员给某个CLSID指定的一个程序员易记的名字[某些编程语言无法使用结构;progID可能重复]
约定格式:<Program>.<Component>.<Version>
主要作用:获取CLSID
COM库转换函数:CLSIDFromProgID、ProgIDFromCLSID
自注册:DLL需要导出两个函数:DLLRegisterServer、DLLUnregisterServer
 工具:REGSVR32.EXE

CATID

COM库函数:
所有的COM组件和客户都需要完成一些相同的操作。为保证这些操作是按照标准的并且是兼容的方法完成的,COM定义了一个函数库以实现所有这些操作。
此函数库是在OLE32.DLL中实现的。在使用静态链接时,可以使用OLE32.LIB。
在使用COM库中的其他函数(除CoBuildVersion外,此函数将返回COM库的版本号)之前,进程必须先调用CoInitialize来初始化COM库函数。当进程不再需要使用COM库函数时,必须调用CoUninitialize。

调用OleInitialize之后无需调用CoInitialize。但如果没有用到OLE特性,而调用Ole*,将造成资源浪费

CLSID组件
IID接口

原文地址:https://www.cnblogs.com/andy65007/p/1220971.html