ICredentialProviderCredentialEvents2 interface (credentialprovider.h)

Extends the ICredentialProviderCredentialEvents interface by adding methods that enable batch updating of fields in theLogon UI or Credential UI.


The ICredentialProviderCredentialEvents2 interface inherits from ICredentialProviderCredentialEvents. ICredentialProviderCredentialEvents2 also has these types of members:


The ICredentialProviderCredentialEvents2 interface has these methods.


Starts a batch update to fields in the logon or credential UI.

Finishes and commits the batch updates started by BeginFieldUpdates.

Specifies whether a specified field in the logon or credential UI should display a "password reveal" glyph or is expected to receive an e-mail address.


In Windows 7 and Windows Vista, many credential providers used ICredentialProviderEvents::CredentialsChanged to update UI. While this works, it causes a re-enumeration of all the credentials from the calling credential provider. The processing of this event can, under some circumstances, lead to flashing or focus changes in the UI due to this re-enumeration. Therefore, using ICredentialProviderEvents::CredentialsChanged solely for UI updates is discouraged. The new recommendation is as follows:

  • Use ICredentialProviderEvents::CredentialsChanged only if a credential provider needs to do automatically logon a user or change the number of credentials it is enumerating.
  • Use ICredentialProviderCredentialEvents2 to update a credential provider's UI.
ICredentialProviderCredentialEvents2 includes all of the methods inherited from ICredentialProviderCredentialEvents. This includes all of the inherited methods except OnCreatingWindow.

When interacting with a background thread, the use of ICredentialProviderCredentialEvents2 is similar to the use of ICredentialProviderCredentialEvents, in that proper inter-thread communication methods must be used.

When to implement

Third-parties do not implement this interface. Call the QueryInterface method on ICredentialProviderCredentialEvents to obtain this object.


Minimum supported client Windows 8 [desktop apps only]
Minimum supported server Windows Server 2012 [desktop apps only]
Target Platform Windows
Header credentialprovider.h

See also

Credential Providers in Windows 10