当前位置: 代码迷 >> VC >> 在Windows7上CoCreateInstance
  详细解决方案

在Windows7上CoCreateInstance

热度:9911   发布时间:2013-02-25 00:00:00.0
在Windows7下CoCreateInstance
HRESULT CAVDConfDlg::InitRTCClient()
{
HRESULT hr;
m_pClient = NULL;
m_pEvents = NULL;

hr = CoInitialize(NULL);
if (FAILED(hr))
{
return hr;
}
hr = CoCreateInstance (CLSID_RTCClient, NULL,
CLSCTX_SERVER, IID_IRTCClient,
(LPVOID  *)&m_pClient);
if (FAILED(hr))
{
return hr;
}
hr = m_pClient->Initialize();
if (FAILED(hr))
{
SAFE_RELEASE(m_pClient);
return hr;
}
m_pClient->SetPreferredMediaTypes ( RTCMT_ALL, VARIANT_TRUE );
long lEventMask = RTCEF_SESSION_STATE_CHANGE |
  RTCEF_MESSAGING |
  RTCEF_MEDIA |
  RTCEF_INTENSITY |
  RTCEF_CLIENT;
hr = m_pClient->put_EventFilter( lEventMask );
    if ( FAILED(hr) )
    {
        SAFE_RELEASE(m_pClient);
        return hr;
    }
    m_pEvents = new CRTCEvents;
    if (!m_pEvents)
    {
        SAFE_RELEASE(m_pClient);
        return hr;
    }
    hr = m_pEvents->Advise( m_pClient, m_hWnd );
    if ( FAILED(hr) )
    {
        SAFE_RELEASE(m_pClient);
        return hr;
    }
    
    hr = m_pClient->put_ListenForIncomingSessions(RTCLM_BOTH); 

    if ( FAILED(hr) )
    {
    
        SAFE_RELEASE(m_pClient);
        return hr;
    }

if (m_AVDlg)
m_AVDlg.SetState (RTCSS_IDLE);
return S_OK;
}
在Windows7下CoCreateInstance调试hr结果怎么是not register class,不是S_OK?

------解决方案--------------------------------------------------------
注册没?
------------
------解决方案--------------------------------------------------------
CLSID_RTCClient所代表的这个COM组件,需要在机器上注册,你的代码才能使用这个Com组件。
  相关解决方案