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 CDocumentobiekt 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

  1. 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 .

  2. 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 lub COleDocument — pobiera poprawną klasę bazową w obu przypadkach, mimo że mapa komunikatów znajduje się w klasie dokumentu pochodnego.

  3. 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ą OnFileSendMailpolecenia . 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:

Zobacz też

MAPI