我目前正在处理Windows Media Foundation.但是,由于Microsoft H.264解码器和一些缺少自定义格式的解码器的一些问题,我想知道是否可以直接使用CLSID实例化DirectShow解码器,并围绕它构建一个暴露IMFTransform的代理获得Media Foundation的解码器.所以这是我的问题:
我可以直接实例化Directshow过滤器(首选解码器)并使用它们进行解码(即放置一些压缩帧并获得未压缩的帧)来创建MFT吗?
我知道如何使用其CLSID实例化过滤器本身.但是,我不知道如何使用实际的解码功能.
任何想法,提示,链接任何将被欣赏.谢谢,
J.
我想阅读 Windows 联系人(Windows 7 地址簿),但 CoGetClassObject 返回错误,我不知道为什么?
我的代码是:
IClassFactory* pFactory = NULL;
HRESULT rc;
rc = CoGetClassObject(CLSID_Contact,CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory, (void **) &pFactory);
wprintf( L"Error : %d\n",rc);
Run Code Online (Sandbox Code Playgroud)
它返回“错误:-2147221008”
如果有人对我有建议,那就太好了!
丹尼斯
PS 详细信息:基于http://msdn.microsoft.com/en-us/library/ms735866.aspx(这是相当有问题的)我试图自己做,但函数 CoGetClassObject 返回一个错误,我不知道为什么?
当.net程序集注册COM Interop时,注册表中有一个指向可执行文件的CodeBase项.
我的问题是:CodeBase密钥是特定于.NET的东西,还是这是一个通用的COM东西,所有注册的组件都应该有?
在Windows注册表中驻留许多CLSID值(in HKEY_CLASSES_ROOT\CLSID),例如{16d51579-a30b-4c8b-a276-0ff4dc41e755},其中许多可能属于广为人知的甚至是内置的应用程序或库.是否有包含这些映射的列表或数据库?
一些用法是,在注册表查看器中与密钥一起呈现更有意义的名称,或者检查特定应用程序是否存在(或者是否存在而不再存在)但是在注册表中留下了一些密钥.
clsid ×4
com ×2
.net ×1
addressbook ×1
c++ ×1
codebase ×1
com-interop ×1
decoder ×1
directshow ×1
registry ×1
windows ×1
windows-7 ×1