SetWindowLong
C# Signature:
// This helper static method is required because the 32-bit version of user32.dll does not contain this API
// (on any versions of Windows), so linking the method will fail at run-time. The bridge dispatches the request
// to the correct function (GetWindowLong in 32-bit mode and GetWindowLongPtr in 64-bit mode)
public static IntPtr SetWindowLongPtr(HandleRef hWnd, int nIndex, IntPtr dwNewLong)
{
if (IntPtr.Size == 8)
return SetWindowLongPtr64(hWnd, nIndex, dwNewLong);
else
return new IntPtr(SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32()));
}
[DllImport("user32.dll", EntryPoint="SetWindowLong")]
private static extern int SetWindowLong32(HandleRef hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll", EntryPoint="SetWindowLongPtr")]
private static extern IntPtr SetWindowLongPtr64(HandleRef hWnd, int nIndex, IntPtr dwNewLong);
//
If that doesn't work, the following signature can be used alternatively.
//
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong);VB.NET Signature:
VB.NET Signature:
Tips & Tricks:
Tips & Tricks:
Tips & Tricks:
Última actualización