次の方法で共有


MFC での MAPI サポート

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

ヒント

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

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

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

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

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

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

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

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

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

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

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

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

ヒント

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

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

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

こちらも参照ください

MAPI