问题标签 [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 回答
1488 浏览

directshow - 在 DirectShow 之外使用 DirectShow 过滤器?

我目前正在与 Windows Media Foundation 打交道。但是,由于 Microsoft H.264 解码器的一些问题和一些缺少自定义格式的解码器,我想知道是否可以直接使用 CLSID 实例化 DirectShow 解码器,并围绕它构建一个暴露 IMFTransform 的代理为媒体基金会获取解码器。所以这是我的问题:

我可以直接实例化 Directshow 过滤器(最好是解码器)并将它们用于解码(即放置一些压缩帧并获得未压缩的帧)以创建 MFT?

我知道如何使用其 CLSID 实例化过滤器本身。但是,我不知道如何使用实际的解码功能。

任何想法,提示,链接都将不胜感激。谢谢,

J。

0 投票
1 回答
650 浏览

visual-c++ - 如何获取 CLSID 变量名称,如 MSVC?

当您调试程序并将鼠标悬停在 GUID 变量上时,MSVC 会检索变量名称(例如 CLSID_FilterGraph)和人名(例如过滤器图形对象)。

它通过查看 HKCR\CLSID\GUID 来执行第二个操作 - 但它从哪里获取变量名?它不在注册表中。

有任何想法吗?

0 投票
1 回答
126 浏览

windows - 在注册表中创建修改后的自己的 Com 对象

我想修改注册表中的 Internet Explorer CLSID 元素: (HKEY_CLASSES_ROOT\CLSID{0002DF01-0000-0000-C000-000000000046} )

是否可以复制此条目并替换 GUID 并创建新别名?我在哪里可以定义一个新的别名?(稍后我想在 PowerShell 中打开这个 Com 对象)

0 投票
1 回答
1637 浏览

com - COM TreatAs 如何(以及何时)起作用?

我正在查看vsjitdebugger.exe使用Process Monitor的注册表访问,我注意到有时它以以下方式查询注册表(省略了一些信息):

MSDN 上有关 TreatAs 的信息表明,它允许为另一个 COM 服务器指定 GUID,而不是原始的。

我无法找到有关此密钥的更多信息,也无法在我自己的 COM 对象上使用它:我有同一个 COM 对象的两个不同实现(在 2 个单独的 DLL 中,有 2 个单独的 GUID) ,并且当我的进程通过 GUID 创建对象时,我希望它改为创建另一个对象(通过 TreatAs 中指定的 GUID)。不幸的是,Windows 似乎立即尝试查询HKCU\Software\Classes\CLSID\{my-guid}\InprocServer32,而不是首先寻找 TreatAs。

我的问题基本上是关于 TreatAs 的规则,何时以及如何查询它?

0 投票
1 回答
1918 浏览

c# - 从 CLSID 动态加载 ActiveX 控件

我正在解析一些第三方软件“脚本”,它会根据其内容生成 GUI 表单,我想在 C# 程序中读取脚本并产生类似的输出,这是一个示例脚本:

我感兴趣的属性是BEGIN CONTROLBEGIN PROPERTY因为这些表示 ActiveX 控件的开始及其属性。

我的问题:如何通过它的 CLSID 加载这个 ActiveX 控件并设置它的属性?Type.GetTypeFromCLSID似乎是我想要的,当我使用它时它不会抛出任何异常,Activator.CreateInstance(Type)所以它必须创建一个有效的实例,但是一个集合是属性,然后将这个控件“绘制”到 Windows 窗体?

谢谢。

0 投票
3 回答
8265 浏览

c++ - GDI+ 是否有标准图像编码器 CLSID?

GDI+Image::Save方法需要一个 CLSID 参数来指定要使用的编码器。该文档指向一些示例代码,用于获取与特定 MIME 类型相关联的编码器,例如 image/jpeg 或 image/png。但是,我对复制半页函数只是为了支持 1 行调试帮助而犹豫不决,我将中间结果保存到磁盘。

不应该有标准编码器的标准 CLSID 列表吗?我在哪里可以找到这样的清单?我无法通过搜索 Microsoft 的包含文件找到一个。

0 投票
1 回答
2587 浏览

c# - COM 接口 Photoshop 兼容性问题

我们正在为 Photoshop 编写一个简单的 .NET C# COM 应用程序,它旨在在从 CS2 到 CS5 的所有版本以及介于两者之间的所有版本上运行。同样的应用程序也以 JavaScript 形式存在,它适用于所有上述版本,因为我们避免实现特定于版本的功能。

我们遇到的问题与 COM 接口有关。例如,如果我们的应用程序是使用 Photoshop CSx 中的 Interop.Photoshop DLL 编译的,则它不会在 Photoshop CSy 上运行。这似乎是因为注册表 CLSID 特定于每个版本的 Photoshop,导致我们的应用程序找不到正确的 COM 接口 DLL,如果在安装了与我们编译的不同版本的 Photoshop 的系统上运行(假设两个应用程序是 32 位的)。

如果这确实是问题所在,我们想知道是否可以使用 CSy CLSID 重新注册 Photoshop 版本 CSx 的 COM 接口,忽略版本之间功能可能不同的事实。

更具体的信息如下:

我们的主要 Photoshop.Application CLSID 位于注册表中:HKEY_CLASSES_ROOT\Photoshop.Application\CLSID 此 CLSID 必须与构建我们的应用程序的 CLSID 相匹配。例如,此 ID 在 CS5 和 CS5.1 之间有所不同。

我们今天唯一的解决方案是为特定版本的 Photoshop 构建我们的应用程序的特定版本,而这只有在我们安装了该特定应用程序版本的情况下才有可能。

我们得到的错误代码是 0x80040154,“检索具有 CLSID {116EE066-135E-4F63-8D0E-78F62705FBFC} 的组件的 COM 类工厂失败”。此应用程序是使用 CS5.1 构建的,但在 CS5.04 上运行导致无法找到 COM 接口。此 CLSID 特定于 CS5.1。总之,我们需要重新注册 COM 接口以匹配 CS5.04 的 CLSID,以便能够在该特定版本上运行我们的应用程序。这是可能的还是有其他方法?

非常感谢我们可以就此事获得的任何帮助或提示。

0 投票
0 回答
1295 浏览

c# - Throwing error on OpenFileDialog.Showdialog in c#.net

I am developing a windows application in XP machine.in my one form i have one text box for showing the selected file with path from openfiledialog box.and the other control is button to call the openfiledialog box.

When I cliked on the button to call the open dialog box i am getting the follwing error

Throwing error on button clicking to open the OpenFileDialog

rest of the form contains another controls like data grid and dropdowns.

Please help me to resolve this issue

Thanx in advance.

Regards, Sudarshan

Update

Here is my code on button click

0 投票
3 回答
15480 浏览

dll - regsvr32 不在注册表中创建任何条目

我在尝试注册 DLL 时遇到问题。我的操作系统是 Windows 7 (x64)。

我以两种不同的方式做到这一点:

1) 使用 regsvr32。我收到消息“DllRegisterServer ... succeedeed”,但在注册表中找不到我的 CLSID。(并且尝试使用此 CLSID 创建组件实例时出现“类未注册”错误)。在这种情况下,我知道永远不会调用 DllRegisterServer(因为我在此函数的开头创建了一个文本文件,但它不是创建)。

2) 显式加载我的 DLL 并调用 DllRegisterServer。在这种情况下,DllRegisterServer 返回 S_OK,但我仍然无法在注册表中找到我的 CLSID 并得到“类未注册”错误。

我确定代码是正确的(因为它不仅在我的操作系统上工作),所以问题似乎出在操作系统上。有没有人遇到过这样的问题?

0 投票
1 回答
1009 浏览

c++ - COM : 检索好的 CLSID

我对 CLSID 有一点问题。

我有一个(挂钩)函数,它在参数中有一个 REFCLSID。所以我想打印这个参数。

我做了:

但是在“output.txt”中,我只有一个 8 个字符的字符串,但我应该有一个字符串,例如:111111-2222-3333-4444-000000000000。

所以如果有人有想法......

谢谢。