public int Advise(ICredentialProviderEvents pcpe, IntPtr upAdviseContext) { Events = pcpe; AdviseContext = upAdviseContext; Initialize(); Marshal.AddRef(Marshal.GetIUnknownForObject(Events)); return(HRESULT.S_OK); }
/// <summary> /// Used by the Logon UI or Credential UI to advise the credential provider that event callbacks are no longer accepted. /// </summary> /// <returns><see cref="HRESULT"/></returns> public virtual int UnAdvise() { Logger.Write(); if (events != null) { //Marshal.Release(Marshal.GetIUnknownForObject(events)); events = null; } return(HRESULT.S_OK); }
public int Advise(ICredentialProviderEvents pcpe, uint upAdviseContext) { Log.LogMethodCall(); if (pcpe != null) { credentialProviderEvents = pcpe; var intPtr = Marshal.GetIUnknownForObject(pcpe); Marshal.AddRef(intPtr); } return(HResultValues.S_OK); }
public int UnAdvise() { Log.Debug("UnAdvise()"); if (events != null) { Marshal.Release(Marshal.GetIUnknownForObject(events)); events = null; eventsContext = 0; } return(0); }
public int Advise(ICredentialProviderEvents pcpe, ulong upAdviseContext) { Log.Debug("Advise({pcpe}, {upAdviseContext})", pcpe, upAdviseContext); if (pcpe != null) { events = pcpe; eventsContext = upAdviseContext; Marshal.AddRef(Marshal.GetIUnknownForObject(events)); } return(0); }
/// <summary> /// Allows a credential provider to initiate events in the Logon UI or Credential UI through a callback interface. /// <inheritdoc path="https://docs.microsoft.com/en-us/windows/win32/api/credentialprovider/nf-credentialprovider-icredentialprovider-advise"/> /// </summary> /// <param name="pcpe">A pointer to an <see cref="ICredentialProviderEvents"/> callback interface to be used as the notification mechanism.</param> /// <param name="upAdviseContext">A pointer to an <see cref="ICredentialProviderEvents"/> callback interface to be used as the notification mechanism.</param> /// <returns><see cref="HRESULT"/></returns> public virtual int Advise(ICredentialProviderEvents pcpe, ulong upAdviseContext) { Logger.Write($"upAdviseContext: {upAdviseContext}"); if (pcpe != null) { events = pcpe; Marshal.AddRef(Marshal.GetIUnknownForObject(pcpe)); } return(HRESULT.S_OK); }
public int UnAdvise() { Log.LogMethodCall(); if (CredentialProviderEvents != null) { var intPtr = Marshal.GetIUnknownForObject(CredentialProviderEvents); Marshal.Release(intPtr); CredentialProviderEvents = null; CredentialProviderEventsAdviseContext = 0; } return(HResultValues.S_OK); }
public int UnAdvise() { Log.LogMethodCall(); if (credentialProviderEvents != null) { var intPtr = Marshal.GetIUnknownForObject(credentialProviderEvents); Marshal.Release(intPtr); credentialProviderEvents = null; } // TODO: clean up memory return(HResultValues.S_OK); }
public TimerOnDemandLogon( ICredentialProviderEvents credentialProviderEvents, ICredentialProviderCredentialEvents credentialProviderCredentialEvents, ICredentialProviderCredential credentialProviderCredential, uint textFieldId, uint adviceContext // void* ) { this.credentialProviderEvents = credentialProviderEvents; this.credentialProviderCredentialEvents = credentialProviderCredentialEvents; this.credentialProviderCredential = credentialProviderCredential; this.textFieldId = textFieldId; this.adviceContext = adviceContext; timer = new Timer(TimerCallback, this, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(1)); }
public virtual extern int Advise([MarshalAs(UnmanagedType.Interface)][In] ICredentialProviderEvents pcpe, IntPtr upAdviseContext);