IMAPISession::OpenMsgStore
適用対象: Outlook 2013 | Outlook 2016
メッセージ ストアを開き、さらにアクセスするために IMsgStore ポインターを返します。
HRESULT OpenMsgStore(
ULONG_PTR ulUIParam,
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
LPMDB FAR * lppMDB
);
パラメーター
ulUIParam
[in]共通アドレス ダイアログ ボックスおよび他の関連する表示の親ウィンドウへのハンドル。
cbEntryID
[in] lpEntryID パラメーターによって指されるエントリ識別子のバイト数。
lpEntryID
[in]開くメッセージ ストアのエントリ識別子へのポインター。 lpEntryID パラメーターは NULL にすることはできません。
lpInterface
[in]メッセージ ストアへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。 NULL を渡すと、 lppMDB パラメーターはメッセージ ストア (IMsgStore) の標準インターフェイスへのポインターを返します。
ulFlags
[in]オブジェクトの開き方を制御するフラグのビットマスク。 次のフラグを使用できます。
MAPI_BEST_ACCESS: メッセージ ストアを開き、ユーザーに許可される最大ネットワーク アクセス許可とクライアント アプリケーションの最大アクセス許可を要求します。 たとえば、クライアントに読み取り/書き込みアクセス許可がある場合、メッセージ ストアは読み取り/書き込みアクセス許可で開く必要があります。クライアントに読み取り専用アクセス許可がある場合は、メッセージ ストアを読み取り専用アクセス許可で開く必要があります。
MAPI_DEFERRED_ERRORS: 呼び出し元のクライアントがメッセージ ストアを完全に使用できるようになる前に、 OpenMsgStore が正常に返されるようにします。 メッセージ ストアが使用できない場合は、後続のオブジェクト呼び出しを行うとエラーが発生する可能性があります。
MDB_NO_DIALOG: ログオン ダイアログ ボックスの表示を禁止します。 このフラグが設定されていて、 OpenMsgStore に、ユーザーの助けを借りずにメッセージ ストアを開くには十分な構成情報がない場合は、MAPI_E_LOGON_FAILEDが返されます。 このフラグが設定されていない場合、メッセージ ストア プロバイダーは、名前またはパスワードを修正するか、メッセージ ストアへの接続を確立するために必要な他のアクションを実行するようにユーザーに求めることができます。
MDB_NO_MAIL: メッセージ ストアは、メールの送受信に使用しないでください。 このフラグを設定すると、MAPI はこのメッセージ ストアが開かれていることを MAPI スプーラーに通知しません。
MDB_ONLINE: Exchange キャッシュ モードでは、クライアントまたはサービス プロバイダーは、MDB_ONLINEを使用してこのメソッドを呼び出して、ローカル メッセージ ストアへの接続をオーバーライドし、リモート サーバーでストアを開くことができます。 同じ MAPI セッションで、Exchange ストアをキャッシュ モードと非キャッシュ モードで同時に開くことはできません。 キャッシュ済みのメッセージ ストアを既に開いている場合は、このフラグを使用してストアを開く前にストアを閉じるか、このフラグを使用してリモート サーバー上の Exchange ストアを開くことができる新しい MAPI セッションを開く必要があります。
MDB_TEMPORARY: メッセージ ストアが永続的ではなく、メッセージ ストア テーブルに追加しないことを MAPI に指示します。 このフラグは、プロファイル セクションからプログラムで情報を取得できるように、メッセージ ストアにログオンするために使用されます。
MDB_WRITE: メッセージ ストアに対する読み取り/書き込みアクセス許可を要求します。
lppMDB
[out]メッセージ ストアのポインターへのポインター。
戻り値
S_OK
メッセージ ストアが正常に開かれました。
MAPI_E_NO_ACCESS
ユーザーがアクセス許可が不十分なメッセージ ストアにアクセスしようとしました。
MAPI_E_NOT_FOUND
lpEntryID によって示されるメッセージ ストアが存在しません。
MAPI_E_UNKNOWN_CPID
サーバーは、クライアントのコード ページをサポートするように構成されていません。
MAPI_E_UNKNOWN_LCID
サーバーは、クライアントのロケール情報をサポートするように構成されていません。
MAPI_W_ERRORS_RETURNED
呼び出しは成功しましたが、メッセージ ストア プロバイダーにエラー情報が表示されます。 この警告が返されたら、呼び出しは成功として処理する必要があります。 プロバイダーからエラー情報を取得するには、 IMAPISession::GetLastError メソッドを呼び出します。 この警告をテストするには、 HR_FAILED マクロを使用します。 詳細については、「 エラー処理にマクロを使用する」を参照してください。
注釈
IMAPISession::OpenMsgStore メソッドは、特定のメッセージ ストアを開きます。
呼び出し側への注意
メッセージ ストアの既定のアクセス許可レベルは読み取り専用です。 MDB_WRITE フラグを設定しても、読み取り/書き込みアクセス許可が付与されない可能性があります。 MAPI がメッセージ ストアに割り当てる最終的なアクセス レベルは、アクセス許可レベル、メッセージ ストア自体、およびメッセージ ストア プロバイダーによって異なります。
OpenMsgStore を呼び出して、読み取り専用アクセス許可を持つメッセージ ストアを開くと、次の処理が行われます。
ストアの PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask) プロパティには、そのSTORE_MODIFY_OKとSTORE_CREATE_OK ビットが設定されません。
MAPI_MODIFY フラグを設定した IMAPISession::OpenEntry を使用して、メッセージ ストアのメッセージまたはフォルダーのいずれかを開く呼び出しは失敗します。
MAPI_MODIFY フラグを使用して IMAPIProp::OpenProperty を使用してメッセージ ストアのメッセージまたはフォルダーのいずれかのプロパティを開く呼び出しは失敗します。
次のいずれかのメソッドの呼び出しは失敗します。
コピーしたメッセージの宛先が読み取り専用の場合、コピー先がソース メッセージ ストアと同じか、別の読み取り専用ストアであるかに関係なく、次のメソッドの呼び出しは失敗します。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
MAPIStoreFunctions.cpp |
CallOpenMsgStore |
MFCMAPI では、 IMAPISession::OpenMsgStore メソッドを使用してメッセージ ストアを開きます。 |