MFC での MAPI サポート

MFC では、 クラスの Microsoft メッセージング アプリケーション プログラム インターフェイス (MFC) のサブセットがサポートされています CDocument 。 具体的には、 には、エンド ユーザーのコンピューターにメールのサポートが存在するかどうかを決定するメンバー関数があります。存在する場合は、標準コマンド ID が有効なメールの送信コマンドを有効 CDocument ID_FILE_SEND_MAIL。 このコマンドの MFC ハンドラー関数を使用すると、ユーザーは電子メールでドキュメントを送信できます。

ヒント

MFC は、MFC 関数セット全体をカプセル化しませんが、MFC プログラムから直接関数を呼び出すのと同様に、MFC 関数を直接呼び出Win32 API直接呼び出す場合があります。

アプリケーションでメールの送信コマンドを指定するのは非常に簡単です。 MFC では、添付ファイルとしてドキュメント (つまり、派生オブジェクト) をパッケージ化し、それをメールとして送信する 実装 CDocument が提供されます。 この添付ファイルは、ドキュメントの内容をメール メッセージに保存 (シリアル化) するファイル保存コマンドと同じです。 この実装では、ユーザーのコンピューター上のメール クライアントを呼び出して、ユーザーがメールにアドレスを指定し、件名とメッセージのテキストをメール メッセージに追加する機会をユーザーに提供します。 ユーザーには、使い慣れたメール アプリケーションのユーザー インターフェイスが表示されます。 この機能は、 と の 2 つの CDocument メンバー関数によって提供 OnFileSendMail されます OnUpdateFileSendMail

添付ファイルを送信するには、ファイルを読み取る必要があります。 アプリケーションが関数呼び出し中にデータ ファイルを開いた状態に保つ場合は、複数のプロセスがファイルにアクセスできる共有モードでファイルを開 OnFileSendMail く必要があります。

注意

クラスの のオーバーライドバージョン OnFileSendMail では、複合 COleDocument ドキュメントが正しく処理されます。

MFC でメール送信コマンドを実装するには

  1. コマンド ID Visual C++するメニュー項目を追加するには、メニュー エディターを使用ID_FILE_SEND_MAIL。

    このコマンド ID は、AFXRES.H のフレームワークによって提供されます。 コマンドは任意のメニューに追加できますが、通常は [ファイル] メニューに 追加 されます。

  2. ドキュメントのメッセージ マップに以下を手動で追加します。

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

    注意

    このメッセージ マップは、 から派生したドキュメントに対して機能します。または、メッセージ マップが派生ドキュメント クラスにある場合でも、どちらの場合も正しい基本クラス CDocumentCOleDocument— を取得します。

  3. アプリケーションをビルドします。

メールのサポートが利用可能な場合、MFC では を使用してメニュー項目が有効になります。その後、 を使用して OnUpdateFileSendMail コマンドを処理します OnFileSendMail 。 メールのサポートが利用できない場合、MFC によってメニュー項目が自動的に削除され、ユーザーに表示されません。

ヒント

前に説明したように、メッセージ マップ エントリを手動で追加するのではなく、クラス クラスウィザードを使用して、メッセージを関数にマップできます。 詳細については、「Mapping Messages to Functions 」を参照してください

関連情報については、「MAPI の概要」 を参照 してください。

MAPI を有効にするメンバー CDocument 関数の詳細については、次を参照してください。

関連項目

MAPI