// create an instance.
    CoCreateInstanceEx(
     ref clsid,
     null,
     clsctx,
     ref coserverInfo,
     1,
     results);在我的程序中在调用该函数时,一直不返回?请问如何解决?调用的是远程机器!

解决方案 »

  1.   

    返回值:这个函数支持标准返回值E_INVALIDARG, 同时也支持以下返回值: 
      S_OK 
       表明调用成功.
      REGDB_E_CLASSNOTREG 
       指定的类没有在注册表中注册. 也可能是指定的dwClsContext没有注册或注册表中的服务器类型损坏
      CLASS_E_NOAGGREGATION 
       这个类不能创建为聚合型。
      CO_S_NOTALLINTERFACES 
       至少一个, 但不是所有在pResults数组中请求的接口都没有被成功检索到. 结构数组中的每个结构中
       的成员hr返回值为S_OK或E_NOINTERFACE表明指定的接口被成功检索或没有. 
      E_NOINTERFACE 
       在pResults指针指向的结构数组中请求的接口全都没有被成功检索到. 
    例如:
    hr=CoCreateInstanceEx(CLSID_MyBackupService,NULL,CLSCTX_SERVER,&SrvInfo,
                            sizeof(mqi)/sizeof(mqi[0]),mqi);
      if (SUCCEEDED(hr))
      {
         if (SUCCEEDED(mqi[0].hr))//只有一个
         {
            IBackupAdmin * pBackupAdmin=mqi[0].pItf;
            hr=pBackupAdmin->StartBackup();
            pBackupAdmin->Release();
         }
      }
    具体可以参考一下:
    http://www.vckbase.com/vckbase/function/viewfunc.asp?id=90
      

  2.   

    别的机器是指别的dcom服务器!客户端是同一个!
      

  3.   

    服务器是2000 server sp4 
    客户端是2003 server sp1
      

  4.   

    服务器是2000 server sp4 
    客户端是2003 server sp1
      

  5.   

    那你调用CoCreateInstanceEx有没有给它返回值啊?
      

  6.   

    就是hr=CoCreateInstanceEx(...)这种形式~~
      

  7.   

    CoCreateInstanceEx(
         ref clsid,
         null,
         clsctx,
         ref coserverInfo,
         1,
         results);就是这么调用的!
      

  8.   

    那你用hr=CoCreateInstanceEx来调用,同时看一下返回值~~~