//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
#region Using directives
using System;
#endregion
namespace GMap.NET.GPS{
/// <summary>
/// Summary description for Utils.
/// </summary>
public class Utils
{
public Utils()
{
}
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);
}
}
|