2017-07-28 79 views
1

下面的方法多次執行單個對象創建,最終無法創建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

回答

0

具有持久狀態的ActiveX控件(此控件的情況)必須實現IPersistStream或IPersistStreamInit。 增加一條線 「COM_INTERFACE_ENTRY(的IPersistStreamInit)」,下

「BEGIN_COM_MAP(MyControl)-------- END_COM_MAP()」

解決的問題。

相關問題