windows - 获取 DLL 文件的 CLSID?

标签 windows com dll clsid

我想创建一个小应用程序来从注册表中添加和删除用户定义的上下文菜单条目。为此,我需要以某种方式获取任意 DLL 的 CLSID,以便在编写新条目之前备份以前的条目(如果它们存在)。

尽管 regsrv32 以某种方式设法创建了这个神奇的数字,但我自己没有找到任何方法来获得该数字。

我希望有比这更好的东西:

  1. 为 DLL 名称扫描注册表
  2. 如果没有找到,注册,重新扫描,然后重新注销

如果 DLL 已重命名,我可以看出问题的可能性。

最佳答案

您可以考虑调用 LoadTypeLibEx在指定 REGKIND_NONE 的 DLL 上,然后检查获取 TypeLibInfo通过 ITypeLib 可获得信息接口(interface)传回给你。

MSDN 上有一些关于这类事情的信息.这是一个以 VB6 为中心的旧链接,但包含有关以这种方式检查 COM 组件的有用信息。

关于windows - 获取 DLL 文件的 CLSID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280247/

相关文章:

windows - 获取 %ALLUSERSPROFILE% 的 NSIS 变量

java - 使用 Java 中的 COM .dll,而不使用 regsvr32 注册库

c++ - 动态调用 DLL C++

c - 防止启动程序时弹出终端窗口

python - 为什么 Selenium 的响应没有 sessionId?

c# - Windows 服务中 COM 对象的事件处理

c# - Excel COM 互操作 - 为什么返回类型通常是动态的?

dynamic - 从 Azure Blob 加载依赖的 DLL

c++ - 无法链接 mysql5.1.39\bin\libmySQL.dll

c++ - 如何在不同的线程上调用 glReadPixels?