次の方法で共有


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 を呼び出して、読み取り専用アクセス許可を持つメッセージ ストアを開くと、次の処理が行われます。

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 コメント
MAPIStoreFunctions.cpp
CallOpenMsgStore
MFCMAPI では、 IMAPISession::OpenMsgStore メソッドを使用してメッセージ ストアを開きます。

関連項目