Assuming you are not using smart pointers, the code will go as follows: { COSERVERINFO csi = {0}; MULTI_QI qi[1] = {0}; //Init pwszname to computer name of remote server where ur COM server //is to be deployed csi.pwszName = L"xxxx"; //use proper comp name here qi[0].pIID = &IID_IFoo; //Init to interface you wish to obtain HRESULT hr=CoCreateInstanceEx(CLSID_Foo,NULL,CLSCTX_REMOTE_SERVER,&csi,1,qi); if(SUCCEEDED(hr)) { m_pFoo=(IFoo*)qi[0].pItf; //you got the interface for remote machine. //Do your work here } } This method is to programatically set up the connection to remote server Another easy method is to register your COM server on both the local and remote machine. Launch 'dcomcnfg' on the maching you plan to run client. Find your COM server from the objects in the list view, right click and click 'properties'. Check the box 'Run this component on' and key in the name of the remote machine you paln to install your COM server. That should work fine. No significant changes are required to the basic functionality of the COM server and the migration to DCOM server should be breeze ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~