1. 이강좌는?
음;; 응용 프로그램 조이기란 무엇인가??-_-;; 한마디로 메크로 프로그램이라고 할수 있다. 그렇다면 메크로 프로그램이란 란 무엇이냐?? 사람의 동작이 아닌 자동으로 어떠한 프로그램 제어한다는 것이다. 예를들어서 만약 슬롯 머신 프로그램이 있다면 사람 없이.. 자동으로 그 프로그램이 실행되고 자기가 알아서 게임을 한다는 것이다. 이런 프로그램은 실생활에서 많이 쓰이는 부분이고 앞으로도 쓸일이 많이 있을것이다. 음;; 예를들어서 자동 메신저 로그인 프로그램이라던지 (자기 멋대로 실행되서 로그인하고-_-), 등등 어떤 응용프로그램도 메크로프로그램으로 제어를 할수 있게된다. 닷넷으로 이쪽 프로그램을 만들기 시작한것이 어떠한 게임 중독자의 의뢰로 부터 시작했었다. 의뢰의 내용은 대충 N회사의 포커 게임을 5개의 컴퓨터가 메세지를 주고 받으며 컴퓨터가 자동으로 게임을 진행하면서 돈을 몰아 주는 프로그램을 만들어 달라는 것이였다. 쩝;; 그때 무자게 머리 아프게 작업했던 기억이-_-;; 음; 이제는 그 메크로 프로그램의 가장 기본적인 사항들을 강좌로나마 남겨보고자한다.
시작하기전에 알아둬야 할 몇가지를 기초 지식을 설명하려고 한다. 먼저 핸들값의 관한 지식이다.
2.윈도우에서 핸들값이란 무엇인가??
응용프로그램을 제어하려면 바로 핸들 이라는 배경지식을 필수로 알고 있어야한다. 자..그럼 핸들에 관한 지식을 예를 들어 설명해 보도록 하겠다. 자기 컴퓨터의 윈도우가 실행되고 msn메신저와 익스플로러등등의 프로그램이 응용 프로그램이 실행되어 있다고 가정하자 그렇다면 전체 핸들의 구조는 먼저 부팅했던 된 윈도우에 핸들 구조를 보면 [메신저,익스플로러,등등]의 핸들들을 자식으로 가지게 된다(트리구조와 유사하다.)
윈도우-익스플로러 -메신저-로그인버튼 -친구추가 버튼 -로아웃버튼 -메모장
깊이 들어 가서 메신저의 구조를 본다면.. 메신저 안의 [로그인버튼,친구추가버튼,리스트뷰,리스트박스] 이런 컨트롤들이 각각의 핸들값들을 가지고 있는것이다 즉 이러한 버튼 하나하나의 것들도 다 핸들값을 가지고 있다는 개념이고, 핸들의 구조역시 트리구조로 되어져 있다는 것을 예측하실수 있을 것이다.
<그림> 나중에 설명할 SPY++에 나와있는 핸들의 구조를 캡쳐한것이다
3. 핸들값을 왜 알아야 하는것인가.. ??
만약 메신저에 있는 친구추가 버튼을 자동으로 누르게 하고싶다면 "버튼을 클릭했다"와 같은 이벤트를 바로 핸들값을 찾아서 주어야 하기 때문이다. 이핸들값에 클릭 메세지를 보내라 라는 프로그램 명령을 하게 되기 때문이다. 우리가 어떤 메크로 프로그램을 하기 위해서는 핸들값을 몰라서는 프로그램을 만들수 없다. 앞으로 다룰 내용이 핸들값을 가져오는 부분이 될 것이고 그후에 메세지를 보내고,, 등등!!의 프로그램을 만들어 보게 될것이다.
그럼 오늘은 여기까지^^ |
1. API함수를 이용한 핸들찾기
핸들을 찾기위해 알아야 할 기초적 API함수들을 알아 보도록 하겠다.
1_1.FindWindow()
가장 최상위의 핸들을 찾는 함수이며 인자값으로 클래스이름과 캡션값을 넘겨준다.
C#에서의 선언하기
[DllImport("user32.dll")] public static extern int FindWindow(string lpClassName,string lpWindowName);
첫번째 인자값은 찾고자하는 클래스이름,두번째는 캡션값을 넘겨준다. 둘중 하나의 값만 주어도 찾을수 있지만 캡션명이 똑같은 프로그램이 실행중이라면, 클래스명이 필요할것이다.리턴값은 그 캡션명과 클래스 이름을 가지고 있는 핸들값이다. 이런 캡션명과 클래스명은 spy++프로그램을 통해서 알수 있다. 하지만 이함수는 단지 한프로그램의 최상위 핸들 값만 리턴해줄 뿐이고, 자식들의 핸들값들은 FindWindowEX()라는 함수를 통해 알 수가 있다.
참고자료:ms-help://MS.VSCC/MS.MSDNVS.1042/winui/windows_03sn.htm
1_2.FindWindowEX()
인자값으로 받은 핸들의 자식 핸들을 찾는 클래스이다.
[C#에서의 선언]
[DllImport("user32.dll")] public static extern int FindWindowEx(int hWnd1,int hWnd2,string lpsz1,string lpsz2);
첫번째 인자값은 바로 위의 부모값을 주고, 두번째 인자값은 0이나 null을 주자. 세번째와 네번째 인자값에는 FindWindow와 마찬가지로 클래스명과 캡션명을 넘겨주면 첫번째 인자로 넘겨주었던 핸들자식중에 세번째 네번째 주었던 인자값의 해당하는 핸들을 찾는것이다. 만약 핸들을 찾으면 핸들값을 리턴해주고 그렇지 않으면 0을 리턴한다.
참고자료:ms-help://MS.VSCC/MS.MSDNVS.1042/winui/windows_1zjs.htm
2. SPY++따라하기
이 두개의 함수만으로도 일단 왠만한 핸들은 다 접근할수 있을거라 생각한다. 그렇다면 이제 SPY++을 통해 캡션명과 클래스이름을 알아 보는 방법을 보자.
[그림1]SPY++의 실행
[그림2] 기본 메뉴의 설명
[그림3] SPY++캡션명과 클래스명
[그림4] SPY++의 핸들 속성
이 SPY++을 주물럭 주물럭 하다보면 쉽게 익숙해 질것이다. 그렇다면 이제 한번 예제를 통해서 핸들값을 가져오는 연습을 한번 해보자 아래의 예제는 위에 [그림4] 에 나오는 필자의 msn메신저5.0버전을 FindWindow와 FindWindowEX를 통해서 한번 접근해 본것이다.
3. 핸들값 찾기 예제(ConSole Program)
using System; using System.Runtime.InteropServices; //추가.. namespace _1_1Con { class Class1 { //API함수를 선언한다. [DllImport("user32.dll")] public static extern int FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")] public static extern int FindWindowEx(int hWnd1,int hWnd2,string lpsz1,string lpsz2);
[STAThread] static void Main(string[] args) { Console.WriteLine("메신저의 핸들값은?"); Console.WriteLine("캡션값만 입력한 핸들값 : "+FindWindow(null,"MSN Messenger").ToString()); Console.WriteLine("클래스명만 입력한 핸들값 :"+FindWindow("MSNMSBLClass",null).ToString());
//클래스명과 핸들값둘중 하나만 입력해도 값은 똑같이 리턴이 된다. //그렇다면 이제 부모핸들값을들 저장시키면서 한번 그림 4에 있는 대화상대 추가 핸들값을 알아내보자. int hw1=FindWindow(null,"MSN Messenger"); Console.WriteLine("핸들값1:"+hw1.ToString()); int hw2=FindWindowEx(hw1,0,"PluginHostClass",null); Console.WriteLine("핸들값2:"+hw2.ToString()); int hw3=FindWindowEx(hw2,0,"MSNMSBLGeneric",null); Console.WriteLine("핸들값3:"+hw3.ToString());
//여기까지 눈으로 내려온것이 확인이 되었다면 밑에 클래스 명들을 살펴보자. //그러면 분면 클래스 이름 두개가 같은것이 확인이 될것이다.그러기에 반드시 여기에는 캡션명을 같이 해주어야한다.
int hw4=FindWindowEx(hw3,0,"MSNMSBLGeneric","Task List"); Console.WriteLine("핸들값4:"+hw4.ToString()); int hw5=FindWindowEx(hw4,0,"Button","전화 걸기"); Console.WriteLine("핸들값5:"+hw5.ToString()); //여기까지 출력이 되었다면 버튼 핸들값까지 알아내는것이 성공!! } } } |
[결과]
핸들값을 가져오는것이 성고했다면..다음과같은 숫자들이 출력될것이고, 실패하였을 경우 전부0을 리턴하게 될 것이다. 오늘은 핸들값을 가져오는 연습을 해봤고 이제 다음 강좌에서는 핸들에 이벤트를 발생시켜보도록 하겠다.
|
1. 이벤트 메세지 보내보기
이전 강좌에서 메신저의 핸들을 찾아내 봤을것이다. 만약 성공적으로 구하고자 하는 핸들값을 찾아 내 봤다면 이제 한번 그 버튼을 클릭하는 이벤트를 보내기 위해서는 이벤트를 보내는 API함수를 알아야할 것이다. 먼저 이벤트를 보내는 API함수 중에 SendMessage()대해 알아보도록 하겠다.
1.2 SendMessage() 이벤트 전달함수
C#에서의 함수 선언은 다음과 같이 한다.
[DllImport("user32.dll")] public static extern int SendMessage(int hwnd,int wMsg,int wParam,int lParam);
첫번째 인자값은 이벤트를 보낼 핸들 값을 넣어주고, 두번째 인자값은 이벤트 메세지에 해당된다. 세번째와 네번째 인자값은 그에 따른 부수저인 메세지를 전달되는 것이다. 메세지에 대한 정의는 파일로 첨부 하였으니 상황에 따라 참고해서 쓰면 될 것이다. 이벤트 상황에 따라 SendMessage()함수가 다르게 쓰이므로 많은 연습이 필요할 것이다.
2. MSN메신저5.0 제어 해보기
먼저 바로 전 강좌에서 핸들값을 가져오는것이 성공하였다면 바로 이벤트 예제를 해보도록 하자.
2.1 핸들값의 구조파악
[그림1]예제핸들
그림1에 보이는 핸들 구조는 필자의 메신저의 즐겨쓰는버튼버튼까지의 핸들 구조를 열어 본것이다. FindWindow함수와 FindwWindowEX로 버튼의 핸들값을 알아낸 후 클릭 이벤트를 줄것이다.
2.2 제어하기 예제 코드
using System; using System.Runtime.InteropServices; //추가..
namespace _1_1Con { class Class1 { //API함수를 선언한다.
[DllImport("user32.dll")] public static extern int FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")] public static extern int FindWindowEx(int hWnd1,int hWnd2,string lpsz1,string lpsz2);
[DllImport("user32.dll")] public static extern int SendMessage(int hwnd,int wMsg,int wParam,int lParam);
[STAThread] static void Main(string[] args) { //핸들값을 찾아보자 int hw1=FindWindow(null,"MSN Messenger"); Console.WriteLine("핸들값1:"+hw1.ToString());
int hw2=FindWindowEx(hw1,0,"PluginHostClass",null); Console.WriteLine("핸들값2:"+hw2.ToString());
int hw3=FindWindowEx(hw2,0,"MSNMSBLGeneric",null); Console.WriteLine("핸들값3:"+hw3.ToString());
int hw4=FindWindowEx(hw3,0,"MSNMSBLGeneric","Task List"); Console.WriteLine("핸들값4:"+hw4.ToString());
int hw5=FindWindowEx(hw4,0,"Button","즐겨쓰는 메뉴"); Console.WriteLine("핸들값5:"+hw5.ToString());
//여기까지 출력이 되었다면 버튼 핸들값까지 알아내는것이 성공!!
const int WM_LBUTTONDOWN = 0x0201; const int WM_LBUTTONUP = 0x0202; const int BM_CLICK = 0x00F5;
//마우스 클릭이벤트이다 SendMessage(hw5,BM_CLICK,0,1);
//마우스 다운+업=클릭 이므로 이렇게 사용해도 무방하다 SendMessage(hw5,WM_LBUTTONDOWN,0,1); SendMessage(hw5,WM_LBUTTONUP,0,1); } } } |
[그림2] 실행 예제
실행 하면 두번 클릭 이벤트를 보냈으니 잽싸게 메뉴창이 오르락 내리락한 모습을 봤을거라 생각한다. 우선은 간단한 버튼 클릭 이벤트를 보내 보았다. 앞의 강의에 더 많은 이벤트를 보내 보도록 하면서.. 오늘 강의는 여기서 마치도록 하겠다.
내일 강의는 핸들에 관련된 API함수들을 자세히 알아보도록 하겠다.그럼.. |
1. 찾기 힘든 핸들값?!
앞의 강좌에 삘(Feel)을 받아 이것저것 많은 이벤트 보내기 실습을 해본 사람이라면.. 여러 응용프로그램의 핸들을 찾던 도중 안풀리는 몬가의 문제거리를 발견 했을거라 생각한다. 물론 이강좌를 이해하려면 앞의 예제를 다른 프로그램에 많이 응용을 해봐야 한다. 그리고 어떤 문제거리를 받아 보아야만 이 강좌가 엄청의 감동의 물결을 가져다 줄것이다. 그렇다면 몬가 안풀리는 문제거리를 그림을 통해서 살펴보도록 하자.
그림1(몬가 이상한 핸들구조)
위에서 본 그림을 살펴보면.. 한 응용프로그램의 핸들아래 세개의 핸들이 있는 구조이다..(색칠한 부분) 그리고 자기가 이벤트를 보내고자하는 부분은 그 핸들들의 첫번째핸들에 속해있는 버튼인 것이다. 근데 세개의 핸들이 클래스명 자리에 #32770 이라는 클래스명이 들어가있다. 이것은 MFC에서 개발을 할때 클래스 명을 숨겨버렸기에 #32770이라는 결과가 나오는 것이다. 캡션값도 없고..클래스명도 없고 이럴 때는 어떻게 핸들을 찾아 갈것인가?? 대략 난감하다.._-_ 만약 #32770이 한개라면 findwindowEx()함수에 클래스명을 #32770이라고 써주면 잘 찾게 되지만. 위와같은 구조에서는 자기가 얻고자하는 핸들을 정확히 가지고 올수 없다.. 이것을 해결하기 위해서는 트리구조의 원리를 가지고 접근을 해야한다는 것이다. 윈폼에서 작업했던 트리노드를 생각해보자. 자식의 부모의..모 이런식의 개념인 것이다. 그렇다면 여기서 알아야할 API함수가 있다..바로 GetWindow() 라는 함수이고 이함수가 이문제의 해결을 해줄수 있는 해결책이다.
2. GetWindow()함수를 이용하여 핸들값 찾기
C#에서의 선언은 다음과 같다.
[DllImport("user32.dll")] public static extern IntPtr GetWindow(IntPtr hWnd, int uCmd);
첫번째 인자는 대상이 되는 핸들값이고 바로 두번째가 그 대상핸들의 자식,혹은 바로 아래 핸들. 부모핸들..이런 식으로0~5까지 값으로 구별하여 접근할수가 있는것이다.
const int GW_HWNDFIRST = 0; const int GW_HWNDLAST = 1; const int GW_HWNDNEXT = 2; const int GW_HWNDPREV = 3; const int GW_OWNER = 4; const int GW_CHILD = 5;
정의는 다음과 같다.대충 보면 어떤 값들인지 알것이다. 위의 그림을 보자..최상위 핸들값을 hwnd_main이라고 하고 한번 두번째 자식의 값을 가져오고 싶다면 다음과 같이 접근하면될것이다.
int hwnd_first=GetWindow(hwnd_main,GW_CHILD); //첫번째 자식의 핸들값->바로 자식의 핸들값을 가져오므로
int hwnd_second=GetWindow(hwnd_first,GW_HWNDNEXT); //첫번째 아래에 있는 핸들값 바로 두번째 핸들값
이런식으로 접근을 하면 두번째 핸들을 정확히 접근할수 있을 것이다. 이부분의 예제는 생략하겠다. 나중에 핸들을 찾다가 다음과 같이 접근이 불가능 한 상황이 되었다면 GetWindow()함수를 사용하라는 것만 전해주고 싶다. 그럼 핸들에 관련된 여러 API함수를 알아 보도록 하겠다.
3.여러가지 핸들 관련 함수들
*GetWindowText()
[DllImport("user32.dll")] private static extern int GetWindowText(int hWnd, StringBuilder title, int size);
이 함수는 핸들값을 넘겨주면 그 핸들값이 가지고 있는 캡션값을 반환하여준다. 첫번째 인자는 알아내고자하는 핸들대상이고..그 윈도우의 캡션값은 두번재 인자값으로 반환하여 준다. 세번째는 받을 텍스트값의 최대 크기를 정해주는 것이다.
*ShowWindowAsync()
[DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
이 함수는 윈도우의 창의 상태를 변경시킨다. 두번째 인자값을 어떻게 넘겨주느냐에 따라서 상태가 변하고. 첫번째는 변화시키고자 하는 핸들값이다. 상태에 대한 값은 아래 값들을 참고하길..
private const int SW_HIDE = 0; private const int SW_SHOWNORMAL = 1; private const int SW_SHOWMINIMIZED = 2; private const int SW_SHOWMAXIMIZED = 3; private const int SW_SHOWNOACTIVATE = 4; private const int SW_RESTORE = 9; private const int SW_SHOWDEFAULT = 10;
이밖에도 핸들에 관련된 함수는 많이 있지만 가장 많이 사용하는 함수 두개만 뽑아봤다.
http://www.hoonsbara.com/hoons/lecture/2_1/WindowHiderSource.zip
그리고 이주소는 한 외국 사이트에 있는 api관련 핸들 예제이다. 이 예제를 참고하여 살펴보기를 바라면서. 오늘의 강좌는 여기서 마치도록 하고 내일(혹은 내일모레) 에 강좌에서는 SendMessage()에 관한 자세한 이벤트에 대해서 몇글자 끄적거려 보려고 한다.그럼.. |
WM_NULL = 0x0000,
WM_CREATE = 0x0001,
WM_DESTROY = 0x0002,
WM_MOVE = 0x0003,
WM_SIZE = 0x0005,
WM_ACTIVATE = 0x0006,
WM_SETFOCUS = 0x0007,
WM_KILLFOCUS = 0x0008,
WM_ENABLE = 0x000A,
WM_SETREDRAW = 0x000B,
WM_SETTEXT = 0x000C,
WM_GETTEXT = 0x000D,
WM_GETTEXTLENGTH = 0x000E,
WM_PAINT = 0x000F,
WM_CLOSE = 0x0010,
WM_QUERYENDSESSION = 0x0011,
WM_QUERYOPEN = 0x0013,
WM_ENDSESSION = 0x0016,
WM_QUIT = 0x0012,
WM_ERASEBKGND = 0x0014,
WM_SYSCOLORCHANGE = 0x0015,
WM_SHOWWINDOW = 0x0018,
WM_WININICHANGE = 0x001A,
WM_SETTINGCHANGE = 0x001A,
WM_DEVMODECHANGE = 0x001B,
WM_ACTIVATEAPP = 0x001C,
WM_FONTCHANGE = 0x001D,
WM_TIMECHANGE = 0x001E,
WM_CANCELMODE = 0x001F,
WM_SETCURSOR = 0x0020,
WM_MOUSEACTIVATE = 0x0021,
WM_CHILDACTIVATE = 0x0022,
WM_QUEUESYNC = 0x0023,
WM_GETMINMAXINFO = 0x0024,
WM_PAINTICON = 0x0026,
WM_ICONERASEBKGND = 0x0027,
WM_NEXTDLGCTL = 0x0028,
WM_SPOOLERSTATUS = 0x002A,
WM_DRAWITEM = 0x002B,
WM_MEASUREITEM = 0x002C,
WM_DELETEITEM = 0x002D,
WM_VKEYTOITEM = 0x002E,
WM_CHARTOITEM = 0x002F,
WM_SETFONT = 0x0030,
WM_GETFONT = 0x0031,
WM_SETHOTKEY = 0x0032,
WM_GETHOTKEY = 0x0033,
WM_QUERYDRAGICON = 0x0037,
WM_COMPAREITEM = 0x0039,
WM_GETOBJECT = 0x003D,
WM_COMPACTING = 0x0041,
WM_COMMNOTIFY = 0x0044,
WM_WINDOWPOSCHANGING = 0x0046,
WM_WINDOWPOSCHANGED = 0x0047,
WM_POWER = 0x0048,
WM_COPYDATA = 0x004A,
WM_CANCELJOURNAL = 0x004B,
WM_NOTIFY = 0x004E,
WM_INPUTLANGCHANGEREQUEST = 0x0050,
WM_INPUTLANGCHANGE = 0x0051,
WM_TCARD = 0x0052,
WM_HELP = 0x0053,
WM_USERCHANGED = 0x0054,
WM_NOTIFYFORMAT = 0x0055,
WM_CONTEXTMENU = 0x007B,
WM_STYLECHANGING = 0x007C,
WM_STYLECHANGED = 0x007D,
WM_DISPLAYCHANGE = 0x007E,
WM_GETICON = 0x007F,
WM_SETICON = 0x0080,
WM_NCCREATE = 0x0081,
WM_NCDESTROY = 0x0082,
WM_NCCALCSIZE = 0x0083,
WM_NCHITTEST = 0x0084,
WM_NCPAINT = 0x0085,
WM_NCACTIVATE = 0x0086,
WM_GETDLGCODE = 0x0087,
WM_SYNCPAINT = 0x0088,
WM_NCMOUSEMOVE = 0x00A0,
WM_NCLBUTTONDOWN = 0x00A1,
WM_NCLBUTTONUP = 0x00A2,
WM_NCLBUTTONDBLCLK = 0x00A3,
WM_NCRBUTTONDOWN = 0x00A4,
WM_NCRBUTTONUP = 0x00A5,
WM_NCRBUTTONDBLCLK = 0x00A6,
WM_NCMBUTTONDOWN = 0x00A7,
WM_NCMBUTTONUP = 0x00A8,
WM_NCMBUTTONDBLCLK = 0x00A9,
WM_NCXBUTTONDOWN = 0x00AB,
WM_NCXBUTTONUP = 0x00AC,
WM_NCXBUTTONDBLCLK = 0x00AD,
WM_INPUT = 0x00FF,
WM_KEYFIRST = 0x0100,
WM_KEYDOWN = 0x0100,
WM_KEYUP = 0x0101,
WM_CHAR = 0x0102,
WM_DEADCHAR = 0x0103,
WM_SYSKEYDOWN = 0x0104,
WM_SYSKEYUP = 0x0105,
WM_SYSCHAR = 0x0106,
WM_SYSDEADCHAR = 0x0107,
WM_UNICHAR = 0x0109,
WM_KEYLAST_NT501 = 0x0109,
UNICODE_NOCHAR = 0xFFFF,
WM_KEYLAST_PRE501 = 0x0108,
WM_IME_STARTCOMPOSITION = 0x010D,
WM_IME_ENDCOMPOSITION = 0x010E,
WM_IME_COMPOSITION = 0x010F,
WM_IME_KEYLAST = 0x010F,
WM_INITDIALOG = 0x0110,
WM_COMMAND = 0x0111,
WM_SYSCOMMAND = 0x0112,
WM_TIMER = 0x0113,
WM_HSCROLL = 0x0114,
WM_VSCROLL = 0x0115,
WM_INITMENU = 0x0116,
WM_INITMENUPOPUP = 0x0117,
WM_MENUSELECT = 0x011F,
WM_MENUCHAR = 0x0120,
WM_ENTERIDLE = 0x0121,
WM_MENURBUTTONUP = 0x0122,
WM_MENUDRAG = 0x0123,
WM_MENUGETOBJECT = 0x0124,
WM_UNINITMENUPOPUP = 0x0125,
WM_MENUCOMMAND = 0x0126,
WM_CHANGEUISTATE = 0x0127,
WM_UPDATEUISTATE = 0x0128,
WM_QUERYUISTATE = 0x0129,
WM_CTLCOLORMSGBOX = 0x0132,
WM_CTLCOLOREDIT = 0x0133,
WM_CTLCOLORLISTBOX = 0x0134,
WM_CTLCOLORBTN = 0x0135,
WM_CTLCOLORDLG = 0x0136,
WM_CTLCOLORSCROLLBAR = 0x0137,
WM_CTLCOLORSTATIC = 0x0138,
WM_MOUSEFIRST = 0x0200,
WM_MOUSEMOVE = 0x0200,
WM_LBUTTONDOWN = 0x0201,
WM_LBUTTONUP = 0x0202,
WM_LBUTTONDBLCLK = 0x0203,
WM_RBUTTONDOWN = 0x0204,
WM_RBUTTONUP = 0x0205,
WM_RBUTTONDBLCLK = 0x0206,
WM_MBUTTONDOWN = 0x0207,
WM_MBUTTONUP = 0x0208,
WM_MBUTTONDBLCLK = 0x0209,
WM_MOUSEWHEEL = 0x020A,
WM_XBUTTONDOWN = 0x020B,
WM_XBUTTONUP = 0x020C,
WM_XBUTTONDBLCLK = 0x020D,
WM_MOUSELAST_5 = 0x020D,
WM_MOUSELAST_4 = 0x020A,
WM_MOUSELAST_PRE_4 = 0x0209,
WM_PARENTNOTIFY = 0x0210,
WM_ENTERMENULOOP = 0x0211,
WM_EXITMENULOOP = 0x0212,
WM_NEXTMENU = 0x0213,
WM_SIZING = 0x0214,
WM_CAPTURECHANGED = 0x0215,
WM_MOVING = 0x0216,
WM_POWERBROADCAST = 0x0218,
WM_DEVICECHANGE = 0x0219,
WM_MDICREATE = 0x0220,
WM_MDIDESTROY = 0x0221,
WM_MDIACTIVATE = 0x0222,
WM_MDIRESTORE = 0x0223,
WM_MDINEXT = 0x0224,
WM_MDIMAXIMIZE = 0x0225,
WM_MDITILE = 0x0226,
WM_MDICASCADE = 0x0227,
WM_MDIICONARRANGE = 0x0228,
WM_MDIGETACTIVE = 0x0229,
WM_MDISETMENU = 0x0230,
WM_ENTERSIZEMOVE = 0x0231,
WM_EXITSIZEMOVE = 0x0232,
WM_DROPFILES = 0x0233,
WM_MDIREFRESHMENU = 0x0234,
WM_IME_SETCONTEXT = 0x0281,
WM_IME_NOTIFY = 0x0282,
WM_IME_CONTROL = 0x0283,
WM_IME_COMPOSITIONFULL = 0x0284,
WM_IME_SELECT = 0x0285,
WM_IME_CHAR = 0x0286,
WM_IME_REQUEST = 0x0288,
WM_IME_KEYDOWN = 0x0290,
WM_IME_KEYUP = 0x0291,
WM_MOUSEHOVER = 0x02A1,
WM_MOUSELEAVE = 0x02A3,
WM_NCMOUSEHOVER = 0x02A0,
WM_NCMOUSELEAVE = 0x02A2,
WM_WTSSESSION_CHANGE = 0x02B1,
WM_TABLET_FIRST = 0x02c0,
WM_TABLET_LAST = 0x02df,
WM_CUT = 0x0300,
WM_COPY = 0x0301,
WM_PASTE = 0x0302,
WM_CLEAR = 0x0303,
WM_UNDO = 0x0304,
WM_RENDERFORMAT = 0x0305,
WM_RENDERALLFORMATS = 0x0306,
WM_DESTROYCLIPBOARD = 0x0307,
WM_DRAWCLIPBOARD = 0x0308,
WM_PAINTCLIPBOARD = 0x0309,
WM_VSCROLLCLIPBOARD = 0x030A,
WM_SIZECLIPBOARD = 0x030B,
WM_ASKCBFORMATNAME = 0x030C,
WM_CHANGECBCHAIN = 0x030D,
WM_HSCROLLCLIPBOARD = 0x030E,
WM_QUERYNEWPALETTE = 0x030F,
WM_PALETTEISCHANGING = 0x0310,
WM_PALETTECHANGED = 0x0311,
WM_HOTKEY = 0x0312,
WM_PRINT = 0x0317,
WM_PRINTCLIENT = 0x0318,
WM_APPCOMMAND = 0x0319,
WM_THEMECHANGED = 0x031A,
WM_HANDHELDFIRST = 0x0358,
WM_HANDHELDLAST = 0x035F,
WM_AFXFIRST = 0x0360,
WM_AFXLAST = 0x037F,
WM_PENWINFIRST = 0x0380,
WM_PENWINLAST = 0x038F,
WM_APP = 0x8000,
WM_USER = 0x0400,
EM_GETSEL = 0x00B0,
EM_SETSEL = 0x00B1,
EM_GETRECT = 0x00B2,
EM_SETRECT = 0x00B3,
EM_SETRECTNP = 0x00B4,
EM_SCROLL = 0x00B5,
EM_LINESCROLL = 0x00B6,
EM_SCROLLCARET = 0x00B7,
EM_GETMODIFY = 0x00B8,
EM_SETMODIFY = 0x00B9,
EM_GETLINECOUNT = 0x00BA,
EM_LINEINDEX = 0x00BB,
EM_SETHANDLE = 0x00BC,
EM_GETHANDLE = 0x00BD,
EM_GETTHUMB = 0x00BE,
EM_LINELENGTH = 0x00C1,
EM_REPLACESEL = 0x00C2,
EM_GETLINE = 0x00C4,
EM_LIMITTEXT = 0x00C5,
EM_CANUNDO = 0x00C6,
EM_UNDO = 0x00C7,
EM_FMTLINES = 0x00C8,
EM_LINEFROMCHAR = 0x00C9,
EM_SETTABSTOPS = 0x00CB,
EM_SETPASSWORDCHAR = 0x00CC,
EM_EMPTYUNDOBUFFER = 0x00CD,
EM_GETFIRSTVISIBLELINE = 0x00CE,
EM_SETREADONLY = 0x00CF,
EM_SETWORDBREAKPROC = 0x00D0,
EM_GETWORDBREAKPROC = 0x00D1,
EM_GETPASSWORDCHAR = 0x00D2,
EM_SETMARGINS = 0x00D3,
EM_GETMARGINS = 0x00D4,
EM_SETLIMITTEXT = EM_LIMITTEXT,
EM_GETLIMITTEXT = 0x00D5,
EM_POSFROMCHAR = 0x00D6,
EM_CHARFROMPOS = 0x00D7,
EM_SETIMESTATUS = 0x00D8,
EM_GETIMESTATUS = 0x00D9,
BM_GETCHECK= 0x00F0,
BM_SETCHECK= 0x00F1,
BM_GETSTATE= 0x00F2,
BM_SETSTATE= 0x00F3,
BM_SETSTYLE= 0x00F4,
BM_CLICK = 0x00F5,
BM_GETIMAGE= 0x00F6,
BM_SETIMAGE= 0x00F7,
STM_SETICON = 0x0170,
STM_GETICON = 0x0171,
STM_SETIMAGE = 0x0172,
STM_GETIMAGE = 0x0173,
STM_MSGMAX = 0x0174,
DM_GETDEFID = (WM_USER+0),
DM_SETDEFID = (WM_USER+1),
DM_REPOSITION = (WM_USER+2),
LB_ADDSTRING = 0x0180,
LB_INSERTSTRING = 0x0181,
LB_DELETESTRING = 0x0182,
LB_SELITEMRANGEEX= 0x0183,
LB_RESETCONTENT = 0x0184,
LB_SETSEL = 0x0185,
LB_SETCURSEL = 0x0186,
LB_GETSEL = 0x0187,
LB_GETCURSEL = 0x0188,
LB_GETTEXT = 0x0189,
LB_GETTEXTLEN = 0x018A,
LB_GETCOUNT = 0x018B,
LB_SELECTSTRING = 0x018C,
LB_DIR = 0x018D,
LB_GETTOPINDEX = 0x018E,
LB_FINDSTRING = 0x018F,
LB_GETSELCOUNT = 0x0190,
LB_GETSELITEMS = 0x0191,
LB_SETTABSTOPS = 0x0192,
LB_GETHORIZONTALEXTENT = 0x0193,
LB_SETHORIZONTALEXTENT = 0x0194,
LB_SETCOLUMNWIDTH = 0x0195,
LB_ADDFILE = 0x0196,
LB_SETTOPINDEX = 0x0197,
LB_GETITEMRECT = 0x0198,
LB_GETITEMDATA = 0x0199,
LB_SETITEMDATA = 0x019A,
LB_SELITEMRANGE = 0x019B,
LB_SETANCHORINDEX = 0x019C,
LB_GETANCHORINDEX = 0x019D,
LB_SETCARETINDEX = 0x019E,
LB_GETCARETINDEX = 0x019F,
LB_SETITEMHEIGHT = 0x01A0,
LB_GETITEMHEIGHT = 0x01A1,
LB_FINDSTRINGEXACT = 0x01A2,
LB_SETLOCALE = 0x01A5,
LB_GETLOCALE = 0x01A6,
LB_SETCOUNT = 0x01A7,
LB_INITSTORAGE = 0x01A8,
LB_ITEMFROMPOINT = 0x01A9,
LB_MULTIPLEADDSTRING = 0x01B1,
LB_GETLISTBOXINFO= 0x01B2,
LB_MSGMAX_501 = 0x01B3,
LB_MSGMAX_WCE4 = 0x01B1,
LB_MSGMAX_4 = 0x01B0,
LB_MSGMAX_PRE4 = 0x01A8,
CB_GETEDITSEL = 0x0140,
CB_LIMITTEXT = 0x0141,
CB_SETEDITSEL = 0x0142,
CB_ADDSTRING = 0x0143,
CB_DELETESTRING = 0x0144,
CB_DIR = 0x0145,
CB_GETCOUNT = 0x0146,
CB_GETCURSEL = 0x0147,
CB_GETLBTEXT = 0x0148,
CB_GETLBTEXTLEN = 0x0149,
CB_INSERTSTRING = 0x014A,
CB_RESETCONTENT = 0x014B,
CB_FINDSTRING = 0x014C,
CB_SELECTSTRING = 0x014D,
CB_SETCURSEL = 0x014E,
CB_SHOWDROPDOWN = 0x014F,
CB_GETITEMDATA = 0x0150,
CB_SETITEMDATA = 0x0151,
CB_GETDROPPEDCONTROLRECT = 0x0152,
CB_SETITEMHEIGHT = 0x0153,
CB_GETITEMHEIGHT = 0x0154,
CB_SETEXTENDEDUI = 0x0155,
CB_GETEXTENDEDUI = 0x0156,
CB_GETDROPPEDSTATE = 0x0157,
CB_FINDSTRINGEXACT = 0x0158,
CB_SETLOCALE = 0x0159,
CB_GETLOCALE = 0x015A,
CB_GETTOPINDEX = 0x015B,
CB_SETTOPINDEX = 0x015C,
CB_GETHORIZONTALEXTENT = 0x015d,
CB_SETHORIZONTALEXTENT = 0x015e,
CB_GETDROPPEDWIDTH = 0x015f,
CB_SETDROPPEDWIDTH = 0x0160,
CB_INITSTORAGE = 0x0161,
CB_MULTIPLEADDSTRING = 0x0163,
CB_GETCOMBOBOXINFO = 0x0164,
CB_MSGMAX_501 = 0x0165,
CB_MSGMAX_WCE400 = 0x0163,
CB_MSGMAX_400 = 0x0162,
CB_MSGMAX_PRE400 = 0x015B,
SBM_SETPOS = 0x00E0,
SBM_GETPOS = 0x00E1,
SBM_SETRANGE = 0x00E2,
SBM_SETRANGEREDRAW = 0x00E6,
SBM_GETRANGE = 0x00E3,
SBM_ENABLE_ARROWS = 0x00E4,
SBM_SETSCROLLINFO = 0x00E9,
SBM_GETSCROLLINFO = 0x00EA,
SBM_GETSCROLLBARINFO= 0x00EB,
LVM_FIRST = 0x1000,// ListView messages
TV_FIRST = 0x1100,// TreeView messages
HDM_FIRST = 0x1200,// Header messages
TCM_FIRST = 0x1300,// Tab control messages
PGM_FIRST = 0x1400,// Pager control messages
ECM_FIRST = 0x1500,// Edit control messages
BCM_FIRST = 0x1600,// Button control messages
CBM_FIRST = 0x1700,// Combobox control messages
CCM_FIRST = 0x2000,// Common control shared messages
CCM_LAST =(CCM_FIRST + 0x200),
CCM_SETBKCOLOR = (CCM_FIRST + 1),
CCM_SETCOLORSCHEME = (CCM_FIRST + 2),
CCM_GETCOLORSCHEME = (CCM_FIRST + 3),
CCM_GETDROPTARGET = (CCM_FIRST + 4),
CCM_SETUNICODEFORMAT = (CCM_FIRST + 5),
CCM_GETUNICODEFORMAT = (CCM_FIRST + 6),
CCM_SETVERSION = (CCM_FIRST + 0x7),
CCM_GETVERSION = (CCM_FIRST + 0x8),
CCM_SETNOTIFYWINDOW = (CCM_FIRST + 0x9),
CCM_SETWINDOWTHEME = (CCM_FIRST + 0xb),
CCM_DPISCALE = (CCM_FIRST + 0xc),
HDM_GETITEMCOUNT = (HDM_FIRST + 0),
HDM_INSERTITEMA = (HDM_FIRST + 1),
HDM_INSERTITEMW = (HDM_FIRST + 10),
HDM_DELETEITEM = (HDM_FIRST + 2),
HDM_GETITEMA = (HDM_FIRST + 3),
HDM_GETITEMW = (HDM_FIRST + 11),
HDM_SETITEMA = (HDM_FIRST + 4),
HDM_SETITEMW = (HDM_FIRST + 12),
HDM_LAYOUT = (HDM_FIRST + 5),
HDM_HITTEST = (HDM_FIRST + 6),
HDM_GETITEMRECT = (HDM_FIRST + 7),
HDM_SETIMAGELIST = (HDM_FIRST + 8),
HDM_GETIMAGELIST = (HDM_FIRST + 9),
HDM_ORDERTOINDEX = (HDM_FIRST + 15),
HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16),
HDM_GETORDERARRAY = (HDM_FIRST + 17),
HDM_SETORDERARRAY = (HDM_FIRST + 18),
HDM_SETHOTDIVIDER = (HDM_FIRST + 19),
HDM_SETBITMAPMARGIN = (HDM_FIRST + 20),
HDM_GETBITMAPMARGIN = (HDM_FIRST + 21),
HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST+22),
HDM_EDITFILTER = (HDM_FIRST+23),
HDM_CLEARFILTER = (HDM_FIRST+24),
TB_ENABLEBUTTON = (WM_USER + 1),
TB_CHECKBUTTON = (WM_USER + 2),
TB_PRESSBUTTON = (WM_USER + 3),
TB_HIDEBUTTON = (WM_USER + 4),
TB_INDETERMINATE = (WM_USER + 5),
TB_MARKBUTTON = (WM_USER + 6),
TB_ISBUTTONENABLED = (WM_USER + 9),
TB_ISBUTTONCHECKED = (WM_USER + 10),
TB_ISBUTTONPRESSED = (WM_USER + 11),
TB_ISBUTTONHIDDEN = (WM_USER + 12),
TB_ISBUTTONINDETERMINATE = (WM_USER + 13),
TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14),
TB_SETSTATE = (WM_USER + 17),
TB_GETSTATE = (WM_USER + 18),
TB_ADDBITMAP = (WM_USER + 19),
TB_ADDBUTTONSA = (WM_USER + 20),
TB_INSERTBUTTONA = (WM_USER + 21),
TB_ADDBUTTONS = (WM_USER + 20),
TB_INSERTBUTTON = (WM_USER + 21),
TB_DELETEBUTTON = (WM_USER + 22),
TB_GETBUTTON = (WM_USER + 23),
TB_BUTTONCOUNT = (WM_USER + 24),
TB_COMMANDTOINDEX = (WM_USER + 25),
TB_SAVERESTOREA = (WM_USER + 26),
TB_SAVERESTOREW = (WM_USER + 76),
TB_CUSTOMIZE = (WM_USER + 27),
TB_ADDSTRINGA = (WM_USER + 28),
TB_ADDSTRINGW = (WM_USER + 77),
TB_GETITEMRECT = (WM_USER + 29),
TB_BUTTONSTRUCTSIZE = (WM_USER + 30),
TB_SETBUTTONSIZE = (WM_USER + 31),
TB_SETBITMAPSIZE = (WM_USER + 32),
TB_AUTOSIZE = (WM_USER + 33),
TB_GETTOOLTIPS = (WM_USER + 35),
TB_SETTOOLTIPS = (WM_USER + 36),
TB_SETPARENT = (WM_USER + 37),
TB_SETROWS = (WM_USER + 39),
TB_GETROWS = (WM_USER + 40),
TB_SETCMDID = (WM_USER + 42),
TB_CHANGEBITMAP = (WM_USER + 43),
TB_GETBITMAP = (WM_USER + 44),
TB_GETBUTTONTEXTA = (WM_USER + 45),
TB_GETBUTTONTEXTW = (WM_USER + 75),
TB_REPLACEBITMAP = (WM_USER + 46),
TB_SETINDENT = (WM_USER + 47),
TB_SETIMAGELIST = (WM_USER + 48),
TB_GETIMAGELIST = (WM_USER + 49),
TB_LOADIMAGES = (WM_USER + 50),
TB_GETRECT = (WM_USER + 51),
TB_SETHOTIMAGELIST = (WM_USER + 52),
TB_GETHOTIMAGELIST = (WM_USER + 53),
TB_SETDISABLEDIMAGELIST = (WM_USER + 54),
TB_GETDISABLEDIMAGELIST = (WM_USER + 55),
TB_SETSTYLE = (WM_USER + 56),
TB_GETSTYLE = (WM_USER + 57),
TB_GETBUTTONSIZE = (WM_USER + 58),
TB_SETBUTTONWIDTH = (WM_USER + 59),
TB_SETMAXTEXTROWS = (WM_USER + 60),
TB_GETTEXTROWS = (WM_USER + 61),
TB_GETOBJECT = (WM_USER + 62),
TB_GETHOTITEM = (WM_USER + 71),
TB_SETHOTITEM = (WM_USER + 72),
TB_SETANCHORHIGHLIGHT = (WM_USER + 73),
TB_GETANCHORHIGHLIGHT = (WM_USER + 74),
TB_MAPACCELERATORA = (WM_USER + 78),
TB_GETINSERTMARK = (WM_USER + 79),
TB_SETINSERTMARK = (WM_USER + 80),
TB_INSERTMARKHITTEST = (WM_USER + 81),
TB_MOVEBUTTON = (WM_USER + 82),
TB_GETMAXSIZE = (WM_USER + 83),
TB_SETEXTENDEDSTYLE = (WM_USER + 84),
TB_GETEXTENDEDSTYLE = (WM_USER + 85),
TB_GETPADDING = (WM_USER + 86),
TB_SETPADDING = (WM_USER + 87),
TB_SETINSERTMARKCOLOR = (WM_USER + 88),
TB_GETINSERTMARKCOLOR = (WM_USER + 89),
TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME,
TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME,
TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
TB_MAPACCELERATORW = (WM_USER + 90),
TB_GETBITMAPFLAGS = (WM_USER + 41),
TB_GETBUTTONINFOW = (WM_USER + 63),
TB_SETBUTTONINFOW = (WM_USER + 64),
TB_GETBUTTONINFOA = (WM_USER + 65),
TB_SETBUTTONINFOA = (WM_USER + 66),
TB_INSERTBUTTONW = (WM_USER + 67),
TB_ADDBUTTONSW = (WM_USER + 68),
TB_HITTEST = (WM_USER + 69),
TB_SETDRAWTEXTFLAGS = (WM_USER + 70),
TB_GETSTRINGW = (WM_USER + 91),
TB_GETSTRINGA = (WM_USER + 92),
TB_GETMETRICS = (WM_USER + 101),
TB_SETMETRICS = (WM_USER + 102),
TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
RB_INSERTBANDA = (WM_USER + 1),
RB_DELETEBAND = (WM_USER + 2),
RB_GETBARINFO = (WM_USER + 3),
RB_SETBARINFO = (WM_USER + 4),
RB_GETBANDINFO = (WM_USER + 5),
RB_SETBANDINFOA = (WM_USER + 6),
RB_SETPARENT = (WM_USER + 7),
RB_HITTEST = (WM_USER + 8),
RB_GETRECT = (WM_USER + 9),
RB_INSERTBANDW = (WM_USER + 10),
RB_SETBANDINFOW = (WM_USER + 11),
RB_GETBANDCOUNT = (WM_USER + 12),
RB_GETROWCOUNT = (WM_USER + 13),
RB_GETROWHEIGHT = (WM_USER + 14),
RB_IDTOINDEX = (WM_USER + 16),
RB_GETTOOLTIPS = (WM_USER + 17),
RB_SETTOOLTIPS = (WM_USER + 18),
RB_SETBKCOLOR = (WM_USER + 19),
RB_GETBKCOLOR = (WM_USER + 20),
RB_SETTEXTCOLOR = (WM_USER + 21),
RB_GETTEXTCOLOR = (WM_USER + 22),
RB_SIZETORECT = (WM_USER + 23),
RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME,
RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME,
RB_BEGINDRAG = (WM_USER + 24),
RB_ENDDRAG = (WM_USER + 25),
RB_DRAGMOVE = (WM_USER + 26),
RB_GETBARHEIGHT = (WM_USER + 27),
RB_GETBANDINFOW = (WM_USER + 28),
RB_GETBANDINFOA = (WM_USER + 29),
RB_MINIMIZEBAND = (WM_USER + 30),
RB_MAXIMIZEBAND = (WM_USER + 31),
RB_GETDROPTARGET = (CCM_GETDROPTARGET),
RB_GETBANDBORDERS = (WM_USER + 34),
RB_SHOWBAND = (WM_USER + 35),
RB_SETPALETTE = (WM_USER + 37),
RB_GETPALETTE = (WM_USER + 38),
RB_MOVEBAND = (WM_USER + 39),
RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
RB_GETBANDMARGINS = (WM_USER + 40),
RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
RB_PUSHCHEVRON = (WM_USER + 43),
TTM_ACTIVATE = (WM_USER + 1),
TTM_SETDELAYTIME = (WM_USER + 3),
TTM_ADDTOOLA = (WM_USER + 4),
TTM_ADDTOOLW = (WM_USER + 50),
TTM_DELTOOLA = (WM_USER + 5),
TTM_DELTOOLW = (WM_USER + 51),
TTM_NEWTOOLRECTA = (WM_USER + 6),
TTM_NEWTOOLRECTW = (WM_USER + 52),
TTM_RELAYEVENT = (WM_USER + 7),
TTM_GETTOOLINFOA = (WM_USER + 8),
TTM_GETTOOLINFOW = (WM_USER + 53),
TTM_SETTOOLINFOA = (WM_USER + 9),
TTM_SETTOOLINFOW = (WM_USER + 54),
TTM_HITTESTA = (WM_USER +10),
TTM_HITTESTW = (WM_USER +55),
TTM_GETTEXTA = (WM_USER +11),
TTM_GETTEXTW = (WM_USER +56),
TTM_UPDATETIPTEXTA = (WM_USER +12),
TTM_UPDATETIPTEXTW = (WM_USER +57),
TTM_GETTOOLCOUNT = (WM_USER +13),
TTM_ENUMTOOLSA = (WM_USER +14),
TTM_ENUMTOOLSW = (WM_USER +58),
TTM_GETCURRENTTOOLA = (WM_USER + 15),
TTM_GETCURRENTTOOLW = (WM_USER + 59),
TTM_WINDOWFROMPOINT = (WM_USER + 16),
TTM_TRACKACTIVATE = (WM_USER + 17),
TTM_TRACKPOSITION = (WM_USER + 18),
TTM_SETTIPBKCOLOR = (WM_USER + 19),
TTM_SETTIPTEXTCOLOR = (WM_USER + 20),
TTM_GETDELAYTIME = (WM_USER + 21),
TTM_GETTIPBKCOLOR = (WM_USER + 22),
TTM_GETTIPTEXTCOLOR = (WM_USER + 23),
TTM_SETMAXTIPWIDTH = (WM_USER + 24),
TTM_GETMAXTIPWIDTH = (WM_USER + 25),
TTM_SETMARGIN = (WM_USER + 26),
TTM_GETMARGIN = (WM_USER + 27),
TTM_POP = (WM_USER + 28),
TTM_UPDATE = (WM_USER + 29),
TTM_GETBUBBLESIZE = (WM_USER + 30),
TTM_ADJUSTRECT = (WM_USER + 31),
TTM_SETTITLEA = (WM_USER + 32),
TTM_SETTITLEW = (WM_USER + 33),
TTM_POPUP = (WM_USER + 34),
TTM_GETTITLE = (WM_USER + 35),
TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
SB_SETTEXTA = (WM_USER+1),
SB_SETTEXTW = (WM_USER+11),
SB_GETTEXTA = (WM_USER+2),
SB_GETTEXTW = (WM_USER+13),
SB_GETTEXTLENGTHA = (WM_USER+3),
SB_GETTEXTLENGTHW = (WM_USER+12),
SB_SETPARTS = (WM_USER+4),
SB_GETPARTS = (WM_USER+6),
SB_GETBORDERS = (WM_USER+7),
SB_SETMINHEIGHT = (WM_USER+8),
SB_SIMPLE = (WM_USER+9),
SB_GETRECT = (WM_USER+10),
SB_ISSIMPLE = (WM_USER+14),
SB_SETICON = (WM_USER+15),
SB_SETTIPTEXTA = (WM_USER+16),
SB_SETTIPTEXTW = (WM_USER+17),
SB_GETTIPTEXTA = (WM_USER+18),
SB_GETTIPTEXTW = (WM_USER+19),
SB_GETICON = (WM_USER+20),
SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
SB_SETBKCOLOR = CCM_SETBKCOLOR,
SB_SIMPLEID = 0x00ff,
TBM_GETPOS = (WM_USER),
TBM_GETRANGEMIN = (WM_USER+1),
TBM_GETRANGEMAX = (WM_USER+2),
TBM_GETTIC = (WM_USER+3),
TBM_SETTIC = (WM_USER+4),
TBM_SETPOS = (WM_USER+5),
TBM_SETRANGE = (WM_USER+6),
TBM_SETRANGEMIN = (WM_USER+7),
TBM_SETRANGEMAX = (WM_USER+8),
TBM_CLEARTICS = (WM_USER+9),
TBM_SETSEL = (WM_USER+10),
TBM_SETSELSTART = (WM_USER+11),
TBM_SETSELEND = (WM_USER+12),
TBM_GETPTICS = (WM_USER+14),
TBM_GETTICPOS = (WM_USER+15),
TBM_GETNUMTICS = (WM_USER+16),
TBM_GETSELSTART = (WM_USER+17),
TBM_GETSELEND = (WM_USER+18),
TBM_CLEARSEL = (WM_USER+19),
TBM_SETTICFREQ = (WM_USER+20),
TBM_SETPAGESIZE = (WM_USER+21),
TBM_GETPAGESIZE = (WM_USER+22),
TBM_SETLINESIZE = (WM_USER+23),
TBM_GETLINESIZE = (WM_USER+24),
TBM_GETTHUMBRECT = (WM_USER+25),
TBM_GETCHANNELRECT = (WM_USER+26),
TBM_SETTHUMBLENGTH = (WM_USER+27),
TBM_GETTHUMBLENGTH = (WM_USER+28),
TBM_SETTOOLTIPS = (WM_USER+29),
TBM_GETTOOLTIPS = (WM_USER+30),
TBM_SETTIPSIDE = (WM_USER+31),
TBM_SETBUDDY = (WM_USER+32),
TBM_GETBUDDY = (WM_USER+33),
TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
DL_BEGINDRAG = (WM_USER+133),
DL_DRAGGING = (WM_USER+134),
DL_DROPPED = (WM_USER+135),
DL_CANCELDRAG = (WM_USER+136),
UDM_SETRANGE = (WM_USER+101),
UDM_GETRANGE = (WM_USER+102),
UDM_SETPOS = (WM_USER+103),
UDM_GETPOS = (WM_USER+104),
UDM_SETBUDDY = (WM_USER+105),
UDM_GETBUDDY = (WM_USER+106),
UDM_SETACCEL = (WM_USER+107),
UDM_GETACCEL = (WM_USER+108),
UDM_SETBASE = (WM_USER+109),
UDM_GETBASE = (WM_USER+110),
UDM_SETRANGE32 = (WM_USER+111),
UDM_GETRANGE32 = (WM_USER+112),
UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
UDM_SETPOS32 = (WM_USER+113),
UDM_GETPOS32 = (WM_USER+114),
PBM_SETRANGE = (WM_USER+1),
PBM_SETPOS = (WM_USER+2),
PBM_DELTAPOS = (WM_USER+3),
PBM_SETSTEP = (WM_USER+4),
PBM_STEPIT = (WM_USER+5),
PBM_SETRANGE32 = (WM_USER+6),
PBM_GETRANGE = (WM_USER+7),
PBM_GETPOS = (WM_USER+8),
PBM_SETBARCOLOR = (WM_USER+9),
PBM_SETBKCOLOR = CCM_SETBKCOLOR,
HKM_SETHOTKEY = (WM_USER+1),
HKM_GETHOTKEY = (WM_USER+2),
HKM_SETRULES = (WM_USER+3),
LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
LVM_GETBKCOLOR = (LVM_FIRST + 0),
LVM_SETBKCOLOR = (LVM_FIRST + 1),
LVM_GETIMAGELIST = (LVM_FIRST + 2),
LVM_SETIMAGELIST = (LVM_FIRST + 3),
LVM_GETITEMCOUNT = (LVM_FIRST + 4),
LVM_GETITEMA = (LVM_FIRST + 5),
LVM_GETITEMW = (LVM_FIRST + 75),
LVM_SETITEMA = (LVM_FIRST + 6),
LVM_SETITEMW = (LVM_FIRST + 76),
LVM_INSERTITEMA = (LVM_FIRST + 7),
LVM_INSERTITEMW = (LVM_FIRST + 77),
LVM_DELETEITEM = (LVM_FIRST + 8),
LVM_DELETEALLITEMS = (LVM_FIRST + 9),
LVM_GETCALLBACKMASK = (LVM_FIRST + 10),
LVM_SETCALLBACKMASK = (LVM_FIRST + 11),
LVM_FINDITEMA = (LVM_FIRST + 13),
LVM_FINDITEMW = (LVM_FIRST + 83),
LVM_GETITEMRECT = (LVM_FIRST + 14),
LVM_SETITEMPOSITION = (LVM_FIRST + 15),
LVM_GETITEMPOSITION = (LVM_FIRST + 16),
LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17),
LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87),
LVM_HITTEST = (LVM_FIRST + 18),
LVM_ENSUREVISIBLE = (LVM_FIRST + 19),
LVM_SCROLL = (LVM_FIRST + 20),
LVM_REDRAWITEMS = (LVM_FIRST + 21),
LVM_ARRANGE = (LVM_FIRST + 22),
LVM_EDITLABELA = (LVM_FIRST + 23),
LVM_EDITLABELW = (LVM_FIRST + 118),
LVM_GETEDITCONTROL = (LVM_FIRST + 24),
LVM_GETCOLUMNA = (LVM_FIRST + 25),
LVM_GETCOLUMNW = (LVM_FIRST + 95),
LVM_SETCOLUMNA = (LVM_FIRST + 26),
LVM_SETCOLUMNW = (LVM_FIRST + 96),
LVM_INSERTCOLUMNA = (LVM_FIRST + 27),
LVM_INSERTCOLUMNW = (LVM_FIRST + 97),
LVM_DELETECOLUMN = (LVM_FIRST + 28),
LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29),
LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30),
LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33),
LVM_GETVIEWRECT = (LVM_FIRST + 34),
LVM_GETTEXTCOLOR = (LVM_FIRST + 35),
LVM_SETTEXTCOLOR = (LVM_FIRST + 36),
LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37),
LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38),
LVM_GETTOPINDEX = (LVM_FIRST + 39),
LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40),
LVM_GETORIGIN = (LVM_FIRST + 41),
LVM_UPDATE = (LVM_FIRST + 42),
LVM_SETITEMSTATE = (LVM_FIRST + 43),
LVM_GETITEMSTATE = (LVM_FIRST + 44),
LVM_GETITEMTEXTA = (LVM_FIRST + 45),
LVM_GETITEMTEXTW = (LVM_FIRST + 115),
LVM_SETITEMTEXTA = (LVM_FIRST + 46),
LVM_SETITEMTEXTW = (LVM_FIRST + 116),
LVM_SETITEMCOUNT = (LVM_FIRST + 47),
LVM_SORTITEMS = (LVM_FIRST + 48),
LVM_SETITEMPOSITION32 = (LVM_FIRST + 49),
LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50),
LVM_GETITEMSPACING = (LVM_FIRST + 51),
LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52),
LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117),
LVM_SETICONSPACING = (LVM_FIRST + 53),
LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54),
LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55),
LVM_GETSUBITEMRECT = (LVM_FIRST + 56),
LVM_SUBITEMHITTEST = (LVM_FIRST + 57),
LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58),
LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59),
LVM_SETHOTITEM = (LVM_FIRST + 60),
LVM_GETHOTITEM = (LVM_FIRST + 61),
LVM_SETHOTCURSOR = (LVM_FIRST + 62),
LVM_GETHOTCURSOR = (LVM_FIRST + 63),
LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64),
LVM_SETWORKAREAS = (LVM_FIRST + 65),
LVM_GETWORKAREAS = (LVM_FIRST + 70),
LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73),
LVM_GETSELECTIONMARK = (LVM_FIRST + 66),
LVM_SETSELECTIONMARK = (LVM_FIRST + 67),
LVM_SETHOVERTIME = (LVM_FIRST + 71),
LVM_GETHOVERTIME = (LVM_FIRST + 72),
LVM_SETTOOLTIPS = (LVM_FIRST + 74),
LVM_GETTOOLTIPS = (LVM_FIRST + 78),
LVM_SORTITEMSEX = (LVM_FIRST + 81),
LVM_SETBKIMAGEA = (LVM_FIRST + 68),
LVM_SETBKIMAGEW = (LVM_FIRST + 138),
LVM_GETBKIMAGEA = (LVM_FIRST + 69),
LVM_GETBKIMAGEW = (LVM_FIRST + 139),
LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140),
LVM_SETTILEWIDTH = (LVM_FIRST + 141),
LVM_SETVIEW = (LVM_FIRST + 142),
LVM_GETVIEW = (LVM_FIRST + 143),
LVM_INSERTGROUP = (LVM_FIRST + 145),
LVM_SETGROUPINFO = (LVM_FIRST + 147),
LVM_GETGROUPINFO = (LVM_FIRST + 149),
LVM_REMOVEGROUP = (LVM_FIRST + 150),
LVM_MOVEGROUP = (LVM_FIRST + 151),
LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154),
LVM_SETGROUPMETRICS = (LVM_FIRST + 155),
LVM_GETGROUPMETRICS = (LVM_FIRST + 156),
LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157),
LVM_SORTGROUPS = (LVM_FIRST + 158),
LVM_INSERTGROUPSORTED = (LVM_FIRST + 159),
LVM_REMOVEALLGROUPS = (LVM_FIRST + 160),
LVM_HASGROUP = (LVM_FIRST + 161),
LVM_SETTILEVIEWINFO = (LVM_FIRST + 162),
LVM_GETTILEVIEWINFO = (LVM_FIRST + 163),
LVM_SETTILEINFO = (LVM_FIRST + 164),
LVM_GETTILEINFO = (LVM_FIRST + 165),
LVM_SETINSERTMARK = (LVM_FIRST + 166),
LVM_GETINSERTMARK = (LVM_FIRST + 167),
LVM_INSERTMARKHITTEST = (LVM_FIRST + 168),
LVM_GETINSERTMARKRECT = (LVM_FIRST + 169),
LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170),
LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171),
LVM_SETINFOTIP = (LVM_FIRST + 173),
LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174),
LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175),
LVM_GETOUTLINECOLOR = (LVM_FIRST + 176),
LVM_SETOUTLINECOLOR = (LVM_FIRST + 177),
LVM_CANCELEDITLABEL = (LVM_FIRST + 179),
LVM_MAPINDEXTOID = (LVM_FIRST + 180),
LVM_MAPIDTOINDEX = (LVM_FIRST + 181),
TVM_INSERTITEMA = (TV_FIRST + 0),
TVM_INSERTITEMW = (TV_FIRST + 50),
TVM_DELETEITEM = (TV_FIRST + 1),
TVM_EXPAND = (TV_FIRST + 2),
TVM_GETITEMRECT = (TV_FIRST + 4),
TVM_GETCOUNT = (TV_FIRST + 5),
TVM_GETINDENT = (TV_FIRST + 6),
TVM_SETINDENT = (TV_FIRST + 7),
TVM_GETIMAGELIST = (TV_FIRST + 8),
TVM_SETIMAGELIST = (TV_FIRST + 9),
TVM_GETNEXTITEM = (TV_FIRST + 10),
TVM_SELECTITEM = (TV_FIRST + 11),
TVM_GETITEMA = (TV_FIRST + 12),
TVM_GETITEMW = (TV_FIRST + 62),
TVM_SETITEMA = (TV_FIRST + 13),
TVM_SETITEMW = (TV_FIRST + 63),
TVM_EDITLABELA = (TV_FIRST + 14),
TVM_EDITLABELW = (TV_FIRST + 65),
TVM_GETEDITCONTROL = (TV_FIRST + 15),
TVM_GETVISIBLECOUNT = (TV_FIRST + 16),
TVM_HITTEST = (TV_FIRST + 17),
TVM_CREATEDRAGIMAGE = (TV_FIRST + 18),
TVM_SORTCHILDREN = (TV_FIRST + 19),
TVM_ENSUREVISIBLE = (TV_FIRST + 20),
TVM_SORTCHILDRENCB = (TV_FIRST + 21),
TVM_ENDEDITLABELNOW = (TV_FIRST + 22),
TVM_GETISEARCHSTRINGA = (TV_FIRST + 23),
TVM_GETISEARCHSTRINGW = (TV_FIRST + 64),
TVM_SETTOOLTIPS = (TV_FIRST + 24),
TVM_GETTOOLTIPS = (TV_FIRST + 25),
TVM_SETINSERTMARK = (TV_FIRST + 26),
TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
TVM_SETITEMHEIGHT = (TV_FIRST + 27),
TVM_GETITEMHEIGHT = (TV_FIRST + 28),
TVM_SETBKCOLOR = (TV_FIRST + 29),
TVM_SETTEXTCOLOR = (TV_FIRST + 30),
TVM_GETBKCOLOR = (TV_FIRST + 31),
TVM_GETTEXTCOLOR = (TV_FIRST + 32),
TVM_SETSCROLLTIME = (TV_FIRST + 33),
TVM_GETSCROLLTIME = (TV_FIRST + 34),
TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37),
TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38),
TVM_GETITEMSTATE = (TV_FIRST + 39),
TVM_SETLINECOLOR = (TV_FIRST + 40),
TVM_GETLINECOLOR = (TV_FIRST + 41),
TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42),
TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43),
CBEM_INSERTITEMA = (WM_USER + 1),
CBEM_SETIMAGELIST = (WM_USER + 2),
CBEM_GETIMAGELIST = (WM_USER + 3),
CBEM_GETITEMA = (WM_USER + 4),
CBEM_SETITEMA = (WM_USER + 5),
CBEM_DELETEITEM = CB_DELETESTRING,
CBEM_GETCOMBOCONTROL = (WM_USER + 6),
CBEM_GETEDITCONTROL = (WM_USER + 7),
CBEM_SETEXTENDEDSTYLE = (WM_USER + 14),
CBEM_GETEXTENDEDSTYLE = (WM_USER + 9),
CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
CBEM_SETEXSTYLE = (WM_USER + 8),
CBEM_GETEXSTYLE = (WM_USER + 9),
CBEM_HASEDITCHANGED = (WM_USER + 10),
CBEM_INSERTITEMW = (WM_USER + 11),
CBEM_SETITEMW = (WM_USER + 12),
CBEM_GETITEMW = (WM_USER + 13),
TCM_GETIMAGELIST = (TCM_FIRST + 2),
TCM_SETIMAGELIST = (TCM_FIRST + 3),
TCM_GETITEMCOUNT = (TCM_FIRST + 4),
TCM_GETITEMA = (TCM_FIRST + 5),
TCM_GETITEMW = (TCM_FIRST + 60),
TCM_SETITEMA = (TCM_FIRST + 6),
TCM_SETITEMW = (TCM_FIRST + 61),
TCM_INSERTITEMA = (TCM_FIRST + 7),
TCM_INSERTITEMW = (TCM_FIRST + 62),
TCM_DELETEITEM = (TCM_FIRST + 8),
TCM_DELETEALLITEMS = (TCM_FIRST + 9),
TCM_GETITEMRECT = (TCM_FIRST + 10),
TCM_GETCURSEL = (TCM_FIRST + 11),
TCM_SETCURSEL = (TCM_FIRST + 12),
TCM_HITTEST = (TCM_FIRST + 13),
TCM_SETITEMEXTRA = (TCM_FIRST + 14),
TCM_ADJUSTRECT = (TCM_FIRST + 40),
TCM_SETITEMSIZE = (TCM_FIRST + 41),
TCM_REMOVEIMAGE = (TCM_FIRST + 42),
TCM_SETPADDING = (TCM_FIRST + 43),
TCM_GETROWCOUNT = (TCM_FIRST + 44),
TCM_GETTOOLTIPS = (TCM_FIRST + 45),
TCM_SETTOOLTIPS = (TCM_FIRST + 46),
TCM_GETCURFOCUS = (TCM_FIRST + 47),
TCM_SETCURFOCUS = (TCM_FIRST + 48),
TCM_SETMINTABWIDTH = (TCM_FIRST + 49),
TCM_DESELECTALL = (TCM_FIRST + 50),
TCM_HIGHLIGHTITEM = (TCM_FIRST + 51),
TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52),
TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53),
TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
ACM_OPENA = (WM_USER+100),
ACM_OPENW = (WM_USER+103),
ACM_PLAY = (WM_USER+101),
ACM_STOP = (WM_USER+102),
MCM_FIRST = 0x1000,
MCM_GETCURSEL = (MCM_FIRST + 1),
MCM_SETCURSEL = (MCM_FIRST + 2),
MCM_GETMAXSELCOUNT = (MCM_FIRST + 3),
MCM_SETMAXSELCOUNT = (MCM_FIRST + 4),
MCM_GETSELRANGE = (MCM_FIRST + 5),
MCM_SETSELRANGE = (MCM_FIRST + 6),
MCM_GETMONTHRANGE = (MCM_FIRST + 7),
MCM_SETDAYSTATE = (MCM_FIRST + 8),
MCM_GETMINREQRECT = (MCM_FIRST + 9),
MCM_SETCOLOR = (MCM_FIRST + 10),
MCM_GETCOLOR = (MCM_FIRST + 11),
MCM_SETTODAY = (MCM_FIRST + 12),
MCM_GETTODAY = (MCM_FIRST + 13),
MCM_HITTEST = (MCM_FIRST + 14),
MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15),
MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16),
MCM_GETRANGE = (MCM_FIRST + 17),
MCM_SETRANGE = (MCM_FIRST + 18),
MCM_GETMONTHDELTA = (MCM_FIRST + 19),
MCM_SETMONTHDELTA = (MCM_FIRST + 20),
MCM_GETMAXTODAYWIDTH = (MCM_FIRST + 21),
MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
DTM_FIRST = 0x1000,
DTM_GETSYSTEMTIME = (DTM_FIRST + 1),
DTM_SETSYSTEMTIME = (DTM_FIRST + 2),
DTM_GETRANGE = (DTM_FIRST + 3),
DTM_SETRANGE = (DTM_FIRST + 4),
DTM_SETFORMATA = (DTM_FIRST + 5),
DTM_SETFORMATW = (DTM_FIRST + 50),
DTM_SETMCCOLOR = (DTM_FIRST + 6),
DTM_GETMCCOLOR = (DTM_FIRST + 7),
DTM_GETMONTHCAL = (DTM_FIRST + 8),
DTM_SETMCFONT = (DTM_FIRST + 9),
DTM_GETMCFONT = (DTM_FIRST + 10),
PGM_SETCHILD = (PGM_FIRST + 1),
PGM_RECALCSIZE = (PGM_FIRST + 2),
PGM_FORWARDMOUSE = (PGM_FIRST + 3),
PGM_SETBKCOLOR = (PGM_FIRST + 4),
PGM_GETBKCOLOR = (PGM_FIRST + 5),
PGM_SETBORDER = (PGM_FIRST + 6),
PGM_GETBORDER = (PGM_FIRST + 7),
PGM_SETPOS = (PGM_FIRST + 8),
PGM_GETPOS = (PGM_FIRST + 9),
PGM_SETBUTTONSIZE = (PGM_FIRST + 10),
PGM_GETBUTTONSIZE = (PGM_FIRST + 11),
PGM_GETBUTTONSTATE = (PGM_FIRST + 12),
PGM_GETDROPTARGET = CCM_GETDROPTARGET,
BCM_GETIDEALSIZE = (BCM_FIRST + 0x0001),
BCM_SETIMAGELIST = (BCM_FIRST + 0x0002),
BCM_GETIMAGELIST = (BCM_FIRST + 0x0003),
BCM_SETTEXTMARGIN = (BCM_FIRST + 0x0004),
BCM_GETTEXTMARGIN = (BCM_FIRST + 0x0005),
EM_SETCUEBANNER = (ECM_FIRST + 1),
EM_GETCUEBANNER = (ECM_FIRST + 2),
EM_SHOWBALLOONTIP = (ECM_FIRST + 3),
EM_HIDEBALLOONTIP = (ECM_FIRST + 4),
CB_SETMINVISIBLE = (CBM_FIRST + 1),
CB_GETMINVISIBLE = (CBM_FIRST + 2),
LM_HITTEST = (WM_USER + 0x300),
LM_GETIDEALHEIGHT = (WM_USER + 0x301),
LM_SETITEM = (WM_USER + 0x302),
LM_GETITEM = (WM_USER + 0x303)