LPMAPIREADMAIL
コールバックシグネチャ
DWORD LPMAPIREADMAIL(
UINT_PTR lhSession,
UINT_PTR ulUIParam,
LPSTR lpszMessageID,
DWORD flFlags,
DWORD ulReserved,
MapiMessage** lppMessage
);パラメーター
| フィールド | 型 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lhSession | UINT_PTR | Simple MAPI セッションへのハンドル。lhSession パラメーターの値は有効なセッションを表している必要があり、0 にすることはできません。 | ||||||||||
| ulUIParam | UINT_PTR | 親ウィンドウのハンドル、または 0。0 の場合、ダイアログボックスが表示されるときはアプリケーションモーダルになります。ulUIParam パラメーターに親ウィンドウのハンドルを指定する場合、その型は HWND(ULONG_PTR にキャスト)です。呼び出し中にダイアログボックスが表示されない場合、 ulUIParam は無視されます。 | ||||||||||
| lpszMessageID | LPSTR | 読み取るメッセージのメッセージ識別子文字列へのポインター。この文字列は呼び出し元が割り当てます。 | ||||||||||
| flFlags | DWORD | オプションフラグのビットマスク。次のフラグを設定できます。
| ||||||||||
| ulReserved | DWORD | 予約済み。0 を指定する必要があります。 | ||||||||||
| lppMessage | MapiMessage** |
公式ドキュメント
[この関数の使用は推奨されません。以降のバージョンの Windows では変更されるか、利用できなくなる可能性があります。]
MAPIReadMail 関数は、読み取るためのメッセージを取得します。
戻り値
この関数は、次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 添付ファイルを一時ファイルに書き込めませんでした。ディレクトリのアクセス許可を確認してください。 | |
| ディスクの空き容量が不足していたため、添付ファイルを一時ファイルに書き込めませんでした。 | |
| メッセージの読み取り中に、1 つ以上の不特定のエラーが発生しました。 | |
| メッセージを読み取るためのメモリが不足していました。 | |
| 無効なメッセージ識別子が lpszMessageID パラメーターに渡されました。 | |
| 無効なセッションハンドルが lhSession パラメーターに渡されました。メッセージは取得されませんでした。 | |
| メッセージ内のファイル添付が多すぎました。メッセージを読み取れませんでした。 | |
| メッセージの受信者が多すぎました。メッセージを読み取れませんでした。 | |
| 呼び出しは成功し、メッセージが読み取られました。 |
解説(Remarks)
MAPIReadMail 関数は 1 件のメッセージを返し、その内容を MAPISendMail 関数で使用されるものと同じパラメーターおよび構造体に分解します。MAPIReadMail は、件名、メッセージクラス、配信時刻、送信者などのメッセージ要素を含む MapiMessage 構造体で、メモリブロックを埋めます。ファイル添付は一時ファイルに保存され、そのファイル名がメッセージ構造体で呼び出し元に返されます。受信者、添付ファイル、内容は MAPIReadMail が呼び出し元に戻る前にメッセージからコピーされるため、その後にファイルを変更してもメッセージの内容には影響しません。
エンベロープ情報のみを呼び出しから返すよう指定するフラグが用意されています。また、別のフラグ(MapiMessage 構造体内)によって、メッセージを送信済みとして扱うか未送信として扱うかを指定します。
呼び出し元は、MAPIFreeBuffer 関数を呼び出して MapiMessage 構造体を解放し、メッセージに含まれる添付ファイルに関連付けられたファイルを削除する責任があります。
MAPIReadMail を呼び出す前に、MAPIFindNext 関数を使用して、読み取ろうとしているメッセージが目的のメッセージであることを確認してください。メッセージ識別子はシステム固有かつ不透明であり、いつでも無効になる可能性があるため、MAPIReadMail はメッセージ識別子を現在の Simple MAPI セッションでのみ有効なものとして扱います。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)