COM学习笔记(四):注册表、内存管理、GUID<->字符串

本文是关于COM的学习笔记,主要讲解了如何使用注册表API进行组件注册,COM库的初始化与释放,以及COM内存管理中CoTaskMemAlloc和CoTaskMemFree的使用。此外,还介绍了在不同系统下将GUID转换为字符串的方法,如StringFromGUID2和CLSIDFromString等。
摘要由CSDN通过智能技术生成
注册表中HKEY_CLASSES_ROOT分支的大多数子关键字是ProgID。ProgID指的是程序员给某个CLSID指定的一个程序员易记的名称。
ProgID格式约定:<Program>.<Component>.<Version>
COM库提供的两个函数CLSIDFromProgIDProgIDFromCLSID,可完成CLSID和ProgID之间的转换。
CLSID clsid;
CLSIDFromProgID(L"Helicopter.TailRot",&clsid);
自注册:有了注册表之后,又如何在其中发布关于组件的信息呢?由于DLL知道它所包含的组件,因此DLL可以完成这些组件的注册。但由于DLL本身并不能完成任何事情,因此在DLL中一定要输出如下两个函数:
STDAPI DllRegisterServer();
STDAPI DllUnregisterServer();

STDAPI 在OBJBASE.H中定义展开为  extern "C" HRESULT __stdcall

DllRegisterServer的实现实际上是通过直接调用注册表的函数来完成的。为注册某个组件或取消某个组件的注册,只需用到6个函数:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值