为什么在机器上创建CLSID_CaptureGraphBuilder2实例总是失败

发布于 2024-08-31 03:58:40 字数 916 浏览 8 评论 0原文

这真是一个奇怪的问题,下面的机器信息来自DXDiag。没有报错,但是在机器上创建CLSID_CaptureGraphBuilder2实例总是失败。创建CLSID_FilterGraph就可以了。在创建 CLSID_CaptureGraphBuilder2 之前,我调用了 CoInitialize 并创建了 CLSID_FilterGraph。只有本机有错误,与该接口相关的dll是什么或者之前需要调用什么函数才能使其工作?提前致谢。


系统信息

本报告发布时间:2010年4月24日 09:46:58 机器名称: TURION 操作系统:Windows XP 家庭版(5.1,内部版本 2600)Service Pack 3 (2600.xpsp_sp3_qfe.100216-1510) 语言:日语(区域设置:日语) 系统制造商:由OEM填写 系统型号:MS-7145 BIOS:默认系统 BIOS 处理器:AMD Turion(tm) 64 移动技术 MT-30、MMX、3DNow、~1.6GHz 内存:768MB RAM 页面文件:已用 376MB,可用 1401MB Windows 目录:C:\WINDOWS DirectX 版本:DirectX 9.0c (4.09.0000.0904) DX 设置参数:未找到 DxDiag 版本:5.03.2600.5512 32 位 Unicode


DxDiag 注释

DirectX 文件选项卡:未发现问题。 显示选项卡 1:未发现问题。 声音选项卡 1:未发现问题。 声音选项卡 2:未发现问题。 音乐选项卡:没有发现问题。 输入选项卡:未发现问题。 网络选项卡:未发现问题。

It's a real strange issue, the machine information below is from DXDiag. There is no error reported, but create CLSID_CaptureGraphBuilder2 instance always failed in the machine. It's okay to create CLSID_FilterGraph. Before create CLSID_CaptureGraphBuilder2, I have called CoInitialize and created CLSID_FilterGraph. Only this machine has the error, what dll related with this interface or any function needed to call before to make it work? Thanks in advance.


System Information

Time of this report: 4/24/2010, 09:46:58
Machine name: TURION
Operating System: Windows XP Home Edition (5.1, Build 2600) Service Pack 3 (2600.xpsp_sp3_qfe.100216-1510)
Language: Japanese (Regional Setting: Japanese)
System Manufacturer: To Be Filled By O.E.M.
System Model: MS-7145
BIOS: Default System BIOS
Processor: AMD Turion(tm) 64 Mobile Technology MT-30, MMX, 3DNow, ~1.6GHz
Memory: 768MB RAM
Page File: 376MB used, 1401MB available
Windows Dir: C:\WINDOWS
DirectX Version: DirectX 9.0c (4.09.0000.0904)
DX Setup Parameters: Not found
DxDiag Version: 5.03.2600.5512 32bit Unicode


DxDiag Notes

DirectX Files Tab: No problems found.
Display Tab 1: No problems found.
Sound Tab 1: No problems found.
Sound Tab 2: No problems found.
Music Tab: No problems found.
Input Tab: No problems found.
Network Tab: No problems found.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿港小镇 2024-09-07 03:58:40

不要将 CoCreateInstance 称为 CLSID_FilterGraph ..这是毫无意义的。 CoCreateInstance CLSID_CreateCaptureGraph2 并发布您在 CoCreateInstance 中使用的代码以及您返回的任何 HRESULT 值。

以下代码“应该”起作用:

ICaptureGraphBuilder2* pCapture = NULL;
HRESULT hr = CoCreateInstance( CLSID_CaptureGraphBuilder, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**) &pCapture) ;

如果它没有查找 hr 中返回的 HRESULT 并告诉我们它是什么(或自己查找)。

除了无效参数之外,唯一可能让您失败的事情是该类未注册。如果是这样,那么这就是相当严重的错误......这应该是不可能的。

Don't call CoCreateInstance a CLSID_FilterGraph .. this is pointless. CoCreateInstance CLSID_CreateCaptureGraph2 and post up the code you use in CoCreateInstance and any HRESULT value you get returned.

The following code "should" work:

ICaptureGraphBuilder2* pCapture = NULL;
HRESULT hr = CoCreateInstance( CLSID_CaptureGraphBuilder, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**) &pCapture) ;

If it doesn't look up the HRESULT returned in hr and tell us what it is (or look it up yourself).

Other than invalid parameters the only thing that ought to be able to fail you here is that the class isn't registered. If so then this is something fairly majorly amiss ... this ought not to be possible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文