public static String PtrToStringUni(IntPtr ptr) { if (Win32Native.NULL == ptr) { return(null); } else if (IsWin32Atom(ptr)) { return(null); } else { int nc = Win32Native.lstrlenW(ptr); StringBuilder sb = new StringBuilder(nc); Win32Native.CopyMemoryUni(sb, ptr, new IntPtr(2 * (1 + nc))); return(sb.ToString()); } }