diff --git a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs index 7d1e643..9aff688 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs @@ -60,6 +60,8 @@ namespace Lithnet.CredentialProvider Marshal.AddRef(intPtr); } + this.OnLoad(); + return HRESULT.S_OK; } catch (Exception ex) @@ -83,6 +85,8 @@ namespace Lithnet.CredentialProvider this.credentialProviderEventsAdviseContext = IntPtr.Zero; } + this.OnUnload(); + return HRESULT.S_OK; } catch (Exception ex) diff --git a/src/Lithnet.CredentialProvider/CredentialProviderBase.cs b/src/Lithnet.CredentialProvider/CredentialProviderBase.cs index 605c31b..3568fb1 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderBase.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderBase.cs @@ -174,6 +174,16 @@ namespace Lithnet.CredentialProvider /// The inbound serialized credential public virtual void OnSetSerialization(CredentialSerialization inboundSerialization) { } + /// + /// This method is first called when the credential provider is initialized. Override this method to perform any initialization tasks + /// + public virtual void OnLoad() { } + + /// + /// The method is called when the credential provider is being unloaded. Override this method to perform any cleanup tasks + /// + public virtual void OnUnload() { } + private void BuildControls() { if (this.Controls == null) diff --git a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs index bf4a163..81b0362 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs @@ -22,6 +22,8 @@ namespace Lithnet.CredentialProvider Marshal.AddRef(intPtr); } + this.OnLoad(); + return HRESULT.S_OK; } catch (Exception ex) @@ -45,6 +47,8 @@ namespace Lithnet.CredentialProvider this.events = null; } + this.OnUnload(); + return HRESULT.S_OK; } catch (Exception ex) diff --git a/src/Lithnet.CredentialProvider/CredentialTile.cs b/src/Lithnet.CredentialProvider/CredentialTile.cs index 16facd2..9afcac7 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile.cs @@ -135,6 +135,17 @@ namespace Lithnet.CredentialProvider this.events2.EndFieldUpdates(); } + + /// + /// This method is called when the credential provider tile is initialized. Override this method to perform any initialization tasks + /// + public virtual void OnLoad() { } + + /// + /// The method is called when the credential provider tile is being unloaded. Override this method to perform any cleanup tasks + /// + public virtual void OnUnload() { } + /// /// Called after the tile has been initialized. Override this method to perform post-initialization actions. ///