Share via


MAPISAVEMAIL コールバック関数 (mapi.h)

[この関数の使用はお勧めしません。 それ以降のバージョンの Windows では、変更または使用できない場合があります。

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

構文

MAPISAVEMAIL Mapisavemail;

ULONG Mapisavemail(
  [in] LHANDLE lhSession,
  [in] ULONG_PTR ulUIParam,
  [in] lpMapiMessage lpMessage,
  [in] FLAGS flFlags,
       ULONG ulReserved,
  [in] LPSTR lpszMessageID
)
{...}

パラメーター

[in] lhSession

単純な MAPI セッションまたは 0 のハンドル。 lpszMessageID パラメーターに有効なメッセージ識別子が含まれている場合、lhSession パラメーターの値を 0 にすることはできません。 ただし、 lpszMessageID に有効なメッセージ識別子が含まれていない場合、 lhSession の値が 0 の場合、MAPI はユーザーにログを記録し、呼び出しの期間中のみ存在するセッションを作成します。 この一時セッションには、既存の共有セッションまたは新しいセッションを指定できます。 必要に応じて、ログオン ダイアログ ボックスが表示されます。

[in] ulUIParam

親ウィンドウ ハンドルまたは 0。ダイアログ ボックスが表示されている場合は、それがアプリケーション モーダルであることを示します。 ulUIParam パラメーターに親ウィンドウ ハンドルが含まれている場合は、HWND 型です (ULONG_PTRにキャストされます)。 呼び出し中にダイアログ ボックスが表示されない場合、 ulUIParam は無視されます。

[in] lpMessage

保存するメッセージの内容を含む MapiMessage 構造体を指す入力パラメーター。 lpOriginator メンバーは無視されます。 アプリケーションは flFlags メンバーを無視するか、メッセージが一度も保存されていない場合は、MAPI_SENTフラグとMAPI_UNREAD フラグを設定できます。

[in] flFlags

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

説明
MAPI_LOGON_UI
必要に応じて、ユーザーにログオンを求めるダイアログ ボックスが表示されます。 MAPI_LOGON_UI フラグが設定されていない場合、クライアント アプリケーションはログオン ダイアログ ボックスを表示せず、ユーザーがログオンしていない場合はエラー値を返します。 lpszMessageID パラメーターが空の場合、MAPISaveMail はこのフラグを無視します。
MAPI_LONG_MSGID
返されるメッセージ識別子は 512 文字である必要があります。 このフラグが設定されている場合、 lpszMessageID パラメーターは、512 文字に対応できる十分な大きさにする必要があります。
MAPI_NEW_SESSION
環境の共有セッションを取得するのではなく、新しいセッションを作成する必要があります。 MAPI_NEW_SESSION フラグが設定されていない場合、 MAPISaveMail は既存の共有セッションを使用します。

ulReserved

予約;は 0 である必要があります。

[in] lpszMessageID

保存操作によって置き換えられるメッセージ識別子または空の文字列へのポインター。新しいメッセージが作成されることを示します。 flFlags パラメーターが MAPI_LONG_MSGID に設定されている場合、文字列は呼び出し元によって割り当てられ、少なくとも 512 文字を保持できる必要があります。 flFlags パラメーターが MAPI_LONG_MSGID に設定されていない場合、メッセージ識別子の文字列は 64 文字を保持できます。

戻り値

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

リターン コード 説明
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
ユーザーがダイアログ ボックスの 1 つを取り消しました。 メッセージは保存されませんでした。
SUCCESS_SUCCESS
呼び出しが成功し、メッセージが保存されました。

解説

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

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

メッセージ識別子はシステム固有で不透明であり、いつでも無効にできるため、 MAPISaveMail では、メッセージ識別子は現在の Simple MAPI セッションでのみ有効であると見なされます。 MAPISaveMail は 、MAPI_E_INVALID_MESSAGE値を返すことによって無効なメッセージ識別子を処理します。

必要条件

   
対象プラットフォーム Windows
ヘッダー mapi.h

関連項目

MAPIFindNext

MAPILogon

MapiMessage

簡易 MAPI