MAPISendMailHelper 関数 (mapiunicodehelp.h)

Unicode メッセージ情報を取得し、 MAPISendMailW を使用してメッセージを送信するか、必要に応じて、メッセージを ANSI に変換し、 MAPISendMail を使用してメッセージを送信します。 Windows 8以降: MAPISendMailW を直接呼び出してメッセージを送信します。

構文

ULONG MAPISendMailHelper(
  [in] LHANDLE        lhSession,
  [in] ULONG_PTR      ulUIParam,
  [in] lpMapiMessageW lpMessage,
  [in] FLAGS          flFlags,
  [in] ULONG          ulReserved
);

パラメーター

[in] lhSession

単純な MAPI セッションまたは 0 を処理します。

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

[in] ulUIParam

親ウィンドウ ハンドルまたは 0。

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

[in] lpMessage

送信するメッセージを含む MAPISendMailW 構造体へのポインター。

登録済みメール プロバイダーがメッセージで ANSI エンコードを使用する必要がある場合、 MAPISendMailHelper はこのメッセージを ANSI MapiMessage 構造体に変換し、 MAPISendMail を 呼び出してメッセージを送信します。

関数を呼び出すときは、メッセージ構造のメンバーに関する次の情報に注意してください。

メンバー メモ
lpFiles メッセージに添付ファイルがない場合は、このメンバーを NULL に 設定します。
lpszMessageType 対人メッセージを処理しないアプリケーションで使用されます。 アプリケーションが対人メッセージを処理する場合は、 lpszMessageType メンバーを NULL に設定するか、空の文字列を指すよう設定します。
lpszSubject NULL の値は、メッセージの件名にテキストがないことを意味します。
lpszNoteText NULL の値は、メッセージの本文にテキストがないことを意味します。
lpRecips 値が NULL の場合は、受信者がいないことを意味します。 さらに、このメンバーが NULL の場合、 nRecipCount メンバーは 0 である必要があります。
nRecipCount 値が 0 の場合は、受信者がいないことを意味します。 さらに、このメンバーが 0 の場合、 lpRecips メンバーは NULL である必要があります。
 
ヒント 関数を呼び出し、受信者がいない場合は、 MAPI_DIALOG フラグまたは MAPI_DIALOG_MODELESS フラグを設定して、ユーザーに受信者情報の入力を求める必要があります。
 
MAPI_DIALOGまたはMAPI_DIALOG_MODELESSが設定されていない場合、構造体の nRecipCount メンバーと lpRecips メンバーは、メッセージの配信を成功させるために有効である必要があります。 クライアント アプリケーションでは、 flFlags メンバーを MAPI_RECEIPT_REQUESTED に設定して、読み取りレポートを要求できます。

関数が受信者情報を処理する方法の詳細については、「MAPISendMailW での受信者情報の処理」を参照してください。

[in] flFlags

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

意味
MAPI_DIALOG
0x00000008
受信者やその他の送信オプションをユーザーに求めるダイアログ ボックスが表示されます。

MAPI_DIALOGMAPI_DIALOG_MODELESSも設定されていない場合は、少なくとも 1 人の受信者を指定する必要があります。

MAPI_DIALOG_MODELESS
0x00000004 |MAPI_DIALOG
次のバージョンの Office で Windows 7 以前で使用できます。 受信者やその他の送信オプションをユーザーに求めるモードレス ダイアログ ボックスが表示されます。

MAPI_DIALOG_MODELESSが設定されている場合は、lhSession パラメーターを 0 に設定する必要があります。 それ以外の場合、このフラグが設定され、 lhSession が 0 でない場合、Outlook は例外を発生させます。

さらに、 MAPI_DIALOG_MODELESS が設定されている場合、システムは MAPI_NEW_SESSION フラグを無視します。

MAPI_DIALOGMAPI_DIALOG_MODELESSも設定されていない場合は、少なくとも 1 人の受信者を指定する必要があります。

