Data Types C#

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);
    }
}