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

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

MAPIReadMail 関数は、読み取り用のメッセージを取得します。

構文

MAPIREADMAIL Mapireadmail;

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

パラメーター

[in] lhSession

単純な MAPI セッションを処理します。 lhSession パラメーターの値は、有効なセッションを表す必要があります。0 にすることはできません。

[in] ulUIParam

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

[in] lpszMessageID

読み取るメッセージのメッセージ識別子文字列へのポインター。 文字列は呼び出し元によって割り当てられます。

[in] flFlags

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

説明
MAPI_BODY_AS_FILE
MAPIReadMail は 、メッセージ テキストを一時ファイルに書き込み、添付ファイルの一覧の最初の添付ファイルとして追加する必要があります。
MAPI_ENVELOPE_ONLY
MAPIReadMail は 、メッセージ ヘッダーのみを読み取る必要があります。 添付ファイルは一時ファイルにコピーされず、一時ファイル名もメッセージ テキストも書き込まれません。 このフラグを設定すると、パフォーマンスが向上します。
MAPI_PEEK
MAPIReadMail は、メッセージを開封済みとしてマークしません。 メッセージを開封済みとしてマークすると、ユーザー インターフェイスでの外観に影響し、開封確認メッセージが生成されます。 メッセージング システムでこのフラグがサポートされていない場合、 MAPIReadMail は 常にメッセージを読み取りとしてマークします。 MAPIReadMail でエラーが発生した場合、メッセージは未読の状態になります。
MAPI_SUPPRESS_ATTACH
MAPIReadMail は 添付ファイルをコピーしませんが、メッセージ テキストを MapiMessage 構造体に書き込む必要があります。 呼び出し元のアプリケーションで MAPI_ENVELOPE_ONLY フラグが設定されている場合、MAPIReadMail はこのフラグを無視します。 MAPI_SUPPRESS_ATTACH フラグを設定すると、パフォーマンスが向上します。

ulReserved

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

lppMessage

戻り値

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

リターン コード 説明
MAPI_E_ATTACHMENT_WRITE_FAILURE
添付ファイルを一時ファイルに書き込むことができませんでした。 ディレクトリのアクセス許可を確認します。
MAPI_E_DISK_FULL
ディスクに十分な領域がないため、添付ファイルを一時ファイルに書き込めませんでした。
MAPI_E_FAILURE
メッセージの読み取り中に、1 つ以上の未指定のエラーが発生しました。
MAPI_E_INSUFFICIENT_MEMORY
メッセージを読み取るメモリが不足していました。
MAPI_E_INVALID_MESSAGE
lpszMessageID パラメーターに無効なメッセージ識別子が渡されました。
MAPI_E_INVALID_SESSION
lhSession パラメーターに無効なセッション ハンドルが渡されました。 メッセージが取得されませんでした。
MAPI_E_TOO_MANY_FILES
メッセージに添付ファイルが多すぎます。 メッセージを読み取れませんでした。
MAPI_E_TOO_MANY_RECIPIENTS
メッセージの受信者が多すぎます。 メッセージを読み取れませんでした。
SUCCESS_SUCCESS
呼び出しが成功し、メッセージが読み取られました。

解説

MAPIReadMail 関数は、メッセージの内容を MAPISendMail 関数で使用されるのと同じパラメーターと構造体に分割して、1 つのメッセージを返します。 MAPIReadMail は 、件名、メッセージ クラス、配信時間、送信者などのメッセージ要素を含む MapiMessage 構造体でメモリのブロックを埋めます。 添付ファイルは一時ファイルに保存され、名前はメッセージ構造の呼び出し元に返されます。 MAPIReadMail が呼び出し元に戻る前に、受信者、添付ファイル、および内容がメッセージからコピーされるため、ファイルに対する後の変更はメッセージの内容に影響しません。

呼び出しから封筒情報のみを返すように指定するフラグが用意されています。 別のフラグ ( MapiMessage 構造体内) では、メッセージが送信済みとしてマークされているか、未送信としてマークされているかを指定します。

呼び出し元は、MAPIFreeBuffer 関数を呼び出し、メッセージに含まれる添付ファイルに関連付けられているファイルを削除することで、MapiMessage 構造体を解放します。

MAPIReadMail を呼び出す前に、MAPIFindNext 関数を使用して、読み取るメッセージが読み取るメッセージであることを確認します。 メッセージ識別子はシステム固有で不透明であり、いつでも無効にできるため、 MAPIReadMail では、メッセージ識別子は現在の Simple MAPI セッションでのみ有効であると見なされます。

必要条件

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

関連項目

MAPIFreeBuffer

MAPILogon

MapiMessage

簡易 MAPI