// NOTE: UNCOMMENT FOLLOWING LINE IF USING MDAC 2.1 (ADO 2.1) and comment line with Msdasc.dll. 
#import "C:\Program Files\Common Files\System\OLE DB\OLEDB32.dll" rename_namespace("dl20")// NOTE: UNCOMMENT FOLLOWING LINE IF USING MDAC 2.0 (ADO 2.0) and comment above line. 
//#import "G:\Program Files\Common Files\System\OLE DB\Msdasc.dll" rename_namespace("dl20")//Reason: Datalink connection string builder, was moved to oledb32.dll in ADO2.1 
//where as in ADO2.0 it was located in Msdasc.dll (ADO2.0)#import "G:\Program Files\Common Files\SYSTEM\ADO\MSADO15.DLL" rename_namespace("ado20")
using namespace ado20; using namespace dl20; // DataLinks #import
using namespace ado20; // ADO #import
HRESULT hr;
IDataSourceLocatorPtr dlPrompt = NULL;
_ConnectionPtr conn = NULL;

::CoInitialize( NULL ); //Launch DataLink connection dialog
hr = dlPrompt.CreateInstance(__uuidof(DataLinks));
conn = dlPrompt->PromptNew();
if ( conn!=NULL )
{
m_strConnect.Format( "%s", (char*) conn->ConnectionString );
}
try
{
m_connection.CreateInstance(__uuidof(Connection) );
m_connection->Open( _bstr_t( m_strConnect.GetBuffer(0) ), L"", L"", -1L );
}
catch(...) {}