MAPI_LOGON_UI
0x00000001
必要に応じてログオンするようにユーザーに求めるダイアログ ボックスが表示されます。

MAPI_LOGON_UI フラグが設定されていない場合、クライアント アプリケーションはログオン ダイアログ ボックスを表示せず、ユーザーがログオンしていない場合はエラー値を返します。

lpszMessageID パラメーターが空の場合、MAPI_LOGON_UI フラグは無視されます。

MAPI_NEW_SESSION
0x00000002
環境の共有セッションを取得するのではなく、新しいセッションを作成しようとしました。 MAPI_NEW_SESSION フラグが設定されていない場合、関数は既存の共有セッションを使用します。

MAPI_NEW_SESSION フラグ (共有セッションの使用を妨げる) を設定し、プロファイルにパスワードが必要な場合は、MAPI_LOGON_UI フラグも設定する必要があります。また、関数は失敗します。 クライアント アプリケーションでは、パスワードなしで既定のプロファイルを使用するか、パスワードなしで明示的なプロファイルを使用することで、このエラーを回避できます。

MAPI_FORCE_UNICODE
0x00040000
プロバイダーが Unicode をサポートしていない場合は、メッセージを ANSI に変換しないでください。

[in] ulReserved

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

戻り値

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

リターン コード/値 Description
MAPI_E_AMBIGUOUS_RECIPIENT
21
受信者が複数の受信者記述子構造と一致し、MAPI_DIALOGが設定されていません。 メッセージが送信されませんでした。
MAPI_E_ATTACHMENT_NOT_FOUND
11
指定された添付ファイルが見つかりませんでした。 メッセージが送信されませんでした。
MAPI_E_ATTACHMENT_OPEN_FAILURE
12
指定した添付ファイルを開けませんでした。 メッセージが送信されませんでした。
MAPI_E_BAD_RECIPTYPE
15
受信者の種類がMAPI_TO、MAPI_CC、またはMAPI_BCCされませんでした。 メッセージが送信されませんでした。
MAPI_E_FAILURE
2
1 つ以上の未指定のエラーが発生しました。 メッセージが送信されませんでした。
MAPI_E_INSUFFICIENT_MEMORY
5
続行するメモリが不足していました。 メッセージが送信されませんでした。
MAPI_E_INVALID_RECIPS
25
1 人以上の受信者が無効であるか、アドレスに解決されませんでした。
MAPI_E_LOGIN_FAILURE
3
既定のログオンがなく、ログオン ダイアログ ボックスが表示されたときにユーザーが正常にログオンできませんでした。 メッセージが送信されませんでした。
MAPI_E_TEXT_TOO_LARGE
18
メッセージ内のテキストが大きすぎます。 メッセージが送信されませんでした。
MAPI_E_TOO_MANY_FILES
9
添付ファイルが多すぎます。 メッセージが送信されませんでした。
MAPI_E_TOO_MANY_RECIPIENTS
10
受信者が多すぎます。 メッセージが送信されませんでした。
MAPI_E_UNICODE_NOT_SUPPORTED
27
MAPI_FORCE_UNICODE フラグが指定されており、Unicode はサポートされていません。
メモ この値は、メッセージを送信するために MAPISendMailW が呼び出された場合にのみ返されます。
 
MAPI_E_UNKNOWN_RECIPIENT
14
受信者がアドレス一覧に表示されませんでした。 メッセージが送信されませんでした。
MAPI_E_USER_ABORT
1
ユーザーがいずれかのダイアログ ボックスを取り消しました。 メッセージが送信されませんでした。
SUCCESS_SUCCESS
0
呼び出しが成功し、メッセージが送信されました。

注釈

MAPI 送信メール機能の詳細については、「 MAPISendMailW」を参照してください。

要件

要件
対象プラットフォーム Windows
ヘッダー mapiunicodehelp.h
[DLL] Mapi32.dll

こちらもご覧ください

MAPISendMailW

Windows SDK for Windows 8