123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Diagnostics.CodeAnalysis;
- using System.Globalization;
- using System.IO;
- using System.Reflection;
- using System.Runtime.InteropServices;
- using System.Security.Cryptography;
- using System.Text;
- using System.Windows;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- namespace Standard;
- internal static class Utility
- {
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private static bool _MemCmp(IntPtr left, IntPtr right, long cb)
- {
- int num = 0;
- while ((long) num < cb - 8L)
- {
- long num2 = Marshal.ReadInt64(left, num);
- long num3 = Marshal.ReadInt64(right, num);
- if (num2 != num3)
- {
- return false;
- }
- num += 8;
- }
- while ((long) num < cb)
- {
- byte b = Marshal.ReadByte(left, num);
- byte b2 = Marshal.ReadByte(right, num);
- if (b != b2)
- {
- return false;
- }
- num++;
- }
- return true;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static int RGB(Color c)
- {
- return (int) c.R | (int) c.G << 8 | (int) c.B << 16;
- }
- public static Color ColorFromArgbDword(uint color)
- {
- return Color.FromArgb((byte) ((color & 4278190080u) >> 24), (byte) ((color & 16711680u) >> 16), (byte) ((color & 65280u) >> 8), (byte) (color & 255u));
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static int GET_X_LPARAM(IntPtr lParam)
- {
- return Utility.LOWORD(lParam.ToInt32());
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static int GET_Y_LPARAM(IntPtr lParam)
- {
- return Utility.HIWORD(lParam.ToInt32());
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static int HIWORD(int i)
- {
- return (int) ((short) (i >> 16));
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static int LOWORD(int i)
- {
- return (int) ((short) (i & 65535));
- }
- [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool AreStreamsEqual(Stream left, Stream right)
- {
- if (left == null)
- {
- return right == null;
- }
- if (right == null)
- {
- return false;
- }
- if (!left.CanRead || !right.CanRead)
- {
- throw new NotSupportedException("The streams can't be read for comparison");
- }
- if (left.Length != right.Length)
- {
- return false;
- }
- int num = (int) left.Length;
- left.Position = 0L;
- right.Position = 0L;
- int i = 0;
- int num2 = 0;
- byte[] array = new byte[512];
- byte[] array2 = new byte[512];
- GCHandle gchandle = GCHandle.Alloc(array, GCHandleType.Pinned);
- IntPtr left2 = gchandle.AddrOfPinnedObject();
- GCHandle gchandle2 = GCHandle.Alloc(array2, GCHandleType.Pinned);
- IntPtr right2 = gchandle2.AddrOfPinnedObject();
- bool result;
- try
- {
- while (i < num)
- {
- int num3 = left.Read(array, 0, array.Length);
- int num4 = right.Read(array2, 0, array2.Length);
- if (num3 != num4)
- {
- return false;
- }
- if (!Utility._MemCmp(left2, right2, (long) num3))
- {
- return false;
- }
- i += num3;
- num2 += num4;
- }
- result = true;
- }
- finally
- {
- gchandle.Free();
- gchandle2.Free();
- }
- return result;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool GuidTryParse(string guidString, out Guid guid)
- {
- Verify.IsNeitherNullNorEmpty(guidString, "guidString");
- try
- {
- guid = new Guid(guidString);
- return true;
- }
- catch (FormatException)
- {
- }
- catch (OverflowException)
- {
- }
- guid = default(Guid);
- return false;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsFlagSet(int value, int mask)
- {
- return 0 != (value & mask);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsFlagSet(uint value, uint mask)
- {
- return 0u != (value & mask);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsFlagSet(long value, long mask)
- {
- return 0L != (value & mask);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsFlagSet(ulong value, ulong mask)
- {
- return 0UL != (value & mask);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsOSVistaOrNewer
- {
- get
- {
- return Utility._osVersion >= new Version(6, 0);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool IsOSWindows7OrNewer
- {
- get
- {
- return Utility._osVersion >= new Version(6, 1);
- }
- }
- public static bool IsPresentationFrameworkVersionLessThan4
- {
- get
- {
- return Utility._presentationFrameworkVersion < new Version(4, 0);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- [SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
- public static IntPtr GenerateHICON(ImageSource image, Size dimensions)
- {
- if (image == null)
- {
- return IntPtr.Zero;
- }
- BitmapFrame bitmapFrame = image as BitmapFrame;
- if (bitmapFrame != null)
- {
- bitmapFrame = Utility.GetBestMatch(bitmapFrame.Decoder.Frames, (int) dimensions.Width, (int) dimensions.Height);
- }
- else
- {
- Rect rectangle = new Rect(0.0, 0.0, dimensions.Width, dimensions.Height);
- double num = dimensions.Width / dimensions.Height;
- double num2 = image.Width / image.Height;
- if (image.Width <= dimensions.Width && image.Height <= dimensions.Height)
- {
- rectangle = new Rect((dimensions.Width - image.Width) / 2.0, (dimensions.Height - image.Height) / 2.0, image.Width, image.Height);
- }
- else if (num > num2)
- {
- double num3 = image.Width / image.Height * dimensions.Width;
- rectangle = new Rect((dimensions.Width - num3) / 2.0, 0.0, num3, dimensions.Height);
- }
- else if (num < num2)
- {
- double num4 = image.Height / image.Width * dimensions.Height;
- rectangle = new Rect(0.0, (dimensions.Height - num4) / 2.0, dimensions.Width, num4);
- }
- DrawingVisual drawingVisual = new DrawingVisual();
- DrawingContext drawingContext = drawingVisual.RenderOpen();
- drawingContext.DrawImage(image, rectangle);
- drawingContext.Close();
- RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap((int) dimensions.Width, (int) dimensions.Height, 96.0, 96.0, PixelFormats.Pbgra32);
- renderTargetBitmap.Render(drawingVisual);
- bitmapFrame = BitmapFrame.Create(renderTargetBitmap);
- }
- IntPtr result;
- using (MemoryStream memoryStream = new MemoryStream())
- {
- new PngBitmapEncoder
- {
- Frames =
- {
- bitmapFrame
- }
- }.Save(memoryStream);
- using (ManagedIStream managedIStream = new ManagedIStream(memoryStream))
- {
- IntPtr zero = IntPtr.Zero;
- try
- {
- Status status = NativeMethods.GdipCreateBitmapFromStream(managedIStream, out zero);
- if (status != Status.Ok)
- {
- result = IntPtr.Zero;
- }
- else
- {
- IntPtr intPtr;
- status = NativeMethods.GdipCreateHICONFromBitmap(zero, out intPtr);
- if (status != Status.Ok)
- {
- result = IntPtr.Zero;
- }
- else
- {
- result = intPtr;
- }
- }
- }
- finally
- {
- Utility.SafeDisposeImage(ref zero);
- }
- }
- }
- return result;
- }
- public static BitmapFrame GetBestMatch(IList<BitmapFrame> frames, int width, int height)
- {
- return Utility._GetBestMatch(frames, Utility._GetBitDepth(), width, height);
- }
- private static int _MatchImage(BitmapFrame frame, int bitDepth, int width, int height, int bpp)
- {
- return 2 * Utility._WeightedAbs(bpp, bitDepth, false) + Utility._WeightedAbs(frame.PixelWidth, width, true) + Utility._WeightedAbs(frame.PixelHeight, height, true);
- }
- private static int _WeightedAbs(int valueHave, int valueWant, bool fPunish)
- {
- int num = valueHave - valueWant;
- if (num < 0)
- {
- num = (fPunish ? -2 : -1) * num;
- }
- return num;
- }
- private static BitmapFrame _GetBestMatch(IList<BitmapFrame> frames, int bitDepth, int width, int height)
- {
- int num = int.MaxValue;
- int num2 = 0;
- int index = 0;
- bool flag = frames[0].Decoder is IconBitmapDecoder;
- int num3 = 0;
- while (num3 < frames.Count && num != 0)
- {
- int num4 = flag ? frames[num3].Thumbnail.Format.BitsPerPixel : frames[num3].Format.BitsPerPixel;
- if (num4 == 0)
- {
- num4 = 8;
- }
- int num5 = Utility._MatchImage(frames[num3], bitDepth, width, height, num4);
- if (num5 < num)
- {
- index = num3;
- num2 = num4;
- num = num5;
- }
- else if (num5 == num && num2 < num4)
- {
- index = num3;
- num2 = num4;
- }
- num3++;
- }
- return frames[index];
- }
- private static int _GetBitDepth()
- {
- if (Utility.s_bitDepth == 0)
- {
- using (SafeDC desktop = SafeDC.GetDesktop())
- {
- Utility.s_bitDepth = NativeMethods.GetDeviceCaps(desktop, DeviceCap.BITSPIXEL) * NativeMethods.GetDeviceCaps(desktop, DeviceCap.PLANES);
- }
- }
- return Utility.s_bitDepth;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDeleteFile(string path)
- {
- if (!string.IsNullOrEmpty(path))
- {
- File.Delete(path);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDeleteObject(ref IntPtr gdiObject)
- {
- IntPtr intPtr = gdiObject;
- gdiObject = IntPtr.Zero;
- if (IntPtr.Zero != intPtr)
- {
- NativeMethods.DeleteObject(intPtr);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDestroyIcon(ref IntPtr hicon)
- {
- IntPtr intPtr = hicon;
- hicon = IntPtr.Zero;
- if (IntPtr.Zero != intPtr)
- {
- NativeMethods.DestroyIcon(intPtr);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDestroyWindow(ref IntPtr hwnd)
- {
- IntPtr hwnd2 = hwnd;
- hwnd = IntPtr.Zero;
- if (NativeMethods.IsWindow(hwnd2))
- {
- NativeMethods.DestroyWindow(hwnd2);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDispose<T>(ref T disposable) where T : IDisposable
- {
- IDisposable disposable2 = disposable;
- disposable = default(T);
- if (disposable2 != null)
- {
- disposable2.Dispose();
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeDisposeImage(ref IntPtr gdipImage)
- {
- IntPtr intPtr = gdipImage;
- gdipImage = IntPtr.Zero;
- if (IntPtr.Zero != intPtr)
- {
- NativeMethods.GdipDisposeImage(intPtr);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
- public static void SafeCoTaskMemFree(ref IntPtr ptr)
- {
- IntPtr intPtr = ptr;
- ptr = IntPtr.Zero;
- if (IntPtr.Zero != intPtr)
- {
- Marshal.FreeCoTaskMem(intPtr);
- }
- }
- [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void SafeFreeHGlobal(ref IntPtr hglobal)
- {
- IntPtr intPtr = hglobal;
- hglobal = IntPtr.Zero;
- if (IntPtr.Zero != intPtr)
- {
- Marshal.FreeHGlobal(intPtr);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
- public static void SafeRelease<T>(ref T comObject) where T : class
- {
- T t = comObject;
- comObject = default(T);
- if (t != null)
- {
- Marshal.ReleaseComObject(t);
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void GeneratePropertyString(StringBuilder source, string propertyName, string value)
- {
- if (source.Length != 0)
- {
- source.Append(' ');
- }
- source.Append(propertyName);
- source.Append(": ");
- if (string.IsNullOrEmpty(value))
- {
- source.Append("<null>");
- return;
- }
- source.Append('"');
- source.Append(value);
- source.Append('"');
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- [Obsolete]
- public static string GenerateToString<T>(T @object) where T : struct
- {
- StringBuilder stringBuilder = new StringBuilder();
- foreach (PropertyInfo propertyInfo in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public))
- {
- if (stringBuilder.Length != 0)
- {
- stringBuilder.Append(", ");
- }
- object value = propertyInfo.GetValue(@object, null);
- string format = (value == null) ? "{0}: <null>" : "{0}: \"{1}\"";
- stringBuilder.AppendFormat(format, propertyInfo.Name, value);
- }
- return stringBuilder.ToString();
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void CopyStream(Stream destination, Stream source)
- {
- destination.Position = 0L;
- if (source.CanSeek)
- {
- source.Position = 0L;
- destination.SetLength(source.Length);
- }
- byte[] array = new byte[4096];
- int num;
- do
- {
- num = source.Read(array, 0, array.Length);
- if (num != 0)
- {
- destination.Write(array, 0, num);
- }
- }
- while (array.Length == num);
- destination.Position = 0L;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static string HashStreamMD5(Stream stm)
- {
- stm.Position = 0L;
- StringBuilder stringBuilder = new StringBuilder();
- using (MD5 md = MD5.Create())
- {
- foreach (byte b in md.ComputeHash(stm))
- {
- stringBuilder.Append(b.ToString("x2", CultureInfo.InvariantCulture));
- }
- }
- return stringBuilder.ToString();
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static void EnsureDirectory(string path)
- {
- if (!Directory.Exists(Path.GetDirectoryName(path)))
- {
- Directory.CreateDirectory(Path.GetDirectoryName(path));
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static bool MemCmp(byte[] left, byte[] right, int cb)
- {
- GCHandle gchandle = GCHandle.Alloc(left, GCHandleType.Pinned);
- IntPtr left2 = gchandle.AddrOfPinnedObject();
- GCHandle gchandle2 = GCHandle.Alloc(right, GCHandleType.Pinned);
- IntPtr right2 = gchandle2.AddrOfPinnedObject();
- bool result = Utility._MemCmp(left2, right2, (long) cb);
- gchandle.Free();
- gchandle2.Free();
- return result;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static string UrlDecode(string url)
- {
- if (url == null)
- {
- return null;
- }
- Utility._UrlDecoder urlDecoder = new Utility._UrlDecoder(url.Length, Encoding.UTF8);
- int length = url.Length;
- for (int i = 0; i < length; i++)
- {
- char c = url[i];
- if (c == '+')
- {
- urlDecoder.AddByte(32);
- }
- else
- {
- if (c == '%' && i < length - 2)
- {
- if (url[i + 1] == 'u' && i < length - 5)
- {
- int num = Utility._HexToInt(url[i + 2]);
- int num2 = Utility._HexToInt(url[i + 3]);
- int num3 = Utility._HexToInt(url[i + 4]);
- int num4 = Utility._HexToInt(url[i + 5]);
- if (num >= 0 && num2 >= 0 && num3 >= 0 && num4 >= 0)
- {
- urlDecoder.AddChar((char) (num << 12 | num2 << 8 | num3 << 4 | num4));
- i += 5;
- goto IL_12D;
- }
- }
- else
- {
- int num5 = Utility._HexToInt(url[i + 1]);
- int num6 = Utility._HexToInt(url[i + 2]);
- if (num5 >= 0 && num6 >= 0)
- {
- urlDecoder.AddByte((byte) (num5 << 4 | num6));
- i += 2;
- goto IL_12D;
- }
- }
- }
- if ((c & 'タ') == '\0')
- {
- urlDecoder.AddByte((byte) c);
- }
- else
- {
- urlDecoder.AddChar(c);
- }
- }
- IL_12D:;
- }
- return urlDecoder.GetString();
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public static string UrlEncode(string url)
- {
- if (url == null)
- {
- return null;
- }
- byte[] array = Encoding.UTF8.GetBytes(url);
- bool flag = false;
- int num = 0;
- foreach (byte b in array)
- {
- if (b == 32)
- {
- flag = true;
- }
- else if (!Utility._UrlEncodeIsSafe(b))
- {
- num++;
- flag = true;
- }
- }
- if (flag)
- {
- byte[] array3 = new byte[array.Length + num * 2];
- int num2 = 0;
- foreach (byte b2 in array)
- {
- if (Utility._UrlEncodeIsSafe(b2))
- {
- array3[num2++] = b2;
- }
- else if (b2 == 32)
- {
- array3[num2++] = 43;
- }
- else
- {
- array3[num2++] = 37;
- array3[num2++] = Utility._IntToHex(b2 >> 4 & 15);
- array3[num2++] = Utility._IntToHex((int) (b2 & 15));
- }
- }
- array = array3;
- }
- return Encoding.ASCII.GetString(array);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private static bool _UrlEncodeIsSafe(byte b)
- {
- if (Utility._IsAsciiAlphaNumeric(b))
- {
- return true;
- }
- if (b != 33)
- {
- switch (b)
- {
- case 39:
- case 40:
- case 41:
- case 42:
- case 45:
- case 46:
- return true;
- case 43:
- case 44:
- break;
- default:
- if (b == 95)
- {
- return true;
- }
- break;
- }
- return false;
- }
- return true;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private static bool _IsAsciiAlphaNumeric(byte b)
- {
- return (b >= 97 && b <= 122) || (b >= 65 && b <= 90) || (b >= 48 && b <= 57);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private static byte _IntToHex(int n)
- {
- if (n <= 9)
- {
- return (byte) (n + 48);
- }
- return (byte) (n - 10 + 65);
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private static int _HexToInt(char h)
- {
- if (h >= '0' && h <= '9')
- {
- return (int) (h - '0');
- }
- if (h >= 'a' && h <= 'f')
- {
- return (int) (h - 'a' + '\n');
- }
- if (h >= 'A' && h <= 'F')
- {
- return (int) (h - 'A' + '\n');
- }
- return -1;
- }
- public static void AddDependencyPropertyChangeListener(object component, DependencyProperty property, EventHandler listener)
- {
- if (component == null)
- {
- return;
- }
- DependencyPropertyDescriptor dependencyPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(property, component.GetType());
- dependencyPropertyDescriptor.AddValueChanged(component, listener);
- }
- public static void RemoveDependencyPropertyChangeListener(object component, DependencyProperty property, EventHandler listener)
- {
- if (component == null)
- {
- return;
- }
- DependencyPropertyDescriptor dependencyPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(property, component.GetType());
- dependencyPropertyDescriptor.RemoveValueChanged(component, listener);
- }
- public static bool IsThicknessNonNegative(Thickness thickness)
- {
- return Utility.IsDoubleFiniteAndNonNegative(thickness.Top) && Utility.IsDoubleFiniteAndNonNegative(thickness.Left) && Utility.IsDoubleFiniteAndNonNegative(thickness.Bottom) && Utility.IsDoubleFiniteAndNonNegative(thickness.Right);
- }
- public static bool IsCornerRadiusValid(CornerRadius cornerRadius)
- {
- return Utility.IsDoubleFiniteAndNonNegative(cornerRadius.TopLeft) && Utility.IsDoubleFiniteAndNonNegative(cornerRadius.TopRight) && Utility.IsDoubleFiniteAndNonNegative(cornerRadius.BottomLeft) && Utility.IsDoubleFiniteAndNonNegative(cornerRadius.BottomRight);
- }
- public static bool IsDoubleFiniteAndNonNegative(double d)
- {
- return !double.IsNaN(d) && !double.IsInfinity(d) && d >= 0.0;
- }
- private static readonly Version _osVersion = Environment.OSVersion.Version;
- private static readonly Version _presentationFrameworkVersion = Assembly.GetAssembly(typeof(Window)).GetName().Version;
- private static int s_bitDepth;
- private class _UrlDecoder
- {
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public _UrlDecoder(int size, Encoding encoding)
- {
- this._encoding = encoding;
- this._charBuffer = new char[size];
- this._byteBuffer = new byte[size];
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public void AddByte(byte b)
- {
- this._byteBuffer[this._byteCount++] = b;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public void AddChar(char ch)
- {
- this._FlushBytes();
- this._charBuffer[this._charCount++] = ch;
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- private void _FlushBytes()
- {
- if (this._byteCount > 0)
- {
- this._charCount += this._encoding.GetChars(this._byteBuffer, 0, this._byteCount, this._charBuffer, this._charCount);
- this._byteCount = 0;
- }
- }
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- public string GetString()
- {
- this._FlushBytes();
- if (this._charCount > 0)
- {
- return new string(this._charBuffer, 0, this._charCount);
- }
- return "";
- }
- private readonly Encoding _encoding;
- private readonly char[] _charBuffer;
- private readonly byte[] _byteBuffer;
- private int _byteCount;
- private int _charCount;
- }
- }
|