gpt4 book ai didi

c++如何在运行时获取COM对象Coclass的progid

转载 作者:太空狗 更新时间:2023-10-29 20:44:21 25 4
gpt4 key购买 nike

我需要编写一个从 COM 对象动态提取 progid 的函数。

这可能吗?

最好的方法是什么?

编辑:我需要处理的所有组件类实现 IProvideClassInfo

最佳答案

首先,不能保证信息首先可用。即使您只是使用 ProgID 实例化了一个对象,您也可能无法取回它。

最简单的是查询IPersist 和其友(IPersistStream 等)接口(interface)之一,然后调用IPersist::GetClassID获取CLSID。然后使用 ProgIDFromCLSID 转换为 ProgID或通过注册表查找。

另一种选择是查询 IProvideClassInfoIProvideClassInfo2 以这种替代方式访问感兴趣的 CLSID。

第三个选项,如果以上两个都不起作用,则查询 IDispatch 并尝试打开类型库,然后循环查找 coclass 信息。

关于c++如何在运行时获取COM对象Coclass的progid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com