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 CDocument
objektu) 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
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 .
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
neboCOleDocument
– v obou případech vybere správnou základní třídu, i když je mapa zpráv v odvozené třídě dokumentu.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: