Obsługa MAPI w MFC
MFC zapewnia obsługę podzestawu Wiadomości Microsoft Application Program Interface (MAPI) w klasie CDocument
. W szczególności ma funkcje członkowskie, które określają, CDocument
czy obsługa poczty jest obecna na komputerze użytkownika końcowego, a jeśli tak, włącz polecenie Wyślij pocztę, którego standardowy identyfikator polecenia jest ID_FILE_SEND_MAIL. Funkcja obsługi MFC dla tego polecenia umożliwia użytkownikowi wysyłanie dokumentu pocztą elektroniczną.
Napiwek
Mimo że MFC nie hermetyzuje całego zestawu funkcji MAPI, nadal można wywoływać funkcje MAPI bezpośrednio, tak jak można wywoływać funkcje interfejsu API Win32 bezpośrednio z programów MFC.
Zapewnienie polecenia Wyślij pocztę w aplikacji jest bardzo proste. MFC udostępnia implementację, aby spakować dokument (czyli CDocument
obiekt pochodny) jako załącznik i wysłać go jako wiadomość e-mail. Ten załącznik jest odpowiednikiem polecenia Zapisz plik, które zapisuje (serializuje) zawartość dokumentu w wiadomości e-mail. Ta implementacja wywołuje klienta poczty na komputerze użytkownika, aby dać użytkownikowi możliwość adresowania poczty i dodania tematu i wiadomości sms do wiadomości e-mail. Użytkownicy widzą swój znajomy interfejs użytkownika aplikacji poczty. Ta funkcja jest dostarczana przez dwie CDocument
funkcje składowe: OnFileSendMail
i OnUpdateFileSendMail
.
Interfejs MAPI musi odczytać plik, aby wysłać załącznik. Jeśli aplikacja przechowuje plik danych otwarty podczas OnFileSendMail
wywołania funkcji, plik musi zostać otwarty w trybie udostępniania, który umożliwia wielu procesom dostęp do pliku.
Uwaga
Zastępowanie wersji OnFileSendMail
klasy COleDocument
poprawnie obsługuje złożone dokumenty.
Aby zaimplementować polecenie Wyślij pocztę za pomocą MFC
Użyj edytora menu Visual C++, aby dodać element menu, którego identyfikator polecenia jest ID_FILE_SEND_MAIL.
Ten identyfikator polecenia jest dostarczany przez strukturę w AFXRES.H. Polecenie można dodać do dowolnego menu, ale zwykle jest dodawane do menu Plik .
Ręcznie dodaj następujące elementy do mapy komunikatów dokumentu:
ON_COMMAND(ID_FILE_SENDMAIL, &CMyDoc::OnFileSendMail) ON_UPDATE_COMMAND_UI(ID_FILE_SENDMAIL, &CMyDoc::OnUpdateFileSendMail)
Uwaga
Ta mapa komunikatów działa dla dokumentu pochodzącego z
CDocument
elementu lubCOleDocument
— pobiera poprawną klasę bazową w obu przypadkach, mimo że mapa komunikatów znajduje się w klasie dokumentu pochodnego.Skompiluj aplikację.
Jeśli obsługa poczty jest dostępna, MFC włącza element menu za pomocą OnUpdateFileSendMail
polecenia , a następnie przetwarza polecenie za pomocą OnFileSendMail
polecenia . Jeśli obsługa poczty nie jest dostępna, MFC automatycznie usuwa element menu, aby użytkownik go nie widział.
Napiwek
Zamiast ręcznie dodawać wpisy mapy komunikatów zgodnie z wcześniejszym opisem, możesz użyć Kreatora klas klas do mapowania komunikatów na funkcje. Aby uzyskać więcej informacji, zobacz Mapowanie komunikatów na funkcje.
Aby uzyskać powiązane informacje, zobacz omówienie mapi .
Aby uzyskać więcej informacji na temat funkcji składowych CDocument
, które włączają interfejs MAPI, zobacz: