Futher work on ControlPanel class

pull/47/head
David Hall 2019-02-18 14:30:35 -07:00
parent fb885d09d9
commit f59699c64c
2 changed files with 29 additions and 6 deletions

View File

@ -1,4 +1,9 @@
using NUnit.Framework;
using System;
using System.Runtime.InteropServices;
using System.Text;
using Vanara.InteropServices;
using Vanara.PInvoke;
using static Vanara.PInvoke.Shell32;
namespace Vanara.Windows.Shell.Tests
@ -9,10 +14,28 @@ namespace Vanara.Windows.Shell.Tests
[Test]
public void ControlPanelOpenTest()
{
Assert.That(() => ControlPanel.Open(ControlPanelItem.BitLockerDriveEncryption), Throws.Nothing);
Assert.That(() => ControlPanel.Open((ControlPanelItem)0xFFFF), Throws.Exception);
Assert.That(() => ControlPanel.Open(ControlPanelItem.DefaultPrograms, "pageFileAssoc"), Throws.Nothing);
Assert.That(() => ControlPanel.Open(ControlPanelItem.DefaultPrograms, "XX"), Throws.Exception);
const int sz = 128;
var cp = new IOpenControlPanel();
var sb = new StringBuilder(sz, sz);
//var mem = new SafeCoTaskMemString("Microsoft.Display", CharSet.Unicode);
cp.GetPath(null, sb, sz);
Assert.That(sb.Length, Is.GreaterThan(0));
cp = null;
//Assert.That(ControlPanel.Open(), Is.True);
//Assert.That(ControlPanel.Open(ControlPanelItem.BitLockerDriveEncryption), Is.True);
//Assert.That(ControlPanel.Open((ControlPanelItem)0xFFFF), Is.False);
//Assert.That(ControlPanel.Open(ControlPanelItem.DefaultPrograms, "pageFileAssoc"), Is.True);
//Assert.That(ControlPanel.Open(ControlPanelItem.DefaultPrograms, "XX"), Is.False);
//Assert.That(ControlPanel.Open(ControlPanelItem.AutoPlay), Is.True);
//Assert.That(() => ControlPanel.IsClassicView, Throws.Nothing);
//Assert.That(() => ControlPanel.GetPath(null), Throws.Nothing);
//bool found = false;
//foreach (ControlPanelItem cpi in System.Enum.GetValues(typeof(ControlPanelItem)))
// try { TestContext.WriteLine($"{cpi} = {ControlPanel.GetPath(cpi)}"); found = true; }
// catch { }
//Assert.That(found);
//Assert.That(() => ControlPanel.GetPath(ControlPanelItem.DefaultPrograms), Throws.Nothing);
//Assert.That(() => ControlPanel.GetPath(ControlPanelItem.AutoPlay), Throws.Nothing);
}
}
}

View File

@ -86,11 +86,11 @@ namespace Vanara.Windows.Shell
{
const int cchPath = 128;
var pszPath = new StringBuilder(cchPath, cchPath);
icp.GetPath(pszName, pszPath, cchPath).ThrowIfFailed();
icp.GetPath(pszName, pszPath, cchPath);
return pszPath.ToString();
}
public bool Open(string pszName = null, string page = null, object punkSite = null) => icp.Open(pszName, page, punkSite).Succeeded;
public bool Open(string pszName = null, string page = null, object punkSite = null) { try { icp.Open(pszName, page, punkSite); return true; } catch { return false; } }
protected virtual void Dispose(bool disposing)
{