Release 940505

May 1, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [loader/signal.c]
	Add XUngrabPointer() & XUngrabServer() in wine_fault().

Fri Apr 22 19:30:08 1994  Erik Bos (erik@trashcan.hacktic.nl)

	* [objects/bitblt.c]
	color_stretch() rewritten to use ints only. *fast!*
	BLACKONWHITE & WHITEONBLACK stretchmodes redirected to
	use color_stretch().

Mon May  2 21:39:43 1994  Erik Bos (erik@trashcan.hacktic.nl)

	* [controls/menu.c]
	SetSysMenu() added.

	* [misc/cursor.c]
	GetCursor() added.

	* [misc/main.c]
	SwapMouseButton() added, (NOP).

	* [windows/win.c]
	GetDesktopHwnd() added.

	* [if1632/*spec]
	Added not implemented functions defs as comment.

	* [misc/winsocket.c]
	Change WSAGetXbyY() functions to non-blocking ones,
	Added WSAAsyncSelect(). 
	(WSA functions can't be canceled yet).

Wed Apr 20 23:58:58 1994  Scott A. Laird  (scott@curly)

	* misc/profile.c: Fixed bug with GetIniFileName returning wrong
	path when given a simple file name.  Fixed GetSetProfile to allow
	enumerating all key names when KeyName is null.

Apr 25, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [objects/bitblt.c]
	Add protection to BitBlt() & StretchBlt() for width or height = 0.

	* [windows/nonclient.c]
	Avoid painting in NC_DoNCPaint() if IsWindowVisible().
	Simplify NC_TrackMouseMenuBar() because code moved to MenuFocusLoop().

	* [windows/win.c]
	CreateWindowEx() & DestroyWindow() now call respectively
		AddWindowToTask() & RemoveWindowFromTask().
	New empty stub for function AnyPopup().

	* [loader/library.c]
	Bug Fix : GetModuleFileName() now return full path filename.

	* [include/menu.h] [controls/menu.c]
	Add hText handle and remove obsolete MENUITEM struct members.
	Add a ReleaseCapture() in SetMenu() when menubar changed while captured.
	Add MenuMouseMove() MenuButtonUp() in function MenuFocusLoop().

	* [misc/file.c]
	GetTempFilename() now create a file.
	_lcreate() use unix open (name, mode, perm), with perm=O666.

	* [if1632/relay.c]
	Remove temporarly builtin SHELL.DLL, Add MMSYSTEM.DLL in builtin list.

	* New file [misc/mmsystem.c]
	* New file [include/mmsystem.h]
	* New file [if1632/mmsystem.spec]
	Many, many empty stubs ... :-)
This commit is contained in:
Alexandre Julliard 1994-05-04 19:15:00 +00:00
parent 5819953c2a
commit 1d62f6b9c2
18 changed files with 776 additions and 103 deletions

View File

@ -1,3 +1,45 @@
----------------------------------------------------------------------
May 1, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)
* [loader/signal.c]
Add XUngrabPointer() & XUngrabServer() in wine_fault().
Fri Apr 22 19:30:08 1994 Erik Bos (erik@trashcan.hacktic.nl)
* [objects/bitblt.c]
color_stretch() rewritten to use ints only. *fast!*
BLACKONWHITE & WHITEONBLACK stretchmodes redirected to
use color_stretch().
Mon May 2 21:39:43 1994 Erik Bos (erik@trashcan.hacktic.nl)
* [controls/menu.c]
SetSysMenu() added.
* [misc/cursor.c]
GetCursor() added.
* [misc/main.c]
SwapMouseButton() added, (NOP).
* [windows/win.c]
GetDesktopHwnd() added.
* [if1632/*spec]
Added not implemented functions defs as comment.
* [misc/winsocket.c]
Change WSAGetXbyY() functions to non-blocking ones,
Added WSAAsyncSelect().
(WSA functions can't be canceled yet).
Wed Apr 20 23:58:58 1994 Scott A. Laird (scott@curly)
* misc/profile.c: Fixed bug with GetIniFileName returning wrong
path when given a simple file name. Fixed GetSetProfile to allow
enumerating all key names when KeyName is null.
----------------------------------------------------------------------
Wed Apr 20 14:53:35 1994 Bob Amstadt (bob@pooh) Wed Apr 20 14:53:35 1994 Bob Amstadt (bob@pooh)
* [tools/build.c] [if1632/call.S] [if1632/Imakefile] * [tools/build.c] [if1632/call.S] [if1632/Imakefile]

6
README
View File

@ -171,6 +171,12 @@ bob@amscons.com
7. WHAT'S NEW 7. WHAT'S NEW
WHAT'S NEW with Wine-940505: (see ChangeLog for details)
- faster color_stretch()
- SetSysMenu(), GetCursor(), GetDesktopWindow()
- WSAGetXbyY() now non-blocking
- and many many bug fixes!
WHAT'S NEW with Wine-940420: (see ChangeLog for details) WHAT'S NEW with Wine-940420: (see ChangeLog for details)
- new property functions - new property functions
- new listbox and combo box functions - new listbox and combo box functions

View File

@ -1,6 +1,2 @@
/* autoconf.h generated automatically. Run Configure. */ /* autoconf.h generated automatically. Run Configure. */
#error You must run Configure before you can build the makefiles.
#define WINE_INI_GLOBAL "/home/alex/wine/wine.conf"
#define AutoDefines

View File

@ -1924,6 +1924,17 @@ HMENU GetSystemMenu(HWND hWnd, BOOL bRevert)
return wndPtr->hSysMenu; return wndPtr->hSysMenu;
} }
/**********************************************************************
* SetSystemMenu [USER.280]
*/
BOOL SetSystemMenu(HWND hWnd, HMENU newHmenu)
{
WND *wndPtr;
if ((wndPtr = WIN_FindWndPtr(hWnd)) != NULL)
wndPtr->hSysMenu = newHmenu;
}
/********************************************************************** /**********************************************************************
* GetMenu [USER.157] * GetMenu [USER.157]

View File

@ -50,11 +50,15 @@ length 490
StretchBlt(1 2 3 4 5 6 7 8 9 10 11) StretchBlt(1 2 3 4 5 6 7 8 9 10 11)
36 pascal Polygon (word ptr word) Polygon (1 2 3) 36 pascal Polygon (word ptr word) Polygon (1 2 3)
37 pascal Polyline (word ptr word) Polyline (1 2 3) 37 pascal Polyline (word ptr word) Polyline (1 2 3)
#38 pascal Escape
39 pascal RestoreDC(word s_word) RestoreDC(1 2) 39 pascal RestoreDC(word s_word) RestoreDC(1 2)
40 pascal FillRgn(word word word) FillRgn(1 2 3) 40 pascal FillRgn(word word word) FillRgn(1 2 3)
#41 pascal FrameRgn
#42 pascal InvertRgn
43 pascal PaintRgn(word word) PaintRgn(1 2) 43 pascal PaintRgn(word word) PaintRgn(1 2)
44 pascal SelectClipRgn(word word) SelectClipRgn(1 2) 44 pascal SelectClipRgn(word word) SelectClipRgn(1 2)
45 pascal SelectObject(word word) SelectObject(1 2) 45 pascal SelectObject(word word) SelectObject(1 2)
#46 pascal __GP?
47 pascal CombineRgn(word word word word) CombineRgn(1 2 3 4) 47 pascal CombineRgn(word word word word) CombineRgn(1 2 3 4)
48 pascal CreateBitmap(word word word word ptr) CreateBitmap(1 2 3 4 5) 48 pascal CreateBitmap(word word word word ptr) CreateBitmap(1 2 3 4 5)
49 pascal CreateBitmapIndirect(ptr) CreateBitmapIndirect(1) 49 pascal CreateBitmapIndirect(ptr) CreateBitmapIndirect(1)
@ -81,6 +85,7 @@ length 490
68 pascal DeleteDC(word) DeleteDC(1) 68 pascal DeleteDC(word) DeleteDC(1)
69 pascal DeleteObject(word) DeleteObject(1) 69 pascal DeleteObject(word) DeleteObject(1)
70 pascal EnumFonts(word ptr ptr ptr) EnumFonts(1 2 3 4) 70 pascal EnumFonts(word ptr ptr ptr) EnumFonts(1 2 3 4)
#71 pascal EnumObjects
72 pascal EqualRgn(word word) EqualRgn(1 2) 72 pascal EqualRgn(word word) EqualRgn(1 2)
73 pascal ExcludeVisRect(word s_word s_word s_word s_word) 73 pascal ExcludeVisRect(word s_word s_word s_word s_word)
ExcludeVisRect(1 2 3 4 5) ExcludeVisRect(1 2 3 4 5)
@ -102,6 +107,7 @@ length 490
89 pascal GetTextCharacterExtra(word) GetTextCharacterExtra(1) 89 pascal GetTextCharacterExtra(word) GetTextCharacterExtra(1)
90 pascal GetTextColor(word) GetTextColor(1) 90 pascal GetTextColor(word) GetTextColor(1)
91 pascal GetTextExtent(word ptr s_word) GetTextExtent(1 2 3) 91 pascal GetTextExtent(word ptr s_word) GetTextExtent(1 2 3)
#92 pascal GetTextFace
93 pascal GetTextMetrics(word ptr) GetTextMetrics(1 2) 93 pascal GetTextMetrics(word ptr) GetTextMetrics(1 2)
94 pascal GetViewportExt(word) GetViewportExt(1) 94 pascal GetViewportExt(word) GetViewportExt(1)
95 pascal GetViewportOrg(word) GetViewportOrg(1) 95 pascal GetViewportOrg(word) GetViewportOrg(1)
@ -119,41 +125,141 @@ length 490
105 pascal SelectVisRgn(word word) SelectVisRgn(1 2) 105 pascal SelectVisRgn(word word) SelectVisRgn(1 2)
106 pascal SetBitmapBits(word long ptr) SetBitmapBits(1 2 3) 106 pascal SetBitmapBits(word long ptr) SetBitmapBits(1 2 3)
117 pascal SetDCOrg(word s_word s_word) SetDCOrg(1 2 3) 117 pascal SetDCOrg(word s_word s_word) SetDCOrg(1 2 3)
#121 pascal Death
#122 pascal ReSurRection
#123 pascal PlayMetaFile
#124 pascal GetMetaFile
#125 pascal CreateMetaFile
#126 pascal CloseMetaFile
#127 pascal DeleteMetaFile
128 pascal MulDiv(s_word s_word s_word) MulDiv(1 2 3) 128 pascal MulDiv(s_word s_word s_word) MulDiv(1 2 3)
129 pascal SaveVisRgn(word) SaveVisRgn(1) 129 pascal SaveVisRgn(word) SaveVisRgn(1)
130 pascal RestoreVisRgn(word) RestoreVisRgn(1) 130 pascal RestoreVisRgn(word) RestoreVisRgn(1)
131 pascal InquireVisRgn(word) InquireVisRgn(1) 131 pascal InquireVisRgn(word) InquireVisRgn(1)
#132 pascal SetEnvironment
#133 pascal GetEnvironment
134 pascal GetRgnBox(word ptr) GetRgnBox(1 2) 134 pascal GetRgnBox(word ptr) GetRgnBox(1 2)
#135 pascal ScanLr
#136 pascal RemoveFontResource
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg(1 2 3) 148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg(1 2 3)
149 pascal GetBrushOrg(word) GetBrushOrg(1) 149 pascal GetBrushOrg(word) GetBrushOrg(1)
150 pascal UnrealizeObject(word) UnrealizeObject(1) 150 pascal UnrealizeObject(word) UnrealizeObject(1)
#151 pascal CopyMetaFile
153 pascal CreateIC(ptr ptr ptr ptr) CreateIC(1 2 3 4) 153 pascal CreateIC(ptr ptr ptr ptr) CreateIC(1 2 3 4)
154 pascal GetNearestColor(word long) GetNearestColor(1 2) 154 pascal GetNearestColor(word long) GetNearestColor(1 2)
#155 pascal QueryAbort
#156 pascal CreateDiscardableBitmap
#159 pascal GetMetaFileBits
#160 pascal SetMetaFileBits
161 pascal PtInRegion(word s_word s_word) PtInRegion(1 2 3) 161 pascal PtInRegion(word s_word s_word) PtInRegion(1 2 3)
162 pascal GetBitmapDimension(word) GetBitmapDimension(1) 162 pascal GetBitmapDimension(word) GetBitmapDimension(1)
163 pascal SetBitmapDimension(word s_word s_word) SetBitmapDimension(1 2 3) 163 pascal SetBitmapDimension(word s_word s_word) SetBitmapDimension(1 2 3)
#169 pascal IsDCDirty
#170 pascal SetDCStatus
172 pascal SetRectRgn(word s_word s_word s_word s_word) SetRectRgn(1 2 3 4 5) 172 pascal SetRectRgn(word s_word s_word s_word s_word) SetRectRgn(1 2 3 4 5)
173 pascal GetClipRgn(word) GetClipRgn(1) 173 pascal GetClipRgn(word) GetClipRgn(1)
#175 pascal EnumMetaFile
179 pascal GetDCState(word) GetDCState(1) 179 pascal GetDCState(word) GetDCState(1)
180 pascal SetDCState(word word) SetDCState(1 2) 180 pascal SetDCState(word word) SetDCState(1 2)
181 pascal RectInRegionOld(word ptr) RectInRegion(1 2) 181 pascal RectInRegionOld(word ptr) RectInRegion(1 2)
#190 pascal SetDCHook
#191 pascal GetDCHook
#192 pascal SetHookFlags
#193 pascal SetBoundsRect
#194 pascal GetBoundsRect
#195 pascal SelectBitmap
#196 pascal SetMetaFileBitsBetter
#201 pascal DMBITBLT
#202 pascal DMCOLORINFO
#206 pascal DMENUMDFONTS
#207 pascal DMENUMOBJ
#208 pascal DMOUTPUT
#209 pascal DMPIXEL
#210 pascal DMREALIZEOBJECT
#211 pascal DMSTRBLT
#212 pascal DMSCANLR
#213 pascal BRUTE
#214 pascal DMEXTTEXTOUT
#215 pascal DMGETCHARWIDTH
#216 pascal DMSTRETCHBLT
#217 pascal DMDIBBITS
#218 pascal DMSTRETCHDIBITS
#219 pascal DMSETDIBTODEV
#220 pascal DMTRANSPOSE
#230 pascal CREATEPQ
#231 pascal MINPQ
#232 pascal EXTRACTPQ
#233 pascal INSERTPQ
#234 pascal SIZEPQ
#235 pascal DELETEPQ
#240 pascal OPENJOB
#241 pascal WRITESPOOL
#242 pascal WRITEDIALOG
#243 pascal CLOSEJOB
#244 pascal DELETEJOB
#245 pascal GETSPOOLJOB
#246 pascal STARTSPOOLPAGE
#247 pascal ENDSPOOLPAGE
#248 pascal QUERYJOB
250 pascal Copy(ptr ptr word) Copy(1 2 3) 250 pascal Copy(ptr ptr word) Copy(1 2 3)
#253 pascal DeleteSpoolPage
#254 pascal SpoolFile
#300 pascal ENGINEENUMERATEFONT
#301 pascal ENGINEDELETEFONT
#302 pascal ENGINEREALIZEFONT
#303 pascal ENGINEGETCHARWIDTH
#304 pascal ENGINESETFONTCONTEXT
#305 pascal ENGINEGETGLYPHBMP
#306 pascal ENGINEMAKEFONTDIR
#307 pascal GETCHARABCWIDTHS
#308 pascal GETOUTLINETEXTMETRICS
#309 pascal GETGLYPHOUTLINE
#310 pascal CREATESCALABLEFONTRESOURCE
#311 pascal GETFONTDATA
#312 pascal CONVERTOUTLINEFONTFILE
#313 pascal GETRASTERIZERCAPS
#314 pascal ENGINEEXTTEXTOUT
#330 pascal ENUMFONTFAMILIES
#332 pascal GETKERNINGPAIRS
345 pascal GetTextAlign(word) GetTextAlign(1) 345 pascal GetTextAlign(word) GetTextAlign(1)
346 pascal SetTextAlign(word word) SetTextAlign(1 2) 346 pascal SetTextAlign(word word) SetTextAlign(1 2)
348 pascal Chord(word s_word s_word s_word s_word s_word s_word s_word s_word) 348 pascal Chord(word s_word s_word s_word s_word s_word s_word s_word s_word)
Chord(1 2 3 4 5 6 7 8 9) Chord(1 2 3 4 5 6 7 8 9)
349 pascal SetMapperFlags(word word) SetMapperFlags(1 2) 349 pascal SetMapperFlags(word word) SetMapperFlags(1 2)
350 pascal GetCharWidth(word word word ptr) GetCharWidth(1 2 3 4) 350 pascal GetCharWidth(word word word ptr) GetCharWidth(1 2 3 4)
#351 pascal EXTTEXTOUT
#352 pascal GETPHYSICALFONTHANDLE
#353 pascal GETASPECTRATIOFILTER
#354 pascal SHRINKGDIHEAP
360 pascal CreatePalette(ptr) CreatePalette(1) 360 pascal CreatePalette(ptr) CreatePalette(1)
361 pascal GDISelectPalette(word word) GDISelectPalette(1 2) 361 pascal GDISelectPalette(word word) GDISelectPalette(1 2)
362 pascal GDIRealizePalette(word) GDIRealizePalette(1) 362 pascal GDIRealizePalette(word) GDIRealizePalette(1)
363 pascal GetPaletteEntries(word word word ptr) GetPaletteEntries(1 2 3 4) 363 pascal GetPaletteEntries(word word word ptr) GetPaletteEntries(1 2 3 4)
364 pascal SetPaletteEntries(word word word ptr) SetPaletteEntries(1 2 3 4) 364 pascal SetPaletteEntries(word word word ptr) SetPaletteEntries(1 2 3 4)
365 pascal RealizeDefaultPalette(word) RealizeDefaultPalette(1) 365 pascal RealizeDefaultPalette(word) RealizeDefaultPalette(1)
#366 pascal UPDATECOLORS
#367 pascal ANIMATEPALETTE
#368 pascal RESIZEPALETTE
370 pascal GetNearestPaletteIndex(word long) GetNearestPaletteIndex(1 2) 370 pascal GetNearestPaletteIndex(word long) GetNearestPaletteIndex(1 2)
375 pascal GetSystemPaletteEntries(word word word ptr) 375 pascal GetSystemPaletteEntries(word word word ptr)
GetSystemPaletteEntries(1 2 3 4) GetSystemPaletteEntries(1 2 3 4)
#376 pascal RESETDC
#377 pascal STARTDOC
#378 pascal ENDDOC
#379 pascal STARTPAGE
#380 pascal ENDPAGE
#381 pascal SETABORTPROC
#382 pascal ABORTDOC
#400 pascal FASTWINDOWFRAME
#401 pascal GDIMOVEBITMAP
#403 pascal GDIINIT2
#405 pascal FINALGDIINIT
#407 pascal CREATEUSERBITMAP
#409 pascal CREATEUSERDISCARDABLEBITMAP
#410 pascal ISVALIDMETAFILE
411 pascal GetCurLogFont(word) GetCurLogFont(1) 411 pascal GetCurLogFont(word) GetCurLogFont(1)
#412 pascal ISDCCURRENTPALETTE
#439 pascal STRETCHDIBITS
440 pascal SetDIBits(word word word word ptr ptr word) SetDIBits(1 2 3 4 5 6 7) 440 pascal SetDIBits(word word word word ptr ptr word) SetDIBits(1 2 3 4 5 6 7)
441 pascal GetDIBits(word word word word ptr ptr word) GetDIBits(1 2 3 4 5 6 7) 441 pascal GetDIBits(word word word word ptr ptr word) GetDIBits(1 2 3 4 5 6 7)
442 pascal CreateDIBitmap(word ptr long ptr ptr word) 442 pascal CreateDIBitmap(word ptr long ptr ptr word)
@ -163,10 +269,19 @@ length 490
444 pascal CreateRoundRectRgn(s_word s_word s_word s_word s_word s_word) 444 pascal CreateRoundRectRgn(s_word s_word s_word s_word s_word s_word)
CreateRoundRectRgn(1 2 3 4 5 6) CreateRoundRectRgn(1 2 3 4 5 6)
445 pascal CreateDIBPatternBrush(word word) CreateDIBPatternBrush(1 2) 445 pascal CreateDIBPatternBrush(word word) CreateDIBPatternBrush(1 2)
#449 pascal DEVICECOLORMATCH
#450 pascal POLYPOLYGON
451 pascal CreatePolyPolygonRgn(ptr ptr word word) 451 pascal CreatePolyPolygonRgn(ptr ptr word word)
CreatePolyPolygonRgn(1 2 3 4) CreatePolyPolygonRgn(1 2 3 4)
#452 pascal GDISEEGDIDO
#460 pascal GDITASKTERMINATION
#461 pascal SETOBJECTOWNER
#462 pascal ISGDIOBJECT
#463 pascal MAKEOBJECTPRIVATE
#464 pascal FIXUPBOGUSPUBLISHERMETAFILE
465 pascal RectVisible(word ptr) RectVisible(1 2) 465 pascal RectVisible(word ptr) RectVisible(1 2)
466 pascal RectInRegion(word ptr) RectInRegion(1 2) 466 pascal RectInRegion(word ptr) RectInRegion(1 2)
#467 pascal UNICODETOANSI
468 pascal GetBitmapDimensionEx(word ptr) GetBitmapDimensionEx(1 2) 468 pascal GetBitmapDimensionEx(word ptr) GetBitmapDimensionEx(1 2)
469 pascal GetBrushOrgEx(word ptr) GetBrushOrgEx(1 2) 469 pascal GetBrushOrgEx(word ptr) GetBrushOrgEx(1 2)
470 pascal GetCurrentPositionEx(word ptr) GetCurrentPositionEx(1 2) 470 pascal GetCurrentPositionEx(word ptr) GetCurrentPositionEx(1 2)
@ -189,3 +304,4 @@ length 490
ScaleViewportExtEx(1 2 3 4 5 6) ScaleViewportExtEx(1 2 3 4 5 6)
485 pascal ScaleWindowExtEx(word s_word s_word s_word s_word ptr) 485 pascal ScaleWindowExtEx(word s_word s_word s_word s_word ptr)
ScaleWindowExtEx(1 2 3 4 5 6) ScaleWindowExtEx(1 2 3 4 5 6)
#486 pascal GETASPECTRATIOFILEREX

View File

@ -4,6 +4,8 @@ name kernel
id 1 id 1
length 415 length 415
#1 FATALEXIT
#2 EXITKERNEL
3 pascal GetVersion() GetVersion() 3 pascal GetVersion() GetVersion()
4 pascal LocalInit(word word word) WIN16_LocalInit(1 2 3) 4 pascal LocalInit(word word word) WIN16_LocalInit(1 2 3)
5 pascal LocalAlloc(word word) WIN16_LocalAlloc(1 2) 5 pascal LocalAlloc(word word) WIN16_LocalAlloc(1 2)
@ -27,26 +29,43 @@ length 415
23 pascal LockSegment(s_word) KERNEL_LockSegment(1) 23 pascal LockSegment(s_word) KERNEL_LockSegment(1)
24 pascal UnlockSegment(s_word) KERNEL_UnlockSegment(1) 24 pascal UnlockSegment(s_word) KERNEL_UnlockSegment(1)
25 pascal GlobalCompact(long) GlobalCompact(1) 25 pascal GlobalCompact(long) GlobalCompact(1)
#29 pascal Yield() Yield() #26 GLOBALFREEALL
#28 GLOBALMASTERHANDLE
29 pascal Yield() Yield()
30 pascal WaitEvent(word) KERNEL_WaitEvent(1) 30 pascal WaitEvent(word) KERNEL_WaitEvent(1)
#31 POSTEVENT
#32 SETPRIORITY
#33 LOCKCURRENTTASK
34 pascal SetTaskQueue(word word) SetTaskQueue(1 2) 34 pascal SetTaskQueue(word word) SetTaskQueue(1 2)
35 pascal GetTaskQueue(word) GetTaskQueue(1) 35 pascal GetTaskQueue(word) GetTaskQueue(1)
36 pascal GetCurrentTask() GetCurrentTask() 36 pascal GetCurrentTask() GetCurrentTask()
#37 GETCURRENTPDB
#38 SETTASKSIGNALPROC
#41 ENABLEDOS
#42 DISABLEDOS
45 pascal LoadModule(ptr ptr) LoadModule(1 2) 45 pascal LoadModule(ptr ptr) LoadModule(1 2)
#46 FREEMODULE
47 pascal GetModuleHandle(ptr) GetModuleHandle(1) 47 pascal GetModuleHandle(ptr) GetModuleHandle(1)
48 pascal GetModuleUsage(word) GetModuleUsage(1) 48 pascal GetModuleUsage(word) GetModuleUsage(1)
49 pascal GetModuleFileName(word ptr s_word) GetModuleFileName(1 2 3) 49 pascal GetModuleFileName(word ptr s_word) GetModuleFileName(1 2 3)
50 pascal GetProcAddress(word ptr) GetProcAddress(1 2) 50 pascal GetProcAddress(word ptr) GetProcAddress(1 2)
51 pascal MakeProcInstance(ptr word) CALLBACK_MakeProcInstance(1 2) 51 pascal MakeProcInstance(ptr word) CALLBACK_MakeProcInstance(1 2)
52 pascal FreeProcInstance(ptr) FreeProcInstance(1) 52 pascal FreeProcInstance(ptr) FreeProcInstance(1)
#53 CALLPROCINSTANCE
#54 GETINSTANCEDATA
55 pascal Catch(ptr) Catch (1) 55 pascal Catch(ptr) Catch (1)
56 pascal Throw(ptr word) Throw(1 2) 56 pascal Throw(ptr word) Throw(1 2)
57 pascal GetProfileInt(ptr ptr word) GetProfileInt(1 2 3)
58 pascal GetProfileString(ptr ptr ptr ptr word) GetProfileString(1 2 3 4 5)
59 pascal WriteProfileString(ptr ptr ptr) WriteProfileString(1 2 3) 59 pascal WriteProfileString(ptr ptr ptr) WriteProfileString(1 2 3)
60 pascal FindResource(word ptr ptr) FindResource(1 2 3) 60 pascal FindResource(word ptr ptr) FindResource(1 2 3)
61 pascal LoadResource(word word) LoadResource(1 2) 61 pascal LoadResource(word word) LoadResource(1 2)
62 pascal LockResource(word) LockResource(1) 62 pascal LockResource(word) LockResource(1)
63 pascal FreeResource(word) FreeResource(1) 63 pascal FreeResource(word) FreeResource(1)
64 pascal AccessResource(word word) AccessResource(1 2) 64 pascal AccessResource(word word) AccessResource(1 2)
#65 SIZEOFRESOURCE
#66 ALLOCRESOURCE
#67 SETRESOURCEHANDLER
68 pascal InitAtomTable(word) InitAtomTable(1) 68 pascal InitAtomTable(word) InitAtomTable(1)
69 pascal FindAtom(ptr) FindAtom(1) 69 pascal FindAtom(ptr) FindAtom(1)
70 pascal AddAtom(ptr) AddAtom(1) 70 pascal AddAtom(ptr) AddAtom(1)
@ -54,12 +73,19 @@ length 415
72 pascal GetAtomName(word ptr word) GetAtomName(1 2 3) 72 pascal GetAtomName(word ptr word) GetAtomName(1 2 3)
73 pascal GetAtomHandle(word) GetAtomHandle(1) 73 pascal GetAtomHandle(word) GetAtomHandle(1)
74 pascal OpenFile(ptr ptr word) OpenFile(1 2 3) 74 pascal OpenFile(ptr ptr word) OpenFile(1 2 3)
#75 OPENPATHNAME
#76 DELETEPATHNAME
#77 RESERVED1
#78 RESERVED2
#79 RESERVED3
#80 RESERVED4
81 pascal _lclose(word) _lclose(1) 81 pascal _lclose(word) _lclose(1)
82 pascal _lread(word ptr word) _lread(1 2 3) 82 pascal _lread(word ptr word) _lread(1 2 3)
83 pascal _lcreate(ptr word) _lcreate(1 2) 83 pascal _lcreate(ptr word) _lcreate(1 2)
84 pascal _llseek(word long word) _llseek(1 2 3) 84 pascal _llseek(word long word) _llseek(1 2 3)
85 pascal _lopen(ptr word) _lopen(1 2) 85 pascal _lopen(ptr word) _lopen(1 2)
86 pascal _lwrite(word ptr word) _lwrite(1 2 3) 86 pascal _lwrite(word ptr word) _lwrite(1 2 3)
#87 RESERVED5
88 pascal lstrcpy(ptr ptr) lstrcpy(1 2) 88 pascal lstrcpy(ptr ptr) lstrcpy(1 2)
89 pascal lstrcat(ptr ptr) lstrcat(1 2) 89 pascal lstrcat(ptr ptr) lstrcat(1 2)
90 pascal lstrlen(ptr) lstrlen(1) 90 pascal lstrlen(ptr) lstrlen(1)
@ -67,56 +93,154 @@ length 415
word word word word word) word word word word word)
KERNEL_InitTask() KERNEL_InitTask()
92 pascal GetTempDrive(byte) GetTempDrive(1) 92 pascal GetTempDrive(byte) GetTempDrive(1)
#93 GETCODEHANDLE
#94 DEFINEHANDLETABLE
95 pascal LoadLibrary(ptr) LoadLibrary(1) 95 pascal LoadLibrary(ptr) LoadLibrary(1)
96 pascal FreeLibrary(word) FreeLibrary(1) 96 pascal FreeLibrary(word) FreeLibrary(1)
97 pascal GetTempFileName(byte ptr word ptr) GetTempFileName(1 2 3 4) 97 pascal GetTempFileName(byte ptr word ptr) GetTempFileName(1 2 3 4)
#98 GETLASTDISKCHANGE
#99 GETLPERRMODE
#100 VALIDATECODESEGMENTS
#101 NOHOOKDOSCALL
102 register DOS3Call(word word word word word 102 register DOS3Call(word word word word word
word word word word word) word word word word word)
DOS3Call() DOS3Call()
#103 NETBIOSCALL
#104 GETCODEINFO
#105 GETEXEVERSION
#106 SETSWAPAREASIZE
107 pascal SetErrorMode(word) SetErrorMode(1) 107 pascal SetErrorMode(word) SetErrorMode(1)
#108 SWITCHSTACKTO
#109 SWITCHSTACKBACK
#110 PATCHCODEHANDLE
111 pascal GlobalWire(word) GlobalLock(1) 111 pascal GlobalWire(word) GlobalLock(1)
112 pascal GlobalUnWire(word) GlobalUnlock(1) 112 pascal GlobalUnWire(word) GlobalUnlock(1)
#113 __AHSHIFT
#114 __AHINCR
115 pascal OutputDebugString(ptr) OutputDebugString(1) 115 pascal OutputDebugString(ptr) OutputDebugString(1)
#116 INITLIB
117 pascal OldYield() Yield()
#118 GETTASKQUEUEDS
#119 GETTASKQUEUEES
#120 UNDEFDYNLINK
121 return LocalShrink 4 0 121 return LocalShrink 4 0
#122 ISTASKLOCKED
#123 KBDRST
#124 ENABLEKERNEL
#125 DISABLEKERNEL
#126 MEMORYFREED
127 pascal GetPrivateProfileInt(ptr ptr s_word ptr) 127 pascal GetPrivateProfileInt(ptr ptr s_word ptr)
GetPrivateProfileInt(1 2 3 4) GetPrivateProfileInt(1 2 3 4)
128 pascal GetPrivateProfileString(ptr ptr ptr ptr s_word ptr) 128 pascal GetPrivateProfileString(ptr ptr ptr ptr s_word ptr)
GetPrivateProfileString(1 2 3 4 5 6) GetPrivateProfileString(1 2 3 4 5 6)
129 pascal WritePrivateProfileString(ptr ptr ptr ptr) 129 pascal WritePrivateProfileString(ptr ptr ptr ptr)
WritePrivateProfileString(1 2 3 4) WritePrivateProfileString(1 2 3 4)
#130 FILECBR
131 pascal GetDOSEnvironment() GetDOSEnvironment() 131 pascal GetDOSEnvironment() GetDOSEnvironment()
132 pascal GetWinFlags() GetWinFlags() 132 pascal GetWinFlags() GetWinFlags()
#132 return GetWinFlags 0 0x413 #133 GETEXEPTR
134 pascal GetWindowsDirectory(ptr word) GetWindowsDirectory(1 2) 134 pascal GetWindowsDirectory(ptr word) GetWindowsDirectory(1 2)
135 pascal GetSystemDirectory(ptr word) GetSystemDirectory(1 2) 135 pascal GetSystemDirectory(ptr word) GetSystemDirectory(1 2)
136 pascal GetDriveType(byte) GetDriveType(1) 136 pascal GetDriveType(byte) GetDriveType(1)
137 pascal FatalAppExit(word ptr) FatalAppExit(1 2) 137 pascal FatalAppExit(word ptr) FatalAppExit(1 2)
#138 GETHEAPSPACES
#139 DOSIGNAL
#140 SETSIGHANDLER
#141 INITTASK1
150 pascal DirectedYield() Yield()
#151 WINOLDAPCALL
152 pascal GetNumTasks() GetNumTasks() 152 pascal GetNumTasks() GetNumTasks()
154 return GlobalNotify 4 0 154 return GlobalNotify 4 0
#155 GETTASKDS
#156 LIMITEMSPAGES
#157 GETCURPID
#158 ISWINOLDAPTASK
#159 GLOBALHANDLENORIP
#160 EMSCOPY
#161 LOCALCOUNTFREE
#162 LOCALHEAPSIZE
163 pascal GlobalLRUOldest(word) ReturnArg(1) 163 pascal GlobalLRUOldest(word) ReturnArg(1)
164 pascal GlobalLRUNewest(word) ReturnArg(1) 164 pascal GlobalLRUNewest(word) ReturnArg(1)
#165 A20PROC
166 pascal WinExec(ptr word) WinExec(1 2) 166 pascal WinExec(ptr word) WinExec(1 2)
#167 GETEXPWINVER
#168 DIRECTRESALLOC
169 pascal GetFreeSpace(word) GetFreeSpace(1) 169 pascal GetFreeSpace(word) GetFreeSpace(1)
170 pascal AllocCStoDSAlias(word) AllocDStoCSAlias(1) 170 pascal AllocCStoDSAlias(word) AllocDStoCSAlias(1)
171 pascal AllocDStoCSAlias(word) AllocDStoCSAlias(1) 171 pascal AllocDStoCSAlias(word) AllocDStoCSAlias(1)
#172 ALLOCALIAS
#173 __ROMBIOS
#174 __A000H
175 pascal AllocSelector(word) AllocSelector(1) 175 pascal AllocSelector(word) AllocSelector(1)
176 pascal FreeSelector(word) FreeSelector(1) 176 pascal FreeSelector(word) FreeSelector(1)
177 pascal PrestoChangoSelector(word word) PrestoChangoSelector(1 2) 177 pascal PrestoChangoSelector(word word) PrestoChangoSelector(1 2)
178 equate __WINFLAGS 0x413 178 equate __WINFLAGS 0x413
#179 __D000H
#180 LONGPTRADD
#181 __B000H
#182 __B800H
#183 __0000H
184 return GlobalDOSAlloc 4 0 184 return GlobalDOSAlloc 4 0
185 return GlobalDOSFree 2 0 185 return GlobalDOSFree 2 0
#186 GETSELECTORBASE
#187 SETSELECTORBASE
#188 GETSELECTORLIMIT
#189 SETSELECTORLIMIT
#190 __E000H
191 pascal GlobalPageLock(word) GlobalLock(1) 191 pascal GlobalPageLock(word) GlobalLock(1)
192 pascal GlobalPageUnlock(word) GlobalUnlock(1) 192 pascal GlobalPageUnlock(word) GlobalUnlock(1)
#193 __0040H
#194 __F000H
#195 __C000H
#196 SELECTORACCESSRIGHTS
197 pascal GlobalFix(word) GlobalLock(1) 197 pascal GlobalFix(word) GlobalLock(1)
198 pascal GlobalUnfix(word) GlobalUnlock(1) 198 pascal GlobalUnfix(word) GlobalUnlock(1)
57 pascal GetProfileInt(ptr ptr word) GetProfileInt(1 2 3)
58 pascal GetProfileString(ptr ptr ptr ptr word) GetProfileString(1 2 3 4 5)
199 pascal SetHandleCount(word) SetHandleCount(1) 199 pascal SetHandleCount(word) SetHandleCount(1)
68 pascal InitAtomTable(word) InitAtomTable(1) #200 VALIDATEFREESPACES
69 pascal FindAtom(ptr) FindAtom(1) #201 REPLACEINST
70 pascal AddAtom(ptr) AddAtom(1) #202 REGISTERPTRACE
71 pascal DeleteAtom(word) DeleteAtom(1) #203 DEBUGBREAK
72 pascal GetAtomName(word ptr s_word) GetAtomName(1 2 3) #204 SWAPRECORDING
73 pascal GetAtomHandle(word) GetAtomHandle(1) #205 CVWBREAK
#206 ALLOCSELECTORARRAY
#207 ISDBCSLEADBYTE
#310 LOCALHANDLEDELTA
#311 GETSETKERNELDOSPROC
#314 DEBUGDEFINESEGMENT
315 pascal WriteOutProfiles() sync_profiles()
#316 GETFREEMEMINFO
#318 FATALEXITHOOK
#319 FLUSHCACHEDFILEHANDLE
#320 ISTASK
#323 ISROMMODULE
#324 LOGERROR
#325 LOGPARAMERROR
#326 ISROMFILE
#327 K327
#328 _DEBUGOUTPUT
#329 K329
#332 THHOOK
#334 ISBADREADPTR
#335 ISBADWRITEPTR
#336 ISBADCODEPTR
#337 ISBADSTRINGPTR
#338 HASGPHANDLER
#339 DIAGQUERY
#340 DIAGOUTPUT
#341 TOOLHELPHOOK
#342 __GP
#343 REGISTERWINOLDAPHOOK
#344 GETWINOLDAPHOOKS
#345 ISSHAREDSELECTOR
#346 ISBADHUGEREADPTR
#347 ISBADHUGEWRITEPTR
348 pascal hmemcpy(ptr ptr long) hmemcpy(1 2 3)
349 pascal _hread(word ptr long) _hread(1 2 3)
350 pascal _hwrite(word ptr long) _hwrite(1 2 3)
#351 BUNNY_351
353 pascal lstrcpyn(ptr ptr word) lstrcpyn(1 2 3) 353 pascal lstrcpyn(ptr ptr word) lstrcpyn(1 2 3)
#354 GETAPPCOMPATFLAGS
#355 GETWINDEBUGINFO
#356 SETWINDEBUGINFO
#403 K403
#404 K404

View File

@ -2,7 +2,7 @@
# #
name shell name shell
id 6 id 6
length 256 length 103
# #
# WARNING ! These functions are not documented, so I didn't look for # WARNING ! These functions are not documented, so I didn't look for

View File

@ -5,6 +5,9 @@ id 2
length 540 length 540
1 pascal MessageBox(word ptr ptr word) MessageBox(1 2 3 4) 1 pascal MessageBox(word ptr ptr word) MessageBox(1 2 3 4)
#2 OLDEXITWINDOWS
#3 ENABLEOEMLAYER
#4 DISABLEOEMLAYER
5 pascal InitApp(word) USER_InitApp(1) 5 pascal InitApp(word) USER_InitApp(1)
6 pascal PostQuitMessage(word) PostQuitMessage(1) 6 pascal PostQuitMessage(word) PostQuitMessage(1)
7 pascal ExitWindows(long word) ExitWindows(1 2) 7 pascal ExitWindows(long word) ExitWindows(1 2)
@ -50,6 +53,8 @@ length 540
48 pascal IsChild(word word) IsChild(1 2) 48 pascal IsChild(word word) IsChild(1 2)
49 pascal IsWindowVisible(word) IsWindowVisible(1) 49 pascal IsWindowVisible(word) IsWindowVisible(1)
50 pascal FindWindow(ptr ptr) FindWindow(1 2) 50 pascal FindWindow(ptr ptr) FindWindow(1 2)
#51 BEAR51
#52 ANYPOPUP
53 pascal DestroyWindow(word) DestroyWindow(1) 53 pascal DestroyWindow(word) DestroyWindow(1)
54 pascal EnumWindows(ptr long) EnumWindows(1 2) 54 pascal EnumWindows(ptr long) EnumWindows(1 2)
55 pascal EnumChildWindows(word ptr long) EnumChildWindows(1 2 3) 55 pascal EnumChildWindows(word ptr long) EnumChildWindows(1 2 3)
@ -109,8 +114,11 @@ length 540
109 pascal PeekMessage(ptr word word word word) PeekMessage(1 2 3 4 5) 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) 110 pascal PostMessage(word word word long) PostMessage(1 2 3 4)
111 pascal SendMessage(word word word long) SendMessage(1 2 3 4) 111 pascal SendMessage(word word word long) SendMessage(1 2 3 4)
#112 WAITMESSAGE
113 pascal TranslateMessage(ptr) TranslateMessage(1) 113 pascal TranslateMessage(ptr) TranslateMessage(1)
114 pascal DispatchMessage(ptr) DispatchMessage(1) 114 pascal DispatchMessage(ptr) DispatchMessage(1)
#115 REPLYMESSAGE
#116 POSTAPPMESSAGE
118 pascal RegisterWindowMessage(ptr) RegisterWindowMessage(1) 118 pascal RegisterWindowMessage(ptr) RegisterWindowMessage(1)
119 pascal GetMessagePos() GetMessagePos() 119 pascal GetMessagePos() GetMessagePos()
120 pascal GetMessageTime() GetMessageTime() 120 pascal GetMessageTime() GetMessageTime()
@ -154,6 +162,8 @@ length 540
158 pascal SetMenu(word word) SetMenu(1 2) 158 pascal SetMenu(word word) SetMenu(1 2)
159 pascal GetSubMenu(word word) GetSubMenu(1 2) 159 pascal GetSubMenu(word word) GetSubMenu(1 2)
160 pascal DrawMenuBar(word) DrawMenuBar(1) 160 pascal DrawMenuBar(word) DrawMenuBar(1)
#161 GETMENUSTRING
#162 HILITEMENUITEM
163 pascal CreateCaret(word word word word) CreateCaret(1 2 3 4) 163 pascal CreateCaret(word word word word) CreateCaret(1 2 3 4)
164 pascal DestroyCaret() DestroyCaret() 164 pascal DestroyCaret() DestroyCaret()
165 pascal SetCaretPos(word word) SetCaretPos(1 2) 165 pascal SetCaretPos(word word) SetCaretPos(1 2)
@ -161,7 +171,9 @@ length 540
167 pascal ShowCaret(word) ShowCaret(1) 167 pascal ShowCaret(word) ShowCaret(1)
168 pascal SetCaretBlinkTime(word) SetCaretBlinkTime(1) 168 pascal SetCaretBlinkTime(word) SetCaretBlinkTime(1)
169 pascal GetCaretBlinkTime() GetCaretBlinkTime() 169 pascal GetCaretBlinkTime() GetCaretBlinkTime()
#170 ARRANGEICONICWINDOWS
171 pascal WinHelp(word ptr word long) WinHelp(1 2 3 4) 171 pascal WinHelp(word ptr word long) WinHelp(1 2 3 4)
#172 SWITCHTOTHISWINDOW
173 pascal LoadCursor(word ptr) LoadCursor(1 2) 173 pascal LoadCursor(word ptr) LoadCursor(1 2)
174 pascal LoadIcon(word ptr) LoadIcon(1 2) 174 pascal LoadIcon(word ptr) LoadIcon(1 2)
175 pascal LoadBitmap(word ptr) LoadBitmap(1 2) 175 pascal LoadBitmap(word ptr) LoadBitmap(1 2)
@ -173,14 +185,23 @@ length 540
181 pascal SetSysColors(word ptr ptr) SetSysColors(1 2 3) 181 pascal SetSysColors(word ptr ptr) SetSysColors(1 2 3)
182 pascal KillSystemTimer(word word) KillSystemTimer(1 2) 182 pascal KillSystemTimer(word word) KillSystemTimer(1 2)
183 pascal GetCaretPos(ptr) GetCaretPos(1) 183 pascal GetCaretPos(ptr) GetCaretPos(1)
#184 QUERYSENDMESSAGE
185 pascal GrayString(word word ptr ptr word word word word word) 185 pascal GrayString(word word ptr ptr word word word word word)
GrayString(1 2 3 4 5 6 7 8 9) GrayString(1 2 3 4 5 6 7 8 9)
186 pascal SwapMouseButton(word) SwapMouseButton(1)
#187 ENDMENU
188 pascal SetSysModalWindow(word) SetSysModalWindow(1) 188 pascal SetSysModalWindow(word) SetSysModalWindow(1)
189 pascal GetSysModalWindow() GetSysModalWindow()
190 pascal GetUpdateRect(word ptr word) GetUpdateRect(1 2 3) 190 pascal GetUpdateRect(word ptr word) GetUpdateRect(1 2 3)
191 pascal ChildWindowFromPoint(word long) ChildWindowFromPoint(1 2) 191 pascal ChildWindowFromPoint(word long) ChildWindowFromPoint(1 2)
#192 INSENDMESSAGE
193 pascal IsClipboardFormatAvailable(word) IsClipboardFormatAvailable(1) 193 pascal IsClipboardFormatAvailable(word) IsClipboardFormatAvailable(1)
194 pascal DlgDirSelectComboBox(word ptr word) DlgDirSelectComboBox(1 2 3) 194 pascal DlgDirSelectComboBox(word ptr word) DlgDirSelectComboBox(1 2 3)
195 pascal DlgDirListComboBox(word ptr word word word) DlgDirListComboBox(1 2 3 4 5) 195 pascal DlgDirListComboBox(word ptr word word word) DlgDirListComboBox(1 2 3 4 5)
#196 TABBEDTEXTOUT
#197 GETTABBEDTEXTEXTENT
#198 CASCADECHILDWINDOWS
#199 TILECHILDWINDOWS
200 pascal OpenComm(ptr word word) OpenComm(1 2 3) 200 pascal OpenComm(ptr word word) OpenComm(1 2 3)
201 pascal SetCommState(ptr) SetCommState(1) 201 pascal SetCommState(ptr) SetCommState(1)
202 pascal GetCommState(word ptr) GetCommState(1 2) 202 pascal GetCommState(word ptr) GetCommState(1 2)
@ -197,20 +218,27 @@ length 540
213 pascal BuildCommDCB(ptr ptr) BuildCommDCB(1 2) 213 pascal BuildCommDCB(ptr ptr) BuildCommDCB(1 2)
214 pascal EscapeCommFunction(word word) EscapeCommFunction(1 2) 214 pascal EscapeCommFunction(word word) EscapeCommFunction(1 2)
215 pascal FlushComm(word word) FlushComm(1 2) 215 pascal FlushComm(word word) FlushComm(1 2)
#216 USERSEEUSERDO
#217 LOOKUPMENUHANDLE
218 pascal DialogBoxIndirect(word word word ptr) DialogBoxIndirect(1 2 3 4) 218 pascal DialogBoxIndirect(word word word ptr) DialogBoxIndirect(1 2 3 4)
219 pascal CreateDialogIndirect(word ptr word ptr) 219 pascal CreateDialogIndirect(word ptr word ptr)
CreateDialogIndirect(1 2 3 4) CreateDialogIndirect(1 2 3 4)
220 pascal LoadMenuIndirect(ptr) LoadMenuIndirect(1) 220 pascal LoadMenuIndirect(ptr) LoadMenuIndirect(1)
221 pascal ScrollDC(word s_word s_word ptr ptr word ptr) 221 pascal ScrollDC(word s_word s_word ptr ptr word ptr)
ScrollDC(1 2 3 4 5 6 7) ScrollDC(1 2 3 4 5 6 7)
#222 GETKEYBOARDSTATE
#223 SETKEYBOARDSTATE
224 pascal GetWindowTask(word) GetWindowTask(1) 224 pascal GetWindowTask(word) GetWindowTask(1)
225 pascal EnumTaskWindows(word ptr long) EnumTaskWindows(1 2 3) 225 pascal EnumTaskWindows(word ptr long) EnumTaskWindows(1 2 3)
#226 LOCKINPUT
227 pascal GetNextDlgGroupItem(word word word) GetNextDlgGroupItem(1 2 3) 227 pascal GetNextDlgGroupItem(word word word) GetNextDlgGroupItem(1 2 3)
228 pascal GetNextDlgTabItem(word word word) GetNextDlgTabItem(1 2 3) 228 pascal GetNextDlgTabItem(word word word) GetNextDlgTabItem(1 2 3)
229 pascal GetTopWindow(word) GetTopWindow(1) 229 pascal GetTopWindow(word) GetTopWindow(1)
230 pascal GetNextWindow(word word) GetNextWindow(1 2) 230 pascal GetNextWindow(word word) GetNextWindow(1 2)
#231 GETSYSTEMDEBUGSTATE
232 pascal SetWindowPos(word word word word word word word) 232 pascal SetWindowPos(word word word word word word word)
SetWindowPos(1 2 3 4 5 6 7) SetWindowPos(1 2 3 4 5 6 7)
#233 SETPARENT
234 pascal UnhookWindowsHook(s_word ptr) UnhookWindowsHook(1 2) 234 pascal UnhookWindowsHook(s_word ptr) UnhookWindowsHook(1 2)
235 pascal DefHookProc(s_word word long ptr) DefHookProc(1 2 3 4) 235 pascal DefHookProc(s_word word long ptr) DefHookProc(1 2 3 4)
236 pascal GetCapture() GetCapture() 236 pascal GetCapture() GetCapture()
@ -225,9 +253,27 @@ length 540
CreateDialogIndirectParam(1 2 3 4 5) CreateDialogIndirectParam(1 2 3 4 5)
243 pascal GetDialogBaseUnits() GetDialogBaseUnits() 243 pascal GetDialogBaseUnits() GetDialogBaseUnits()
244 pascal EqualRect(ptr ptr) EqualRect(1 2) 244 pascal EqualRect(ptr ptr) EqualRect(1 2)
#245 ENABLECOMMNOTIFICATION
#246 EXITWINDOWSEXEC
247 pascal GetCursor() GetCursor()
248 pascal GetOpenClipboardWindow() GetOpenClipboardWindow() 248 pascal GetOpenClipboardWindow() GetOpenClipboardWindow()
#249 GETASYNCKEYSTATE
#250 GETMENUSTATE
#251 SENDDRIVERMESSAGE
#252 OPENDRIVER
#253 CLOSEDRIVER
#254 GETDRIVERMODULEHANDLE
#255 DEFDRIVERPROC
#256 GETDRIVERINFO
#257 GETNEXTDRIVER
258 pascal MapWindowPoints(word word ptr word) MapWindowPoints(1 2 3 4) 258 pascal MapWindowPoints(word word ptr word) MapWindowPoints(1 2 3 4)
#259 BEGINDEFERWINDOWPOS
#260 DEFERWINDOWPOS
#261 ENDDEFERWINDOWPOS
262 pascal GetWindow(word word) GetWindow(1 2) 262 pascal GetWindow(word word) GetWindow(1 2)
#263 GETMENUITEMCOUNT
#264 GETMENUITEMID
#265 SHOWOWNEDPOPUPS
266 pascal SetMessageQueue(word) SetMessageQueue(1) 266 pascal SetMessageQueue(word) SetMessageQueue(1)
267 pascal ShowScrollBar(word word word) ShowScrollBar(1 2 3) 267 pascal ShowScrollBar(word word word) ShowScrollBar(1 2 3)
268 pascal GlobalAddAtom(ptr) GlobalAddAtom(1) 268 pascal GlobalAddAtom(ptr) GlobalAddAtom(1)
@ -235,27 +281,62 @@ length 540
270 pascal GlobalFindAtom(ptr) GlobalFindAtom(1) 270 pascal GlobalFindAtom(ptr) GlobalFindAtom(1)
271 pascal GlobalGetAtomName(word ptr s_word) GlobalGetAtomName(1 2 3) 271 pascal GlobalGetAtomName(word ptr s_word) GlobalGetAtomName(1 2 3)
272 pascal IsZoomed(word) IsZoomed(1) 272 pascal IsZoomed(word) IsZoomed(1)
#273 CONTROLPANELINFO
#274 GETNEXTQUEUEWINDOW
#275 REPAINTSCREEN
#276 LOCKMYTASK
277 pascal GetDlgCtrlID(word) GetDlgCtrlID(1) 277 pascal GetDlgCtrlID(word) GetDlgCtrlID(1)
278 pascal GetDeskTopHwnd() GetDesktopWindow()
#279 OLDSETDESKPATTERN
#280 SETSYSTEMMENU
282 pascal SelectPalette(word word word) SelectPalette(1 2 3) 282 pascal SelectPalette(word word word) SelectPalette(1 2 3)
283 pascal RealizePalette(word) RealizePalette(1) 283 pascal RealizePalette(word) RealizePalette(1)
284 pascal GetFreeSystemResources(word) GetFreeSystemResources(1) 284 pascal GetFreeSystemResources(word) GetFreeSystemResources(1)
#285 BEAR285
286 pascal GetDesktopWindow() GetDesktopWindow() 286 pascal GetDesktopWindow() GetDesktopWindow()
#287 GETLASTACTIVEPOPUP
288 pascal GetMessageExtraInfo() GetMessageExtraInfo() 288 pascal GetMessageExtraInfo() GetMessageExtraInfo()
#289 KEYB_EVENT
290 pascal RedrawWindow(word ptr word word) RedrawWindow(1 2 3 4) 290 pascal RedrawWindow(word ptr word word) RedrawWindow(1 2 3 4)
291 pascal SetWindowsHookEx(s_word ptr word word) SetWindowsHookEx(1 2 3 4) 291 pascal SetWindowsHookEx(s_word ptr word word) SetWindowsHookEx(1 2 3 4)
292 pascal UnhookWindowsHookEx(ptr) UnhookWindowsHookEx(1) 292 pascal UnhookWindowsHookEx(ptr) UnhookWindowsHookEx(1)
293 pascal CallNextHookEx(ptr s_word word long) CallNextHookEx(1 2 3 4) 293 pascal CallNextHookEx(ptr s_word word long) CallNextHookEx(1 2 3 4)
#294 LOCKWINDOWUPDATE
#299 MOUSE_EVENT
#301 BOZOSLIVEHERE :-))
#306 BEAR306
308 pascal DefDlgProc(word word word long) DefDlgProc(1 2 3 4) 308 pascal DefDlgProc(word word word long) DefDlgProc(1 2 3 4)
#314 SIGNALPROC
319 pascal ScrollWindowEx(word s_word s_word ptr ptr word ptr word) 319 pascal ScrollWindowEx(word s_word s_word ptr ptr word ptr word)
ScrollWindowEx(1 2 3 4 5 6 7 8) ScrollWindowEx(1 2 3 4 5 6 7 8)
#320 SYSERRORBOX
#321 SETEVENTHOOK
#322 WINOLDAPPHACKOMATIC
#323 GETMESSAGE2
324 pascal FillWindow(word word word word) FillWindow(1 2 3 4) 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) 325 pascal PaintRect(word word word word ptr) PaintRect(1 2 3 4 5)
#326 GETCONTROLBRUSH
#331 ENABLEHARDWAREINPUT
332 pascal UserYield() Yield()
#333 ISUSERIDLE
334 pascal GetQueueStatus(word) GetQueueStatus(1) 334 pascal GetQueueStatus(word) GetQueueStatus(1)
335 pascal GetInputState() GetInputState() 335 pascal GetInputState() GetInputState()
#336 LOADCURSORICONHANDLER
#337 GETMOUSEEVENTPROC
#341 _FFFE_FARFRAME
#343 GETFILEPORTNAME
#356 LOADDIBCURSORHANDLER
#357 LOADDIBICONHANDLER
#358 ISMENU
359 pascal GetDCEx(word word long) GetDCEx(1 2 3) 359 pascal GetDCEx(word word long) GetDCEx(1 2 3)
#362 DCHOOK
#368 COPYICON
#369 COPYCURSOR
370 pascal GetWindowPlacement(word ptr) GetWindowPlacement(1 2) 370 pascal GetWindowPlacement(word ptr) GetWindowPlacement(1 2)
371 pascal SetWindowPlacement(word ptr) SetWindowPlacement(1 2) 371 pascal SetWindowPlacement(word ptr) SetWindowPlacement(1 2)
#372 GETINTERNALICONHEADER
373 pascal SubtractRect(ptr ptr ptr) SubtractRect(1 2 3) 373 pascal SubtractRect(ptr ptr ptr) SubtractRect(1 2 3)
#400 FINALUSERINIT
402 pascal GetPriorityClipboardFormat(word ptr s_word) 402 pascal GetPriorityClipboardFormat(word ptr s_word)
GetPriorityClipboardFormat(1 2 3) GetPriorityClipboardFormat(1 2 3)
403 pascal UnregisterClass(ptr word) UnregisterClass(1 2) 403 pascal UnregisterClass(ptr word) UnregisterClass(1 2)
@ -264,6 +345,7 @@ length 540
CreateCursor(1 2 3 4 5 6 7) CreateCursor(1 2 3 4 5 6 7)
407 pascal CreateIcon(word word word byte byte ptr ptr) 407 pascal CreateIcon(word word word byte byte ptr ptr)
CreateIcon(1 2 3 4 5 6 7) CreateIcon(1 2 3 4 5 6 7)
#408 CREATECURSORICONINDIRECT
410 pascal InsertMenu(word word word word ptr) InsertMenu(1 2 3 4 5) 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) 411 pascal AppendMenu(word word word ptr) AppendMenu(1 2 3 4)
412 pascal RemoveMenu(word word word) RemoveMenu(1 2 3) 412 pascal RemoveMenu(word word word) RemoveMenu(1 2 3)
@ -277,6 +359,8 @@ length 540
SetMenuItemBitmaps(1 2 3 4 5) SetMenuItemBitmaps(1 2 3 4 5)
420 pascal wsprintf(ptr ptr) wsprintf(1 2) 420 pascal wsprintf(ptr ptr) wsprintf(1 2)
421 pascal wvsprintf(ptr ptr ptr) wvsprintf(1 2 3) 421 pascal wvsprintf(ptr ptr ptr) wvsprintf(1 2 3)
#422 DLGDIRSELECTEX
#423 DLGDIRSELECTCOMBOBOXEX
430 pascal lstrcmp(ptr ptr) lstrcmp(1 2) 430 pascal lstrcmp(ptr ptr) lstrcmp(1 2)
431 pascal AnsiUpper(ptr) AnsiUpper(1) 431 pascal AnsiUpper(ptr) AnsiUpper(1)
432 pascal AnsiLower(ptr) AnsiLower(1) 432 pascal AnsiLower(ptr) AnsiLower(1)
@ -293,12 +377,57 @@ length 540
word word word ptr) word word word ptr)
CreateWindowEx(1 2 3 4 5 6 7 8 9 10 11 12) CreateWindowEx(1 2 3 4 5 6 7 8 9 10 11 12)
454 pascal AdjustWindowRectEx(ptr long word long) AdjustWindowRectEx(1 2 3 4) 454 pascal AdjustWindowRectEx(ptr long word long) AdjustWindowRectEx(1 2 3 4)
#455 GETICONID
#456 LOADICONHANDLER
457 pascal DestroyIcon(word) DestroyIcon(1) 457 pascal DestroyIcon(word) DestroyIcon(1)
458 pascal DestroyCursor(word) DestroyCursor(1) 458 pascal DestroyCursor(word) DestroyCursor(1)
#459 DUMPICON
460 pascal GetInternalWindowPos(word ptr ptr) GetInternalWindowPos(1 2 3) 460 pascal GetInternalWindowPos(word ptr ptr) GetInternalWindowPos(1 2 3)
461 pascal SetInternalWindowPos(word word ptr ptr) SetInternalWindowPos(1 2 3 4) 461 pascal SetInternalWindowPos(word word ptr ptr) SetInternalWindowPos(1 2 3 4)
#462 CALCCHILDSCROLL
#463 SCROLLCHILDREN
#464 DRAGOBJECT
#465 DRAGDETECT
466 pascal DrawFocusRect(word ptr) DrawFocusRect(1 2) 466 pascal DrawFocusRect(word ptr) DrawFocusRect(1 2)
#470 STRINGFUNC
471 pascal lstrcmpi(ptr ptr) lstrcmpi(1 2) 471 pascal lstrcmpi(ptr ptr) lstrcmpi(1 2)
472 pascal AnsiNext(ptr) AnsiNext(1 ) 472 pascal AnsiNext(ptr) AnsiNext(1 )
473 pascal AnsiPrev(ptr ptr) AnsiPrev(1 2) 473 pascal AnsiPrev(ptr ptr) AnsiPrev(1 2)
#480 GETUSERLOCALOBJTYPE
#481 HARDWARE_EVENT
#482 ENABLESCROLLBAR
483 pascal SystemParametersInfo(word word ptr word) SystemParametersInfo(1 2 3 4) 483 pascal SystemParametersInfo(word word ptr word) SystemParametersInfo(1 2 3 4)
#484 __GP
#499 WNETERRORTEXT
#501 WNETOPENJOB
#502 WNETCLOSEJOB
#503 WNETABORTJOB
#504 WNETHOLDJOB
#505 WNETRELEASEJOB
#506 WNETCANCELJOB
#507 WNETSETJOBCOPIES
#508 WNETWATCHQUEUE
#509 WNETUNWATCHQUEUE
#510 WNETLOCKQUEUEDATA
#511 WNETUNLOCKQUEUEDATA
#512 WNETGETCONNECTION
#513 WNETGETCAPS
#514 WNETDEVICEMODE
#515 WNETBROWSEDIALOG
#516 WNETGETUSER
#517 WNETADDCONNECTION
#518 WNETCANCELCONNECTION
#519 WNETGETERROR
#520 WNETGETERRORTEXT
#521 WNETENABLE
#522 WNETDISABLE
#523 WNETRESTORECONNECTION
#524 WNETWRITEJOB
#525 WNETCONNECTDIALOG
#526 WNETDISCONNECTDIALOG
#527 WNETCONNECTIONDIALOG
#528 WNETVIEWQUEUEDIALOG
#529 WNETPROPERTYDIALOG
#530 WNETGETDIRECTORYTYPE
#531 WNETDIRECTORYNOTIFY
#532 WNETGETPROPERTYTEXT

View File

@ -80,8 +80,9 @@ struct sockproto {
*/ */
#define SOMAXCONN 5 #define SOMAXCONN 5
#ifndef MSG_DONTROUTE
#define MSG_DONTROUTE 0x4 /* send without using routing tables */ #define MSG_DONTROUTE 0x4 /* send without using routing tables */
#endif
#define MSG_MAXIOVLEN 16 #define MSG_MAXIOVLEN 16
/* /*

View File

@ -18,6 +18,7 @@
#include "wine.h" #include "wine.h"
#include "segmem.h" #include "segmem.h"
#include "prototypes.h" #include "prototypes.h"
#include "win.h"
char * cstack[4096]; char * cstack[4096];
struct sigaction segv_act; struct sigaction segv_act;
@ -162,6 +163,9 @@ static void win_fault(int signal, int code, struct sigcontext *scp)
return; return;
oops: oops:
XUngrabPointer(display, CurrentTime);
XUngrabServer(display);
XFlush(display);
fprintf(stderr,"In win_fault %x:%x\n", scp->sc_cs, scp->sc_eip); fprintf(stderr,"In win_fault %x:%x\n", scp->sc_cs, scp->sc_eip);
#ifdef linux #ifdef linux
wine_debug(scp); /* Enter our debugger */ wine_debug(scp); /* Enter our debugger */

