GetWindowRect (user32)
Last changed: -24.158.188.135

.
Summary

C# Signature:

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);

VB.NET Signature:

<DllImport("user32.dll")> _
Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
End Function

User-Defined Types:

RECT

Notes:

The Win32 RECT is not binary compatible with System.Drawing.Rectangle.

Tips & Tricks:

For .NET CF you may need to replace user32.dll with coredll.dll

Please add some!

Sample Code:

        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);

        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;    
            public int Top;    
            public int Right;    
            public int Bottom;
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            RECT rct;

            if(!GetWindowRect(new HandleRef(this, this.Handle), out rct ))
            {
                MessageBox.Show("ERROR");
            }
            else
            {
                MessageBox.Show( rct.ToString() );
            }
        }

Alternative Managed API:

Omnicoder's Managed Windows API: http://www.fileden.com/files/2008/4/5/1852663/ManWinAPI.zip

Documentation