Kontakte in MS-Exchange 2000 verwalten



  • Hallo

    Ich arbeite an einem Programm, mit dem ich Kontakte aus einer externen Datenbank (MS-SQL Server),
    in den MS-Exchange Server 2000 exportieren kann.
    Erstellen der Kontakte klappt einwandfrei, gemäss Beispiel aus der MSDN:
    [url]
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_clb_adding_a_new_contact_with_cdoex_cpp.asp
    [/url]
    Kennt jemand eine möglichkeit, einen bestimmten Kontakt wieder zu löschen?

    Der Ablauf meines Programms sollte dann folgendermassen sein:
    1. Alle Kontakte die in der SQL-DB als "Gelöscht" markiert sind, im Exchange löschen
    2. Alle "aktiven" Kontakte aus der SQL-DB in den Exchange kopieren.

    Hier mal mein Code zum reinkopieren der funktioniert:

    HRESULT hr = S_OK;
    
    	CString	  str,str_url;
      	CListBox *pLB;
    	pLB = (CListBox*)GetDlgItem(IDC_LIST_HISTO);
    
    	str_url = m_edit_url;
    	str_url = str_url += m_edit_ordner;
    	str_url = str_url += "/";
    
    	wchar_t* folderURL = NULL;
    	size_t size;
    	size = mbstowcs(NULL,str_url,0);
    	folderURL = (wchar_t*)malloc(size * sizeof(wchar_t*) + 1);
    	mbstowcs(folderURL,str_url,size+1);
    	BSTR bstrFolderURL = SysAllocString(folderURL);
    
    	try
    	{
    	  CDO::IPersonPtr pPerson(_uuidof(CDO::Person));
          CDO::IDataSourcePtr pDsrc;
    
          pPerson->put_FirstName(m_edit_vorname.AllocSysString());
          pPerson->put_LastName(m_edit_nachname.AllocSysString());
          pPerson->put_Email(m_edit_email.AllocSysString());
    
    	  pPerson->get_DataSource(&pDsrc);
    
          hr = pDsrc->SaveToContainer(bstrFolderURL,
                               0,
                               (enum CDO::ConnectModeEnum) adModeReadWrite,
                               (enum CDO::RecordCreateOptionsEnum)adCreateOverwrite,
                               (enum CDO::RecordOpenOptionsEnum)adOpenSource,
                               L"",
                               L"");
    
          if (SUCCEEDED(hr))
    	  {
    		str.Format("Kontakt Erfolgreich hinzugefügt: %s - %s %s",m_edit_vorname,m_edit_nachname,m_edit_email);
    		pLB->AddString(str);
    		str.Format("-> in Ordner: %s",m_edit_ordner);
    		pLB->AddString(str);
    	  }
    	  else
    	  {
    		str.Format("Fehler beim Erstellen: %s - %s %s",m_edit_vorname,m_edit_nachname,m_edit_email);
    		pLB->AddString(str);
    	  }
    	}
    	catch(_com_error &e)
    	{
    	  dump_com_error(e);
    	}
    
    	m_edit_nachname	  = "";
    	m_edit_vorname	  = "";
    	m_edit_email	  = "";
    	UpdateData(FALSE);
    
    	SysFreeString(bstrFolderURL);
    

    Vielen Dank


Anmelden zum Antworten