View File

@ -306,7 +306,7 @@ _WinMain(int argc, char **argv)
hSysRes = LoadImage(filename, DLL); hSysRes = LoadImage(filename, DLL);
if (hSysRes == (HINSTANCE)NULL) if (hSysRes == (HINSTANCE)NULL)
fprintf(stderr, "wine: can't find %s!.\n", filename); fprintf(stderr, "wine: can't find %s!\n", filename);
else else
printf("System Resources Loaded // hSysRes='%04X'\n", hSysRes); printf("System Resources Loaded // hSysRes='%04X'\n", hSysRes);

View File

@ -359,6 +359,13 @@ HCURSOR SetCursor(HCURSOR hCursor)
return hOldCursor; return hOldCursor;
} }
/**********************************************************************
* GetCursor [USER.247]
*/
HCURSOR GetCursor(void)
{
return hActiveCursor;
}
/********************************************************************** /**********************************************************************
* SetCursorPos [USER.70] * SetCursorPos [USER.70]

View File

@ -317,7 +317,7 @@ int main( int argc, char *argv[] )
DOS_InitFS(); DOS_InitFS();
Comm_Init(); Comm_Init();
#ifndef sun #ifndef sunos
atexit(called_at_exit); atexit(called_at_exit);
#endif #endif
@ -504,3 +504,20 @@ void Copy(LPVOID lpSource, LPVOID lpDest, WORD nBytes)
{ {
memcpy(lpDest, lpSource, nBytes); memcpy(lpDest, lpSource, nBytes);
} }
/***********************************************************************
* YIELD (KERNEL.29)
*/
void Yield(void)
{
;
}
/***********************************************************************
* SWAPMOUSEBUTTON (USER.186)
*/
BOOL SwapMouseButton(BOOL fSwap)
{
return 0; /* don't swap */
}

