POTENTIALLY BREAKING CHANGE: Revamped SendMessage overloads to reduce accidential use of wrong overload. Most uses still work except passing a class in as lParam.

pull/211/head
dahall 2020-12-31 20:13:35 -07:00
parent feba58dafb
commit 1ef28a890a
2 changed files with 936 additions and 190 deletions

File diff suppressed because it is too large Load Diff

View File

@ -97,9 +97,53 @@ namespace Vanara.PInvoke.Tests
[Test()]
public void SendMessageTest()
{
throw new NotImplementedException();
// WM_ERASEBKGND
SendMessage(default, WindowMessage.WM_ERASEBKGND, (IntPtr)HDC.NULL);
// WM_GETFONT
HFONT hFont = SendMessage(default, WindowMessage.WM_GETFONT);
// WM_GETTEXT
var sb = new StringBuilder(256);
SendMessage(default, WindowMessage.WM_GETTEXT, sb.Capacity, sb);
// WM_GETTEXTLEN
SendMessage(default, WindowMessage.WM_GETTEXTLENGTH);
// WM_SETFONT
SendMessage(default, WindowMessage.WM_SETFONT, (IntPtr)HFONT.NULL, true);
// WM_SETICON
SendMessage(default, WindowMessage.WM_SETICON, ICONSZ.ICON_BIG, (IntPtr)HICON.NULL);
// WM_SETTEXT
SendMessage(default, WindowMessage.WM_SETTEXT, default, "Text");
SendMessage(default, WindowMessage.WM_SETTEXT, 4, "Text");
// WM_DRAWITEM
var dis = new DRAWITEMSTRUCT();
SendMessage(default, WindowMessage.WM_DRAWITEM, 12, ref dis);
// BCM_SETSPLITINFO
SendMessage(default, ButtonMessage.BCM_SETSPLITINFO, default, ref dis);
SendMessage(default, ButtonMessage.BCM_SETSPLITINFO, true, ref dis);
SendMessage(default, ButtonMessage.BCM_SETSPLITINFO, 4, ref dis);
// BCM_SETSPLITINFO
SendMessage(default, ButtonMessage.BCM_SETDROPDOWNSTATE, true);
}
public enum ICONSZ
{
ICON_BIG,
ICON_SMALL
}
//public static IntPtr SendMessage<TMsg, THandle>(HWND hwnd, TMsg msg, THandle wParam) where TMsg : struct, IConvertible where THandle : IHandle
// => SendMessage(hwnd, Convert.ToUInt32(msg), (IntPtr)wParam, IntPtr.Zero);
[Test()]
public void SendMessageTest1()
{