MAPI-Unterstützung in MFC

MFC unterstützt eine Teilmenge der Microsoft-Nachrichten Application Program Interface (MAPI) in der KlasseCDocument. Verfügt insbesondere über Memberfunktionen, die bestimmen, CDocument ob die E-Mail-Unterstützung auf dem Computer des Endbenutzers vorhanden ist, und aktivieren Sie ggf. einen Befehl senden, dessen Standardbefehls-ID ID_FILE_SEND_MAIL ist. Mit der MFC-Handlerfunktion für diesen Befehl kann der Benutzer ein Dokument per E-Mail senden.

Tipp

Obwohl MFC den gesamten MAPI-Funktionssatz nicht kapselt, können Sie MAPI-Funktionen weiterhin direkt aufrufen, genauso wie Sie Win32-API-Funktionen direkt aus MFC-Programmen aufrufen können.

Das Bereitstellen des Befehls "E-Mail senden" in Ihrer Anwendung ist sehr einfach. MFC stellt die Implementierung bereit, um ein Dokument (d. h. ein abgeleitetes CDocumentObjekt) als Anlage zu packen und als E-Mail zu senden. Diese Anlage entspricht einem Befehl zum Speichern von Dateien, der den Inhalt des Dokuments in der E-Mail-Nachricht speichert (serialisiert). Diese Implementierung ruft den E-Mail-Client auf dem Computer des Benutzers auf, dem Benutzer die Möglichkeit zu geben, die E-Mail zu adressieren und der E-Mail-Nachricht Betreff- und Nachrichtentext hinzuzufügen. Benutzer sehen die Benutzeroberfläche der vertrauten Mail-Anwendung. Diese Funktionalität wird von zwei CDocument Memberfunktionen bereitgestellt: OnFileSendMail und OnUpdateFileSendMail.

MAPI muss die Datei lesen, um die Anlage zu senden. Wenn die Anwendung ihre Datendatei während eines OnFileSendMail Funktionsaufrufs geöffnet hält, muss die Datei mit einem Freigabemodus geöffnet werden, mit dem mehrere Prozesse auf die Datei zugreifen können.

Hinweis

Eine überschriebene Version der OnFileSendMail Klasse COleDocument behandelt verbunddokumente ordnungsgemäß.

So implementieren Sie einen Befehl "E-Mail senden" mit MFC

  1. Verwenden Sie den Visual C++-Menü-Editor, um ein Menüelement hinzuzufügen, dessen Befehls-ID ID_FILE_SEND_MAIL ist.

    Diese Befehls-ID wird vom Framework in AFXRES.H bereitgestellt. Der Befehl kann einem beliebigen Menü hinzugefügt werden, wird aber normalerweise dem Menü "Datei " hinzugefügt.

  2. Fügen Sie den folgenden Code manuell zur Nachrichtenzuordnung Ihres Dokuments hinzu:

    ON_COMMAND(ID_FILE_SENDMAIL, &CMyDoc::OnFileSendMail)
    ON_UPDATE_COMMAND_UI(ID_FILE_SENDMAIL, &CMyDoc::OnUpdateFileSendMail)
    

    Hinweis

    Diese Nachrichtenzuordnung funktioniert für ein Dokument, das von einem CDocument dokument abgeleitet wurde, oder COleDocument – es nimmt die richtige Basisklasse in beiden Fällen auf, obwohl sich die Nachrichtenzuordnung in Ihrer abgeleiteten Dokumentklasse befindet.

  3. Erstellen Sie Ihre Anwendung.

Wenn die E-Mail-Unterstützung verfügbar ist, aktiviert MFC Ihr Menüelement mit OnUpdateFileSendMail und verarbeitet anschließend den Befehl mit OnFileSendMail. Wenn die E-Mail-Unterstützung nicht verfügbar ist, entfernt MFC ihr Menüelement automatisch, sodass der Benutzer es nicht sieht.

Tipp

Anstatt Wie zuvor beschrieben manuell Nachrichtenzuordnungseinträge hinzuzufügen, können Sie den Klassenklassen-Assistenten verwenden, um Nachrichten Funktionen zuzuordnen. Weitere Informationen finden Sie unter Zuordnen von Nachrichten zu Funktionen.

Verwandte Informationen finden Sie in der MAPI-Übersicht .

Weitere Informationen zu den Memberfunktionen, die CDocument MAPI aktivieren, finden Sie unter:

Siehe auch

MAPI