#import "C:\PROGRA~1\COMMON~1\System\ado\msado15.dll" rename( "EOF", "adoEOF" )
   struct InitOle 
   {
     InitOle()  { ::CoInitialize(NULL); }
     ~InitOle() { ::CoUninitialize();   }
   } _init_InitOle_;
   void PrintProviderError(ADODB::_ConnectionPtr pConnection);int main(int argc, char* argv[])
{
try
{
//insert your code here, see the description of the error
}
   catch(_com_error &e)
   {
      _bstr_t bstrSource(e.Source());
      _bstr_t bstrDescription(e.Description());
      PrintProviderError(Conn1);
      printf("\n Source : %s \n Description : %s \n",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
   }
return 0;
}VOID PrintProviderError(ADODB::_ConnectionPtr pConnection)
{
   // Print Provider Errors from Connection object.
   // pErr is a record object in the Connection's Error collection.
ADODB::ErrorPtr  pErr = NULL;
   long      nCount = 0;    
   long      i = 0;   if( (pConnection->Errors->Count) > 0)
   {
      nCount = pConnection->Errors->Count;
      // Collection ranges from 0 to nCount -1.
      for(i = 0; i < nCount; i++)
      {
         pErr = pConnection->Errors->GetItem(i);
         printf("\n\t Error number: %x\t%s", pErr->Number, (LPCSTR)pErr->Description);
      }
   }
}