View File

@ -9,6 +9,11 @@
* of the KeyNames (as documented in the MS-SDK). * of the KeyNames (as documented in the MS-SDK).
* *
* o if KeyValue == NULL now clears the value in Get*ProfileString * o if KeyValue == NULL now clears the value in Get*ProfileString
*
* 20/Apr SL - I'm not sure where these definitions came from, but my SDK
* has a NULL KeyValue returning a list of KeyNames, and a NULL
* AppName undefined. I changed GetSetProfile to match. This makes
* PROGMAN.EXE do the right thing.
*/ */
static char Copyright [] = "Copyright (C) 1993 Miguel de Icaza"; static char Copyright [] = "Copyright (C) 1993 Miguel de Icaza";
@ -78,7 +83,7 @@ static char *GetIniFileName(char *name)
strcat(temp, "\\"); strcat(temp, "\\");
strcat(temp, name); strcat(temp, name);
return GetUnixFileName(name); return GetUnixFileName(temp);
} }
static TSecHeader *load (char *filename) static TSecHeader *load (char *filename)
@ -230,7 +235,7 @@ static short GetSetProfile (int set, LPSTR AppName, LPSTR KeyName,
continue; continue;
/* If no key value given, then list all the keys */ /* If no key value given, then list all the keys */
if ((!AppName) && (!set)){ if ((!KeyName) && (!set)){
char *p = ReturnedString; char *p = ReturnedString;
int left = Size - 1; int left = Size - 1;
int slen; int slen;

View File

@ -7,7 +7,9 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <signal.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/ipc.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
@ -22,12 +24,20 @@
static WORD wsa_errno; static WORD wsa_errno;
static int wsa_initted; static int wsa_initted;
static key_t wine_key = 0;
static FARPROC BlockFunction;
static fd_set fd_in_use;
#define dump_sockaddr(a) \ struct ipc_packet {
fprintf(stderr, "sockaddr_in: family %d, address %s, port %d\n", \ long mtype;
((struct sockaddr_in *)a)->sin_family, \ HANDLE handle;
inet_ntoa(((struct sockaddr_in *)a)->sin_addr), \ HWND hWnd;
ntohs(((struct sockaddr_in *)a)->sin_port)) WORD wMsg;
LONG lParam;
};
#define IPC_PACKET_SIZE (sizeof(struct ipc_packet) - sizeof(long))
#define MTYPE 0xb0b0eb05
struct WinSockHeap { struct WinSockHeap {
char ntoa_buffer[32]; char ntoa_buffer[32];
@ -46,9 +56,14 @@ struct WinSockHeap {
struct servent WSAservent_name; struct servent WSAservent_name;
struct servent WSAservent_port; struct servent WSAservent_port;
}; };
static struct WinSockHeap *heap; static struct WinSockHeap *heap;
#define dump_sockaddr(a) \
fprintf(stderr, "sockaddr_in: family %d, address %s, port %d\n", \
((struct sockaddr_in *)a)->sin_family, \
inet_ntoa(((struct sockaddr_in *)a)->sin_addr), \
ntohs(((struct sockaddr_in *)a)->sin_port))
static WORD wsaerrno(void) static WORD wsaerrno(void)
{ {
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
@ -112,7 +127,7 @@ static WORD wsaerrno(void)
case EREMOTE: return WSAEREMOTE; case EREMOTE: return WSAEREMOTE;
default: default:
fprintf(stderr, "winsock: unknown error!\n"); fprintf(stderr, "winsock: unknown errorno %d!\n", errno);
return WSAEOPNOTSUPP; return WSAEOPNOTSUPP;
} }
} }
@ -157,6 +172,8 @@ INT Winsock_closesocket(SOCKET s)
fprintf(stderr, "WSA_closesocket: socket %d\n", s); fprintf(stderr, "WSA_closesocket: socket %d\n", s);
#endif #endif
FD_CLR(s, &fd_in_use);
if (close(s) < 0) { if (close(s) < 0) {
errno_to_wsaerrno(); errno_to_wsaerrno();
return SOCKET_ERROR; return SOCKET_ERROR;
@ -399,11 +416,14 @@ SOCKET Winsock_socket(INT af, INT type, INT protocol)
#endif #endif
return INVALID_SOCKET; return INVALID_SOCKET;
} }
if (sock > 0xffff) { if (sock > 0xffff) {
wsa_errno = WSAEMFILE; wsa_errno = WSAEMFILE;
return INVALID_SOCKET; return INVALID_SOCKET;
} }
FD_SET(sock, &fd_in_use);
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
fprintf(stderr, "WSA_socket: fd %d\n", sock); fprintf(stderr, "WSA_socket: fd %d\n", sock);
#endif #endif
@ -526,114 +546,224 @@ struct servent *Winsock_getservbyport(INT port, const char FAR *proto)
return (struct servent *) &heap->servent_port; return (struct servent *) &heap->servent_port;
} }
/******************** winsock specific functions ************************/ /******************** winsock specific functions ************************
*
*/
#define AllocWSAHandle() getpid()
static void recv_message(int sig)
{
struct ipc_packet message;
if (msgrcv(wine_key, &message, IPC_PACKET_SIZE, MTYPE, IPC_NOWAIT) == -1)
perror("wine: msgrcv");
fprintf(stderr,
"WSA: PostMessage (hwnd %d, wMsg %d, wParam %d, lParam %d)\n",
message.hWnd,
message.wMsg,
message.handle,
message.lParam);
PostMessage(message.hWnd, message.wMsg, message.handle, message.lParam);
signal(SIGUSR1, recv_message);
}
static void send_message(HANDLE handle, HWND hWnd, u_int wMsg, long lParam)
{
struct ipc_packet message;
message.mtype = MTYPE;
message.handle = handle;
message.hWnd = hWnd;
message.wMsg = wMsg;
message.lParam = lParam;
fprintf(stderr,
"WSA: send (hwnd %d, wMsg %d, handle %d, lParam %d)\n",
hWnd, wMsg, handle, lParam);
if (msgsnd(wine_key, &message, IPC_PACKET_SIZE, IPC_NOWAIT) == -1)
perror("wine: msgsnd");
kill(getppid(), SIGUSR1);
}
HANDLE WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, const char FAR *addr, HANDLE WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, const char FAR *addr,
INT len, INT type, char FAR *buf, INT buflen) INT len, INT type, char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct hostent *host; struct hostent *host;
handle = AllocWSAHandle();
if (fork()) {
return handle;
} else {
if ((host = gethostbyaddr(addr, len, type)) == NULL) { if ((host = gethostbyaddr(addr, len, type)) == NULL) {
PostMessage(hWnd, wMsg, 1, wsaerrno() << 8); send_message(hWnd, wMsg, handle, wsaerrno() << 16);
exit(0);
return 1;
} }
memcpy(buf, host, buflen); memcpy(buf, host, buflen);
PostMessage(hWnd, wMsg, 1, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 1;
} }
}
HANDLE WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, const char FAR *name, HANDLE WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, const char FAR *name,
char FAR *buf, INT buflen) char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct hostent *host; struct hostent *host;
handle = AllocWSAHandle();
if (fork()) {
return handle;
} else {
if ((host = gethostbyname(name)) == NULL) { if ((host = gethostbyname(name)) == NULL) {
PostMessage(hWnd, wMsg, 2, wsaerrno() << 8); send_message(hWnd, wMsg, handle, wsaerrno() << 16);
return 2; exit(0);
} }
memcpy(buf, host, buflen); memcpy(buf, host, buflen);
PostMessage(hWnd, wMsg, 2, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 2;
} }
}
HANDLE WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg, const char FAR *name, HANDLE WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg, const char FAR *name,
char FAR *buf, INT buflen) char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct protoent *proto; struct protoent *proto;
handle = AllocWSAHandle();
if (fork()) {
return handle;
} else {
if ((proto = getprotobyname(name)) == NULL) { if ((proto = getprotobyname(name)) == NULL) {
PostMessage(hWnd, wMsg, 3, wsaerrno() << 8); send_message(hWnd, wMsg, handle, wsaerrno() << 16);
return 3; exit(0);
} }
memcpy(buf, proto, buflen); memcpy(buf, proto, buflen);
PostMessage(hWnd, wMsg, 3, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 3;
} }
}
HANDLE WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg, INT number, HANDLE WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg, INT number,
char FAR *buf, INT buflen) char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct protoent *proto; struct protoent *proto;
handle = AllocWSAHandle();
if (fork()) {
return handle;
} else {
if ((proto = getprotobynumber(number)) == NULL) { if ((proto = getprotobynumber(number)) == NULL) {
PostMessage(hWnd, wMsg, 4, wsaerrno() << 8); send_message(hWnd, wMsg, handle, wsaerrno() << 16);
return 4; exit(0);
} }
memcpy(buf, proto, buflen); memcpy(buf, proto, buflen);
PostMessage(hWnd, wMsg, 4, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 4;
} }
}
HANDLE WSAAsyncGetServByName(HWND hWnd, u_int wMsg, const char FAR *name, HANDLE WSAAsyncGetServByName(HWND hWnd, u_int wMsg, const char FAR *name,
const char FAR *proto, char FAR *buf, INT buflen) const char FAR *proto, char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct servent *service; struct servent *service;
if ((service = getservbyname(name, proto)) == NULL) { handle = AllocWSAHandle();
PostMessage(hWnd, wMsg, 5, wsaerrno() << 8);
return 5; if (fork()) {
return handle;
} else {
if ((service = getservbyname(name, proto)) == NULL) {
send_message(hWnd, wMsg, handle, wsaerrno() << 16);
exit(0);
} }
memcpy(buf, service, buflen); memcpy(buf, service, buflen);
PostMessage(hWnd, wMsg, 5, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 5;
} }
}
HANDLE WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, INT port, const char FAR HANDLE WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, INT port, const char FAR
*proto, char FAR *buf, INT buflen) *proto, char FAR *buf, INT buflen)
{ {
HANDLE handle;
struct servent *service; struct servent *service;
if ((service = getservbyport(port, proto)) == NULL) { handle = AllocWSAHandle();
PostMessage(hWnd, wMsg, 6, wsaerrno() << 8);
return 6; if (fork()) {
return handle;
} else {
if ((service = getservbyport(port, proto)) == NULL) {
send_message(hWnd, wMsg, handle, wsaerrno() << 16);
exit(0);
} }
memcpy(buf, service, buflen); memcpy(buf, service, buflen);
PostMessage(hWnd, wMsg, 6, 0); send_message(hWnd, wMsg, handle, 0);
exit(0);
return 6; }
} }
INT WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, long lEvent) INT WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, long lEvent)
{ {
long event;
fd_set read_fds, write_fds, except_fds;
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
fprintf(stderr, "WSA_AsyncSelect: socket %d, HWND %d, wMsg %d, event %d\n", s, hWnd, wMsg, lEvent); fprintf(stderr, "WSA_AsyncSelect: socket %d, HWND %d, wMsg %d, event %d\n", s, hWnd, wMsg, lEvent);
#endif #endif
fcntl(s, F_SETFL, O_NONBLOCK);
/* remove outstanding asyncselect() processes */
/* kill */
if (wMsg == 0 && lEvent == 0)
return 0; return 0;
if (fork()) {
return 0;
} else {
while (1) {
FD_ZERO(&read_fds);
FD_ZERO(&write_fds);
FD_ZERO(&except_fds);
if (lEvent & FD_READ)
FD_SET(s, &read_fds);
if (lEvent & FD_WRITE)
FD_SET(s, &write_fds);
fcntl(s, F_SETFL, O_NONBLOCK);
select(s + 1, &read_fds, &write_fds, &except_fds, NULL);
event = 0;
if (FD_ISSET(s, &read_fds))
event |= FD_READ;
if (FD_ISSET(s, &write_fds))
event |= FD_WRITE;
send_message(hWnd, wMsg, s, (wsaerrno() << 16) | event);
}
}
} }
INT WSAFDIsSet(INT fd, fd_set *set) INT WSAFDIsSet(INT fd, fd_set *set)
@ -646,6 +776,7 @@ INT WSACancelAsyncRequest(HANDLE hAsyncTaskHandle)
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
fprintf(stderr, "WSA_AsyncRequest: handle %d\n", hAsyncTaskHandle); fprintf(stderr, "WSA_AsyncRequest: handle %d\n", hAsyncTaskHandle);
#endif #endif
return 0; return 0;
} }
@ -685,8 +816,11 @@ BOOL WSAIsBlocking(void)
FARPROC WSASetBlockingHook(FARPROC lpBlockFunc) FARPROC WSASetBlockingHook(FARPROC lpBlockFunc)
{ {
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
fprintf(stderr, "WSA_SetBlockHook\n %8x", lpBlockFunc); fprintf(stderr, "WSA_SetBlockHook %8x, STUB!\n", lpBlockFunc);
#endif #endif
BlockFunction = lpBlockFunc;
return lpBlockFunc;
} }
INT WSAUnhookBlockingHook(void) INT WSAUnhookBlockingHook(void)
@ -694,6 +828,9 @@ INT WSAUnhookBlockingHook(void)
#ifdef DEBUG_WINSOCK #ifdef DEBUG_WINSOCK
fprintf(stderr, "WSA_UnhookBlockingHook\n"); fprintf(stderr, "WSA_UnhookBlockingHook\n");
#endif #endif
BlockFunction = NULL;
return 0;
} }
WSADATA Winsock_data = { WSADATA Winsock_data = {
@ -731,21 +868,42 @@ INT WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData)
if (!lpWSAData) if (!lpWSAData)
return WSAEINVAL; return WSAEINVAL;
/* alloc winsock heap */
if ((HeapHandle = GlobalAlloc(GMEM_FIXED,sizeof(struct WinSockHeap))) == 0) if ((HeapHandle = GlobalAlloc(GMEM_FIXED,sizeof(struct WinSockHeap))) == 0)
return WSASYSNOTREADY; return WSASYSNOTREADY;
heap = (struct WinSockHeap *) GlobalLock(HeapHandle); heap = (struct WinSockHeap *) GlobalLock(HeapHandle);
HEAP_Init(&MyHeap, heap, sizeof(struct WinSockHeap)); HEAP_Init(&MyHeap, heap, sizeof(struct WinSockHeap));
bcopy(&Winsock_data, lpWSAData, sizeof(Winsock_data)); bcopy(&Winsock_data, lpWSAData, sizeof(Winsock_data));
wsa_initted = 1; /* ipc stuff */
if ((wine_key = msgget(IPC_PRIVATE, 0600)) == -1)
perror("wine: msgget");
signal(SIGUSR1, recv_message);
/* clear */
FD_ZERO(&fd_in_use);
wsa_initted = 1;
return(0); return(0);
} }
INT WSACleanup(void) INT WSACleanup(void)
{ {
int fd;
if (wine_key)
if (msgctl(wine_key, IPC_RMID, NULL) == -1)
perror("wine: shmctl");
for (fd = 0; fd != FD_SETSIZE; fd++)
if (FD_ISSET(fd, &fd_in_use))
close(fd);
wsa_initted = 0; wsa_initted = 0;
return 0; return 0;
} }

