描述:
CLSID是唯一的,ProgID 不是唯一的,那从ProgID得到CLSID,能保证它的正确性吗
解决方案1:
ProgID和CLSID之间可以通过ProgIDFromCLSID,和CLSIDFromProgID相互转换。
这样从理论上面来说是一一对应的,如果你硬是把俩个接口接口的ProgID改成一样,会出现什么问题呢,我没有试过,楼主可以试试,看看会出问题不!?
这个问题问的好,我也觉得有可能
解决方案3: 你确定ProgID 是不唯一的吗?应该不会吧!
下面是有CLSID,如果没有ProgID
Given a ProgID, CLSIDFromProgID looks up its associated CLSID in the registry. If the ProgID cannot be found in the registry, CLSIDFromProgID creates an OLE 1 CLSID for the ProgID and a CLSID entry in the registry. Because of the restrictions placed on OLE 1 CLSID values, CLSIDFromProgID and CLSIDFromString are the only two functions that can be used to generate a CLSID for an OLE 1 object.
正因为ProgID没有办法保证唯一性,才使用CLSID的
解决方案5:ProgID 不是唯一的?不可能吧?
您可能想查找下面的文章:
- INTERFACE接口的clsid是怎么一回事?
- ProgIDFromCLSID相关
- GUID,CLSID,PROGID之间的关系?
- 知道com对象的clsid,不知道它的其它接口的id,如何访问这些接口?
- 如何实现COM中类的嵌套??
- 为什么这个CLSID_WavDestFilter注册成功了,但是不能用
- 我编的ocx依赖于某些非标准dll,打包成cab时需要在inf中写入这些dll的clsid吗?
- CLSID怎么和对应的类联系起来啊?高手帮忙!
- 做activex插件的cab包时,inf文件中的clsid应该是idl文件中的哪一个?或者随便编一个都没关系?
- 我封装的dll如何知道clsid?