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

LPMAPILOGON

コールバック

シグネチャ

DWORD LPMAPILOGON(
    UINT_PTR ulUIParam,
    LPSTR lpszProfileName,
    LPSTR lpszPassword,
    DWORD flFlags,
    DWORD ulReserved,
    UINT_PTR* lplhSession
);

パラメーター

フィールド型説明
ulUIParamUINT_PTR親ウィンドウのハンドル、またはゼロ。ゼロの場合、ダイアログ ボックスが表示されるときはアプリケーション モーダルになります。ulUIParam パラメーターが親ウィンドウのハンドルを保持する場合、その型は HWND(ULONG_PTR にキャストしたもの)です。呼び出し中にダイアログ ボックスが表示されない場合、 ulUIParam は無視されます。
lpszProfileNameLPSTRnull 終端のプロファイル名文字列へのポインター。256 文字以内に制限されます。これはログオン時に使用するプロファイルです。lpszProfileName パラメーターが NULL であるか空の文字列を指しており、flFlags パラメーターに MAPI_LOGON_UI が設定されている場合、MAPILogon は名前フィールドが空のログオン ダイアログ ボックスを表示します。
lpszPasswordLPSTRnull 終端の資格情報文字列へのポインター。256 文字以内に制限されます。メッセージング システムがパスワードによる資格情報を必要としない場合、またはユーザーに入力させる必要がある場合、lpszPassword パラメーターは NULL にするか、空の文字列を指すようにします。ユーザーが資格情報を入力する必要がある場合は、ログオン ダイアログ ボックスを表示できるように flFlags パラメーターに MAPI_LOGON_UI を設定する必要があります。
flFlagsDWORD

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

値 意味
MAPI_FORCE_DOWNLOAD
復帰する前に、ユーザーのすべてのメッセージをダウンロードするよう試みます。MAPI_FORCE_DOWNLOAD フラグが設定されていない場合、メッセージは関数呼び出しから復帰した後にバックグラウンドでダウンロードされることがあります。
MAPI_NEW_SESSION
環境の共有セッションを取得するのではなく、新しいセッションの作成を試みます。MAPI_NEW_SESSION フラグが設定されていない場合、MAPILogon は既存の共有セッションを使用します。
MAPI_LOGON_UI
ログオン情報の入力をユーザーに求めるために、ログオン ダイアログ ボックスを表示します。ログオンを成功させるためにユーザーがパスワードとプロファイル名を入力する必要がある場合は、MAPI_LOGON_UI を設定しなければなりません。
MAPI_PASSWORD_UI
MAPILogon はパスワードの入力のみを求め、ユーザーによるプロファイル名の変更を許可しません。ログオン用の 2 種類のダイアログ ボックスのいずれかを選択することが目的であるため、MAPI_PASSWORD_UI と MAPI_LOGON_UI の両方を設定すべきではありません。
ulReservedDWORD予約されています。ゼロにする必要があります。
lplhSessionUINT_PTR*Simple MAPI のセッション ハンドル。

公式ドキュメント

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

MAPILogon 関数は、既定のメッセージ ストア プロバイダーとアドレス帳プロバイダーを読み込み、Simple MAPI セッションを開始します。

戻り値

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

リターン コード 説明
MAPI_E_FAILURE
ログオン中に 1 つ以上の不特定のエラーが発生しました。セッション ハンドルは返されませんでした。
MAPI_E_INSUFFICIENT_MEMORY
処理を続行するためのメモリが不足していました。セッション ハンドルは返されませんでした。
MAPI_E_LOGIN_FAILURE
既定のログオンが存在せず、ログオン ダイアログ ボックスが表示されたときにユーザーがログオンに成功しませんでした。セッション ハンドルは返されませんでした。
MAPI_E_TOO_MANY_SESSIONS
ユーザーが同時に開いているセッションが多すぎました。セッション ハンドルは返されませんでした。
MAPI_E_USER_ABORT
ユーザーがログオン ダイアログ ボックスをキャンセルしました。セッション ハンドルは返されませんでした。
SUCCESS_SUCCESS
呼び出しは成功し、Simple MAPI セッションが確立されました。

解説(Remarks)

MAPILogon 関数はメッセージング システムとのセッションを開始し、以降の MAPI 呼び出しでメッセージング システムに対してユーザーの資格情報を明示的に渡すために使用できるハンドルを返します。提示した資格情報でセッションを検証できなかった場合にログオン ダイアログ ボックスを表示させるには、flFlags パラメーターに MAPI_LOGON_UI を設定します。

クライアント アプリケーションは、lpszProfileName パラメーターに NULL、lpszPassword パラメーターに NULL を指定し、flFlags に MAPI_LOGON_UI フラグを設定せずに MAPILogon を呼び出すことで、既存のセッションの有無を調べます。既存のセッションがある場合、呼び出しは成功し、そのセッションの有効な LHANDLE を返します。それ以外の場合、呼び出しは失敗します。

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