BCB6::Fehler beim Starten von Outlook



  • Hallo!

    Programmierumgebung: BCB 6
    Outlook 2000
    Windows 2k
    

    ich versuche einen Menüpunkt "Datei->Senden an->E-Mail-Empfänger..." (wie bei MS-Word) zu programmieren.

    Folgendes habe ich versucht:

    try
      {
        outlook->Connect();
      }
      catch(...)
      {
        ShowMessage("Outlook kann nicht geöffnet werden!");
        return;
      }
      TMailItem *mi = new TMailItem(outlook);
      mi->Display((Variant)1);
    

    outlook ist vom Typ TOutlookApplication.

    Fehler: "Klasse nicht registriert" 
    Ort: "mi->Display((Variant)1);"
    

    Kann es sein, dass diese Fehlermeldung kommt, weil ich Outlook und nicht Outlook Express nutze?

    Dann habe ich folgendes versucht:

    Variant MSOutlook = CreateOleObject("Outlook.Application") ;
    Variant MailItem = MSOutlook.OleFunction("CreateItem", (Variant)0);
    MailItem.OleProcedure("Display");
    
    Fehler: "Zugriffsverletzung bei Adresse...."
    Ort: "Variant MailItem = MSOutlook.OleFunction("CreateItem", (Variant)0);"
    

    Ich möchte, wie gesagt, eine Datei per Outlook verschicken, möchte die Nachricht aber vor dem Verschicken bearbeiten können. NMSMTP möchte ich nicht nutzen, da die Eingabe von Mail-Server etc. erforderlich ist.

    Kann mir jemande weiterhelfen?

    Vielen Dank



  • Hallo

    Das Verwenden von OLE für deine Zwecke dafür ist auf jedenfall overkill.
    Wenn du nicht den User mit SMTP-Daten quälen willst dann verwende entweder ShellExecute oder MApi.

    bis bald
    akari



  • Danke für den Tip. Ich werde es mal so versuchen.

    Aber warum ist das Verwenden von OLE für diesen Zweck overkill?



  • Hallo

    - Mit OLE bindest du dich an spezielles Empfängerprogramm. In deinem Fall Outlook. Schon Outlook Express bietet keine OLE-Schnittstelle an.
    - Outlook bietet über OLE wesentlich mehr Funktionen an als nur eine Mail zu versenden. Dementsprechend komplex ist die Schnittstelle, Komplexität die du nicht brauchst
    - OLE an sich ist kompliziert und schlecht dokumentier, zum Beispiel ist Variant zur Compiletime nicht typsicher.
    - Bestenfalls brauchst du mit ShellExecute eine Zeile zum Versenden einer Mail.

    bis bald
    akari



  • Alles klar.
    Besten Dank, akari!


Anmelden zum Antworten