Finished unit tests and fixes for winbase.h mailslot functions

pull/83/head
David Hall 2019-07-25 14:22:19 -06:00
parent 2dca231e54
commit 3b33b9ac4c
2 changed files with 26 additions and 1 deletions

View File

@ -62,7 +62,7 @@ namespace Vanara.PInvoke
// LPSECURITY_ATTRIBUTES lpSecurityAttributes); https://msdn.microsoft.com/en-us/library/windows/desktop/aa365147(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, CharSet = CharSet.Auto)]
[PInvokeData("Winbase.h", MSDNShortId = "aa365147")]
public static extern SafeMailslotHandle CreateMailslot(string lpName, uint nMaxMessageSize, uint lReadTimeout, [In] SECURITY_ATTRIBUTES lpSecurityAttributes);
public static extern SafeMailslotHandle CreateMailslot(string lpName, uint nMaxMessageSize, uint lReadTimeout, [In, Optional] SECURITY_ATTRIBUTES lpSecurityAttributes);
/// <summary>Retrieves information about the specified mailslot.</summary>
/// <param name="hMailslot">A handle to a mailslot. The <c>CreateMailslot</c> function must create this handle.</param>

View File

@ -0,0 +1,25 @@
using NUnit.Framework;
using System;
using System.Runtime.InteropServices;
using System.Text;
using Vanara.InteropServices;
using static Vanara.PInvoke.AdvApi32;
using static Vanara.PInvoke.Kernel32;
namespace Vanara.PInvoke.Tests
{
[TestFixture]
public partial class WinBaseTests_Mailslot
{
[Test]
public void MailslotTest()
{
using (var hMs = CreateMailslot("\\\\.\\mailslot\\sample_mailslot", 0, MAILSLOT_WAIT_FOREVER))
{
Assert.That(hMs, ResultIs.ValidHandle);
Assert.That(GetMailslotInfo(hMs, out var mxSz, out var nxSz, out var msgCnt, out var to), ResultIs.Successful);
Assert.That(SetMailslotInfo(hMs, to), ResultIs.Successful);
}
}
}
}