diff --git a/src/Lithnet.CredentialProvider/Controls/BitmapControl.cs b/src/Lithnet.CredentialProvider/Controls/BitmapControl.cs
index 15fa7ef..00cc58f 100644
--- a/src/Lithnet.CredentialProvider/Controls/BitmapControl.cs
+++ b/src/Lithnet.CredentialProvider/Controls/BitmapControl.cs
@@ -24,6 +24,11 @@ protected BitmapControl(string key, string label, bool isProviderLogo, Bitmap bi
protected BitmapControl(BitmapControl source) : base(source) { }
+ ///
+ /// Gets or sets a value indicating whether the bitmap should be displayed with transparency enabled.
+ ///
+ public bool EnableTransparent { get; set; } = false;
+
///
/// Specifies the background color that should replace any transparent elements of the image. This defaults to #707070
///
@@ -84,11 +89,15 @@ internal IntPtr GetBitmapBuffer(out uint size)
}
var image = Bitmap.FromHbitmap(hbitmap);
-
+ if (this.EnableTransparent)
+ {
+ image.MakeTransparent(this.BackgroundColor);
+ }
IntPtr buffer = IntPtr.Zero;
using (MemoryStream ms = new MemoryStream())
{
- image.Save(ms, ImageFormat.Bmp);
+ var format = this.EnableTransparent ? ImageFormat.Png : ImageFormat.Bmp;
+ image.Save(ms, format);
var bitmapBytes = ms.ToArray();
size = (uint)bitmapBytes.Length;
buffer = Marshal.AllocCoTaskMem(bitmapBytes.Length);
diff --git a/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs b/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs
index 088b9e5..4869416 100644
--- a/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs
+++ b/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs
@@ -3,7 +3,7 @@
namespace Lithnet.CredentialProvider
{
- internal abstract partial class CredentialTile3 : ICredentialProviderCredential3
+ public abstract partial class CredentialTile3 : ICredentialProviderCredential3
{
int ICredentialProviderCredential3.GetBitmapBufferValue(uint dwFieldID, out uint pImageBufferSize, out IntPtr ppImageBuffer)
{
@@ -19,6 +19,7 @@ int ICredentialProviderCredential3.GetBitmapBufferValue(uint dwFieldID, out uint
if (this.Controls.TryGetControl(dwFieldID, FieldType.TileImage, out var instance))
{
var hbitmap = instance.GetBitmapBuffer(out pImageBufferSize);
+ ppImageBuffer = hbitmap;
return HRESULT.S_OK;
}
diff --git a/src/Lithnet.CredentialProvider/CredentialTile3.cs b/src/Lithnet.CredentialProvider/CredentialTile3.cs
index 20207b1..fa0f365 100644
--- a/src/Lithnet.CredentialProvider/CredentialTile3.cs
+++ b/src/Lithnet.CredentialProvider/CredentialTile3.cs
@@ -7,7 +7,7 @@ namespace Lithnet.CredentialProvider
/// Represents a user credential tile that implements the functionality of and , but includes support for dynamically updating bitmap images.
///
/// This interface is public, but undocumented by Microsoft. It is recommended to use tiles unless this specific functionality is needed
- internal abstract partial class CredentialTile3 : CredentialTile2
+ public abstract partial class CredentialTile3 : CredentialTile2
{
protected CredentialTile3(CredentialProviderBase credentialProvider) : this(credentialProvider, null) { }
diff --git a/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj b/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj
index 7dfebbb..24aa58d 100644
--- a/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj
+++ b/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj
@@ -1,6 +1,6 @@
- net6.0-windows;net7.0-windows;net8.0-windows;net461
+ net10.0-windows;net7.0-windows;net8.0-windows;net461
false
Library
true
@@ -17,8 +17,7 @@
Lithnet
Copyright 2023 Lithnet Pty Ltd
Lithnet Windows Credential Provider
- 1.1.0
- beta1
+ 1.1.28
Lithnet
true
true