bool VSConnect(LPSTR cServerAddr)
{
    HRESULT hr; if(ievs_channel!=NULL) ievs_channel->Release();    if(strcmp(cServerAddr,"")==0) //local connection CoCreateInstance
    {
IUnknown* pUnk;
hr=CoCreateInstance(CLSID_EVS_Channel,NULL,CLSCTX_SERVER,IID_IUnknown,(void **)&pUnk);
if (hr!=S_OK)
return false;
         hr=pUnk->QueryInterface(IID_IEVS_Channel,(void **)&ievs_channel);
         if (hr!=S_OK)
         {
 pUnk->Release();
 return false;
 }
    }
    else
    {// remote connection CoCreateInstanceEx
CString sTemp;
sTemp = cServerAddr;
COSERVERINFO coserv;
coserv.dwReserved1=0;
coserv.dwReserved2=0;
_bstr_t bst;
bst=sTemp;
coserv.pwszName=bst;
coserv.pAuthInfo=NULL; MULTI_QI mqi;
IID req_iid=IID_IUnknown;
mqi.pIID=&req_iid;
mqi.pItf=NULL;
CoCreateInstanceEx(CLSID_EVS_Channel,NULL,CLSCTX_SERVER
  ,&coserv,1,&mqi); if (mqi.hr!=S_OK)
return false;
hr=mqi.pItf->QueryInterface(IID_IEVS_Channel,(void **)&ievs_channel);
if (hr!=S_OK)
{
mqi.pItf->Release();
return false;
}
mqi.pItf->Release();
}
return true;
}