Cleaned up code on marshalers

pull/60/head
David Hall 2019-05-13 14:43:03 -06:00
parent 0d8984a840
commit 49b489d4be
1 changed files with 3 additions and 13 deletions

View File

@ -3699,7 +3699,7 @@ namespace Vanara.PInvoke
{
private static readonly Dictionary<IntPtr, int> pastCallArraySizes = new Dictionary<IntPtr, int>();
public static ICustomMarshaler GetInstance(string cookie) => new LsaUnicodeStringArrayMarshaler();
public static ICustomMarshaler GetInstance(string _) => new LsaUnicodeStringArrayMarshaler();
public void CleanUpManagedData(object ManagedObj)
{
@ -3716,7 +3716,6 @@ namespace Vanara.PInvoke
pastCallArraySizes.Remove(pNativeData);
}
Marshal.FreeCoTaskMem(pNativeData);
pNativeData = IntPtr.Zero;
}
public int GetNativeDataSize() => -1;
@ -3751,7 +3750,7 @@ namespace Vanara.PInvoke
/// <seealso cref="ICustomMarshaler"/>
internal class LsaUnicodeStringMarshaler : ICustomMarshaler
{
public static ICustomMarshaler GetInstance(string cookie) => new LsaUnicodeStringMarshaler();
public static ICustomMarshaler GetInstance(string _) => new LsaUnicodeStringMarshaler();
public void CleanUpManagedData(object ManagedObj)
{
@ -3761,20 +3760,11 @@ namespace Vanara.PInvoke
{
if (pNativeData == IntPtr.Zero) return;
Marshal.FreeCoTaskMem(pNativeData);
pNativeData = IntPtr.Zero;
}
public int GetNativeDataSize() => Marshal.SizeOf(typeof(LSA_UNICODE_STRING));
public IntPtr MarshalManagedToNative(object ManagedObj)
{
var s = ManagedObj as string;
if (s == null) return IntPtr.Zero;
var str = new LSA_UNICODE_STRING(s);
var ret = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(LSA_UNICODE_STRING)));
Marshal.StructureToPtr(str, ret, false);
return ret;
}
public IntPtr MarshalManagedToNative(object ManagedObj) => ManagedObj is string s ? new LSA_UNICODE_STRING(s).StructureToPtr(Marshal.AllocCoTaskMem, out _) : IntPtr.Zero;
public object MarshalNativeToManaged(IntPtr pNativeData)
{