namespace Deppton.Mobile.Gps
{
using System;
public static class Utils
{
///
/// Truncates the specified double.
///
/// The double to truncate.
/// The truncated double.
public static double Truncate(this double value)
{
if (value >= 0)
{
return Math.Floor(value);
}
else
{
return Math.Ceiling(value);
}
}
public static IntPtr LocalAlloc(int byteCount)
{
IntPtr ptr = Win32.LocalAlloc(Win32.LMEM_ZEROINIT, byteCount);
if (ptr == IntPtr.Zero)
{
throw new OutOfMemoryException();
}
return ptr;
}
public static void LocalFree(IntPtr hMem)
{
IntPtr ptr = Win32.LocalFree(hMem);
if (ptr != IntPtr.Zero)
{
throw new ArgumentException();
}
}
}
public class Win32
{
public const int LMEM_ZEROINIT = 0x40;
[System.Runtime.InteropServices.DllImport("coredll.dll", EntryPoint = "#33", SetLastError = true)]
public static extern IntPtr LocalAlloc(int flags, int byteCount);
[System.Runtime.InteropServices.DllImport("coredll.dll", EntryPoint = "#36", SetLastError = true)]
public static extern IntPtr LocalFree(IntPtr hMem);
}
}