public void GetAddress(out byte b1, out byte b2, out byte b3, out byte b4) { b1 = 0; b2 = 0; b3 = 0; b4 = 0; IntPtr ptr = Marshal.AllocHGlobal(sizeof(uint)); var r = User32.SendMessage(this.Handle, IPM_GETADDRESS, IntPtr.Zero, ptr); ByteReader br = new ByteReader(ptr); uint val = br.GetNextDWordAsUint(); Marshal.FreeHGlobal(ptr); b1 = GetIp1(val); b2 = GetIp2(val); b3 = GetIp3(val); b4 = GetIp4(val); }