Sdílet prostřednictvím


Podpora MAPI v MFC

MFC poskytuje podporu pro podmnožinu rozhraní Microsoft Zasílání zpráv Application Program Interface (MAPI) ve třídě CDocument. Konkrétně má členské funkce, které určují, CDocument jestli je na počítači koncového uživatele k dispozici podpora pošty, a pokud ano, povolte příkaz Odeslat poštu, jehož standardní ID příkazu je ID_FILE_SEND_MAIL. Funkce obslužné rutiny MFC pro tento příkaz umožňuje uživateli odeslat dokument prostřednictvím elektronické pošty.

Tip

I když mfc nezapočítá celou sadu funkcí MAPI, můžete funkce MAPI volat přímo, stejně jako můžete volat funkce rozhraní API Win32 přímo z programů MFC.

Poskytnutí příkazu Odeslat poštu ve vaší aplikaci je velmi snadné. MFC poskytuje implementaci pro zabalení dokumentu (tj. -odvozeného CDocumentobjektu) jako přílohy a odeslání jako pošty. Tato příloha je ekvivalentní příkazu Uložit soubor, který ukládá (serializuje) obsah dokumentu do poštovní zprávy. Tato implementace volá poštovního klienta na počítači uživatele, aby uživateli poskytla možnost adresovat poštu a přidat do e-mailové zprávy předmět a text zprávy. Uživatelé vidí své známé uživatelské rozhraní poštovní aplikace. Tato funkce je poskytována dvěma CDocument členskými funkcemi: OnFileSendMail a OnUpdateFileSendMail.

Rozhraní MAPI potřebuje přečíst soubor pro odeslání přílohy. Pokud aplikace udržuje datový soubor otevřený během OnFileSendMail volání funkce, musí být soubor otevřen v režimu sdílené složky, který umožňuje více procesům přístup k souboru.

Poznámka

Přepsání verze OnFileSendMail třídy COleDocument správně zpracovává složené dokumenty.

Implementace příkazu Odeslat poštu pomocí knihovny MFC

  1. Pomocí editoru nabídek Visual C++ přidejte položku nabídky, jejíž ID příkazu je ID_FILE_SEND_MAIL.

    Toto ID příkazu poskytuje architektura v AFXRES.H. Příkaz lze přidat do libovolné nabídky, ale obvykle se přidá do nabídky Soubor .

  2. Do mapy zpráv dokumentu přidejte ručně následující položky:

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

    Poznámka

    Tato mapa zpráv funguje pro dokument odvozený z některého CDocument nebo COleDocument – v obou případech vybere správnou základní třídu, i když je mapa zpráv v odvozené třídě dokumentu.

  3. Sestavte aplikaci.

Pokud je k dispozici podpora pošty, mfc povolí položku nabídky a OnUpdateFileSendMail následně zpracuje příkaz s OnFileSendMail. Pokud podpora pošty není dostupná, mfc položku nabídky automaticky odebere, aby ji uživatel neviděl.

Tip

Místo ručního přidávání položek mapy zpráv, jak bylo popsáno dříve, můžete pomocí Průvodce třídou třídy namapovat zprávy na funkce. Další informace naleznete v tématu Mapování zpráv na funkce.

Související informace najdete v přehledu rozhraní MAPI .

Další informace o členských funkcích CDocument , které umožňují rozhraní MAPI, najdete tady:

Viz také

MAPI