porting shell from nuget to local
This commit is contained in:
1 parent
d971be8816
commit
035ef17569
164 files changed
+10363
-11
No files matched your search
@@ -0,0 +1,94 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Standard
|
||||
{
|
||||
[SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
internal class PROPVARIANT : IDisposable
|
||||
{
|
||||
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
public VarEnum VarType
|
||||
{
|
||||
get
|
||||
{
|
||||
return (VarEnum)this.vt;
|
||||
}
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
|
||||
public string GetValue()
|
||||
{
|
||||
if (this.vt == 31)
|
||||
{
|
||||
return Marshal.PtrToStringUni(this.pointerVal);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void SetValue(bool f)
|
||||
{
|
||||
this.Clear();
|
||||
this.vt = 11;
|
||||
this.boolVal = (short)(f ? -1 : 0);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
|
||||
public void SetValue(string val)
|
||||
{
|
||||
this.Clear();
|
||||
this.vt = 31;
|
||||
this.pointerVal = Marshal.StringToCoTaskMemUni(val);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
PROPVARIANT.NativeMethods.PropVariantClear(this);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
this.Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
~PROPVARIANT()
|
||||
{
|
||||
this.Dispose(false);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "disposing")]
|
||||
private void Dispose(bool disposing)
|
||||
{
|
||||
this.Clear();
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
[FieldOffset(0)]
|
||||
private ushort vt;
|
||||
|
||||
[SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources")]
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
[FieldOffset(8)]
|
||||
private IntPtr pointerVal;
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
[FieldOffset(8)]
|
||||
private byte byteVal;
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
[FieldOffset(8)]
|
||||
private long longVal;
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
[FieldOffset(8)]
|
||||
private short boolVal;
|
||||
|
||||
private static class NativeMethods
|
||||
{
|
||||
[DllImport("ole32.dll")]
|
||||
internal static extern HRESULT PropVariantClear(PROPVARIANT pvar);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user