IMAPISupport::OpenTemplateID
適用対象: Outlook 2013 | Outlook 2016
外部アドレス帳プロバイダーの受信者エントリを開きます。
HRESULT OpenTemplateID(
ULONG cbTemplateID,
LPENTRYID lpTemplateID,
ULONG ulTemplateFlags,
LPMAPIPROP lpMAPIPropData,
LPCIID lpInterface,
LPMAPIPROP FAR * lppMAPIPropNew,
LPMAPIPROP lpMAPIPropSibling
);
パラメーター
cbTemplateID
[in] lpTemplateID によって指されるテンプレート識別子のバイト数。
lpTemplateID
[in]開く受信者エントリ のテンプレート識別子PR_TEMPLATEID (PidTagTemplateid) プロパティへのポインター。
ulTemplateFlags
[in]エントリを開く方法を説明するために使用されるフラグのビットマスク。 次のフラグを設定できます。
FILL_ENTRY
新しいエントリが作成されています。 外部プロバイダーは、MAPI から後続の IABLogon::OpenTemplateID 呼び出しを受け取ると、 lpMAPIPropData パラメーターによって指されるプロパティを変更するか、 lppMAPIPropNew で特定のインターフェイス実装を返して、新しいエントリのプロパティの設定方法を制御することで、エントリの作成方法を制御できます。
lpMAPIPropData
[in]呼び出し元がエントリにアクセスするために使用するインターフェイス実装へのポインター。 これは、外部プロバイダーが独自の実装でラップし、 lppMAPIPropNew パラメーターで返すことができる実装です。 lpMAPIPropData パラメーターは、IMAPIProp : IUnknown から派生し、lpInterface パラメーターで要求されるインターフェイスをサポートする読み取り/書き込みインターフェイスの実装を指す必要があります。
lpInterface
[in]エントリへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。 lppMAPIPropNew パラメーターは、lpInterface で指定された型のインターフェイスを指します。 NULL を渡すと、メッセージング ユーザーの標準インターフェイス (IID_IMailUser) が返されます。
lppMAPIPropNew
[out]外部プロバイダーがエントリにアクセスするために提供するインターフェイス実装へのポインター。
lpMAPIPropSibling
予約;は NULL である必要があります。
戻り値
S_OK
バインド プロセスが成功しました。
MAPI_E_UNKNOWN_ENTRYID
外部アドレス帳プロバイダーが存在しません。
注釈
IMAPISupport::OpenTemplateID メソッドは、アドレス帳プロバイダーサポート オブジェクトに対してのみ実装されます。 OpenTemplateID は、他のアドレス帳プロバイダー (外部プロバイダーとも呼ばれます) に属するエントリのホストとして機能できるアドレス帳プロバイダーによってのみ呼び出されます。 ホスト プロバイダーは OpenTemplateID を呼び出して外部エントリを開きます。これは、ホスト プロバイダー内のデータが外部プロバイダーのコードにバインドされている場合に発生します。
呼び出し側への注意
OpenTemplateID を呼び出すのは、外部アドレス帳プロバイダーからのテンプレート識別子を持つエントリの格納をサポートしている場合のみです。 このようなサポートにより、 IABContainer::CreateEntry と IABLogon::OpenEntry の実装に追加の要件が設定されます。 詳細については、これらのメソッドの説明と ホスト アドレス帳プロバイダーとしての機能に関するページを参照してください。
OpenTemplateID 呼び出しが、渡したのと同じプロパティ オブジェクト実装をバインド インターフェイスとして返す場合は、プロパティ オブジェクトへの参照を解放できます。 これは、外部プロバイダーがオブジェクトの AddRef メソッドを呼び出して独自の参照を保持しているためです。 外部プロバイダーがプロパティ オブジェクトへの参照を保持する必要がない場合、 OpenTemplateID はバインドされていないプロパティ オブジェクトを返します。
OpenTemplateID がMAPI_E_UNKNOWN_ENTRYIDで失敗した場合は、エントリを読み取り専用として扱って続行してください。