以下是 ICredentialProviderCredential 接口的基本定义:
DECLARE_INTERFACE_IID_(ICredentialProviderCredential, IUnknown)
{
STDMETHOD(Advise)(
_In_ ICredentialProviderCredentialEvents *pcpce,
_In_ UINT_PTR upAdviseContext
) PURE;
STDMETHOD(UnAdvise)() PURE;
STDMETHOD(SetSelected)(_Out_ BOOL *pbAutoLogon) PURE;
STDMETHOD(SetDeselected)() PURE;
STDMETHOD(GetFieldState)(
_In_ DWORD dwFieldID,
_Out_ CREDENTIAL_PROVIDER_FIELD_STATE *pcpfs,
_Out_ CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE *pcpfis
) PURE;
STDMETHOD(GetStringValue)(
_In_ DWORD dwFieldID,
_Outptr_result_nullonfailure_ PWSTR *ppwsz
) PURE;
STDMETHOD(GetBitmapValue)(
_In_ DWORD dwFieldID,
_Outptr_result_nullonfailure_ HBITMAP *phbmp
) PURE;
STDMETHOD(GetCheckboxValue)(
_In_ DWORD dwFieldID,
_Out_ BOOL *pbChecked,
_Outptr_result_nullonfailure_ PWSTR *ppwszLabel
) PURE;
STDMETHOD(GetComboBoxValueCount)(
_In_ DWORD dwFieldID,
_Out_ DWORD *pcItems,
_Out_ DWORD *pdwSelectedItem
) PURE;
STDMETHOD(GetComboBoxValueAt)(
_In_ DWORD dwFieldID,
_In_ DWORD dwItem,
_Outptr_result_nullonfailure_ PWSTR *ppwszItem
) PURE;
STDMETHOD(GetSubmitButtonValue)(
_In_ DWORD dwFieldID,
_Out_ DWORD *pdwAdjacentTo
) PURE;
STDMETHOD(GetSubmitButtonDescription)(
_In_ DWORD dwFieldID,
_Outptr_result_nullonfailure_ PWSTR *ppwsz
) PURE;
STDMETHOD(GetIconValue)(
_In_ DWORD dwFieldID,
_Outptr_result_nullonfailure_ HICON *phIcon
) PURE;
STDMETHOD(SetValue)(
_In_ DWORD dwFieldID,
_In_ PCWSTR pwz
) PURE;
STDMETHOD(GetUserSid)(
_Outptr_result_nullonfailure_ PWSTR *ppwszSid
) PURE;
STDMETHOD(GetBitmapValue)(
_In_ DWORD dwFieldID,
_Outptr_result_nullonfailure_ HBITMAP *phbmp
) PURE;
};
这个接口包含了用于与 Credential Provider 凭据对象进行交互的方法,包括设置和获取凭据对象的属性,处理用户输入等。
主要方法包括:
- Advise 和 UnAdvise: 用于向凭据对象注册和注销事件通知。
- SetSelected 和 SetDeselected: 用于通知凭据对象是否被选择。
- GetFieldState: 获取字段的状态和交互状态。
- GetStringValue, GetBitmapValue, GetCheckboxValue, GetComboBoxValueCount, GetComboBoxValueAt, GetSubmitButtonValue, GetSubmitButtonDescription, GetIconValue: 用于获取特定字段的值。
- SetValue: 用于设置字段的值。
- GetUserSid: 获取用户的安全标识符(SID)。
这些方法允许开发者实现自定义的凭据对象,以提供与 Windows 登录系统的集成。请注意,具体的实现和使用方式会根据 Credential Provider 的要求和场景而有所不同。如果需要更详细的信息,建议查阅最新的 Microsoft 官方文档或头文件。
转载请注明出处:http://www.zyzy.cn/article/detail/25120/Win32 API/Credentialprovider.h/ICredentialProviderCredential