Changed calls from conversion operator to DangerousGetHandle for all GenericSafeHandle derivatives.

pull/21/head
David Hall 2018-09-04 13:42:49 -06:00
parent 20d3d2df0d
commit bbc22f6646
5 changed files with 9 additions and 8 deletions

View File

@ -1789,7 +1789,8 @@ namespace Vanara.PInvoke
var hLib = LoadLibraryEx(fileName, IntPtr.Zero, flags);
if (hLib.IsInvalid)
throw new Win32Exception();
SetHandle((IntPtr)hLib);
SetHandle(hLib.DangerousGetHandle());
hLib.SetHandleAsInvalid();
}
/// <summary>Initializes a new instance of the <see cref="SafeLibraryHandle"/> class.</summary>

View File

@ -932,7 +932,7 @@ namespace Vanara.PInvoke
cnt = cnt << 1;
var h = new SafeProcessHeapBlockHandle((uint)Marshal.SizeOf(typeof(uint)) * cnt);
var c = GetConsoleProcessList(h, cnt);
if (c >= 1 && c <= cnt) return ((IntPtr)h).ToArray<uint>((int)c);
if (c >= 1 && c <= cnt) return h.DangerousGetHandle().ToArray<uint>((int)c);
} while (cnt > 0);
throw Win32Error.GetLastError().GetException();
}

View File

@ -29,7 +29,7 @@ namespace Vanara.InteropServices.Tests
{
var h = new GenericSafeHandle(p => true);
Assert.That(h.IsInvalid && h.DangerousGetHandle() == IntPtr.Zero);
Assert.That(IntPtr.Zero.Equals((IntPtr)h));
Assert.That(IntPtr.Zero.Equals(h.DangerousGetHandle()));
h.Dispose();
}

View File

@ -385,15 +385,15 @@ namespace Vanara.PInvoke.Tests
{
var ph = new SafeProcessHeapBlockHandle(512);
var fw = new WIN32_FIND_DATA {ftCreationTime = DateTime.Today.ToFileTimeStruct(), cFileName = "test.txt", dwFileAttributes = FileAttributes.Normal};
Marshal.StructureToPtr(fw, (IntPtr)ph, false);
Assert.That(Marshal.ReadInt32((IntPtr)ph), Is.EqualTo((int)FileAttributes.Normal));
Marshal.StructureToPtr(fw, ph.DangerousGetHandle(), false);
Assert.That(Marshal.ReadInt32(ph.DangerousGetHandle()), Is.EqualTo((int)FileAttributes.Normal));
Assert.That(ph.Size, Is.EqualTo(512));
using (var hh = HeapCreate(0, IntPtr.Zero, IntPtr.Zero))
{
var hb = hh.GetBlock(512);
Marshal.StructureToPtr(fw, (IntPtr)hb, false);
Assert.That(Marshal.ReadInt32((IntPtr)hb), Is.EqualTo((int) FileAttributes.Normal));
Marshal.StructureToPtr(fw, hb.DangerousGetHandle(), false);
Assert.That(Marshal.ReadInt32(hb.DangerousGetHandle()), Is.EqualTo((int) FileAttributes.Normal));
Assert.That(hb.Size, Is.EqualTo(512));
}
}

View File

@ -586,7 +586,7 @@ namespace Vanara.Windows.Shell
throw new InvalidOperationException("Thumbnails are not supported by this item.");
hres.ThrowIfFailed();
//Marshal.ReleaseComObject(fctry);
return GetTransparentBitmap((IntPtr)hbitmap);
return GetTransparentBitmap(hbitmap.DangerousGetHandle());
}
if (!flags.IsFlagSet(ShellItemGetImageOptions.IconOnly))
return GetThumbnail(size.Width);