ICredentialProviderEvents
COM公式ドキュメント
資格情報プロバイダーが、資格情報のリストやそのフィールドの変更を通知するために使用する非同期コールバック機構を提供します。
解説(Remarks)
使用する場面
ICredentialProviderEvents の実装は、資格情報プロバイダーを実装する外部の開発者が使用するために提供されます。実装する場面
外部の開発者が ICredentialProviderEvents を自ら実装する必要はありません。メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
列挙された資格情報のリストが変更されたことを、Logon UI または Credential UI に通知します。
| upAdviseContext | UINT_PTR | in | どの資格情報プロバイダーが再列挙を要求したかを一意に識別する整数へのポインターです。資格情報プロバイダーは、Advise から受け取ったインターフェイス ポインターをこのパラメーターで渡し返す必要があります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
従来、多くの資格情報プロバイダーは UI を更新するために ICredentialProviderEvents::CredentialsChanged を使用していました。これは機能はしますが、呼び出し元の資格情報プロバイダーからすべての資格情報が再列挙されます。この再列挙が原因で、このイベントの処理によって、状況によっては UI のちらつきやフォーカスの変化が発生することがあります。そのため、UI の更新のみを目的として ICredentialProviderEvents::CredentialsChanged を使用することは推奨されません。新しい推奨事項は次のとおりです。
- 資格情報プロバイダーが自動ログオンを実行する必要がある場合や、列挙する資格情報の数を変更する必要がある場合にのみ、ICredentialProviderEvents::CredentialsChanged を使用してください。
- 資格情報プロバイダーの Logon UI または Credential UI を更新するには、ICredentialProviderCredentialEvents2 を使用してください。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICredentialProviderEvents "{34201E5A-A787-41A3-A5A4-BD6DCF2A854E}"
#usecom global ICredentialProviderEvents IID_ICredentialProviderEvents "{}"
#comfunc global ICredentialProviderEvents_CredentialsChanged 3 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。