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.
///