创建Com对象

时间:2013-04-17 13:03:51

标签: c# com wmplib

您好我得到以下异常。

  

检索具有CLSID {6BF52A4F-394A-11D3-B153-00C04F79FAA6}的组件的COM类工厂因以下错误而失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。

当我尝试用流程代码创建o COM对象时(在c#中)

Object instancePlayer = null;
Guid guid_IWMPPlayer = typeof(WMPLib.IWMPPlayer).GUID;
Guid guid_IUnknown = new Guid("00000000-0000-0000-C000-000000000046");
Type type = Type.GetTypeFromCLSID(guid_IWMPPlayer);
instancePlayer = Activator.CreateInstance(type);

1 个答案:

答案 0 :(得分:1)

COM使用GUIDs来标识类和接口。看起来您正在使用名为IID的接口ID(IWMPPlayer)而不是类ID(CLSID)。看看你是否可以找到玩家对象的相应类,并使用GUID

更新:我为你查了课。得到这样的CLSID ......

Guid guid_WMPPlayer = typeof(WMPLib.WindowsMediaPlayer).GUID;

...然后将此CLSID传递给Type.GetTypeFromCLSID

更新2:我可以检查一下,你肯定需要使用这些GUID吗? 为什么不做......

instancePlayer = new WMPLib.WindowsMediaPlayer();

...