GetWindowLongPtr (user32)
Last changed: -202.74.138.1

.
Summary

C# Signature:

// This static method is required because legacy OSes do not support
// GetWindowLongPtr
public static IntPtr GetWindowLongPtr(HandleRef hWnd, int nIndex)
{
     if (IntPtr.Size == 8)
     return GetWindowLongPtr64(hWnd, nIndex);
     else
     return new IntPtr(GetWindowLong32(hWnd, nIndex));
}

[DllImport("user32.dll", EntryPoint="GetWindowLong")]
private static extern int GetWindowLong32(HandleRef hWnd, int nIndex);

[DllImport("user32.dll", EntryPoint="GetWindowLongPtr")]
private static extern IntPtr GetWindowLongPtr64(HandleRef hWnd, int nIndex);

VB .NET Signature:

' This static method is required because legacy OSes do not support GetWindowLongPtr
Public Shared Function GetWindowLongPtr(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As IntPtr
    If IntPtr.Size = 8 Then
        Return GetWindowLongPtr64(hWnd, nIndex)
    Else
        Return New IntPtr(GetWindowLong32(hWnd, nIndex))
    End If
End Function
<DllImport("user32.dll", EntryPoint:="GetWindowLong")> _
Private Shared Function GetWindowLong32(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As Integer
End Function
<DllImport("user32.dll", EntryPoint:="GetWindowLongPtr")> _
Private Shared Function GetWindowLongPtr64(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation