Win32 API 日本語リファレンス
ホーム › System.Mapi › LPMAPISAVEMAIL

LPMAPISAVEMAIL

コールバック

シグネチャ

DWORD LPMAPISAVEMAIL(
    UINT_PTR lhSession,
    UINT_PTR ulUIParam,
    MapiMessage* lpMessage,
    DWORD flFlags,
    DWORD ulReserved,
    LPSTR lpszMessageID
);

パラメーター

フィールド型説明
lhSessionUINT_PTRSimple MAPI セッションのハンドル、または 0。lpszMessageID パラメーターに有効なメッセージ識別子が含まれる場合、lhSession パラメーターの値を 0 にすることはできません。ただし、lpszMessageID に有効なメッセージ識別子が含まれず、lhSession の値が 0 の場合、MAPI はユーザーをログオンさせ、呼び出しの間だけ存在するセッションを作成します。この一時的なセッションは、既存の共有セッションの場合も、新しいセッションの場合もあります。必要に応じて、ログオンダイアログボックスが表示されます。
ulUIParamUINT_PTR親ウィンドウのハンドル、または 0。0 の場合、ダイアログボックスが表示されるときはアプリケーションモーダルになります。ulUIParam パラメーターに親ウィンドウのハンドルが含まれる場合、その型は HWND(ULONG_PTR にキャストされたもの)です。呼び出し中にダイアログボックスが表示されない場合、ulUIParam は無視されます。
lpMessageMapiMessage*保存するメッセージの内容を格納した MapiMessage 構造体を指す入力パラメーター。lpOriginator メンバーは無視されます。アプリケーションは flFlags メンバーを無視することも、メッセージが一度も保存されていない場合に MAPI_SENT フラグと MAPI_UNREAD フラグを設定することもできます。
flFlagsDWORD

オプションフラグのビットマスク。次のフラグを設定できます。

値 意味
MAPI_LOGON_UI
必要に応じて、ユーザーにログオンを促すダイアログボックスを表示します。MAPI_LOGON_UI フラグが設定されていない場合、クライアントアプリケーションはログオンダイアログボックスを表示せず、ユーザーがログオンしていなければエラー値を返します。lpszMessageID パラメーターが空の場合、MAPISaveMail はこのフラグを無視します。
MAPI_LONG_MSGID
返されるメッセージ識別子は 512 文字であることが想定されます。このフラグを設定する場合、lpszMessageID パラメーターは 512 文字を格納できる大きさが必要です。
MAPI_NEW_SESSION
環境の共有セッションを取得するのではなく、新しいセッションの作成を試みます。MAPI_NEW_SESSION フラグが設定されていない場合、MAPISaveMail は既存の共有セッションを使用します。
ulReservedDWORD予約済み。0 でなければなりません。
lpszMessageIDLPSTR保存操作によって置き換えられるメッセージ識別子、または新しいメッセージを作成することを示す空文字列へのポインター。この文字列は呼び出し側が割り当てる必要があり、flFlags パラメーターに MAPI_LONG_MSGID が設定されている場合は少なくとも 512 文字を格納できる必要があります。flFlags パラメーターに MAPI_LONG_MSGID が設定されていない場合、メッセージ識別子の文字列は 64 文字を格納できます。

公式ドキュメント

[この関数の使用は推奨されません。以降のバージョンの Windows では変更されるか、利用できなくなる可能性があります。]

MAPISaveMail 関数は、メッセージをメッセージストアに保存します。

戻り値

この関数は、次のいずれかの値を返します。

戻り値 説明
MAPI_E_ATTACHMENT_NOT_FOUND
指定されたパスで添付ファイルを見つけられませんでした。ドライブレターが無効であるか、そのドライブ上にパスが見つからないか、そのパスにファイルが見つかりませんでした。
MAPI_E_BAD_RECIPTYPE
lpMessage 内の受信者の種類が無効でした。
MAPI_E_FAILURE
メッセージの保存中に、原因不明のエラーが 1 つ以上発生しました。メッセージは保存されませんでした。
MAPI_E_INSUFFICIENT_MEMORY
メッセージを保存するのに十分なメモリーがありませんでした。メッセージは保存されませんでした。
MAPI_E_INVALID_MESSAGE
lpszMessageID パラメーターに無効なメッセージ識別子が渡されました。メッセージは保存されませんでした。
MAPI_E_INVALID_RECIPS
メッセージの受信者の 1 人以上が無効であるか、特定できませんでした。
MAPI_E_INVALID_SESSION
lhSession パラメーターに無効なセッションハンドルが渡されました。メッセージは保存されませんでした。
MAPI_E_LOGIN_FAILURE
既定のログオンが存在せず、ログオンダイアログボックスが表示されたときにユーザーがログオンに失敗しました。メッセージは保存されませんでした。
MAPI_E_NOT_SUPPORTED
この操作は、基盤となるメッセージングシステムでサポートされていませんでした。
MAPI_E_USER_ABORT
ユーザーがいずれかのダイアログボックスをキャンセルしました。メッセージは保存されませんでした。
SUCCESS_SUCCESS
呼び出しは成功し、メッセージが保存されました。

解説(Remarks)

MAPISaveMail 関数はメッセージを保存し、必要に応じて既存のメッセージを置き換えます。MAPISaveMail を呼び出す前に、MAPIFindNext 関数を使用して、保存するメッセージが意図したものであることを確認してください。lpszMessageID パラメーターで識別されるメッセージの要素は、lpMessage パラメーターの要素で置き換えられます。lpszMessageID が空の場合は、新しいメッセージが作成されます。置き換えられたメッセージはすべて、それぞれ適切なフォルダーに保存されます。新しいメッセージは、そのクラスの受信メッセージに適したフォルダーに保存されます。

すべてのメッセージングシステムがメッセージの保存をサポートしているわけではありません。基盤となるメッセージングシステムがメッセージの保存をサポートしていない場合、MAPISaveMail は MAPI_E_NOT_SUPPORTED 値を返します。

メッセージ識別子はシステム固有かつ不透明であり、いつでも無効になり得るため、MAPISaveMail はメッセージ識別子が有効なのは現在の Simple MAPI セッションの間だけであるとみなします。MAPISaveMail は、無効なメッセージ識別子に対して MAPI_E_INVALID_MESSAGE 値を返すことで対処します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)