ProgID

举报
小糖饼最甜呀 发表于 2022/01/14 10:01:00 2022/01/14
【摘要】 UUID,GUID,CLSID,ProgID

UUID

  UUID(Universally Unique Identifier)是通用唯一识别码,是一种软件建构的标准。
  UUID是16字节128位长的数字,通常以36字节的字符串表示。也就是说,既可以是一个128bit的数字,也可以表现为32个16进制的字符,中间用”-”分割,例如:00000000-0000-0000-0000-000000000000。

GUID

  GUID(Globally Unique Identifier)是全局唯一标示符,在Windows系统中也称之为Class ID,缩写为CLSID。

CLSID

  CLSID(Class Identifier)是类标识符。Windows使用GUID作为CLSID。每一个COM组件在Windows注册表中都有一个CLSID,并且不能重名,以便程序加载。
  在微软的COM中 GUID 和 UUID、CLSID、IID 是一回事,只不过各自代表的意义不同:

UUID : 代表COM组件
CLSID : 代表COM组件中的类
IID : 代表COM组件类中的导出接口

CLSID 的结构定义

typedef struct _GUID {
  DWORD Data1; // 随机数
  WORD Data2;  // 和时间相关
  WORD Data3;  // 和时间相关
  BYTE Data4[8]; // 和网卡MAC相关
 
} GUID;
 
typedef GUID CLSID; // 组件ID
typedef GUID IID;   // 接口ID
#define REFCLSID const CLSID &

ProgID

  ProgID(Programmatic Identifier)是程序标识符。ProgID是一串字符串,提供CLSID的可读版本,而CLSID用于标识COM/ActiveX对象。CLSID和ProgID其实是一个概念的两种不同的表示形式。ProgID通过注册表和CLSID关联。
  ProgID命名格式为:<program>.<component>.<version>。如果不为ProgID指定版本,则默认版本为1。
  ProgID的主要作用是获取相应的CLSID,ProgID和CLSID的互相转换可以通过CLSIDFromProgID与ProgIDFromCLSID函数。


学习记录

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。