Win32 API 日本語リファレンス
ホームUI.Shell › ICredentialProviderCredentialEvents

ICredentialProviderCredentialEvents

COM
IIDfa6fa76b-66b7-4b11-95f1-86171118e816継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

資格情報が、ログオン UI または資格情報 UI における状態変更やテキスト変更のイベントを通知するために使用する、非同期のコールバック機構を提供します。

解説(Remarks)

これらのメソッドは、第 1 引数として this を渡す資格情報からのみ呼び出す必要があります。Advise の呼び出しによってアクティブ化された資格情報以外を使用してこれらのメソッドを呼び出そうとした場合、動作は未定義です。資格情報プロバイダーが別のスレッド上に情報を持ち、そのスレッドのログオン UI または資格情報 UI を通じて通信したい場合、その要求は Advise の呼び出しを受け取った資格情報を経由する必要があります。

実装するタイミング

サードパーティが ICredentialProviderCredentialEvents を実装することはありません。実装は Windows に付属しています。

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetFieldState(ICredentialProviderCredential* pcpc, DWORD dwFieldID, CREDENTIAL_PROVIDER_FIELD_STATE cpfs)

フィールドの状態が変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in状態を設定するフィールドを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinイベントを生成する変更が発生したフィールドの一意の ID。
cpfsCREDENTIAL_PROVIDER_FIELD_STATEin新しいフィールド状態を指定する CREDENTIAL_PROVIDER_FIELD_STATE 列挙型の値。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT SetFieldInteractiveState(ICredentialProviderCredential* pcpc, DWORD dwFieldID, CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE cpfis)

フィールドの操作可能状態が変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in操作可能状態を設定するフィールドを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinフィールドの一意の ID。
cpfisCREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATEinフィールドの新しい操作可能状態。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT SetFieldString(ICredentialProviderCredential* pcpc, DWORD dwFieldID, LPWSTR psz)

フィールドに関連付けられた文字列が変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in操作可能状態を設定するフィールドを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDin文字列を設定する対象フィールドの一意の ID。
pszLPWSTRinフィールドの新しい文字列へのポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT SetFieldCheckbox(ICredentialProviderCredential* pcpc, DWORD dwFieldID, BOOL bChecked, LPWSTR pszLabel)

チェックボックスフィールドが変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in設定するチェックボックスフィールドを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinチェックボックスの一意のフィールド ID。
bCheckedBOOLinチェックボックスの新しい状態。TRUE はチェックボックスをオンにすべきことを示し、FALSE はオンにすべきでないことを示します。
pszLabelLPWSTRinチェックボックスラベルの新しい文字列。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT SetFieldBitmap(ICredentialProviderCredential* pcpc, DWORD dwFieldID, HBITMAP hbmp)

タイル画像フィールドが変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in設定するタイル画像フィールドを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinタイル画像フィールドの一意の ID。
hbmpHBITMAPin新しいタイル画像。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT SetFieldComboBoxSelectedItem(ICredentialProviderCredential* pcpc, DWORD dwFieldID, DWORD dwSelectedItem)

コンボボックスで選択されている項目が変化したこと、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in設定するコンボボックスを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinコンボボックスの一意の ID。
dwSelectedItemDWORDinコンボボックスで選択する項目のインデックス。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT DeleteFieldComboBoxItem(ICredentialProviderCredential* pcpc, DWORD dwFieldID, DWORD dwItem)

コンボボックスから項目を削除する必要があること、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in更新が必要なコンボボックスを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinコンボボックスの一意の ID。
dwItemDWORDin削除される項目のインデックス。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 10 HRESULT AppendFieldComboBoxItem(ICredentialProviderCredential* pcpc, DWORD dwFieldID, LPWSTR pszItem)

コンボボックスに項目を追加する必要があること、および UI を更新する必要があることを、ログオン UI または資格情報 UI に通知します。

pcpcICredentialProviderCredential*in項目の追加が必要なコンボボックスを含む資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDinコンボボックスの一意の ID。
pszItemLPWSTRin新しい選択肢としてコンボボックスに追加される文字列。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT SetFieldSubmitButton(ICredentialProviderCredential* pcpc, DWORD dwFieldID, DWORD dwAdjacentTo)

送信ボタンを隣接して表示するフィールドを、資格情報が設定できるようにします。

pcpcICredentialProviderCredential*in送信ボタンの位置を設定する資格情報。この値は this に設定する必要があります。詳細については ICredentialProviderCredentialEvents を参照してください。
dwFieldIDDWORDin送信ボタンの一意のフィールド ID。
dwAdjacentToDWORDinこのメソッドの完了時に送信ボタンを隣接させるフィールドの一意のフィールド ID。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT OnCreatingWindow(HWND* phwndOwner)

ウィンドウが作成されるときに呼び出されます。Advise が呼び出された後に、資格情報が親ウィンドウの HWND を取得できるようにします。

phwndOwnerHWND*out親ウィンドウのハンドルへのポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

phwndOwner で返される HWND は、メッセージボックスなどのダイアログボックスの親として使用できます。ダイアログを表示する資格情報プロバイダーは、必ず OnCreatingWindow によって提供される HWND を親にする必要があります。ダイアログボックスを適切に親付けしない資格情報プロバイダーは、タイムアウトが発生した場合に資格情報 UI およびログオン UI を失敗させます。

資格情報 UI およびログオン UI は、2 分間入力を受け取らなかった場合にダイアログボックスをキャンセルすることがあります。タイムアウトが発生した場合にキャンセルできるのは、親ウィンドウへのポインターが正しく割り当てられているときに限られます。

ログオン UI および資格情報 UI は、2 分間入力を受け取らなかったダイアログを自動的にキャンセルします。これは、親ウィンドウへのポインターが正しく割り当てられている場合にのみ可能です。事前ログオンアクセスプロバイダー (PLAP) 画面で IConnectableCredentialProviderCredential::Connect の呼び出しとして表示されるダイアログは、非アクティブが原因でキャンセルされることはありません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_ICredentialProviderCredentialEvents "{FA6FA76B-66B7-4B11-95F1-86171118E816}"
#usecom global ICredentialProviderCredentialEvents IID_ICredentialProviderCredentialEvents "{}"
#comfunc global ICredentialProviderCredentialEvents_SetFieldState                 3 sptr,int,int
#comfunc global ICredentialProviderCredentialEvents_SetFieldInteractiveState      4 sptr,int,int
#comfunc global ICredentialProviderCredentialEvents_SetFieldString                5 sptr,int,wstr
#comfunc global ICredentialProviderCredentialEvents_SetFieldCheckbox              6 sptr,int,int,wstr
#comfunc global ICredentialProviderCredentialEvents_SetFieldBitmap                7 sptr,int,sptr
#comfunc global ICredentialProviderCredentialEvents_SetFieldComboBoxSelectedItem  8 sptr,int,int
#comfunc global ICredentialProviderCredentialEvents_DeleteFieldComboBoxItem       9 sptr,int,int
#comfunc global ICredentialProviderCredentialEvents_AppendFieldComboBoxItem       10 sptr,int,wstr
#comfunc global ICredentialProviderCredentialEvents_SetFieldSubmitButton          11 sptr,int,int
#comfunc global ICredentialProviderCredentialEvents_OnCreatingWindow              12 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。