IMsgStore::OpenEntry
適用対象: Outlook 2013 | Outlook 2016
フォルダーまたはメッセージを開き、さらにアクセスするためのインターフェイス ポインターを返します。
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
ULONG FAR * lpulObjType,
LPUNKNOWN FAR * lppUnk
);
パラメーター
cbEntryID
[in] lpEntryID パラメーターによって指されるエントリ識別子のバイト数 。
lpEntryID
[in]開くオブジェクトのエントリ識別子 (NULL) へのポインター。 lpEntryID が NULL に設定されている場合、OpenEntry はメッセージ ストアのルート フォルダーを開きます。
lpInterface
[in]開いているオブジェクトへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。 NULL を渡すと、オブジェクトの標準インターフェイス (フォルダーの場合は IMAPIFolder 、メッセージの 場合は IMessage ) が返されます。
ulFlags
[in]オブジェクトの開き方を制御するフラグのビットマスク。 次のフラグを使用できます。
MAPI_BEST_ACCESS
ユーザーに許可されている最大ネットワーク アクセス許可と最大クライアント アプリケーション アクセス権を使用して、オブジェクトを開くように要求します。 たとえば、クライアントに読み取り/書き込みアクセス許可がある場合、オブジェクトは読み取り/書き込みアクセス許可を使用して開く必要があります。クライアントに読み取り専用アクセス許可がある場合は、読み取り専用アクセス許可を使用してオブジェクトを開く必要があります。
MAPI_DEFERRED_ERRORS
呼び出し元のクライアントがオブジェクトを完全に使用できるようになる前に、 OpenEntry が正常に返されるようにします。 オブジェクトが使用できない場合は、後続のオブジェクト呼び出しを行うとエラーが発生する可能性があります。
MAPI_MODIFY
読み取り/書き込みアクセス許可を要求します。 既定では、オブジェクトは読み取り専用のアクセス許可で開かれます。クライアントは、読み取り/書き込みアクセス許可が付与されることを前提として動作しません。
lpulObjType
[out]開いているオブジェクトの型へのポインター。
lppUnk
[out]開いているオブジェクトへのポインターへのポインター。
戻り値
S_OK
�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B
MAPI_E_NO_ACCESS
読み取り専用オブジェクトを変更するか、ユーザーがアクセス許可が不十分なオブジェクトにアクセスしようとしました。
MAPI_NO_CACHE
ストアがキャッシュ モードで開かれると、クライアントまたはサービス プロバイダーは IMsgStore::OpenEntry を呼び出し、MAPI_NO_CACHE フラグを設定してリモート ストア上のアイテムまたはフォルダーを開くことができます。 リモート サーバーで MDB_ONLINE フラグを使用してメッセージ ストアを開く場合は、MAPI_NO_CACHE フラグを使用する必要はありません。
注釈
IMsgStore::OpenEntry メソッドは、フォルダーまたはメッセージを開き、さらにアクセスするために使用できるインターフェイスへのポインターを返します。
重要
フォルダーやメッセージなどのパブリック ストアでフォルダー エントリを開く場合は、IMAPISession::OpenEntry ではなく IMsgStore::OpenEntry を使用します。 これにより、プロファイルで複数の Exchange アカウントが定義されている場合に、パブリック フォルダーが正しく機能します。
呼び出し側への注意
ulFlags パラメーターでMAPI_MODIFYまたはMAPI_BEST_ACCESS フラグを設定しない限り、フォルダーとメッセージは読み取り専用のアクセス許可で自動的に開かれます。 これらのフラグの 1 つを設定しても、特定の種類のアクセス許可は保証されません。付与されるアクセス許可は、メッセージ ストア プロバイダー、アクセス レベル、オブジェクトによって異なります。 開いているオブジェクトのアクセス レベルを確認するには、 そのPR_ACCESS_LEVEL (PidTagAccessLevel) プロパティを取得します。
IMsgStore::OpenEntry を使用して任意のフォルダーまたはメッセージを開くことができますが、開くフォルダーまたはメッセージの親フォルダーにアクセスできる場合は、通常、IMAPIContainer::OpenEntry メソッドを使用する方が高速です。
lpulObjType パラメーターで返される値を調べて、返されたオブジェクトの種類が予期した型かどうかを判断します。 オブジェクト型が想定される型でない場合は、 lppUnk パラメーターから適切な型のポインターにポインターをキャストします。 たとえば、フォルダーを開いている場合は、 lppUnk を LPMAPIFOLDER 型のポインターにキャストします。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
MAPIFunctions.cpp |
CallOpenEntry |
MFCMAPI では 、IMsgStore::OpenEntry メソッドを使用して、エントリ ID に関連付けられているオブジェクトを開きます。 |