ComBridge library

Features:
 - Uses TCPIP as DCOM transport 
 - Supports HTTPS and SOCKS proxies 
 - Extremally easy to use 
 - Uses only one TCPIP connection per client server (version 2) 
 - Supports callbacks (version 2) 
 - Royalty free deployment 

Site: www.dcomlab.com
E-mail: combridge@dcomlab.com

Use is pretty easy:
On client side you need to create COMBridge object and call its CoCreate instead of system CoCreateInstance.
On server side you need to create COMBridge object and call StartServer method.

Look at combridge.idl and examples:

C++:
        Server:
             CoInitializeEx(NULL, COINIT_MULTITHREADED);
             m_spCOMBridge.CoCreateInstance(__uuidof(COMBridge));
             m_spCOMBridge->StartServer(80);
        Client:
            CoInitializeEx(NULL, COINIT_MULTITHREADED);
            LPOLESTR szCLSID=NULL;
            StringFromCLSID(__uuidof(TestObject), &szCLSID);
            CComPtr<IUnknown> spUnk; 
            m_spCOMBridge->CoCreate(L"127.0.0.1", 80, szCLSID, NULL, &spUnk);
            CComQIPtr<ITestObject> spTestObject=spUnk;

Jscript:
        Server:
           var oCOMBridge=new ActiveXObject("COMBridge.COMBridge");
           oCOMBridge.StartServer(80);
           var bStop=false;
           function CreateObject()
          {
                  this.test="test!!!";
                  this.Stop=function()
                 {
                     WScript.echo("Server: Stop has been called...");
                     bStop=true;
                 }
              return this;
          }
          var oTestCache=CreateObject();
          oCOMBridge.SetRemoteObject(oTestCache);
          while(!bStop) oCOMBridge.HandleCalls(1000);
          WScript.echo("Server: Stopped. Exiting process..."); 
        Client:
           var oCOMBridge=new ActiveXObject("COMBridge.COMBridge");
           var oTest=oCOMBridge.CoCreate("127.0.0.1", 80, "", "");
           WScript.echo("Client: getting value: ", oTest.test);
           oTest.Stop();