View File

@ -226,6 +226,29 @@ static void wonb_stretch(XImage *sxi, XImage *dxi,
} /* for all x in dest */ } /* for all x in dest */
} }
/* We use the 32-bit to 64-bit multiply and 64-bit to 32-bit divide of the */
/* 386 (which gcc doesn't know well enough) to efficiently perform integer */
/* scaling without having to worry about overflows. */
/* ##### muldiv64() borrowed from svgalib 1.03 ##### */
static inline int muldiv64( int m1, int m2, int d )
{
/* int32 * int32 -> int64 / int32 -> int32 */
#ifdef i386
int result;
__asm__(
"imull %%edx\n\t"
"idivl %3\n\t"
: "=a" (result) /* out */
: "a" (m1), "d" (m2), "g" (d) /* in */
: "ax", "dx" /* mod */
);
return result;
#else
return m1 * m2 / d;
#endif
}
/*********************************************************************** /***********************************************************************
* color stretch -- deletes unused pixels * color stretch -- deletes unused pixels
* *
@ -233,16 +256,40 @@ static void wonb_stretch(XImage *sxi, XImage *dxi,
static void color_stretch(XImage *sxi, XImage *dxi, static void color_stretch(XImage *sxi, XImage *dxi,
short widthSrc, short heightSrc, short widthDest, short heightDest) short widthSrc, short heightSrc, short widthDest, short heightDest)
{ {
float deltax, deltay, sourcex, sourcey; register int x, y, sx, sy, xfactor, yfactor;
register int x, y;
deltax = (float)widthSrc/widthDest; xfactor = muldiv64(widthSrc, 65536, widthDest);
deltay = (float)heightSrc/heightDest; yfactor = muldiv64(heightSrc, 65536, heightDest);
for (x=0, sourcex=0.0; x<widthDest; x++, sourcex+=deltax) sy = 0;
for (y=0, sourcey=0.0; y<heightDest; y++, sourcey+=deltay)
XPutPixel(dxi, x, y, XGetPixel(sxi, (int)sourcex, (int)sourcey));
for (y = 0; y < heightDest;)
{
int sourcey = sy >> 16;
sx = 0;
for (x = 0; x < widthDest; x++) {
XPutPixel(dxi, x, y, XGetPixel(sxi, sx >> 16, sourcey));
sx += xfactor;
}
y++;
while (y < heightDest) {
int py;
sourcey = sy >> 16;
sy += yfactor;
if ((sy >> 16) != sourcey)
break;
/* vertical stretch => copy previous line */
py = y - 1;
for (x = 0; x < widthDest; x++)
XPutPixel(dxi, x, y, XGetPixel(dxi, x, py));
y++;
}
}
} }
/*********************************************************************** /***********************************************************************
@ -266,7 +313,7 @@ BOOL StretchBlt( HDC hdcDest, short xDest, short yDest, short widthDest, short h
WORD stretchmode; WORD stretchmode;
#ifdef DEBUG_GDI #ifdef DEBUG_GDI
printf( "StretchBlt: %d %d,%d %dx%d %d %d,%d %dx%d %08x\n", fprintf(stderr, "StretchBlt: %d %d,%d %dx%d %d %d,%d %dx%d %08x\n",
hdcDest, xDest, yDest, widthDest, heightDest, hdcSrc, xSrc, hdcDest, xDest, yDest, widthDest, heightDest, hdcSrc, xSrc,
ySrc, widthSrc, heightSrc, rop ); ySrc, widthSrc, heightSrc, rop );
printf("StretchMode is %x\n", printf("StretchMode is %x\n",
@ -328,13 +375,17 @@ BOOL StretchBlt( HDC hdcDest, short xDest, short yDest, short widthDest, short h
switch (stretchmode) { switch (stretchmode) {
case BLACKONWHITE: case BLACKONWHITE:
bonw_stretch(sxi, dxi, widthSrc, heightSrc, color_stretch(sxi, dxi, widthSrc, heightSrc,
widthDest, heightDest); widthDest, heightDest);
break; /* bonw_stretch(sxi, dxi, widthSrc, heightSrc,
widthDest, heightDest);
*/ break;
case WHITEONBLACK: case WHITEONBLACK:
wonb_stretch(sxi, dxi, widthSrc, heightSrc, color_stretch(sxi, dxi, widthSrc, heightSrc,
widthDest, heightDest); widthDest, heightDest);
break; /* wonb_stretch(sxi, dxi, widthSrc, heightSrc,
widthDest, heightDest);
*/ break;
case COLORONCOLOR: case COLORONCOLOR:
color_stretch(sxi, dxi, widthSrc, heightSrc, color_stretch(sxi, dxi, widthSrc, heightSrc,
widthDest, heightDest); widthDest, heightDest);

View File

@ -551,8 +551,9 @@ HWND FindWindow(LPSTR ClassMatch, LPSTR TitleMatch)
/********************************************************************** /**********************************************************************
* GetDesktopWindow (USER.286) * GetDesktopWindow (USER.286)
* GetDeskTopHwnd (USER.278)
*/ */
HWND GetDesktopWindow() HWND GetDesktopWindow(void)
{ {
return hwndDesktop; return hwndDesktop;
} }
@ -966,4 +967,10 @@ HWND SetSysModalWindow(HWND hWnd)
return hWndOldModal; return hWndOldModal;
} }
/*******************************************************************
* GetSysModalWindow [USER.189]
*/
HWND GetSysModalWindow(void)
{
return hWndSysModal;
}

View File

@ -11,7 +11,6 @@ Windows=c:\windows
System=c:\windows\system System=c:\windows\system
Temp=c:\temp Temp=c:\temp
Path=c:\windows;c:\windows\system;e:\;e:\test;f:\ Path=c:\windows;c:\windows\system;e:\;e:\test;f:\
SystemResources=sysres.dll
[serialports] [serialports]
Com1=/dev/cua0 Com1=/dev/cua0