问题标签 [clsid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1176 浏览

com - 发现已注册的 COM 组件

有没有办法通过解析注册表中可用的信息来确定注册的 COM 组件是否可创建为独立组件?特别是通过在 HKCR/ClsId 中找到的信息?

我的系统在此键中有超过 12,000 个条目,并且我已经排除了任何没有 InProcServer32 或 LocalServer32 键的项目,但这仅消除了大约一半的项目。我相信还有几千个不是可创建的对象。我真的不想尝试对它们中的每一个都执行 CreateObject() 来区分可以创建的对象和不能创建的对象。有没有更有效的方法?

0 投票
1 回答
802 浏览

.net - COM CLSID CodeBase 键

当为 COM 互操作注册 .net 程序集时,注册表中有一个指向可执行文件的 CodeBase 键。

我的问题是:CodeBase 键是 .NET 特有的,还是所有注册组件都应该拥有的通用 COM 键?

0 投票
2 回答
5437 浏览

c# - 使用 Interop.MODI 引发 0x80040154 异常

我目前正在尝试实现 Interop.MODI.dll(来自 Microsoft Office)以使用它应该提供的 Image -> Text 功能。但是做的时候

我得到:

“带有 CLSID {40942A6C-1520-4132-BDF8-BDC1F71F547B} 的 COMException 80040154”。

我尝试过什么来解决这个问题?

我使用 regasm 工具注册了 DLL:-问题仍然存在

我尝试将 BuildPlatform 设置为 x86:-问题仍然存在

我使用带有 Windows 7 Professional 64Bit 的 Visual Studio 2010 Ultimate 并安装了 Microsoft Office 2007

编辑:我找到了解决方案:

我需要将“MS-Office-Document-Imaging”功能安装到 MS Office 以使其正常工作。(软件 -> MS Office(右键单击 -> 编辑)-> 添加功能 -> Microsoft Office Document Imaging)

0 投票
1 回答
767 浏览

permissions - Outlook 和注册表项权限问题

我正在以编程方式从 Outlook 获取邮件。当我从控制台运行程序时,它运行良好。但我试图通过任务调度程序通过提供“无论用户是否登录都运行”选项来自动化它,并收到一条错误消息:

检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败。

我在网上搜索了它,发现有人告诉我要为密钥添加权限,然后我开始使用注册表项并通过转到 Permission 属性取消选中一个复选框,它会自动删除所有权限,现在密钥是任何人都无法访问。现在我的控制台应用程序也给出了同样的错误。以下是部分屏幕截图:

在此处输入图像描述

在此处输入图像描述

如您所见,单击该键时会出现“访问被拒绝”的错误消息,当我尝试添加权限时,它会发出另一个警告。如果我单击确定,它会打开权限弹出窗口,但不允许添加任何用户。如何解决此注册表项问题?有没有办法通过删除损坏的密钥来重新注册密钥?

0 投票
1 回答
314 浏览

c++ - X64 中的 Flash ActiveX

我正在尝试将我的应用程序从 x86 移动到 x64。而且其中大部分似乎运行良好,但是,我的应用程序中有一个 Flash Player ActiveX 控件,并且在 x64 构建中创建它失败了。

有什么想法可能导致这种情况吗?对于 64 位,我需要不同的 clsid 吗?

添加了 Flash Player 11 64 位支持,所以我认为这应该可以。

0 投票
3 回答
1320 浏览

windows - 如何在 WiX 片段中获得编辑注册表 CLSID 的提升权限

我正在尝试将 Windows 桌面搜索设置为使用不同于系统默认过滤器(nlhtml.dll)的不同 html 过滤器。当我查找 PersistentHandler( HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html\PersistentHandler) 时,它指向HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{eec97550-47a9-11cf-b952-00aa0051fe20}.

我想改变上面clsid的值。以下是 WiX 片段

但是值没有改变。

关于许可;只有 TrustedInstaller 可以完全控制此条目。管理员、SYSTEM 和其他用户只有读取权限。

如何获得提升权限以使用 WiX 进行此注册表更改。这是一个更大项目的一部分,我只编辑 WiX 脚本的片段 ( <Fragment>.. </Fragment>)。

谢谢你。

0 投票
2 回答
1724 浏览

wix - 使用 WiX 将新的 CLSID 添加到 Windows 注册表

我正在尝试使用 Windows 桌面搜索注册一个新过滤器。实现此目的的理想方法是使用现有的持久处理程序 CLSID 注册新过滤器。但这无法完成,因为 .html PersistentHandler CLSID{eec97550-47a9-11cf-b952-00aa0051fe20}受 WRP 保护(有关问题的更多信息)。

作为一种解决方法,我正在尝试创建一个不同的 CLSID,它与{eec97550-47a9-11cf-b952-00aa0051fe20}.

这是我正在关注的示例代码。我对 WiX 和编辑 Windows 注册表很陌生。

有人可以帮我解决这些问题吗?

  • 如何创建不附属于任何文件的 CLSID?由于我的新 CLSID 正在完成上述 CLSID 的工作,我认为应该是这样。

  • 如何创建一个名为 PersistentAddinsRegistered 而不是 InprocSever32 的子目录

谢谢

0 投票
1 回答
1051 浏览

c++ - 检查 DLL 是否已注册

我正在尝试使用 GetClassFile 函数将 DLL 名称作为参数传递并期望该函数返回 CLSID。然后使用 CoCreateInstance,我可以检查 dll 是否已注册。

GetClassFile()即使传递已注册的 DLL,我也无法获得有效的回报。

0 投票
1 回答
844 浏览

c++ - CoGetClassObject 返回错误

我想阅读 Windows 联系人(Windows 7 通讯簿),但 CoGetClassObject 返回错误,我不知道为什么?

我的代码是:

它返回“错误:-2147221008”

如果有人对我有建议,那就太好了!

丹尼斯

PS详细信息:基于http://msdn.microsoft.com/en-us/library/ms735866.aspx(这是相当错误的)我尝试自己做,但函数CoGetClassObject返回错误,我不知道为什么?

0 投票
1 回答
933 浏览

activex - 是否有 x64 版本的 MsStkPrp.dll

我正在将 ATL 控件移植到 64 位。该控件在其属性对话框中使用 Stock 属性页(CLSID_StockFontPage、CLSID_StockColorPage)。

为 x64 重新编译后,颜色和字体选项卡丢失(因为 MsStkPrp.dll 是 32 位的)。是否有 64 位版本的 dll,或者是否有更好的方法在 ATL ActiveX 控件中实现字体和颜色?