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 CDocument
Objekt) 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
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.
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, oderCOleDocument
– es nimmt die richtige Basisklasse in beiden Fällen auf, obwohl sich die Nachrichtenzuordnung in Ihrer abgeleiteten Dokumentklasse befindet.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: