# $Id: user.spec,v 1.3 1993/07/04 04:04:21 root Exp root $
#
name	user
id	2
length	540

1   pascal MessageBox(word ptr ptr word) MessageBox(1 2 3 4)
5   pascal InitApp(word) USER_InitApp(1)
6   pascal PostQuitMessage(word) PostQuitMessage(1)
10  pascal SetTimer(word word word ptr) SetTimer(1 2 3 4)
11  pascal SetSystemTimer(word word word ptr) SetSystemTimer(1 2 3 4)
12  pascal KillTimer(word word) KillTimer(1 2)
13  pascal GetTickCount() GetTickCount()
14  return GetTimerResolution 0 1000
15  pascal GetCurrentTime() GetTickCount()
16  pascal ClipCursor(ptr) ClipCursor(1)
17  pascal GetCursorPos(ptr) GetCursorPos(1)
18  pascal SetCapture(word) SetCapture(1)
19  pascal ReleaseCapture() ReleaseCapture()
20  pascal SetDoubleClickTime(word) SetDoubleClickTime(1)
21  pascal GetDoubleClickTime() GetDoubleClickTime()
22  pascal SetFocus(word) SetFocus(1)
23  pascal GetFocus() GetFocus()
28  pascal ClientToScreen(word ptr) ClientToScreen(1 2)
29  pascal ScreenToClient(word ptr) ScreenToClient(1 2)
31  pascal IsIconic(word) IsIconic(1)
32  pascal GetWindowRect(word ptr) GetWindowRect(1 2)
33  pascal GetClientRect(word ptr) GetClientRect(1 2)
36  pascal GetWindowText(word ptr word) GetWindowText(1 2 3)
37  pascal SetWindowText(word ptr) SetWindowText(1 2)
38  pascal GetWindowTextLength(word) GetWindowTextLength(1)
39  pascal BeginPaint(word ptr) BeginPaint(1 2)
40  pascal EndPaint(word ptr) EndPaint(1 2)
41  pascal CreateWindow(ptr ptr long s_word s_word s_word s_word word word word ptr) 
	   CreateWindow(1 2 3 4 5 6 7 8 9 10 11)
42  pascal ShowWindow(word word) ShowWindow(1 2)
43  pascal CloseWindow(word) CloseWindow(1)
44  pascal OpenIcon(word) OpenIcon(1)
46  pascal GetParent(word) GetParent(1)
47  pascal IsWindow(word) IsWindow(1)
48  pascal IsChild(word word) IsChild(1 2)
49  pascal IsWindowVisible(word) IsWindowVisible(1)
50  pascal FindWindow(ptr ptr) FindWindow(1 2)
53  pascal DestroyWindow(word) DestroyWindow(1)
56  pascal MoveWindow(word word word word word word) 
           MoveWindow(1 2 3 4 5 6)
57  pascal RegisterClass(ptr) RegisterClass(1)
58  pascal GetClassName(word ptr word) GetClassName(1 2 3)
61  pascal ScrollWindow(word s_word s_word ptr ptr) ScrollWindow(1 2 3 4 5)
62  pascal SetScrollPos(word word word word) SetScrollPos(1 2 3 4)
63  pascal GetScrollPos(word word) GetScrollPos(1 2)
64  pascal SetScrollRange(word word word word word) SetScrollRange(1 2 3 4 5)
65  pascal GetScrollRange(word word ptr ptr) GetScrollRange(1 2 3 4)
66  pascal GetDC(word) GetDC(1)
67  pascal GetWindowDC(word) GetWindowDC(1)
68  pascal ReleaseDC(word word) ReleaseDC(1 2)
69  pascal SetCursor(word) SetCursor(1)
70  pascal SetCursorPos(word word) SetCursorPos(1 2)
71  pascal ShowCursor(word) ShowCursor(1)
72  pascal SetRect(ptr s_word s_word s_word s_word) SetRect(1 2 3 4 5)
73  pascal SetRectEmpty(ptr) SetRectEmpty(1)
74  pascal CopyRect(ptr ptr) CopyRect(1 2)
75  pascal IsRectEmpty(ptr) IsRectEmpty(1)
76  pascal PtInRect(ptr long) PtInRect(1 2)
77  pascal OffsetRect(ptr s_word s_word) OffsetRect(1 2 3)
78  pascal InflateRect(ptr s_word s_word) InflateRect(1 2 3)
79  pascal IntersectRect(ptr ptr ptr) IntersectRect(1 2 3)
80  pascal UnionRect(ptr ptr ptr) UnionRect(1 2 3)
81  pascal FillRect(word ptr word) FillRect(1 2 3)
82  pascal InvertRect(word ptr) InvertRect(1 2)
83  pascal FrameRect(word ptr word) FrameRect(1 2 3)
84  pascal DrawIcon(word s_word s_word word) DrawIcon(1 2 3 4)
85  pascal DrawText(word ptr s_word ptr word) DrawText(1 2 3 4 5)
87  pascal DialogBox(word ptr word ptr) DialogBox(1 2 3 4)
88  pascal EndDialog(word s_word) EndDialog(1 2)
89  pascal CreateDialog(word ptr word ptr) CreateDialog(1 2 3 4)
90  pascal IsDialogMessage(word ptr) IsDialogMessage(1 2)
91  pascal GetDlgItem(word word) GetDlgItem(1 2)
92  pascal SetDlgItemText(word word ptr) SetDlgItemText(1 2 3)
93  pascal GetDlgItemText(word word ptr word) GetDlgItemText(1 2 3 4)
94  pascal SetDlgItemInt(word word word word) SetDlgItemInt(1 2 3 4)
95  pascal GetDlgItemInt(word word ptr word) GetDlgItemInt(1 2 3 4)
96  pascal CheckRadioButton(word word word word) CheckRadioButton(1 2 3 4)
97  pascal CheckDlgButton(word word word) CheckDlgButton(1 2 3)
98  pascal IsDlgButtonChecked(word word) IsDlgButtonChecked(1 2)
101 pascal SendDlgItemMessage(word word word word long)
	   SendDlgItemMessage(1 2 3 4 5)
102 pascal AdjustWindowRect(ptr long word) AdjustWindowRect(1 2 3)
103 pascal MapDialogRect(word ptr) MapDialogRect(1 2)
104 pascal MessageBeep(word) MessageBeep(1)
106 pascal GetKeyState(word) GetKeyState(1)
107 pascal DefWindowProc(word word word long) DefWindowProc(1 2 3 4)
108 pascal GetMessage(ptr word word word) GetMessage(1 2 3 4)
109 pascal PeekMessage(ptr word word word word) PeekMessage(1 2 3 4 5)
110 pascal PostMessage(word word word long) PostMessage(1 2 3 4)
111 pascal SendMessage(word word word long) SendMessage(1 2 3 4)
113 pascal TranslateMessage(ptr) TranslateMessage(1)
114 pascal DispatchMessage(ptr) DispatchMessage(1)
118 pascal RegisterWindowMessage(ptr) RegisterWindowMessage(1)
119 pascal GetMessagePos() GetMessagePos()
120 pascal GetMessageTime() GetMessageTime()
122 pascal CallWindowProc(ptr word word word long) CallWindowProc(1 2 3 4 5)
124 pascal UpdateWindow(word) UpdateWindow(1)
125 pascal InvalidateRect(word ptr word) InvalidateRect(1 2 3)
126 pascal InvalidateRgn(word word word) InvalidateRgn(1 2 3)
127 pascal ValidateRect(word ptr) ValidateRect(1 2)
128 pascal ValidateRgn(word word) ValidateRgn(1 2)
129 pascal GetClassWord(word s_word) GetClassWord(1 2)
130 pascal SetClassWord(word s_word word) SetClassWord(1 2 3)
131 pascal GetClassLong(word s_word) GetClassLong(1 2)
132 pascal SetClassLong(word s_word long) SetClassLong(1 2 3)
133 pascal GetWindowWord(word s_word) GetWindowWord(1 2)
134 pascal SetWindowWord(word s_word word) SetWindowWord(1 2 3)
135 pascal GetWindowLong(word s_word) GetWindowLong(1 2)
136 pascal SetWindowLong(word s_word long) SetWindowLong(1 2 3)
150 pascal LoadMenu(word ptr) LoadMenu(1 2)
151 pascal CreateMenu() CreateMenu()
152 pascal DestroyMenu(word) DestroyMenu(1)
154 pascal CheckMenuItem(word word word) CheckMenuItem(1 2 3)
155 pascal EnableMenuItem(word word word) EnableMenuItem(1 2 3)
157 pascal GetMenu(word) GetMenu(1)
158 pascal SetMenu(word word) SetMenu(1 2)
163 pascal CreateCaret(word word word word) CreateCaret(1 2 3 4)
164 pascal DestroyCaret() DestroyCaret()
165 pascal SetCaretPos(word word) SetCaretPos(1 2)
166 pascal HideCaret(word) HideCaret(1)
167 pascal ShowCaret(word) ShowCaret(1)
166 pascal SetCaretBlinkTime(word) SetCaretBlinkTime(1)
169 pascal GetCaretBlinkTime() GetCaretBlinkTime()
171 pascal WinHelp(word word long) WinHelp(1 2 3)
173 pascal LoadCursor(word ptr) LoadCursor(1 2)
174 pascal LoadIcon(word ptr) LoadIcon(1 2)
175 pascal LoadBitmap(word ptr) LoadBitmap(1 2)
176 pascal LoadString(word word ptr s_word) LoadString(1 2 3 4)
177 pascal LoadAccelerators(word ptr) LoadAccelerators(1 2)
179 pascal GetSystemMetrics(word) GetSystemMetrics(1)
180 pascal GetSysColor(word) GetSysColor(1)
181 pascal SetSysColors(word ptr ptr) SetSysColors(1 2 3)
182 pascal KillSystemTimer(word word) KillSystemTimer(1 2)
183 pascal GetCaretPos(ptr) GetCaretPos(1)
190 pascal GetUpdateRect(word ptr word) GetUpdateRect(1 2 3)
200 pascal OpenComm(ptr word word) OpenComm(1 2 3)
201 pascal SetCommState(ptr) SetCommState(1)
202 pascal GetCommState(word ptr) GetCommState(1 2)
203 pascal GetCommError(word ptr) GetCommError(1 2)
204 pascal ReadComm(word ptr word) ReadComm(1 2 3)
205 pascal WriteComm(word ptr word) WriteComm(1 2 3)
206 pascal TransmitCommChar(word byte) TransmitCommChar (1 2)
207 pascal CloseComm(word) CloseComm(1)
208 pascal SetCommEventMask(word word) SetCommEventMask(1 2)
209 pascal GetCommEventMask(word word) GetCommEventMask(1 2)
210 pascal SetCommBreak(word) SetCommBreak(1)
211 pascal ClearCommBreak(word) ClearCommBreak(1)
212 pascal UngetCommChar(word byte) UngetCommChar(1 2)
213 pascal BuildCommDCB(ptr ptr) BuildCommDCB(1 2)
214 pascal EscapeCommFunction(word word) EscapeCommFunction(1 2)
215 pascal FlushComm(word word) FlushComm(1 2)
218 pascal DialogBoxIndirect(word word word ptr) DialogBoxIndirect(1 2 3 4)
219 pascal CreateDialogIndirect(word ptr word ptr)
	   CreateDialogIndirect(1 2 3 4)
221 pascal ScrollDC(word s_word s_word ptr ptr word ptr) 
	   ScrollDC(1 2 3 4 5 6 7)
227 pascal GetNextDlgGroupItem(word word word) GetNextDlgGroupItem(1 2 3)
228 pascal GetNextDlgTabItem(word word word) GetNextDlgTabItem(1 2 3)
229 pascal GetTopWindow(word) GetTopWindow(1)
230 pascal GetNextWindow(word word) GetNextWindow(1 2)
232 pascal SetWindowPos(word word word word word word word) 
           SetWindowPos(1 2 3 4 5 6 7)
236 pascal GetCapture() GetCapture()
237 pascal GetUpdateRgn(word word word) GetUpdateRgn(1 2 3)
239 pascal DialogBoxParam(word ptr word ptr long) DialogBoxParam(1 2 3 4 5)
240 pascal DialogBoxIndirectParam(word word word ptr long)
	   DialogBoxIndirectParam(1 2 3 4 5)
241 pascal CreateDialogParam(word ptr word ptr long)
	   CreateDialogParam(1 2 3 4 5)
242 pascal CreateDialogIndirectParam(word ptr word ptr long)
	   CreateDialogIndirectParam(1 2 3 4 5)
244 pascal EqualRect(ptr ptr) EqualRect(1 2)
258 pascal MapWindowPoints(word word ptr word) MapWindowPoints(1 2 3 4)
262 pascal GetWindow(word word) GetWindow(1 2)
266 pascal SetMessageQueue(word) SetMessageQueue(1)
267 pascal ShowScrollBar(word word word) ShowScrollBar(1 2 3)
272 pascal IsZoomed(word) IsZoomed(1)
277 pascal GetDlgCtrlID(word) GetDlgCtrlID(1)
282 pascal SelectPalette(word word word) SelectPalette(1 2 3)
283 pascal RealizePalette(word) RealizePalette(1)
286 pascal GetDesktopWindow() GetDesktopWindow()
288 pascal GetMessageExtraInfo() GetMessageExtraInfo()
319 pascal ScrollWindowEx(word s_word s_word ptr ptr word ptr word) 
	   ScrollWindowEx(1 2 3 4 5 6 7 8)
324 pascal FillWindow(word word word word) FillWindow(1 2 3 4)
325 pascal PaintRect(word word word word ptr) PaintRect(1 2 3 4 5)
334 pascal GetQueueStatus(word) GetQueueStatus(1)
335 pascal GetInputState() GetInputState()
359 pascal GetDCEx(word word long) GetDCEx(1 2 3)
373 pascal SubtractRect(ptr ptr ptr) SubtractRect(1 2 3)
403 pascal UnregisterClass(ptr word) UnregisterClass(1 2)
404 pascal GetClassInfo(word ptr ptr) GetClassInfo(1 2 3)
406 pascal CreateCursor(word word word word word ptr ptr) 
	CreateCursor(1 2 3 4 5 6 7)
410 pascal InsertMenu(word word word word ptr) InsertMenu(1 2 3 4 5)
411 pascal AppendMenu(word word word ptr) AppendMenu(1 2 3 4)
412 pascal RemoveMenu(word word word) RemoveMenu(1 2 3)
413 pascal DeleteMenu(word word word) DeleteMenu(1 2 3)
414 pascal ModifyMenu(word word word word ptr) ModifyMenu(1 2 3 4 5)
415 pascal CreatePopupMenu() CreatePopupMenu()
416 pascal TrackPopupMenu(word word word word word word ptr) 
	   TrackPopupMenu(1 2 3 4 5 6 7)
420 pascal wsprintf(ptr ptr) wsprintf(1 2)
421 pascal wvsprintf(ptr ptr ptr) wvsprintf(1 2 3)
430 pascal lstrcmp(ptr ptr) lstrcmp(1 2)
431 pascal AnsiUpper(ptr) AnsiUpper(1)
432 pascal AnsiLower(ptr) AnsiLower(1)
433 pascal IsCharAlpha(byte) IsCharAlpha(1)
434 pascal IsCharAlphanumeric(byte) IsCharAlphanumeric(1)
435 pascal IsCharUpper(byte) IsCharUpper(1)
436 pascal IsCharLower(byte) IsCharLower(1)
437 pascal AnsiUpperBuff(ptr word) AnsiUpperBuff(1 2)
438 pascal AnsiLowerBuff(ptr word) AnsiLowerBuff(1 2)
452 pascal CreateWindowEx(long ptr ptr long s_word s_word s_word s_word 
	                  word word word ptr) 
	   CreateWindowEx(1 2 3 4 5 6 7 8 9 10 11 12)
457 pascal DestroyIcon(word) DestroyIcon(1)
458 pascal DestroyCursor(word) DestroyCursor(1)
471 pascal lstrcmpi(ptr ptr) lstrcmpi(1 2)
472 pascal AnsiNext(ptr) AnsiNext(1 )
473 pascal AnsiPrev(ptr ptr) AnsiPrev(1 2)
