Release 951003
Sun Oct 1 15:48:34 1995 Alexandre Julliard <julliard@sunsite.unc>
* [controls/menu.c]
Fixed GetMenuString() for non-string items.
* [debugger/*.c]
First attempt to check validity of pointers before memory
accesses. For now only segmented pointers are checked.
* [debugger/dbg.y] [memory/ldt.c]
Added possibility to dump only one segment with 'info segment'.
* [include/bitmaps/ocr_*]
Added all OEM cursors as XPM bitmaps.
* [include/cursoricon.h] [objects/cursoricon.c]
Rewrote all cursor and icon management to use the same memory
layout as Windows, and to factor common code between icons and
cursors. Implemented icon directory lookup to find the best
matching icon (i.e. the color one).
Implemented CopyCursor() and DumpIcon().
* [loader/module.c]
For disabled built-in modules, we now try to load the Windows DLL
first, and if this fails we fall back to using the built-in module
anyway.
* [memory/global.c]
Fixed GlobalHandle() to return the correct selector in the high
word even if we are passed a handle in the first place.
* [miscemu/instr.c]
Take into account the size of the operand and of the stack segment
when incrementing the stack pointer.
Avoid referencing FS_reg and GS_reg on *BSD.
* [objects/dib.c]
All DIB functions now accept a BITMAPCOREHEADER format bitmap.
Monochrome DIBs are created as monochrome bitmap iff they are
black and white.
* [objects/oembitmap.c]
Added support for OEM cursors, changed OBM_LoadIcon to use the new
icon memory layout.
* [rc/sysres_Fr.rc]
Added French [Fr] language support.
* [win32/environment.c]
Fixed GetCommandLineA() to use current PDB.
* [windows/event.c] [windows/winpos.c]
Simulate a mouse motion event upon SetWindowPos() to force the
cursor to be set correctly.
Sat Sep 30 17:49:32 Cameron Heide (heide@ee.ualberta.ca)
* [win32/*]
New Win32 kernel functions: GetACP, GetCPInfo,
GetEnvironmentVariableA, GetFileType, GetLastError, GetOEMCP,
GetStartupInfoA, GetTimeZoneInformation, SetEnvironmentVariable,
SetFilePointer, SetLastError, VirtualAlloc, VirtualFree,
WriteFile. Completed implementations of GetCommandLineA.
* [include/kernel32.h]
New file.
* [loader/main.c]
Call initialization function for Win32 data (doesn't currently do
anything).
* [misc/main.c]
Implemented GetEnvironmentVariableA, SetEnvironmentVariableA.
Sat Sep 30 00:26:56 1995 Niels de Carpentier <niels@cindy.et.tudelft.nl>
* [windows/winpos.c][miscemu/emulate.c][loader/module.c]
[misc/commdlg.c]
Misc. bug fixes
Fri Sep 29 16:16:13 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [*/*]
For Winelib, explicit casts have been placed where warnings were
usually generated.
printf formats which give the format for printing a handle as
"%04x" or something similar have been changed to use the NPFMT
macro defined in include/wintypes.h. Some times, explicit casts
were also necessary.
Parameter, field, and variable declarations have been made more
exact, such as converting 'WORD wParam' to 'WPARAM wParam' or
'WORD hFont' to 'HFONT hFont'.
Any call of the form GetWindowWord(hwnd,GWW_HINSTANCE) has been
replaced with a call to WIN_GetWindowInstance(hwnd).
* [controls/combo.c]
Added WINELIB32 support in CLBoxGetCombo().
* [include/dialog.h]
Commented out the '#ifndef WINELIB' around the '#pragma pack(1)'.
winelib needs the packing as well (e.g. when accessing resources
like sysres_DIALOG_SHELL_ABOUT_MSGBOX).
* [include/windows.h]
Got rid of the F[a-k] macros, which were cluttering up the global
namespace.
* [include/windows.h] [windows/defwnd.c]
Added Win32 messages WM_CTLCOLOR*.
* [include/wintypes.h]
Put in preprocessor '#define WINELIB32' if appropriate and changed
the types of some typedefs (WPARAM, HANDLE) based on this.
* [loader/module.c] [toolkit/miscstubs.c]
Added #ifdef'd portion in LoadModule to handle loading a WINElib
module (already loaded, just init values). '#ifdef'ed out the
definition for GetWndProcEntry16 and added a new version to
toolkit/miscstubs.c.
* [misc/shell.c]
Adjusted the lengths of AppName and AppMisc from 512,512 to 128,906.
Same amount of total storage, but much more reasonable. Also, changed
calls to strcpy() in ShellAbout() to calls to strncpy() instead.
This was a difficult bug to track down, but the AppMisc field was
being initialized with the contributers text, which was much larger
than 512 characters.
* [toolkit/atom.c]
New file for atom-handling functions. Copied from memory/atom.c and
then heavily modified. Right now, it's just a linked list of atoms.
Consider it as a hash table with just one entry. It's easily changed
later.
* [toolkit/heap.c]
Commented out the heap functions with a "#ifdef WINELIB16" and put in
a Win32 version (which is basically a modified copy).
* [toolkit/sup.c] [toolkit/miscstubs.c]
Moved the stuff I put in toolkit/sup.c into toolkit/miscstubs.c and
added quite a few more stubs.
* [toolkit/winmain.c]
Rearranged startup code in _WinMain. I think this will work.
* [toolkit/Makefile.in]
Added targets for 'hello' and 'hello2' in case anyone cares to try
out the sample programs.
Wed Sep 27 23:13:43 1995 Anand Kumria <akumria@ozemail.com.au>
* [miscemu/int2f.c] [miscemu/vxd.c] [if1632/winprocs.spec]
First attempt at support for some VxDs. Comm, Shell and Pagefile.
Tue Sep 26 21:34:45 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/dos_fs.c]
DOS_SimplifyPath: Also remove "/./" from path. (Happens when
starting applications like 'wine ./excel.exe')
Sat Sep 23 23:32:40 1995 Morten Welinder <terra@diku.dk>
* [configure.in]
Avoid relative path for wine.ini.
* [rc/sysres_Da.rc]
Support for Danish [Da] language.
* [misc/main.c] [miscemu/cpu.c]
Return the processor we're running on correctly.
* [miscemu/int2f.c]
Minor stuff in int 0x2f, function 0x16.
Sat Sep 23 1995 17:58:04 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [misc/shell.c] [misc/main.c]
Implement saving and loading of the registry database (needed for
OLE). Very experimental. Fixed ShellExecute().
* [miscemu/int21.c]
EEXIST is not a critical error condition for mkdir().
Fri Sep 22 01:33:34 1995 Alex Korobka <alex@phm6.pharm.sunysb.edu>
* [include/shell.h] [misc/shell.c]
Implemented 4 drag/drop functions with documented functionality.
* [multimedia/time.c]
"Fixed" MMSysTimeCallback kludge so Excel5 loads up without crashing.
* [*/*]
Added new files, more message definitions, structures, debug info,
etc. Rewrote message logging functions to produce output similar
to WinSight. Check out -debugmsg +message option.
* [misc/file.c]
Fixed GetDriveType return value.
* [windows/message.c]
Hooks are invoked in normal order.
* [miscemu/*]
Added some functions and interrupts.
* [misc/shell.c]
Implemented Drag... functions.
Thu Sep 21 23:50:12 1995 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [rc/sysres_Fi.rc] [rc/sysres.rc]
First attempt at Finnish [Fi] language support.
1995-10-03 18:06:08 +01:00
|
|
|
/*
|
|
|
|
* Win32 kernel functions
|
|
|
|
*
|
|
|
|
* Copyright 1995 Martin von Loewis
|
1997-03-05 09:22:35 +01:00
|
|
|
* Copyright 1997 Onno Hovers
|
Release 951003
Sun Oct 1 15:48:34 1995 Alexandre Julliard <julliard@sunsite.unc>
* [controls/menu.c]
Fixed GetMenuString() for non-string items.
* [debugger/*.c]
First attempt to check validity of pointers before memory
accesses. For now only segmented pointers are checked.
* [debugger/dbg.y] [memory/ldt.c]
Added possibility to dump only one segment with 'info segment'.
* [include/bitmaps/ocr_*]
Added all OEM cursors as XPM bitmaps.
* [include/cursoricon.h] [objects/cursoricon.c]
Rewrote all cursor and icon management to use the same memory
layout as Windows, and to factor common code between icons and
cursors. Implemented icon directory lookup to find the best
matching icon (i.e. the color one).
Implemented CopyCursor() and DumpIcon().
* [loader/module.c]
For disabled built-in modules, we now try to load the Windows DLL
first, and if this fails we fall back to using the built-in module
anyway.
* [memory/global.c]
Fixed GlobalHandle() to return the correct selector in the high
word even if we are passed a handle in the first place.
* [miscemu/instr.c]
Take into account the size of the operand and of the stack segment
when incrementing the stack pointer.
Avoid referencing FS_reg and GS_reg on *BSD.
* [objects/dib.c]
All DIB functions now accept a BITMAPCOREHEADER format bitmap.
Monochrome DIBs are created as monochrome bitmap iff they are
black and white.
* [objects/oembitmap.c]
Added support for OEM cursors, changed OBM_LoadIcon to use the new
icon memory layout.
* [rc/sysres_Fr.rc]
Added French [Fr] language support.
* [win32/environment.c]
Fixed GetCommandLineA() to use current PDB.
* [windows/event.c] [windows/winpos.c]
Simulate a mouse motion event upon SetWindowPos() to force the
cursor to be set correctly.
Sat Sep 30 17:49:32 Cameron Heide (heide@ee.ualberta.ca)
* [win32/*]
New Win32 kernel functions: GetACP, GetCPInfo,
GetEnvironmentVariableA, GetFileType, GetLastError, GetOEMCP,
GetStartupInfoA, GetTimeZoneInformation, SetEnvironmentVariable,
SetFilePointer, SetLastError, VirtualAlloc, VirtualFree,
WriteFile. Completed implementations of GetCommandLineA.
* [include/kernel32.h]
New file.
* [loader/main.c]
Call initialization function for Win32 data (doesn't currently do
anything).
* [misc/main.c]
Implemented GetEnvironmentVariableA, SetEnvironmentVariableA.
Sat Sep 30 00:26:56 1995 Niels de Carpentier <niels@cindy.et.tudelft.nl>
* [windows/winpos.c][miscemu/emulate.c][loader/module.c]
[misc/commdlg.c]
Misc. bug fixes
Fri Sep 29 16:16:13 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [*/*]
For Winelib, explicit casts have been placed where warnings were
usually generated.
printf formats which give the format for printing a handle as
"%04x" or something similar have been changed to use the NPFMT
macro defined in include/wintypes.h. Some times, explicit casts
were also necessary.
Parameter, field, and variable declarations have been made more
exact, such as converting 'WORD wParam' to 'WPARAM wParam' or
'WORD hFont' to 'HFONT hFont'.
Any call of the form GetWindowWord(hwnd,GWW_HINSTANCE) has been
replaced with a call to WIN_GetWindowInstance(hwnd).
* [controls/combo.c]
Added WINELIB32 support in CLBoxGetCombo().
* [include/dialog.h]
Commented out the '#ifndef WINELIB' around the '#pragma pack(1)'.
winelib needs the packing as well (e.g. when accessing resources
like sysres_DIALOG_SHELL_ABOUT_MSGBOX).
* [include/windows.h]
Got rid of the F[a-k] macros, which were cluttering up the global
namespace.
* [include/windows.h] [windows/defwnd.c]
Added Win32 messages WM_CTLCOLOR*.
* [include/wintypes.h]
Put in preprocessor '#define WINELIB32' if appropriate and changed
the types of some typedefs (WPARAM, HANDLE) based on this.
* [loader/module.c] [toolkit/miscstubs.c]
Added #ifdef'd portion in LoadModule to handle loading a WINElib
module (already loaded, just init values). '#ifdef'ed out the
definition for GetWndProcEntry16 and added a new version to
toolkit/miscstubs.c.
* [misc/shell.c]
Adjusted the lengths of AppName and AppMisc from 512,512 to 128,906.
Same amount of total storage, but much more reasonable. Also, changed
calls to strcpy() in ShellAbout() to calls to strncpy() instead.
This was a difficult bug to track down, but the AppMisc field was
being initialized with the contributers text, which was much larger
than 512 characters.
* [toolkit/atom.c]
New file for atom-handling functions. Copied from memory/atom.c and
then heavily modified. Right now, it's just a linked list of atoms.
Consider it as a hash table with just one entry. It's easily changed
later.
* [toolkit/heap.c]
Commented out the heap functions with a "#ifdef WINELIB16" and put in
a Win32 version (which is basically a modified copy).
* [toolkit/sup.c] [toolkit/miscstubs.c]
Moved the stuff I put in toolkit/sup.c into toolkit/miscstubs.c and
added quite a few more stubs.
* [toolkit/winmain.c]
Rearranged startup code in _WinMain. I think this will work.
* [toolkit/Makefile.in]
Added targets for 'hello' and 'hello2' in case anyone cares to try
out the sample programs.
Wed Sep 27 23:13:43 1995 Anand Kumria <akumria@ozemail.com.au>
* [miscemu/int2f.c] [miscemu/vxd.c] [if1632/winprocs.spec]
First attempt at support for some VxDs. Comm, Shell and Pagefile.
Tue Sep 26 21:34:45 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/dos_fs.c]
DOS_SimplifyPath: Also remove "/./" from path. (Happens when
starting applications like 'wine ./excel.exe')
Sat Sep 23 23:32:40 1995 Morten Welinder <terra@diku.dk>
* [configure.in]
Avoid relative path for wine.ini.
* [rc/sysres_Da.rc]
Support for Danish [Da] language.
* [misc/main.c] [miscemu/cpu.c]
Return the processor we're running on correctly.
* [miscemu/int2f.c]
Minor stuff in int 0x2f, function 0x16.
Sat Sep 23 1995 17:58:04 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [misc/shell.c] [misc/main.c]
Implement saving and loading of the registry database (needed for
OLE). Very experimental. Fixed ShellExecute().
* [miscemu/int21.c]
EEXIST is not a critical error condition for mkdir().
Fri Sep 22 01:33:34 1995 Alex Korobka <alex@phm6.pharm.sunysb.edu>
* [include/shell.h] [misc/shell.c]
Implemented 4 drag/drop functions with documented functionality.
* [multimedia/time.c]
"Fixed" MMSysTimeCallback kludge so Excel5 loads up without crashing.
* [*/*]
Added new files, more message definitions, structures, debug info,
etc. Rewrote message logging functions to produce output similar
to WinSight. Check out -debugmsg +message option.
* [misc/file.c]
Fixed GetDriveType return value.
* [windows/message.c]
Hooks are invoked in normal order.
* [miscemu/*]
Added some functions and interrupts.
* [misc/shell.c]
Implemented Drag... functions.
Thu Sep 21 23:50:12 1995 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [rc/sysres_Fi.rc] [rc/sysres.rc]
First attempt at Finnish [Fi] language support.
1995-10-03 18:06:08 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include <unistd.h>
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
#include <string.h>
|
1998-11-14 19:21:32 +01:00
|
|
|
#include "winnt.h"
|
Release 960428
Sun Apr 28 14:32:43 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [Makefile.in]
Subdir memory is now also compiled for Winelib, in order to get
the Win32 heap functions.
* [if1632/Makefile.in]
Renamed winprocs and winprocs32 to wprocs and wprocs32 to avoid
DLL names > 8 characters.
* [loader/builtin.c] (New file)
Grouped all built-in DLLs code in a single file.
* [memory/global.c]
Use the Win32 heap code instead of malloc() to allocate linear
memory. This will help test the heap code.
* [memory/local.c]
Fixed FreeSelector() to clear DS and ES correctly for huge blocks.
* [tools/build.c] [if1632/relay.c]
Removed 'id' directive in spec files. For relay debugging, the DLL
entry point is now computed from the CS:IP entry point address.
Added 'heap' directive to specifiy a local heap for the DLL. USER
and GDI heap are now created this way.
* [windows/class.c] [include/class.h]
Changed the class structure to use pointers instead of handles.
Changed Get/SetClassWord/Long to use a switch statement; this
allows changing the layout of the CLASS structure.
* [windows/win.c] [include/win.h]
Use a CLASS * instead of a handle for the window class.
Sat Apr 27 18:10:11 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec] [memory/global.c]
[win32/memory.c] [win32/process.c]
GetProcessAffinityMask,GlobalLock,IsBadReadPtr,IsBadWritePtr,
LocalLock,SetThreadAffinityMask: new relays.
* [win32/cursoricon32.c]
Return same handle if a cursor is loaded multiple times.
Sat Apr 27 15:13:37 1996 Bang Jun Young <bangjy@nownuri.nowcom.co.kr>
* [resources/sysres_Ko.rc]
Added support for Korean [Ko] language.
Fri Apr 26 00:49:05 1996 Huw D. M. Davies <h.davies1@physics.oxford.ac.uk>
* [objects/dc.c] [objects/font.c]
Fixed problem with SaveDC()/RestoreDC() and font cache 'used' count.
* [objects/metafile.c] [objects/dcvalues.c]
Fixed broken SetTextAlign() on metafiles.
* [objects/metafile.c]
Delete objects in handle table at end of PlayMetaFile().
Wed Apr 24 19:21:01 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [if1632/ver.spec] [misc/ver.c] [include/ver.h] (New files)
VER.DLL (partially) implemented (VerFindFile,VerInstallFile)
[If it doesn't work for you, use -dll -ver and report it to me]
* [if1632/user32.spec] [if1632/kernel32.spec] [if1632/shell.spec]
[if1632/shell32.spec] [misc/ole2nls.c] [windows/message.c]
[windows/graphics.c]
Simple win32 functions, where we can just use the win16 counterpart.
Misc. stubs.
* [misc/lstr.c]
Someone reported a _lstrlen(NULL). NULL is a valid argument. Fixed.
* [misc/registry.c]
Some alloclens were off by 1, one double fclose() fixed.
Requesting value 0 of a key with no values returns an error
(should we always return a made up value NULL? what does win3.1?)
Tue Apr 23 17:00:00 1996 Alex Korobka <alex@phm30.pharm.sunysb.edu>
* [misc/shell.c]
Implemented FindEnvironmentString(), DoEnvironmentSubst(),
ExtractIcon(), InternalExtractIcon() and ExtractAssociatedIcon().
* [misc/user.c]
Do extensive cleanup on application exit.
* [windows/hook.c] [windows/win.c] [windows/class.c]
Added miscellaneous cleanup routines.
* [controls/menu.c]
More efficient popup menu window handling.
Mon Apr 22 21:35:22 1996 Albrecht Kleine <kleine@ak.sax.de>
* [include/windows.h][objects/oembitmap.c][include/bitmaps/obm_trtype]
Added "TT-bitmap" for later usage in a ChooseFont() ownerdraw combobox.
1996-04-28 17:09:19 +02:00
|
|
|
#include "winbase.h"
|
Release 951003
Sun Oct 1 15:48:34 1995 Alexandre Julliard <julliard@sunsite.unc>
* [controls/menu.c]
Fixed GetMenuString() for non-string items.
* [debugger/*.c]
First attempt to check validity of pointers before memory
accesses. For now only segmented pointers are checked.
* [debugger/dbg.y] [memory/ldt.c]
Added possibility to dump only one segment with 'info segment'.
* [include/bitmaps/ocr_*]
Added all OEM cursors as XPM bitmaps.
* [include/cursoricon.h] [objects/cursoricon.c]
Rewrote all cursor and icon management to use the same memory
layout as Windows, and to factor common code between icons and
cursors. Implemented icon directory lookup to find the best
matching icon (i.e. the color one).
Implemented CopyCursor() and DumpIcon().
* [loader/module.c]
For disabled built-in modules, we now try to load the Windows DLL
first, and if this fails we fall back to using the built-in module
anyway.
* [memory/global.c]
Fixed GlobalHandle() to return the correct selector in the high
word even if we are passed a handle in the first place.
* [miscemu/instr.c]
Take into account the size of the operand and of the stack segment
when incrementing the stack pointer.
Avoid referencing FS_reg and GS_reg on *BSD.
* [objects/dib.c]
All DIB functions now accept a BITMAPCOREHEADER format bitmap.
Monochrome DIBs are created as monochrome bitmap iff they are
black and white.
* [objects/oembitmap.c]
Added support for OEM cursors, changed OBM_LoadIcon to use the new
icon memory layout.
* [rc/sysres_Fr.rc]
Added French [Fr] language support.
* [win32/environment.c]
Fixed GetCommandLineA() to use current PDB.
* [windows/event.c] [windows/winpos.c]
Simulate a mouse motion event upon SetWindowPos() to force the
cursor to be set correctly.
Sat Sep 30 17:49:32 Cameron Heide (heide@ee.ualberta.ca)
* [win32/*]
New Win32 kernel functions: GetACP, GetCPInfo,
GetEnvironmentVariableA, GetFileType, GetLastError, GetOEMCP,
GetStartupInfoA, GetTimeZoneInformation, SetEnvironmentVariable,
SetFilePointer, SetLastError, VirtualAlloc, VirtualFree,
WriteFile. Completed implementations of GetCommandLineA.
* [include/kernel32.h]
New file.
* [loader/main.c]
Call initialization function for Win32 data (doesn't currently do
anything).
* [misc/main.c]
Implemented GetEnvironmentVariableA, SetEnvironmentVariableA.
Sat Sep 30 00:26:56 1995 Niels de Carpentier <niels@cindy.et.tudelft.nl>
* [windows/winpos.c][miscemu/emulate.c][loader/module.c]
[misc/commdlg.c]
Misc. bug fixes
Fri Sep 29 16:16:13 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [*/*]
For Winelib, explicit casts have been placed where warnings were
usually generated.
printf formats which give the format for printing a handle as
"%04x" or something similar have been changed to use the NPFMT
macro defined in include/wintypes.h. Some times, explicit casts
were also necessary.
Parameter, field, and variable declarations have been made more
exact, such as converting 'WORD wParam' to 'WPARAM wParam' or
'WORD hFont' to 'HFONT hFont'.
Any call of the form GetWindowWord(hwnd,GWW_HINSTANCE) has been
replaced with a call to WIN_GetWindowInstance(hwnd).
* [controls/combo.c]
Added WINELIB32 support in CLBoxGetCombo().
* [include/dialog.h]
Commented out the '#ifndef WINELIB' around the '#pragma pack(1)'.
winelib needs the packing as well (e.g. when accessing resources
like sysres_DIALOG_SHELL_ABOUT_MSGBOX).
* [include/windows.h]
Got rid of the F[a-k] macros, which were cluttering up the global
namespace.
* [include/windows.h] [windows/defwnd.c]
Added Win32 messages WM_CTLCOLOR*.
* [include/wintypes.h]
Put in preprocessor '#define WINELIB32' if appropriate and changed
the types of some typedefs (WPARAM, HANDLE) based on this.
* [loader/module.c] [toolkit/miscstubs.c]
Added #ifdef'd portion in LoadModule to handle loading a WINElib
module (already loaded, just init values). '#ifdef'ed out the
definition for GetWndProcEntry16 and added a new version to
toolkit/miscstubs.c.
* [misc/shell.c]
Adjusted the lengths of AppName and AppMisc from 512,512 to 128,906.
Same amount of total storage, but much more reasonable. Also, changed
calls to strcpy() in ShellAbout() to calls to strncpy() instead.
This was a difficult bug to track down, but the AppMisc field was
being initialized with the contributers text, which was much larger
than 512 characters.
* [toolkit/atom.c]
New file for atom-handling functions. Copied from memory/atom.c and
then heavily modified. Right now, it's just a linked list of atoms.
Consider it as a hash table with just one entry. It's easily changed
later.
* [toolkit/heap.c]
Commented out the heap functions with a "#ifdef WINELIB16" and put in
a Win32 version (which is basically a modified copy).
* [toolkit/sup.c] [toolkit/miscstubs.c]
Moved the stuff I put in toolkit/sup.c into toolkit/miscstubs.c and
added quite a few more stubs.
* [toolkit/winmain.c]
Rearranged startup code in _WinMain. I think this will work.
* [toolkit/Makefile.in]
Added targets for 'hello' and 'hello2' in case anyone cares to try
out the sample programs.
Wed Sep 27 23:13:43 1995 Anand Kumria <akumria@ozemail.com.au>
* [miscemu/int2f.c] [miscemu/vxd.c] [if1632/winprocs.spec]
First attempt at support for some VxDs. Comm, Shell and Pagefile.
Tue Sep 26 21:34:45 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/dos_fs.c]
DOS_SimplifyPath: Also remove "/./" from path. (Happens when
starting applications like 'wine ./excel.exe')
Sat Sep 23 23:32:40 1995 Morten Welinder <terra@diku.dk>
* [configure.in]
Avoid relative path for wine.ini.
* [rc/sysres_Da.rc]
Support for Danish [Da] language.
* [misc/main.c] [miscemu/cpu.c]
Return the processor we're running on correctly.
* [miscemu/int2f.c]
Minor stuff in int 0x2f, function 0x16.
Sat Sep 23 1995 17:58:04 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [misc/shell.c] [misc/main.c]
Implement saving and loading of the registry database (needed for
OLE). Very experimental. Fixed ShellExecute().
* [miscemu/int21.c]
EEXIST is not a critical error condition for mkdir().
Fri Sep 22 01:33:34 1995 Alex Korobka <alex@phm6.pharm.sunysb.edu>
* [include/shell.h] [misc/shell.c]
Implemented 4 drag/drop functions with documented functionality.
* [multimedia/time.c]
"Fixed" MMSysTimeCallback kludge so Excel5 loads up without crashing.
* [*/*]
Added new files, more message definitions, structures, debug info,
etc. Rewrote message logging functions to produce output similar
to WinSight. Check out -debugmsg +message option.
* [misc/file.c]
Fixed GetDriveType return value.
* [windows/message.c]
Hooks are invoked in normal order.
* [miscemu/*]
Added some functions and interrupts.
* [misc/shell.c]
Implemented Drag... functions.
Thu Sep 21 23:50:12 1995 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [rc/sysres_Fi.rc] [rc/sysres.rc]
First attempt at Finnish [Fi] language support.
1995-10-03 18:06:08 +01:00
|
|
|
#include "winerror.h"
|
Release 951124
Tue Nov 21 18:49:10 1995 Alexandre Julliard <julliard@sunsite.unc.edu>
* [configure.in] [Makefile] [misc/dos_fs.c]
Got rid of autoconf.h file.
* [debugger/dbg.y]
More logical behavior upon syntax errors.
* [include/hook.h] [windows/hook.c]
Changed hook structure and rewrote most of the hook functions for
better compatibility, based on investigations by Alex Korobka.
* [include/message.h] [windows/message.c]
Added hooks to message queue structure and made the structure
layout Windows-compatible.
Added support for WH_MOUSE, WH_KEYBOARD, WH_HARDWARE and
WH_JOURNALRECORD hooks.
* [misc/main.c]
Added command-line option for changing the language at run-time
(not implemented yet), based on a suggestion from Michael Patra.
* [objects/cursoricon.c]
Fixed silly SEGPTR bug in DumpIcon().
Mon Nov 20 22:22:22 1995 Alex Korobka <alex@phm30.pharm.sunysb.edu>
* [controls/listbox.c] [controls/combo.c] [include/listbox.h]
Partial implementaion of LBS_EXTENDEDSEL style,
yet more updates for drag & drop support. Now works.
* [windows/defwnd.c]
More message handlers.
* [windows/win.c]
DragObject, DragDetect, AnyPopup functions.
* [controls/listbox.c]
More kludgy fixes (WM_...TOITEM, etc.).
* [objects/cursoricon.c] [objects/oembitmap.c]
IconToCursor skeleton, patch for OBM_LoadCursorIcon to handle new
cursor.
* [include/bitmaps/ocr*]
New OEM cursors.
Mon Nov 20 11:05:20 EST 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [toolkit/heap.c]
Swapped flags and size arguments to LocalRealloc as per changes in
memory/local.c by William Magro in previous release.
* [include/wintypes.h]
Reinstated the #define's for 'min' and 'max', since they're part of
the Windows API. I really don't think it's a wise idea, so I put
a '#ifndef DONT_DEFINE_min_AND_max' around them. I think the actual
WINE code should never use these (it should use 'MIN' and 'MAX'
instead).
* [loader/*]
Put '#ifndef WINELIB' around many things that WINElib should not need.
* [controls/edit.c]
Took out many '#if defined(WINELIB)' sections with the associated
comment 'temporary fix, until Local memory is correctly implemented in
WINELIB', since the effective translations are now in
toolkit/miscstubs.c.
Took out the #ifndef's I put in EDIT_ClearText. Whoever modified this
file fixed (or at least postponed) the bug I had encountered.
* [loader/task.c]
Put an #ifdef in TASK_CreateTask() that hardwires the current drive to
C: This will probably cause a lot of trouble if this change is
forgotten in the future, but it will let things like the OpenFileName
dialog work for now.
* [toolkit/libres.c] [toolkit/Makefile.in] [toolkit/Makefile]
[include/libres.h]
Made new libres.c file, which will contain functions for supporting
accessing resources by name in WINElib. 'winerc' will need to be
changed.
* [toolkit/heap.c]
Refined memory routines to allow for differences between LocalAlloc
and GlobalAlloc and between LocalSize and GlobalSize.
* [windows/message.c] [include/windows.h]
Defined the GetCurrentTime routine in windows/message.c, and removed
the #define in windows.h.
Mon Nov 20 00:36:42 MET 1995 Sven Verdoolaege <skimo@dns.ufsia.ac.be>
* [*/*]
Added new debugging type DEBUG_WIN32 and DEBUG_ENV.
* [loader/module.c]
Added undocumented GetExpWinVer.
* [tools/build.c]
Previous code didn't pop possibly changed %esi, %edi and %edx
from the stack.
* [win32/advapi.c]
Added GetUserNameA.
* [win32/code_page.c]
Added stub for MultiByteToWideChar.
* [win32/console.c]
Added SetConsoleCtrlHandler stub.
* [win32/file.c]
Added ReadFile CreateFileA GetFileInformationByHandle stubs.
Added CloseHandle.
* [win32/memory.c]
Changed VirtualAlloc and VirtualFree.
* [win32/process.c]
Added ExitProcess.
Sun Nov 19 17:54:42 1995 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
* [include/windows.h]
Fixed a few broken structure definitions.
* [loader/resource.c]
FindResource(): Need to check for '#xxx' strings here.
* [miscemu/int21.c]
FindNext(): Return MS-DOS filenames uppercase.
* [objects/cursoricon.c]
CreateIcon(), CreateCursor(): Added missing element to CURSORICONINFO
initializers.
* [misc/file.c]
_lopen(): Files opened in OF_WRITE mode are truncated.
OpenFile(): Ignore OF_READ/OF_WRITE/OF_READWRITE when files are
created; use read/write mode.
* [misc/profile.c]
load(): Rewritten.
* [misc/commdlg.c]
Fixed bad call to strncpy() that smashed the stack.
* [controls/combo.c] [windows/winpos.c] [memory/selector.c]
Operator precedence fixes. People who use gcc 2.7.1 don't need a
debugger :-)
* [if1632/gdi.spec] [objects/palette.c]
Add ResizePalette() and AnimatePalette() stubs. They don't do anything,
but sometimes that's good enough.
Fri Nov 17 09:10:35 GMT 1995 John Harvey <john@division.co.uk>
* [include/wine.h] [include/registers.h] [include/winsock.h]
Added definitions for Unixware.
* [loader/signal.c] [misc/comm.c] [misc/winsocket.c]
Misc. fixes for Unixware.
* [loader/task.c]
Made assignemts to context in InitTask for registers use the macros
from registers.h to make them more portable. (Needed for Unixware)
* [tools/build.c]
Fixed register acces routines to work on Unixware. Bit grubby but
it seems to work.
* [controls/edit.c]
EDIT_WM_NCCreate allocates local heap if hasn't been previously
allocated.
* [miscemu/int21.c]
mkdir now creates directory with permission to access it.
* [misc/dos_fs.c]
mkdir now creates directory with permission to access it.
DOS_opendir now uses linked list of dirents to avoid problems with
realloc changing address of malloced memory.
Thu Nov 16 12:47:13 1995 Michael Patra <patra@itp1.Physik.TU-Berlin.DE>
* [controls/menu.c]
MENU_CalcItemSize(): Fixed handling of empty menu items.
Sat Nov 11 21:46:54 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/file.c]
In OpenFile, unlink should be done on the unix filename.
Sat Nov 11 16:43:29 1995 Cameron Heide (heide@ee.ualberta.ca)
* [include/handle32.h]
New header file containing internal Win32 kernel handle
information.
* [win32/file.c]
Added ReadFile, CreateFile, and CloseFileHandle, and did
some reorganizing to match the new handle allocation scheme.
* [win32/init.c]
Added CloseHandle and the creation of standard I/O handles.
* [win32/object_mgt.c]
New module for allocating and freeing Win32 kernel handles.
1995-11-26 14:59:11 +01:00
|
|
|
#include "debug.h"
|
Release 951003
Sun Oct 1 15:48:34 1995 Alexandre Julliard <julliard@sunsite.unc>
* [controls/menu.c]
Fixed GetMenuString() for non-string items.
* [debugger/*.c]
First attempt to check validity of pointers before memory
accesses. For now only segmented pointers are checked.
* [debugger/dbg.y] [memory/ldt.c]
Added possibility to dump only one segment with 'info segment'.
* [include/bitmaps/ocr_*]
Added all OEM cursors as XPM bitmaps.
* [include/cursoricon.h] [objects/cursoricon.c]
Rewrote all cursor and icon management to use the same memory
layout as Windows, and to factor common code between icons and
cursors. Implemented icon directory lookup to find the best
matching icon (i.e. the color one).
Implemented CopyCursor() and DumpIcon().
* [loader/module.c]
For disabled built-in modules, we now try to load the Windows DLL
first, and if this fails we fall back to using the built-in module
anyway.
* [memory/global.c]
Fixed GlobalHandle() to return the correct selector in the high
word even if we are passed a handle in the first place.
* [miscemu/instr.c]
Take into account the size of the operand and of the stack segment
when incrementing the stack pointer.
Avoid referencing FS_reg and GS_reg on *BSD.
* [objects/dib.c]
All DIB functions now accept a BITMAPCOREHEADER format bitmap.
Monochrome DIBs are created as monochrome bitmap iff they are
black and white.
* [objects/oembitmap.c]
Added support for OEM cursors, changed OBM_LoadIcon to use the new
icon memory layout.
* [rc/sysres_Fr.rc]
Added French [Fr] language support.
* [win32/environment.c]
Fixed GetCommandLineA() to use current PDB.
* [windows/event.c] [windows/winpos.c]
Simulate a mouse motion event upon SetWindowPos() to force the
cursor to be set correctly.
Sat Sep 30 17:49:32 Cameron Heide (heide@ee.ualberta.ca)
* [win32/*]
New Win32 kernel functions: GetACP, GetCPInfo,
GetEnvironmentVariableA, GetFileType, GetLastError, GetOEMCP,
GetStartupInfoA, GetTimeZoneInformation, SetEnvironmentVariable,
SetFilePointer, SetLastError, VirtualAlloc, VirtualFree,
WriteFile. Completed implementations of GetCommandLineA.
* [include/kernel32.h]
New file.
* [loader/main.c]
Call initialization function for Win32 data (doesn't currently do
anything).
* [misc/main.c]
Implemented GetEnvironmentVariableA, SetEnvironmentVariableA.
Sat Sep 30 00:26:56 1995 Niels de Carpentier <niels@cindy.et.tudelft.nl>
* [windows/winpos.c][miscemu/emulate.c][loader/module.c]
[misc/commdlg.c]
Misc. bug fixes
Fri Sep 29 16:16:13 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [*/*]
For Winelib, explicit casts have been placed where warnings were
usually generated.
printf formats which give the format for printing a handle as
"%04x" or something similar have been changed to use the NPFMT
macro defined in include/wintypes.h. Some times, explicit casts
were also necessary.
Parameter, field, and variable declarations have been made more
exact, such as converting 'WORD wParam' to 'WPARAM wParam' or
'WORD hFont' to 'HFONT hFont'.
Any call of the form GetWindowWord(hwnd,GWW_HINSTANCE) has been
replaced with a call to WIN_GetWindowInstance(hwnd).
* [controls/combo.c]
Added WINELIB32 support in CLBoxGetCombo().
* [include/dialog.h]
Commented out the '#ifndef WINELIB' around the '#pragma pack(1)'.
winelib needs the packing as well (e.g. when accessing resources
like sysres_DIALOG_SHELL_ABOUT_MSGBOX).
* [include/windows.h]
Got rid of the F[a-k] macros, which were cluttering up the global
namespace.
* [include/windows.h] [windows/defwnd.c]
Added Win32 messages WM_CTLCOLOR*.
* [include/wintypes.h]
Put in preprocessor '#define WINELIB32' if appropriate and changed
the types of some typedefs (WPARAM, HANDLE) based on this.
* [loader/module.c] [toolkit/miscstubs.c]
Added #ifdef'd portion in LoadModule to handle loading a WINElib
module (already loaded, just init values). '#ifdef'ed out the
definition for GetWndProcEntry16 and added a new version to
toolkit/miscstubs.c.
* [misc/shell.c]
Adjusted the lengths of AppName and AppMisc from 512,512 to 128,906.
Same amount of total storage, but much more reasonable. Also, changed
calls to strcpy() in ShellAbout() to calls to strncpy() instead.
This was a difficult bug to track down, but the AppMisc field was
being initialized with the contributers text, which was much larger
than 512 characters.
* [toolkit/atom.c]
New file for atom-handling functions. Copied from memory/atom.c and
then heavily modified. Right now, it's just a linked list of atoms.
Consider it as a hash table with just one entry. It's easily changed
later.
* [toolkit/heap.c]
Commented out the heap functions with a "#ifdef WINELIB16" and put in
a Win32 version (which is basically a modified copy).
* [toolkit/sup.c] [toolkit/miscstubs.c]
Moved the stuff I put in toolkit/sup.c into toolkit/miscstubs.c and
added quite a few more stubs.
* [toolkit/winmain.c]
Rearranged startup code in _WinMain. I think this will work.
* [toolkit/Makefile.in]
Added targets for 'hello' and 'hello2' in case anyone cares to try
out the sample programs.
Wed Sep 27 23:13:43 1995 Anand Kumria <akumria@ozemail.com.au>
* [miscemu/int2f.c] [miscemu/vxd.c] [if1632/winprocs.spec]
First attempt at support for some VxDs. Comm, Shell and Pagefile.
Tue Sep 26 21:34:45 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/dos_fs.c]
DOS_SimplifyPath: Also remove "/./" from path. (Happens when
starting applications like 'wine ./excel.exe')
Sat Sep 23 23:32:40 1995 Morten Welinder <terra@diku.dk>
* [configure.in]
Avoid relative path for wine.ini.
* [rc/sysres_Da.rc]
Support for Danish [Da] language.
* [misc/main.c] [miscemu/cpu.c]
Return the processor we're running on correctly.
* [miscemu/int2f.c]
Minor stuff in int 0x2f, function 0x16.
Sat Sep 23 1995 17:58:04 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [misc/shell.c] [misc/main.c]
Implement saving and loading of the registry database (needed for
OLE). Very experimental. Fixed ShellExecute().
* [miscemu/int21.c]
EEXIST is not a critical error condition for mkdir().
Fri Sep 22 01:33:34 1995 Alex Korobka <alex@phm6.pharm.sunysb.edu>
* [include/shell.h] [misc/shell.c]
Implemented 4 drag/drop functions with documented functionality.
* [multimedia/time.c]
"Fixed" MMSysTimeCallback kludge so Excel5 loads up without crashing.
* [*/*]
Added new files, more message definitions, structures, debug info,
etc. Rewrote message logging functions to produce output similar
to WinSight. Check out -debugmsg +message option.
* [misc/file.c]
Fixed GetDriveType return value.
* [windows/message.c]
Hooks are invoked in normal order.
* [miscemu/*]
Added some functions and interrupts.
* [misc/shell.c]
Implemented Drag... functions.
Thu Sep 21 23:50:12 1995 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [rc/sysres_Fi.rc] [rc/sysres.rc]
First attempt at Finnish [Fi] language support.
1995-10-03 18:06:08 +01:00
|
|
|
|
1997-03-05 09:22:35 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
* FIXME:
|
|
|
|
* The c functions do not protect from non-interlocked accesses
|
|
|
|
* This is no problem as long as we do not have multiple Win32 threads
|
|
|
|
* or processes.
|
|
|
|
* The assembly macro's do protect from non-interlocked access,
|
|
|
|
* but they will only work for i386 systems with GCC.
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
*/
|
1997-03-05 09:22:35 +01:00
|
|
|
|
|
|
|
/************************************************************************
|
|
|
|
* InterlockedIncrement [KERNEL32] *
|
|
|
|
* *
|
|
|
|
* InterlockedIncrement adds 1 to a long variable and returns *
|
|
|
|
* - a negative number if the result < 0 *
|
|
|
|
* - zero if the result == 0 *
|
|
|
|
* - a positive number if the result > 0 *
|
|
|
|
* *
|
|
|
|
* The returned number need not be equal to the result!!!! *
|
|
|
|
************************************************************************/
|
|
|
|
|
1997-08-24 18:00:30 +02:00
|
|
|
LONG WINAPI InterlockedIncrement(LPLONG lpAddend)
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
{
|
1997-03-05 09:22:35 +01:00
|
|
|
#if defined(__i386__)&&defined(__GNUC__)
|
|
|
|
long ret;
|
|
|
|
__asm__
|
|
|
|
(
|
|
|
|
"\tlock\n" /* for SMP systems */
|
|
|
|
"\tincl (%1)\n"
|
|
|
|
"\tje 2f\n"
|
|
|
|
"\tjl 1f\n"
|
|
|
|
"\tincl %0\n"
|
|
|
|
"\tjmp 2f\n"
|
|
|
|
"1:\tdec %0\n"
|
|
|
|
"2:\n"
|
|
|
|
:"=r" (ret):"r" (lpAddend), "0" (0): "memory"
|
|
|
|
);
|
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
LONG ret;
|
|
|
|
/* StopAllThreadsAndProcesses() */
|
|
|
|
|
|
|
|
(*lpAddend)++;
|
|
|
|
ret=*lpAddend;
|
|
|
|
|
|
|
|
/* ResumeAllThreadsAndProcesses() */
|
|
|
|
return ret;
|
|
|
|
#endif
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
}
|
|
|
|
|
1997-03-05 09:22:35 +01:00
|
|
|
/************************************************************************
|
|
|
|
* InterlockedDecrement [KERNEL32] *
|
|
|
|
* *
|
|
|
|
* InterlockedIncrement adds 1 to a long variable and returns *
|
|
|
|
* - a negative number if the result < 0 *
|
|
|
|
* - zero if the result == 0 *
|
|
|
|
* - a positive number if the result > 0 *
|
|
|
|
* *
|
|
|
|
* The returned number need not be equal to the result!!!! *
|
|
|
|
************************************************************************/
|
|
|
|
|
1997-08-24 18:00:30 +02:00
|
|
|
LONG WINAPI InterlockedDecrement(LPLONG lpAddend)
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
{
|
1997-03-05 09:22:35 +01:00
|
|
|
#if defined(__i386__)&&defined(__GNUC__)
|
|
|
|
LONG ret;
|
|
|
|
__asm__
|
|
|
|
(
|
|
|
|
"\tlock\n" /* for SMP systems */
|
|
|
|
"\tdecl (%1)\n"
|
|
|
|
"\tje 2f\n"
|
|
|
|
"\tjl 1f\n"
|
|
|
|
"\tincl %0\n"
|
|
|
|
"\tjmp 2f\n"
|
|
|
|
"1:\tdec %0\n"
|
|
|
|
"2:\n"
|
|
|
|
:"=r" (ret):"r" (lpAddend), "0" (0): "memory"
|
|
|
|
);
|
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
LONG ret;
|
|
|
|
/* StopAllThreadsAndProcesses() */
|
|
|
|
|
|
|
|
(*lpAddend)--;
|
|
|
|
ret=*lpAddend;
|
|
|
|
|
|
|
|
/* ResumeAllThreadsAndProcesses() */
|
|
|
|
return ret;
|
|
|
|
#endif
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
}
|
|
|
|
|
1997-03-05 09:22:35 +01:00
|
|
|
/************************************************************************
|
1998-03-15 21:29:56 +01:00
|
|
|
* InterlockedExchange [KERNEL32.???]
|
|
|
|
*
|
|
|
|
* Atomically exchanges a pair of values.
|
|
|
|
*
|
|
|
|
* RETURNS
|
|
|
|
* Prior value of value pointed to by Target
|
|
|
|
*/
|
|
|
|
LONG WINAPI InterlockedExchange(
|
|
|
|
LPLONG target, /* Address of 32-bit value to exchange */
|
|
|
|
LONG value /* New value for the value pointed to by target */
|
|
|
|
) {
|
1997-03-05 09:22:35 +01:00
|
|
|
#if defined(__i386__)&&defined(__GNUC__)
|
|
|
|
LONG ret;
|
Release 980104
Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch>
* [debugger/db_disasm.c]
Added cpuid and cmpxchg instructions.
* [if1632/builtin.c] [relay32/builtin32.c]
Fixed broken -dll option with Win32 DLLs.
* [include/heap.h]
Added SYSTEM_LOCK/SYSTEM_UNLOCK macros.
* [configure.in] [misc/lstr.c]
Added check for wctype.h.
Commented out --enable-ipc option (IPC code has been broken for a
long time anyway).
* [scheduler/critsection.c] [scheduler/event.c]
[scheduler/mutex.c] [scheduler/semaphore.c]
Implemented Win32 synchronization objects.
* [scheduler/synchro.c]
Implemented WaitForMultipleObjects and related functions.
* [scheduler/thread.c]
If possible, use clone() in CreateThread().
* [scheduler/thread.c] [scheduler/process.c]
Made thread and process waitable objects.
Thread and process id values are now different from the pointers
they represent.
* [win32/k32obj.c]
Moved to scheduler directory.
Added function table for waiting operations on objects.
* [files/file.c] [memory/virtual.c]
Added new K32OBJ function table.
Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net>
* [files/file.c]
Fixed my patch for GetTempFileName16() as needed.
It was ...Name32A() that didn't work properly, not ...Name16().
* [graphics/x11drv/brush.c]
Fixed a BadMatch error.
* [msdos/int21.c]
Fixed INT21_FindNextFCB() to get correct volume labels e.g.
in "file open" dialog.
* [multimedia/joystick.c] [relay32/winmm.spec]
Stub JoyGetPosEx().
* [scheduler/process.c] [relay32/kernel32.spec]
Implemented RegisterServiceProcess().
Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com>
* [if1632/kernel.spec] [if1632/relay.c]
Define CallProcEx32w - Thanks to Marcus Meissner for his excellent
CallProc32W.
* [loader/module.c]
Take a shot at defining FreeLibrary32W.
Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de>
* [controls/menu.c]
Menu modification from WM_INITMENUPOPUP message fixed.
Menu items now can have different wID and hSubMenu (Win95 behavior).
* [misc/cpu.c]
Improved IsProcessorFeaturePresent.
Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no>
* [include/winsock.h] [misc/winsock.c]
Fixed WS_SOL_SOCKET for setsockopt(), and made select() return
empty fd_sets if timeout.
* [objects/palette.c]
AnimatePalette() bailed out if entire palette is animated. Fixed.
* [objects/dib.c]
Added some code to SetDIBitsToDevice() and its helpers to fix
some offseting problems.
* [objects/cursoricon.c]
Made CreateCursor32() convert the instance handle properly. Made
DestroyCursor() return correct success status.
Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu>
* [windows/syscolor.c]
Added definition of GetSysColorPen16/32. This function does not
exist in the Win32 API but is a very close (and natural) relative
to GetSysColorBrush function. Moreover, it is *very* much used
within Wine since there are a lot of places where we need to draw
lines with the standard colors.
* [controls/button.c] [controls/combo.c] [controls/icontitle.c]
[controls/menu.c] [controls/progress.c] [controls/scroll.c]
[controls/updown.c] [graphics/painting.c] [misc/tweak.c]
[windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c]
Replaced references to sysColorObjects with the appropriate
call to GetSysColorBrush32/GetSysColorPen32. There is no need to
expose the implementation of these functions, even within Wine.
This makes the code easier to understand, debug, maintain.
* [controls/uitools.c]
Modified most of the functions in this file to use the now
standard pens (i.e. GetSysColorPen32). These functions made
*heavy* use of standard pens so I expect a lot less
CreatePen/DeleteObject calls can do only good...:)
Plus some minor modifications (*no* functional changes though).
* [controls/updown.c]
Used the new DrawFrameControl32 function to paint the control.
I also deleted UDDOWN_DrawArrow since it was no longer required.
Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no>
* [configure.in]
Added check for -lw.
* [include/wintypes.h] [tools/build.c]
Changes to make the assembly understandable for even sun as.
".ascii" -> ".string", "call %foo" -> "call *%foo",
"pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s".
* [memory/ldt.c]
#ifdef added so <sys/seg.h> will not be included on Solaris.
Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [configure.in]
Added XF86DGA check.
* [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h]
Started DirectSound. Only stubs for now.
* [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec]
Started to implement DirectDraw. Mostly stubs, some
testcases work. Requires the XF86DGA extension to XFree86.
(check demo/blizdemo.exe from the Diablo CD-ROM).
* [files/drive.c]
Return correct "CDFS" fsname so Diablo is a bit happier.
Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com>
* [misc/registry.c]
Fixed bugs in the routines which read the Windows '95 registry
files. Added extra information regarding the format of the Windows
'95 registry files.
1998-01-04 18:49:09 +01:00
|
|
|
__asm__ ( /* lock for SMP systems */
|
|
|
|
"lock\n\txchgl %0,(%1)"
|
|
|
|
:"=r" (ret):"r" (target), "0" (value):"memory" );
|
1997-03-05 09:22:35 +01:00
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
LONG ret;
|
|
|
|
/* StopAllThreadsAndProcesses() */
|
|
|
|
|
|
|
|
ret=*target;
|
|
|
|
*target=value;
|
|
|
|
|
|
|
|
/* ResumeAllThreadsAndProcesses() */
|
|
|
|
return ret;
|
|
|
|
#endif
|
Release 960324
Sun Mar 24 13:13:11 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [include/win.h] [windows/*.c]
Replaced next, parent, child and owner handles by pointers in WND
structure. This should improve performance, and should be
reasonably safe since Microsoft did the same in Win95.
* [include/wintypes.h] [*/*]
Redefined HANDLE to be UINT instead of a pointer for Winelib. This
allows removing a lot of unnecessary casts and NPFMTs.
* [windows/caret.c]
Create the caret brush upon CreateCaret(); use the bitmap
dimensions for the caret.
Fixed CARET_DisplayCaret() to use PatBlt().
Fri Mar 22 16:00:00 1996 Anand Kumria <akumria@ozemail.com.au>
* [misc/winsocket.c]
More sanity checks, fixup some erroneous return codes.
* [documentation/winsock]
Description of how compatible the winsock is currently.
Fri Mar 22 13:05:34 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [library/winmain.c]
Set `lpszCmdParam' by concatenating arguments.
* [loader/module.c]
WinExec: accept Unix commands, use Wine emulator.
Mon Mar 18 12:16:27 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/kernel32.spec][win32/thread.c][include/kernel32.h]
DeleteCriticalSection, EnterCriticalSection,
InitializeCriticalSection, LeaveCriticalSection, TlsAlloc,
TlsFree, TlsGetValue, TlsSetValue: new functions.
CRITICAL_SECTION: new structure.
* [if1632/kernel32.spec][win32/code_page.c]
WideCharToMultiByte: new function.
* [if1632/kernel32.spec][win32/file.c]
GetFileAttributesA: new function.
* [if1632/kernel32.spec][misc/main.c]
GetEnvironmentStringsW, FreeEnvironmentStringsA,
FreeEnvironmentStringsW: new functions.
* [if1632/user.spec][win32/cursoricon32.c][win32/Makefile.in]
cursoricon32.c: new file.
LoadCursorA, LoadCursorW: modified implementation from LoadCursor
to WIN32_*.
LoadIconA, LoadIconW: modified implementation from LoadIconA32
to WIN32_*.
* [include/struct32.h]
pragma pack inserted.
CURSORICON32 structures added.
* [include/winnls.h]
Constants CP_* and WC_* added.
* [loader/pe_image.c]
PE_LoadModule: call PE_InitDLL with hModule rather than wpnt.
Sun Mar 17 16:59:12 1996 Albrecht Kleine <kleine@ak.sax.de>
* [misc/commdlg.c]
Introduced hook function handling in file dialog.
Removed an unnecessary ShowWindow call in FILEDLG_WMCommand().
Thu Mar 14 10:50:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/gdi32.spec]
Added GetNearestColor.
* [if1632/kernel32.spec]
Added GlobalAddAtomA.
* [win32/param32.c]
Added stackframe.h to includes.
WIN32_GlobalAddAtomA() - new function.
1996-03-24 17:20:51 +01:00
|
|
|
}
|
1998-11-14 19:21:32 +01:00
|
|
|
|
|
|
|
/************************************************************************
|
|
|
|
* InterlockedCompareExchange [KERNEL32.879]
|
|
|
|
*
|
|
|
|
* Atomically compares Destination and Comperand, and if found equal exchanges
|
|
|
|
* the value of Destination with Exchange
|
|
|
|
*
|
|
|
|
* RETURNS
|
|
|
|
* Prior value of value pointed to by Destination
|
|
|
|
*/
|
|
|
|
PVOID WINAPI InterlockedCompareExchange(
|
|
|
|
PVOID *Destination, /* Address of 32-bit value to exchange */
|
|
|
|
PVOID Exchange, /* change value, 32 bits */
|
|
|
|
PVOID Comperand /* value to compare, 32 bits */
|
|
|
|
) {
|
|
|
|
#if defined(__i386__)&&defined(__GNUC__)
|
|
|
|
PVOID ret;
|
|
|
|
__asm__ ( /* lock for SMP systems */
|
|
|
|
"lock\n\t"
|
|
|
|
"cmpxchgl %2,(%1)"
|
|
|
|
:"=r" (ret)
|
|
|
|
:"r" (Destination),"r" (Exchange), "0" (Comperand)
|
|
|
|
:"memory" );
|
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
PVOID ret;
|
|
|
|
/* StopAllThreadsAndProcesses() */
|
|
|
|
|
|
|
|
ret=*Destination;
|
|
|
|
if(*Destination==Comperand) *Destination=Exchange;
|
|
|
|
|
|
|
|
/* ResumeAllThreadsAndProcesses() */
|
|
|
|
return ret;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************
|
|
|
|
* InterlockedExchangeAdd [KERNEL32.880]
|
|
|
|
*
|
|
|
|
* Atomically adds Increment to Addend and returns the previous value of
|
|
|
|
* Addend
|
|
|
|
*
|
|
|
|
* RETURNS
|
|
|
|
* Prior value of value pointed to by cwAddendTarget
|
|
|
|
*/
|
|
|
|
LONG WINAPI InterlockedExchangeAdd(
|
|
|
|
PLONG Addend, /* Address of 32-bit value to exchange */
|
|
|
|
LONG Increment /* Value to add */
|
|
|
|
) {
|
|
|
|
#if defined(__i386__)&&defined(__GNUC__)
|
|
|
|
LONG ret;
|
|
|
|
__asm__ ( /* lock for SMP systems */
|
|
|
|
"lock\n\t"
|
|
|
|
"xaddl %0,(%1)"
|
|
|
|
:"=r" (ret)
|
|
|
|
:"r" (Addend), "0" (Increment)
|
|
|
|
:"memory" );
|
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
LONG ret;
|
|
|
|
/* StopAllThreadsAndProcesses() */
|
|
|
|
|
|
|
|
ret = *Addend;
|
|
|
|
*Addend += Increment;
|
|
|
|
|
|
|
|
/* ResumeAllThreadsAndProcesses() */
|
|
|
|
return ret;
|
|
|
|
#endif
|
|
|
|
}
|