public static String PtrToStringAnsi(IntPtr ptr)
 {
     if (Win32Native.NULL == ptr)
     {
         return(null);
     }
     else if (IsWin32Atom(ptr))
     {
         return(null);
     }
     else
     {
         int nb = Win32Native.lstrlenA(ptr);
         if (nb == 0)
         {
             return(string.Empty);
         }
         else
         {
             StringBuilder sb = new StringBuilder(nb);
             Win32Native.CopyMemoryAnsi(sb, ptr, new IntPtr(1 + nb));
             return(sb.ToString());
         }
     }
 }