同样一段代码,在exe中成功调用,但在ActiveX控件中调用总是出错调试中发现是CoCreateInstance() 函数出错,已经调用过CoInitialize()大家知道是什么原因?

解决方案 »

  1.   

    代码:
    CoInitialize(NULL);HRESULT hr = ::CoCreateInstance(CLSID_CMAudioProperty,NULL,CLSCTX_INPROC_SERVER,MixerIID_ICMAudioProperty5,(void**)&pICMAudioProperty) ;if (!SUCCEEDED(hr)) 
       AfxMessageBox("Can not create private interface!");hr返回值: 80040115这段代码本身绝对没有错,因为在exe中一直能正常运行,但放在ActiveX后,就出错
      

  2.   

    呵呵,不知道。
    有个疑问:既然是已经在ActiveX里,为什么还要另外初始化COM环境呢?或者,看你的代码似乎使用MFC,在MFC下是否也用CoInitialize初始化COM?好像还有个什么OleInitialize之类的是否有关系?另外:pICMAudioProperty是否初始化为NULL?俺也不知道,仅供参考