VC++ 6.0中ActiveX控件“无法创建对象”

问题描述:

下面的方法多次执行单个对象创建,最终无法创建ActiveX控件对象。 HRESULT的值示出了HRESULT = -2,147,467,262VC++ 6.0中ActiveX控件“无法创建对象”

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) 
{ 
     HRESULT hres = _Module.GetClassObject(rclsid, riid, ppv); 
     return hres; 
} 

正在执行只是一次另一个ActiveX控件和对象与成功创建同样的方法:HRESULT = 0;

任何有助于未能创建对象的可能原因。

+0

请考虑上述方法中包含的“返回hres;”,错过发布。 – Navneet

+1

错误代码是'E_NOINTERFACE',这意味着对应于'rclsid'的对象事实上不支持通过'riid'请求的接口。找出原因。 –

+0

是的,提到的负HRESULT值转换为0x80004002/ E_NOINTERFACE错误代码,其描述为“不支持此类接口”。根据MSDN。但是在创建ActiveX控件的对象时可能会导致这种情况。 – Navneet

具有持久状态的ActiveX控件(此控件的情况)必须实现IPersistStream或IPersistStreamInit。 增加一条线 “COM_INTERFACE_ENTRY(的IPersistStreamInit)”,下

“BEGIN_COM_MAP(MyControl)-------- END_COM_MAP()”

解决的问题。