Compare commits

..

1460 Commits

Author SHA1 Message Date
The ReactOS Team
d4a3555442 This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=8047
2004-02-06 08:21:52 +00:00
Aleksey Bragin
b1adc9e47f Initial revision
svn path=/trunk/; revision=8046
2004-02-06 08:21:52 +00:00
Gé van Geldorp
a4b76f805d When using the parent clip region, translate it to child coordinates.
Fixes bug #83.

svn path=/trunk/; revision=8045
2004-02-05 23:16:37 +00:00
Gé van Geldorp
363a9ebe63 Correct bufsize calculation in MessageBoxTimeoutIndirectW. Fixes bug #35.
svn path=/trunk/; revision=8044
2004-02-05 22:09:15 +00:00
Martin Fuchs
994297a05a fixed small bug, which shows up only under NT4
svn path=/trunk/; revision=8043
2004-02-05 21:38:48 +00:00
Gé van Geldorp
55d09ef598 Don't callback from kernel to usermode if the thread is exiting
svn path=/trunk/; revision=8042
2004-02-05 20:09:10 +00:00
Martin Fuchs
a7be90ed0b try to be compatible to NT 4.0 without Active Desktop
svn path=/trunk/; revision=8041
2004-02-05 19:54:51 +00:00
Thomas Bluemel
3bf7edc849 added control panel template
svn path=/trunk/; revision=8040
2004-02-05 19:17:11 +00:00
Thomas Bluemel
1b0cdbf59c added missing definitions
svn path=/trunk/; revision=8039
2004-02-05 19:14:32 +00:00
Art Yerkes
2fa692ee50 Small fixes for cross compilation.
svn path=/trunk/; revision=8038
2004-02-05 16:26:39 +00:00
Royce Mitchell III
5e2e1b620b TEB and ICD table offsets and ICD table structure
svn path=/trunk/; revision=8037
2004-02-05 16:11:19 +00:00
Martin Fuchs
702870db9d don't count on NULL termination of returned strings
svn path=/trunk/; revision=8036
2004-02-05 08:23:50 +00:00
Royce Mitchell III
49f02ee444 patch by blight with help from Royce3 for ICD behavioral research:
Changed GLFUNCS_MACRO to support C implementation of functions,
added MSVC asm version of gl functions, links now, driver and
GLRC lists protected by mutexes, added some breakpoints,
and fixed 1 or 2 Drv prototypes.

svn path=/trunk/; revision=8035
2004-02-05 04:28:11 +00:00
Emanuele Aliberti
270099086f Win32 GUI subsystem.
svn path=/trunk/; revision=8034
2004-02-04 23:12:54 +00:00
Gé van Geldorp
8fdb9cdcc1 Fix race condition when one thread changes the update region of a window
and another thread retrieves a paint message for that window.

svn path=/trunk/; revision=8033
2004-02-04 23:01:07 +00:00
Gé van Geldorp
969bf0b926 Second attempt at bug #5: reset active DCEs when window positions change
svn path=/trunk/; revision=8032
2004-02-04 22:59:04 +00:00
Gé van Geldorp
40bc1b6611 Use window thread instead of current thread to obtain desktop
svn path=/trunk/; revision=8031
2004-02-04 22:55:21 +00:00
Filip Navara
f599776b65 - Rewritten NtGdiEllipse with improved and optimized algorithm. Now it works also for non-circles, but unfortuently it still looks a bit choppy.
svn path=/trunk/; revision=8030
2004-02-04 22:10:00 +00:00
Aleksey Bragin
75a008acf6 cat for ReactOS made by Tappak (Semyon Novikov)
svn path=/trunk/; revision=8029
2004-02-04 20:02:57 +00:00
Aleksey Bragin
1c8751a080 missing .cvsignore
svn path=/trunk/; revision=8028
2004-02-04 20:01:22 +00:00
Eric Kohl
2dae92de89 Add debug message logging (disabled by default).
Store user account data in Account\Users.

svn path=/trunk/; revision=8027
2004-02-04 17:57:56 +00:00
Gé van Geldorp
4986ea13b8 Adjust NtUserChildWindowFromPointEx declaration to match definition
svn path=/trunk/; revision=8026
2004-02-04 10:23:05 +00:00
Martin Fuchs
c7278edf80 get background color out of the bitmap
svn path=/trunk/; revision=8025
2004-02-04 09:43:51 +00:00
Martin Fuchs
d49e09da20 added 4bpp logo bmp
svn path=/trunk/; revision=8024
2004-02-04 09:31:27 +00:00
Martin Fuchs
6505062b5a added special logo bitmap for 4 bpp color resolution
svn path=/trunk/; revision=8023
2004-02-04 09:29:53 +00:00
Richard Campbell
9896efb9e2 increased icon spacing, my computer and other icon titles aren't clipped anymore...
svn path=/trunk/; revision=8022
2004-02-04 01:26:34 +00:00
Richard Campbell
5922c20a8d implemented ChildWindowFromPoint(Ex)
svn path=/trunk/; revision=8021
2004-02-04 01:10:25 +00:00
Richard Campbell
7e4dffe404 changed 'Create New Task' to 'Run'
svn path=/trunk/; revision=8020
2004-02-04 00:53:45 +00:00
Gé van Geldorp
bec973c423 Move call to PrivateCsrssManualGuiCheck to before the creation of
window classes

svn path=/trunk/; revision=8019
2004-02-04 00:05:46 +00:00
Richard Campbell
8c6973cde5 stubbed out dsound, dinput, and ddraw, some apps get a little farther before crashing now (FCEU).
svn path=/trunk/; revision=8018
2004-02-03 23:09:48 +00:00
Martin Fuchs
57a8fb919e integrated new startmenu side bar logo (posted by Paulo Correasilva)
svn path=/trunk/; revision=8017
2004-02-03 21:34:59 +00:00
Filip Navara
2b54029e8b - Fix NtUserScroll[WindowEx/DC]
- Minor correction in NtUserBeginPaint
- Added check for NULL handle in IntPaintWindows

svn path=/trunk/; revision=8016
2004-02-03 17:53:55 +00:00
Filip Navara
44f54f5ec0 - Use ScrollWindowEx for scrolling text in console
svn path=/trunk/; revision=8015
2004-02-03 17:53:54 +00:00
Thomas Bluemel
8dfbb5f8ab added *.d files
svn path=/trunk/; revision=8014
2004-02-03 15:52:33 +00:00
Eric Kohl
3c199a3cb1 Move RtlGUIDFromString() and RtlInt64ToUnicodeString() stubs.
Removed fpu emulator entry points.

svn path=/trunk/; revision=8013
2004-02-03 14:38:23 +00:00
Filip Navara
ef6d18b7ad - Fix a NULL termination.
svn path=/trunk/; revision=8012
2004-02-03 14:25:38 +00:00
Eric Kohl
cd98a247e4 Add byte swap functions.
svn path=/trunk/; revision=8011
2004-02-03 14:24:02 +00:00
Royce Mitchell III
ffa90a12e2 patch by blight:
I have not changed the function loading code to use the TEB's glDispatch
table, but the calling code should be kinda ok already (the x86 version)
For the C version of the forwarding code we need another agument for the X
macro i think. At the moment it is function name ("glVertex3f"), return type
("void") and args ("GLfloat x, GLfloat y, GLfloat z") - we'd need one with
"x, y, z" for that case that we can pass on the arguments with C.

The WGL code also doesn't use the TEB yet, it still uses TLS.

svn path=/trunk/; revision=8010
2004-02-03 14:23:42 +00:00
Gé van Geldorp
6531ed6cf1 Deactivate last change since it can cause a FastMutex to be recursively
acquired

svn path=/trunk/; revision=8009
2004-02-03 09:44:35 +00:00
Emanuele Aliberti
11c1fc3591 PORT_MESSAGE and PORT_MAX_MESSAGE are already defined off include/ntos. I remove them for now.
svn path=/trunk/; revision=8008
2004-02-03 00:05:57 +00:00
Emanuele Aliberti
3356caccb3 LPC: initial work on NT/ROS compatibility.
svn path=/trunk/; revision=8007
2004-02-02 23:48:42 +00:00
Gé van Geldorp
70a9c9cdf0 Handle NULL window as special case when computing visible region for GetDC.
Fixes bug #59

svn path=/trunk/; revision=8006
2004-02-02 23:28:17 +00:00
Martin Fuchs
51612d040b reading of FAT image files (work in progress)
svn path=/trunk/; revision=8005
2004-02-02 23:18:07 +00:00
Eric Kohl
2f3d748c1d Implement RtlAccessAllowedAceEx() and RtlAccessDeniedAceEx().
Use ACL constants and fix ACL-revision checks.

svn path=/trunk/; revision=8004
2004-02-02 22:38:43 +00:00
Gé van Geldorp
7b7b608822 Update DC when moving a window. Fixes bug #5. Based on a patch by
Filip Navara.

svn path=/trunk/; revision=8003
2004-02-02 22:09:05 +00:00
Filip Navara
994fed8844 - Remove AddrFileEntry from CONNECTION_ENDPOINT. It's no longer needed.
- Fixed acquiring a spin lock in FileCloseConnection.

svn path=/trunk/; revision=8002
2004-02-02 21:02:48 +00:00
Eric Kohl
8a81d07bde Fix stupid cut&paste bug.
svn path=/trunk/; revision=8001
2004-02-02 20:59:46 +00:00
Filip Navara
c1f516ab97 Add registry entries for IShellLink[AW] interfaces.
svn path=/trunk/; revision=8000
2004-02-02 20:25:28 +00:00
Hartmut Birr
7ab30519b8 - Fixed the return value in RtlStringFromGUID.
svn path=/trunk/; revision=7999
2004-02-02 19:04:11 +00:00
Royce Mitchell III
fb4488df01 warning fix ( casting issue )
svn path=/trunk/; revision=7998
2004-02-02 18:21:32 +00:00
Filip Navara
9caad5c470 Compilation fixes.
svn path=/trunk/; revision=7997
2004-02-02 17:59:23 +00:00
Filip Navara
7e215a0498 Import of OpenGL Utility library.
svn path=/trunk/; revision=7996
2004-02-02 16:39:16 +00:00
Gé van Geldorp
a474343fb9 Change workaround for bug in Nullsoft installer.
svn path=/trunk/; revision=7995
2004-02-02 15:51:29 +00:00
Gé van Geldorp
08b2e62907 lstrcpyn is documented to always return a NUL terminated string
svn path=/trunk/; revision=7994
2004-02-02 15:50:16 +00:00
Gé van Geldorp
90fd161f1e Don't increment loop variable inside the loop too. Spotted by Mark IJbema.
svn path=/trunk/; revision=7993
2004-02-02 15:16:53 +00:00
Thomas Bluemel
a21e7f7e43 fixed compiling problems
svn path=/trunk/; revision=7992
2004-02-02 15:10:00 +00:00
Eric Kohl
e61405acd5 Implement RtlFindLeastSignificantBit() and RtlFindMostSignificantBit().
svn path=/trunk/; revision=7991
2004-02-02 13:34:01 +00:00
Eric Kohl
fb0bca238a Use ACL constants and fix ACL-revision checks.
svn path=/trunk/; revision=7990
2004-02-02 12:05:41 +00:00
Eric Kohl
aa7104ce33 Add missing ACL-related constants.
svn path=/trunk/; revision=7989
2004-02-02 12:03:43 +00:00
Emanuele Aliberti
6004fa9998 Type casting for compiling USER32. What did break it?
svn path=/trunk/; revision=7988
2004-02-02 11:46:41 +00:00
Royce Mitchell III
1dd7917966 initial implementation of OPENGL32_LoadDrivers(), call it on PROCESS_ATTACH. Removed trailing W from functions where unnecessary.
svn path=/trunk/; revision=7987
2004-02-02 06:01:35 +00:00
Royce Mitchell III
e0cc57149b bunch more groundwork for ICD support - patch by blight
svn path=/trunk/; revision=7986
2004-02-02 05:36:37 +00:00
Eric Kohl
5a34c87b8b Implement RtlFindLeastSignificantBit(), RtlFindMostSignificantBit() and _itow().
svn path=/trunk/; revision=7985
2004-02-02 00:36:36 +00:00
Richard Campbell
18ff29b0fa unstubbed childwindowfrompoint(ex). This function is implemented in my local source tree, will commit as soon as i do some testing to make sure things work as planned.
svn path=/trunk/; revision=7984
2004-02-02 00:18:58 +00:00
Gé van Geldorp
03726a14c8 Changes for richedit
svn path=/trunk/; revision=7983
2004-02-01 21:55:45 +00:00
Gé van Geldorp
d196e4b798 Add mpr and wininet to default build/install
svn path=/trunk/; revision=7982
2004-02-01 21:41:00 +00:00
Gé van Geldorp
de26fb22b7 Stub out just enough of wininet.dll to make the AbiWord installer happy
svn path=/trunk/; revision=7981
2004-02-01 21:33:56 +00:00
Gé van Geldorp
3651baea0a Workaround for bug in Nullsoft installer. This closes ReactOS bug #194.
svn path=/trunk/; revision=7980
2004-02-01 21:27:44 +00:00
Gé van Geldorp
09fd2196ac CVS maintenance
svn path=/trunk/; revision=7979
2004-02-01 21:26:06 +00:00
Gé van Geldorp
9a55977414 Sync richedit with WineHQ
svn path=/trunk/; revision=7978
2004-02-01 21:20:05 +00:00
Thomas Bluemel
5db4db7d8f little bugfix
svn path=/trunk/; revision=7977
2004-02-01 20:50:10 +00:00
Eric Kohl
0d5dbba99c - Move rangelist stubs.
- Move sscanf() stub.
- Implement _bsearch(), _lfind(), _ui64toa() and _ui64tow().
- Export iswdigit(), iswlower(), iswxdigit() and _vsnwsprintf().
- Replace Win32 types by corresponding native types.

svn path=/trunk/; revision=7976
2004-02-01 20:48:06 +00:00
Thomas Bluemel
af5a3793e1 added support for right-aligned menus
svn path=/trunk/; revision=7975
2004-02-01 20:45:02 +00:00
Gé van Geldorp
dc7e97f014 Update status
svn path=/trunk/; revision=7974
2004-02-01 20:11:00 +00:00
Gé van Geldorp
30fec5037f Add mpr.dll
svn path=/trunk/; revision=7973
2004-02-01 20:08:08 +00:00
Gé van Geldorp
4c1d8f1a02 CVS maintenance
svn path=/trunk/; revision=7971
2004-02-01 19:58:55 +00:00
Gé van Geldorp
098630e3d6 Import mpr from Wine
svn path=/trunk/; revision=7970
2004-02-01 19:48:44 +00:00
Martin Fuchs
4d326b81dc implemented context menu for file child windows
svn path=/trunk/; revision=7969
2004-02-01 19:17:31 +00:00
Filip Navara
c9e333fafc Latest version of serial mouse driver with fixes by Logan_V8_TT.
svn path=/trunk/; revision=7968
2004-02-01 18:28:38 +00:00
Emanuele Aliberti
8443a77631 Use macros for LPC message limits in current LPC implementation.
svn path=/trunk/; revision=7967
2004-02-01 18:19:28 +00:00
Royce Mitchell III
04aba507f3 function list macro
svn path=/trunk/; revision=7966
2004-02-01 17:18:48 +00:00
Royce Mitchell III
809430ad58 more work on openg32
svn path=/trunk/; revision=7965
2004-02-01 17:07:16 +00:00
Eric Kohl
927fc7ad03 Fix buggy expansion (signed/unsigned) of InitiatorBusID.
svn path=/trunk/; revision=7964
2004-02-01 16:02:35 +00:00
Eric Kohl
ed7963440d Changed base address of samlib.dll.
svn path=/trunk/; revision=7963
2004-02-01 15:56:37 +00:00
Gé van Geldorp
f28940b24f Fix wrong GetBitmapDimensionEx() usage
svn path=/trunk/; revision=7962
2004-02-01 15:52:02 +00:00
Gé van Geldorp
32532d4019 Silence debug messages
svn path=/trunk/; revision=7961
2004-02-01 15:46:53 +00:00
Gé van Geldorp
e1d6ad5272 Rename BITMAPOBJ "size" member to "dimension" to make clear it's to be
used for Get/SetBitmapDimensionEx only. Fix current wrong usage.

svn path=/trunk/; revision=7960
2004-02-01 15:45:41 +00:00
Gé van Geldorp
2cb71414cb Testing shows that MS-Win does allow a thread to leave a critical section
entered by another thread.

svn path=/trunk/; revision=7959
2004-02-01 14:05:30 +00:00
Filip Navara
cac89868b0 Test for bugs that prevent Mozilla from working.
svn path=/trunk/; revision=7958
2004-02-01 12:30:36 +00:00
Martin Fuchs
394bc9f628 display pseudo-file attributes "link" and "executable"
svn path=/trunk/; revision=7957
2004-02-01 11:53:11 +00:00
Martin Fuchs
257d7fb7f0 update TODO list
svn path=/trunk/; revision=7956
2004-02-01 11:22:24 +00:00
Martin Fuchs
26e89bbfbc display registry value contents
svn path=/trunk/; revision=7955
2004-02-01 11:19:28 +00:00
Martin Fuchs
b88d580163 new 'content' column to display symbolic link targets
svn path=/trunk/; revision=7954
2004-02-01 10:52:24 +00:00
Martin Fuchs
3e745d2acd Patch by Filip Navara <xnavara@volny.cz>:
Can someone please commit this patch? I can't wait for the root's lock
and this patch fixes one dumb problem/crash I introduced...

svn path=/trunk/; revision=7953
2004-02-01 09:58:30 +00:00
Filip Navara
981a893bbd - Resolve two GDI handle leaks
- Faster GDI handle allocation strategy

svn path=/trunk/; revision=7952
2004-02-01 08:07:07 +00:00
Filip Navara
a4b82ffa87 Fixed .cvsignore.
svn path=/trunk/; revision=7951
2004-02-01 08:03:43 +00:00
Royce Mitchell III
cb603fa318 beginnings of ros's opengl32 - by blight and Royce3
svn path=/trunk/; revision=7950
2004-02-01 07:11:06 +00:00
Gé van Geldorp
003adb9a68 Silence debug messages
svn path=/trunk/; revision=7949
2004-01-31 23:53:45 +00:00
Gé van Geldorp
649ad5c8c0 Implemented Write(Private)ProfileStringA/W
svn path=/trunk/; revision=7948
2004-01-31 23:52:42 +00:00
Martin Fuchs
4e8837594f mount drives in NT object namespace
svn path=/trunk/; revision=7947
2004-01-31 23:43:28 +00:00
Martin Fuchs
18feaceddc display types of files, NT objects and registry key/entries
svn path=/trunk/; revision=7946
2004-01-31 23:02:21 +00:00
Martin Fuchs
df1d5b7032 - don't sort registry hives
- fix for memory corruption problem

svn path=/trunk/; revision=7945
2004-01-31 21:01:53 +00:00
Thomas Bluemel
77721fee4b fixed missing release of window objects
svn path=/trunk/; revision=7944
2004-01-31 19:56:14 +00:00
Martin Fuchs
8506980996 included Registry as virtual file system
svn path=/trunk/; revision=7943
2004-01-31 19:31:51 +00:00
Martin Fuchs
b2f6c15aa4 empty REGISTRY directory
svn path=/trunk/; revision=7942
2004-01-31 17:26:38 +00:00
Martin Fuchs
973445eeff re-activate already open shell/ntobj child windows instead of opening new windows
svn path=/trunk/; revision=7941
2004-01-31 17:09:19 +00:00
Eric Kohl
288705874e Start parsing at the root object when an object path needs to be reparsed.
Patch by Art Yerkes.

svn path=/trunk/; revision=7940
2004-01-31 16:52:47 +00:00
Martin Fuchs
cb2752aa76 included NT Object namespace as virtual file system
svn path=/trunk/; revision=7939
2004-01-31 16:25:23 +00:00
Emanuele Aliberti
f4625da5df Define macros for LPC limits:
PORT_MAX_DATA_LENGTH    0x104
PORT_MAX_MESSAGE_LENGTH 0x148

svn path=/trunk/; revision=7938
2004-01-31 15:27:54 +00:00
Richard Campbell
70ced9fd3b Seperated the Caption font and the icon title font. Note that this code will soon be rendered obsolete by code that loads metrics fonts from the registry.
svn path=/trunk/; revision=7937
2004-01-31 14:57:58 +00:00
Eric Kohl
c88b53bb8e Fixed querying and enumerating the subkeys of HKEY_LOCAL_MACHINE.
This fixes bug #78.

svn path=/trunk/; revision=7936
2004-01-31 14:33:01 +00:00
Filip Navara
faa1a76919 Call initialization of the msvcrt parts ported from Wine.
svn path=/trunk/; revision=7935
2004-01-31 13:29:19 +00:00
Robert Kopferl
dbd10a8033 neu
svn path=/trunk/; revision=7934
2004-01-31 01:29:11 +00:00
Hartmut Birr
9ac2b2c62c - Do only lock a new page on exit from AccessFaultSectionView.
svn path=/trunk/; revision=7933
2004-01-31 00:16:55 +00:00
Hartmut Birr
dab0a77461 - Check for a privat page and change only the page protection
for such a page in MmAccessFaultSectionView.

svn path=/trunk/; revision=7932
2004-01-30 23:57:58 +00:00
Gé van Geldorp
5dee2e6519 Silence debug messages
svn path=/trunk/; revision=7931
2004-01-30 22:29:39 +00:00
Gé van Geldorp
d14d65ec2a Silence debug messages
svn path=/trunk/; revision=7930
2004-01-30 22:12:47 +00:00
Gé van Geldorp
c0e2ebf80c Implement some profile (.ini file) functions
svn path=/trunk/; revision=7929
2004-01-30 21:48:09 +00:00
Martin Fuchs
8a89b6750f fixed relocation problem to re-activate new error messages
svn path=/trunk/; revision=7928
2004-01-30 20:31:35 +00:00
Andrew Greenwood
26584f6d6a Preliminary implementation of mmdrv.dll. This is fixed to using MidiOut0 (provided by the mpu401 driver) and is *very* basic. It's only possible to open the MIDI device and play a note, with this.
Eventually, a list of devices will need to be obtained from the registry.

svn path=/trunk/; revision=7927
2004-01-30 18:32:58 +00:00
Richard Campbell
0b9faf4625 reverted martin's patch as it causes ROS to no longer boot correctly into GUI mode, patch by filip navara.
svn path=/trunk/; revision=7926
2004-01-30 17:53:07 +00:00
Andrew Greenwood
47fe4c6cf3 MIDI / MPU401 output test application.
This just opens the first MIDI device, which at present should be the one provided by mpu401.sys (via mmdrv.dll), and plays a note.

svn path=/trunk/; revision=7925
2004-01-30 17:38:08 +00:00
Filip Navara
549c9ff77e Minor correction to RtlDeleteCriticalSection.
svn path=/trunk/; revision=7924
2004-01-30 17:32:17 +00:00
Andrew Greenwood
d00716c055 Temporarily named the device "MidiOut0" so mmdrv.dll (when committed!) will use it.
This driver can currently play some short MIDI messages when combined with my mmdrv.dll and miditest.exe programs (which I intend to commit eventually, once they're integrated into the ReactOS tree.)

svn path=/trunk/; revision=7923
2004-01-30 17:10:23 +00:00
Andrew Greenwood
392b65e4a7 Fixed a few minor problems so the driver compiles with the current ROS headers etc.
It still doesn't really do much apart from play a buffer of silence when loaded, but maybe someone can help me with this :)

svn path=/trunk/; revision=7922
2004-01-30 17:08:13 +00:00
Filip Navara
4b2257966c stubs/stubs.c (EngGetLastError, EngSetLastError): Moved to ...
eng/error.c: ... here
stubs/stubs.c (BRUSHOBJ_ulGetBrushColor): Moved to ...
eng/brush.c: ... here and implemented.
objects/semaphor.c: Moved to ...
eng/semaphor.c: ... here

svn path=/trunk/; revision=7921
2004-01-30 16:36:16 +00:00
Richard Campbell
81984d5d5e More font fixes.
svn path=/trunk/; revision=7920
2004-01-30 15:53:36 +00:00
Richard Campbell
9eb201eea9 Switcharoo with some fonts, this fixes some of the font issues introduced by my font loading patch.
svn path=/trunk/; revision=7919
2004-01-30 13:11:52 +00:00
Richard Campbell
acb0c0998c Enabled the bytecode interpreter with the unpatented hinting system, ftoption.h warns that this doesn't work as advertise, if anyone has any problems, disable it. This improves the quality of some of the fonts dramatically.
svn path=/trunk/; revision=7918
2004-01-30 13:10:42 +00:00
Gé van Geldorp
b61bc104f2 Patch by Michael Fritscher
Change error message displayed when trying to 'cd' to non-existent dir

svn path=/trunk/; revision=7917
2004-01-30 12:34:02 +00:00
Gé van Geldorp
5c0e9ff60d Patch by Michael Fritscher
Implement /W option

svn path=/trunk/; revision=7916
2004-01-30 12:27:41 +00:00
Gé van Geldorp
b9e10092bd Patch by Michael Fritscher
Implement /P and /Y options

svn path=/trunk/; revision=7915
2004-01-30 12:24:41 +00:00
Filip Navara
de69dfa6c7 Implementation of InitializeCriticalSectionAndSpinCount and RtlInitializeCriticalSectionAndSpinCount.
svn path=/trunk/; revision=7914
2004-01-29 23:41:36 +00:00
Martin Fuchs
7ecc5dcb3f imported error message texts from MSDN
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__1000-1299_.asp)

svn path=/trunk/; revision=7913
2004-01-29 22:26:20 +00:00
Richard Campbell
2950445444 I swear! last commit! (forgot to ZwClose)
svn path=/trunk/; revision=7912
2004-01-29 22:24:51 +00:00
Richard Campbell
0d2c4c19fd Fixed a small bug in my code and removed DbgPrint.
svn path=/trunk/; revision=7911
2004-01-29 22:23:27 +00:00
Richard Campbell
8904505d1f Dynamically load fonts on startup. Code probably isn't perfect, but it works. This code exposes another small 'bug'. System font appears to be dependent on the loading order of the fonts.
svn path=/trunk/; revision=7910
2004-01-29 22:17:54 +00:00
Aleksey Bragin
6bfe38b04b man implementation in ReactOS by Semyon Novikov (tappak).
It works in current ROS implementation according to his words

svn path=/trunk/; revision=7909
2004-01-29 20:28:56 +00:00
Martin Fuchs
33084f82f3 use strcmpiW() instead of _wcsicmp() for Wine-compatibility
svn path=/trunk/; revision=7908
2004-01-29 20:09:20 +00:00
Gunnar Dalsnes
dae39308ff GetLocaleInfoA impl. (copied from wine)
svn path=/trunk/; revision=7907
2004-01-28 23:03:59 +00:00
Gé van Geldorp
b6b9cc70d8 Merge back commits from WineHQ
svn path=/trunk/; revision=7906
2004-01-28 21:57:41 +00:00
Filip Navara
eb51ca8257 Added missing .cvsignore files.
svn path=/trunk/; revision=7905
2004-01-28 21:56:36 +00:00
Gé van Geldorp
f336758ba4 Merge back commits from WineHQ
svn path=/trunk/; revision=7904
2004-01-28 21:40:09 +00:00
Gé van Geldorp
c5eedd47f6 Merge back commits from WineHQ
svn path=/trunk/; revision=7903
2004-01-28 21:27:51 +00:00
Filip Navara
9d72a8b12b Minor change to allow linking setupapi.dll.
svn path=/trunk/; revision=7902
2004-01-28 21:02:07 +00:00
Gé van Geldorp
bccf34a7a1 Determine number of accelerator table entries in resource from size of
the resource

svn path=/trunk/; revision=7901
2004-01-28 21:00:23 +00:00
Eric Kohl
cdcb7ec378 Remove ntos.h and roskrnl.h from kernel-mode code.
svn path=/trunk/; revision=7900
2004-01-28 20:55:50 +00:00
Gé van Geldorp
eb980ec861 Inform kernel whether Unicode or Ansi window proc is preferred
svn path=/trunk/; revision=7899
2004-01-28 20:54:30 +00:00
Gé van Geldorp
3d25387466 Don't wait for GUI processes to finish
svn path=/trunk/; revision=7898
2004-01-28 20:52:57 +00:00
Martin Fuchs
b4446c11bb merged back commited WINE patches: \n for TRACE messages
svn path=/trunk/; revision=7897
2004-01-28 20:10:59 +00:00
Martin Fuchs
d276fcc1d3 merged back commited WINE patches
svn path=/trunk/; revision=7896
2004-01-28 20:10:01 +00:00
Filip Navara
f6966e84c8 Fixed base addresses and exports.
svn path=/trunk/; revision=7895
2004-01-28 19:34:45 +00:00
Gé van Geldorp
a3c1e6c8c7 Patch by Michael Fritscher
Fix /p when screen buffer is larger than output window

svn path=/trunk/; revision=7894
2004-01-28 17:47:27 +00:00
Gé van Geldorp
88c6922a90 strncpy does add NUL bytes to fill dest buffer completely,
however lstrcpyn does not.

svn path=/trunk/; revision=7893
2004-01-28 08:51:09 +00:00
Gé van Geldorp
18a0b41cb6 Don't depend on wine user32 internals
svn path=/trunk/; revision=7892
2004-01-27 21:54:03 +00:00
Gé van Geldorp
c778f1be56 Don't write more nul bytes than necessary
svn path=/trunk/; revision=7891
2004-01-27 21:43:47 +00:00
Hartmut Birr
01723ab7ca - Fixed some problems which occurs if a read only segment is
changed to write and back to read only and if such a segment
  (or a page from such a segment) is paged out and reloaded again.

svn path=/trunk/; revision=7890
2004-01-27 20:13:08 +00:00
Gé van Geldorp
72a5d17432 Fix cross-thread WM_SETTEXT messages
svn path=/trunk/; revision=7889
2004-01-27 13:21:35 +00:00
Thomas Bluemel
8c589debf7 activate modal dialog when clicking on a disabled window
svn path=/trunk/; revision=7888
2004-01-27 11:52:37 +00:00
Thomas Bluemel
55a09e1914 release window object when destroying window children and skip only children that have a different parent window (instead of owner window because controls do not have a window owner)
svn path=/trunk/; revision=7887
2004-01-27 09:36:14 +00:00
Thomas Bluemel
420710cf61 don't activate disabled windows
svn path=/trunk/; revision=7886
2004-01-27 08:49:58 +00:00
Thomas Bluemel
71270ddbba GetAncestor() doesn't set a last-error if the handle passed is the desktop window, it just returns NULL
svn path=/trunk/; revision=7885
2004-01-27 08:29:28 +00:00
Gé van Geldorp
f1253083e4 Release mutex on error exit
svn path=/trunk/; revision=7884
2004-01-26 23:29:23 +00:00
Thomas Bluemel
53623ae9dc implemented multiline menu bars
svn path=/trunk/; revision=7883
2004-01-26 23:22:48 +00:00
Filip Navara
83adec498a Readd some resource, because they're actually used!
svn path=/trunk/; revision=7882
2004-01-26 20:36:41 +00:00
Thomas Bluemel
48cc68f016 1. implemented MenuItemFromPoint()
2. fixed hittest-code so it returns HTMENU properly

svn path=/trunk/; revision=7881
2004-01-26 12:46:16 +00:00
Thomas Bluemel
e6249843b8 set menuitem rects after measuring the size
svn path=/trunk/; revision=7880
2004-01-26 10:09:04 +00:00
Thomas Bluemel
9d9f3772f6 fixed close button
svn path=/trunk/; revision=7879
2004-01-26 09:32:17 +00:00
Thomas Bluemel
a5ea007a53 gave NtUserCall*Param decent names
svn path=/trunk/; revision=7878
2004-01-26 08:44:51 +00:00
Gé van Geldorp
49c7a9ae93 Add __REACTOS__ define
svn path=/trunk/; revision=7877
2004-01-25 18:42:49 +00:00
Filip Navara
6e361ec59f More work on software mouse pointer implementation.
svn path=/trunk/; revision=7876
2004-01-25 16:47:10 +00:00
Richard Campbell
4fc67741b8 more housekeeping
svn path=/trunk/; revision=7875
2004-01-25 13:09:34 +00:00
Richard Campbell
5792580e59 housekeeping
svn path=/trunk/; revision=7874
2004-01-25 13:06:55 +00:00
Martin Fuchs
ffce6d13d0 fixed Doxygen Generation
svn path=/trunk/; revision=7873
2004-01-25 11:55:59 +00:00
Jason Filby
bf5b782c83 *** empty log message ***
svn path=/trunk/; revision=7872
2004-01-25 09:57:15 +00:00
Filip Navara
872e4089f0 Minor fix.
svn path=/trunk/; revision=7871
2004-01-25 08:32:51 +00:00
Filip Navara
09fa2c188b Fixed binary search algroithm in LdrGetExportByOrdinal - numbers can reach negative values.
svn path=/trunk/; revision=7870
2004-01-25 08:32:49 +00:00
Filip Navara
5f474aea89 Work on ioctlsocket and WSAIoctl.
svn path=/trunk/; revision=7869
2004-01-25 08:32:44 +00:00
Filip Navara
3360515771 Actually the last entry in export table is NumberOfNames - 1 and not NumberOfNames.
svn path=/trunk/; revision=7868
2004-01-24 23:44:26 +00:00
Martin Fuchs
8fb6b0e581 resolve some FIXMEs by translating new text strings; provided by Paulo [<correasilva@tugamail.com>]
svn path=/trunk/; revision=7867
2004-01-24 23:00:51 +00:00
Filip Navara
e25e386086 Moved the generic mouse pointer implementation to win32k (not complete yet).
svn path=/trunk/; revision=7865
2004-01-24 19:47:05 +00:00
Filip Navara
db0f9b9ba4 Work on mouse pointer implementation.
svn path=/trunk/; revision=7864
2004-01-24 17:42:56 +00:00
Steven Edwards
ed4bb6a2cd Started porting Setupapi.dll from WINE to ReactOS.
svn path=/trunk/; revision=7863
2004-01-24 15:39:47 +00:00
Martin Fuchs
7fd96c83a7 dde_connect(): set error code ERROR_DDE_FAIL when encountering DDE connection problems
svn path=/trunk/; revision=7862
2004-01-24 12:20:17 +00:00
Martin Fuchs
de5a724bca - basic registration of .url and .scf file types
- fix for .txt file type (REG_EXPAND_SZ)

svn path=/trunk/; revision=7861
2004-01-24 12:08:08 +00:00
Filip Navara
52963a354f Fix RtlStringFromGUID.
svn path=/trunk/; revision=7860
2004-01-24 11:59:04 +00:00
Filip Navara
85ac449051 Fix debug message.
svn path=/trunk/; revision=7859
2004-01-24 11:59:00 +00:00
Martin Fuchs
1d58bfad3b - use PostMessage(WM_SYSCOMMAND) instead of ShowWindowAsync(SW_MINIMIZE) to minimize application windows when clicking on the taskbar
-> for example mIRC needs this to "minimize to the tray"
- fix determination of the last foreground window

svn path=/trunk/; revision=7858
2004-01-24 10:12:40 +00:00
Eric Kohl
19f91f8fd9 Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7857
2004-01-24 08:41:03 +00:00
Eric Kohl
495a53c036 Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7856
2004-01-24 08:27:40 +00:00
Eric Kohl
f0a9cdbf44 Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7855
2004-01-23 23:38:26 +00:00
Eric Kohl
ac2bc52c3f Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7854
2004-01-23 23:30:23 +00:00
Martin Fuchs
138cbd27ed merged back commited WINE patches
svn path=/trunk/; revision=7853
2004-01-23 21:44:15 +00:00
Eric Kohl
049035cfea Move kernel32-internal declarations from global include directory to local one.
svn path=/trunk/; revision=7852
2004-01-23 21:18:27 +00:00
Eric Kohl
901a00bd04 Move kernekl32-internal declarations from global include directory to local one.
svn path=/trunk/; revision=7851
2004-01-23 21:16:04 +00:00
Martin Fuchs
afcb6d4fb1 bugfix to correctly display notification icons of some applications
svn path=/trunk/; revision=7850
2004-01-23 20:52:18 +00:00
Eric Kohl
ceb721e557 Add missing header.
svn path=/trunk/; revision=7849
2004-01-23 20:11:24 +00:00
Eric Kohl
7f921b5820 Get rid of useless prototypes.
svn path=/trunk/; revision=7848
2004-01-23 20:02:09 +00:00
Eric Kohl
a27a41929d Ntdll implements the user heaps. Don't try to handle this yourself.
svn path=/trunk/; revision=7847
2004-01-23 19:59:15 +00:00
Filip Navara
c6651faa5f Forgot to commit this file last time.
svn path=/trunk/; revision=7846
2004-01-23 19:49:07 +00:00
Filip Navara
444c59cb3f Patch by Matthew Brace <ismarc@austin.rr.com>
- Implementation of RtlStringFromGUID, IoOpenDeviceInterfaceRegistryKey and IoGetDeviceInterfaceAlias.

svn path=/trunk/; revision=7845
2004-01-23 18:00:53 +00:00
Eric Kohl
9f83325730 Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7844
2004-01-23 17:18:16 +00:00
Filip Navara
914db3cd4a Remove the empty strings to get the compilation working again with newer windres versions.
svn path=/trunk/; revision=7843
2004-01-23 16:56:44 +00:00
Filip Navara
2c02c69455 Fixed compiling (Buffer -> buffer).
svn path=/trunk/; revision=7842
2004-01-23 16:51:41 +00:00
Eric Kohl
6482583e26 Cleanup: Replace WINBOOL by BOOL
svn path=/trunk/; revision=7841
2004-01-23 16:37:11 +00:00
Gé van Geldorp
ada72d1210 Sync to Wine-20040121-plus-LARGE_INTEGER-patch
svn path=/trunk/; revision=7839
2004-01-23 14:31:36 +00:00
Eric Kohl
d1915fcb59 Implement basic administrator account creation and logon.
This is neither safe nor NT-compatible.

svn path=/trunk/; revision=7838
2004-01-23 10:47:22 +00:00
Eric Kohl
ffad6ce8ff Create the user-specific registry hive.
svn path=/trunk/; revision=7837
2004-01-23 10:39:22 +00:00
Eric Kohl
d1f3d3bb40 NtOpenKey() should return a better status value if the desired key does not exist.
svn path=/trunk/; revision=7836
2004-01-23 10:37:17 +00:00
Eric Kohl
8f96df5995 Implement basic administrator account creation and logon.
This is neither safe nor NT-compatible.

svn path=/trunk/; revision=7835
2004-01-23 10:35:52 +00:00
Eric Kohl
e5fc3cf116 Implement basic administrator account creation and logon.
This is either safe nor NT-compatible.

svn path=/trunk/; revision=7834
2004-01-23 10:33:21 +00:00
Richard Campbell
2e39d5d2d6 Added stubbed mpr.dll in an attempt to get mirc 6.12 to load.
svn path=/trunk/; revision=7833
2004-01-23 01:40:28 +00:00
Gé van Geldorp
ec55b104f6 w32api declares some shlwapi.h functions as documented in MSDN,
unfortunately the actual declaration in the PSDK is different. Since the
PSDK is our gold standard adjust our declarations to those in the PSDK.

svn path=/trunk/; revision=7832
2004-01-22 23:52:53 +00:00
Emanuele Aliberti
aeccf4ff73 Do not make NtSecureConnectPort fail: for now direct the call to NtConnectPort.
svn path=/trunk/; revision=7831
2004-01-22 21:56:48 +00:00
Filip Navara
3763ee7ad1 - Use English resources when no default locale is specified (Temporary fix).
- Added registry entry for the per user local setting.

svn path=/trunk/; revision=7830
2004-01-22 20:47:08 +00:00
Gé van Geldorp
029c2688e6 Sync with Wine-20040121
svn path=/trunk/; revision=7828
2004-01-22 20:35:25 +00:00
Gé van Geldorp
8625e94a7a Sync with Wine-20040121
svn path=/trunk/; revision=7827
2004-01-22 20:12:04 +00:00
Gé van Geldorp
6e5c492813 Sync with Wine-20040121
svn path=/trunk/; revision=7826
2004-01-22 18:52:01 +00:00
Gé van Geldorp
3b897823aa Sync with Wine-20040121
svn path=/trunk/; revision=7825
2004-01-22 18:45:19 +00:00
Gé van Geldorp
bcf21623ed Better fix for DPA heap problem
svn path=/trunk/; revision=7824
2004-01-22 16:02:56 +00:00
Eric Kohl
d55c5fe5b8 Check returned status codes.
svn path=/trunk/; revision=7823
2004-01-22 13:18:10 +00:00
Gunnar Dalsnes
9f32fb18b9 fix stupid bug
svn path=/trunk/; revision=7822
2004-01-22 12:39:01 +00:00
Martin Fuchs
d808a08b91 merged in commited shell32 WINE patch
svn path=/trunk/; revision=7821
2004-01-22 09:20:41 +00:00
Richard Campbell
a7f8f318e3 ifndef _ROS_
svn path=/trunk/; revision=7820
2004-01-22 01:38:43 +00:00
Eric Kohl
f4bafd97b4 Silenced a debug message.
svn path=/trunk/; revision=7819
2004-01-21 23:20:46 +00:00
Martin Fuchs
7bd7074cb3 merged back commit shell32 WINE patches
svn path=/trunk/; revision=7818
2004-01-21 23:01:35 +00:00
Martin Fuchs
0f8bd6db55 return 'My Compuer' PIDL for Desktop->ParseDisplayName()
svn path=/trunk/; revision=7817
2004-01-21 20:49:13 +00:00
Filip Navara
50cf00fdae Implemented GetUserDefaultLangID and GetUserDefaultLCID.Fixes bug #108.
svn path=/trunk/; revision=7816
2004-01-21 20:37:00 +00:00
Gé van Geldorp
467d22e64f Re-add Doxyfile which was deleted by mistake
svn path=/trunk/; revision=7815
2004-01-21 19:32:38 +00:00
Gé van Geldorp
561fa3d093 Update to FreeType 2.1.5
svn path=/trunk/; revision=7814
2004-01-21 19:23:49 +00:00
Casper Hornstrup
e47bd48591 2004-01-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apistatus.lst: Rename tdi.dll to tdi.sys.

svn path=/trunk/; revision=7813
2004-01-21 19:08:51 +00:00
Filip Navara
f6e5603bdb Minor fix in GlobalMemoryStatus to get some applications happy.
svn path=/trunk/; revision=7812
2004-01-21 18:57:21 +00:00
Filip Navara
f25f3c010a Fix bug #129. Unfortunetly this causes another bug to appear (that is not caused by this patch hopefully).
svn path=/trunk/; revision=7811
2004-01-21 18:39:24 +00:00
Filip Navara
e182b38c78 ndis.dll -> ndis.sys (fix bug #160)
svn path=/trunk/; revision=7810
2004-01-21 18:38:54 +00:00
Filip Navara
74722e09f0 Fix bug #166 ('FileDialog returns empty string or error in run from the start menu').
svn path=/trunk/; revision=7809
2004-01-21 18:38:53 +00:00
Filip Navara
593f004966 - Don't mix device and logical coordinates in NtUserBeginPaint.
- Use BF_FLAT style for DrawEdge when drawing WS_EX_STATICEDGE border.

svn path=/trunk/; revision=7807
2004-01-21 17:23:55 +00:00
Filip Navara
cad98f04c0 Another rewrite of the mouse detection code by Logan_V8_TT with minor changes by me to get it really working with my mouse. This version should solve the problem where the mouse wasn't moving and also the conflicts with serial port debugging.
svn path=/trunk/; revision=7806
2004-01-21 15:25:01 +00:00
Eric Kohl
5844d90709 Change location of videoprt.sys.
svn path=/trunk/; revision=7805
2004-01-21 12:19:47 +00:00
Gé van Geldorp
c651c68c2f Add taskmgr to distributed apps
svn path=/trunk/; revision=7804
2004-01-21 08:05:06 +00:00
Martin Fuchs
fd55bd2119 use #ifdef _ROS_ for latest drawing workaround
svn path=/trunk/; revision=7803
2004-01-21 08:02:51 +00:00
Gé van Geldorp
12996778d4 Reboot instead of shutdown at the end of 2nd stage setup.
svn path=/trunk/; revision=7800
2004-01-20 23:40:19 +00:00
Gé van Geldorp
8cd9e295fc Show warning screen at the end of setup, telling the user to wait until
the disk has been flushed. Fixes bug #110.

svn path=/trunk/; revision=7798
2004-01-20 23:39:06 +00:00
Gé van Geldorp
b95a905321 Correctly move hardware messages between private queues. Fixes bugs
#156 and #162.

svn path=/trunk/; revision=7796
2004-01-20 23:35:59 +00:00
Richard Campbell
aa31a3cd3a small workaround to get the edge around the systray to display properly.
svn path=/trunk/; revision=7795
2004-01-20 23:34:05 +00:00
Eric Kohl
efb3dc1194 Implement CreateProcessAsUser[A/W] and LogonUserW with a fake token.
svn path=/trunk/; revision=7793
2004-01-20 23:16:42 +00:00
Filip Navara
930507af17 Attempt to fix the display corruption problems when using bootvid.sys on certain HW.
svn path=/trunk/; revision=7792
2004-01-20 21:08:40 +00:00
Emanuele Aliberti
ed59770cae Ignore map file.
svn path=/trunk/; revision=7791
2004-01-20 20:44:30 +00:00
Thomas Bluemel
859e0dceee restored the blue.sys driver
svn path=/trunk/; revision=7790
2004-01-20 20:00:45 +00:00
Andrew Greenwood
9e88919457 2nd time lucky - MPU401 driver. Sorry about the previous breakage of blue :(
svn path=/trunk/; revision=7789
2004-01-20 19:58:48 +00:00
Andrew Greenwood
5c32f0ba7f This is a very basic implementation of a Sound Blaster driver for ReactOS. At present, it's capable of playing a buffer of silence when opened, but that's about all.
The MPU401 driver would normally be part of SNDBLST, but I decided to keep them separate, for now at least anyway. IIRC, this should play a MIDI note on startup.

Both drivers need a lot of work, but I'm committing what I've done so far, so other people can work on them as well as me :)

svn path=/trunk/; revision=7788
2004-01-20 19:35:59 +00:00
Martin Fuchs
90db7f8c36 even more funny icon arrangements
svn path=/trunk/; revision=7787
2004-01-20 19:07:28 +00:00
Filip Navara
0d1556f869 Changes based on the patch by Logan_V8_TT.
- Formating changes (TABs/spaces)
- Don't set 'Output Line 2' bit while power-uping the mouse during initalization.
- Restore 'Line Control' register at the end of mouse detection.
- Wait only 150000 millisecons (instead of 500000) for mouse power down.
- Enable detection of mouse on COM2 by default.

svn path=/trunk/; revision=7786
2004-01-20 15:18:27 +00:00
Eric Kohl
526b9ea0bc Moved logon-related functions to a separate file.
Replaced WINBOOL by BOOL.

svn path=/trunk/; revision=7785
2004-01-20 01:40:19 +00:00
Steven Edwards
cc650c435b Get the sound driver compiling again......
No it still doesnt work.

svn path=/trunk/; revision=7783
2004-01-20 00:29:48 +00:00
Martin Fuchs
1d8c431643 icon alignment algorithms
svn path=/trunk/; revision=7782
2004-01-20 00:17:24 +00:00
Gé van Geldorp
f14c8d5e08 Don't display extension for shortcuts in shell views
svn path=/trunk/; revision=7778
2004-01-19 20:56:26 +00:00
Gé van Geldorp
77600961c2 Small icon handle should be NULL if unavailable
svn path=/trunk/; revision=7776
2004-01-19 20:19:50 +00:00
Gé van Geldorp
ac9931e8b5 Icon for console windows
svn path=/trunk/; revision=7774
2004-01-19 20:14:28 +00:00
Gé van Geldorp
2a9ae29ea6 Fix title and description in "Start"/"Run" dialog (Bug #164)
svn path=/trunk/; revision=7772
2004-01-19 20:03:36 +00:00
Eric Kohl
c671ada626 Do not disconnect a hive root key from its parent key. The object manager will do this when the root key object gets closed.
svn path=/trunk/; revision=7769
2004-01-19 16:18:33 +00:00
Filip Navara
6e45aaa48b Moved videoprt driver to a new location and implemented few functions.
svn path=/trunk/; revision=7768
2004-01-19 15:56:53 +00:00
Martin Fuchs
ebbc9105dd merged back Wine commits
svn path=/trunk/; revision=7767
2004-01-19 06:56:55 +00:00
Gunnar Dalsnes
848b80b405 KiAcquire/ReleaseSpinLock adaption
svn path=/trunk/; revision=7766
2004-01-19 00:44:37 +00:00
Gé van Geldorp
1d53ea429e Show icons for shortcuts in shell views
svn path=/trunk/; revision=7765
2004-01-18 23:00:16 +00:00
Gé van Geldorp
917d9dbf90 ICO_ExtractIconsW should process icons in large/small pairs
svn path=/trunk/; revision=7763
2004-01-18 22:58:19 +00:00
Gunnar Dalsnes
d69891bf93 KiAcquire/ReleaseSpinLock adaption
svn path=/trunk/; revision=7762
2004-01-18 22:58:10 +00:00
Gunnar Dalsnes
d6b70d802e KiAcquire/ReleaseSpinLock adaption
svn path=/trunk/; revision=7760
2004-01-18 22:42:50 +00:00
Gunnar Dalsnes
f3c9b196a6 added KiAcquire/ReleaseSpinLock
svn path=/trunk/; revision=7759
2004-01-18 22:41:53 +00:00
Hartmut Birr
68ac8c2fb9 - Remove '\.\' sequences from destination file name in CabinetExtractFile.
svn path=/trunk/; revision=7758
2004-01-18 22:37:53 +00:00
Gunnar Dalsnes
11a4e44d62 KiAcquire/ReleaseSpinLock adaption
svn path=/trunk/; revision=7757
2004-01-18 22:35:26 +00:00
Hartmut Birr
703eb5e8c9 - Remove trailing '\' and '\.' sequences from directory names in CreateDirectory.
svn path=/trunk/; revision=7756
2004-01-18 22:34:40 +00:00
Gunnar Dalsnes
6c37271fd5 InsertAscendingList adaption
KiAcquire/ReleaseSpinLock adaption

svn path=/trunk/; revision=7755
2004-01-18 22:32:47 +00:00
Hartmut Birr
01b8638f08 - Check for illegal dot sequences in file and path names.
svn path=/trunk/; revision=7754
2004-01-18 22:31:23 +00:00
Gunnar Dalsnes
e7ec8c60bf InsertAscendingList adaption
svn path=/trunk/; revision=7753
2004-01-18 22:30:39 +00:00
Gunnar Dalsnes
28618ae6f8 added InsertAscending/DecendingListFIFO
simplified InsertAscending/DescendingList

svn path=/trunk/; revision=7752
2004-01-18 22:28:48 +00:00
Emanuele Aliberti
bec36ebaf9 Little changes to make PSX server compile again.
svn path=/trunk/; revision=7751
2004-01-18 21:27:32 +00:00
Emanuele Aliberti
35a330ecbd More credits in the RC file for pedump and shutdown.
svn path=/trunk/; revision=7750
2004-01-18 20:32:08 +00:00
Emanuele Aliberti
3768865685 Missing CVS ignore file.
svn path=/trunk/; revision=7749
2004-01-18 20:22:42 +00:00
Filip Navara
aab2f9e966 Removed prototype for nonexisting function.
svn path=/trunk/; revision=7747
2004-01-18 19:19:45 +00:00
Gé van Geldorp
8676b1e8f7 Make ILGetSize a STDCALL function
svn path=/trunk/; revision=7746
2004-01-18 19:09:15 +00:00
Martin Fuchs
eee4144825 moved setings dialogs in separate file
svn path=/trunk/; revision=7743
2004-01-18 18:45:26 +00:00
Martin Fuchs
5ac9d99859 fix for Bug #159
svn path=/trunk/; revision=7742
2004-01-18 18:44:31 +00:00
Martin Fuchs
2a335ec879 draw button control with original border; focus handling in property sheet
svn path=/trunk/; revision=7741
2004-01-18 16:23:55 +00:00
Martin Fuchs
83fb0172c0 removed test bitamp statics
svn path=/trunk/; revision=7740
2004-01-18 14:58:54 +00:00
Martin Fuchs
c78c696293 desktop settings dialog sheet (for now only too look at it - no real functionality)
svn path=/trunk/; revision=7739
2004-01-18 13:59:43 +00:00
Casper Hornstrup
5a57e066ec 2004-01-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/winebuild/spec32.c (BuildDef32File): Don't support private flag
	when cross-compiling.

svn path=/trunk/; revision=7737
2004-01-18 13:42:57 +00:00
Filip Navara
bffadccb2c - Bug fixes.
- NtUserDestroyWindow should destroy owned popup windows (Fixes some problems with Explorer menus).
- Changed WinPosSetWindowPos to take coordinates relative to parent, because it is used as such everywhere.

svn path=/trunk/; revision=7734
2004-01-18 08:29:31 +00:00
Richard Campbell
faaee8fe61 temp fix for windres compatibility issues.
svn path=/trunk/; revision=7732
2004-01-18 04:45:59 +00:00
Steven Edwards
a504f4dba3 Make Help->About call ShellAbout
svn path=/trunk/; revision=7731
2004-01-18 03:28:08 +00:00
Martin Fuchs
83ea26e456 property sheet dialogs
svn path=/trunk/; revision=7730
2004-01-18 00:33:53 +00:00
Gé van Geldorp
71a41b519c Leave room for terminating nul byte, fixes bug #148
svn path=/trunk/; revision=7729
2004-01-17 23:04:28 +00:00
Martin Fuchs
2ac3a79689 debug message for unimplemented popup menus
svn path=/trunk/; revision=7727
2004-01-17 20:13:41 +00:00
Martin Fuchs
98e32f5ac0 eliminated misleading GCC warning
svn path=/trunk/; revision=7726
2004-01-17 17:29:04 +00:00
Martin Fuchs
ea7bc6c78a output warning message before launching more than one program at one time
svn path=/trunk/; revision=7725
2004-01-17 17:25:18 +00:00
Martin Fuchs
dc141d9e7c added missing PIDL parameter for SHELL_FindExecutable()
svn path=/trunk/; revision=7724
2004-01-17 17:23:16 +00:00
Art Yerkes
5405cd7d70 Cross commits from the release branch. Serial echo option + local keyboard
mouse on/off.

svn path=/trunk/; revision=7723
2004-01-17 17:13:13 +00:00
Martin Fuchs
83da931554 fixed called to Unicode SHELL_FindExecutable()
svn path=/trunk/; revision=7721
2004-01-17 16:53:19 +00:00
Martin Fuchs
5a76bbd8ac context menu for desktop bar
svn path=/trunk/; revision=7720
2004-01-17 16:41:20 +00:00
Martin Fuchs
00a738fdfd allow only shell links to single objects
svn path=/trunk/; revision=7719
2004-01-17 16:08:38 +00:00
Martin Fuchs
acba5dbeef move fucnion declaration into header file
svn path=/trunk/; revision=7718
2004-01-17 16:06:33 +00:00
Gé van Geldorp
bfd145cda4 Patch by Hartmut Birr.
Allow building with newer windres (2.14.90 20030612)

svn path=/trunk/; revision=7717
2004-01-17 15:27:21 +00:00
Filip Navara
698d0a3be5 Preparing for the win32k emulated mouse cursor support.
svn path=/trunk/; revision=7714
2004-01-17 15:21:09 +00:00
Filip Navara
6020629df1 Fix window repainting - Attempt #2
svn path=/trunk/; revision=7713
2004-01-17 15:18:25 +00:00
Martin Fuchs
ef40097fff rename _FS_ProcessDisplayFilename to SHELL_FS_ProcessDisplayFilename() -> Wine naming rule for internal functions
svn path=/trunk/; revision=7712
2004-01-17 11:10:18 +00:00
Hartmut Birr
31273508a7 Fixed RtlImageDirectoryEntryToData.
svn path=/trunk/; revision=7711
2004-01-17 10:30:53 +00:00
Art Yerkes
c2d0df8688 Print userland addresses where possible in bugchecks, etc.
svn path=/trunk/; revision=7709
2004-01-17 03:19:35 +00:00
Gé van Geldorp
fa2b0ba8e3 Swap arguments of LocalAlloc and only update Malloc32 block on successful
allocation. Fixes bug #154.

svn path=/trunk/; revision=7707
2004-01-17 02:21:42 +00:00
Gé van Geldorp
c60de92aba Fix drawing of window move/resize rectangle in VMware
svn path=/trunk/; revision=7705
2004-01-17 01:04:45 +00:00
Martin Fuchs
2e1c823c7e last fix for RecursiveCreateDirectory()
svn path=/trunk/; revision=7703
2004-01-17 00:57:51 +00:00
Martin Fuchs
b5fec56137 fixed UNICODE RecursiveCreateDirectory()
svn path=/trunk/; revision=7702
2004-01-17 00:42:57 +00:00
Martin Fuchs
f3077c25b9 fixed RecursiveCreateDirectory()
svn path=/trunk/; revision=7701
2004-01-17 00:36:46 +00:00
Martin Fuchs
020f7d429d merged back WineHQ commit
svn path=/trunk/; revision=7700
2004-01-16 23:39:01 +00:00
Gé van Geldorp
25dfcd5244 Reset viewport stuff on DC release
svn path=/trunk/; revision=7699
2004-01-16 23:29:10 +00:00
Martin Fuchs
d073f772d1 merge back WineHQ commit
svn path=/trunk/; revision=7697
2004-01-16 23:23:38 +00:00
Martin Fuchs
a7406cc7a7 corrected TIME_NOSECONDS handling
svn path=/trunk/; revision=7696
2004-01-16 23:19:16 +00:00
Martin Fuchs
448af8f18a added locale resources
svn path=/trunk/; revision=7695
2004-01-16 23:09:01 +00:00
Martin Fuchs
182cd0377f don't clear GetTimeFormat() flags when calling RosGetTimeFormat()
svn path=/trunk/; revision=7694
2004-01-16 23:08:38 +00:00
Martin Fuchs
1c99ac5f74 Don't specify any specific time format for the clock.
svn path=/trunk/; revision=7693
2004-01-16 22:53:12 +00:00
Eric Kohl
7a72b1d1a7 Add creation of administrator profile.
svn path=/trunk/; revision=7692
2004-01-16 21:33:23 +00:00
Martin Fuchs
4e0b597dfa added language resources for english, german and french
svn path=/trunk/; revision=7691
2004-01-16 21:08:32 +00:00
Thomas Bluemel
9ef2c888de show <JUNCTION> "type" in dir listing
svn path=/trunk/; revision=7690
2004-01-16 19:58:47 +00:00
Thomas Bluemel
06866a65df show <JUNCTION> "type" in dir listing
svn path=/trunk/; revision=7689
2004-01-16 19:57:13 +00:00
Gé van Geldorp
660a7812d3 Serialize access to display driver. Fixes serious display corruption
with the VGA driver: drawing function starts and sets up VGA registers,
mouse moves and pointer needs to be redrawn for which VGA registers
are changed, then drawing function continues with wrong registers

svn path=/trunk/; revision=7688
2004-01-16 19:32:00 +00:00
Gé van Geldorp
0fd869efa8 Don't use RECTL structure in ntoskrnl
svn path=/trunk/; revision=7686
2004-01-16 15:39:28 +00:00
Eric Kohl
c97ad8c5de Create user profile directory by copying the default user directory.
Prepare to copy the default user hive.

svn path=/trunk/; revision=7684
2004-01-16 15:31:53 +00:00
Filip Navara
4dbcbd1b9d Fixed window activation bug (GA_ROOTOWNER -> GA_ROOT).
svn path=/trunk/; revision=7683
2004-01-16 13:28:29 +00:00
Gé van Geldorp
b91ffe51dc Patch by Filip Navara.
Fix window activation flickering

svn path=/trunk/; revision=7682
2004-01-16 13:26:26 +00:00
Gé van Geldorp
ade9a80f9a Store area touched by mouse pointer as this may be larger than the cursor
size. Fixes bug #63.

svn path=/trunk/; revision=7679
2004-01-16 13:18:23 +00:00
Gé van Geldorp
3fb858b15e Adjust for cabinet/oledlg
svn path=/trunk/; revision=7677
2004-01-16 13:08:56 +00:00
Mark Tempel
9d16b51f6b Add winfile back into the build.
svn path=/trunk/; revision=7676
2004-01-16 05:17:31 +00:00
Mark Tempel
c26a81328e Update makefile to build winfile again.
svn path=/trunk/; revision=7675
2004-01-16 05:12:03 +00:00
Mark Tempel
9b74fe4b28 Add the net apps back into the default build.
svn path=/trunk/; revision=7674
2004-01-16 04:44:41 +00:00
Mark Tempel
d57d41f1f8 Update ping to build again.
Remove some errors.

svn path=/trunk/; revision=7673
2004-01-16 04:43:19 +00:00
Mark Tempel
f1ec3f9804 Update finger to build again.
svn path=/trunk/; revision=7672
2004-01-16 04:42:06 +00:00
Mark Tempel
d236f9c5f7 Update to build snmpapi.a
svn path=/trunk/; revision=7671
2004-01-16 04:35:07 +00:00
Mark Tempel
f118079b90 Update to add in some typedefs needed my winsock2.h
svn path=/trunk/; revision=7670
2004-01-16 03:41:13 +00:00
Mark Tempel
aab70138d5 Update to add in some typedefs needed my winsock2.h
svn path=/trunk/; revision=7669
2004-01-16 03:35:03 +00:00
Thomas Bluemel
0cf7978c58 Draw window icons into the title bar.
However SendMessageTimeout() needs to be implemented to get it working properly (and also DrawIconEx() has to be extended to use StretchBlt() in order to get drawing big icons poperly.

svn path=/trunk/; revision=7668
2004-01-15 22:33:30 +00:00
Gé van Geldorp
304b25bbb6 Allow building with released 2.4 w32api and current pre-2.5 CVS w32api
svn path=/trunk/; revision=7667
2004-01-15 22:21:36 +00:00
Martin Fuchs
b125070d51 remove unused variable 'commandlen'
svn path=/trunk/; revision=7666
2004-01-15 22:20:57 +00:00
Martin Fuchs
17198161b0 use return value of GetLocaleInfoW() in GetTimeFormatW()
svn path=/trunk/; revision=7665
2004-01-15 22:10:29 +00:00
Martin Fuchs
41fd456b47 - merged in WineHQ's shell32 commit about "Get rid of W->A calls for shlexec" and FindExecutableW()
- fixed some errors with wrong buffer lengths for wide character strings when calling RegQueryValueW()

svn path=/trunk/; revision=7664
2004-01-15 22:09:33 +00:00
Gé van Geldorp
c15141cd94 Patch by Filip Navara.
- Unlock DC in error case.

svn path=/trunk/; revision=7663
2004-01-15 21:03:05 +00:00
Gé van Geldorp
a51baa3efc Patch by Filip Navara.
- Fixed foolish comparing of window handle and pointer.
- Fixed dereferencing of not referenced window in WinPosSetWindowPos.

svn path=/trunk/; revision=7662
2004-01-15 21:02:39 +00:00
Gé van Geldorp
78bad70f56 Patch by Filip Navara
- Removed nonsense code for activating invisible windows in NtUserCreateWindowEx.

svn path=/trunk/; revision=7661
2004-01-15 21:02:09 +00:00
Gé van Geldorp
c2b74fc86f Patch by Filip Navara.
- Don't ask twice for window from the same specified point.

svn path=/trunk/; revision=7660
2004-01-15 21:01:40 +00:00
Gé van Geldorp
1ccba09119 Patch by Filip Navara.
- Don't try to move window on the top if it is already.
- Removed small block of commented-out code.
- Activated the message queue locking which caused dead-lock earlier.

svn path=/trunk/; revision=7659
2004-01-15 21:00:49 +00:00
Gé van Geldorp
aded6947aa Patch by Filip Navara.
- Fixed IsChild.

svn path=/trunk/; revision=7658
2004-01-15 20:59:57 +00:00
Gé van Geldorp
6afe5b36ec Patch by Filip Navara.
- Work on correctly activating the MDI child windows.

svn path=/trunk/; revision=7657
2004-01-15 20:59:35 +00:00
Gé van Geldorp
077f983899 Fix VGA display corruption caused by mouse pointer
svn path=/trunk/; revision=7649
2004-01-15 16:29:10 +00:00
Eric Kohl
9595c8617b Implemented most of the user profile creation.
svn path=/trunk/; revision=7646
2004-01-15 14:59:06 +00:00
Eric Kohl
4a42875891 Resorted dlls and made libwine a static library.
svn path=/trunk/; revision=7645
2004-01-15 10:32:19 +00:00
Eric Kohl
9dfb5ee1cc Fixed a potential cause of registry corruption in NtSetValueKey():
- Mark all modified cells dirty.
- Allocate value cell after value list cell has been created or resized.

svn path=/trunk/; revision=7643
2004-01-15 09:26:56 +00:00
Martin Fuchs
c6f4c292e9 changed comment to a better description
svn path=/trunk/; revision=7642
2004-01-15 08:29:15 +00:00
Mark Tempel
0acbe2acf6 Really fix the make file this time (and add the maze demo back in :) )
svn path=/trunk/; revision=7641
2004-01-15 06:36:44 +00:00
Mark Tempel
4729e23087 Remove finger from the list of apps to build. This allows the apps list to make untill the header issues involved with network applications can be worked out.
svn path=/trunk/; revision=7640
2004-01-15 06:32:25 +00:00
Mark Tempel
4f49fbcdbc Update to remove a bit of MFC style preprocessor abuse to get this application to compile.
svn path=/trunk/; revision=7639
2004-01-15 05:27:18 +00:00
Gé van Geldorp
f3691049d8 Bump version number on HEAD
svn path=/trunk/; revision=7635
2004-01-14 23:40:14 +00:00
Richard Campbell
782a2efe59 changed explorer slightly
svn path=/trunk/; revision=7633
2004-01-14 23:28:33 +00:00
Gé van Geldorp
490c55529b Set explorer as default shell
svn path=/trunk/; revision=7632
2004-01-14 23:21:31 +00:00
Gé van Geldorp
0a8c4b149b Add creation of command prompt shortcut on desktop
svn path=/trunk/; revision=7631
2004-01-14 23:17:50 +00:00
Gé van Geldorp
89cfa2f16d Fix crash when clicking outside any button
svn path=/trunk/; revision=7630
2004-01-14 23:16:59 +00:00
Gé van Geldorp
95adb6598c Return nTrackPos if requested
svn path=/trunk/; revision=7629
2004-01-14 22:18:35 +00:00
Gé van Geldorp
1ec39bbe83 Rename SEVERITY_* constants to SYSSETUP_SEVERITY_* to avoid naming conflict
svn path=/trunk/; revision=7628
2004-01-14 22:15:09 +00:00
Richard Campbell
73b055af44 added small FIXME note.
svn path=/trunk/; revision=7627
2004-01-14 21:41:24 +00:00
Richard Campbell
da051e4b51 Implement GetLocaleInfoW
svn path=/trunk/; revision=7626
2004-01-14 21:40:12 +00:00
Gé van Geldorp
fa6209cc0f Scrollbar implementation
svn path=/trunk/; revision=7625
2004-01-14 21:28:25 +00:00
Richard Campbell
eb5f406f20 use GetTimeFormat for explorer, since it displays time properly for the most part.
svn path=/trunk/; revision=7624
2004-01-14 20:21:16 +00:00
Filip Navara
9f007e7037 Size optimalizations.
svn path=/trunk/; revision=7623
2004-01-14 16:38:15 +00:00
Richard Campbell
f43df06422 implemented GetTimeFormat, loosely based off from wine, still broken though. This might not be 100% correct, but it compiles and doesn't crash, i'll go over it and implement the functions it depends on tomorrow.
svn path=/trunk/; revision=7622
2004-01-14 07:22:17 +00:00
Steven Edwards
f05da1af6e Added taskmgr, oledlg and cabinet in time for 0.2......
svn path=/trunk/; revision=7621
2004-01-14 02:14:46 +00:00
Steven Edwards
f06451968c Updated the WINE porting Readme for 0.2 Release
svn path=/trunk/; revision=7620
2004-01-14 02:08:32 +00:00
Steven Edwards
fc98d15686 Ported oledlg.dll from WINE
svn path=/trunk/; revision=7619
2004-01-14 01:55:00 +00:00
Steven Edwards
5ce6d8afc9 Ported cabinet.dll ported from WINE.
svn path=/trunk/; revision=7618
2004-01-14 01:47:46 +00:00
Steven Edwards
ee78d6302f Added fci/fdi.h as w32api would not accept Cabinet support headers.
svn path=/trunk/; revision=7617
2004-01-14 01:47:01 +00:00
Martin Fuchs
a40cb5023f automatically adjusted size of notification area and quicklaunch bar in desktop bar
svn path=/trunk/; revision=7616
2004-01-13 23:35:47 +00:00
Gé van Geldorp
61b6e0fe14 Install more DLLs
svn path=/trunk/; revision=7615
2004-01-13 22:04:31 +00:00
Filip Navara
109bff5226 Better palette generating algorithm.
svn path=/trunk/; revision=7614
2004-01-13 19:45:31 +00:00
Hartmut Birr
1057df8763 - Fixed the month of the date on the image.
- Used the last write time for the time value on the image.

svn path=/trunk/; revision=7612
2004-01-13 19:25:03 +00:00
Hartmut Birr
a07bc80d2e - Fixed the handling of command line parameters between quotes.
svn path=/trunk/; revision=7611
2004-01-13 18:16:05 +00:00
Steven Edwards
7f8041c8b9 Fix building with DBG = 1
svn path=/trunk/; revision=7610
2004-01-13 17:24:41 +00:00
Filip Navara
42c7da6d23 Removed file that accidently got into CVS.
svn path=/trunk/; revision=7609
2004-01-13 17:22:49 +00:00
Filip Navara
64f4bcec4e Fixed.
svn path=/trunk/; revision=7608
2004-01-13 17:19:28 +00:00
Filip Navara
bc0b751b2b Initial version of generic framebuffer display driver.
svn path=/trunk/; revision=7607
2004-01-13 17:18:33 +00:00
Filip Navara
e1815888c5 Scrollbar redrawing fix.
svn path=/trunk/; revision=7606
2004-01-13 17:14:38 +00:00
Filip Navara
6fec87f961 Removed some nonsense code that has no effect.
svn path=/trunk/; revision=7605
2004-01-13 17:13:48 +00:00
Eric Kohl
208e3769eb Add user profile directory functions.
Create user profile directories from registry.

svn path=/trunk/; revision=7604
2004-01-13 12:34:09 +00:00
Eric Kohl
992dc83fd2 Moved a lot of registry settings around.
svn path=/trunk/; revision=7603
2004-01-13 12:30:54 +00:00
Eric Kohl
46059ee5d0 Cleaned up NtSetValueKey() and NtQueryValueKey().
Made CmiScanKeyForValue() more robust.

svn path=/trunk/; revision=7602
2004-01-13 12:29:27 +00:00
Richard Campbell
bc5e5cf2fd a small reversion from other mod that wasn't committed.
svn path=/trunk/; revision=7601
2004-01-13 05:14:19 +00:00
Richard Campbell
22d27ef5ec - Modified Tray Notify area and quicklaunch size to be smaller (to accomodate the 640x480 of the standard vga driver in ROS). NOTE that this really needs to autosize based on contents.
- Format the time for your specific locale.  This allows 12 hour clock under windows, note that the function used probably isn't implemented in ROS. *not committed, not committing until after 0.2 is released*

svn path=/trunk/; revision=7600
2004-01-13 05:09:41 +00:00
Art Yerkes
a9582ff53d Proper search for lines and files as with functions.
svn path=/trunk/; revision=7599
2004-01-13 03:43:01 +00:00
Art Yerkes
2b806f43c8 Re-enabled stabs reading in the kernel debugger.
In ke/main.c, stabs for boot time drivers that were loaded with the kernel
are linked and enabled before calling KdbInit, so that the user has them
available.

In ldr, drivers are now loaded with their symbols if available.  This applies
to userland dlls, too.

I added DEL as well as backspace to the keys that cause the cursor to back
up in kdb.

The 'addr' command in kdb now prints a correct address (with symbol
info if available).

The kernel stack trace printer in exp.c now uses kdb to print addresses if
it was enabled.

svn path=/trunk/; revision=7598
2004-01-13 03:23:11 +00:00
Steven Edwards
e1399c5621 Added notepad ported from WINE. Not built by default but its there
if you want to edit your code under ROS without a reboot.

We should move this to where ever the apps realy belong......
subsys/system? apps/utils?.......

svn path=/trunk/; revision=7597
2004-01-13 00:01:52 +00:00
Steven Edwards
c24c294c02 Added -D__REACTOS__
svn path=/trunk/; revision=7596
2004-01-12 23:48:37 +00:00
Steven Edwards
5dbcaef65b Added comdlg32.dll and imm32.dll to the build.
svn path=/trunk/; revision=7595
2004-01-12 23:47:51 +00:00
Steven Edwards
d429625fea Fixed comdlg32.dll under ReactOS
Start -> Run -> Browse now works in explorer even if its slow.

svn path=/trunk/; revision=7594
2004-01-12 23:46:20 +00:00
Steven Edwards
aa5d25239a Some minor addons to work around missing things in w32api.
svn path=/trunk/; revision=7593
2004-01-12 23:44:24 +00:00
Steven Edwards
4e26cd81eb Add a semi-working stub of GetDefaultPrinter[A/W] ported from WINE.
This isnt right but its needed to get comdlg32.dll working.

svn path=/trunk/; revision=7592
2004-01-12 23:42:23 +00:00
Martin Fuchs
27e99ffec4 use system image list instead of discrete icons as far as possible
svn path=/trunk/; revision=7591
2004-01-12 23:03:38 +00:00
Steven Edwards
f4ee51ec85 Build fixes for w32api.
svn path=/trunk/; revision=7590
2004-01-12 22:45:53 +00:00
Gé van Geldorp
08277c1b6a Rewrite loop so it can't be optimized away. Patch by Mike Nordell
svn path=/trunk/; revision=7589
2004-01-12 22:36:04 +00:00
Gé van Geldorp
a07586dc9d Try harder to find another window to activate, fixes bug #127
svn path=/trunk/; revision=7588
2004-01-12 22:26:00 +00:00
Filip Navara
02fb8db0d0 Temporary reverted my last painting change before I'll do it the right way.
svn path=/trunk/; revision=7587
2004-01-12 21:24:20 +00:00
Filip Navara
54beec6da4 Minor fix.
svn path=/trunk/; revision=7586
2004-01-12 20:52:37 +00:00
Gé van Geldorp
b3828d8c73 Remove debugging cruft
svn path=/trunk/; revision=7585
2004-01-12 20:51:05 +00:00
Gé van Geldorp
e5d2f4623c Handle mouse activation of windows by setting it (or its ancestor) as
foreground window instead of only focus window

svn path=/trunk/; revision=7584
2004-01-12 20:48:48 +00:00
Martin Fuchs
63179798b9 support for pos1/end in keyboard navigation
svn path=/trunk/; revision=7583
2004-01-12 20:46:01 +00:00
Gé van Geldorp
117693c338 WA_* is stored in wParam, not lParam
svn path=/trunk/; revision=7582
2004-01-12 20:38:59 +00:00
Thomas Bluemel
fb7c647040 fixed GetVolumeInformationW(), GetDiskFreeSpaceW() and GetDiskFreeSpaceExW()
svn path=/trunk/; revision=7581
2004-01-12 20:02:42 +00:00
Eric Kohl
1631cca917 Reverted most of the changes from 2004-01-08.
Fixed buggy key enumeration for volatile and 'foreign' keys.

svn path=/trunk/; revision=7580
2004-01-12 12:52:27 +00:00
Gé van Geldorp
314759a953 Display both cmd.exe version and OS version when running under ReactOS
svn path=/trunk/; revision=7579
2004-01-12 11:06:27 +00:00
Gé van Geldorp
8f153a5029 Include build no in szCSDVersion
svn path=/trunk/; revision=7578
2004-01-12 11:05:38 +00:00
Gé van Geldorp
ddf0217684 Change build number to current YYYYMMDD, include state (CVS, RC, FINAL)
in version

svn path=/trunk/; revision=7577
2004-01-12 00:22:35 +00:00
Filip Navara
4a55551375 Fixes on paining code to get PuTTY and RegEdit working correctly.
svn path=/trunk/; revision=7576
2004-01-12 00:07:34 +00:00
Martin Fuchs
2a72140cb1 keyboard navigation in start menu
svn path=/trunk/; revision=7575
2004-01-11 22:20:59 +00:00
Filip Navara
f784ea6e51 Workaround for W32API bug.
svn path=/trunk/; revision=7574
2004-01-11 21:42:54 +00:00
Filip Navara
73b404c2ea - Removed some obsolete headers.
- Converted some of the (mostly network) stuff to compile with W32API.

svn path=/trunk/; revision=7573
2004-01-11 20:46:06 +00:00
Gé van Geldorp
881fd1b420 Do a dummy BitBlt at the end of a MaskBitBlt to inform the driver that
a region was updated. Fixes bug #125

svn path=/trunk/; revision=7572
2004-01-11 19:52:27 +00:00
Gé van Geldorp
e98f4ce2f0 Auto-detect whether to create a GUI or a TUI console
svn path=/trunk/; revision=7571
2004-01-11 17:31:16 +00:00
Emanuele Aliberti
0307fd628b Little program to report how NT stati are converted into a Win32 error code by NTDLL. Running it under real NT 4.0/5.x and under ROS will show the differences.
svn path=/trunk/; revision=7570
2004-01-11 17:06:21 +00:00
Martin Fuchs
fecf52f44e removed unnecessary commented out lines
svn path=/trunk/; revision=7569
2004-01-11 12:34:34 +00:00
Martin Fuchs
ad4a39e88a removed C++ comments
svn path=/trunk/; revision=7568
2004-01-11 12:24:56 +00:00
Martin Fuchs
3d13a75874 RecursiveCreateDirectory()
svn path=/trunk/; revision=7567
2004-01-11 11:59:22 +00:00
Martin Fuchs
bd31a6dcde adjustments for building in Wine; eliminated compiler warnings
svn path=/trunk/; revision=7566
2004-01-11 11:40:50 +00:00
Hartmut Birr
22c683b088 - Fixed the binary search in _dosmaperr.
svn path=/trunk/; revision=7565
2004-01-11 10:58:45 +00:00
Martin Fuchs
90c35972de re-inserted execfuncparameter for SHELL_Execute16()
svn path=/trunk/; revision=7564
2004-01-11 09:39:00 +00:00
Gé van Geldorp
98f8c7a3cc Print args of DPRINT and DPRINT1 too
svn path=/trunk/; revision=7563
2004-01-11 01:43:18 +00:00
Gé van Geldorp
5eef2adaff Silence debug message when DeleteObject()ing a NULL object
svn path=/trunk/; revision=7562
2004-01-11 01:42:08 +00:00
Hartmut Birr
bc6f5312c7 - Fixed a wrong parameter in a call to LdrpLoadUserModuleSymbols.
svn path=/trunk/; revision=7561
2004-01-11 00:25:17 +00:00
Martin Fuchs
adfc55b3cf fixes for many ShellExecute() problems
svn path=/trunk/; revision=7560
2004-01-10 23:01:48 +00:00
Gé van Geldorp
ad5496bb9b Use IntLPtoDP instead of NtGdiLPtoDP since kernel addresses are passed
svn path=/trunk/; revision=7559
2004-01-10 21:59:05 +00:00
Filip Navara
449966544c Minor cleanup.
svn path=/trunk/; revision=7558
2004-01-10 21:46:25 +00:00
Art Yerkes
225fb101e7 Added javascript initialization.
svn path=/trunk/; revision=7557
2004-01-10 21:14:39 +00:00
Art Yerkes
38758dfce7 Added kjs system to the kernel.
svn path=/trunk/; revision=7556
2004-01-10 21:06:38 +00:00
Art Yerkes
a047e3ecf5 Added usage document.
svn path=/trunk/; revision=7555
2004-01-10 21:04:49 +00:00
Art Yerkes
f48739f395 Added kjs -- The kernel javascript system.
This system allows the kernel debugger to be scripted with the new js
command.

Functions for reading and writing memory, as well as reading the module
list, the registry, and the trap frame registers are provided.  A simple
mechanism is provided for reading javascript initialization from the
registry so that the user may provide custom functions for use during
debugging sessions.

I have already used it to find a bug in kdb itself; as well as to list
sections in modules and perform various other tedious tasks often
required while debugging linked lists, etc.

This is a static library that will be built when KDBG=1, and linked
with ntoskrnl.

svn path=/trunk/; revision=7554
2004-01-10 20:38:18 +00:00
Martin Fuchs
0d8f07c6a3 ShellExecute...(): expand environment strings
svn path=/trunk/; revision=7553
2004-01-10 17:32:32 +00:00
Martin Fuchs
3a8b4c506b fix for incorrect start directories
svn path=/trunk/; revision=7552
2004-01-10 17:09:43 +00:00
Martin Fuchs
877d88090f prepare hidden startmenu to enhance responsivness
svn path=/trunk/; revision=7551
2004-01-10 17:08:31 +00:00
Filip Navara
e7e924134c Modified the location of VGA driver.
svn path=/trunk/; revision=7550
2004-01-10 15:49:55 +00:00
Filip Navara
902f9f5ba3 Removed the VGA driver from the old location.
svn path=/trunk/; revision=7549
2004-01-10 14:42:20 +00:00
Filip Navara
095ab8c8dd Moved video drivers to a separate directory and added initial version of VBE miniport driver.
svn path=/trunk/; revision=7548
2004-01-10 14:39:21 +00:00
Hartmut Birr
cba93d012e - Fixed the freeing of boot driver memory if KDBG is defined.
svn path=/trunk/; revision=7547
2004-01-10 14:24:30 +00:00
Hartmut Birr
deb18d2120 - Check first for string length and second for the string end in string/stringw.
svn path=/trunk/; revision=7546
2004-01-10 14:22:14 +00:00
Gé van Geldorp
7da5a1aca6 Pass inheritable attribute on to kernel
svn path=/trunk/; revision=7545
2004-01-10 13:54:52 +00:00
Martin Fuchs
6b88f5285f merged WineHQ changes
svn path=/trunk/; revision=7544
2004-01-10 10:35:52 +00:00
Art Yerkes
091c63fe23 These former stubs are now defined in fillshap.c
ExtFloodFill
FloodFill

svn path=/trunk/; revision=7543
2004-01-10 02:57:08 +00:00
Steven Edwards
c7fc094e9d Removed taskmgr.
svn path=/trunk/; revision=7542
2004-01-10 02:15:50 +00:00
Steven Edwards
04ee7024f3 Moved taskmgr from rosapps to reactos module for 0.2 release.
svn path=/trunk/; revision=7541
2004-01-10 02:14:13 +00:00
Richard Campbell
8d2d328ced Moved (Ext)FloodFill to fillshap.c and have it call NtGdi(Ext)FloodFill
svn path=/trunk/; revision=7540
2004-01-10 02:10:27 +00:00
Richard Campbell
dc9be66534 FloodFill now calls ExtFloodFill with FLOODFILLBORDER, though this is rather pointless as ExtFloodFill isn't implemented.
svn path=/trunk/; revision=7539
2004-01-10 01:50:49 +00:00
Steven Edwards
919d5a7811 Added -D__REACTOS__
svn path=/trunk/; revision=7538
2004-01-10 00:39:52 +00:00
Steven Edwards
7a53ba6050 Removed the last of the C++ style comments. Adjusted the coding style a bit.
svn path=/trunk/; revision=7537
2004-01-09 23:00:43 +00:00
Gé van Geldorp
2c6c5f8a32 Silence debug message
svn path=/trunk/; revision=7536
2004-01-09 22:52:30 +00:00
Steven Edwards
17a2022200 Convert the last of Task Manager from C++ to C.
Patch by Eric Pouech.

svn path=/trunk/; revision=7535
2004-01-09 22:28:32 +00:00
Gé van Geldorp
3ca5b12bca Add needed libs
svn path=/trunk/; revision=7534
2004-01-09 21:54:24 +00:00
Gé van Geldorp
c2ae3f1124 Never try to stuff more into the Ioctl OutputBuffer than will fit
svn path=/trunk/; revision=7533
2004-01-09 20:22:38 +00:00
Gé van Geldorp
42367670aa IOCTL_DISK_SET_DRIVE_LAYOUT doesn't return any info so leave Information at 0
svn path=/trunk/; revision=7532
2004-01-09 20:21:31 +00:00
Eric Kohl
ed1971f7c3 Add userenv.dll
svn path=/trunk/; revision=7531
2004-01-09 20:06:47 +00:00
Eric Kohl
14eeda1399 Initialize profiles.
svn path=/trunk/; revision=7530
2004-01-09 20:05:04 +00:00
Eric Kohl
0a3b04610c Add userenv.dll
svn path=/trunk/; revision=7529
2004-01-09 19:55:29 +00:00
Eric Kohl
a2e92f560f Create profile directories.
svn path=/trunk/; revision=7528
2004-01-09 19:52:01 +00:00
Eric Kohl
27044f2ad0 Store hive root key name.
Patch partially by Filip Navara.

svn path=/trunk/; revision=7527
2004-01-09 19:44:45 +00:00
Eric Kohl
cff5149eca Do not dereference key objects if they are used to link hives.
svn path=/trunk/; revision=7526
2004-01-09 19:42:40 +00:00
Steven Edwards
8450d1eb80 Changed /NOBOOTSCREEN to /NOGUIBOOT to be
command-line compatible with 2k and XP.

svn path=/trunk/; revision=7525
2004-01-09 17:29:27 +00:00
Steven Edwards
508aa36d5f Changed /NOBOOTSCREEN to /NOGUIBOOT to be
command-line compatible with 2k and XP.

svn path=/trunk/; revision=7524
2004-01-09 17:16:26 +00:00
Aleksey Bragin
586bc7a1fb Johannes Olofsson's swedish keyboard dll (kbdse.dll)
svn path=/trunk/; revision=7523
2004-01-09 13:18:37 +00:00
Martin Fuchs
b580695359 some more ShellExecuteEx() refactoring
svn path=/trunk/; revision=7522
2004-01-09 09:40:59 +00:00
Steven Edwards
e26802329f Added dlgs.h for port of comdlg32.dll
svn path=/trunk/; revision=7521
2004-01-09 02:00:55 +00:00
Steven Edwards
cdb174eccc Ported comdlg32.dll from Wine. There are still a few minor bugs with it.
svn path=/trunk/; revision=7520
2004-01-09 01:58:22 +00:00
Steven Edwards
3c18dfae6f Code cleanup for the Winelib port by Eric Pouech.
svn path=/trunk/; revision=7519
2004-01-09 01:45:06 +00:00
Martin Fuchs
25cfe47ab8 some refactoring for ShellExecuteEx()
svn path=/trunk/; revision=7518
2004-01-09 00:09:29 +00:00
Filip Navara
512aeb1b33 Don't use uninitialized variable in CmiAddKeyToHashTable. Patch by Mike Nordell.
svn path=/trunk/; revision=7517
2004-01-08 22:39:51 +00:00
Filip Navara
9384f583e0 Fix for bug #138.
svn path=/trunk/; revision=7516
2004-01-08 20:59:42 +00:00
Gé van Geldorp
8f41100a91 Re-enable assert
svn path=/trunk/; revision=7515
2004-01-08 20:39:29 +00:00
Gé van Geldorp
13713116d5 MIM_MENUDATA is now defined in w32api CVS HEAD
svn path=/trunk/; revision=7514
2004-01-08 20:31:11 +00:00
Gé van Geldorp
6e186d661c Fix compile-time error when compiling with DBG
svn path=/trunk/; revision=7513
2004-01-08 20:23:20 +00:00
Jason Filby
acf679a8bc Save eax in interrupt_handler2d(). Patch by Mike Nordell.
svn path=/trunk/; revision=7512
2004-01-08 18:54:12 +00:00
Jason Filby
2b0c6570ca Add a _commit() to fflush() functions. As advised by Mike Nordell.
svn path=/trunk/; revision=7511
2004-01-08 18:42:44 +00:00
Eric Kohl
0dd0b373bc Use a list to store linked hives.
Enable enumeration of linked hive root keys.
Patch partially written by Filip Navara.

svn path=/trunk/; revision=7510
2004-01-08 15:02:45 +00:00
Eric Kohl
f35801a5a9 Store hive root key name.
Patch partially by Filip Navara.

svn path=/trunk/; revision=7509
2004-01-08 14:57:17 +00:00
Eric Kohl
b576ae3681 Fixed exports
svn path=/trunk/; revision=7508
2004-01-08 14:55:12 +00:00
Martin Fuchs
22922dec07 SHELL_SHGetPathFromIDList()
svn path=/trunk/; revision=7507
2004-01-07 23:34:08 +00:00
Martin Fuchs
01c51c2aab preciser error codes for some shell functions
svn path=/trunk/; revision=7506
2004-01-07 21:48:29 +00:00
Martin Fuchs
18f935cbb8 create quicklaunch dir it it does not already exist
svn path=/trunk/; revision=7505
2004-01-07 21:22:52 +00:00
Emanuele Aliberti
f6f1650b2b Minor changes for NT compatibility.
svn path=/trunk/; revision=7504
2004-01-07 21:13:22 +00:00
Filip Navara
eda6d2e794 Move to a new line in EngDebugPrint.
svn path=/trunk/; revision=7503
2004-01-07 19:24:37 +00:00
Steven Edwards
09a23ffea3 Compleated the update of the license headers and converted most
of the rest of the C++ style comments to C.

svn path=/trunk/; revision=7502
2004-01-07 18:57:22 +00:00
Emanuele Aliberti
f45476a7fb Copyright years: 1998-2004.
svn path=/trunk/; revision=7501
2004-01-07 11:14:11 +00:00
Hartmut Birr
f38b2b2f0a - Added 'image file execution options' for loadlib.exe to print some infos while a dll is loading.
svn path=/trunk/; revision=7500
2004-01-07 10:18:21 +00:00
Hartmut Birr
c7d94ffc7c - Fixed the hex conversion in RtlUnicodeStringToInteger.
svn path=/trunk/; revision=7499
2004-01-07 10:11:03 +00:00
Hartmut Birr
446ec6d27b - Implemented fast loading of bounded images.
- Implemented handling of tls sections.
- Fixed referencing of loaded dlls.

svn path=/trunk/; revision=7498
2004-01-07 10:09:03 +00:00
Martin Fuchs
d3fbd8e582 declared SHCoCreateInstance()
svn path=/trunk/; revision=7497
2004-01-07 08:48:02 +00:00
Martin Fuchs
0e1aea5234 merge in WineHQ changes
svn path=/trunk/; revision=7496
2004-01-07 07:43:19 +00:00
Martin Fuchs
c7b79d1742 hopefully the last fix for _SHGetPathFromIDListA/W() to be compatible with MS Windows and make control panel icons reappear
svn path=/trunk/; revision=7495
2004-01-06 22:40:53 +00:00
Martin Fuchs
4f28875a40 take over Alexandre's better solution for LPSHELLEXECUTEINFOA
svn path=/trunk/; revision=7494
2004-01-06 22:15:15 +00:00
Martin Fuchs
df4c7c8464 implemented IShellExecuteHook for control panel
svn path=/trunk/; revision=7493
2004-01-06 21:33:12 +00:00
Martin Fuchs
35e2c06791 implemented IShellExecuteHook for control panel
svn path=/trunk/; revision=7492
2004-01-06 21:33:12 +00:00
Martin Fuchs
95d7074a7f merged WineHQ correction for SHCoCreateInstance()
svn path=/trunk/; revision=7491
2004-01-06 21:31:27 +00:00
Martin Fuchs
6cd1349c6a merged WinHQ Makefile optimization
svn path=/trunk/; revision=7490
2004-01-06 21:30:29 +00:00
Martin Fuchs
38883fca0b some small improvements
svn path=/trunk/; revision=7489
2004-01-06 21:27:28 +00:00
Martin Fuchs
769315c915 define interface IShellExecuteHook
svn path=/trunk/; revision=7488
2004-01-06 17:21:34 +00:00
Martin Fuchs
41e10d4931 use _vsnprintf() instead of vsnprintf()
svn path=/trunk/; revision=7487
2004-01-06 17:19:55 +00:00
Martin Fuchs
903c2007e0 include <wine/port.h> header file
svn path=/trunk/; revision=7486
2004-01-06 17:13:24 +00:00
Martin Fuchs
163af77b0b implemented wine_dbg_sprintf()
svn path=/trunk/; revision=7485
2004-01-06 16:44:51 +00:00
Martin Fuchs
a67fb59c6e declared wine_dbg_sprintf()
svn path=/trunk/; revision=7484
2004-01-06 16:38:40 +00:00
Eric Kohl
d4973a4ea4 Moved some Nt/Zw functions and types.
svn path=/trunk/; revision=7483
2004-01-06 16:11:57 +00:00
Martin Fuchs
409b6b7682 call QueryInterface for Desktop in SHBindToParent()
svn path=/trunk/; revision=7482
2004-01-06 15:53:06 +00:00
Martin Fuchs
7cf14adb77 FIXME for CreateProcess(): use CurDir to search for the executable file in the new working directory in GetFileName()
svn path=/trunk/; revision=7481
2004-01-06 13:47:01 +00:00
Martin Fuchs
db725ea7e2 correct implementation of SHGetRealIDL()
svn path=/trunk/; revision=7480
2004-01-06 13:32:57 +00:00
Thomas Bluemel
0c5f9ff854 fixed compiling problems
svn path=/trunk/; revision=7479
2004-01-06 12:45:46 +00:00
Martin Fuchs
fff71811fe fixed string length in RenderFILENAMEW()
svn path=/trunk/; revision=7478
2004-01-06 12:34:17 +00:00
Martin Fuchs
a113fd463b FIXME comment for SHGetSetSettings()
svn path=/trunk/; revision=7477
2004-01-06 11:46:32 +00:00
Martin Fuchs
246790dff7 renamed PathYetAnotherMakeUniqueNameA() to PathYetAnotherMakeUniqueName()
svn path=/trunk/; revision=7476
2004-01-06 11:46:12 +00:00
Martin Fuchs
b9107ed69d implemented SHGetRealIDL()
svn path=/trunk/; revision=7475
2004-01-06 11:45:37 +00:00
Martin Fuchs
18045c4c66 added FIXME comments for IResolveShellLink
svn path=/trunk/; revision=7474
2004-01-06 11:17:38 +00:00
Martin Fuchs
80f7dc3e34 fixed buffer size management in _ShgetPathFromIDListA()
svn path=/trunk/; revision=7473
2004-01-06 11:11:14 +00:00
Martin Fuchs
4562169f04 added some FIXME comments to ShellExecuteExA32()
svn path=/trunk/; revision=7472
2004-01-06 11:10:23 +00:00
Martin Fuchs
06983e9ad1 corrected return type of SHFileOperation()
svn path=/trunk/; revision=7471
2004-01-06 11:09:46 +00:00
Martin Fuchs
e6d3a05dff corrected types and function name of PathYetAnotherMakeUniqueName()
svn path=/trunk/; revision=7470
2004-01-06 11:08:08 +00:00
Art Yerkes
5662831f38 Fixes for bugs previously posted in bugzilla.
svn path=/trunk/; revision=7469
2004-01-06 03:44:38 +00:00
Vizzini
e2bc674743 added a cast to silence a compiler warning
svn path=/trunk/; revision=7468
2004-01-05 20:38:48 +00:00
Vizzini
282696e4ee cross-compile fixes
svn path=/trunk/; revision=7467
2004-01-05 20:01:17 +00:00
Vizzini
7bb4859c69 cross-compile fixes for winebuild
svn path=/trunk/; revision=7466
2004-01-05 19:49:59 +00:00
Martin Fuchs
48113b3c64 SHELL32_GetItemAttributes(): implemented SFGAO_LINK
svn path=/trunk/; revision=7465
2004-01-05 19:30:59 +00:00
Martin Fuchs
2b81d7c7cc dependency scanning
svn path=/trunk/; revision=7464
2004-01-05 18:53:08 +00:00
Filip Navara
5463ff80c7 Cross-compilation fixes.
svn path=/trunk/; revision=7463
2004-01-05 18:42:56 +00:00
Filip Navara
2556727beb Remove winver.h and fix the errors.
svn path=/trunk/; revision=7462
2004-01-05 18:12:18 +00:00
Thomas Bluemel
94ecbd89db fixed div/0 bug
svn path=/trunk/; revision=7461
2004-01-05 15:43:55 +00:00
Thomas Bluemel
583de66b3e tamlin's work on compiling the kernel with another compiler than GCC. Patch by Mike Nordell.
svn path=/trunk/; revision=7460
2004-01-05 14:28:21 +00:00
Thomas Bluemel
16da2140a1 struct packing compiler independence. Patch by Mike Nordell.
svn path=/trunk/; revision=7459
2004-01-05 13:50:23 +00:00
Thomas Bluemel
1354f5b5a9 Correct compiler-agnostic stdcall function pointers. Patch by Mike Nordell.
svn path=/trunk/; revision=7458
2004-01-05 13:49:18 +00:00
Martin Fuchs
83cc821fc7 removed NONAMELESSUNION and NONAMELESSSTRUCT
svn path=/trunk/; revision=7457
2004-01-04 23:36:06 +00:00
Martin Fuchs
7bf39cb245 use DUMMYUNIONNAME instead of plain 'u'
svn path=/trunk/; revision=7456
2004-01-04 23:15:36 +00:00
Martin Fuchs
63080fde1a eliminated warnings for GCC 3.3
svn path=/trunk/; revision=7455
2004-01-04 23:15:16 +00:00
Thomas Bluemel
c82235044d some fixes
svn path=/trunk/; revision=7454
2004-01-04 21:26:59 +00:00
Martin Fuchs
73990aee98 read configuration of hidden file extensions from registry
svn path=/trunk/; revision=7453
2004-01-04 21:23:08 +00:00
Martin Fuchs
42a645bad5 enhanced file sytem icon cache
svn path=/trunk/; revision=7452
2004-01-04 20:48:32 +00:00
Steven Edwards
fc05db5095 Added strpbrkW - I am going to need it for comdlg32 coming this week.
svn path=/trunk/; revision=7451
2004-01-04 20:22:02 +00:00
Martin Fuchs
3073e11cf8 icon caching
svn path=/trunk/; revision=7450
2004-01-04 17:11:53 +00:00
Filip Navara
7babf71f1f Cross-compilation fixes.
svn path=/trunk/; revision=7449
2004-01-04 15:50:41 +00:00
Filip Navara
0386197096 Compilation fixes.
svn path=/trunk/; revision=7448
2004-01-04 14:41:24 +00:00
Gé van Geldorp
bd0297ecdc Rely on CSRSS to do console handle duplication
svn path=/trunk/; revision=7447
2004-01-04 11:40:56 +00:00
Steven Edwards
5ce260d1fa Fix typo spotted by Casper.
svn path=/trunk/; revision=7446
2004-01-04 00:22:32 +00:00
Steven Edwards
ebe1289de5 Use strncmp.
svn path=/trunk/; revision=7445
2004-01-03 23:52:40 +00:00
Steven Edwards
edb38c2bd0 Minor fixes.
svn path=/trunk/; revision=7444
2004-01-03 23:45:25 +00:00
Steven Edwards
5bc9a2c173 Minor fixes.
svn path=/trunk/; revision=7443
2004-01-03 23:34:17 +00:00
Steven Edwards
791019b4b4 Remove wineros.h. The world is better off without it.
svn path=/trunk/; revision=7442
2004-01-03 23:20:11 +00:00
Steven Edwards
f2003fb2a3 Always link to libwine.a first.
svn path=/trunk/; revision=7441
2004-01-03 23:16:03 +00:00
Filip Navara
1571da986b Guard for W32API 2.5.
svn path=/trunk/; revision=7440
2004-01-03 23:14:33 +00:00
Steven Edwards
18a45dba80 Dont run the implib rule on apps.
svn path=/trunk/; revision=7439
2004-01-03 23:12:19 +00:00
Martin Fuchs
2d9a09646b changes restart/shutdown messages to some neutral text (no Windows/WINE/ReactOS
svn path=/trunk/; revision=7438
2004-01-03 23:03:39 +00:00
Gé van Geldorp
cd9ce31d63 Quotation fun
svn path=/trunk/; revision=7437
2004-01-03 23:03:22 +00:00
Martin Fuchs
09ad94f5c7 look into the registry configuration to see which file extensions should be hidden
svn path=/trunk/; revision=7435
2004-01-03 22:50:29 +00:00
Steven Edwards
a06846aefa Define __REACTOS__
svn path=/trunk/; revision=7434
2004-01-03 22:25:59 +00:00
Gé van Geldorp
9407236c53 Add Everaldos terminal.ico as application icon
svn path=/trunk/; revision=7433
2004-01-03 22:18:56 +00:00
Gé van Geldorp
ff2417063d Don't destroy heap on unload, other DLLs might still depend on it
svn path=/trunk/; revision=7432
2004-01-03 21:59:55 +00:00
Martin Fuchs
c738276596 renamed Ole2.c -> ole2.c
svn path=/trunk/; revision=7431
2004-01-03 21:52:27 +00:00
Martin Fuchs
a84e00e10b renamed Ole2.c -> ole2.c
svn path=/trunk/; revision=7430
2004-01-03 21:52:11 +00:00
Martin Fuchs
ca03151737 renamed Ole2.c -> ole2.c
svn path=/trunk/; revision=7429
2004-01-03 21:51:14 +00:00
Martin Fuchs
210498fba3 renamed Ole2.c -> ole2.c
svn path=/trunk/; revision=7428
2004-01-03 21:50:56 +00:00
Martin Fuchs
87a2a6c778 eliminated SHBindToParent()
svn path=/trunk/; revision=7427
2004-01-03 21:05:23 +00:00
Martin Fuchs
4fa9d79e7f eliminated SHBindToParent()
svn path=/trunk/; revision=7426
2004-01-03 21:03:50 +00:00
Martin Fuchs
8d3be28398 link dynamicly to SHBindToParent()
svn path=/trunk/; revision=7425
2004-01-03 18:35:31 +00:00
Martin Fuchs
398b10102e direct file system access for start menu
svn path=/trunk/; revision=7424
2004-01-03 18:27:54 +00:00
Thomas Bluemel
33f1db80ee fixed handling of control focus
svn path=/trunk/; revision=7423
2004-01-03 15:59:46 +00:00
Martin Fuchs
7fbcfcbc71 lazy icon extraction for start menu
svn path=/trunk/; revision=7422
2004-01-03 11:43:41 +00:00
Martin Fuchs
b1f2f1ed55 fix for empty submenus
svn path=/trunk/; revision=7421
2004-01-03 10:24:47 +00:00
Martin Fuchs
955c62bf6a optimized screen update
svn path=/trunk/; revision=7420
2004-01-03 09:03:47 +00:00
Gé van Geldorp
d36decca0d Print substituted values in the output file in the same order as in the
input file

svn path=/trunk/; revision=7419
2004-01-03 08:53:52 +00:00
Martin Fuchs
17d470dad4 begin of drag drop support on desktop
svn path=/trunk/; revision=7418
2004-01-02 23:57:58 +00:00
Filip Navara
4ee6053221 Cleaned up. If there will be any build problems, contact me.
svn path=/trunk/; revision=7417
2004-01-02 23:28:59 +00:00
Martin Fuchs
00d157f1d3 set working directory out of shell links in ShellExecute..()
svn path=/trunk/; revision=7416
2004-01-02 22:47:51 +00:00
Thomas Bluemel
a93fff8b9c added missing and fixed .cvsignore files
svn path=/trunk/; revision=7415
2004-01-02 21:45:22 +00:00
Gé van Geldorp
1fc3cf8187 Allow buidling with current CVS w32api
svn path=/trunk/; revision=7414
2004-01-02 21:29:50 +00:00
Filip Navara
72c429c0e5 Guard for W32API 2.5.
svn path=/trunk/; revision=7413
2004-01-02 21:26:12 +00:00
Martin Fuchs
538a9b34e2 reimplemented start menu as light weight version
svn path=/trunk/; revision=7412
2004-01-02 21:09:41 +00:00
Martin Fuchs
90679ee807 merged wine/dlls/shell32 and reactos/lib/shell32
svn path=/trunk/; revision=7411
2004-01-02 21:03:50 +00:00
Filip Navara
2a542a8199 Guard for W32API 2.5.
svn path=/trunk/; revision=7410
2004-01-02 20:29:46 +00:00
Gé van Geldorp
9f1759234a Refactoring of Wine DLL import
svn path=/trunk/; revision=7409
2004-01-02 19:49:47 +00:00
Martin Fuchs
cc9e382b7a re-added icons in binary mode
svn path=/trunk/; revision=7408
2004-01-02 18:52:37 +00:00
Martin Fuchs
75c9f9f7ed removed non-binary icons
svn path=/trunk/; revision=7407
2004-01-02 18:51:58 +00:00
Filip Navara
22cda87a36 Reverted last change by Martin Fuchs. The icon file was corrupted and prevented proper builds.
svn path=/trunk/; revision=7406
2004-01-02 17:56:30 +00:00
Steven Edwards
dfa3449f1b Enabled support for /DEBUGPORT=FILE
This fixes bug #28
 - Thanks for the help Filip

svn path=/trunk/; revision=7405
2004-01-02 17:46:17 +00:00
Martin Fuchs
89af47536b error messages for missing functions in SHELL32.dll
svn path=/trunk/; revision=7404
2004-01-02 15:38:23 +00:00
Martin Fuchs
338f8e366a integrated start menu root with StartMenuHandler
svn path=/trunk/; revision=7403
2004-01-02 15:26:46 +00:00
Martin Fuchs
975329fe8b class StartMenuHandler
svn path=/trunk/; revision=7402
2004-01-02 15:18:17 +00:00
Martin Fuchs
8f70adb80c enable shoutdown by hitting Alt+F4
svn path=/trunk/; revision=7401
2004-01-02 15:07:42 +00:00
Martin Fuchs
8ca6781591 use COPYCMD for XP to be compatible with NT4
svn path=/trunk/; revision=7400
2004-01-02 14:27:34 +00:00
Jason Filby
23d5fe1c50 Initial tests for memory APIs
svn path=/trunk/; revision=7399
2004-01-02 03:23:25 +00:00
Thomas Bluemel
a5c9f3e660 more improvements
svn path=/trunk/; revision=7398
2004-01-01 22:29:12 +00:00
Martin Fuchs
0e76daebf1 transparency
svn path=/trunk/; revision=7397
2004-01-01 21:12:19 +00:00
Martin Fuchs
98cf42d325 switch explorer icon to new folder symbol
svn path=/trunk/; revision=7396
2004-01-01 20:55:58 +00:00
Martin Fuchs
4b4a555cbc added dependency on resource binaries
svn path=/trunk/; revision=7395
2004-01-01 20:42:52 +00:00
Martin Fuchs
f7f2d1f90d improved icons a bit
svn path=/trunk/; revision=7394
2004-01-01 20:42:27 +00:00
Thomas Bluemel
22cf7a0a7d some more fixes
svn path=/trunk/; revision=7393
2004-01-01 17:47:48 +00:00
Thomas Bluemel
df212d0711 fixed changing of string values (now it works)
svn path=/trunk/; revision=7392
2004-01-01 17:29:05 +00:00
Steven Edwards
a2ef615d16 Added msvcrt20 to list.
svn path=/trunk/; revision=7391
2004-01-01 17:10:55 +00:00
Steven Edwards
11c72d54c6 Added msvcrt20 to list of targets.
svn path=/trunk/; revision=7390
2004-01-01 17:09:30 +00:00
Steven Edwards
ea6bc1f0ee More WINE porting work.
svn path=/trunk/; revision=7389
2004-01-01 17:08:38 +00:00
Martin Fuchs
461d9dcf8c added some more icons for start menu subfolders
svn path=/trunk/; revision=7388
2004-01-01 17:02:07 +00:00
Steven Edwards
ffa50f24ef Fixed compilation
svn path=/trunk/; revision=7387
2004-01-01 16:54:24 +00:00
Thomas Bluemel
f5f5b2ebc8 fixed changing of string values
svn path=/trunk/; revision=7386
2004-01-01 16:45:26 +00:00
Steven Edwards
3a7d842ffb Updated license information.
svn path=/trunk/; revision=7385
2004-01-01 16:32:14 +00:00
Steven Edwards
815d0dee06 removed 2 more tests from the list.
svn path=/trunk/; revision=7384
2004-01-01 16:22:22 +00:00
Steven Edwards
a75a47f9ff removed the messagebox test.
Winhello now displays a messagebox during the hotkey test.

svn path=/trunk/; revision=7383
2004-01-01 16:21:13 +00:00
Steven Edwards
3841fa3f78 Removed hotkey test. Its now part of winhello.
svn path=/trunk/; revision=7382
2004-01-01 16:19:40 +00:00
Martin Fuchs
a2e1521bbe integrated some of Everaldo's icons
svn path=/trunk/; revision=7381
2004-01-01 16:10:31 +00:00
Steven Edwards
2f1da730d4 Updated Info.
svn path=/trunk/; revision=7380
2004-01-01 16:07:21 +00:00
Steven Edwards
e943e91a30 Added a bit of documentation for ReactOS-WINE developers.
This document is a work in progress and is here to help us keep track
of what code we have ported directly from Wine.

svn path=/trunk/; revision=7379
2004-01-01 15:29:51 +00:00
Steven Edwards
073f42e857 - Ported msvcrt20 from WINE (01-01-04)
This get hover from the Win95 CD at least load.

svn path=/trunk/; revision=7378
2004-01-01 15:27:58 +00:00
Thomas Bluemel
ff57ed11e3 added regedit to package list and added version information to regedit and welcome
svn path=/trunk/; revision=7377
2004-01-01 15:26:04 +00:00
Thomas Bluemel
7b27426d88 updated regedit (and some minor changes)
svn path=/trunk/; revision=7376
2004-01-01 15:12:11 +00:00
Gé van Geldorp
769dcae440 Re-create notification window when needed
svn path=/trunk/; revision=7375
2003-12-31 20:16:39 +00:00
Martin Fuchs
eba8b31ea1 WSHELL32 -> SHELL32
svn path=/trunk/; revision=7374
2003-12-31 19:56:02 +00:00
Filip Navara
bf3bd0f212 Bug fixes.
svn path=/trunk/; revision=7373
2003-12-31 19:25:51 +00:00
Thomas Bluemel
3e2d632fc3 do not limit number of clipping rectangles
svn path=/trunk/; revision=7372
2003-12-31 16:10:35 +00:00
Hartmut Birr
b6526368dc - Bypass the completion routines from kernel if there is a
reading or writing request to the storage device.

svn path=/trunk/; revision=7371
2003-12-31 15:07:10 +00:00
Hartmut Birr
e612170f41 - Implemented shared segments for images.
- Fixed a memory leakage in page file sections.
- Fixed the locking bug on cow operations.
- Do not increment the page reference count if the share count is incremented.

svn path=/trunk/; revision=7370
2003-12-31 14:52:06 +00:00
Thomas Bluemel
f8eea2e937 fixed infinite loop if the number of clipping rectangles exceeded the maximum allowed.
svn path=/trunk/; revision=7369
2003-12-31 14:43:48 +00:00
Hartmut Birr
3c069498cc - Made the system time in the shared data page available.
- Queried the system time without holding a lock.
- Splited the timer queue for absolute and relative timers.

svn path=/trunk/; revision=7368
2003-12-31 14:37:34 +00:00
Hartmut Birr
f08ebc1cee - Set the flag IRP_CLOSE_OPERATION in IopDeleteFile.
svn path=/trunk/; revision=7367
2003-12-31 14:20:26 +00:00
Hartmut Birr
237c87c4c3 - Bypass IoSecondStageCompletion for irp's with the flags
IRP_PAGING_IO or IRP_CLOSE_OPERATION in IofCompleteRequest.

svn path=/trunk/; revision=7366
2003-12-31 14:16:18 +00:00
Martin Fuchs
76706d5835 allow UNICODE=0 builds
svn path=/trunk/; revision=7365
2003-12-31 11:45:33 +00:00
Martin Fuchs
1558a94775 allow UNICODE=0 builds
svn path=/trunk/; revision=7364
2003-12-31 11:45:33 +00:00
Martin Fuchs
4d9498236c german frame menu
svn path=/trunk/; revision=7363
2003-12-31 11:33:15 +00:00
Hartmut Birr
3381197e55 Fixed InsertDescendingList and InsertAscendingList.
svn path=/trunk/; revision=7362
2003-12-31 11:33:07 +00:00
Gé van Geldorp
16ed415455 Fix compile problem when compiling with DBG
svn path=/trunk/; revision=7361
2003-12-31 08:18:21 +00:00
Jason Filby
633f796e40 Initial implementaions of MmAllocateContiguousMemorySpecifyCache() and MmFreeContiguousMemorySpecifyCache()
svn path=/trunk/; revision=7360
2003-12-31 05:33:04 +00:00
Martin Fuchs
6ba4d142ab better command line handling for MinGW
svn path=/trunk/; revision=7359
2003-12-31 01:03:08 +00:00
Martin Fuchs
56deb316c5 eliminated GCC -Wall warnings
svn path=/trunk/; revision=7358
2003-12-31 00:50:38 +00:00
Martin Fuchs
ecc0688f2f implemented Explorer About Dialog
svn path=/trunk/; revision=7357
2003-12-31 00:41:01 +00:00
Richard Campbell
0374ccee3d more small fixes
svn path=/trunk/; revision=7356
2003-12-31 00:38:10 +00:00
Steven Edwards
58837d34cc Added Hotkey tests to winhello.
svn path=/trunk/; revision=7355
2003-12-31 00:36:28 +00:00
Steven Edwards
5f7c494081 Make GlobalMemoryStatus lie about what we really have......
svn path=/trunk/; revision=7354
2003-12-30 23:16:43 +00:00
Aleksey Bragin
a755da6416 Make compatible w/both MinGW and MSVC
svn path=/trunk/; revision=7353
2003-12-30 22:33:32 +00:00
Aleksey Bragin
ac110a4500 Fix to be compatible w/both MinGW and MSVC
svn path=/trunk/; revision=7352
2003-12-30 22:18:12 +00:00
Aleksey Bragin
e4c6acf822 Update inline assembler to be compatible with MSVC
svn path=/trunk/; revision=7351
2003-12-30 22:10:45 +00:00
Steven Edwards
729c0cac35 Removed SampleWindow and Winhello2.
They are now all contained in winhello.

svn path=/trunk/; revision=7350
2003-12-30 20:25:13 +00:00
Steven Edwards
125ac57c6b Removed winhello2
svn path=/trunk/; revision=7349
2003-12-30 20:23:58 +00:00
Steven Edwards
aa1befdfab Removed SampleWindow.
svn path=/trunk/; revision=7348
2003-12-30 20:23:24 +00:00
Steven Edwards
562967f063 Merged SimpleWindow and Winhello2 in to winhello
svn path=/trunk/; revision=7347
2003-12-30 20:22:16 +00:00
Thomas Bluemel
cc7800aa6b do not send WM_MOUSEACTIVATE if WM_NCHITTEST returned HTTRANSPARENT
svn path=/trunk/; revision=7346
2003-12-30 20:09:11 +00:00
Steven Edwards
c829b778a9 Fixed makefile
svn path=/trunk/; revision=7345
2003-12-30 19:43:08 +00:00
Steven Edwards
8ca7541c5e WINE has a much better CreateFile test.
svn path=/trunk/; revision=7344
2003-12-30 19:37:06 +00:00
Steven Edwards
ce0de78273 Removed Named pipe test. Its now in the WINE kernel32 regression test.
svn path=/trunk/; revision=7343
2003-12-30 19:32:25 +00:00
Aleksey Bragin
f4a6e3d287 and even third --- please excuse me for so much of commits, it should be one instead of 3 :-)
svn path=/trunk/; revision=7342
2003-12-30 19:23:30 +00:00
Steven Edwards
05dfe2a7c4 Ported more dialog code from Wine to fix dirdlg test app.
svn path=/trunk/; revision=7341
2003-12-30 19:21:55 +00:00
Aleksey Bragin
b3a850e0ea second fix follows
svn path=/trunk/; revision=7340
2003-12-30 19:14:29 +00:00
Aleksey Bragin
55128bd027 Fix for anonymous struct definition, which made at least /drivers/net/dd/pcnet uncompilable
svn path=/trunk/; revision=7339
2003-12-30 19:13:43 +00:00
Aleksey Bragin
49f967d0ed Continue of MSVC-compiling changes....
I double checked, but in case someone's recent commit is somehow overwritten -- please, don't be very frustrated :) -- I will fix it, just drop me a note.

svn path=/trunk/; revision=7338
2003-12-30 18:52:06 +00:00
Aleksey Bragin
4150f6827f Continue of MSVC-compiling changes....
I double checked, but in case someone's recent commit is somehow overwritten -- please, don't be very frustrated :) -- I will fix it, just drop me a note.

svn path=/trunk/; revision=7337
2003-12-30 18:34:59 +00:00
Aleksey Bragin
920ee1834d Continue of MSVC-compiling changes....
I double checked, but in case someone's recent commit is somehow overwritten -- please, don't be very frustrated :) -- I will fix it, just drop me a note.
struct KTHREAD, ETHREAD, EPROCESS removed from this file by Mike Nordell, since their purpose is very unclear.

svn path=/trunk/; revision=7336
2003-12-30 18:22:08 +00:00
Thomas Bluemel
7ff3d66ade fixed IntFindWindowToRepaint() so it only returns handles to child windows that belong to the calling thread
svn path=/trunk/; revision=7335
2003-12-30 18:19:20 +00:00
Aleksey Bragin
2e3675731a Continue of MSVC-compiling changes....
svn path=/trunk/; revision=7334
2003-12-30 17:39:38 +00:00
Thomas Bluemel
b670b417e9 fixed IntIsWindowDrawable()
svn path=/trunk/; revision=7333
2003-12-30 16:55:00 +00:00
Robert Dickenson
a17da31116 removed unused, useless & erroneous makefile...
svn path=/trunk/; revision=7332
2003-12-30 16:15:36 +00:00
Aleksey Bragin
b6310a8efc added Thomas's changes to defines.h (sorry they were taken away by my update)
svn path=/trunk/; revision=7331
2003-12-30 14:31:51 +00:00
Thomas Bluemel
b8aa4bcd37 added missing .cvsignore and updated makefile
svn path=/trunk/; revision=7330
2003-12-30 14:28:48 +00:00
Hartmut Birr
837f9ed8a7 - Fixed the stack deallocation in RtlRosFreeUserThreadStack.
svn path=/trunk/; revision=7329
2003-12-30 13:06:54 +00:00
Richard Campbell
1a75d537fa ewps, forgot an icon, also a small update to the simple makefile, feel free to 'fix' this makefile to be compatible with the ReactOS build system.
svn path=/trunk/; revision=7328
2003-12-30 11:55:54 +00:00
Aleksey Bragin
f43d6624c8 It is a part of a multipart commit, related to making ReactOS compilable both under MinGW and MSVC6.
Main work on converting ROS to be able to be compiled under MSVC6 was done by Mark Nordell.
Work done by me - incorporating all this stuff into the newest CVS tree.

svn path=/trunk/; revision=7327
2003-12-30 11:53:35 +00:00
Richard Campbell
077fbea4d3 added directories and a dummy file for a wordpad and paint clone.
svn path=/trunk/; revision=7326
2003-12-30 11:53:28 +00:00
Richard Campbell
7d8b928a54 initial version of a reactos version of notepad. didn't have time to finish it tonight before i went to work, so i'll work on it more later.
svn path=/trunk/; revision=7325
2003-12-30 11:52:04 +00:00
KJK::Hyperion
4be9e19495 Whooops
svn path=/trunk/; revision=7324
2003-12-30 05:11:54 +00:00
KJK::Hyperion
f3fcc98b2d - include/rosrtl/thread.h, lib/rosrtl/makefile, lib/rosrtl/makefile.i386, lib/rosrtl/thread/stack.c, lib/rosrtl/thread/exit.c, lib/rosrtl/thread/i386/stackexit.c: three new RosRtl functions (RtlRosExitUserThread, RtlRosFreeUserThreadStack and RtlRosSwitchStackForExit)
- lib/kernel32/makefile, lib/kernel32/thread/thread.c, lib/kernel32/thread/thread/i386/exit.S: kernel32.dll now uses them
 - lib/ntdll/dbg/debug.c, lib/ntdll/rtl/thread.c: ntdll.dll too
 - subsys/csrss/api/wapi.c: CSRSS too (should fix regression)

svn path=/trunk/; revision=7323
2003-12-30 05:10:32 +00:00
KJK::Hyperion
baea3fcd85 Free the TEB on thread termination. Partially fixes a recent regression
svn path=/trunk/; revision=7322
2003-12-30 03:27:52 +00:00
KJK::Hyperion
d8575f7b6a Still not done...
svn path=/trunk/; revision=7321
2003-12-30 01:08:16 +00:00
KJK::Hyperion
c8f27683f0 Screw branches, I'm committing to HEAD. Life is too short
svn path=/trunk/; revision=7320
2003-12-30 00:12:47 +00:00
KJK::Hyperion
699d3efcd8 Please, mr. CVS, accept my files
svn path=/trunk/; revision=7319
2003-12-30 00:03:48 +00:00
Martin Fuchs
b824b25697 move search start menu entries into 'Search' submenu
svn path=/trunk/; revision=7317
2003-12-29 23:46:33 +00:00
Steven Edwards
5e2692a21b DPRINT another message.
Notepad and the edit control is a bit faster now.

svn path=/trunk/; revision=7314
2003-12-29 23:28:46 +00:00
Steven Edwards
a11793fec7 Added a sample system.ini to shutup some winmm messages for now.
svn path=/trunk/; revision=7313
2003-12-29 23:06:38 +00:00
Gé van Geldorp
6161de8e1a On error return from RegQueryValueExW, don't touch *lpcbData. *lpcbData
is always in bytes, even for string registry settings.

svn path=/trunk/; revision=7312
2003-12-29 23:04:55 +00:00
Steven Edwards
e12604e3d7 DPRINT GlobalUnlock message.
svn path=/trunk/; revision=7311
2003-12-29 23:04:08 +00:00
Steven Edwards
7467b2f74a Added tempory winver.h till my patch is accepted by Mingw
svn path=/trunk/; revision=7310
2003-12-29 22:59:07 +00:00
Steven Edwards
dfa4c347b8 And Get my name right.....
svn path=/trunk/; revision=7309
2003-12-29 22:55:10 +00:00
Steven Edwards
e42170ed0a Added Changelog info for version.dll merge
svn path=/trunk/; revision=7308
2003-12-29 22:54:18 +00:00
Steven Edwards
3372617d7f Merged version.dll with WINE 12-29-03
svn path=/trunk/; revision=7307
2003-12-29 22:50:59 +00:00
Gé van Geldorp
46376679ce Fix deadlock when two threads were trying to SendMessage() each other
svn path=/trunk/; revision=7306
2003-12-29 10:09:33 +00:00
Filip Navara
ea561a262b Fixed debugging macros.
svn path=/trunk/; revision=7305
2003-12-29 00:41:16 +00:00
Art Yerkes
c21519fbe8 A simple test case that verifies that RegQueryValueExW and RegQueryValueExA
match.

svn path=/trunk/; revision=7304
2003-12-28 23:23:27 +00:00
Art Yerkes
f1f2b431c9 Fixed RegQueryValueExA. It was broken in a way that made it work properly,
given the broken RegQueryValueExW.  I'm checking in a test case for these
two that should print the same string for each assuming everything works.

svn path=/trunk/; revision=7303
2003-12-28 23:22:30 +00:00
Martin Fuchs
c1bd24b5d5 process one command line parameter to open cabinet window
svn path=/trunk/; revision=7302
2003-12-28 23:11:46 +00:00
Aleksey Bragin
5a6b27edc4 This is part of the big 'ReactOS under MSVC6' project. Main work on converting ROS to be able to be compiled under MSVC6 was done by Mark Nordell.
Work done by me - incorporating all this stuff into the newest CVS tree. So blame me if I did something wrong during tamlin -> new CVS tree merging :-)
It's HAL turn now.

svn path=/trunk/; revision=7301
2003-12-28 22:39:06 +00:00
Gé van Geldorp
585b1fea42 Link creation test by Martin Fuchs (slightly modified, so errors introduced
by me...)

svn path=/trunk/; revision=7300
2003-12-28 21:36:53 +00:00
Gé van Geldorp
578b0d16ed Add open action for exefile
svn path=/trunk/; revision=7299
2003-12-28 21:28:08 +00:00
Gé van Geldorp
3b85b43844 Properly convert between ascii and unicode in SearchPathA
svn path=/trunk/; revision=7298
2003-12-28 21:25:48 +00:00
Gé van Geldorp
755d9f5216 Don't destroy heap on unload, other DLLs might still depend on it
svn path=/trunk/; revision=7297
2003-12-28 17:52:15 +00:00
Thomas Bluemel
ce3d36ede6 reverted my last change
svn path=/trunk/; revision=7296
2003-12-28 17:49:53 +00:00
Thomas Bluemel
4a8eb78729 minor fixes
svn path=/trunk/; revision=7295
2003-12-28 17:22:16 +00:00
Filip Navara
b4c2add1d1 Use EngMulDiv instead of IntMulDiv.
svn path=/trunk/; revision=7294
2003-12-28 17:06:37 +00:00
Thomas Bluemel
279f8d333b use DSTINVERT for DrawFocusRect() and the moving/sizing rectangle
svn path=/trunk/; revision=7293
2003-12-28 16:31:44 +00:00
Gé van Geldorp
1a0383df0b Use mingw32-windres when cross-compiling
svn path=/trunk/; revision=7292
2003-12-28 14:38:50 +00:00
Thomas Bluemel
ce1768d3c3 moved NtUserTranslateMessage() to message.c
svn path=/trunk/; revision=7291
2003-12-28 14:21:03 +00:00
Filip Navara
39ed4e8db9 - Use smaller font for captions and status bar.
- Return more accurate font height in TextIntGetTextExtentPoint.

svn path=/trunk/; revision=7290
2003-12-28 14:14:04 +00:00
Thomas Bluemel
1ff3a7da81 small fix to NtUserDispatchMessage()
svn path=/trunk/; revision=7289
2003-12-28 13:53:14 +00:00
Filip Navara
ff4cde9c00 Fixed mimized window repainting bug. Reported by Thomas Weidenmuller.
svn path=/trunk/; revision=7288
2003-12-28 12:17:15 +00:00
Gé van Geldorp
b462f0f82b Validate parent after copying bits in child
svn path=/trunk/; revision=7287
2003-12-28 10:56:20 +00:00
Filip Navara
0e37a36d20 - New OLE32 port from Wine 20031212. [Currently not build by default]
svn path=/trunk/; revision=7286
2003-12-28 10:40:56 +00:00
Thomas Bluemel
0bbf2ce262 translate WM_NCRBUTTONUP messages to WM_CONTEXTMENU if HitTest == HTCAPTION or HTSYSMENU
svn path=/trunk/; revision=7285
2003-12-28 10:27:51 +00:00
Art Yerkes
cba7351fef Properly deal with a larger buffer than we expect.
svn path=/trunk/; revision=7284
2003-12-28 09:53:22 +00:00
Art Yerkes
25dba4902b Don't return ERROR_MORE_DATA in the case of lpData == NULL.
svn path=/trunk/; revision=7283
2003-12-28 09:28:39 +00:00
Art Yerkes
ff637e689a Nameservers are now correctly listed when per adapter nameservers are
specified in the registry.  This now does the same thing I observe on
win2k, GetNetworkParams.  This function is used by our DNS query
implementation to find out what nameservers it should use.  There is
a test case in apps/tests/nameserverlist.

svn path=/trunk/; revision=7282
2003-12-28 09:09:50 +00:00
Gé van Geldorp
4aa9677fa4 Silence debug messages
svn path=/trunk/; revision=7281
2003-12-28 08:59:24 +00:00
Art Yerkes
a7a6d33f53 RegQueryValueExW: Now returns the space needed for the query to succeed
with a return of ERROR_MORE_DATA, as required by documentation.

svn path=/trunk/; revision=7280
2003-12-28 08:47:28 +00:00
Thomas Bluemel
bb4da13c9c small fixes
svn path=/trunk/; revision=7278
2003-12-28 01:13:02 +00:00
Thomas Bluemel
94859ee96d some fixes on system menu handling
svn path=/trunk/; revision=7277
2003-12-28 00:41:32 +00:00
Thomas Bluemel
12c7158866 implemented EndMenu()
svn path=/trunk/; revision=7276
2003-12-28 00:19:24 +00:00
Filip Navara
023ebb37c2 Fixed usermode stack traces.
svn path=/trunk/; revision=7275
2003-12-27 23:55:02 +00:00
Thomas Bluemel
7ec1d6fece don't draw menu bar and scrollbars when minimized
svn path=/trunk/; revision=7274
2003-12-27 23:51:05 +00:00
Thomas Bluemel
cda2695c4c added test app for TrackPopupMenu(Ex)()
svn path=/trunk/; revision=7273
2003-12-27 23:45:48 +00:00
Thomas Bluemel
38ff929b3a added a few missing constants for TrackPopupMenu(Ex)()
svn path=/trunk/; revision=7272
2003-12-27 23:19:09 +00:00
Martin Fuchs
5d14cf086f fixed FIXME message
svn path=/trunk/; revision=7271
2003-12-27 20:19:00 +00:00
Martin Fuchs
47ffd4826c added dummy target 'implib'
svn path=/trunk/; revision=7270
2003-12-27 20:06:28 +00:00
Gé van Geldorp
3bd689f185 Build and install explorer by default
svn path=/trunk/; revision=7269
2003-12-27 19:03:09 +00:00
Gé van Geldorp
17cd4520da Do not endlessly repeat first character of line when using bright
background (fixes bug #105)

svn path=/trunk/; revision=7268
2003-12-27 18:25:31 +00:00
Gé van Geldorp
e5259c9644 Make stock fonts a little bit smaller
svn path=/trunk/; revision=7267
2003-12-27 17:47:44 +00:00
Martin Fuchs
957a258b42 dynamically calculating the required size for the clock bar window based on the font size [patch of Ge van Geldorp <ge@gse.nl>]
svn path=/trunk/; revision=7266
2003-12-27 15:37:29 +00:00
Filip Navara
2ff0dc4d33 Fixed calculating client area size for minimized windows.
svn path=/trunk/; revision=7265
2003-12-27 15:33:32 +00:00
Filip Navara
ca3586e5a9 Painting bug fixes.
svn path=/trunk/; revision=7264
2003-12-27 15:09:51 +00:00
Gé van Geldorp
6168d52ff8 Build Unicode version by default, add "install" and "bootcd" targets,
allow cross-compilation (untested)

svn path=/trunk/; revision=7263
2003-12-27 14:34:08 +00:00
Martin Fuchs
59e174e888 Don't display cabinet window in desktop mode as default
svn path=/trunk/; revision=7262
2003-12-27 12:29:42 +00:00
Thomas Bluemel
b5391fbee5 small fixes
svn path=/trunk/; revision=7261
2003-12-27 11:09:58 +00:00
Gé van Geldorp
3d94ef5e21 Fix to handling of inter-thread and inter-process messages
svn path=/trunk/; revision=7260
2003-12-27 10:08:31 +00:00
Art Yerkes
b3d403eec3 Everything right now.
svn path=/trunk/; revision=7259
2003-12-27 03:49:48 +00:00
Art Yerkes
2b28365c4e test case for iphlpapi GetNetworkParams, dns server list.
svn path=/trunk/; revision=7258
2003-12-26 23:59:49 +00:00
Martin Fuchs
c359123664 french resources translated by Gerard Gatineau
svn path=/trunk/; revision=7257
2003-12-26 23:25:32 +00:00
Gé van Geldorp
c0ba949f78 Marshall messages across process boundaries (not complete yet) and
generalize message sending from kernel

svn path=/trunk/; revision=7256
2003-12-26 22:52:12 +00:00
Steven Edwards
765b3a2476 Another fix for me breaking user32.
svn path=/trunk/; revision=7255
2003-12-26 17:07:26 +00:00
Steven Edwards
c4a12181ec Fix compile bug. - remove this config.h in the future.
svn path=/trunk/; revision=7254
2003-12-26 16:51:12 +00:00
Thomas Bluemel
dd7349f037 small fixes
svn path=/trunk/; revision=7253
2003-12-26 16:19:15 +00:00
Thomas Bluemel
ca543d98b9 some more fixes on minimized windows
svn path=/trunk/; revision=7252
2003-12-26 14:50:29 +00:00
Thomas Bluemel
d92bf52121 some fixes
svn path=/trunk/; revision=7251
2003-12-26 13:06:34 +00:00
Thomas Bluemel
d391a75ab3 some fixes
svn path=/trunk/; revision=7250
2003-12-26 12:37:53 +00:00
Gé van Geldorp
7ff57296b2 Fix array overflow
svn path=/trunk/; revision=7249
2003-12-26 10:47:20 +00:00
Gé van Geldorp
c8c4b549eb Serialize access to FreeType
svn path=/trunk/; revision=7248
2003-12-26 10:43:08 +00:00
Filip Navara
6da419e367 Fixed compilation problems with GCC 3.4.
svn path=/trunk/; revision=7247
2003-12-26 09:52:37 +00:00
Thomas Bluemel
8638ffb7f0 don't maximize windows that don't have a maximize button when double-clicking the caption bar
svn path=/trunk/; revision=7246
2003-12-26 01:21:17 +00:00
Thomas Bluemel
a4b5d47bed maximize child window to the client area of the parent window
svn path=/trunk/; revision=7245
2003-12-26 01:14:10 +00:00
Thomas Bluemel
51be13a34a small fix
svn path=/trunk/; revision=7244
2003-12-26 01:05:41 +00:00
Thomas Bluemel
f90a37f641 fixed hardcoded workarea size
svn path=/trunk/; revision=7243
2003-12-26 00:58:33 +00:00
Thomas Bluemel
b68bca0e99 fixed hardcoded workarea size
svn path=/trunk/; revision=7242
2003-12-26 00:47:18 +00:00
Thomas Bluemel
ed3497f42e disable font smoothing if screen resolution < 8bpp
svn path=/trunk/; revision=7241
2003-12-26 00:31:22 +00:00
Thomas Bluemel
0705f303d0 disable gradient captions on resolutions <= 8bpp
svn path=/trunk/; revision=7240
2003-12-25 21:14:24 +00:00
Thomas Bluemel
c2b73a09cb fixed missing lib
svn path=/trunk/; revision=7239
2003-12-25 20:46:51 +00:00
Filip Navara
8ff01625ad Fixed compilation problems.
svn path=/trunk/; revision=7238
2003-12-25 20:22:30 +00:00
Martin Fuchs
9053b1515d template for french resources
svn path=/trunk/; revision=7237
2003-12-25 19:29:36 +00:00
Martin Fuchs
03881fe9f4 FIXME for ILC_COLOR32
svn path=/trunk/; revision=7236
2003-12-25 18:42:48 +00:00
KJK::Hyperion
f935f66635 "Ancillary Function Driver" is about as descriptive as "Foo Thingy". Let's stop the insanity: from today, 25 December 2003, AFD will be known as "Socket Filesystem Driver". OK, so I'm bored
svn path=/trunk/; revision=7235
2003-12-25 18:35:20 +00:00
Aleksey Bragin
e24cbd5ce2 define HAVE_SSIZE_T in wineros.h to fix double definition of ssize_t during /lib/msvcrt compilation
svn path=/trunk/; revision=7234
2003-12-25 18:34:57 +00:00
KJK::Hyperion
a39dcfd091 I was bored, so I fixed some random forgotten test applications
svn path=/trunk/; revision=7233
2003-12-25 18:30:09 +00:00
Casper Hornstrup
08ba5babf3 2003-12-25 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/net/roshttpd/error.cpp (ReportErrorStr): Cast to wchar_t*,
	not __wchar_t*.
	* apps/utils/net/roshttpd/makefile (TARGET_CPPFLAGS): Add -Wno-deprecated.
	(TARGET_GCCLIBS): Add stdc++.
	* apps/utils/net/roshttpd/common/socket.cpp: Include <string.h>.
	* apps/utils/net/roshttpd/common/thread.cpp (CThread::CThread): Fix
	warning.
	* drivers/net/afd/afd/afd.c (ListenRequestLookasideList): New variable.
	(DriverEntry): Initialize ListenRequestLookasideList.
	* drivers/net/afd/afd/dispatch.c (AfdDispCompleteListen): New function.
	(AfdDispListen): Partial implement.
	* drivers/net/afd/afd/opnclose.c (AfdInitializeFCB): Initialize
	NewFCB->ListenRequestQueue.
	(AfdKillListenRequests): New function.
	(AfdClose): Call AfdKillListenRequests.
	* drivers/net/afd/afd/routines.c (DumpName): New function.
	* drivers/net/afd/afd/tdi.c (TdiAddressSizeFromType): New function.
	(TdiBuildConnectionInfo): Initialize ConnInfo->OptionsLength.
	(TdiBuildNullConnectionInfo): New function.
	(TdiOpenAddressFileIPv4, TdiOpenConnectionEndpointFile): EaName is
	0-terminated.
	(TdiListen): New function.
	* drivers/net/afd/include/afd.h (AFDFCB): Add ListenRequestQueue.
	(AFD_LISTEN_REQUEST): New structure.
	(ListenRequestLookasideList): Declare.
	(DumpName, TdiListen): Add prototypes.
	* drivers/net/tcpip/datalink/lan.c (BindAdapter): Initialize
	AnsiAddress.Length and AnsiAddress.MaximumLength.
	* drivers/net/tcpip/include/debug.h: Define DEBUG_TCP.
	* drivers/net/tcpip/include/routines.h (DisplayTCPPacket): Add
	prototype.
	(DISPLAY_TCP_PACKET): Define.
	* drivers/net/tcpip/include/tcp.h (TCPListen): Add prototype.
	* drivers/net/tcpip/include/titypes.h (ADDRESS_FILE): Add Connection.
	* drivers/net/tcpip/network/ip.c (IPLocateNTEOnInterface): Cleanup.
	* drivers/net/tcpip/tcpip/address.c (AddrSearchNext): Port is in
	network byte order.
	* drivers/net/tcpip/tcpip/dispatch.c (DispTdiAssociateAddress):
	Initialize AddrFile->Connection.
	(DispTdiListen): Implement.
	* drivers/net/tcpip/tcpip/fileobjs.c (FileOpenAddress): Don't
	initialize AddrFile->Connections.
	* drivers/net/tcpip/tcpip/routines.c: Include <tcp.h>.
	(DisplayIPPacket): Enable.
	(DisplayTCPHeader, DisplayTCPPacket): New functions.
	* drivers/net/tcpip/transport/tcp/tcp.c: Include <routines.h>.
	(TCPListen, TCPiReceive): New functions.
	(TCPReceive): Partial implement.
	* lib/msafd/misc/helpers.c (CreateHelperDLLDatabase): Add
	{SOCK_STREAM,IPPROTO_TCP,0} and {SOCK_DGRAM,IPPROTO_UDP,0} mappings.
	* lib/ntdll/ldr/utils.c (LdrLoadDll): Print name of DLL if not found.
	* lib/ws2_32/include/ws2_32.h (Initialized): Declare.
	(WINSOCK_THREAD_BLOCK): Remove Initialized member.
	* (WSAINITIALIZED, WSASETINITIALIZED): Update.
	* lib/ws2_32/misc/catalog.c (CreateCatalog): Add
	{SOCK_STREAM,IPPROTO_TCP,0} and {SOCK_DGRAM,IPPROTO_UDP,0} mappings.
	(Initialized): New variable.
	(DllMain): Don't initialize p->Initialized.
	* ntoskrnl/dbg/kdb.c: Include <ctype.h>.
	* subsys/win32k/ntuser/message.c (NtUserDispatchMessage): Kill noisy
	message.

svn path=/trunk/; revision=7232
2003-12-25 14:06:15 +00:00
Filip Navara
9aa489b9bf Fixed double clicks.
svn path=/trunk/; revision=7231
2003-12-25 12:26:35 +00:00
Martin Fuchs
8b52e2dfa1 Relase Build configuration
svn path=/trunk/; revision=7230
2003-12-25 11:31:59 +00:00
Filip Navara
f9f22093dc Use correct color translation in AlphaBltMask.
svn path=/trunk/; revision=7229
2003-12-25 10:49:30 +00:00
Filip Navara
9621b3a131 Fixed few obvious bugs.
svn path=/trunk/; revision=7228
2003-12-25 10:21:02 +00:00
Art Yerkes
643255deed I'm not really sure how the --kill-at, --add-stdcall alias dichotomy should
be handled, but I do have a workable solution at least.  It'll be part of
my patch, that will appear shortly on bugzilla.

svn path=/trunk/; revision=7227
2003-12-25 09:52:44 +00:00
Art Yerkes
89222717af A test only of querying DNS. Currently works with windows dnsapi, and our
dnsapi on windows.  Almost works on reactos.

svn path=/trunk/; revision=7226
2003-12-25 08:45:48 +00:00
Art Yerkes
59eb01566e *** empty log message ***
svn path=/trunk/; revision=7225
2003-12-25 08:40:09 +00:00
Art Yerkes
d42bd99ca1 Correct, linking and working (so far) dnsapi.
It makes a query, and adns gets as far as sendto, but things break there.
The sendto call is made correctly, so all of the code above ws2_32 is
correct.

svn path=/trunk/; revision=7224
2003-12-25 05:50:37 +00:00
Art Yerkes
db0182fe34 Corrected bug: passing value of Adjustment rather than address.
svn path=/trunk/; revision=7223
2003-12-25 05:48:35 +00:00
Thomas Bluemel
6e2e1c2fa5 implemented font smoothing
svn path=/trunk/; revision=7222
2003-12-25 00:28:09 +00:00
Steven Edwards
4a0ecf56be Added a README file regarding the status of msvcrt.
svn path=/trunk/; revision=7221
2003-12-24 23:25:13 +00:00
Steven Edwards
5f431cda4c Removed the old port of the __CxxFrameHandler
svn path=/trunk/; revision=7220
2003-12-24 23:21:22 +00:00
Steven Edwards
443715773c Marry Christmas!!!!!
Reported the WINE __CxxFrameHandler and C++ functions.
Enabled -D__USE_W32API on most files.
Imported the internal WINE msvcrt headers as msvcrt/wine/msvcrt pending cleanup.

Freecell and more C++ applications work. Please report if you have problems.

svn path=/trunk/; revision=7219
2003-12-24 23:20:09 +00:00
Steven Edwards
9fb814dc9e Added a newly generated config.h
updated ERR to report as DPRINT1
Added the WINE exception handler header.
Cleanup of the porting headers.......

Let me know if something breaks. I did a rebuild and it was fine for me

svn path=/trunk/; revision=7218
2003-12-24 23:17:27 +00:00
Gé van Geldorp
b110169179 Pass pointer to DWORD instead of casted USHORT pointer
svn path=/trunk/; revision=7217
2003-12-24 21:51:38 +00:00
Filip Navara
822a987bc4 Do not zero memory in RegQueryValueExW and handle the error cases better way.
svn path=/trunk/; revision=7216
2003-12-24 21:23:03 +00:00
Filip Navara
2105eedbc7 Kill the white rectangle around menu entries!
svn path=/trunk/; revision=7215
2003-12-24 21:10:16 +00:00
Gé van Geldorp
05d88629dd Add lpApplicationName processing back in again
svn path=/trunk/; revision=7214
2003-12-24 19:57:42 +00:00
Martin Fuchs
a4d9927ea3 configuration for Release builds with Wine DLLs
svn path=/trunk/; revision=7213
2003-12-24 15:04:41 +00:00
Filip Navara
8bde79329e Fixed RegisterClipboardFormatW.
svn path=/trunk/; revision=7212
2003-12-24 11:24:29 +00:00
Filip Navara
9516179123 Support for HWN_BROADCAST in NtUserPostMessage.
svn path=/trunk/; revision=7211
2003-12-24 10:23:13 +00:00
Thomas Bluemel
b1e7c60fdd implemented gradient caption bars
svn path=/trunk/; revision=7210
2003-12-24 01:26:10 +00:00
Gé van Geldorp
a52d82602e Handle spaces in command line
svn path=/trunk/; revision=7209
2003-12-23 22:01:10 +00:00
Filip Navara
8dec71c0b4 Zero memory for value info in RegQueryValueExW, otherwise we will return invalid values in case of error.
svn path=/trunk/; revision=7208
2003-12-23 22:00:54 +00:00
Martin Fuchs
4373da8151 build Win32 version as UNICODE
svn path=/trunk/; revision=7207
2003-12-23 21:40:20 +00:00
Thomas Bluemel
9f53ca3272 small fix
svn path=/trunk/; revision=7206
2003-12-23 21:39:10 +00:00
Filip Navara
7bd2fe4cb1 Attempt to fix thread dereferencing problem caused by my last thread patch.
svn path=/trunk/; revision=7205
2003-12-23 21:34:52 +00:00
Thomas Bluemel
caedc5bf6b fixed NtUserGetClientOrigin()
svn path=/trunk/; revision=7204
2003-12-23 21:33:25 +00:00
Filip Navara
3470b283b2 GetCharWidth32 implementation.
svn path=/trunk/; revision=7203
2003-12-23 21:29:37 +00:00
Filip Navara
51d9fc9647 Fixed RegSetValueEx for NULL value name.
svn path=/trunk/; revision=7202
2003-12-23 21:18:31 +00:00
Thomas Bluemel
da73036e85 some fixes
svn path=/trunk/; revision=7201
2003-12-23 21:13:00 +00:00
Thomas Bluemel
a0f8c6d8ff some fixes
svn path=/trunk/; revision=7200
2003-12-23 20:40:00 +00:00
Filip Navara
86308e6a22 Reverted my last change!
svn path=/trunk/; revision=7199
2003-12-23 19:28:23 +00:00
Gé van Geldorp
aded67d27d Add some parameter checking
svn path=/trunk/; revision=7198
2003-12-23 19:22:17 +00:00
Filip Navara
2fca03e6cc Fixed division by zero in StretchBlt functions.
svn path=/trunk/; revision=7197
2003-12-23 19:15:08 +00:00
Filip Navara
02ce06682e Appearance bug fixes.
svn path=/trunk/; revision=7196
2003-12-23 18:19:07 +00:00
Thomas Bluemel
96b1759d3d fixed minimize, restore/maximize bugs
svn path=/trunk/; revision=7195
2003-12-23 18:12:38 +00:00
Thomas Bluemel
ff1bec5cec small fix
svn path=/trunk/; revision=7194
2003-12-23 17:56:55 +00:00
Filip Navara
6e39aab608 Bug fixes.
svn path=/trunk/; revision=7193
2003-12-23 08:48:59 +00:00
Art Yerkes
47a02358b6 KDB: Serial driver.
svn path=/trunk/; revision=7192
2003-12-23 08:41:14 +00:00
Art Yerkes
f92adc55e8 Added makefile stuff for kdb serial.
svn path=/trunk/; revision=7191
2003-12-23 05:07:26 +00:00
Art Yerkes
5a010039c5 Added the beginnings of an implementation of NtSetInformationToken.
Options used by cygwin are implemented, others return an error.

svn path=/trunk/; revision=7190
2003-12-23 05:06:47 +00:00
Art Yerkes
b1e0d0b3cc Added KDSERIAL option.
svn path=/trunk/; revision=7189
2003-12-23 05:05:10 +00:00
Art Yerkes
0ce3d6f67c Added "addr" "x" and "tlist" commands to kdbg.
addr  -- Displays address info from kdb_stabs.
x     -- Dumps memory.
tlist -- List threads.  Helps with bt, because normally, you don't know
         what the thread ids are or the stack addresses.
kdb_stabs.c: Fixed bug: length of module vs length of name.
kdb_serial.c: Added /KDSERIAL option allowing the user to type commands
              to the serial port.

svn path=/trunk/; revision=7188
2003-12-23 05:04:59 +00:00
Martin Fuchs
6876cc7caf __WINE__ compile checks
svn path=/trunk/; revision=7185
2003-12-22 20:53:28 +00:00
Thomas Bluemel
704f9a0abe added ros-internal NtUserSetScrollBarInfo()
svn path=/trunk/; revision=7184
2003-12-22 20:44:02 +00:00
Filip Navara
6171a32cfa Minor work on scrollbars.
svn path=/trunk/; revision=7183
2003-12-22 20:22:40 +00:00
Filip Navara
6cb2390fa6 Minor work on scrollbars.
svn path=/trunk/; revision=7181
2003-12-22 19:55:39 +00:00
Filip Navara
2e9b3c4ad3 Fixed drawing of restore button.
svn path=/trunk/; revision=7180
2003-12-22 19:40:29 +00:00
Martin Fuchs
636479dcd3 only merge start menu directories of the same name - no simple entries
svn path=/trunk/; revision=7179
2003-12-22 18:13:13 +00:00
Filip Navara
0ebaadbbae - Removed NtGdiGetSysColorBrush and modified functions that used it.
- Modified desktop drawing to use PaintDesktop.

svn path=/trunk/; revision=7178
2003-12-22 15:30:21 +00:00
Filip Navara
13347b6918 Modified CalcChildScroll to work in ReactOS.
svn path=/trunk/; revision=7177
2003-12-22 15:30:03 +00:00
Thomas Bluemel
3c22c1ba77 small fix in NtUserGetWindowPlacement()
svn path=/trunk/; revision=7176
2003-12-22 14:34:25 +00:00
Filip Navara
51a1df82b9 Don't draw lines with BS_NULL brush.
svn path=/trunk/; revision=7175
2003-12-22 12:44:16 +00:00
Filip Navara
5c52558817 - Enabled CS_PARENTDC style for edit control.
- Minor corrections in [Get/Set]WindowPlacement.
- Fixed handling of MDI client info structure.
- Bug fixes.

svn path=/trunk/; revision=7174
2003-12-22 11:37:32 +00:00
Steven Edwards
e0fd57122f Workaround for __USE_W32API
svn path=/trunk/; revision=7173
2003-12-21 23:52:19 +00:00
Filip Navara
d9ade843d5 Bug fixes.
svn path=/trunk/; revision=7172
2003-12-21 22:41:00 +00:00
Thomas Bluemel
fc7a16a754 minimize windows to the left-top desktop edge for now
svn path=/trunk/; revision=7171
2003-12-21 22:38:38 +00:00
Thomas Bluemel
814b5b5e80 prevent crashing with buggy thread cleanup
svn path=/trunk/; revision=7170
2003-12-21 22:09:07 +00:00
Thomas Bluemel
52b2f9b429 reimplemented support for double clicks
svn path=/trunk/; revision=7169
2003-12-21 21:26:29 +00:00
Thomas Bluemel
d97dfed664 slienced a DbgPrint
svn path=/trunk/; revision=7168
2003-12-21 21:21:33 +00:00
Thomas Bluemel
b4ca845b10 reimplemented support for double clicks
svn path=/trunk/; revision=7167
2003-12-21 21:20:31 +00:00
Filip Navara
dea090e06c - Attempt to fix race condition in timer handler. Reported by Jason Filby.
- Temporary disabled NtGdiExtTextOut experimental clipping implementation because it caused problems with buttons.

svn path=/trunk/; revision=7166
2003-12-21 20:37:42 +00:00
Emanuele Aliberti
99af0f4db6 Minor changes to make the posix module partially compile.
svn path=/trunk/; revision=7165
2003-12-21 20:11:46 +00:00
Thomas Bluemel
c3725861f5 removed support for double clicks
svn path=/trunk/; revision=7164
2003-12-21 20:06:45 +00:00
Martin Fuchs
15850784d7 reactivated work around for Z-order problem on Wine
svn path=/trunk/; revision=7163
2003-12-21 19:40:34 +00:00
Filip Navara
6ddff53540 Corrected debug message.
svn path=/trunk/; revision=7162
2003-12-21 19:12:19 +00:00
Filip Navara
f2c4bc3f8b Bug fixes.
svn path=/trunk/; revision=7161
2003-12-21 18:38:37 +00:00
Filip Navara
d8fdb7eddc Fixed problems with caret moving in edit control.
svn path=/trunk/; revision=7160
2003-12-21 16:49:41 +00:00
Thomas Bluemel
4c2b31ef87 Added missing definition of IsDialogMessageA()
svn path=/trunk/; revision=7159
2003-12-21 16:48:23 +00:00
Thomas Bluemel
494b88827c small fixes
svn path=/trunk/; revision=7158
2003-12-21 16:24:19 +00:00
Martin Fuchs
9ac0b83efd use icon with alpha channel
svn path=/trunk/; revision=7157
2003-12-21 15:55:53 +00:00
Thomas Bluemel
3299829b0c small fixes
svn path=/trunk/; revision=7156
2003-12-21 15:08:56 +00:00
Gé van Geldorp
97791f7264 Cleanup outdated files
svn path=/trunk/; revision=7155
2003-12-21 14:43:19 +00:00
Eric Kohl
d44ee8c1b1 Updated welcome.exe.
svn path=/trunk/; revision=7154
2003-12-21 14:38:25 +00:00
Filip Navara
22e7c1f6cb Partial implementation of GetPixel.
svn path=/trunk/; revision=7153
2003-12-21 10:27:10 +00:00
Thomas Bluemel
3ee841df37 moved the INTERNALPOS structure to the WINDOW_OBJECT struct
svn path=/trunk/; revision=7152
2003-12-21 10:19:40 +00:00
Thomas Bluemel
25ef6ca59a Name correction
svn path=/trunk/; revision=7151
2003-12-21 09:46:35 +00:00
Thomas Bluemel
df068a3bdb DefWndHandleSetCursor() sets default cursor for maximized windows' borders
svn path=/trunk/; revision=7150
2003-12-20 22:33:45 +00:00
Thomas Bluemel
6c6cd533e1 partially implemented WM_SETCURSOR messages
svn path=/trunk/; revision=7149
2003-12-20 21:45:14 +00:00
Filip Navara
01d6bd1786 Use of binary search in LdrFindResource_U. Patch by Alexey Stepanenko <alexeystepanenko@mail.ru>.
svn path=/trunk/; revision=7148
2003-12-20 21:43:27 +00:00
Filip Navara
088013a7f1 Added few debug messages.
svn path=/trunk/; revision=7147
2003-12-20 21:43:21 +00:00
Filip Navara
bfebf46a34 Fixed many problems with WS_EX_TOOLWINDOW windows.
svn path=/trunk/; revision=7146
2003-12-20 21:43:10 +00:00
Filip Navara
188c654673 Fixed parameter names of PatBlt.
svn path=/trunk/; revision=7145
2003-12-20 21:43:01 +00:00
Martin Fuchs
67839ab422 avoid error messages with invisible parent windows
svn path=/trunk/; revision=7144
2003-12-20 21:15:23 +00:00
Martin Fuchs
9d96bc3118 work around for incomplete implementation of QueryContextMenu() in Wine
svn path=/trunk/; revision=7143
2003-12-20 20:59:25 +00:00
Martin Fuchs
70d9884109 corrected context menu in explorer windows
svn path=/trunk/; revision=7142
2003-12-20 20:37:59 +00:00
Martin Fuchs
5ff90962eb fixed ShellFolderContextMenu() parameter
svn path=/trunk/; revision=7141
2003-12-20 18:52:50 +00:00
Martin Fuchs
69090b81d4 context menu implementation for desktop window
svn path=/trunk/; revision=7140
2003-12-20 18:23:10 +00:00
Filip Navara
f1977c73d3 Compilation fixes.
svn path=/trunk/; revision=7139
2003-12-20 16:51:40 +00:00
Filip Navara
cdf42cb419 Corrected packing of the structures.
svn path=/trunk/; revision=7138
2003-12-20 16:51:05 +00:00
Thomas Bluemel
b730717d89 install msgina.dll and userinit.exe
svn path=/trunk/; revision=7137
2003-12-20 16:18:31 +00:00
Eric Kohl
fdab84b368 Install bootvid.sys. This fixes bug #98.
svn path=/trunk/; revision=7136
2003-12-20 16:04:20 +00:00
Eric Kohl
44854e906d Don't stop after hardware detection.
svn path=/trunk/; revision=7135
2003-12-20 16:00:20 +00:00
Thomas Bluemel
9efeb21225 some fixes on carets
svn path=/trunk/; revision=7134
2003-12-20 15:42:47 +00:00
Filip Navara
705104e713 Removed space optimalization of XLATEGDI that caused some problems.
svn path=/trunk/; revision=7133
2003-12-20 14:51:41 +00:00
Filip Navara
6594b15c96 Bugfix.
svn path=/trunk/; revision=7132
2003-12-20 14:19:47 +00:00
Eric Kohl
8bb5ad2bd8 - Detect PS/2 Port and Pointer Device (Mouse).
- Calculate CPU speed.
- Fixed delay counter overrun.

svn path=/trunk/; revision=7131
2003-12-20 12:35:27 +00:00
Filip Navara
57af3eb9c8 - Palette fixes.
svn path=/trunk/; revision=7130
2003-12-20 10:31:32 +00:00
Thomas Bluemel
e437baff45 implemented maximize/restore and minimize buttons for windows, minimize and restore need to be fixed, they don't work properly
svn path=/trunk/; revision=7129
2003-12-19 23:20:06 +00:00
Filip Navara
764ff71a49 - Removed last GvG's fix to COMCTL32.
- Implemented proper color -> mono bitmap conversion.

svn path=/trunk/; revision=7128
2003-12-19 22:58:47 +00:00
Thomas Bluemel
9f039ad29c implemented GetMessageExtraInfo() and SetMessageExtraInfo()
svn path=/trunk/; revision=7127
2003-12-19 19:30:05 +00:00
Filip Navara
4bfb4ce695 - Updated COMCTL32 to Wine 20031212 release.
svn path=/trunk/; revision=7126
2003-12-19 16:41:02 +00:00
Gé van Geldorp
c5f80947d5 Create toolbar images as unmasked
svn path=/trunk/; revision=7125
2003-12-18 23:06:58 +00:00
Gé van Geldorp
5ebfb618b2 Since we have created the off-screen bitmap, let's actually use it
svn path=/trunk/; revision=7124
2003-12-18 23:04:54 +00:00
Thomas Bluemel
b3720ef867 IntFindWindowToRepaint() only returns window handles that belong to the given thread
svn path=/trunk/; revision=7123
2003-12-18 21:56:44 +00:00
Thomas Bluemel
83d245a222 small fix
svn path=/trunk/; revision=7122
2003-12-18 21:42:38 +00:00
Aleksey Bragin
964636c2ab Stretchblitting 8->8 bpp implemented
svn path=/trunk/; revision=7121
2003-12-18 18:30:48 +00:00
Aleksey Bragin
10d1fb4bda Stretchblitting 32->32 bpp implemented
svn path=/trunk/; revision=7120
2003-12-18 18:09:48 +00:00
Filip Navara
8bef76d86b Call CreateMDIWindow[AW] from CreateWindowEx[AW] if WS_EX_MDICHILD style is set.
svn path=/trunk/; revision=7119
2003-12-18 16:47:27 +00:00
Filip Navara
3beff4f5a3 Fixed compilation with __USE_W32API.
svn path=/trunk/; revision=7118
2003-12-18 14:07:41 +00:00
Gé van Geldorp
6da76befc4 Fix the error in the original implementation of Unicode status
determination (Filip agrees)

svn path=/trunk/; revision=7117
2003-12-18 13:00:56 +00:00
Art Yerkes
f5a8a4acd8 Final edit for tonight.
svn path=/trunk/; revision=7116
2003-12-18 12:09:58 +00:00
Art Yerkes
d52259a199 Stubs.
svn path=/trunk/; revision=7115
2003-12-18 11:38:00 +00:00
Art Yerkes
770e411257 Added stubbed calls.
svn path=/trunk/; revision=7114
2003-12-18 11:37:46 +00:00
Art Yerkes
ac3e44799f Initial version of dnsapi. Not working yet, but compiling and with
seemingly good code.

svn path=/trunk/; revision=7113
2003-12-18 10:54:48 +00:00
Art Yerkes
9bd7d5ce0f Initial dnsapi sources.
svn path=/trunk/; revision=7112
2003-12-18 10:54:02 +00:00
Art Yerkes
c52179ff55 *** empty log message ***
svn path=/trunk/; revision=7111
2003-12-18 10:50:50 +00:00
Art Yerkes
c411b4045f Added ADNS library. A nice, versatile DNS client library, which forms the
basis of our DNSAPI implementation.

ADNS was written by Ian Jackson (http://www.chiark.greenend.org.uk/~ian/adns/)
and was release under the GPL.  We are using Jarle Aase's win32 port:
(http://adns.jgaa.com/)

Arty added timercmp.h, which contains some missing elements from sys/time.h

svn path=/trunk/; revision=7110
2003-12-18 10:48:20 +00:00
Art Yerkes
47ff6dc9eb WinError and WinDNS headers.
svn path=/trunk/; revision=7109
2003-12-18 10:37:10 +00:00
Art Yerkes
92d507d00a dnsapi test application.
svn path=/trunk/; revision=7108
2003-12-18 10:35:36 +00:00
Gé van Geldorp
78aaee0a8b Allow launching of console apps from GUI apps
svn path=/trunk/; revision=7107
2003-12-18 09:51:08 +00:00
Vizzini
41b4cb6b5a turned off debug spew
svn path=/trunk/; revision=7106
2003-12-17 23:35:10 +00:00
Vizzini
0e8ef19002 - Enable "Full Maps" by default
- IP addresses are now registry-configured, per-adapter
 - Minor bugfix for off-by-one with extended attributes

svn path=/trunk/; revision=7105
2003-12-17 23:34:35 +00:00
Vizzini
fd2014a883 added missing parens, courtesy of mike nordell
svn path=/trunk/; revision=7104
2003-12-17 22:36:20 +00:00
Martin Fuchs
abb4afd9df added TEST code for executing non-folders without shell32
svn path=/trunk/; revision=7103
2003-12-17 22:21:56 +00:00
Filip Navara
d162a9dbc6 Unicodifity of window shouldn't be determined by unicodifity of window class.
svn path=/trunk/; revision=7102
2003-12-17 21:46:10 +00:00
Eric Kohl
4f2ee03f8d Implemented FsRtlDissectName().
svn path=/trunk/; revision=7101
2003-12-17 20:27:06 +00:00
Aleksey Bragin
1fc5217c9b Inserted UNIMPLEMENTED macro definiton, otherwise /lib/user32 won't compile.
svn path=/trunk/; revision=7100
2003-12-17 20:06:10 +00:00
Thomas Bluemel
48cbf21922 fixed destroying child windows and some fixes on menus
svn path=/trunk/; revision=7099
2003-12-17 19:56:13 +00:00
Filip Navara
7127873aac - Print function name in Wine debugging macros.
- Updated COMCTL32 to Wine 20031212 release.

svn path=/trunk/; revision=7098
2003-12-17 18:09:54 +00:00
Filip Navara
c98a386e26 Fixed more registry entries for Shell Folders.
svn path=/trunk/; revision=7097
2003-12-17 17:00:13 +00:00
Filip Navara
540b933d8e Fixed registry entries for Wine DLLs, Shell Folders and some other things.
svn path=/trunk/; revision=7096
2003-12-17 15:53:11 +00:00
Thomas Bluemel
21c54e41c6 fixed dereferencing of child window objects in IntDestroyWindow() and send a WM_DESTROY message to them if they don't belong to the calling thread
svn path=/trunk/; revision=7095
2003-12-17 13:11:55 +00:00
KJK::Hyperion
c64c44c316 - genntdll, shut up
- fixed some forward exports in kernel32
 - fixed a couple of embarassing bugs in my getopt implementation
 - fixed a warning in pipetools

svn path=/trunk/; revision=7094
2003-12-17 01:46:08 +00:00
KJK::Hyperion
b536b4fce2 Some changes to UxTheme to make it compile with GCC
svn path=/trunk/; revision=7093
2003-12-17 01:39:21 +00:00
Gé van Geldorp
d4d929e12c Split CreateFileMapping flags before passing them on to NtCreateSection
svn path=/trunk/; revision=7091
2003-12-16 21:32:18 +00:00
Thomas Bluemel
8ca785b781 deny destroying a window that does not belong to the calling thread
svn path=/trunk/; revision=7090
2003-12-16 18:14:39 +00:00
Aleksey Bragin
23dc27f809 Added include <stdlib.h> to remove warning about abs().
svn path=/trunk/; revision=7089
2003-12-16 17:24:42 +00:00
Richard Campbell
97b6938315 Added a debug note and a warning messages to CopyImage
svn path=/trunk/; revision=7088
2003-12-16 06:51:02 +00:00
Gé van Geldorp
c709b088c9 Directory is empty and doesn't really need a .cvsignore
svn path=/trunk/; revision=7087
2003-12-16 00:10:13 +00:00
Aleksey Bragin
2a3fde38a2 Shrinking bug fixed
svn path=/trunk/; revision=7086
2003-12-15 23:33:45 +00:00
Thomas Bluemel
a8a0a11c74 fixed WinPosWindowFromPoint() to reference the returning window object
svn path=/trunk/; revision=7085
2003-12-15 21:51:10 +00:00
Steven Edwards
09b8fd44b9 Add libwine.a
svn path=/trunk/; revision=7084
2003-12-15 20:50:52 +00:00
Filip Navara
f9b0dd90cd Implementation of [NtGdi]RectVisible.
svn path=/trunk/; revision=7083
2003-12-15 20:47:57 +00:00
Steven Edwards
6e4a63bb10 Added MultiMedia headers to support Winmm.
svn path=/trunk/; revision=7082
2003-12-15 20:21:57 +00:00
Steven Edwards
3a99900c9d Add some basic type information.
svn path=/trunk/; revision=7081
2003-12-15 20:21:13 +00:00
Steven Edwards
23cf9e30b0 Ported Winmm.dll from Winehq CVS 12-15-03.
With help of C. H.

svn path=/trunk/; revision=7080
2003-12-15 20:20:34 +00:00
Thomas Bluemel
8c6352f4f6 change entry point to 0x0
svn path=/trunk/; revision=7079
2003-12-15 20:03:13 +00:00
Steven Edwards
1f896c5c45 More minor cleanup.
svn path=/trunk/; revision=7078
2003-12-15 19:39:37 +00:00
Gé van Geldorp
2836686955 Fix CBT create hook for NULL window name
svn path=/trunk/; revision=7077
2003-12-15 19:32:32 +00:00
Steven Edwards
2eea196a4a Turn off a few more debug messages in the edit control.
svn path=/trunk/; revision=7076
2003-12-15 19:20:27 +00:00
Eric Kohl
47cba05f69 Implemented driver reinitialization.
svn path=/trunk/; revision=7075
2003-12-15 17:50:23 +00:00
Thomas Bluemel
416cb07ba3 fixed handling of WM_MOUSEWHEEL messages...again
svn path=/trunk/; revision=7074
2003-12-15 15:08:33 +00:00
Thomas Bluemel
ff7ca5e860 added WM_NCXBUTTON* messages
svn path=/trunk/; revision=7073
2003-12-15 00:44:52 +00:00
Thomas Bluemel
9d372b138d NtUserDispatchMessage() shouldn't allow calling the window proc if the window doesn't belong to the thread
svn path=/trunk/; revision=7072
2003-12-14 23:52:54 +00:00
Thomas Bluemel
6dda6e7ca6 fixed wrong handling of WM_MOUSEWHEEL messages that caused the desktop thread crashing
svn path=/trunk/; revision=7071
2003-12-14 23:30:32 +00:00
Hartmut Birr
08baddcab7 - Fixed the recursive scan and if there is given a path spec.
- Fixed the displaying of empty dir levels on recursive scans.
- Fixed the call to GetProcAddress for using unicode functions.
- Added more parameters for the call to GetDiskFreeSpaceEx.

svn path=/trunk/; revision=7070
2003-12-14 22:51:52 +00:00
Gé van Geldorp
c0253014fd Disable UNIMPLEMENTED for unknown or global hooks so winEmbed runs again
svn path=/trunk/; revision=7069
2003-12-14 22:34:47 +00:00
Thomas Bluemel
c9edcad72d another fix to message queues and fixed handling of WM_XBUTTONDOWN messages
svn path=/trunk/; revision=7068
2003-12-14 22:14:45 +00:00
Martin Fuchs
d4dd1a3915 fixed Context destructor when constructed using the copy constructor
svn path=/trunk/; revision=7067
2003-12-14 22:10:24 +00:00
Martin Fuchs
ec57d5df80 check for availability of SHRestricted() in shell32.dll
svn path=/trunk/; revision=7066
2003-12-14 21:56:52 +00:00
Filip Navara
303442cb3f Fixed palette locking.
svn path=/trunk/; revision=7065
2003-12-14 21:32:52 +00:00
Filip Navara
7cc31db5e6 Fixed compilation.
svn path=/trunk/; revision=7064
2003-12-14 21:29:42 +00:00
KJK::Hyperion
9a77dd5548 fixed wsock32 export ordinals
svn path=/trunk/; revision=7063
2003-12-14 21:25:42 +00:00
Gé van Geldorp
f5d602de19 Reverse WndProcA and WndProcW, our order is the reverse of the order in
Wine (we should change it)

svn path=/trunk/; revision=7062
2003-12-14 21:07:54 +00:00
Steven Edwards
c8004d7823 Added inital port of Wine Preprocessor
svn path=/trunk/; revision=7061
2003-12-14 19:53:39 +00:00
Steven Edwards
b53aeac47d added internal WINE Preprocessor header.
svn path=/trunk/; revision=7060
2003-12-14 19:51:58 +00:00
Filip Navara
0a1e17fdad Fixed issue that cause user-mode exception stack traces not to work. Patch by Mike Nordell.
svn path=/trunk/; revision=7059
2003-12-14 19:43:09 +00:00
Gé van Geldorp
8f77e7b0ae Implement real locking for GDIOBJ objects
svn path=/trunk/; revision=7058
2003-12-14 19:39:50 +00:00
Steven Edwards
b66d0e5129 More updates for string handling.
svn path=/trunk/; revision=7057
2003-12-14 19:37:03 +00:00
Steven Edwards
11238b6c17 Added new port of WINE controls to get rid of some debug messages
and make the code a little cleaner.

svn path=/trunk/; revision=7056
2003-12-14 19:36:15 +00:00
Thomas Bluemel
fafd8079ae remove message from the list if it was freed in MsqTranslateMouseMessage()
svn path=/trunk/; revision=7055
2003-12-14 19:04:51 +00:00
Filip Navara
2cc22c2214 Added two debugging messages. Patch by Mike Nordell.
svn path=/trunk/; revision=7054
2003-12-14 18:36:15 +00:00
Steven Edwards
1f86ab3ae7 Added simple unix style process killer.
svn path=/trunk/; revision=7053
2003-12-14 18:31:32 +00:00
Hartmut Birr
447dd99842 - Do not place _main into the init section. If ntoskrnl is compiled
with higher optimisation levels, some code from a non init section
  is internal moved to _main. This does crash reactos.

svn path=/trunk/; revision=7052
2003-12-14 18:16:18 +00:00
Hartmut Birr
2d6b3f91ba - Use the correct heap for all heap functions.
svn path=/trunk/; revision=7051
2003-12-14 18:10:05 +00:00
Hartmut Birr
e60b5574fb - Fixed some declarations.
- Removed old linux declarations.

svn path=/trunk/; revision=7050
2003-12-14 18:08:29 +00:00
Hartmut Birr
55bc18d383 - Replaced ctype.h with internal\ctype.h.
On higher optimisation levels like '-O6', gcc does try to
  import some variables which only exist in msvcrt.dll.

svn path=/trunk/; revision=7049
2003-12-14 18:06:44 +00:00
Hartmut Birr
511cae90ca - Removed ctype.h.
svn path=/trunk/; revision=7048
2003-12-14 18:03:59 +00:00
Hartmut Birr
4e7d177b17 - Fixed the declaration of some thread functions.
svn path=/trunk/; revision=7045
2003-12-14 18:02:34 +00:00
Filip Navara
41b0a75f9a - Implementation of [NtUser]GetClipboardFormatName[A/W].
svn path=/trunk/; revision=7044
2003-12-14 17:59:17 +00:00
Hartmut Birr
ca0cd5480e - Fixed some debug messages.
- Removed ctype.h.

svn path=/trunk/; revision=7043
2003-12-14 17:58:00 +00:00
Hartmut Birr
7c2b20a019 - Initialized some local variables.
svn path=/trunk/; revision=7042
2003-12-14 17:56:23 +00:00
Hartmut Birr
271512ad67 - Fixed the initialisation of the core dump service in MmDumpToPagingFile.
svn path=/trunk/; revision=7041
2003-12-14 17:54:22 +00:00
Hartmut Birr
092d37b773 - Added return values to some unimplemented functions.
svn path=/trunk/; revision=7040
2003-12-14 17:51:41 +00:00
Hartmut Birr
e9568da21e - Added return values to some unimplemented functions.
svn path=/trunk/; revision=7039
2003-12-14 17:44:02 +00:00
Martin Fuchs
7401408c91 back to 1.30
svn path=/trunk/; revision=7038
2003-12-14 16:28:07 +00:00
Martin Fuchs
3c84b794d6 shell registry entries for recycle bin
svn path=/trunk/; revision=7037
2003-12-14 16:25:52 +00:00
Thomas Bluemel
b97ddcab8a added multi-threaded multiwin test app
svn path=/trunk/; revision=7036
2003-12-14 16:11:40 +00:00
Eric Kohl
85ab8b5562 Detect serial ports and serial pointer devices (Mice/Trackballs).
svn path=/trunk/; revision=7035
2003-12-14 16:11:34 +00:00
Martin Fuchs
b88b8a633f added Win32 configuration
svn path=/trunk/; revision=7034
2003-12-14 16:08:35 +00:00
Martin Fuchs
3a1d7c32b2 handle Exceptions early to ignore shell32 incompleteness
svn path=/trunk/; revision=7033
2003-12-14 16:07:54 +00:00
Martin Fuchs
e2b92fc4f9 back to 1.30
svn path=/trunk/; revision=7032
2003-12-14 15:48:33 +00:00
Martin Fuchs
460e0e19e3 back to 1.29
svn path=/trunk/; revision=7031
2003-12-14 15:42:59 +00:00
Martin Fuchs
438f6b21f8 registry entries for CLSID_COMPUTER_SEARCH_RESULTS
svn path=/trunk/; revision=7030
2003-12-14 15:39:49 +00:00
Thomas Bluemel
56c46f052a automatically build enumws test app
svn path=/trunk/; revision=7029
2003-12-14 15:13:05 +00:00
Thomas Bluemel
6e1dc58809 remove file from empty directory
svn path=/trunk/; revision=7028
2003-12-14 15:09:48 +00:00
Martin Fuchs
ca67299367 fixed typo
svn path=/trunk/; revision=7027
2003-12-14 15:02:28 +00:00
Martin Fuchs
e9fe559efd added LOG message
svn path=/trunk/; revision=7026
2003-12-14 15:02:17 +00:00
Thomas Bluemel
f0a64ffc31 added missing .cvsignore files
svn path=/trunk/; revision=7025
2003-12-14 15:01:27 +00:00
Filip Navara
ef7550f1ad - Added few ObDereferenceObject calls.
svn path=/trunk/; revision=7024
2003-12-14 14:29:44 +00:00
Thomas Bluemel
a55087b101 dereference thread in NtUserBuildHwndList()
svn path=/trunk/; revision=7023
2003-12-14 14:26:50 +00:00
Thomas Bluemel
5571270a01 win32k now can handle piped mouse input, the obsolete gdi callback can be disabled by changing ENABLEMOUSEGDICALLBACK to 0 (in input.c).
Feel free to fix mouclass to be windows compatible.

svn path=/trunk/; revision=7022
2003-12-14 14:05:47 +00:00
Gé van Geldorp
dbc9a2e835 Fix Unicode/Ansi conversion problem
svn path=/trunk/; revision=7021
2003-12-14 14:01:38 +00:00
Thomas Bluemel
87bff663cd fixed NtUserGetClipboardFormatName()
svn path=/trunk/; revision=7020
2003-12-14 13:55:01 +00:00
Thomas Bluemel
df4f47d0df fixed compiling problems
svn path=/trunk/; revision=7019
2003-12-14 13:26:20 +00:00
Filip Navara
09feaad3e1 - Separation of clipboard routines in win32k.
- Call NtUser* for clipboard functions in user32.
- Minor correction for SetCaretBlinkTime.
- Removed empty userobj.c file.

svn path=/trunk/; revision=7018
2003-12-14 12:39:32 +00:00
Gé van Geldorp
5b81f371b6 Since LoadLibrary is documented to return NULL on failure, use that as
indication of an invalid module handle instead of DDK INVALID_HANDLE_VALUE

svn path=/trunk/; revision=7017
2003-12-14 11:47:54 +00:00
Gé van Geldorp
96e065ecb2 When sending messages to a window in the same thread, call window proc
from usermode instead of from a kernelmode callback

svn path=/trunk/; revision=7016
2003-12-14 11:36:43 +00:00
Martin Fuchs
de49436dfe activated Doxygen option SEARCHENGINE
svn path=/trunk/; revision=7015
2003-12-14 11:15:53 +00:00
Martin Fuchs
1de0a62887 activate Doxygen SEARCHENGINE option
svn path=/trunk/; revision=7014
2003-12-14 10:55:30 +00:00
Martin Fuchs
231aabebcb activate Doxygen SEARCHENGINE option
svn path=/trunk/; revision=7013
2003-12-14 10:50:34 +00:00
Martin Fuchs
e28d71cdbf correct problem with temporary object descruction (reported by G� van Geldorp)
svn path=/trunk/; revision=7012
2003-12-14 10:47:41 +00:00
Martin Fuchs
13ba729805 handle NULL string pointers
svn path=/trunk/; revision=7011
2003-12-14 10:45:11 +00:00
Thomas Bluemel
78f6e71be8 Another crash removed. Patch by Mike Nordell.
svn path=/trunk/; revision=7010
2003-12-14 00:45:39 +00:00
Gé van Geldorp
b295839f98 In RegQueryValueExA, always request the type from RegQueryValueExW, we
need it, even if our caller doesn't, to determine if conversion is required

svn path=/trunk/; revision=7009
2003-12-13 23:59:45 +00:00
Gé van Geldorp
44123858ae Remove optimization (not thread-safe)
svn path=/trunk/; revision=7008
2003-12-13 23:26:04 +00:00
Thomas Bluemel
0d9840021e fixes to cursors
svn path=/trunk/; revision=7007
2003-12-13 22:38:29 +00:00
Gé van Geldorp
d15b8ab119 Print debug message if memory allocation fails
svn path=/trunk/; revision=7006
2003-12-13 21:11:53 +00:00
Filip Navara
87219b9874 Minor correction.
svn path=/trunk/; revision=7005
2003-12-13 19:59:08 +00:00
Thomas Bluemel
c24738870e removed an unneccessary call to BITMAPOBJ_UnlockBitmap. Patch by Mike Nordell.
svn path=/trunk/; revision=7004
2003-12-13 19:53:17 +00:00
Filip Navara
9743e313e0 Updated list of developers.
svn path=/trunk/; revision=7003
2003-12-13 19:47:27 +00:00
Thomas Bluemel
d63d830a62 fixed NtGdiCreateIC() to use UNICODE_STRING
svn path=/trunk/; revision=7002
2003-12-13 19:27:10 +00:00
Gé van Geldorp
1da0ada508 Fix setting z-order of HWND_BOTTOM
svn path=/trunk/; revision=7001
2003-12-13 18:42:52 +00:00
Gé van Geldorp
ff557884f4 Fix rectangle computation in NtUserPaintDesktop() and remove Wine-ism
svn path=/trunk/; revision=7000
2003-12-13 18:40:34 +00:00
Filip Navara
04d3cc439d Fixed boot video driver registry entry.
svn path=/trunk/; revision=6999
2003-12-13 18:36:47 +00:00
Filip Navara
9c5dbfa383 Fixed algorithm for generating driver path.
svn path=/trunk/; revision=6998
2003-12-13 18:35:50 +00:00
Filip Navara
a7d4741918 Desktop should handle WM_ERASEBKGND.
svn path=/trunk/; revision=6997
2003-12-13 16:04:36 +00:00
Thomas Bluemel
b0848526af fixed NtGdiCreateDC() to use UNICODE_STRINGs
svn path=/trunk/; revision=6996
2003-12-13 15:49:32 +00:00
Eric Kohl
619a2c32d9 Initialize IRP.RequestorMode in system functions that can be called from user mode.
Use safe copy routine to copy IoStatusBlock if a system funtion was called from user mode.
Do not use local IoStatusBlock copy in system functions.

svn path=/trunk/; revision=6995
2003-12-13 14:36:42 +00:00
Eric Kohl
90f099cffe Do not probe a user buffer until SEH is usable.
svn path=/trunk/; revision=6994
2003-12-13 14:25:04 +00:00
Thomas Bluemel
63a627527e fixed NtGdiGetDCOrgEx() and NtGdiGetObject()
svn path=/trunk/; revision=6993
2003-12-13 13:45:18 +00:00
Jason Filby
5e4291354e Copied _heapchk(), _heapmin(), _heapset() and _heapwalk() from CRTDLL
svn path=/trunk/; revision=6992
2003-12-13 13:27:46 +00:00
Thomas Bluemel
097d8c9998 fixed NtGdiPolygon() which i accidently broke
svn path=/trunk/; revision=6991
2003-12-13 13:05:30 +00:00
Thomas Bluemel
aa1e1145d5 fixed NtGdiGetClipBox()
svn path=/trunk/; revision=6990
2003-12-13 12:12:41 +00:00
Filip Navara
ce30efdf86 Commented out EnumWindowStationsW and NtUserBuildNameList implementations. If someone wants to work on them, feel free.
svn path=/trunk/; revision=6989
2003-12-13 11:34:53 +00:00
Thomas Bluemel
d646f08d69 fixed NtGdiCreateEllipticRgnIndirect()
svn path=/trunk/; revision=6988
2003-12-13 11:15:06 +00:00
Thomas Bluemel
3f9b54f180 fixed NtGdiPolyPolyline(), NtGdiPolygon() and NtGdiPolyPolygon()
svn path=/trunk/; revision=6987
2003-12-13 10:57:29 +00:00
Thomas Bluemel
5b3541de15 fixed TextIntRealizeFont()
svn path=/trunk/; revision=6986
2003-12-13 10:34:13 +00:00
Thomas Bluemel
3a6264fe95 fixed some line functions to be more secure
svn path=/trunk/; revision=6985
2003-12-13 10:18:01 +00:00
Art Yerkes
a04237fc97 Changed the SPIN_LOCK to a FAST_MUTEX. This is really what belongs there.
svn path=/trunk/; revision=6984
2003-12-13 06:19:59 +00:00
Thomas Bluemel
0d6a146059 added support for the FR_PRIVATE and FR_NOT_ENUM flags for AddFontResourceEx()
svn path=/trunk/; revision=6983
2003-12-12 23:49:48 +00:00
Thomas Bluemel
c3fedb7f0b little bugfix
svn path=/trunk/; revision=6982
2003-12-12 22:57:26 +00:00
Thomas Bluemel
98f06b02ed changed font table to a double-linked list
svn path=/trunk/; revision=6981
2003-12-12 22:50:20 +00:00
Eric Kohl
6010d1fd63 - Fix Unix line breaks.
- Use HAL PCI bus routines in order avoid race conditions.
- Use slot number to distinguish multiple device of the same kind.

svn path=/trunk/; revision=6980
2003-12-12 21:54:42 +00:00
Thomas Bluemel
0dc6bcee53 fixed NtGdiAddFontResource() to accept a PUNICODE_STRING
svn path=/trunk/; revision=6979
2003-12-12 21:37:39 +00:00
Martin Fuchs
2fac53c867 patch of Ge van Geldorp <ge@gse.nl>: added error handling for BackupRead()
svn path=/trunk/; revision=6978
2003-12-12 21:01:35 +00:00
Gé van Geldorp
d59d3daf21 Retrieve tmAveCharWidth font metric
svn path=/trunk/; revision=6977
2003-12-12 20:51:42 +00:00
Thomas Bluemel
b2854c757b implemented GetThreadDesktop()
svn path=/trunk/; revision=6976
2003-12-12 20:44:52 +00:00
Gé van Geldorp
59d7369cf8 Pass dpt parameter on from DrawTextExA to DrawTextExW
svn path=/trunk/; revision=6975
2003-12-12 20:30:02 +00:00
Thomas Bluemel
e76c8bc473 removed no longer needed VIS_RepaintDesktop()
svn path=/trunk/; revision=6974
2003-12-12 18:59:24 +00:00
Thomas Bluemel
a6f864bf92 moved IntGetDesktopWindow() to desktop.c and a few minor fixes
svn path=/trunk/; revision=6973
2003-12-12 18:18:21 +00:00
Gé van Geldorp
f0c3bc979b Implement NtUserGetDCEx() for non-cache DCs
svn path=/trunk/; revision=6972
2003-12-12 17:20:53 +00:00
Thomas Bluemel
08984a5120 Fix kernel-crash when handling user-mode exception with trashed stack pointer. Patch by Mike Nordell.
svn path=/trunk/; revision=6971
2003-12-12 17:09:27 +00:00
Thomas Bluemel
3deb3adee6 don't unlink a window that has no parent window
svn path=/trunk/; revision=6970
2003-12-12 16:56:20 +00:00
Thomas Bluemel
224147dd48 Fix kernel-crash when handling user-mode exception with trashed stack pointer. Patch by Mike Nordell.
svn path=/trunk/; revision=6969
2003-12-12 16:42:16 +00:00
Thomas Bluemel
32930c3ec6 fixed some gdi functions
svn path=/trunk/; revision=6968
2003-12-12 15:47:37 +00:00
Filip Navara
5e5010b3c3 Fixed compilation with DBG == 1.
svn path=/trunk/; revision=6967
2003-12-12 15:33:40 +00:00
Gé van Geldorp
e4ca173e64 Rollback changes which were checked in by accident
svn path=/trunk/; revision=6966
2003-12-12 14:57:23 +00:00
Gé van Geldorp
ae68da49b6 Incomplete implementation of hooks
svn path=/trunk/; revision=6965
2003-12-12 14:22:37 +00:00
Gé van Geldorp
dc8bfd1046 Remove breakpoint left in by accident
svn path=/trunk/; revision=6964
2003-12-12 12:54:30 +00:00
Gé van Geldorp
49546dc5fc Keep reference to display file open
svn path=/trunk/; revision=6963
2003-12-12 12:53:10 +00:00
Martin Fuchs
a754cb4e7f Fix Explorer name
svn path=/trunk/; revision=6962
2003-12-11 23:21:49 +00:00
Aleksey Bragin
43412229b7 Implemented 16bpp to 16bpp scaling. Only stretch now, shrinking works incorrectly! If you find errors in the code - email me.
svn path=/trunk/; revision=6961
2003-12-11 22:55:03 +00:00
Martin Fuchs
4fca2f2538 add mising initializations for ShellExecuteEx()
svn path=/trunk/; revision=6960
2003-12-11 20:14:15 +00:00
Filip Navara
30d25fb859 Small correction for drawing close button. Patch by Mike Nordell.
svn path=/trunk/; revision=6959
2003-12-11 19:36:20 +00:00
Gé van Geldorp
2007f3dbe9 Fix COLOR_3DLIGHT SysColour (or SysColor for our US friends).
Patch by tamlin.

svn path=/trunk/; revision=6958
2003-12-11 16:24:06 +00:00
Thomas Bluemel
24e3b63b61 fixed NtGdiCreateBrushIndirect() and NtGdiPolyPatBlt()
svn path=/trunk/; revision=6957
2003-12-11 15:14:40 +00:00
Thomas Bluemel
8e00d905ca fixed NtGdiCreatePenIndirect()
svn path=/trunk/; revision=6956
2003-12-11 14:48:55 +00:00
Art Yerkes
f11644a0f7 Fixed comments to reflect microseconds.
svn path=/trunk/; revision=6955
2003-12-11 04:23:25 +00:00
Thomas Bluemel
cf7329bc4c don't allow destroying cursors that are currently in use
svn path=/trunk/; revision=6954
2003-12-10 22:47:11 +00:00
Thomas Bluemel
a9272c95c1 store ShellWindow and ShellListView handle in window station and minor fix on destroying icons
svn path=/trunk/; revision=6953
2003-12-10 22:09:56 +00:00
Casper Hornstrup
c4403877c7 2003-12-10 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/wine2ros: New directory.
	* tools/wine2ros/Makefile: New file.
	* tools/wine2ros/wine2ros.c: Ditto.
	* tools/Makefile (wine2ros_target): Add.
	* rules.mak (WINE2ROS): Define.

svn path=/trunk/; revision=6952
2003-12-10 20:34:53 +00:00
Casper Hornstrup
2e670eb2b9 2003-12-10 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api/Wine

	* include/basetsd.h: #include_next <basetsd.h>. Add definitions missing
	in w32api.
	* include/mmddk.h: #include_next <mmddk.h>. Add definitions missing in
	w32api.
	* include/wine/winternl.h (DbgPrint): Use ReactOS prototype to avoid
	conflicts.

svn path=/trunk/; revision=6951
2003-12-10 20:15:51 +00:00
Thomas Bluemel
3a313ee195 added a (slightly modified) mdi test application from winprog.org. Thanks to Brook Miles aka theForger
svn path=/trunk/; revision=6950
2003-12-10 19:18:06 +00:00
Gé van Geldorp
71aa8f0389 Re-enabled call to NtUserFindExistingCursorIcon after w3seek found and
fixed the problem in it

svn path=/trunk/; revision=6949
2003-12-10 19:02:33 +00:00
Gé van Geldorp
26e57732ad Advancing the list pointer helps prevent infinite loops
svn path=/trunk/; revision=6948
2003-12-10 17:33:42 +00:00
Thomas Bluemel
d09553720e removed the WM_MDICREATE case from DefWindowProc because it should only be handled by the MDIClient class
svn path=/trunk/; revision=6947
2003-12-10 16:59:00 +00:00
Vizzini
c1e158eb0b minor fix by filip navara
svn path=/trunk/; revision=6946
2003-12-10 16:08:49 +00:00
Richard Campbell
e459bfb085 implemented WM_MDICREATE
svn path=/trunk/; revision=6945
2003-12-10 06:47:32 +00:00
Richard Campbell
0ae62e4d37 Sorry, ultraedit32 is REALLY starting to piss me off.
svn path=/trunk/; revision=6944
2003-12-10 05:41:21 +00:00
Richard Campbell
08ac08a433 Implemented OpenIcon()
svn path=/trunk/; revision=6943
2003-12-10 03:59:18 +00:00
Gé van Geldorp
2989352879 Handle \path\ending\in\slash\ directory searches
svn path=/trunk/; revision=6942
2003-12-09 23:37:59 +00:00
Gé van Geldorp
2f434abd37 Fix some Wine/ReactOS differences
svn path=/trunk/; revision=6941
2003-12-09 23:36:25 +00:00
Filip Navara
0b5e7d7f44 Fixes to get comctl32 compilable again.
svn path=/trunk/; revision=6940
2003-12-09 21:20:31 +00:00
Thomas Bluemel
a890849840 allow caching icons/cursors with different sizes
svn path=/trunk/; revision=6939
2003-12-09 20:58:16 +00:00
Filip Navara
75455da9ab Fixed exports of shlwapi.dll and added .cvsignore.
svn path=/trunk/; revision=6938
2003-12-09 20:07:01 +00:00
Gé van Geldorp
198d453823 Use GRPCURSORICONDIR instead of CURSORICONDIR (latter is defined wrong)
svn path=/trunk/; revision=6937
2003-12-09 19:45:37 +00:00
Gé van Geldorp
2acdd8da85 Temporarily deactivate LR_SHARED handling for icons
svn path=/trunk/; revision=6936
2003-12-09 19:43:38 +00:00
Thomas Bluemel
10e81a9d76 fixed small bug
svn path=/trunk/; revision=6935
2003-12-09 19:38:47 +00:00
Thomas Bluemel
d7faa0cc7a changed handle management of cursors/icons
svn path=/trunk/; revision=6934
2003-12-09 19:34:33 +00:00
Filip Navara
6bb203a698 Fixed compilation of shlwapi.dll.
svn path=/trunk/; revision=6933
2003-12-09 19:07:29 +00:00
Casper Hornstrup
23cb2784b6 2003-12-09 Casper S. Hornstrup <chorns@users.sourceforge.net>
* rules.mak (WINEBUILD): Define.
	* tools/winebuild/Makefile: New file.
	* tools/winebuild/import.c (ldcombine_files): Replace mkstemps with Win32
	APIs.
	* tools/winebuild/main.c (main): Win16 specs and relays are not supported.
	* tools/winebuild/spec32.c (EXCEPTION_WINE_STUB, EH_NONCONTINUABLE):
	Define.
	(BuildDef32File): Don't emit PRIVATE.

svn path=/trunk/; revision=6932
2003-12-09 19:02:19 +00:00
Casper Hornstrup
6bb605e497 2003-12-09 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/winebuild: Import winebuild from Wine (D20031208).

svn path=/trunk/; revision=6931
2003-12-09 18:44:25 +00:00
Filip Navara
6830b8c962 Some compilation fixes,
svn path=/trunk/; revision=6930
2003-12-09 18:35:14 +00:00
Gé van Geldorp
adca6ce537 Use default langid if no resource langid given
svn path=/trunk/; revision=6929
2003-12-09 18:22:29 +00:00
Filip Navara
f420913748 Initial port of shlwapi.dll from Wine that doesn't compile yet. I don't want to keep it private, but there is still one file that doesn't compile. If anyone wants to go and fix it, feel free to do so.
svn path=/trunk/; revision=6928
2003-12-09 16:50:53 +00:00
Filip Navara
8615f19c50 Preparing for import of new Wine DLLs...
svn path=/trunk/; revision=6927
2003-12-09 16:44:49 +00:00
Aleksey Bragin
f104e01daa Removed unnecessary debug message.
svn path=/trunk/; revision=6926
2003-12-09 14:28:48 +00:00
Gé van Geldorp
a58f6413da Handle NULL FilePart
svn path=/trunk/; revision=6925
2003-12-09 10:38:05 +00:00
Gé van Geldorp
59ca8af658 Release mutex if handle not found
svn path=/trunk/; revision=6924
2003-12-08 22:51:11 +00:00
Casper Hornstrup
61fe50f6f6 2003-12-08 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/win32k/text.h (NtGdiExtTextOut): Follow ExtTextOut prototype.
	* lib/gdi32/objects/text.c (ExtTextOutW): Call NtGdiExtTextOut().
	* lib/user32/controls/edit.c (EDIT_BuildLineDefs_ML): Order parameters to
	CreateRectRgn().
	* lib/user32/windows/draw.c (TabbedTextOutA): Implement.
	(TEXT_TabbedTextOut): New function.
	(TabbedTextOutW): Implement.
	* subsys/win32k/objects/text.c (NtGdiExtTextOut): Call NtGdiTextOut() for
	now.

svn path=/trunk/; revision=6923
2003-12-08 20:58:44 +00:00
Gé van Geldorp
bfb695a0b4 Introduce separate lock for hardware message list
svn path=/trunk/; revision=6922
2003-12-08 20:40:41 +00:00
Hartmut Birr
6edff6b843 - Open the file for synchronous access in OpenFile.
svn path=/trunk/; revision=6921
2003-12-08 19:50:31 +00:00
Hartmut Birr
24c6c9673c - Check for illegal characters for short file names in RtlIsNameLegalDOS8Dot3.
svn path=/trunk/; revision=6920
2003-12-08 19:47:07 +00:00
Filip Navara
a060d87754 Fix for buggy libc under Linux. Patch by Sebastian Schmidt <yath@yath.eu.org>.
svn path=/trunk/; revision=6919
2003-12-08 19:17:56 +00:00
Filip Navara
592352cbb8 Converted '.phony' to '.PHONY'. Patch by Sebastian Schmidt.
svn path=/trunk/; revision=6918
2003-12-08 19:10:44 +00:00
Aleksey Bragin
52522c1d07 EngStretchBlt() removed from stubs
svn path=/trunk/; revision=6917
2003-12-08 18:41:59 +00:00
Filip Navara
7c18970a16 Implementation of ScrollWindow, ScrollWindowEx, ScrollDC and DDE ported from Wine.
svn path=/trunk/; revision=6916
2003-12-08 18:21:25 +00:00
Aleksey Bragin
893644d308 Changes to NtGdiStretchBlt().
If you encounter any problems compiling (though you shouldn't) -- I'm in IRC now.

svn path=/trunk/; revision=6915
2003-12-08 18:09:08 +00:00
Aleksey Bragin
2a9609d601 Note SURFGDI structure change --- added new DIB function called DIB_StretchBlt().
StretchBlt() skeleton is now working as it should (w/o some clipping, stretching modes set, but all this is marked either as FIXME or TODO).

svn path=/trunk/; revision=6914
2003-12-08 18:07:56 +00:00
Aleksey Bragin
c1eb7e7ef1 Added stubs for DIB_StretchBlt() functions for each BPP
svn path=/trunk/; revision=6913
2003-12-08 18:05:30 +00:00
Aleksey Bragin
c7588268ef Added IntEngStretchBlt() implementation.
If your video driver supports DrvStretchBlt(), it should already work.

svn path=/trunk/; revision=6912
2003-12-08 11:11:11 +00:00
Aleksey Bragin
d4638a1fd5 Added initial NtGdiStretchBlt() implementation
svn path=/trunk/; revision=6911
2003-12-08 11:10:02 +00:00
Aleksey Bragin
5d1f3e4b20 Added declaration of IntEngStretchBlt()
svn path=/trunk/; revision=6910
2003-12-08 11:08:27 +00:00
Gé van Geldorp
813825fd27 Handle NULL fname
svn path=/trunk/; revision=6909
2003-12-08 10:25:26 +00:00
Gé van Geldorp
89d0892531 Move desktop window proc from WIN32K to CSRSS
svn path=/trunk/; revision=6908
2003-12-07 23:02:57 +00:00
Thomas Bluemel
bfcd20af5e added check for hInstance in UnregisterClass()
svn path=/trunk/; revision=6907
2003-12-07 23:01:01 +00:00
Filip Navara
088e628e66 Implementation of _expand and _msize.
svn path=/trunk/; revision=6906
2003-12-07 22:59:13 +00:00
Thomas Bluemel
24c9fab813 implemented UnregisterClass()
svn path=/trunk/; revision=6905
2003-12-07 22:25:34 +00:00
Thomas Bluemel
7c98a98880 moved desktop code to desktop.c
svn path=/trunk/; revision=6904
2003-12-07 19:29:33 +00:00
Filip Navara
62acb5b575 Basic implementation of CopyImage and FindWidowExA.
svn path=/trunk/; revision=6903
2003-12-07 18:54:15 +00:00
Thomas Bluemel
11eed94164 fixed minor bug
svn path=/trunk/; revision=6902
2003-12-07 17:22:13 +00:00
Casper Hornstrup
13a5b00db7 2003-12-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/windows/accel.c (U32IsValidAccelMessage): Translate WM_KEYUP
	and WM_SYSKEYUP messages.
	(TranslateAcceleratorA): Returntype of RtlMultiByteToUnicodeN is NTSTATUS,
	so interpret it as such.
	* subsys/win32k/ntuser/accelerator.c (NtUserDestroyAcceleratorTable):
	Call ObmCloseHandle() before destroying the object.
	(IntTranslateAccelerator): New function.
	(NtUserTranslateAccelerator): Partial implementation.

svn path=/trunk/; revision=6901
2003-12-07 16:54:44 +00:00
Martin Fuchs
d85259d689 relative paths for option STRIP_FROM_PATH; avtivate source browsing
svn path=/trunk/; revision=6900
2003-12-07 16:46:31 +00:00
Martin Fuchs
9dd0e68761 make docu
svn path=/trunk/; revision=6899
2003-12-07 15:16:17 +00:00
Thomas Bluemel
7a1f816ca0 implemented NtUserCopyAcceleratorTable()
svn path=/trunk/; revision=6898
2003-12-07 14:21:00 +00:00
Martin Fuchs
79b526c30c comment
svn path=/trunk/; revision=6897
2003-12-07 13:40:08 +00:00
Martin Fuchs
5c0386cd16 incldue/exclude cleanup
svn path=/trunk/; revision=6896
2003-12-07 13:20:05 +00:00
Thomas Bluemel
62a63e2892 fixed releasing window object
svn path=/trunk/; revision=6895
2003-12-07 13:14:22 +00:00
Martin Fuchs
c5db293dcf added lib Doxygen config file
svn path=/trunk/; revision=6894
2003-12-07 13:08:02 +00:00
Martin Fuchs
39c8ef6f55 fix freetype typo
svn path=/trunk/; revision=6893
2003-12-07 13:00:18 +00:00
Casper Hornstrup
5efa33af96 2003-12-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/win32k/include/accelerator.h: New file.
	* subsys/win32k/ntuser/accelerator.c: Ditto.
	* include/win32k/ntuser.h (NtUserDestroyAcceleratorTable): Make returntype
	BOOLEAN.
	* subsys/win32k/makefile (NTUSER_OBJECTS): Add ntuser/accelerator.o.
	* subsys/win32k/include/object.h (USER_OBJECT_TYPE): Add otAcceleratorTable.
	* subsys/win32k/main/dllmain.c (DllMain): Call InitAcceleratorImpl().
	* subsys/win32k/ntuser/stubs.c (NtUserCopyAcceleratorTable,
	NtUserCreateAcceleratorTable, NtUserDestroyAcceleratorTable,
	NtUserTranslateAccelerator): Move to accelerator.c.

svn path=/trunk/; revision=6892
2003-12-07 12:59:34 +00:00
Martin Fuchs
22e15cb2f5 disabled pipetools compilation for cross compilation
svn path=/trunk/; revision=6891
2003-12-07 12:54:13 +00:00
Casper Hornstrup
b04c081348 2003-12-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/tests/accelerator: New directory.
	* apps/tests/accelerator/accelerator.c: New file.
	* apps/tests/accelerator/.cvsignore: Ditto.
	* apps/tests/accelerator/Makefile: Ditto.
	* apps/tests/Makefile (TEST_APPS): Add accelerator.

svn path=/trunk/; revision=6890
2003-12-07 12:40:22 +00:00
Martin Fuchs
35e7df613e removed buildno.h from CVS
svn path=/trunk/; revision=6889
2003-12-07 12:38:55 +00:00
Martin Fuchs
2977c52afb Spaces
svn path=/trunk/; revision=6888
2003-12-07 12:10:09 +00:00
Martin Fuchs
d240c51df0 added doxygen config file for NTDLL and Freetype
svn path=/trunk/; revision=6887
2003-12-07 12:08:20 +00:00
Martin Fuchs
e1ad4ca5fc added doxygen config file for Freetype
svn path=/trunk/; revision=6886
2003-12-07 12:07:58 +00:00
Martin Fuchs
d490efa934 added doxygen config file for NTDLL
svn path=/trunk/; revision=6885
2003-12-07 12:06:45 +00:00
Martin Fuchs
659fa2aab8 added doxygen config file
svn path=/trunk/; revision=6884
2003-12-07 12:06:15 +00:00
Casper Hornstrup
3e8873192b 2003-12-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* regtests/Makefile: Generate regression test registrations.
	* regtests/kmregtests/.cvsignore: Ignore Makefile.tests.
	* regtests/win32base/.cvsignore: Ditto.
	* regtests/kmregtests/Makefile: Include Makefile.tests.
	* regtests/win32base/Makefile: Ditto.
	* regtests/kmregtests/tests: New directory.
	* regtests/win32base/tests: Ditto.
	* regtests/kmregtests/tests/.cvsignore: New file.
	* regtests/win32base/tests/.cvsignore: Ditto.
	* tools/helper.mk: Remove TARGET_GENREGTESTS.
	* tools/regtests.c: Generate makefile for regression tests.
	(change_extension): New function.
	* regtests/win32base/file-1.c: Move ...
	* regtests/win32base/tests/file-1.c: ... here.

svn path=/trunk/; revision=6883
2003-12-07 11:34:41 +00:00
Filip Navara
c22a7eb6ed Basic StretchDIBits implementation.
svn path=/trunk/; revision=6882
2003-12-07 10:31:56 +00:00
Filip Navara
419d47d89f Window classes/Atom fixes
svn path=/trunk/; revision=6881
2003-12-07 10:31:22 +00:00
Martin Fuchs
b2c247faf1 corrected EXCLUDE option
svn path=/trunk/; revision=6880
2003-12-07 08:35:57 +00:00
Filip Navara
08dcc0e1a6 Modification for compatibility with crtdll.
svn path=/trunk/; revision=6879
2003-12-07 08:23:18 +00:00
Thomas Bluemel
bcee43d68f a few changes
svn path=/trunk/; revision=6878
2003-12-07 01:17:28 +00:00
Thomas Bluemel
2be74a0eb2 added userinit application
svn path=/trunk/; revision=6877
2003-12-07 01:12:58 +00:00
Martin Fuchs
157d55a8aa adjusted tree view width
svn path=/trunk/; revision=6876
2003-12-07 00:15:40 +00:00
Martin Fuchs
d95e0e6fac adjusted doxygen options
svn path=/trunk/; revision=6875
2003-12-07 00:10:21 +00:00
Thomas Bluemel
0b4f93260c some more work on winlogon
svn path=/trunk/; revision=6874
2003-12-07 00:04:20 +00:00
Thomas Bluemel
ab4deea68c make CreateProcessAsUser() call CreateProcess() as we don't support user login
svn path=/trunk/; revision=6873
2003-12-06 23:29:35 +00:00
Martin Fuchs
f32217a0af initial doxygen configuration
svn path=/trunk/; revision=6872
2003-12-06 23:26:20 +00:00
Martin Fuchs
7a059d5382 integrated explorer documentaion build
svn path=/trunk/; revision=6871
2003-12-06 23:22:30 +00:00
Martin Fuchs
18173aff8b initial doxygen configuraion
svn path=/trunk/; revision=6870
2003-12-06 23:11:41 +00:00
Martin Fuchs
c327cd0a03 adjust displayed file tree
svn path=/trunk/; revision=6869
2003-12-06 21:04:22 +00:00
Filip Navara
6d529771a4 Bugfixes
svn path=/trunk/; revision=6868
2003-12-06 20:58:27 +00:00
Martin Fuchs
ba1e3f3b39 one more correction
svn path=/trunk/; revision=6867
2003-12-06 20:30:35 +00:00
Martin Fuchs
3e8376db45 corrected implementation of backup stream reading
svn path=/trunk/; revision=6866
2003-12-06 20:21:08 +00:00
Martin Fuchs
e8ecaa9aa1 basic support to display NTFS streams in winefile windows
svn path=/trunk/; revision=6865
2003-12-06 17:15:38 +00:00
Filip Navara
558e83ae6a - Removed winedbgc.dll from reactos.dff. Reported by Casper Hornstrup.
svn path=/trunk/; revision=6864
2003-12-05 16:21:03 +00:00
Gé van Geldorp
1359df41a4 Make room for error status code when invalid request is received
svn path=/trunk/; revision=6863
2003-12-05 08:43:16 +00:00
Aleksey Bragin
08340b2f6f Make StretchBlt() call NtGdiStretchBlt() if src and dest sizes differs, otherwise calls BitBlt() as it was already done.
svn path=/trunk/; revision=6862
2003-12-04 21:37:07 +00:00
Aleksey Bragin
578a12d532 Skeleton of NtGdiStretchBlt() implemented.
svn path=/trunk/; revision=6861
2003-12-04 21:35:11 +00:00
Richard Campbell
8a1c4241be Added a branch of linux-ntfs based on kernel 2.6.0test11, this can be used as a FOUNDATION for building a STABLE read/write ntfs driver. check out http://linux-ntfs.sf.net for details on this driver.
svn path=/trunk/; revision=6860
2003-12-04 18:03:56 +00:00
Filip Navara
f0d7ce034e - Fixed MSVCRTand CRTDLL building.
svn path=/trunk/; revision=6859
2003-12-04 13:23:26 +00:00
Gé van Geldorp
1ffe9401f6 Remove direct references from csrss to win32k (call via user32/gdi32 only)
svn path=/trunk/; revision=6858
2003-12-03 21:50:50 +00:00
Gé van Geldorp
42158841dc Don't release a mutex which wasn't acquired
svn path=/trunk/; revision=6857
2003-12-03 21:38:14 +00:00
Gé van Geldorp
06f996f723 Properly initialize variable before it is used
svn path=/trunk/; revision=6856
2003-12-03 21:37:34 +00:00
Gé van Geldorp
e11e69e45f Fix creation of display-compatible DCs
svn path=/trunk/; revision=6855
2003-12-03 19:28:23 +00:00
Filip Navara
4db35a9424 - Fixed a typo.
svn path=/trunk/; revision=6854
2003-12-03 18:58:41 +00:00
Filip Navara
a27b1a9ef3 - Patched prsht.h bug reported by Jonathan Wilson.
- Applied MSVCRT_doserrno patch by Mark Weaver <mark@npsl.co.uk>.

svn path=/trunk/; revision=6853
2003-12-03 17:17:03 +00:00
Gé van Geldorp
883794822c Clean up attach hack a little bit, it's still a hack though
svn path=/trunk/; revision=6852
2003-12-03 16:57:22 +00:00
Gé van Geldorp
14f190d1d4 Handle ClipRegion == 1 as a special case in NtUserGetDCEx()
svn path=/trunk/; revision=6851
2003-12-03 08:19:03 +00:00
Filip Navara
c2e130256e Fixed build errors.
svn path=/trunk/; revision=6850
2003-12-02 20:13:30 +00:00
Filip Navara
b4e30cf77b - Attempt to fix window activation bugs reported by G� van Geldorp and Thomas Weidenmueller.
svn path=/trunk/; revision=6849
2003-12-02 19:58:54 +00:00
Filip Navara
c2642685e7 - Replaced winedbg.dll with static library libwine.a.
svn path=/trunk/; revision=6848
2003-12-02 18:12:05 +00:00
Gé van Geldorp
9b6a56054d Fix called routine names
svn path=/trunk/; revision=6847
2003-12-02 11:45:37 +00:00
Gé van Geldorp
01c43b8e32 CSRSS code shuffle
svn path=/trunk/; revision=6846
2003-12-02 11:44:01 +00:00
Gé van Geldorp
4e366db69f CSRSS code reshuffle
svn path=/trunk/; revision=6845
2003-12-02 11:38:47 +00:00
Steven Edwards
ea6699f39e Removed the old Winedbg.c from NTDLL.
svn path=/trunk/; revision=6844
2003-12-01 23:09:56 +00:00
Filip Navara
5a08456bc0 - Cleaned up unused bits of winedbgc.
svn path=/trunk/; revision=6843
2003-12-01 21:59:49 +00:00
Filip Navara
76a9aa1474 - Some small fixes on debugging macros.
- Translating of most Wine debugging macros to ReactOS ones.

svn path=/trunk/; revision=6842
2003-12-01 18:28:54 +00:00
Thomas Bluemel
e4b1dac7b7 some work on winlogon
svn path=/trunk/; revision=6841
2003-12-01 18:21:04 +00:00
Martin Fuchs
695f82be0d fixed clean target
svn path=/trunk/; revision=6840
2003-11-30 22:49:12 +00:00
Martin Fuchs
d049dc52ef added first version of pipetools; fixed clean target
svn path=/trunk/; revision=6839
2003-11-30 22:48:54 +00:00
Martin Fuchs
85ba55d94e added first version of pipetools
svn path=/trunk/; revision=6838
2003-11-30 22:48:19 +00:00
Filip Navara
ef4ad83edf Attempt to fix WinPosActivateOtherWindow problem reported by GvG.
svn path=/trunk/; revision=6837
2003-11-30 22:48:11 +00:00
Gunnar Dalsnes
1c863eef7a -temporary and ugly fix/work-around for a bug that made CreateFileW crash
when calling it directly (meaning not indirectly thru CreateFileA)

svn path=/trunk/; revision=6836
2003-11-30 20:48:07 +00:00
Gunnar Dalsnes
0901ecbf1a -made an inadvertent asynch. read into a synch. read
svn path=/trunk/; revision=6835
2003-11-30 20:37:34 +00:00
Filip Navara
7603377ffd Forgot to add these files.
svn path=/trunk/; revision=6834
2003-11-30 20:29:09 +00:00
Filip Navara
791bef9a1b Work on activation/focus.
svn path=/trunk/; revision=6833
2003-11-30 20:03:47 +00:00
Gunnar Dalsnes
863613cbbd -user apc was called with incorrect SystemParameter1
svn path=/trunk/; revision=6832
2003-11-30 20:03:01 +00:00
Gunnar Dalsnes
33ab7e9567 -hopefully fix bug where IoSecondStageCompletion was sometimes
called at DISPATCH_LEVEL

svn path=/trunk/; revision=6831
2003-11-30 20:01:05 +00:00
Gunnar Dalsnes
322bc58d98 -removed "safe" stuff
-ByteOffset is not optional for asynch. operations!!!
-fixes and cleanup

svn path=/trunk/; revision=6830
2003-11-30 19:59:41 +00:00
Gunnar Dalsnes
764fff22b4 -ReadFile(Ex)/WriteFile(Ex): fixed return values and last errors to comply
with sdk
-ReadFileEx/WriteFileEx: fixed apc callback routine

svn path=/trunk/; revision=6829
2003-11-30 19:50:42 +00:00
Gé van Geldorp
6cbc61a453 Hack around attaching a process to an already attached thread
svn path=/trunk/; revision=6828
2003-11-30 19:15:21 +00:00
Gunnar Dalsnes
d6b77edb3c After enabling regular kmode APC's I have experienced random crashes.
I'm disabling it again, until we fix the APC implementation...

svn path=/trunk/; revision=6827
2003-11-30 19:00:02 +00:00
Gé van Geldorp
31c9e79de0 Silence confusing debug message
svn path=/trunk/; revision=6826
2003-11-30 18:55:57 +00:00
Gunnar Dalsnes
f495637b1f added error checking macros
svn path=/trunk/; revision=6825
2003-11-30 18:51:43 +00:00
Hartmut Birr
ee52d15ec0 - Call MmDeletePageFileMapping with the process in MmNotPresentFaultVirtualMemory.
This is necessary for dereferencing the user mode page table.

svn path=/trunk/; revision=6824
2003-11-30 17:24:22 +00:00
Hartmut Birr
36e302cc70 - Use binary search for the offset within the pagefile.
- Reduce the overhead for retrieving the sector offsets for page files while initialisation.

svn path=/trunk/; revision=6823
2003-11-30 17:19:28 +00:00
Hartmut Birr
8f5fca485e - Protect the region for the kernel mapped low memory with a memory area.
- Unmap the mapped low memory above 1mb (0xd0100000-0xd03fffff).

svn path=/trunk/; revision=6822
2003-11-30 17:17:02 +00:00
Martin Fuchs
949a4954aa added -break command line option for debug breakpoints
svn path=/trunk/; revision=6821
2003-11-30 17:13:28 +00:00
Steven Edwards
d9cd4fb435 Cabman is now a build tool. So we can remove this copy.
svn path=/trunk/; revision=6820
2003-11-29 22:08:44 +00:00
Martin Fuchs
13347e7de3 implemented GDB stub for remote debugging
svn path=/trunk/; revision=6819
2003-11-29 21:56:23 +00:00
Casper Hornstrup
13400788e1 2003-11-29 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/cabman/dfp.cxx (CDFParser::Parse): Allow TokenString.
	(CDFParser::PerformFileCopy): Use CurrentChar instead of length of
	CurrentString to find the start of the next token.

svn path=/trunk/; revision=6818
2003-11-29 19:30:19 +00:00
Steven Edwards
977cdc663a add a winternl.h header untill Mingw has one or our SDK is fixed.
svn path=/trunk/; revision=6817
2003-11-29 18:09:43 +00:00
Richard Campbell
16f8dec540 Install comctl32, winmm, and ole32
svn path=/trunk/; revision=6816
2003-11-29 14:46:12 +00:00
Richard Campbell
4b9a27a78a Added winmm, comctl32, and ole32 to the build system since they now properly build
svn path=/trunk/; revision=6815
2003-11-29 14:41:45 +00:00
Richard Campbell
13154777a5 temporarily commented out CreateStreamOnHGlobal, this gets ole32 compiling with the ROS build system
svn path=/trunk/; revision=6814
2003-11-29 14:40:40 +00:00
Richard Campbell
4dac7c9df2 commented out the GUID definition since it's already defined elsewhere
svn path=/trunk/; revision=6813
2003-11-29 14:38:16 +00:00
Steven Edwards
b63bf89d46 Updated license header to reflect relicense by Brian Palmer.
Converted Comments from C++ style to C.
(WINE is going to adopt our taskmgr soon)

svn path=/trunk/; revision=6812
2003-11-29 02:31:24 +00:00
Eric Kohl
1fb5fb5f1e Ignore event object for synchronous file operations.
svn path=/trunk/; revision=6811
2003-11-28 17:17:44 +00:00
Gé van Geldorp
b504c52de2 Fix single-stepping through usermode code
svn path=/trunk/; revision=6810
2003-11-27 22:58:24 +00:00
Gunnar Dalsnes
8a62f29d9e misc
svn path=/trunk/; revision=6809
2003-11-27 20:57:58 +00:00
Gunnar Dalsnes
d31fda6197 return correct info when overwriting files
svn path=/trunk/; revision=6808
2003-11-27 20:49:07 +00:00
Gunnar Dalsnes
b4d0d3aaf0 apc work
svn path=/trunk/; revision=6807
2003-11-27 01:13:05 +00:00
Gunnar Dalsnes
05dd288048 fixed/improved GetOverlappedResult
svn path=/trunk/; revision=6806
2003-11-27 00:57:57 +00:00
Gunnar Dalsnes
ebdb1b6328 disable regular kmode apc's around Resource locks
svn path=/trunk/; revision=6805
2003-11-27 00:52:16 +00:00
Gé van Geldorp
1d9998a97f Fix ownership of driver-created palettes
svn path=/trunk/; revision=6804
2003-11-26 22:24:04 +00:00
Filip Navara
0b8af550d1 - Small fixes to get combo boxes working.
svn path=/trunk/; revision=6803
2003-11-26 22:02:39 +00:00
Gé van Geldorp
b92c914a3d Fix some GDIOBJ ownership issues
svn path=/trunk/; revision=6802
2003-11-26 21:48:35 +00:00
Filip Navara
c9d415f9d2 - Support for index NUMRESERVED in NtGdiGetDeviceCaps.
svn path=/trunk/; revision=6801
2003-11-26 18:44:08 +00:00
Vizzini
fcfd77241a Fixed a race condition on unload, other minor clean-up, now loads and runs correctly on win2ksp4 checked w/ full verifier
svn path=/trunk/; revision=6800
2003-11-26 09:12:07 +00:00
Art Yerkes
d50eee1838 Fixes described in resolution to bug #51.
svn path=/trunk/; revision=6799
2003-11-26 04:38:25 +00:00
Gé van Geldorp
d1dcdd7a8d Fix DC leak
svn path=/trunk/; revision=6798
2003-11-25 23:47:10 +00:00
Gé van Geldorp
12903da5d6 Avoid message about invalid GDI object
svn path=/trunk/; revision=6797
2003-11-25 23:46:23 +00:00
Gé van Geldorp
a6e0b948ad Silence debug messages again
svn path=/trunk/; revision=6796
2003-11-25 22:28:00 +00:00
Gé van Geldorp
8122f72b7d Switch screen to graphics mode when the first window or DC is created
and switch back to text mode when the last app which created a window
or DC terminates

svn path=/trunk/; revision=6795
2003-11-25 22:11:37 +00:00
Gé van Geldorp
152368464d Switch screen to graphics mode when the first window or DC is created
and switch back to text mode when the last app which created a window
or DC terminates

svn path=/trunk/; revision=6794
2003-11-25 22:06:31 +00:00
Art Yerkes
500ec5fe43 Shift now cancels Numlock, as it does on real windows.
svn path=/trunk/; revision=6793
2003-11-25 01:09:06 +00:00
Gé van Geldorp
5e30da094e Clean up DCEs when switching out of graphics mode
svn path=/trunk/; revision=6792
2003-11-24 21:20:35 +00:00
Filip Navara
c4f578c98c - Small SetWindowPos fixes.
svn path=/trunk/; revision=6791
2003-11-24 21:01:20 +00:00
Eric Kohl
cadbbd51c9 Remove 'dist' target.
svn path=/trunk/; revision=6790
2003-11-24 20:39:16 +00:00
Eric Kohl
007e7e2dff Remove 'dist' target.
Don't build gditest any longer.

svn path=/trunk/; revision=6789
2003-11-24 20:37:35 +00:00
Eric Kohl
164e88185b Build registry hives in 'make install'.
Don't build gstart any longer.

svn path=/trunk/; revision=6788
2003-11-24 20:36:49 +00:00
Thomas Bluemel
c3ba871830 implemented WlxStartApplication() and WlxActivateUserShell()
svn path=/trunk/; revision=6787
2003-11-24 19:04:23 +00:00
Thomas Bluemel
42e71f0a9a implemented WlxInitialize()
svn path=/trunk/; revision=6786
2003-11-24 17:24:29 +00:00
Eric Kohl
337d61cb38 Remove 'dist' target
svn path=/trunk/; revision=6784
2003-11-24 16:48:41 +00:00
Eric Kohl
f20728dbc4 Print received error message.
svn path=/trunk/; revision=6783
2003-11-24 16:41:41 +00:00
Gé van Geldorp
1e4cbe0f46 Silence debug messages
svn path=/trunk/; revision=6782
2003-11-24 16:19:58 +00:00
Thomas Bluemel
950a4d9cea implemented WlxNegotiate()
svn path=/trunk/; revision=6781
2003-11-24 15:28:54 +00:00
Eric Kohl
befdc5d94a Tiny cleanup.
svn path=/trunk/; revision=6780
2003-11-24 14:53:02 +00:00
Eric Kohl
82a3cf5fc1 - Remove 'dist' target.
- Set default install directory for windows to 'C:\reactos'.
- Remove dependency checks from 'install' and 'bootcd' targets.

svn path=/trunk/; revision=6779
2003-11-24 14:41:29 +00:00
Thomas Bluemel
7dde2ec587 added header file for msgina
svn path=/trunk/; revision=6778
2003-11-24 14:28:27 +00:00
Thomas Bluemel
2432b2c7e8 added skeleton for msgina.dll
svn path=/trunk/; revision=6777
2003-11-24 14:25:28 +00:00
Gé van Geldorp
71664eb842 Silence debug messages
svn path=/trunk/; revision=6776
2003-11-24 14:19:52 +00:00
Gé van Geldorp
efdbadfbef Silence debug messages
svn path=/trunk/; revision=6775
2003-11-24 14:04:36 +00:00
Thomas Bluemel
415bdc5e7c moved IntIsMenu() to menu.c
svn path=/trunk/; revision=6774
2003-11-24 09:27:54 +00:00
Art Yerkes
a370e8e8d3 Sorry, did a bad commit on this file. Reverting to 1.143, the previous rev.
svn path=/trunk/; revision=6773
2003-11-24 00:26:08 +00:00
Art Yerkes
d792147982 These changes are described in earlier posts to the ros-kernel list.
I believe everything here is correct, Alt+Gr works with the french keyboard,
Numlock and Capslock work normally in my testing.

svn path=/trunk/; revision=6772
2003-11-24 00:22:53 +00:00
Gunnar Dalsnes
108b5183a6 Fixed to run on real Windows (but still doesn't run on ROS)
svn path=/trunk/; revision=6771
2003-11-24 00:12:04 +00:00
Martin Fuchs
b732658891 a bit of refactoring
svn path=/trunk/; revision=6770
2003-11-23 23:03:03 +00:00
Martin Fuchs
cfb3861175 enable console debug logs
svn path=/trunk/; revision=6769
2003-11-23 22:04:41 +00:00
Martin Fuchs
de8a2594e8 QuickLaunchBar-CONTEXT information
svn path=/trunk/; revision=6768
2003-11-23 20:00:43 +00:00
Martin Fuchs
963f962bc6 ANS/UNC utilities for ostringstream; more CONTEXT information
svn path=/trunk/; revision=6766
2003-11-23 15:44:14 +00:00
Martin Fuchs
5a5723bad2 Context Trace Outputs for Exceptions
svn path=/trunk/; revision=6765
2003-11-23 14:23:55 +00:00
Thomas Bluemel
e79ee7d5e6 added missing ObDereferenceObject calls
svn path=/trunk/; revision=6764
2003-11-23 13:46:33 +00:00
Thomas Bluemel
1d4b120ca5 use IntGetWindowObject() and IntReleaseWindowObject()
svn path=/trunk/; revision=6763
2003-11-23 12:41:42 +00:00
Thomas Bluemel
bfb5636854 moved IntIsMenu() to menu.c
svn path=/trunk/; revision=6762
2003-11-23 12:31:53 +00:00
Thomas Bluemel
b478b61c31 remove obsolete userobj code
svn path=/trunk/; revision=6761
2003-11-23 12:24:21 +00:00
Martin Fuchs
e900128ead logging using OutputDebugString()
svn path=/trunk/; revision=6760
2003-11-23 12:13:39 +00:00
Thomas Bluemel
2314762543 revert my implementation of WM_SETCURSOR messages
svn path=/trunk/; revision=6759
2003-11-23 12:08:00 +00:00
Thomas Bluemel
57264c6ac9 some fixes in NtUserGetGUIThreadInfo()
svn path=/trunk/; revision=6758
2003-11-23 12:04:54 +00:00
Filip Navara
9daca17473 - Added test for unimplemented EnumWindowStations and EnumDesktops functions.
- Small window station cleanup.

svn path=/trunk/; revision=6757
2003-11-23 11:39:48 +00:00
Martin Fuchs
83c21d74b3 _stprintf-fix
svn path=/trunk/; revision=6756
2003-11-23 03:10:14 +00:00
Martin Fuchs
17b9c8d455 CHECKERROR macro for file amd line info in Exceptions
svn path=/trunk/; revision=6755
2003-11-23 03:06:01 +00:00
Martin Fuchs
915d0c21ff added CONTEXT information to exceptions
svn path=/trunk/; revision=6754
2003-11-23 00:43:18 +00:00
Thomas Bluemel
668ad67060 only send WM_SETCURSOR messages when not capturing a window
svn path=/trunk/; revision=6753
2003-11-22 12:22:07 +00:00
Eric Kohl
d2c5f3b3b6 Minor cleanup.
svn path=/trunk/; revision=6752
2003-11-22 11:56:17 +00:00
Thomas Bluemel
6c6afa3794 get CursorBlinkRate from registry
svn path=/trunk/; revision=6751
2003-11-22 11:49:09 +00:00
Filip Navara
aadb87f5d7 - Fixed BitBlts with ROP != SRCCOPY.
- Added skeleton for NtUserCallHwndOpt.

svn path=/trunk/; revision=6750
2003-11-22 11:01:28 +00:00
Richard Campbell
ec4c966d0b revert my change, forgot i'm advapi isn't available in win32k, yes i'm a dumbass, it's official. Anyone know how to load/save settings from/to the registry in win32k?
svn path=/trunk/; revision=6749
2003-11-22 05:06:18 +00:00
Richard Campbell
874ee485d7 forgot to add FASTCALL
svn path=/trunk/; revision=6748
2003-11-22 01:51:05 +00:00
Richard Campbell
a1c96638c6 CursorBlinkRate is now loaded via the registry.
svn path=/trunk/; revision=6747
2003-11-22 01:49:39 +00:00
Richard Campbell
3efc298356 Added CursorBlinkRate setting, defaults to 530, the default for Windows XP
svn path=/trunk/; revision=6746
2003-11-22 01:49:08 +00:00
Thomas Bluemel
532cb947f9 small bugfix
svn path=/trunk/; revision=6745
2003-11-21 23:05:28 +00:00
Thomas Bluemel
72d71d1055 small bugfix
svn path=/trunk/; revision=6744
2003-11-21 22:46:27 +00:00
Eric Kohl
8366cbb31c Restart worker if it failed to send the log messages.
Add driver or device name to the log message.
Silence debug messages.

svn path=/trunk/; revision=6743
2003-11-21 22:28:50 +00:00
Filip Navara
348f231f03 - Updated comctl32.dll to latest WineHQ release.
svn path=/trunk/; revision=6742
2003-11-21 21:16:28 +00:00
Filip Navara
ba0efcb546 - Fixed multiwin.exe painting problem.
- Reverted my fix to cursoricon.c.

svn path=/trunk/; revision=6741
2003-11-21 21:12:09 +00:00
Royce Mitchell III
824b2303c4 added missing * to function pointer typedef 'exception_hook'
svn path=/trunk/; revision=6740
2003-11-21 20:26:35 +00:00
Filip Navara
c6dd56783c - A little more correct prototypes for NtGetPlugPlayEvent and NtPlugPlayControl. Does anybody know more about these functions?
svn path=/trunk/; revision=6739
2003-11-21 18:42:06 +00:00
Thomas Bluemel
0758139146 fixed hittest code to return HTBORDER if it's not a sizable window frame
svn path=/trunk/; revision=6738
2003-11-21 17:38:22 +00:00
Filip Navara
967fd54cdd - More painting bugfixes.
svn path=/trunk/; revision=6737
2003-11-21 17:01:16 +00:00
Thomas Bluemel
b14e35b6ac implement WM_SETCURSOR messages
svn path=/trunk/; revision=6736
2003-11-21 16:36:26 +00:00
Vizzini
83e288941c EA name handling fix
svn path=/trunk/; revision=6735
2003-11-21 00:06:58 +00:00
Thomas Bluemel
11cfdfc881 fixed crash when pressing a key while booting up
svn path=/trunk/; revision=6734
2003-11-20 22:28:49 +00:00
Vizzini
7531504712 updated install location of rundll32
svn path=/trunk/; revision=6733
2003-11-20 21:28:47 +00:00
Filip Navara
ef9cbc6dbf - More painting bugfixes. Still many bugs are left :-(
- Temporary disabled buggy code for setting window focus, because it causes many applications to crash.
- Fixed one FIXME in IntSetCursor.

svn path=/trunk/; revision=6732
2003-11-20 21:21:29 +00:00
Royce Mitchell III
ef60bea82e sped up strip_comments, and added File::SaveFromString() in the process of hunting down a recursive c include.
svn path=/trunk/; revision=6731
2003-11-20 18:27:33 +00:00
Vizzini
8a095f86fc TDI stuff I forgot to commit
svn path=/trunk/; revision=6730
2003-11-20 17:55:10 +00:00
Thomas Bluemel
b7f60af879 1. fixed SetProp()
2. implemented EnumProps() and EnumPropsEx()

svn path=/trunk/; revision=6729
2003-11-20 15:35:33 +00:00
Eric Kohl
ac510cefac Receive error log messages from the ErrorLogPort.
svn path=/trunk/; revision=6728
2003-11-20 11:09:49 +00:00
Eric Kohl
87b1b1f247 Build error log message and send it to the ErrorLogPort.
svn path=/trunk/; revision=6727
2003-11-20 11:08:52 +00:00
Eric Kohl
c966348df4 Fixed a cut-and-paste bug.
svn path=/trunk/; revision=6726
2003-11-20 11:06:35 +00:00
Filip Navara
06c149f1f1 - Painting bugfixes.
svn path=/trunk/; revision=6725
2003-11-20 09:18:49 +00:00
Vizzini
669a79e12b began refreshing tditest a bit
svn path=/trunk/; revision=6724
2003-11-20 06:31:51 +00:00
Vizzini
5997e35178 fixed a type name
svn path=/trunk/; revision=6723
2003-11-20 06:30:35 +00:00
Eric Kohl
ecc20f6dc5 Minor cleanup
svn path=/trunk/; revision=6722
2003-11-20 00:57:29 +00:00
Gunnar Dalsnes
ae3fddb31b HalRequestSoftwareInterrupt added
svn path=/trunk/; revision=6721
2003-11-19 22:39:01 +00:00
Steven Edwards
ed95d0bee5 Fixed FormatMessage[A/W] to not suck.
We now pass this kernel32 regression test.

svn path=/trunk/; revision=6720
2003-11-19 22:19:17 +00:00
Gunnar Dalsnes
c22bd852fd -KeLeaveCriticalRegion changes based on an article on ntfsd
svn path=/trunk/; revision=6719
2003-11-19 21:19:15 +00:00
Gunnar Dalsnes
0cceda5e2b -IoQueueThreadIrp impl.
svn path=/trunk/; revision=6718
2003-11-19 21:12:35 +00:00
Gunnar Dalsnes
9f05e5563f -HalRequestSoftwareInterrupt impl. (does nothing yet)
svn path=/trunk/; revision=6717
2003-11-19 21:04:21 +00:00
Gunnar Dalsnes
c9ee23ed15 -IoReuseIrp impl.
-Added missing define

svn path=/trunk/; revision=6716
2003-11-19 20:57:22 +00:00
Gunnar Dalsnes
4cb5f1126f IoReuseIrp impl.
IoQueueThreadIrp/IoEnqueueIrp impl.

svn path=/trunk/; revision=6715
2003-11-19 20:54:31 +00:00
Thomas Bluemel
1c86d55f2c small bugfix
svn path=/trunk/; revision=6714
2003-11-19 20:12:34 +00:00
Thomas Bluemel
7c0860d405 added a test app to test some (currently unimplemented) dialog functions
svn path=/trunk/; revision=6713
2003-11-19 19:59:57 +00:00
Royce Mitchell III
96d89d4dfa change to use input file list
svn path=/trunk/; revision=6712
2003-11-19 18:48:48 +00:00
Thomas Bluemel
54ebd5ce0e Patch by Jonathon Wilson:
add stubs to user32 and add partial non-working implementation of Message Pump Hooks

svn path=/trunk/; revision=6711
2003-11-19 13:19:40 +00:00
Filip Navara
0c998a6711 - Fixed importing forward exports by ordinal.
- Fixed export ordinals of wsock32.dll.
- Changed base addresses of mswsock.dll and wsock32.dll to match Win XP.

svn path=/trunk/; revision=6710
2003-11-19 13:16:22 +00:00
Eric Kohl
2612b909f3 Connect to the 'ErrorLogPort' and restart worker if connection fails.
svn path=/trunk/; revision=6709
2003-11-19 12:53:14 +00:00
Eric Kohl
8979b357a7 Add error log structs.
svn path=/trunk/; revision=6708
2003-11-19 12:50:11 +00:00
Thomas Bluemel
ded778c60a implemented CheckRadioButton()
svn path=/trunk/; revision=6707
2003-11-19 12:48:48 +00:00
Thomas Bluemel
8ac4a64766 forgot to add file
svn path=/trunk/; revision=6706
2003-11-19 12:33:32 +00:00
Thomas Bluemel
a55677b029 1. implemented GetGuiResources()
2. modified test app guithreadinfo to display additional information about the current process using GetGuiResources()

svn path=/trunk/; revision=6705
2003-11-19 12:25:03 +00:00
Richard Campbell
bc1f65ef73 install winedbgc.dll by default, this appears to fix an installation problem i'm having on my end with virtualpc 5.0
svn path=/trunk/; revision=6704
2003-11-19 10:21:17 +00:00
Richard Campbell
2fe49f7133 fixed compile error
svn path=/trunk/; revision=6703
2003-11-19 09:37:45 +00:00
Filip Navara
880ff5e0bd - Painting bugfixes.
svn path=/trunk/; revision=6702
2003-11-19 09:10:36 +00:00
Vizzini
fa60c511c7 patch for -Werror -Wall by jonathan wilson
svn path=/trunk/; revision=6701
2003-11-19 05:53:38 +00:00
Vizzini
d60d0aa990 patch by jonathan wilson to enable -Wall -Werror, and a path sep fix for unix by me
svn path=/trunk/; revision=6700
2003-11-19 05:47:28 +00:00
Vizzini
3a1972736a Fixes for compiling with -Wall -Werror on unix (tested with gcc-3.3)
svn path=/trunk/; revision=6699
2003-11-19 05:43:15 +00:00
Richard Campbell
11529b1abe temporarily removed imagehlp since it doesn't compile and i don't have the time nor interest to look into it myself
svn path=/trunk/; revision=6698
2003-11-19 03:20:25 +00:00
Vizzini
f8b24b07ce Updated version number
svn path=/trunk/; revision=6697
2003-11-19 02:46:13 +00:00
Thomas Bluemel
1bcf21b057 1. implemented GetGUIThreadInfo()
2. added test app for GetGUIThreadInfo()

svn path=/trunk/; revision=6696
2003-11-18 23:33:31 +00:00
Steven Edwards
fc42ec41b9 Added rpcrt4.dll and imagehlp.dll to the Makefile
svn path=/trunk/; revision=6695
2003-11-18 22:28:24 +00:00
Steven Edwards
56ec5a6edb Added user32 regression test from Wine.
svn path=/trunk/; revision=6694
2003-11-18 22:24:42 +00:00
Steven Edwards
7cc107f887 Moved rpcrt4 regression test to a better location.
svn path=/trunk/; revision=6693
2003-11-18 22:08:11 +00:00
Steven Edwards
ab82fe8f92 Moving ported WINE regression tests
svn path=/trunk/; revision=6692
2003-11-18 22:07:13 +00:00
Filip Navara
1ccabd4c8e - Rewritten painting implementation (not complete yet, but better then the current).
- Bug fixes.

svn path=/trunk/; revision=6691
2003-11-18 20:49:39 +00:00
Eric Kohl
cb10422980 Initialize error log worker.
svn path=/trunk/; revision=6690
2003-11-18 20:08:30 +00:00
Thomas Bluemel
69a485aba7 added LR_SHARED flag support for LoadIcon() and LoadCursor()
svn path=/trunk/; revision=6689
2003-11-18 19:59:51 +00:00
Steven Edwards
7fd98f181c RLE4/8 Bitmap Compression support.
Patch by Jonathan Wilson.

svn path=/trunk/; revision=6687
2003-11-18 18:05:40 +00:00
Eric Kohl
8fd7fe8abb Fixed directory creation date.
Typo found by Vadim A. Yagodkin.

svn path=/trunk/; revision=6686
2003-11-18 17:40:46 +00:00
Royce Mitchell III
1f5f11925a more special-cases
svn path=/trunk/; revision=6685
2003-11-18 05:20:00 +00:00
Royce Mitchell III
6c1d0b1576 remove unnecessary include
svn path=/trunk/; revision=6684
2003-11-18 05:17:22 +00:00
Royce Mitchell III
ca5684f167 added missing ;
svn path=/trunk/; revision=6683
2003-11-18 05:11:41 +00:00
Royce Mitchell III
3d93ac09f7 fix circular-dependency include
svn path=/trunk/; revision=6682
2003-11-18 05:09:17 +00:00
Steven Edwards
5dd7488660 Add -Wall -Werror and turn off -D__USE_W32API
svn path=/trunk/; revision=6681
2003-11-17 20:48:22 +00:00
Steven Edwards
0db4c66b1e Fixes for ntdll rtl and large int tests.
Added crc32 support to ntdll.
fix some unimplemented tags.

svn path=/trunk/; revision=6680
2003-11-17 20:35:46 +00:00
Royce Mitchell III
cdf123c30d handle functions that take function ptrs as args
svn path=/trunk/; revision=6679
2003-11-17 19:27:57 +00:00
Filip Navara
5e87359eaa - Support for RASTERCAPS in NtGdiGetDeviceCaps.
svn path=/trunk/; revision=6678
2003-11-17 08:20:24 +00:00
Royce Mitchell III
863b04b187 more special cases
svn path=/trunk/; revision=6677
2003-11-17 04:05:54 +00:00
KJK::Hyperion
38b48068ac Theme dumper almost finished, but not working correctly
svn path=/trunk/; revision=6676
2003-11-17 02:36:36 +00:00
KJK::Hyperion
dfabfaeccf Forgot a file
svn path=/trunk/; revision=6675
2003-11-17 02:32:45 +00:00
KJK::Hyperion
40e2bff3e7 Moved and renamed some ReactOS specific macros
svn path=/trunk/; revision=6672
2003-11-17 02:12:52 +00:00
Steven Edwards
8da4aa2712 Added port of LineDDA function from WINE.
svn path=/trunk/; revision=6671
2003-11-16 22:44:39 +00:00
Steven Edwards
03600c758d Added -D__USE_W32API
svn path=/trunk/; revision=6670
2003-11-16 22:42:43 +00:00
Steven Edwards
1172647efd Added -D__USE_W32API
svn path=/trunk/; revision=6669
2003-11-16 22:25:34 +00:00
Steven Edwards
a85264fc25 Added -D__USE_W32API
svn path=/trunk/; revision=6668
2003-11-16 21:47:20 +00:00
Eric Kohl
241482601d Use a safe IO_STATUS_BLOCK from the kernel stack.
svn path=/trunk/; revision=6667
2003-11-16 21:03:59 +00:00
Eric Kohl
b5b0d3d61c Open initial executable file synchronously.
svn path=/trunk/; revision=6666
2003-11-16 21:02:07 +00:00
Hartmut Birr
d0455ad11e - Moved the pager thread as balancer thread to balance.c.
- Fixed some deadlock conditions for low memory situations.

svn path=/trunk/; revision=6665
2003-11-16 15:20:39 +00:00
Hartmut Birr
29e31c6fb0 - Create a memory area for the kpcr.
- Fixed the end address for unmapping unused address space behind the kernel.
- Free some unmapped pages.
- Initialized the pageop and rmap implementation earlier in the startup process.

svn path=/trunk/; revision=6664
2003-11-16 15:19:28 +00:00
Hartmut Birr
6dbdc4ff63 - Initialized lookaside lists earlier in the startup process.
svn path=/trunk/; revision=6663
2003-11-16 15:17:46 +00:00
Martin Fuchs
d26666b86c added OLE error messages
svn path=/trunk/; revision=6662
2003-11-16 14:01:29 +00:00
Eric Kohl
662fd69962 Report handle information.
svn path=/trunk/; revision=6661
2003-11-16 13:47:20 +00:00
Eric Kohl
e9084a75c4 Support boot images larger than one sector (2048 bytes).
svn path=/trunk/; revision=6660
2003-11-16 13:45:42 +00:00
Martin Fuchs
dc28f04fd6 added error messages
svn path=/trunk/; revision=6659
2003-11-16 12:56:44 +00:00
Gé van Geldorp
a9f23d0bca - Fix problems with non-zero cursor hotspots
- Add auto dependency tracking to vga ddi driver
- Changes for w32api

svn path=/trunk/; revision=6658
2003-11-16 12:36:24 +00:00
Martin Fuchs
bf942e1744 added more COM/OLE registry entries
svn path=/trunk/; revision=6657
2003-11-16 11:40:30 +00:00
Martin Fuchs
b722a5372c added TRACE message for being not able to load messages with FormatMessage()
svn path=/trunk/; revision=6656
2003-11-16 11:35:25 +00:00
Martin Fuchs
5353eee005 added registry entries for explorer
svn path=/trunk/; revision=6655
2003-11-16 10:46:34 +00:00
Martin Fuchs
910a519182 added FIXME for FormatMessage()
svn path=/trunk/; revision=6654
2003-11-16 10:45:15 +00:00
Gé van Geldorp
f085df035a Silence debug messages
svn path=/trunk/; revision=6653
2003-11-16 10:41:42 +00:00
Thomas Bluemel
a4b7ce555c moved metafile functions into objects/metafile.c
svn path=/trunk/; revision=6652
2003-11-15 15:18:06 +00:00
Gé van Geldorp
f22cfcebd1 Fix warning if defined(DBG)
svn path=/trunk/; revision=6651
2003-11-15 15:08:32 +00:00
Thomas Bluemel
0320bf2ca6 small fixes
svn path=/trunk/; revision=6650
2003-11-15 14:25:50 +00:00
Thomas Bluemel
67e13dd228 added test app for enhanced meta files
svn path=/trunk/; revision=6649
2003-11-15 14:05:30 +00:00
Thomas Bluemel
ef913e1a3b fixed setting the cursor size member
svn path=/trunk/; revision=6648
2003-11-15 12:43:25 +00:00
Thomas Bluemel
1b844b220b fixed warning
svn path=/trunk/; revision=6647
2003-11-14 23:04:18 +00:00
Royce Mitchell III
99d650fdb4 added more tokens and libc headers
svn path=/trunk/; revision=6646
2003-11-14 19:51:59 +00:00
Thomas Bluemel
1c3867a641 Patch by Jonathon Wilson:
fix most of ReactOS to build with -Wall -Werror by default

svn path=/trunk/; revision=6645
2003-11-14 17:13:36 +00:00
Eric Kohl
52dd1df336 Added missing variables and moved variables in order to fix include order (declare types before use).
svn path=/trunk/; revision=6644
2003-11-14 15:19:35 +00:00
Eric Kohl
41cf5bc8f7 Fixed io statistic variables and initialized spinlock.
Patch by Mike Nordell.

svn path=/trunk/; revision=6643
2003-11-14 15:17:08 +00:00
Royce Mitchell III
6aed8b6dbd get rid of buggy unnecessary macro
svn path=/trunk/; revision=6642
2003-11-14 14:12:29 +00:00
Royce Mitchell III
8d30d471de fix unnecessarily recursive include
svn path=/trunk/; revision=6641
2003-11-14 14:10:55 +00:00
Royce Mitchell III
5822ae79d0 ignore #undef statements for now
svn path=/trunk/; revision=6640
2003-11-13 21:14:20 +00:00
Eric Kohl
b1fc831113 Enabled -Wall and -Werror and fixed resulting bugs.
svn path=/trunk/; revision=6639
2003-11-13 15:26:34 +00:00
Eric Kohl
97dc195d03 Enabled -Wall and -Werror and fixed resulting bugs.
svn path=/trunk/; revision=6638
2003-11-13 14:22:03 +00:00
Art Yerkes
3145ec42fb Corrects ext bit from the keyboard. This bit, once set, was never unset,
so both alt keys acted as Alt+Gr.

svn path=/trunk/; revision=6636
2003-11-13 08:29:19 +00:00
Thomas Bluemel
9208747968 fixed a bug that caused the caret creating many timers with the same id
svn path=/trunk/; revision=6635
2003-11-12 22:53:31 +00:00
Royce Mitchell III
2a02daaac3 handle return statements
svn path=/trunk/; revision=6634
2003-11-12 21:27:26 +00:00
Richard Campbell
d20b00b875 Very basic dll, needs a makefile and none of the functions are implemented, more soon...
svn path=/trunk/; revision=6633
2003-11-12 21:15:07 +00:00
Richard Campbell
72f18889ef Very basic dll, needs a makefile and none of the functions are implemented, more soon...
svn path=/trunk/; revision=6632
2003-11-12 21:05:23 +00:00
Eric Kohl
4ceed6aba6 Pass volume label a unterminated Unicode string.
svn path=/trunk/; revision=6631
2003-11-12 21:02:42 +00:00
Thomas Bluemel
2b33d147c1 added missing DllMain()
svn path=/trunk/; revision=6630
2003-11-12 17:39:28 +00:00
Eric Kohl
c9a794eb0e - Cleaned up some of the mess that was caused by a previous patch
- Support verify override
- Read volume name

svn path=/trunk/; revision=6629
2003-11-12 15:30:21 +00:00
Eric Kohl
063bd518b1 Support verify override.
svn path=/trunk/; revision=6628
2003-11-12 15:26:44 +00:00
Richard Campbell
3e13a23ceb Sorry, my cvs files are fubared, let me put these where they need to go...
svn path=/trunk/; revision=6627
2003-11-12 07:07:48 +00:00
Richard Campbell
3aba355dff Coming soon...
svn path=/trunk/; revision=6626
2003-11-12 06:58:41 +00:00
Royce Mitchell III
ce367d502f revert Filip's fix per Filip & Jonathon
svn path=/trunk/; revision=6625
2003-11-12 05:40:59 +00:00
Martin Fuchs
5524ae0860 strcasecmp work around for Winelib app
svn path=/trunk/; revision=6624
2003-11-11 23:19:26 +00:00
Thomas Bluemel
0331caa800 1.added a simple test application for hotkeys
2.some fixes on hotkeys

svn path=/trunk/; revision=6623
2003-11-11 22:17:18 +00:00
Filip Navara
9a97a2e0aa - Removed 'Parameters' member of WINDOW_OBJECT structure as it's useless.
svn path=/trunk/; revision=6622
2003-11-11 21:04:55 +00:00
Gé van Geldorp
44a3da7588 WndProc changes by Jonathan Wilson
svn path=/trunk/; revision=6621
2003-11-11 20:28:21 +00:00
Thomas Bluemel
bd9ad38a70 fixed some bugs in NtUserDrawIconEx()
svn path=/trunk/; revision=6620
2003-11-11 17:50:58 +00:00
Eric Kohl
5c59755ddd Added a 'done' message.
svn path=/trunk/; revision=6619
2003-11-11 17:02:49 +00:00
Eric Kohl
95d64bbf2f Enabled -Wall and -Werror and fixed resulting bugs.
svn path=/trunk/; revision=6618
2003-11-11 17:01:47 +00:00
Royce Mitchell III
bc1542edef handle __asm__, #elif, and #error
svn path=/trunk/; revision=6617
2003-11-11 15:31:48 +00:00
Eric Kohl
fe56ee2b4d Completed IOCTL_DISK_CHECK_VERIFY.
Fixed a retry bug.

svn path=/trunk/; revision=6616
2003-11-11 15:31:31 +00:00
KJK::Hyperion
932bfadaa5 BUTTON class:
- support for the root part and states
 - DrawThemeText implemented
 - GetThemeBackgroundContentRect implemented

DLL:
 - implemented DrawThemeText and GetThemeBackgroundContentRect

svn path=/trunk/; revision=6615
2003-11-11 03:44:53 +00:00
Eric Kohl
c718291b7d Implemented NdisMSynchronizeWithInterrupt().
svn path=/trunk/; revision=6614
2003-11-11 02:08:19 +00:00
Steven Edwards
12d1165682 Remove old regedit resources.
svn path=/trunk/; revision=6613
2003-11-11 01:34:36 +00:00
Martin Fuchs
e6c72a5a0d Defined __cplusplus for Doxygen
svn path=/trunk/; revision=6612
2003-11-10 23:03:52 +00:00
Martin Fuchs
4961049825 Completed Doxygen documentation of all compounds in Explorer
svn path=/trunk/; revision=6611
2003-11-10 22:38:03 +00:00
Martin Fuchs
8aedeab84e call startup routine in SESSION_START mode
svn path=/trunk/; revision=6610
2003-11-10 22:23:23 +00:00
Filip Navara
ae07465bee - Fixed some flags in calls to CreateWindowEx.
- Fixed color of the splitter (should be COLOR_BTNFACE and not light gray brush).

svn path=/trunk/; revision=6609
2003-11-10 21:48:56 +00:00
Martin Fuchs
3561af3a43 move new icon files into virtual resource folder
svn path=/trunk/; revision=6608
2003-11-10 21:21:22 +00:00
Thomas Bluemel
7f64c6fa81 fixes crash in DrvSetPointerShape()
svn path=/trunk/; revision=6607
2003-11-10 19:42:57 +00:00
Martin Fuchs
5b827d7354 use rdel instead of rm in Explorer Makefile
svn path=/trunk/; revision=6606
2003-11-10 19:29:24 +00:00
Eric Kohl
6e978c3db1 Retry failed requests.
Silenced debug output.

svn path=/trunk/; revision=6605
2003-11-10 18:09:54 +00:00
Eric Kohl
dc8ce663c6 Minor cleanup
svn path=/trunk/; revision=6604
2003-11-10 18:07:36 +00:00
Thomas Bluemel
1193f17c26 Implemented SetCursor and rewrote some cursor/icon routines
svn path=/trunk/; revision=6603
2003-11-10 17:44:50 +00:00
Eric Kohl
94e9ddef83 Silenced debug messages.
svn path=/trunk/; revision=6602
2003-11-10 17:09:29 +00:00
Thomas Bluemel
27fd6387f1 added displaying the current mouse cursor
svn path=/trunk/; revision=6601
2003-11-10 15:46:28 +00:00
Eric Kohl
2a681979b8 Finished media change support, except for prper volume dismount.
Added dependency checks.

svn path=/trunk/; revision=6600
2003-11-10 11:32:08 +00:00
Thomas Bluemel
bbb4ce681e fixed build problems
svn path=/trunk/; revision=6599
2003-11-09 23:26:34 +00:00
Gé van Geldorp
0ac3819023 Although ObDereferenceObject is usually macro-forwarded to ObfDereferenceObject,
it is also exported from NT4 NTOSKRNL.EXE

svn path=/trunk/; revision=6598
2003-11-09 23:20:27 +00:00
Gé van Geldorp
e459864561 Properly translate 1bpp source bits
svn path=/trunk/; revision=6596
2003-11-09 23:13:56 +00:00
Steven Edwards
8516382e25 Added imagehlp.dll ported from WINE.
svn path=/trunk/; revision=6595
2003-11-09 19:19:02 +00:00
Eric Kohl
22997fee18 Do not clear DO_VERIFY_VOLUME in IoVerifyVolume().
svn path=/trunk/; revision=6594
2003-11-09 19:04:54 +00:00
Filip Navara
77c830cb5c - Moved GetFocus, DrawCaptionTemp[AW], DrawMenuBarTemp, SetTaskmanWindow, SetProgmanWindow, GetProgmanWindow, GetTaskmanWindow, MenuWindowProc[AW], SetWindowsHook[AW], RegisterShellHookWindow, DeregisterShellHookWindow,
ChangeMenu[AW], UnhookWindowsHook, NotifyWinEvent, SetWinEventHook, UnhookWinEvent, IsWinEventHookInstalled, SetWindowStationUser, LockWindowStation, UnlockWindowStation, SetWindowStationUser, SetWindowsHookEx[AW] from stubs.c to appropriate files.
- Fixed prototype of NtUserDragIObject and fixed compilation problem.

svn path=/trunk/; revision=6593
2003-11-09 18:38:09 +00:00
Filip Navara
ea251a9fb2 - Moved GetFocus, DrawCaptionTemp[AW], DrawMenuBarTemp, SetTaskmanWindow, SetProgmanWindow, GetProgmanWindow, GetTaskmanWindow, MenuWindowProc[AW], SetWindowsHook[AW], RegisterShellHookWindow, DeregisterShellHookWindow,
ChangeMenu[AW], UnhookWindowsHook, NotifyWinEvent, SetWinEventHook, UnhookWinEvent, IsWinEventHookInstalled, SetWindowStationUser, LockWindowStation, UnlockWindowStation, SetWindowStationUser, SetWindowsHookEx[AW] from stubs.c to appropriate files.
- Changed EditWndProc in user32.edf to point to EditWndProcA.

svn path=/trunk/; revision=6592
2003-11-09 13:50:04 +00:00
Filip Navara
60fe580231 - Implemented NtUserDefSetText and NtUserInternalGetWindowText.
- Fixed NtUserCreateWindowEx to correctly allocate the window name.
- Fixed InternalGetWindowText to behave like MS implementation.
- Changed DefWindowProc[A/W] to handle WM_GETTEXT, WM_GETTEXTLENGTH, WM_SETTEXT (and WM_NCCREATE, WM_NCDESTROY) using the above functions.

svn path=/trunk/; revision=6591
2003-11-09 11:42:08 +00:00
Eric Kohl
2433129700 Implemented verify override for device access routines and started experimental media change support.
svn path=/trunk/; revision=6590
2003-11-09 11:20:28 +00:00
Thomas Bluemel
0327d87e6e aded missing .cvsignore files
svn path=/trunk/; revision=6589
2003-11-09 08:58:05 +00:00
Filip Navara
c8d7dabe33 - Added CreateEllipticRgn, CreateEllipticRgnIndirect, CreateRoundRectRgn ported from Wine.
svn path=/trunk/; revision=6588
2003-11-08 22:54:26 +00:00
Gé van Geldorp
8d155f1f06 Add subclassing test
svn path=/trunk/; revision=6587
2003-11-08 22:10:15 +00:00
KJK::Hyperion
ffe1fedcc1 FLS support hidden, for now. It's non-working and it breaks newer Visual C++ programs
svn path=/trunk/; revision=6586
2003-11-08 18:05:05 +00:00
Steven Edwards
8fb32c8187 Fixed some formating bugs caused by unix2dos conversion.
svn path=/trunk/; revision=6585
2003-11-08 17:25:56 +00:00
Eric Kohl
ea9701d69d Fixed typos.
svn path=/trunk/; revision=6583
2003-11-08 16:48:36 +00:00
Eric Kohl
58f655bf69 Signal external event object if one was supplied.
svn path=/trunk/; revision=6582
2003-11-08 16:43:02 +00:00
Martin Fuchs
adb5c12b85 partial fix for for Bug #42: activate Ansi window procedures for standard controls
svn path=/trunk/; revision=6581
2003-11-08 15:39:13 +00:00
Martin Fuchs
9c02db5a95 * windows/defwnd.c Fixed WM_GETTEXT error handling in DefWindowProcW().
svn path=/trunk/; revision=6580
2003-11-08 15:33:51 +00:00
Gé van Geldorp
7e9933a785 - Move DRIVER_UnreferenceDriver call to DC_InternalDelete, so it will be
called too for DCs which are cleaned up by the system on app termination
- Fix graphic state reference counting in case window creation fails
This fixes bug #24

svn path=/trunk/; revision=6579
2003-11-08 15:00:36 +00:00
Gé van Geldorp
7fbaee7310 Remove some debugging statements accidentaly left in
svn path=/trunk/; revision=6578
2003-11-08 14:58:34 +00:00
Filip Navara
f37131dba7 - Cleaned up NtGdiCreateDIBitmap.
svn path=/trunk/; revision=6577
2003-11-08 11:19:47 +00:00
Filip Navara
0fe7653b2a - Fixed a few bugs.
svn path=/trunk/; revision=6576
2003-11-08 09:33:14 +00:00
Eric Kohl
c2c2d6cb46 Fixed synchronous file access.
svn path=/trunk/; revision=6575
2003-11-08 09:13:46 +00:00
Filip Navara
5533bbd42a - Added nVidia GeForce4 MX400 to the list of tested cards.
svn path=/trunk/; revision=6574
2003-11-08 08:13:27 +00:00
Eric Kohl
489704edb6 Wait for completion if FO_SYNCHRONOUS_IO is set.
IoStatusBlock is not optional.

svn path=/trunk/; revision=6573
2003-11-08 07:42:10 +00:00
Steven Edwards
1578b76cb5 Implement Maskblt ported from Wine.
svn path=/trunk/; revision=6570
2003-11-08 02:16:31 +00:00
Royce Mitchell III
39389a4414 more bug fixin'
svn path=/trunk/; revision=6569
2003-11-07 23:31:44 +00:00
Gé van Geldorp
14c5b2ca76 Patch by Shadow Flare to fix some small problems. Install binary in
\ReactOS\System32 instead of \ReactOS\bin

svn path=/trunk/; revision=6568
2003-11-07 23:16:22 +00:00
Steven Edwards
2a7a6fe7c5 Fix building.
svn path=/trunk/; revision=6567
2003-11-07 21:27:29 +00:00
Filip Navara
979687d01b - Removed redundant parsing of '#number' resource names. This is already handled by FindResourceEx.
svn path=/trunk/; revision=6566
2003-11-07 21:02:41 +00:00
Gé van Geldorp
e9e47f1fdb Simple patch program for the NVidia nv4_mini.sys driver
svn path=/trunk/; revision=6565
2003-11-07 20:10:13 +00:00
Art Yerkes
6c504bcc4c Correct handling of dead_char in TryToTranslateChar.
A patch to NtUserTranslateMessage is also needed for fully correct support
of dead keys.
-- patch by Jean-Michel Gay

svn path=/trunk/; revision=6564
2003-11-07 19:58:43 +00:00
Steven Edwards
acfd676db0 Added PrivateExtractIcons and friends ported from WINE
Renamed sprintf.c to wsprintf.c to match winehq.

svn path=/trunk/; revision=6563
2003-11-07 19:13:02 +00:00
Royce Mitchell III
784ed4768a bug fixes
svn path=/trunk/; revision=6562
2003-11-07 19:03:50 +00:00
Art Yerkes
97c3062b35 Fixes to VK_OEM_102, VK_OEM_4 and VK_ZOOM positions.
Added dead key and new modifier tables.
-- Patch by Jean-Michel Gay

svn path=/trunk/; revision=6561
2003-11-07 18:55:50 +00:00
Gé van Geldorp
daad4f8d41 Simplify code by passing PDEVICE_OBJECT instead of HANDLE around for
miniport device, fixing a reference-counting bug I introduced earlier
along the way.

svn path=/trunk/; revision=6560
2003-11-07 17:40:02 +00:00
Eric Kohl
0372ed1758 Process IOCTL_CDROM_GET_DRIVE_GEOMETRY asynchronously.
svn path=/trunk/; revision=6559
2003-11-07 17:14:22 +00:00
Thomas Bluemel
31433cf91f added a few virtual key constants
svn path=/trunk/; revision=6558
2003-11-07 16:23:35 +00:00
Eric Kohl
0082ae8bd6 Implemented asynchronous IOCTL_CDROM_CHECK_VERIFY.
Disabled buggy capability detection code.

svn path=/trunk/; revision=6556
2003-11-07 12:56:26 +00:00
Eric Kohl
bdd2fef02f Increment the media change count if the device returns unit attention sense info.
svn path=/trunk/; revision=6555
2003-11-07 11:48:59 +00:00
Gé van Geldorp
7e5a94217c Added rundll32 utility by Shadow Flare
svn path=/trunk/; revision=6554
2003-11-07 09:12:44 +00:00
Gé van Geldorp
53c66fe57b Raise IRQL to SYNCH_LEVEL in KeAcquireSpinLockRaiseToSynch for UP machines also
svn path=/trunk/; revision=6553
2003-11-06 21:13:21 +00:00
Gé van Geldorp
e12f26f173 Copy number of bytes specified by driver in IoStatus.Information to
output buffer (METHOD_BUFFERED)

svn path=/trunk/; revision=6552
2003-11-06 20:43:45 +00:00
Gé van Geldorp
ce0b4616e6 Tweak KeSaveFloatingPoint() and KeRestoreFloatingPoint()
svn path=/trunk/; revision=6551
2003-11-06 20:40:25 +00:00
Royce Mitchell III
5cfbea5fee fixed bug that was requiring a ; after a function definition
svn path=/trunk/; revision=6550
2003-11-06 19:38:23 +00:00
Eric Kohl
261cc33f7f IoStatusBlock is _not_ an optional parameter.
Fixed synchronous file access bug in NtDeviceIoControlFile().

svn path=/trunk/; revision=6549
2003-11-06 18:05:54 +00:00
Eric Kohl
98682c7937 IoStatusBlock is _not_ an optional parameter.
svn path=/trunk/; revision=6548
2003-11-06 18:03:30 +00:00
Aleksey Bragin
47651b5c5d .cvsignoe for kbduk.dll
svn path=/trunk/; revision=6547
2003-11-06 17:19:26 +00:00
Aleksey Bragin
3cd2ae5af7 kbduk.dll - by Johannes Olofsson. I have tested this dll with english keyboard - works great, except for AltGr+� combination, which should produce '�', and now it gives '?' char.
svn path=/trunk/; revision=6546
2003-11-06 17:18:25 +00:00
Eric Kohl
5c34e6b32e IoStatusBlock is _not_ an optional parameter.
svn path=/trunk/; revision=6545
2003-11-06 16:42:16 +00:00
Eric Kohl
28977a473c Fixed a typo.
svn path=/trunk/; revision=6544
2003-11-06 16:35:50 +00:00
Royce Mitchell III
999225b038 correct identification of functions that return struct pointers, and beginning of logic to parse inline function bodies
svn path=/trunk/; revision=6543
2003-11-06 14:28:24 +00:00
Royce Mitchell III
0fadf54b2f lots of stuff - tracking multiple headers, include dependencies, preprocessor logic, etc
svn path=/trunk/; revision=6542
2003-11-06 05:55:26 +00:00
Royce Mitchell III
46b4ed3668 cvsignore
svn path=/trunk/; revision=6541
2003-11-06 03:02:41 +00:00
Royce Mitchell III
0b63c2c64d the code does, in fact, handle bitfields correctly.
svn path=/trunk/; revision=6540
2003-11-06 02:50:12 +00:00
KJK::Hyperion
1b7b04aa07 Unstyled BUTTON class done, 25 more to go...
svn path=/trunk/; revision=6539
2003-11-06 02:47:24 +00:00
Gé van Geldorp
8eb8bd42c6 Fix IoInitializeTimer()
svn path=/trunk/; revision=6537
2003-11-05 22:49:06 +00:00
Gé van Geldorp
49f2b1905a Pass pointer to device object as the "handle" to DrvEnablePDEV since
some badly written drivers need it

svn path=/trunk/; revision=6536
2003-11-05 22:46:05 +00:00
Gé van Geldorp
b2a4140643 Store interrupt in resource list returned by HalpAssignPciSlotResources
svn path=/trunk/; revision=6535
2003-11-05 22:39:01 +00:00
Gé van Geldorp
7a2ebc71ae - Add -Wall and -Werror compile flags and fix resulting problems
- Reimplement KeAcquireSpinLockRaiseToSynch with the help of Vizzini

svn path=/trunk/; revision=6534
2003-11-05 22:37:42 +00:00
Gé van Geldorp
310f723526 - Add -Wall and -Werror flags, fix resulting problems
- Add dependency tracking
- Fix interrupt and timer handling

svn path=/trunk/; revision=6533
2003-11-05 22:31:50 +00:00
Steven Edwards
7bee3f3c72 Nevermind.
Regression found. Rolling back the last change.
Jim's adaption of the WINE code was better.

svn path=/trunk/; revision=6532
2003-11-05 20:42:02 +00:00
Steven Edwards
eaa7c16f59 Implemented better format message support based on WINE.
Winzip and a few other apps get a bit further now.

svn path=/trunk/; revision=6531
2003-11-05 20:32:07 +00:00
Royce Mitchell III
cb64e58964 initial version of sdkparse, not generating db output yet, just diagnostic info. Successfully parsing most of what we need.
TODO: handle bitfields in structs, preprocessor commands, output csv & xml formats.

svn path=/trunk/; revision=6530
2003-11-05 20:24:23 +00:00
Eric Kohl
3911ce2391 Issue SPECIFY command upon initialization.
svn path=/trunk/; revision=6529
2003-11-04 23:30:59 +00:00
Gé van Geldorp
f1259f48fe Avoid infinite loop
svn path=/trunk/; revision=6528
2003-11-04 21:36:22 +00:00
Martin Fuchs
68808ed299 added .cvsignore file
svn path=/trunk/; revision=6527
2003-11-04 19:20:58 +00:00
Martin Fuchs
8d1d9617fe added jamfile for Boost Build system V2
svn path=/trunk/; revision=6526
2003-11-03 23:57:18 +00:00
Martin Fuchs
0410ca7233 adder Jamfile fpr Boost Build V2
svn path=/trunk/; revision=6525
2003-11-03 23:53:28 +00:00
Steven Edwards
e37206382e Remove RosUser32 - May she rest in the attic.
svn path=/trunk/; revision=6524
2003-11-03 21:46:17 +00:00
Gunnar Dalsnes
3a348fb5fb utilize sorted list macros
svn path=/trunk/; revision=6523
2003-11-03 20:31:39 +00:00
Gunnar Dalsnes
d58f64745b added macros for sorted list insertions
svn path=/trunk/; revision=6522
2003-11-03 20:30:23 +00:00
Gunnar Dalsnes
a556f44333 improved 2 defines
svn path=/trunk/; revision=6521
2003-11-03 20:27:51 +00:00
Gunnar Dalsnes
1edc640537 utilize new macro: InsertAscendingList
svn path=/trunk/; revision=6520
2003-11-03 20:27:01 +00:00
Eric Kohl
c1f69cfe1a Implemented hotkey support.
svn path=/trunk/; revision=6519
2003-11-03 18:52:21 +00:00
Eric Kohl
806ae938e3 Fixed a typo.
svn path=/trunk/; revision=6518
2003-11-03 17:11:29 +00:00
Gunnar Dalsnes
425b073d1b added apc2 test
svn path=/trunk/; revision=6517
2003-11-03 00:40:48 +00:00
Gunnar Dalsnes
c215a03581 apc test
svn path=/trunk/; revision=6516
2003-11-03 00:34:43 +00:00
Eric Kohl
bf68eefdd1 Started hotkey support.
svn path=/trunk/; revision=6515
2003-11-02 16:33:51 +00:00
Filip Navara
bca263eb73 - Fixed compilation with older versions of W32API.
svn path=/trunk/; revision=6514
2003-11-02 14:11:29 +00:00
Filip Navara
fda98e2354 - Bugfixes and cleanup.
svn path=/trunk/; revision=6513
2003-11-02 14:08:34 +00:00
Martin Fuchs
0f7b9904ab add doxygen @todo tags to create a TODO list
svn path=/trunk/; revision=6512
2003-11-02 11:33:00 +00:00
Martin Fuchs
f1cf86e42b add CHM creation to Makefile
svn path=/trunk/; revision=6511
2003-11-02 11:06:30 +00:00
Martin Fuchs
97ee1909b6 make windres work again
svn path=/trunk/; revision=6510
2003-11-02 11:05:58 +00:00
Martin Fuchs
99c099b4e0 disabled warning messages
svn path=/trunk/; revision=6509
2003-11-02 11:05:35 +00:00
Filip Navara
ee6dfe9ff4 - Basic MDI support ported from Wine.
svn path=/trunk/; revision=6508
2003-11-02 06:58:57 +00:00
5226 changed files with 11798 additions and 1256944 deletions

2
msvc6/.cvsignore Normal file
View File

@@ -0,0 +1,2 @@
*.ncb
*.opt

102
msvc6/README.txt Normal file
View File

@@ -0,0 +1,102 @@
ReactOS Microsoft Visual C/C++ 6.0 IDE files
This is the Microsoft Visual C/C++ 6.0 project workspace and project
files for a few of the ReactOS binaries. They are ONLY included as a
convenience, and is NOT to be considered supported, or even correct.
If you build a binary that misbehaves using these files, you _might_
be able to get in touch with someone to fix the problem
BUT DO NOT COUNT ON IT!
The only supported build system for ReactOS is the one documented at
www.reactos.com.
------------------------------------------------------------------
Please, before you start playing with this, read the whole of
this document.
Before you can use these project files, you _need_ to make a successful
build using the normal ReactOS build system. There are some vital files
that needs to be created, and currently only the normal build creates these.
Once that is done, you need to generate the kernel-mode service "table"
file by running nmake (from this point on you can use the "native"
MSVC tools) from the directory MSVC6\iface\native.
This will generate MSVC6\ntoskrnl\nt_zw_msvc.c, an MSVC compatible inline-
assembler version of the file otherwise known as reactos\ntoskrnl\nt\zw.c.
Next, go to def_converter and run nmake. This builds the tool to convert
the .def files for HAL and the kernel from the MinGW format to something
more suitable for the MSVC linker, and also generates these .def files
to their target location [1].
Now you should be set to fire up the IDE and load the project workspace.
When building HAL or the kernel for the first time using these
project files, just doing it the "normal" way _will not work_.
The linker will complain about missing library, and it will fail.
The reason for this is a circular dependency between these two binaries.
Currently you need to follow these procedures [2]:
- Select hal as your active project.
- Select Project/Settings.
- Select the Link tab.
- Select "General" from the Category drop-list.
- Temporary remove the explicit linker library
(e.g. "..\ntoskrnl\Debug\ntoskrnl.lib")
- Select "Customize" from the Category drop-list.
- Check the "Force file output" checkbox.
- Build hal.
- Uncheck "Force file output".
- Put back the removed import library.
- Now build the ntoskrnl. Do NOT try to build hal again until
you have sucessfully built the kernel, and the linker has
generated its import library!
- Now you can "Clean" hal, and build it as usual.
If everything worked as expected, you should now have both ntoskrnl.exe
and hal.dll freshly built.
LIMITATIONS/DEVIATIONS (from the MinGW build):
- Since there can only be one resource file/project, the kernel had
to choose between either its version resource, or its message table.
The messages won.
- Do NOT open the .rc files in the IDE's resource editor. Chances are
it will assume ownership over them and fill them up with at least
conditional compilation macros.
NOTES:
[1] This is needed due to differences in handling of decorated names
in .def files. While both MinGW GCC and MSVC generates decorated names
in the same way for at least plain cdecl and stdcall C functions, the
MSVC linker expects names in the .def file to be either
- an exact match of the decorated name, in case it exports the
decorated name from the linked binary, or
- just the name without any decoration, in case it exports just the
name of the symbol from the linked binary (to allow for e.g.
GetProcAddress using the undecorated name) - but keeps the decorated
names in the import library to handle and "redirect" linker requests
for those decorated symbols, and point them to the undercorated names
in the binary exporting them - so that a binary A, at link time,
importing symbols from binary B of the form "_name@0" will resolve
that symbol from the import library, but the linked binary A will
reference it as just "name".
The ROS .def files contains a mix, "half-decorated", where the leading
undescores are missing, but the trailing "@n" (for stdcall functions)
are present.
[2] Theoretically it could be possible to use a hal.lib generated by the
following procedure, removing the need for the manual steps above.
cd MSVC6\hal\Debug
lib \def:..\..\..\reactos\hal\hal\hal.def
but I have not tested it, and take no responsibility for its effectiveness.

View File

@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
Project: "make_explorer"=.\make_winefile.dsp - Package Owner=<4>
Project: "hal"=.\hal\hal.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -15,7 +15,7 @@ Package=<4>
###############################################################################
Project: "winefile"=.\winefile.dsp - Package Owner=<4>
Project: "ntoskrnl"=.\ntoskrnl\ntoskrnl.dsp - Package Owner=<4>
Package=<5>
{{{

View File

@@ -0,0 +1,64 @@
// Uses hard-coded filenames to require a minimum of input.
// You think this file should be licensed? OK then,
// Copyright (C) 2004, Mike Nordell. Use as you whish.
#include <fstream>
#include <string>
#include <algorithm>
const char szSrc1[] = "..\\..\\reactos\\ntoskrnl\\ntoskrnl.def";
const char szDst1[] = "..\\ntoskrnl\\ntoskrnl.def";
const char szSrc2[] = "..\\..\\reactos\\hal\\hal\\hal.def";
const char szDst2[] = "..\\hal\\hal.def";
enum File
{
Kernel,
HAL
};
std::string do_kernel_replacements(std::string& s)
{
std::string s2 = s.c_str(); // to fixup size after replacements
if (s2 == "ExAllocateFromPagedLookasideList") {
s2 += "=ExiAllocateFromPagedLookasideList";
} else
if (s2 == "ExFreeToPagedLookasideList") {
s2 += "=ExiFreeToPagedLookasideList";
} else
if (s2 == "MmLockPagableImageSection") {
s2 += "=MmLockPagableDataSection";
}
return s2;
}
void convert_def(const char* szSrc, const char* szDst, File file)
{
using namespace std;
ifstream in(szSrc);
ofstream out(szDst);
string s;
while (getline(in, s).good()) {
if (!s.size()) {
continue;
}
if (s[0] != ';') { // only replace non-comment lines
if (s[0] == '@') {
s.erase(0, 1);
}
replace(s.begin(), s.end(), '@', '\0');
if (file == Kernel) {
s = do_kernel_replacements(s);
}
}
out << s << endl;
}
}
int main()
{
convert_def(szSrc1, szDst1, Kernel);
convert_def(szSrc2, szDst2, HAL);
return 0;
}

View File

@@ -0,0 +1,19 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:54 fireball Exp $
#
# ReactOS Operating System - .def converter for HAL and the kernel
#
DEF_HAL = ..\hal\hal.def
DEF_KRNL = ..\ntoskrnl\ntoskrnl.def
CPPFLAGS = /GX
all: def_converter.exe $(DEF_HAL) $(DEF_KRNL)
$(DEF_HAL) : ..\..\reactos\hal\hal\hal.def
def_converter.exe
$(DEF_KRNL) : ..\..\reactos\ntoskrnl\ntoskrnl.def
def_converter.exe
def_converter.exe : def_converter.cpp

3
msvc6/hal/.cvsignore Normal file
View File

@@ -0,0 +1,3 @@
Debug
Release
hal.def

243
msvc6/hal/hal.dsp Normal file
View File

@@ -0,0 +1,243 @@
# Microsoft Developer Studio Project File - Name="hal" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=hal - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "hal.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "hal.mak" CFG="hal - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "hal - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "hal - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "hal - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Ot /Og /Os /Ob1 /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "i386" /D "__NTHAL__" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "NDEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /machine:I386
# ADD LINK32 ..\ntoskrnl\Release\ntoskrnl.lib /nologo /dll /machine:I386 /fixed:no
# SUBTRACT LINK32 /pdb:none /force
!ELSEIF "$(CFG)" == "hal - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "_WINDOWS" /D "__NTHAL__" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "i386" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "_DEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\ntoskrnl\Debug\ntoskrnl.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /fixed:no
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "hal - Win32 Release"
# Name "hal - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\adapter.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\beep.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\bus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\display.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\dma.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\drive.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\enum.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halinit.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86mp.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86up.rc
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\irql.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\isa.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\kdbg.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mca.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\misc.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mp.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mpsirql.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pci.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\portio.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pwroff.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\reboot.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysbus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysinfo.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\time.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\timer.c
# End Source File
# End Group
# Begin Group "include"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\bus.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\hal.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\mps.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\hal.def
# End Source File
# End Target
# End Project

View File

@@ -1,4 +1,4 @@
/* $Id: genntdll.c,v 1.12 2003/01/03 00:28:07 guido Exp $
/* $Id: genntdll.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS version of ntdll
@@ -22,7 +22,7 @@
#define PARAMETERIZED_LIBS
#define VERBOSE
/* #define VERBOSE */
#define INPUT_BUFFER_SIZE 255
@@ -31,6 +31,8 @@
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
char* nr_args, unsigned int sys_call_idx)
{
int i;
int nArgBytes = atoi(nr_args);
#ifdef PARAMETERIZED_LIBS
fprintf(out,"__asm__(\"\\n\\t.global _%s@%s\\n\\t\"\n",name,nr_args);
fprintf(out,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
@@ -55,6 +57,7 @@ void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
* current system call. ZwXXX does NOT
* alias the corresponding NtXXX call.
*/
#if 0
fprintf(out3,"__asm__(\n");
fprintf(out3,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
@@ -65,6 +68,25 @@ void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
fprintf(out3,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out3,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
#else
fprintf(out3,"__declspec(naked) __stdcall\n");
fprintf(out3,"%s(", name2); // make it emit callconv, reval and full signature too
for (i=0; i*4 < nArgBytes; ++i) {
fprintf(out3,"int dummy%d", i);
if (((i+1)*4) < nArgBytes) fprintf(out3,",");
}
fprintf(out3,")\n{\n");
fprintf(out3,"\t__asm {\n");
fprintf(out3,"\t\tpush\tebp\n");
fprintf(out3,"\t\tmov\tebp, esp\n");
fprintf(out3,"\t\tmov\teax,%d\n",sys_call_idx);
fprintf(out3,"\t\tlea\tedx, 8[ebp]\n");
fprintf(out3,"\t\tint\t0x2E\n");
fprintf(out3,"\t\tpop\tebp\n");
fprintf(out3,"\t\tret\t%s\n",nr_args);
fprintf(out3,"\t}\n");
fprintf(out3,"}\n\n");
#endif
}
int makeSystemServiceTable(FILE *in, FILE *out)
@@ -238,7 +260,7 @@ process(
/*
* NTOSKRNL Zw functions stubs header
*/
fprintf(out3,"// Machine generated, don't edit\n");
fprintf(out3,"// Machine generated by genntdll, don't edit\n");
fprintf(out3,"\n\n");
/*
* Scan the database. DB is a text file; each line

View File

@@ -0,0 +1,22 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:56 fireball Exp $
#
# ReactOS Operating System - MSVC6 Zw functions stubs to call generator
#
SYSTEM_CALLS_DB = ..\..\..\reactos\iface\native\sysfuncs.lst
KERNEL_ZW_CALLS =..\..\ntoskrnl\nt_zw_msvc.c
all: genntdll.exe $(KERNEL_ZW_CALLS)
$(KERNEL_ZW_CALLS) : $(SYSTEM_CALLS_DB)
genntdll.exe $(SYSTEM_CALLS_DB) foo1 foo2 $(KERNEL_ZW_CALLS)
-@del foo1
-@del foo2
genntdll.exe : genntdll.c
clean:
-@del *.exe
-@del *.obj
-@del $(KERNEL_ZW_CALLS)

View File

@@ -0,0 +1,4 @@
Debug
Release
nt_zw_msvc.c
ntoskrnl.def

View File

@@ -2,6 +2,8 @@
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -16,7 +18,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: bthread.S,v 1.9 2003/06/16 19:18:48 hbirr Exp $
/* $Id: ke_i386_bthread.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -26,9 +28,11 @@
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
@@ -55,14 +59,17 @@
/* FUNCTIONS *****************************************************************/
void KeReturnFromSystemCallWithHook();
VOID PiBeforeBeginThread(CONTEXT c);
/*
*
*/
.globl _PsBeginThreadWithContextInternal
.globl _PsBeginThread
_PsBeginThread:
__declspec(naked)
VOID PsBeginThread(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
{
/*
* This isn't really a function, we are called as the return address
* of the context switch function
@@ -71,39 +78,42 @@ _PsBeginThread:
/*
* Do the necessary prolog after a context switch
*/
call _PiBeforeBeginThread
__asm
{
call PiBeforeBeginThread
/*
* Call the actual start of the thread
*/
movl 4(%esp), %ebx /* Start routine */
movl 8(%esp), %eax /* Start context */
pushl %eax
call *%ebx /* Call the start routine */
addl $4, %esp
// We must NOT use the arguments by name. VC then uses EBP-relative
// addressing, and with an EBP of 0 you can imagine what happens.
mov ebx, 4[esp] // StartRoutine
mov eax, 8[esp] // StartContext
push eax
call ebx /* Call the start routine */
add esp, 4
/*
* Terminate the thread
*/
pushl %eax
call _PsTerminateSystemThread@4
addl $4, %esp
push eax
call PsTerminateSystemThread
add esp, 4
/*
* If that fails then bug check
*/
pushl $0
call _KeBugCheck@4
addl $4, %esp
}
/*
* And if that fails then loop
*/
.1:
jmp .1
/* If that fails then bug check */
KeBugCheck(0);
/* And if that fails then loop */
for (;;)
; // forever
}
_PsBeginThreadWithContextInternal:
__declspec(naked)
VOID PsBeginThreadWithContextInternal(VOID)
{
/*
* This isn't really a function, we are called as the return
* address of a context switch
@@ -112,48 +122,46 @@ _PsBeginThreadWithContextInternal:
/*
* Do the necessary prolog before the context switch
*/
call _PiBeforeBeginThread
__asm
{
call PiBeforeBeginThread
/*
* Load the context flags.
*/
popl %ebx
pop ebx
/*
* Load the debugging registers
*/
testl $(CONTEXT_DEBUG_REGISTERS & ~CONTEXT_i386), %ebx
jz .L1
popl %eax /* Dr0 */
movl %eax, %dr0
popl %eax /* Dr1 */
movl %eax, %dr1
popl %eax /* Dr2 */
movl %eax, %dr2
popl %eax /* Dr3 */
movl %eax, %dr3
popl %eax /* Dr6 */
movl %eax, %dr6
popl %eax /* Dr7 */
movl %eax, %dr7
jmp .L3
.L1:
addl $24, %esp
.L3:
test ebx, (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_i386)
jz L1
pop eax __asm mov dr0, eax
pop eax __asm mov dr1, eax
pop eax __asm mov dr2, eax
pop eax __asm mov dr3, eax
pop eax __asm mov dr6, eax
pop eax __asm mov dr7, eax
jmp L3
L1:
add esp, 24
L3:
/*
* Load the floating point registers
*/
movl (_HardwareMathSupport), %eax
testl %eax,%eax
jz .L2
testl $(CONTEXT_FLOATING_POINT & ~CONTEXT_i386), %ebx
jz .L2
frstor (%esp)
.L2:
addl $112, %esp
mov eax, HardwareMathSupport
test eax,eax
jz L2
test ebx, (CONTEXT_FLOATING_POINT & ~CONTEXT_i386)
jz L2
frstor [esp]
L2:
add esp, 112
/* Load the rest of the thread's user mode context. */
movl $0, %eax
jmp KeReturnFromSystemCallWithHook
mov eax, 0
jmp KeReturnFromSystemCallWithHook
}
}

View File

@@ -0,0 +1,114 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
// no arg-list, but asm doesn't care anyway
void KiInterruptDispatch();
#define DEFINE_INT_HANDLER(N) \
__declspec(naked) \
void irq_handler_##N() \
{ \
__asm pushad \
__asm push ds \
__asm push es \
__asm push fs \
__asm mov eax, 0xceafbeef \
__asm push eax \
__asm mov ax, KERNEL_DS \
__asm mov ds, ax \
__asm mov es, ax \
__asm mov ax, PCR_SELECTOR \
__asm mov fs, ax \
__asm push esp \
__asm push N \
__asm call KiInterruptDispatch \
__asm pop eax \
__asm pop eax \
__asm pop eax \
__asm pop fs \
__asm pop es \
__asm pop ds \
__asm popad \
__asm iretd
// NOTE: The inline assembler can't deal with having the final brace,
// ending the function, on the same line as an __asm, why there is
// none here and it MUST be added when using the macro!
DEFINE_INT_HANDLER(0)
}
DEFINE_INT_HANDLER(1)
}
DEFINE_INT_HANDLER(2)
}
DEFINE_INT_HANDLER(3)
}
DEFINE_INT_HANDLER(4)
}
DEFINE_INT_HANDLER(5)
}
DEFINE_INT_HANDLER(6)
}
DEFINE_INT_HANDLER(7)
}
DEFINE_INT_HANDLER(8)
}
DEFINE_INT_HANDLER(9)
}
DEFINE_INT_HANDLER(10)
}
DEFINE_INT_HANDLER(11)
}
DEFINE_INT_HANDLER(12)
}
DEFINE_INT_HANDLER(13)
}
DEFINE_INT_HANDLER(14)
}
DEFINE_INT_HANDLER(15)
}

View File

@@ -0,0 +1,655 @@
/*
* ReactOS kernel
* Copyright (C) 2003 Mike Nordell
* Based on multiboot.S (no copyright note present), but so heavily
* modified that it bears close to no resemblance to the original work.
*
* MSVC compatible combination of plain C and inline assembler to:
* 1 Relocated all the sections in the kernel - something I feel the
* bootloader should have done, but multiboot being just a "raw image"
* loader, it unfortunately had to be done here - in-place.
* 2 Set up page directories and stuff.
* 3 Load IDT, GDT and turn on paging, making us execute at the intended
* target address (as if the image was PE-loaded and parsed into that addr.)
* 4 Call _main, and let the rest of the startup run...
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
//
// TODO: Fix the MP parts
//
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <pe.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
#include <internal/ldr.h>
// some notes:
// The MSVC linker (by defult) emits no special .bss section, but uses the data
// section with a rawsize smaller than virtualsize. The "slack" is BSS.
//////////////////////////////////////////////////////////////////
// Some macros we need
// some stuff straight from freeloaders multiboot.h
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
#define TARGET_LOAD_ADDR 0x00200000
#define BASE_TO_PHYS_DIST (KERNEL_BASE - TARGET_LOAD_ADDR)
#define V2P(x) (x - BASE_TO_PHYS_DIST)
#ifdef MP
#define AP_MAGIC (0x12481020)
#endif /* MP */
void initialize_page_directory(void);
void* relocate_pointer_log_to_phys(const void* p)
{
// DON'T CALL this function until relocation of .data and/or .rdata,
// is completed - but still be sure that we have not yet enabled paging!
return (void*)((DWORD)p - BASE_TO_PHYS_DIST);
}
#ifdef _DEBUG
// Macro to emit one character to Bochs debug-port (0x9e).
// We need to do it this way, since at this point of the startup, obviously
// we have neither HAL nor DbgPrint support.
#define BOCHS_OUT_CHAR(c1) __asm push eax __asm push edx __asm mov dx, 0xe9 __asm mov al, c1 __asm out dx, al __asm pop edx __asm pop eax
void boch_out_hex_digit(unsigned char ch1)
{
if (ch1 <= 9) { ch1 += '0'; } else { ch1 += 'a' - 10; }
BOCHS_OUT_CHAR(ch1)
}
void bochs_dump_hex(DWORD p)
{
unsigned char ch3 = (unsigned char)((p >> 28) & 0x0f);
unsigned char cl3 = (unsigned char)((p >> 24) & 0x0f);
unsigned char ch2 = (unsigned char)((p >> 20) & 0x0f);
unsigned char cl2 = (unsigned char)((p >> 16) & 0x0f);
unsigned char ch1 = (unsigned char)((p >> 12) & 0x0f);
unsigned char cl1 = (unsigned char)((p >> 8) & 0x0f);
unsigned char ch0 = (unsigned char)((p >> 4) & 0x0f);
unsigned char cl0 = (unsigned char)((p >> 0) & 0x0f);
BOCHS_OUT_CHAR('0') BOCHS_OUT_CHAR('x')
boch_out_hex_digit(ch3);
boch_out_hex_digit(cl3);
boch_out_hex_digit(ch2);
boch_out_hex_digit(cl2);
boch_out_hex_digit(ch1);
boch_out_hex_digit(cl1);
boch_out_hex_digit(ch0);
boch_out_hex_digit(cl0);
BOCHS_OUT_CHAR('\n')
}
static void bochs_out_string(const char* s /* logical address! */)
{
s = relocate_pointer_log_to_phys(s);
__asm
{
pushad
mov dx, 0xe9
mov ebx, s
L1:
cmp byte ptr[ebx], 0
je end
mov al, [ebx]
out dx, al
inc ebx
jmp L1
end:
popad
}
}
#else
#define BOCHS_OUT_CHAR(c1)
#define bochs_dump_hex(VAL)
#define bochs_out_string(STR)
#endif // _DEBUG
//////////////////////////////////////////////////////////////////
typedef char kernel_page_t[4096];
// Use 4096 (pagesize) more bytes that actually needed for each *_holder,
// to be able to make sure that the other stuff is page aligned.
// No other way to do this portably... :-(
//
// TODO: Consider allocating just one large block of BSS memory here, align
// just the first pointer, and then get the other ones just as offsets from
// this (now-aligned) pointer. That way we could get away with wasting just
// one page of memory, instead of 4 (like 16KB would matter... but still)
static kernel_page_t* startup_pagedirectory_holder[1024 * 2];
static kernel_page_t* lowmem_pagetable_holder[1024 * 2];
static kernel_page_t* kernel_pagetable_holder[32*1024 + 1];
static __int32 kpcr_pagetable_holder[4096/4 * 2];
#ifdef MP
char apic_pagetable[4096];
#endif /* MP */
__int32 unmap_me[4096/4];
__int32 unmap_me2[4096/4];
__int32 unmap_me3[4096/4];
__int32 init_stack[3*4096/4];
int init_stack_top;
__int32 trap_stack[3*4096/4];
int trap_stack_top;
void _main();
// lie a bit about types - since C is basically typeless anyway, it
// doesn't really matter what type we say it is here...
extern int KiGdtDescriptor;
extern int KiIdtDescriptor;
/*
* This is called by the realmode loader, with protected mode
* enabled, paging disabled and the segment registers pointing
* a 4Gb, 32-bit segment starting at zero.
*
* EAX = Multiboot magic or application processor magic
*
* EBX = Points to a structure in lowmem with data from the
* loader
*/
#pragma intrinsic(memset)
// We need to implement this ourself, to be able to get to it by short call's
void our_memmove(void* pDest, const void* pSrc, DWORD size)
{
char* pD = (char*)pDest;
const char* pS = (char*)pSrc;
if (pDest < pSrc)
{
while (size--)
{
*pD++ = *pS++;
}
}
else if (pSrc < pDest)
{
while (size--)
{
pD[size] = pS[size];
}
}
}
void dummy_placeholder(void)
{
// NOTE: This function MUST be placed JUST AFTER MultibootStub in memory.
// Yes, it's BEFORE it in this file, but linkorder.txt fixes this for us.
}
// This one is needed, since the boot loader hasn't relocated us
__declspec(naked)
void MultibootStub()
{
__asm
{
jmp _multiboot_entry
// This sucks, I know...
#define EMIT_DWORD(x) __asm __emit ((x) >> 0) & 0xff __asm _emit ((x) >> 8) & 0xff __asm _emit ((x) >> 16) & 0xff __asm _emit ((x) >> 24) & 0xff
ALIGN 4
EMIT_DWORD(MULTIBOOT_HEADER_MAGIC)
EMIT_DWORD(MULTIBOOT_HEADER_FLAGS)
EMIT_DWORD(-(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS))
EMIT_DWORD(TARGET_LOAD_ADDR + 0x0400 + 0x04)
// Now just make something up, since there is no way we can know, beforehand,
// where any BSS data is...
EMIT_DWORD((TARGET_LOAD_ADDR))
EMIT_DWORD((TARGET_LOAD_ADDR + 1*1024*1024)) /* assume ntoskrnel.exe is < 1MB! */
EMIT_DWORD((TARGET_LOAD_ADDR + 2*1024*1024)) /* just to have something, let's say BSS is 1MB too */
/* This is *REALLY* ugly! If MultibootStub is *EVER* at */
/* any other offset, this will crash like crazy! */
/* 0x0400 is the file alignment of the binary (ntoskrnl.exe) */
EMIT_DWORD((TARGET_LOAD_ADDR + 0x0400)) // entry_addr
_multiboot_entry:
cld // just for good measure
}
{
/* Save the multiboot or application processor magic */
DWORD saved_eax;
DWORD saved_ebx;
__asm mov saved_eax, eax
__asm mov saved_ebx, ebx
// bochs_out_string("MultibootStub()\n");
// OK, time to relocate the brute-loaded image in-place...
// If we don't watch it, we will overwrite ourselves here - imagine
// the fireworks! :-) That's why the function dummy_placeholder()
// MUST be placed JUST JUST AFTER this function.
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)TARGET_LOAD_ADDR);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
Section += count - 1; // make it point to the last section
// NOTE: We MUST walk the sections "backwards".
for (i = count-1; i >= 0; --i, --Section)
{
DWORD dwSrc = TARGET_LOAD_ADDR + Section->PointerToRawData;
DWORD dwDst = TARGET_LOAD_ADDR + Section->VirtualAddress;
DWORD dwSiz = Section->SizeOfRawData;
const char* pEndThisFunc;
if (dwSrc == dwDst)
{
continue;
}
//bochs_out_string("MultibootStub: relocating section\n");
if (Section->Characteristics & IMAGE_SCN_MEM_EXECUTE)
{
// can't get a pointer to a label from plain C :-(
__asm mov pEndThisFunc, offset dummy_placeholder
pEndThisFunc -= BASE_TO_PHYS_DIST;
if (dwDst < (DWORD)pEndThisFunc)
{
// We must not move the code from under our feet!
// This can only happen in the code segment - the first segment
DWORD diff = (DWORD)pEndThisFunc - dwDst;
dwDst += diff;
dwSrc += diff;
dwSiz -= diff;
}
}
// obviously we must use memmove, since memory can overlap
our_memmove((void*)dwDst, (void*)dwSrc, dwSiz);
// While at it, we might as well zero any uninitialized data in the section...
if (Section->SizeOfRawData < Section->Misc.VirtualSize)
{
memset((char*)(Section->VirtualAddress + Section->SizeOfRawData + TARGET_LOAD_ADDR),
0,
Section->Misc.VirtualSize - Section->SizeOfRawData);
}
}
// Now all sections are relocated to their intended in-memory layout,
// but we are still running int the low TARGET_LOAD_ADDR memory.
{
// Time to jump to the real startup, the entry-point function.
// We must do this using assembler, since both eax and ebx are assumed
// to hold some magic values.
typedef VOID (STDCALL* pfn_t)(PPEB);
pfn_t pfn = (pfn_t)(NtHeader->OptionalHeader.AddressOfEntryPoint + TARGET_LOAD_ADDR);
#if 1
__asm mov eax, saved_eax
__asm mov ebx, saved_ebx
__asm mov ecx, pfn
__asm jmp ecx
#else
__asm mov ebx, saved_ebx
(*pfn)((PPEB)saved_eax);
#endif
}
}
}
}
// TMN: TODO: Convert this to the extent possible to plain C code
// Due to the "magic" above, we enter this function with all kernel sections
// properly relocated wrt. offsets from start-of-mem. But, we are still running
// without paging, meaning that the address that is to be KERNEL_BASE+xyz is
// currently still TARGET_LOAD_ADDR+xyz.
// We get aways with a few of the functions call here since they are near calls
// (PC-relative), but don't even _think_ about calling any other functions
// until we have turned on paging!
VOID STDCALL
NtProcessStartup(
IN PPEB Peb
)
{
DWORD saved_ebx;
DWORD saved_eax;
__asm mov saved_ebx, ebx
__asm mov saved_eax, eax
bochs_out_string("NtProcessStartup: Just entered\n");
#ifdef MP
if (saved_eax != AP_MAGIC)
{
#endif /* MP */
bochs_out_string("NtProcessStartup: Calling initialize_page_directory()\n");
initialize_page_directory(); // Initialize the page directory
bochs_out_string("NtProcessStartup: Page directory initialized\n");
#ifdef MP
__asm
{
/*
* Initialize the page table that maps the APIC register address space
*/
/*
* FIXME: APIC register address space can be non-standard so do the
* mapping later
*/
mov esi, V2P(apic_pagetable)
mov edi, 0
mov eax, 0xFEC0001B
mov [esi+edi], eax
mov edi, 0x800
mov eax, 0xFEE0001B
mov [esi+edi], eax
}
}
#endif /* MP */
{
bochs_out_string("NtProcessStartup: Enabling paging...\n");
/*
* Enable paging and set write protect
* bit 31: PG, bit 16: WP
*/
__asm mov eax, cr0
__asm or eax, 0x80010000
__asm mov cr0, eax
bochs_out_string("NtProcessStartup: Paging enabled!\n");
bochs_out_string("NtProcessStartup: But we're still at the \"low\" address\n");
/*
* Do an absolute jump because we now want to execute above KERNEL_BASE
*/
__asm mov eax, offset l2_
__asm jmp eax
}
l2_:
bochs_out_string("We have now left \"low\" memory, and is flying at an altitude of...\n");
bochs_out_string("OK, we're not flying, we're just executing above KERNEL_BASE\n");
/*
* Load the GDTR and IDTR with new tables located above
* KERNEL_BASE
*/
#ifdef _DEBUG
{
DWORD val = (DWORD)&KiGdtDescriptor;
bochs_out_string("&KiGdtDescriptor: ");
bochs_dump_hex(val);
val = (DWORD)&KiIdtDescriptor;
bochs_out_string("&KiIdtDescriptor: ");
bochs_dump_hex(val);
}
#endif
bochs_out_string("Loading GDT and IDT...\n");
/* FIXME: Application processors should have their own GDT/IDT */
__asm lgdt KiGdtDescriptor
__asm lidt KiIdtDescriptor
bochs_out_string("GDT and IDT loaded\n");
__asm
{
/*
* Reload the data segment registers
*/
mov eax, KERNEL_DS
mov ds, ax
mov es, ax
mov gs, ax
mov ss, ax
mov eax, 0
mov fs, ax
}
bochs_out_string("NtProcessStartup: segment registers loaded\n");
#ifdef MP
if (saved_eax == AP_MAGIC)
{
__asm
{
/*
* This is an application processor executing
*/
/*
* Initialize EFLAGS
*/
push 0
popfd
/*
* Call the application processor initialization code
*/
push 0
push offset l7_
push KERNEL_CS
push KiSystemStartup
retf
/*
* Catch illegal returns from KiSystemStartup
*/
l7_:
pop eax
}
KeBugCheck(0);
for (;;)
; /*forever */
}
#endif /* MP */
bochs_out_string("Loading fs with PCR_SELECTOR\n");
/* Load the PCR selector */
__asm mov eax, PCR_SELECTOR
__asm mov fs, ax
bochs_out_string("Loading esp with init_stack_top : "); bochs_dump_hex((DWORD)&init_stack_top);
bochs_out_string("Just for interest, init_stack is at: "); bochs_dump_hex((DWORD)init_stack);
bochs_out_string("Meaing the init_stack in bytes is : "); bochs_dump_hex((DWORD)&init_stack_top - (DWORD)init_stack);
/* Load the initial kernel stack */
__asm mov esp, offset init_stack_top
bochs_out_string("Loaded esp with init_stack_top\n");
/*
* Initialize EFLAGS
*/
__asm push 0
__asm popfd
bochs_out_string("Loaded eflags\n");
/*
* Call the main kernel initialization
*/
bochs_out_string("TMN: Calling _main...\n");
__asm
{
xor ebp,ebp
push ebx
push edx
push offset l5_
push KERNEL_CS
push offset _main
retf
/*
* Catch illegal returns from main, try bug checking the system,
* if that fails then loop forever.
*/
l5_:
pop eax
pop eax
} // end of __asm block
bochs_out_string("TMN: Back from _main ?! Let's crash!\n");
KeBugCheck(0);
for (;;)
; /*forever */
}
void initialize_page_directory(void)
{
/*
* Initialize the page directory
*/
// First convert the pointers from the virtual address the compiler generated
// code thinks we are at, to the currently active physical address we actually
// got loaded into by the loader. At this point we have been relocated, so
// that there is a 1:1 mapping between KERNEL_BASE+n and TARGET_LOAD_ADDR+n.
kernel_page_t** startup_pagedirectory = startup_pagedirectory_holder;
kernel_page_t** lowmem_pagetable = lowmem_pagetable_holder;
kernel_page_t** kernel_pagetable = kernel_pagetable_holder;
__int32* kpcr_pagetable = kpcr_pagetable_holder;
bochs_out_string("startup_pagedirectory before reloc: ");
bochs_dump_hex((DWORD)startup_pagedirectory);
startup_pagedirectory = (kernel_page_t**)relocate_pointer_log_to_phys(startup_pagedirectory);
lowmem_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(lowmem_pagetable);
kernel_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(kernel_pagetable);
kpcr_pagetable = (__int32*) relocate_pointer_log_to_phys(kpcr_pagetable);
bochs_out_string("startup_pagedirectory after reloc : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
// Now align the pointers to PAGE_SIZE...
startup_pagedirectory = (kernel_page_t**)(((ULONG_PTR)startup_pagedirectory + 4095) & ~4095);
lowmem_pagetable = (kernel_page_t**)(((ULONG_PTR)lowmem_pagetable + 4095) & ~4095);
kernel_pagetable = (kernel_page_t**)(((ULONG_PTR)kernel_pagetable + 4095) & ~4095);
kpcr_pagetable = (__int32* ) (((ULONG_PTR)kpcr_pagetable + 4095) & ~4095);
#ifdef _DEBUG
bochs_out_string("startup_pagedirectory aligned : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
#endif
// Ugly macros, I know...
#define DEST(PAGE) startup_pagedirectory[(PAGE) + 0xc00 / 4]
#define SRC(PAGE) (kernel_page_t*)((char*)kernel_pagetable + (PAGE)*4096 + 0x7)
startup_pagedirectory[0] = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
{
unsigned int i;
for (i=0; i<32; ++i)
{
DEST(i) = SRC(i);
}
}
DEST( 64) = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
DEST(192) = (kernel_page_t*)((char*)startup_pagedirectory + 0x7);
#ifdef MP
DEST(251) = (kernel_page_t*)((char*)apic_pagetable + 0x7);
#endif /* MP */
DEST(252) = (kernel_page_t*)((char*)kpcr_pagetable + 0x7);
{
unsigned int i;
/* Initialize the page table that maps low memory */
for (i=0; i<1024; ++i) {
lowmem_pagetable[i] = (kernel_page_t*)(i*4096 + 7);
}
/* Initialize the page table that maps kernel memory */
for (i=0; i<6144/4 /* 1536 pages = 6MB */; ++i) {
kernel_pagetable[i] = (kernel_page_t*)(i*4096 + TARGET_LOAD_ADDR + 0x7);
}
/* Initialize the page table that maps the initial KPCR (at FF000000) */
kpcr_pagetable[0] = 0x1007;
}
/*
* Set up the PDBR
*/
__asm mov eax, startup_pagedirectory
__asm mov cr3, eax
}

View File

@@ -2,6 +2,8 @@
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -17,8 +19,8 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/tskswitch.S
* PURPOSE: Microkernel thread support
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
@@ -26,11 +28,26 @@
/* INCLUDES ******************************************************************/
#include <internal/i386/segment.h>
#include <internal/ps.h>
#include <ntos/tss.h>
#pragma hdrstop
/* FUNCTIONS ****************************************************************/
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KeReturnFromSystemCall();
/*
* FUNCTION: KeStackSwitchAndRet
@@ -38,45 +55,56 @@
* the new stack which was assumed to a stdcall function with
* 8 bytes of arguments and which saved edi, esi and ebx.
*/
.globl _KeStackSwitchAndRet@4
_KeStackSwitchAndRet@4:
pushl %ebp
movl %esp, %ebp
__declspec(naked)
VOID STDCALL
KeStackSwitchAndRet(PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
cli
cli
movl 8(%ebp), %esp
mov esp, NewStack
sti
sti
popl %edi
popl %esi
popl %ebx
pop edi
pop esi
pop ebx
popl %ebp
ret $8
pop ebp
ret 8
}
}
.globl _KePushAndStackSwitchAndSysRet@8
_KePushAndStackSwitchAndSysRet@8:
pushl %ebp
movl %esp, %ebp
__declspec(naked)
VOID STDCALL
KePushAndStackSwitchAndSysRet(ULONG Push, PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
pushl %ebx
pushl %esi
pushl %edi
push ebx
push esi
push edi
cli
cli
pushl 8(%ebp)
push 8[ebp]
movl %fs:KPCR_CURRENT_THREAD, %ebx
movl %esp, KTHREAD_CALLBACK_STACK(%ebx)
movl 12(%ebp), %esp
mov ebx, fs:KPCR_CURRENT_THREAD
mov KTHREAD_CALLBACK_STACK[ebx], esp
mov esp, 12[ebp]
sti
sti
push $0
call _KeLowerIrql@4
jmp KeReturnFromSystemCall
push 0
call KeLowerIrql
jmp KeReturnFromSystemCall
}
}

View File

@@ -0,0 +1,325 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Converted to MSVC-compatible inline assembler by Mike Nordell, 2003.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: MSVC6/ntoskrnl/ke_i386_syscall.c
* based on ntoskrnl/ke/i386/syscall.s
* PURPOSE: syscall dispatching and support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define KernelMode (0)
#define UserMode (1)
// TMN: Replicated here to reduce mess-time
#ifdef STATUS_INVALID_SYSTEM_SERVICE
#undef STATUS_INVALID_SYSTEM_SERVICE
#endif
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
/*
*
*/
void KiServiceCheck (ULONG Nr);
ULONG KiAfterSystemCallHook(ULONG NtStatus, PKTRAP_FRAME TrapFrame);
VOID KiSystemCallHook(ULONG Nr, ...);
void KeReturnFromSystemCallWithHook();
void KeReturnFromSystemCall();
__declspec(naked)
void interrupt_handler2e(void)
{
__asm
{
/* Construct a trap frame on the stack */
/* Error code */
push 0
push ebp
push ebx
push esi
push edi
push fs
/* Load PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Set the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Save the old previous mode */
xor ebx,ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[esi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
#if 0
// TODO: Verify implementation change and use this code path
// to remove two conditional jumps.
setnz bl
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
#else
jne L1
mov ss:KTHREAD_PREVIOUS_MODE[esi], KernelMode
jmp L3
L1:
mov ss:KTHREAD_PREVIOUS_MODE[esi], UserMode
L3:
#endif
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* DebugEIP */
push ebp /* DebugEBP */
/* Load the segment registers */
mov bx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/*
* Save the old trap frame pointer over where we would save the EDX
* register.
*/
mov ebx, KTHREAD_TRAP_FRAME[esi]
mov 0x3C[esp], ebx
/* Save a pointer to the trap frame in the TCB */
mov KTHREAD_TRAP_FRAME[esi], esp
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
/* Allocate new Kernel stack frame */
mov ebp, esp
/* Users's current stack frame pointer is source */
mov esi, edx
/* Determine system service table to use */
cmp eax, 0x0fff
ja new_useShadowTable
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTable + 8
jbe new_serviceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_serviceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTable + 12
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
push eax
call KiSystemCallHook
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTable
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
/* Call the post system call hook and deliver any pending APCs */
push ebp
push eax
call KiAfterSystemCallHook
add esp, 8
jmp KeReturnFromSystemCall
new_useShadowTable:
sub eax, 0x1000
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTableShadow + 24
jbe new_shadowServiceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_shadowServiceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTableShadow + 28
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
// pushl %eax
// call _KiSystemCallHook
// popl %eax
/* Call service check routine */
push eax
call KiServiceCheck
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTableShadow + 16
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCallWithHook
}
}
__declspec(naked)
void KeReturnFromSystemCallWithHook()
{
__asm
{
/* Call the post system call hook and deliver any pending APCs */
push esp
push eax
call KiAfterSystemCallHook
add esp, 8
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCall
}
}
__declspec(naked)
void KeReturnFromSystemCall()
{
__asm
{
/* Restore the user context */
/* Get a pointer to the current thread */
mov esi, fs:0x124
/* Restore the old trap frame pointer */
mov ebx, 0x3c[esp]
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
add esp, 4 /* Don't restore eax */
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}

View File

@@ -0,0 +1,468 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KiV86Complete(void);
void KiTrapHandler(void);
void KiDoubleFaultHandler(void);
extern int KiPcrInitDone;
/*
* Epilog for exception handlers
*/
__declspec(naked)
void KiTrapEpilog()
{
__asm
{
cmp eax, 1 /* Check for v86 recovery */
jne _KiTrapRet
jmp KiV86Complete
_KiTrapRet:
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
pop eax
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}
__declspec(naked)
void KiTrapProlog()
{
__asm
{
push edi
push fs
/*
* Check that the PCR exists, very early in the boot process it may
* not
*/
cmp ss:KiPcrInitDone, 0
je L5_
/* Load the PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Put the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov edi, fs:KPCR_CURRENT_THREAD
/* The current thread may be NULL early in the boot process */
cmp edi, 0
je L4_
/* Save the old previous mode */
xor ebx, ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[edi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
jne L1_
mov ss:KTHREAD_PREVIOUS_MODE[edi], KernelMode
jmp L3_
L1_:
mov ss:KTHREAD_PREVIOUS_MODE[edi], UserMode
L3_:
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* XXX: DebugEIP */
push ebp /* XXX: DebugEBP */
/* Load the segment registers */
mov ebx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
mov ebx, esp
mov ebp, esp
/* Save the old trap frame. */
cmp edi, 0
je L7_
mov edx, ss:KTHREAD_TRAP_FRAME[edi]
push edx
jmp L8_
L7_:
push 0
L8_:
/* Save a pointer to the trap frame in the current KTHREAD */
cmp edi, 0
je L6_
mov ss:KTHREAD_TRAP_FRAME[edi], ebx
L6_:
/* Call the C exception handler */
push esi
push ebx
call KiTrapHandler
add esp, 8
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Restore the old trap frame pointer */
pop ebx
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Return to the caller */
jmp KiTrapEpilog
/* Handle the no-pcr case out of line */
L5_:
push 0
/* Handle the no-thread case out of line */
L4_:
push 0
jmp L3_
} // end of __asm block
}
__declspec(naked)
void KiTrap0()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 0
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap1()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 1
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap2()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 2
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap3()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 3
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap4()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 4
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap5()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 5
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap6()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 6
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap7()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 7
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap8()
{
__asm
{
call KiDoubleFaultHandler
iretd
}
}
__declspec(naked)
void KiTrap9()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 9
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap10()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 10
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap11()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 11
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap12()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 12
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap13()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 13
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap14()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 14
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap15()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 15
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap16()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 16
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrapUnknown()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 255
jmp KiTrapProlog
}
}
/* EOF */

View File

@@ -0,0 +1,217 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
extern KSPIN_LOCK PiThreadListLock;
extern ULONG PiNrThreadsAwaitingReaping;
extern ULONG MmGlobalKernelPageDirectory[1024];
VOID STDCALL PiWakeupReaperThread(VOID);
VOID KeSetBaseGdtSelector(ULONG Entry, PVOID Base);
/*
* FUNCTIONS: Switches to another thread's context
* ARGUMENTS:
* Thread = Thread to switch to
* OldThread = Thread to switch from
*/
__declspec(naked)
VOID
Ki386ContextSwitch(struct _KTHREAD* NewThread, struct _KTHREAD* OldThread)
{
__asm
{
push ebp
mov ebp, esp
/* Save callee save registers. */
push ebx
push esi
push edi
cli /* This is a critical section for this processor. */
/* Get the pointer to the new thread. */
mov ebx, NewThread
/*
* Set the base of the TEB selector to the base of the TEB for
* this thread.
*/
push ebx
push KTHREAD_TEB[ebx]
push TEB_SELECTOR
call KeSetBaseGdtSelector
add esp, 8
pop ebx
/*
* Load the PCR selector.
*/
mov eax, PCR_SELECTOR
mov fs, ax
/*
* Set the current thread information in the PCR.
*/
mov fs:KPCR_CURRENT_THREAD, ebx
/*
* Set the current LDT
*/
xor eax, eax
mov edi, ETHREAD_THREADS_PROCESS[ebx]
test word ptr KPROCESS_LDT_DESCRIPTOR0[edi], 0xFFFF
jz L4
push KPROCESS_LDT_DESCRIPTOR1[edi]
push KPROCESS_LDT_DESCRIPTOR0[edi]
push LDT_SELECTOR
call KeSetGdtSelector
add esp, 12
mov eax, LDT_SELECTOR
L4:
lldt ax
/*
* Load up the iomap offset for this thread in
* preparation for setting it below.
*/
mov eax, KPROCESS_IOPM_OFFSET[edi]
/*
* FIXME: Save debugging state.
*/
/*
* FIXME: Save floating point state.
*/
/*
* Switch stacks
*/
mov ebx, 12[ebp]
mov KTHREAD_KERNEL_STACK[ebx], esp
mov ebx, 8[ebp]
mov esp, KTHREAD_KERNEL_STACK[ebx]
mov edi, KTHREAD_STACK_LIMIT[ebx]
/*
* Set the stack pointer in this processors TSS
*/
mov esi, fs:KPCR_TSS
/*
* Set current IOPM offset in the TSS
*/
mov KTSS_IOMAPBASE[esi], ax
mov eax, KTHREAD_INITIAL_STACK[ebx]
mov KTSS_ESP0[esi], eax
/*
* Change the address space
*/
mov ebx, ETHREAD_THREADS_PROCESS[ebx]
mov eax, KPROCESS_DIRECTORY_TABLE_BASE[ebx]
mov cr3, eax
/*
* Set up the PDE for the top of the new stack.
*/
mov ebx, 0
L2:
mov esi, edi
shr esi, 22
mov eax, 0xF03C0000[esi*4]
cmp eax, 0
jne L1
mov eax, MmGlobalKernelPageDirectory[esi*4]
mov 0xF03C0000[esi*4], eax
L1:
add edi, 4096
inc ebx
cmp ebx, (MM_STACK_SIZE / 4096)
jl L2
/*
* FIXME: Restore floating point state
*/
/*
* FIXME: Restore debugging state
*/
/*
* Exit the critical section
*/
sti
}
KeReleaseSpinLockFromDpcLevel(&PiThreadListLock);
if (PiNrThreadsAwaitingReaping) {
PiWakeupReaperThread();
}
__asm
{
/*
* Restore the saved register and exit
*/
pop edi
pop esi
pop ebx
pop ebp
ret
}
}

View File

@@ -0,0 +1,256 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
// Taken from ntoskrnl/include/internal/v86m.h, since that one must be fixed
// a bit before it could be used from here.
#define KV86M_REGISTERS_EBP (0x0)
#define KV86M_REGISTERS_EDI (0x4)
#define KV86M_REGISTERS_ESI (0x8)
#define KV86M_REGISTERS_EDX (0xC)
#define KV86M_REGISTERS_ECX (0x10)
#define KV86M_REGISTERS_EBX (0x14)
#define KV86M_REGISTERS_EAX (0x18)
#define KV86M_REGISTERS_DS (0x1C)
#define KV86M_REGISTERS_ES (0x20)
#define KV86M_REGISTERS_FS (0x24)
#define KV86M_REGISTERS_GS (0x28)
#define KV86M_REGISTERS_EIP (0x2C)
#define KV86M_REGISTERS_CS (0x30)
#define KV86M_REGISTERS_EFLAGS (0x34)
#define KV86M_REGISTERS_ESP (0x38)
#define KV86M_REGISTERS_SS (0x3C)
void KiV86Complete();
/*
* Starts in v86 mode with the registers set to the
* specified values.
*/
__declspec(naked)
VOID Ki386RetToV86Mode(KV86M_REGISTERS* InRegs,
KV86M_REGISTERS* OutRegs)
{
__asm
{
/*
* Setup a stack frame
*/
push ebp
mov ebp, esp
pushad /* Save registers */
mov ebx, InRegs
/*
* Save ebp
*/
push ebp
/*
* Save a pointer to IN_REGS which the v86m exception handler will
* use to handle exceptions
*/
push ebx
/*
* Since we are going to fiddle with the stack pointer this must be
* a critical section for this processor
*/
/*
* Save the old initial stack
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
push edi
/*
* We also need to set the stack in the kthread structure
*/
mov KTHREAD_INITIAL_STACK[esi], esp
/*
* The stack used for handling exceptions from v86 mode in this thread
* will be the current stack adjusted so we don't overwrite the
* existing stack frames
*/
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], esp
/*
* Create the stack frame for an iret to v86 mode
*/
push KV86M_REGISTERS_GS[ebx]
push KV86M_REGISTERS_FS[ebx]
push KV86M_REGISTERS_DS[ebx]
push KV86M_REGISTERS_ES[ebx]
push KV86M_REGISTERS_SS[ebx]
push KV86M_REGISTERS_ESP[ebx]
push KV86M_REGISTERS_EFLAGS[ebx]
push KV86M_REGISTERS_CS[ebx]
push KV86M_REGISTERS_EIP[ebx]
/*
* Setup the CPU registers
*/
mov eax, KV86M_REGISTERS_EAX[ebx]
mov ecx, KV86M_REGISTERS_ECX[ebx]
mov edx, KV86M_REGISTERS_EDX[ebx]
mov esi, KV86M_REGISTERS_ESI[ebx]
mov edi, KV86M_REGISTERS_EDI[ebx]
mov ebp, KV86M_REGISTERS_EBP[ebx]
mov ebx, KV86M_REGISTERS_EBX[ebx]
/*
* Go to v86 mode
*/
iretd
/*
* Handle the completion of a vm86 routine. We are called from
* an exception handler with the registers at the point of the
* exception on the stack.
*/
jmp KiV86Complete // TMN: Function-splitting
}
}
__declspec(naked)
void KiV86Complete()
{
__asm
{
/* Restore the original ebp */
mov ebp, TF_ORIG_EBP[esp]
/* Get a pointer to the OUT_REGS structure */
mov ebx, 12[ebp] // OutRegs
/* Skip debug information and unsaved registers */
add esp, 0x30
/* Ignore 32-bit segment registers */
add esp, 12
/* Save the vm86 registers into the OUT_REGS structure */
pop dword ptr KV86M_REGISTERS_EDX[ebx]
pop dword ptr KV86M_REGISTERS_ECX[ebx]
pop dword ptr KV86M_REGISTERS_EAX[ebx]
/* Restore the old previous mode */
pop eax
mov ss:KTHREAD_PREVIOUS_MODE[esi], al
/* Restore the old exception handler list */
pop eax
mov fs:KPCR_EXCEPTION_LIST, eax
/* Ignore the 32-bit fs register */
add esp, 4
pop dword ptr KV86M_REGISTERS_EDI[ebx]
pop dword ptr KV86M_REGISTERS_ESI[ebx]
pop dword ptr KV86M_REGISTERS_EBX[ebx]
pop dword ptr KV86M_REGISTERS_EBP[ebx]
/* Ignore error code */
add esp, 4
pop dword ptr KV86M_REGISTERS_EIP[ebx]
pop dword ptr KV86M_REGISTERS_CS[ebx]
pop dword ptr KV86M_REGISTERS_EFLAGS[ebx]
pop dword ptr KV86M_REGISTERS_ESP[ebx]
pop dword ptr KV86M_REGISTERS_SS[ebx]
pop dword ptr KV86M_REGISTERS_ES[ebx]
pop dword ptr KV86M_REGISTERS_DS[ebx]
pop dword ptr KV86M_REGISTERS_FS[ebx]
pop dword ptr KV86M_REGISTERS_GS[ebx]
/*
* We are going to fiddle with the stack so this must be a critical
* section for this process
*/
cli
/*
* Restore the initial stack
*/
pop eax
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], eax
/*
* We also need to set the stack in the kthread structure
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
mov KTHREAD_INITIAL_STACK[esi], eax
/* Exit the critical section */
sti
/* Ignore IN_REGS pointer */
add esp, 4
/* Ignore ebp restored above */
add esp, 4
/* Return to caller */
popad
mov esp, ebp
pop ebp
ret
} // end of __asm block
}

View File

@@ -0,0 +1,15 @@
; This file is vital. It tells the linker how to order some functions
; and some data, that unfortunately is assumed to be at low location
; and in known order to eachother respectively?
MultibootStub
our_memmove
dummy_placeholder
NtProcessStartup@4
initialize_page_directory
relocate_pointer_log_to_phys
; Order some data that there is some assumptions about...
init_stack
init_stack_top
trap_stack
trap_stack_top

View File

@@ -0,0 +1,126 @@
#include <ddk/ntddk.h>
void MmSafeCopyToUserRestart();
void MmSafeCopyToUserUnsafeStart();
void MmSafeCopyFromUserUnsafeStart();
void MmSafeCopyFromUserRestart();
/*
* NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
__declspec(naked)
NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov ebp,esp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyFromUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyFromUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyFromUserRestart
}
}
__declspec(naked)
void MmSafeCopyFromUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}
/*****************************************************************************/
/*
* NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov esp,ebp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyToUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyToUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyToUserRestart
}
}
__declspec(naked)
void MmSafeCopyToUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: mminit.c,v 1.55 2003/10/12 17:05:48 hbirr Exp $
/* $Id: mm_mminit_msvc.c,v 1.1 2004/02/06 08:22:01 fireball Exp $
*
* COPYRIGHT: See COPYING in the top directory
* PROJECT: ReactOS kernel
@@ -33,24 +33,62 @@
/*
* Compiler defined symbols
*/
extern unsigned int _text_start__;
extern unsigned int _text_end__;
extern unsigned int _init_start__;
extern unsigned int _init_end__;
#if defined(_MSC_VER)
#pragma intrinsic(strcmp)
static PIMAGE_SECTION_HEADER FindSection(const char* szSeg)
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)KERNEL_BASE);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
for (i = 0; i < count; ++i, ++Section)
{
if (!strcmp(szSeg, Section->Name))
{
return Section;
}
}
return NULL;
}
static void* FindSegmentStart(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress);
}
return NULL;
}
static void* FindSegmentEnd(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress + Section->Misc.VirtualSize);
}
return NULL;
}
#endif // defined(_MSC_VER)
static BOOLEAN IsThisAnNtAsSystem = FALSE;
static MM_SYSTEM_SIZE MmSystemSize = MmSmallSystem;
extern unsigned int _bss_end__;
static MEMORY_AREA* kernel_text_desc = NULL;
static MEMORY_AREA* kernel_init_desc = NULL;
static MEMORY_AREA* kernel_map_desc = NULL;
static MEMORY_AREA* kernel_kpcr_desc = NULL;
static MEMORY_AREA* kernel_data_desc = NULL;
static MEMORY_AREA* kernel_param_desc = NULL;
static MEMORY_AREA* kernel_pool_desc = NULL;
static MEMORY_AREA* kernel_shared_data_desc = NULL;
static MEMORY_AREA* kernel_mapped_low_mem_desc = NULL;
static MEMORY_AREA* MiKernelMapDescriptor = NULL;
static MEMORY_AREA* MiPagedPoolDescriptor = NULL;
@@ -97,25 +135,26 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
ULONG Length;
ULONG ParamLength = KernelLength;
NTSTATUS Status;
PHYSICAL_ADDRESS BoundaryAddressMultiple;
//ULONG i;
DPRINT("MmInitVirtualMemory(%x, %x)\n",LastKernelAddress, KernelLength);
BoundaryAddressMultiple.QuadPart = 0;
LastKernelAddress = PAGE_ROUND_UP(LastKernelAddress);
MmInitMemoryAreas();
/* Don't change the start of kernel map. Pte's must always exist for this region. */
MiKernelMapStart = (PVOID)LastKernelAddress + PAGE_SIZE;
MiKernelMapStart = (char*)LastKernelAddress + PAGE_SIZE;
MiKernelMapLength = MM_KERNEL_MAP_SIZE;
MiNonPagedPoolStart = MiKernelMapStart + MiKernelMapLength + PAGE_SIZE;
MiNonPagedPoolStart = (char*)MiKernelMapStart + MiKernelMapLength + PAGE_SIZE;
MiNonPagedPoolLength = MM_NONPAGED_POOL_SIZE;
MmPagedPoolBase = MiNonPagedPoolStart + MiNonPagedPoolLength + PAGE_SIZE;
MmPagedPoolBase = (char*)MiNonPagedPoolStart + MiNonPagedPoolLength + PAGE_SIZE;
MmPagedPoolSize = MM_PAGED_POOL_SIZE;
MiInitKernelMap();
MiInitializeNonPagedPool();
@@ -131,12 +170,37 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_map_desc,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KPCR_BASE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
PAGE_SIZE * MAXIMUM_PROCESSORS,
0,
&kernel_kpcr_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)0xd0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x100000,
0,
&kernel_mapped_low_mem_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KERNEL_BASE;
Length = PAGE_ROUND_UP(((ULONG)&_text_end__)) - KERNEL_BASE;
Length = PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text"))) - KERNEL_BASE;
ParamLength = ParamLength - Length;
/*
* No need to lock the address space at this point since no
* other threads are running.
@@ -149,35 +213,26 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_text_desc,
FALSE,
FALSE);
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)&_text_end__));
assert (BaseAddress == (PVOID)&_init_start__);
Length = PAGE_ROUND_UP(((ULONG)&_init_end__)) -
PAGE_ROUND_UP(((ULONG)&_text_end__));
ParamLength = ParamLength - Length;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_init_desc,
FALSE,
FALSE);
BoundaryAddressMultiple);
// TODO: Here we REALLY should iterate the PE's sections and set protection
// accordingly for each and every one of them.
Length = PAGE_ROUND_UP(((ULONG)&_bss_end__)) -
PAGE_ROUND_UP(((ULONG)&_init_end__));
// NOTE This code ONLY works because of the assumption that the .text
// segment is the first in the PE, and the .reloc segment is the last.
// Link in a way to make this assumtion false, and the kernel won't work.
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text")));
Length = PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc"))) - (ULONG_PTR)BaseAddress;
ParamLength = ParamLength - Length;
DPRINT("Length %x\n",Length);
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)&_init_end__));
DPRINT("BaseAddress %x\n",BaseAddress);
DPRINT1("Data Length %x\n",Length);
DPRINT1("Data BaseAddress %x\n",BaseAddress);
/*
* No need to lock the address space at this point since we are
* the only thread running.
*/
// For GCC-compiled, kernel_data_desc contains:
// .data, .edata, .idata, .bss and .rsrc. E.i. all but .text and .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
@@ -186,10 +241,13 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_data_desc,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)&_bss_end__));
// BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".edata")));
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc")));
Length = LastKernelAddress - (ULONG)BaseAddress;
// For GCC-compiled, kernel_param_desc contains .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
@@ -198,8 +256,9 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_param_desc,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiNonPagedPoolStart;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
@@ -209,7 +268,8 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_pool_desc,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiKernelMapStart;
Status = MmCreateMemoryArea(NULL,
@@ -220,8 +280,9 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&MiKernelMapDescriptor,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
BaseAddress = MmPagedPoolBase;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
@@ -231,7 +292,8 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&MiPagedPoolDescriptor,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
MmInitializePagedPool();
@@ -248,7 +310,9 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
0,
&kernel_shared_data_desc,
FALSE,
FALSE);
FALSE,
BoundaryAddressMultiple);
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE,
&MmSharedDataPagePhysicalAddress);
Status = MmCreateVirtualMapping(NULL,
@@ -269,6 +333,7 @@ MmInitVirtualMemory(ULONG LastKernelAddress,
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
}
VOID INIT_FUNCTION
MmInit1(ULONG FirstKrnlPhysAddr,
ULONG LastKrnlPhysAddr,
@@ -294,7 +359,7 @@ MmInit1(ULONG FirstKrnlPhysAddr,
if ((BIOSMemoryMap != NULL) && (AddressRangeCount > 0))
{
// If we have a bios memory map, recalulate the the memory size
// If we have a bios memory map, recalulate the memory size
ULONG last = 0;
for (i = 0; i < AddressRangeCount; i++)
{
@@ -359,7 +424,7 @@ MmInit1(ULONG FirstKrnlPhysAddr,
*/
DPRINT("first krnl %x\nlast krnl %x\n",FirstKrnlPhysAddr,
LastKrnlPhysAddr);
/*
* Free physical memory not used by the kernel
*/
@@ -375,17 +440,16 @@ MmInit1(ULONG FirstKrnlPhysAddr,
MmStats.NrTotalPages += 256;
}
#ifdef BIOS_MEM_FIX
MmStats.NrTotalPages += 16;
MmStats.NrTotalPages += 16;
#endif
DbgPrint("Used memory %dKb\n", (MmStats.NrTotalPages * PAGE_SIZE) / 1024);
LastKernelAddress = (ULONG)MmInitializePageList(
(PVOID)FirstKrnlPhysAddr,
(PVOID)LastKrnlPhysAddr,
MmStats.NrTotalPages,
PAGE_ROUND_UP(LastKernelAddress),
BIOSMemoryMap,
AddressRangeCount);
LastKernelAddress = (ULONG)MmInitializePageList((PVOID)FirstKrnlPhysAddr,
(PVOID)LastKrnlPhysAddr,
MmStats.NrTotalPages,
PAGE_ROUND_UP(LastKernelAddress),
BIOSMemoryMap,
AddressRangeCount);
kernel_len = LastKrnlPhysAddr - FirstKrnlPhysAddr;
/*
@@ -393,6 +457,21 @@ MmInit1(ULONG FirstKrnlPhysAddr,
* segment
*/
CHECKPOINT;
#if defined(_MSC_VER)
DPRINT(".text start: %x, .data start: %x\n",
(int)FindSegmentStart(".text"),
(int)FindSegmentStart(".data"));
{
const char* pCode = FindSegmentStart(".text");
const char* pData = FindSegmentEnd(".text");
while (pCode < pData)
{
MmSetPageProtect(NULL, (PVOID)pCode, PAGE_EXECUTE_READ);
pCode += PAGE_SIZE;
}
}
#else
DPRINT("_text_start__ %x _init_end__ %x\n",(int)&_text_start__,(int)&_init_end__);
for (i=PAGE_ROUND_DOWN(((int)&_text_start__));
i<PAGE_ROUND_UP(((int)&_init_end__));i=i+PAGE_SIZE)
@@ -400,23 +479,31 @@ MmInit1(ULONG FirstKrnlPhysAddr,
MmSetPageProtect(NULL,
(PVOID)i,
PAGE_EXECUTE_READ);
}
}
#endif
DPRINT("Invalidating between %x and %x\n",
LastKernelAddress,
KERNEL_BASE + 2 * PAGE_TABLE_SIZE);
for (i=(LastKernelAddress);
i<(KERNEL_BASE + 2 * PAGE_TABLE_SIZE);
i=i+PAGE_SIZE)
LastKernelAddress, 0xc0600000);
for (i=(LastKernelAddress); i<0xc0600000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Invalidating between %x and %x\n",
0xd0100000, 0xd0400000);
for (i=0xd0100000; i<0xd0400000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Almost done MmInit()\n");
#ifndef MP
/* FIXME: This is broken in SMP mode */
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me, FALSE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me2, FALSE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me3, FALSE, NULL, NULL);
#if !defined(_MSC_VER) // FIXME: I don't trust using this from MSVC yet!
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me2, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me3, TRUE, NULL, NULL);
#endif // _MSC_VER
#endif
/*
* Intialize memory areas
@@ -429,6 +516,8 @@ MmInit1(ULONG FirstKrnlPhysAddr,
VOID INIT_FUNCTION
MmInit2(VOID)
{
MmInitializeRmapList();
MmInitializePageOp();
MmInitSectionImplementation();
MmInitPagingFile();
}
@@ -445,10 +534,8 @@ MmInit3(VOID)
MmDeletePageTable(NULL, 0);
#endif
MmInitZeroPageThread();
MmInitPagerThread();
MmCreatePhysicalMemorySection();
MmInitializeRmapList();
MmInitializePageOp();
MiInitBalancerThread();
/*
* Initialise the modified page writer.
@@ -473,6 +560,9 @@ MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
VOID
MiFreeInitMemory(VOID)
{
#if defined(_MSC_VER)
DPRINT1("Can not yet free .init memory for MSVC compiled kernel\n");
#else
MmLockAddressSpace(MmGetKernelAddressSpace());
MmFreeMemoryArea(MmGetKernelAddressSpace(),
(PVOID)&_init_start__,
@@ -480,4 +570,5 @@ MiFreeInitMemory(VOID)
MiFreeInitMemoryPage,
NULL);
MmUnlockAddressSpace(MmGetKernelAddressSpace());
#endif
}

3271
msvc6/ntoskrnl/ntoskrnl.dsp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,299 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define EXCEPTION_UNWINDING 0x02
#define EREC_FLAGS 0x04
#define ExceptionContinueExecution 0
#define ExceptionContinueSearch 1
#define ExceptionNestedException 2
#define ExceptionCollidedUnwind 3
//.globl _RtlpExecuteHandlerForException
//.globl _RtlpExecuteHandlerForUnwind
#define CONTEXT_FLAGS 0x00
#define CONTEXT_SEGGS 0x8C
#define CONTEXT_SEGFS 0x90
#define CONTEXT_SEGES 0x94
#define CONTEXT_SEGDS 0x98
#define CONTEXT_EDI 0x9C
#define CONTEXT_ESI 0xA0
#define CONTEXT_EBX 0xA4
#define CONTEXT_EDX 0xA8
#define CONTEXT_ECX 0xAC
#define CONTEXT_EAX 0xB0
#define CONTEXT_EBP 0xB4
#define CONTEXT_EIP 0xB8
#define CONTEXT_SEGCS 0xBC
#define CONTEXT_EFLAGS 0xC0
#define CONTEXT_ESP 0xC4
#define CONTEXT_SEGSS 0xC8
#define RCC_CONTEXT 0x08
VOID STDCALL
AsmDebug(ULONG Value);
// EAX = value to print
__declspec(naked)
void do_debug()
{
__asm
{
pusha
push eax
call AsmDebug
popa
ret
}
}
#define REH_ERECORD 0x08
#define REH_RFRAME 0x0C
#define REH_CONTEXT 0x10
#define REH_DCONTEXT 0x14
#define REH_EROUTINE 0x18
// Parameters:
// None
// Registers:
// [EBP+08h] - PEXCEPTION_RECORD ExceptionRecord
// [EBP+0Ch] - PEXCEPTION_REGISTRATION RegistrationFrame
// [EBP+10h] - PVOID Context
// [EBP+14h] - PVOID DispatcherContext
// [EBP+18h] - PEXCEPTION_HANDLER ExceptionRoutine
// EDX - Address of protecting exception handler
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Setup the protecting exception handler and call the exception
// handler in the right context.
__declspec(naked)
void RtlpExecuteHandler()
{
__asm
{
push ebp
mov ebp, esp
push REH_RFRAME[ebp]
push edx
push fs:0x0
mov fs:0x0, esp
// Prepare to call the exception handler
push REH_DCONTEXT[ebp]
push REH_CONTEXT[ebp]
push REH_RFRAME[ebp]
push REH_ERECORD[ebp]
// Now call the exception handler
mov eax, REH_EROUTINE[ebp]
call eax
cmp fs:0x0, -1
jne reh_stack_looks_ok
// This should not happen
push 0
push 0
push 0
push 0
call RtlAssert
reh_loop:
jmp reh_loop
reh_stack_looks_ok:
mov esp, fs:0x0
// Return to the 'front-end' for this function
pop dword ptr fs:0x0
mov esp, ebp
pop ebp
ret
}
}
#if 0
#endif // 0
#define REP_ERECORD 0x04
#define REP_RFRAME 0x08
#define REP_CONTEXT 0x0C
#define REP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting nested exceptions.
__declspec(naked)
void RtlpExceptionProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov ecx, REP_ERECORD[esp]
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jnz rep_end
// Unwinding is not taking place, so return ExceptionNestedException
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a nested exception occurred
mov ecx, REP_DCONTEXT[esp]
mov eax, REP_RFRAME[esp]
mov [ecx], eax
mov eax, ExceptionNestedException
rep_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Front-end
__declspec(naked)
void RtlpExecuteHandlerForException()
{
__asm
{
mov edx, RtlpExceptionProtector
jmp RtlpExecuteHandler
}
}
#define RUP_ERECORD 0x04
#define RUP_RFRAME 0x08
#define RUP_CONTEXT 0x0C
#define RUP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting collided unwinds.
__declspec(naked)
void RtlpUnwindProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov RUP_ERECORD[esp], ecx
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jz rup_end
// Unwinding is taking place, so return ExceptionCollidedUnwind
mov ecx, RUP_RFRAME[esp]
mov edx, RUP_DCONTEXT[esp]
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a collision occurred
mov eax, RUP_RFRAME[ecx]
mov [edx], eax
mov eax, ExceptionCollidedUnwind
rup_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
__declspec(naked)
void RtlpExecuteHandlerForUnwind()
{
__asm mov edx, RtlpUnwindProtector
__asm jmp RtlpExecuteHandler
}

View File

@@ -1,21 +0,0 @@
dist
reactos
*.sys
*.exe
*.dll
*.cpl
*.a
*.o
*.d
*.coff
*.dsp
*.dsw
*.aps
*.ncb
*.opt
*.sym
*.plg
*.bak
*.zip
*.iso
*.cab

View File

@@ -1,4 +0,0 @@
directory /mnt/windows/CvsHome/reactos/ntoskrnl
symbol-file ntoskrnl/ntoskrnl.nostrip.exe -mapped
set remotebaud 115200
target remote com2

View File

@@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,43 +0,0 @@
In no particular order
Rex Jolliff (rex@lvcablemodem.com)
Boudewijn Dekker (ariadne@xs4all.nl)
Eric Kohl (ekohl@rz-online.de)
Emanuele Aliberti (ea@iol.it)
David Welch (welch@cwcom.net)
Iwan Fatahi (i_fatahi@hotmail.com)
Robert Bergkvist (fragdance@hotmail.com)
Victor Kirhenshtein (sauros@iname.com)
Jason Filby (jasonfilby@yahoo.com)
Brian Palmer (brianp@sginet.com)
Phillip Susi (phreak@iag.net)
Paolo Pantaleo (paolopan@freemail.it)
Casper S. Hornstrup (chorns@users.sourceforge.net)
James B. Tabor (jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net)
Source and inspiration from
WINE (http://www.winehq.com)
WinFree (http://www.stack.nl/~onno/win32/)
Linux (http://www.kernel.org)
XFree86 (http://www.xfree86.org/)
References (Rex's at least)
Baker, Art. The Windows NT Device Driver Book. Prentice Hall, 1997.
Borate, Dabak & Phadke. Undocumented Windows NT. M&T Books, 1999.
Brain, Marshall. Win32 System Services. Prentice Hall, 1996.
Cant, Chris. Writing Windows WDM Device Drivers. R&D Books, 1999.
Canton & Sanchez. IBM Microcomputers: A Programmer's Handbook. McGraw Hill, 1990.
Davis & Wallace. Windows Undocumented File Formats. R&D Books, 1997.
Mason & Viscarola. Windows NT Device Driver Development. Macmillan, 1999.
Mitchell, Stan. Inside the Windows 95 File System. O'Reilly, 1997.
Murray, James D. Windows NT Event Logging. O'Reilly, 1998.
Nagar, Rajeev. Windows NT File System Internals. O'Reilly, 1997.
Osbourne, Sandra. Windows NT Registry: A Settings Reference. New Riders, 1998.
Pietrek, Matt. Windows 95 System Programming Secrets. IDG, 1995.
Richter, Jeffery. Advanced Windows, 3rd ed. Microsoft, 1997.
Simon, Richard J. Windows NT Win32 API Superbible. Waite Group, 1996.
Solomon, David A. Inside Windows NT, 2nd Ed. Microsoft, 1998.
"The NT Insider." Open Systems Resources, 1999-2000.

File diff suppressed because it is too large Load Diff

View File

@@ -1,73 +0,0 @@
1. Build environment
To build the system you need either mingw32 installed on Windows or a mingw32
cross compiler running on unix. You may obtain MinGW binaries that build
ReactOS from http://www.reactos.com.
2. Building ReactOS
To build from Windows run 'make' (wihout the quotes) from the top directory.
To build from unix, edit rules.mak and change the PREFIX variable to the
correct value for your cross-compiler. Run 'export HOST=mingw32-linux' to
tell the ReactOS build system that it is building ReactOS on a linux machine.
Now run 'make'.
3. Installation
The system can only be installed on the first partition on the first harddisk.
The partition must be formatted as FAT16 or FAT32. The system can only be
started from DOS and not from a Windows DOS-prompt.
ReactOS can be installed from the source distribution or from the binary
distribution. The two ways to install ReactOS are explained below.
3.1 Installation from sources
To install ReactOS after building it, type 'make install'. This will create
the directory 'reactos' in the top directory. Copy this directory to the root
of your first partition on your first harddisk. This is usually c:\ on a
Windows machine.
If you don't want to copy the files manually every time you run a 'make install',
you can specify the directory where the files are to be copied to during
installation.
In rules.mak find the variable INSTALL_DIR and change the assigned value to the
name of the directory where the files are to be copied to. If you are using
Windows this could be:
INSTALL_DIR = c:\reactos
If you are on linux this could be:
INSTALL_DIR = /mnt/windows/reactos
Save the changes to rules.mak and run 'make install' to install the files to
the new location. If you don't want to change rules.mak, you can specify the
installtion directory when invoking make. Run
'make INSTALL_DIR=c:\reactos install' to install to c:\reactos.
3.2 Installation from binany distribution
To install ReactOS from the binary distribution, extract the archive contents
to c:\reactos. Remember to extract the files with full paths.
4. Booting ReactOS
Startup in DOS mode. 'cd' to c:\reactos and type 'boot' and press <enter>.
A simple shell is started where you can use simple commands like 'cd' and 'dir'.
5. Help
If you run into problems or have suggestions for making ReactOS better, please
surf to the address below and subscribe to one or more of the mailing lists.
http://www.reactos.com/index.php?tab=discussion&section=lists
ReactOS Development Team

View File

@@ -1,5 +0,0 @@
# Main jamfile for ReactOS
SubDir ROS_TOP ;
SubInclude ROS_TOP Lib ;

View File

@@ -1,54 +0,0 @@
# customization for ReactOS goes here
# The SharedLibrary and SharedLibraryFromObjects rules were
# borrowed from here:
# http://www.differentpla.net/~roger/devel/jam/tutorial/shared_lib/index.html
SUFSHR = .dll ;
RM = rm ; # rm comes with MinGW, and the default del doesn't work in some cases
rule SharedLibrary
{
SharedLibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ;
Objects $(>) ;
}
rule SharedLibraryFromObjects
{
local _s _t ;
# Add grist to file names
# Add suffix to dll
_s = [ FGristFiles $(>) ] ;
_t = [ FAppendSuffix $(<) : $(SUFSHR) ] ;
if $(_t) != $(<)
{
DEPENDS $(<) : $(_t) ;
NOTFILE $(<) ;
}
# make compiled sources a dependency of target
DEPENDS exe : $(_t) ;
DEPENDS $(_t) : $(_s) ;
MakeLocate $(_t) : $(LOCATE_TARGET) ;
Clean clean : $(_t) ;
Link $(_t) : $(_s) ;
}
# nasm needs to know the output file first, or it doesn't
# recognize -I :(
actions As
{
$(AS) -o $(<) $(ASFLAGS) -I$(HDRS) $(>)
}
AS = nasm ;
# why isn't DEFINES working? :(
#DEFINES += _M_IX86 ;
CCFLAGS += -D_M_IX86 ;

View File

@@ -1,504 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,908 +0,0 @@
# $Id: Makefile,v 1.177 2003/11/01 13:28:53 navaraf Exp $
#
# Global makefile
#
PATH_TO_TOP = .
#
# Define to build ReactOS external targets
#
ifeq ($(ROS_BUILD_EXT),)
ROS_BUILD_EXT = no
else
ROS_BUILD_EXT = yes
endif
include $(PATH_TO_TOP)/rules.mak
# Required to run the system
COMPONENTS = iface_native iface_additional hallib ntoskrnl
# Hardware Abstraction Layers
# halx86
HALS = halx86
# Bus drivers
# acpi isapnp pci
BUS = acpi isapnp pci
# Filesystem libraries
# vfatlib
LIB_FSLIB = vfatlib
# Static libraries
LIB_STATIC = string rosrtl epsapi zlib
# Keyboard layout libraries
DLLS_KBD = kbdus kbdgr kbdfr
# User mode libraries
# advapi32 cards crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll
# epsapi psapi richedit rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda mswsock
DLLS = advapi32 cards crtdll fmifs freetype gdi32 kernel32 packet lzexpand msafd \
msvcrt ntdll psapi richedit secur32 syssetup twain user32 version winedbgc \
winspool ws2help ws2_32 wsock32 wshirda iphlpapi mswsock msimg32 d3d8thk \
$(DLLS_KBD)
SUBSYS = smss win32k csrss ntvdm
#
# Select the server(s) you want to build
#
#SERVERS = posix linux os2
SERVERS = win32
# Boot loaders
# dos
LOADERS = dos
# Driver support libraries
#bzip2 zlib
DRIVERS_LIB = bzip2
# Kernel mode device drivers
# Obsolete: ide
# beep blue floppy null parallel ramdrv serenum serial vga videoprt
DEVICE_DRIVERS = beep blue debugout floppy null serial vga videoprt bootvid
# Kernel mode input drivers
INPUT_DRIVERS = keyboard mouclass psaux sermouse
# Kernel mode file system drivers
# cdfs ext2 fs_rec ms np vfat
FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
# Kernel mode networking drivers
# afd ndis npf tcpip tdi wshtcpip
NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
# Kernel mode networking device drivers
# ne2000 pcnet
NET_DEVICE_DRIVERS = ne2000 pcnet
# Kernel mode storage drivers
# atapi cdrom class2 disk scsiport
STORAGE_DRIVERS = atapi cdrom class2 disk scsiport diskdump
# System applications
# autochk cmd format gstart services setup usetup welcome winlogon
SYS_APPS = autochk cmd format gstart services setup usetup welcome winlogon
# System services
# rpcss eventlog
SYS_SVC = rpcss eventlog
APPS = tests testsets utils
# External (sub)systems for ReactOS
# rosapps wine posix os2 (requires c++) java (non-existant)
EXTERNALS = rosapps wine posix os2
ifeq ($(ROS_BUILD_EXT),yes)
EXT_MODULES = $(EXTERNALS)
else
EXT_MODULES =
endif
KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
$(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
# Regression tests
REGTESTS = regtests
all: tools dk implib $(LIB_STATIC) $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
$(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
$(APPS) $(EXT_MODULES) $(REGTESTS)
#config: $(TOOLS:%=%_config)
depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
$(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
$(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
$(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
$(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
$(APPS:%=%_implib) $(EXT_MODULES:%=%_implib)
clean: tools dk_clean $(HALS:%=%_clean) \
$(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
$(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
$(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
$(NET_APPS:%=%_clean) \
$(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) $(REGTESTS:%=%_clean) \
clean_after tools_clean
clean_after:
$(RM) $(PATH_TO_TOP)/include/roscfg.h
install: tools install_dirs install_before \
$(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
$(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
$(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
$(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
$(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install)
dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
$(HALS:%=%_dist) $(COMPONENTS:%=%_dist) $(BUS:%=%_dist) $(LIB_STATIC:%=%_dist) $(LIB_FSLIB:%=%_dist) \
$(DLLS:%=%_dist) $(LOADERS:%=%_dist) $(KERNEL_DRIVERS:%=%_dist) $(SUBSYS:%=%_dist) \
$(SYS_APPS:%=%_dist) $(SYS_SVC:%=%_dist) \
$(NET_APPS:%=%_dist) \
$(APPS:%=%_dist) $(EXT_MODULES:%=%_dist)
FREELDR_DIR = ../freeldr
freeldr:
$(MAKE) -C $(FREELDR_DIR)
bootcd_directory_layout: freeldr
$(RMKDIR) $(BOOTCD_DIR)
$(RMKDIR) $(BOOTCD_DIR)/bootdisk
$(RMKDIR) $(BOOTCD_DIR)/loader
$(RMKDIR) $(BOOTCD_DIR)/reactos
$(RMKDIR) $(BOOTCD_DIR)/reactos/system32
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/../isoboot.bin
$(CP) ${FREELDR_DIR}/bootsect/dosmbr.bin ${BOOTCD_DIR}/loader/dosmbr.bin
$(CP) ${FREELDR_DIR}/bootsect/ext2.bin ${BOOTCD_DIR}/loader/ext2.bin
$(CP) ${FREELDR_DIR}/bootsect/fat.bin ${BOOTCD_DIR}/loader/fat.bin
$(CP) ${FREELDR_DIR}/bootsect/fat32.bin ${BOOTCD_DIR}/loader/fat32.bin
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/loader/isoboot.bin
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/freeldr.sys ${BOOTCD_DIR}/loader/freeldr.sys
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/setupldr.sys ${BOOTCD_DIR}/loader/setupldr.sys
bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
$(LIB_STATIC:%=%_bootcd) $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
$(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
bootcd_install_before:
$(RLINE) bootdata/autorun.inf $(BOOTCD_DIR)/autorun.inf
$(RLINE) bootdata/readme.txt $(BOOTCD_DIR)/readme.txt
$(RLINE) bootdata/hivecls.inf $(BOOTCD_DIR)/reactos/hivecls.inf
$(RLINE) bootdata/hivedef.inf $(BOOTCD_DIR)/reactos/hivedef.inf
$(RLINE) bootdata/hivesft.inf $(BOOTCD_DIR)/reactos/hivesft.inf
$(RLINE) bootdata/hivesys.inf $(BOOTCD_DIR)/reactos/hivesys.inf
$(RLINE) bootdata/txtsetup.sif $(BOOTCD_DIR)/reactos/txtsetup.sif
$(CP) bootdata/icon.ico $(BOOTCD_DIR)/icon.ico
$(CP) media/nls/c_1252.nls $(BOOTCD_DIR)/reactos/c_1252.nls
$(CP) media/nls/c_437.nls $(BOOTCD_DIR)/reactos/c_437.nls
$(CP) media/nls/l_intl.nls $(BOOTCD_DIR)/reactos/l_intl.nls
bootcd_basic: all bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
bootcd_makecd:
$(CABMAN) /C bootdata/packages/reactos.dff /L $(BOOTCD_DIR)/reactos /I
$(CABMAN) /C bootdata/packages/reactos.dff /RC $(BOOTCD_DIR)/reactos/reactos.inf /L $(BOOTCD_DIR)/reactos /N
- $(RM) $(BOOTCD_DIR)/reactos/reactos.inf
$(TOOLS_PATH)/cdmake/cdmake -v -m -b $(BOOTCD_DIR)/../isoboot.bin $(BOOTCD_DIR) REACTOS ReactOS.iso
ubootcd_unattend:
$(CP) bootdata/unattend.inf $(BOOTCD_DIR)/reactos/unattend.inf
bootcd: bootcd_basic bootcd_makecd
ubootcd: bootcd_basic ubootcd_unattend bootcd_makecd
registry: tools
$(TOOLS_PATH)/mkhive/mkhive$(EXE_POSTFIX) bootdata $(INSTALL_DIR)/system32/config
.PHONY: all depends implib clean clean_before install dist freeldr bootcd_directory_layout \
bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
#
# System Applications
#
$(SYS_APPS): %:
$(MAKE) -C subsys/system/$*
$(SYS_APPS:%=%_implib): %_implib:
$(MAKE) -C subsys/system/$* implib
$(SYS_APPS:%=%_clean): %_clean:
$(MAKE) -C subsys/system/$* clean
$(SYS_APPS:%=%_dist): %_dist:
$(MAKE) -C subsys/system/$* dist
$(SYS_APPS:%=%_install): %_install:
$(MAKE) -C subsys/system/$* install
$(SYS_APPS:%=%_bootcd): %_bootcd:
$(MAKE) -C subsys/system/$* bootcd
.PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist) $(SYS_APPS:%=%_bootcd)
#
# System Services
#
$(SYS_SVC): %:
$(MAKE) -C services/$*
$(SYS_SVC:%=%_depends): %_depends:
$(MAKE) -C services/$* depends
$(SYS_SVC:%=%_implib): %_implib:
$(MAKE) -C services/$* implib
$(SYS_SVC:%=%_clean): %_clean:
$(MAKE) -C services/$* clean
$(SYS_SVC:%=%_dist): %_dist:
$(MAKE) -C services/$* dist
$(SYS_SVC:%=%_install): %_install:
$(MAKE) -C services/$* install
.PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
#
# Applications
#
#
# Extra (optional system) Applications
#
$(APPS): %:
$(MAKE) -C apps/$*
$(APPS:%=%_implib): %_implib:
$(MAKE) -C apps/$* implib
$(APPS:%=%_clean): %_clean:
$(MAKE) -C apps/$* clean
$(APPS:%=%_dist): %_dist:
$(MAKE) -C apps/$* dist
$(APPS:%=%_install): %_install:
$(MAKE) -C apps/$* install
.PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install) $(APPS:%=%_dist)
#
# External ports and subsystem personalities
#
$(EXTERNALS): %:
$(MAKE) -C $(ROOT_PATH)/$*
$(EXTERNALS:%=%_depends): %_depends:
$(MAKE) -C $(ROOT_PATH)/$* depends
$(EXTERNALS:%=%_implib): %_implib:
$(MAKE) -C $(ROOT_PATH)/$* implib
$(EXTERNALS:%=%_clean): %_clean:
$(MAKE) -C $(ROOT_PATH)/$* clean
$(EXTERNALS:%=%_dist): %_dist:
$(MAKE) -C $(ROOT_PATH)/$* dist
$(EXTERNALS:%=%_install): %_install:
$(MAKE) -C $(ROOT_PATH)/$* install
.PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) $(EXTERNALS:%=%_dist)
#
# Tools
#
tools:
$(MAKE) -C tools
tools_implib:
tools_clean:
$(MAKE) -C tools clean
tools_install:
tools_dist:
.PHONY: tools tools_implib tools_clean tools_install tools_dist
#
# Developer Kits
#
dk:
$(RMKDIR) $(DK_PATH)
$(RMKDIR) $(DDK_PATH)
$(RMKDIR) $(DDK_PATH_LIB)
$(RMKDIR) $(DDK_PATH_INC)
$(RMKDIR) $(SDK_PATH)
$(RMKDIR) $(SDK_PATH_LIB)
$(RMKDIR) $(SDK_PATH_INC)
$(RMKDIR) $(XDK_PATH)
$(RMKDIR) $(XDK_PATH_LIB)
$(RMKDIR) $(XDK_PATH_INC)
dk_implib:
# WARNING! Be very sure that there are no important files
# in these directories before cleaning them!!!
dk_clean:
$(RM) $(DDK_PATH_LIB)/*.a
# $(RM) $(DDK_PATH_INC)/*.h
$(RMDIR) $(DDK_PATH_LIB)
# $(RMDIR) $(DDK_PATH_INC)
$(RM) $(SDK_PATH_LIB)/*.a
# $(RM) $(SDK_PATH_INC)/*.h
$(RMDIR) $(SDK_PATH_LIB)
# $(RMDIR) $(SDK_PATH_INC)
$(RM) $(XDK_PATH_LIB)/*.a
# $(RM) $(XDK_PATH_INC)/*.h
$(RMDIR) $(XDK_PATH_LIB)
# $(RMDIR) $(XDK_PATH_INC)
dk_install:
dk_dist:
.PHONY: dk dk_implib dk_clean dk_install dk_dist
#
# Interfaces
#
iface_native:
$(MAKE) -C iface/native
iface_native_implib:
iface_native_clean:
$(MAKE) -C iface/native clean
iface_native_install:
iface_native_dist:
iface_native_bootcd:
iface_additional:
$(MAKE) -C iface/addsys
iface_additional_implib:
iface_additional_clean:
$(MAKE) -C iface/addsys clean
iface_additional_install:
iface_additional_dist:
iface_additional_bootcd:
.PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
iface_native_dist iface_native_bootcd \
iface_additional iface_additional_implib iface_additional_clean \
iface_additional_install iface_additional_dist iface_additional_bootcd
#
# Bus driver rules
#
$(BUS): %:
$(MAKE) -C drivers/bus/$*
$(BUS:%=%_implib): %_implib:
$(MAKE) -C drivers/bus/$* implib
$(BUS:%=%_clean): %_clean:
$(MAKE) -C drivers/bus/$* clean
$(BUS:%=%_install): %_install:
$(MAKE) -C drivers/bus/$* install
$(BUS:%=%_dist): %_dist:
$(MAKE) -C drivers/bus/$* dist
$(BUS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/bus/$* bootcd
.PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
$(BUS:%=%_install) $(BUS:%=%_dist) $(BUS:%=%_bootcd)
#
# Driver support libraries rules
#
$(DRIVERS_LIB): %:
$(MAKE) -C drivers/lib/$*
$(DRIVERS_LIB:%=%_implib): %_implib:
$(MAKE) -C drivers/lib/$* implib
$(DRIVERS_LIB:%=%_clean): %_clean:
$(MAKE) -C drivers/lib/$* clean
$(DRIVERS_LIB:%=%_install): %_install:
$(MAKE) -C drivers/lib/$* install
$(DRIVERS_LIB:%=%_dist): %_dist:
$(MAKE) -C drivers/lib/$* dist
$(DRIVERS_LIB:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/lib/$* bootcd
.PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
$(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist) $(DRIVERS_LIB:%=%_bootcd)
#
# Device driver rules
#
$(DEVICE_DRIVERS): %:
$(MAKE) -C drivers/dd/$*
$(DEVICE_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/dd/$* implib
$(DEVICE_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/dd/$* clean
$(DEVICE_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/dd/$* install
$(DEVICE_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/dd/$* dist
$(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/dd/$* bootcd
.PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
$(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist) $(DEVICE_DRIVERS:%=%_bootcd)
#
# Input driver rules
#
$(INPUT_DRIVERS): %:
$(MAKE) -C drivers/input/$*
$(INPUT_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/input/$* implib
$(INPUT_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/input/$* clean
$(INPUT_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/input/$* install
$(INPUT_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/input/$* dist
$(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/input/$* bootcd
.PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
$(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist) $(INPUT_DRIVERS:%=%_bootcd)
$(FS_DRIVERS): %:
$(MAKE) -C drivers/fs/$*
$(FS_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/fs/$* implib
$(FS_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/fs/$* clean
$(FS_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/fs/$* install
$(FS_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/fs/$* dist
$(FS_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/fs/$* bootcd
.PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
$(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist) $(FS_DRIVERS:%=%_bootcd)
#
# Network driver rules
#
$(NET_DRIVERS): %:
$(MAKE) -C drivers/net/$*
$(NET_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/net/$* implib
$(NET_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/net/$* clean
$(NET_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/net/$* install
$(NET_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/net/$* dist
$(NET_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/net/$* bootcd
.PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
$(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist) $(NET_DRIVERS:%=%_bootcd)
$(NET_DEVICE_DRIVERS): %:
$(MAKE) -C drivers/net/dd/$*
$(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/net/dd/$* implib
$(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/net/dd/$* clean
$(NET_DEVICE_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/net/dd/$* install
$(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/net/dd/$* dist
$(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/net/dd/$* bootcd
.PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
$(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_dist) $(NET_DEVICE_DRIVERS:%=%_bootcd)
#
# storage driver rules
#
$(STORAGE_DRIVERS): %:
$(MAKE) -C drivers/storage/$*
$(STORAGE_DRIVERS:%=%_implib): %_implib:
$(MAKE) -C drivers/storage/$* implib
$(STORAGE_DRIVERS:%=%_clean): %_clean:
$(MAKE) -C drivers/storage/$* clean
$(STORAGE_DRIVERS:%=%_install): %_install:
$(MAKE) -C drivers/storage/$* install
$(STORAGE_DRIVERS:%=%_dist): %_dist:
$(MAKE) -C drivers/storage/$* dist
$(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
$(MAKE) -C drivers/storage/$* bootcd
.PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
$(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist) $(STORAGE_DRIVERS:%=%_bootcd)
#
# Kernel loaders
#
$(LOADERS): %:
$(MAKE) -C loaders/$*
$(LOADERS:%=%_implib): %_implib:
$(LOADERS:%=%_clean): %_clean:
$(MAKE) -C loaders/$* clean
$(LOADERS:%=%_install): %_install:
$(MAKE) -C loaders/$* install
$(LOADERS:%=%_dist): %_dist:
$(MAKE) -C loaders/$* dist
.PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
$(LOADERS:%=%_dist)
#
# Required system components
#
ntoskrnl:
$(MAKE) -C ntoskrnl
ntoskrnl_implib:
$(MAKE) -C ntoskrnl implib
ntoskrnl_clean:
$(MAKE) -C ntoskrnl clean
ntoskrnl_install:
$(MAKE) -C ntoskrnl install
ntoskrnl_dist:
$(MAKE) -C ntoskrnl dist
ntoskrnl_bootcd:
$(MAKE) -C ntoskrnl bootcd
.PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
#
# Hardware Abstraction Layer import library
#
hallib:
$(MAKE) -C hal/hal
hallib_implib:
$(MAKE) -C hal/hal implib
hallib_clean:
$(MAKE) -C hal/hal clean
hallib_install:
$(MAKE) -C hal/hal install
hallib_dist:
$(MAKE) -C hal/hal dist
hallib_bootcd:
$(MAKE) -C hal/hal bootcd
.PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
#
# Hardware Abstraction Layers
#
$(HALS): %:
$(MAKE) -C hal/$*
$(HALS:%=%_implib): %_implib:
$(MAKE) -C hal/$* implib
$(HALS:%=%_clean): %_clean:
$(MAKE) -C hal/$* clean
$(HALS:%=%_install): %_install:
$(MAKE) -C hal/$* install
$(HALS:%=%_dist): %_dist:
$(MAKE) -C hal/$* dist
$(HALS:%=%_bootcd): %_bootcd:
$(MAKE) -C hal/$* bootcd
.PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist) $(HALS:%=%_bootcd)
#
# File system libraries
#
$(LIB_FSLIB): %:
$(MAKE) -C lib/fslib/$*
$(LIB_FSLIB:%=%_depends): %_depends:
$(MAKE) -C lib/fslib/$* depends
$(LIB_FSLIB:%=%_implib): %_implib:
$(MAKE) -C lib/fslib/$* implib
$(LIB_FSLIB:%=%_clean): %_clean:
$(MAKE) -C lib/fslib/$* clean
$(LIB_FSLIB:%=%_install): %_install:
$(MAKE) -C lib/fslib/$* install
$(LIB_FSLIB:%=%_dist): %_dist:
$(MAKE) -C lib/fslib/$* dist
$(LIB_FSLIB:%=%_bootcd): %_bootcd:
$(MAKE) -C lib/fslib/$* bootcd
.PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
$(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_dist) $(LIB_FSLIB:%=%_bootcd)
#
# Static libraries
#
$(LIB_STATIC): %:
$(MAKE) -C lib/$*
$(LIB_STATIC:%=%_depends): %_depends:
$(MAKE) -C lib/string depends
$(LIB_STATIC:%=%_implib): %_implib:
$(MAKE) -C lib/$* implib
$(LIB_STATIC:%=%_clean): %_clean:
$(MAKE) -C lib/$* clean
$(LIB_STATIC:%=%_install): %_install:
$(MAKE) -C lib/$* install
$(LIB_STATIC:%=%_dist): %_dist:
$(MAKE) -C lib/$* dist
$(LIB_STATIC:%=%_bootcd): %_bootcd:
$(MAKE) -C lib/$* bootcd
.PHONY: $(LIB_STATIC) $(LIB_STATIC:%=%_depends) $(LIB_STATIC:%=%_implib) $(LIB_STATIC:%=%_clean) \
$(LIB_STATIC:%=%_install) $(LIB_STATIC:%=%_dist) $(LIB_STATIC:%=%_bootcd)
#
# Required DLLs
#
$(DLLS): %:
$(MAKE) -C lib/$*
$(DLLS:%=%_depends): %_depends:
$(MAKE) -C lib/$* depends
$(DLLS:%=%_implib): %_implib:
$(MAKE) -C lib/$* implib
$(DLLS:%=%_clean): %_clean:
$(MAKE) -C lib/$* clean
$(DLLS:%=%_install): %_install:
$(MAKE) -C lib/$* install
$(DLLS:%=%_dist): %_dist:
$(MAKE) -C lib/$* dist
$(DLLS:%=%_bootcd): %_bootcd:
$(MAKE) -C lib/$* bootcd
.PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist) $(DLLS:%=%_bootcd)
#
# Subsystem support modules
#
$(SUBSYS): %:
$(MAKE) -C subsys/$*
$(SUBSYS:%=%_depends): %_depends:
$(MAKE) -C subsys/$* depends
$(SUBSYS:%=%_implib): %_implib:
$(MAKE) -C subsys/$* implib
$(SUBSYS:%=%_clean): %_clean:
$(MAKE) -C subsys/$* clean
$(SUBSYS:%=%_install): %_install:
$(MAKE) -C subsys/$* install
$(SUBSYS:%=%_dist): %_dist:
$(MAKE) -C subsys/$* dist
$(SUBSYS:%=%_bootcd): %_bootcd:
$(MAKE) -C subsys/$* bootcd
.PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
$(SUBSYS:%=%_dist) $(SUBSYS:%=%_bootcd)
#
# Regression testsuite
#
$(REGTESTS): %:
$(MAKE) -C regtests
$(REGTESTS:%=%_clean): %_clean:
$(MAKE) -C regtests clean
$(REGTESTS:%=%_install): %_install:
$(MAKE) -C regtests install
.PHONY: $(REGTESTS) $(REGTESTS:%=%_depends) $(SUBSYS:%=%_clean) $(REGTESTS:%=%_install)
#
# Create an installation
#
install_clean:
$(RM) $(INSTALL_DIR)/system32/drivers/*.*
$(RM) $(INSTALL_DIR)/system32/config/*.*
$(RM) $(INSTALL_DIR)/system32/*.*
$(RM) $(INSTALL_DIR)/symbols/*.*
$(RM) $(INSTALL_DIR)/media/fonts/*.*
$(RM) $(INSTALL_DIR)/media/*.*
$(RM) $(INSTALL_DIR)/bin/*.*
$(RM) $(INSTALL_DIR)/*.com
$(RM) $(INSTALL_DIR)/*.bat
$(RMDIR) $(INSTALL_DIR)/system32/drivers
$(RMDIR) $(INSTALL_DIR)/system32/config
$(RMDIR) $(INSTALL_DIR)/system32
$(RMDIR) $(INSTALL_DIR)/symbols
$(RMDIR) $(INSTALL_DIR)/media/fonts
$(RMDIR) $(INSTALL_DIR)/media
$(RMDIR) $(INSTALL_DIR)/bin
$(RMDIR) $(INSTALL_DIR)
ifneq ($(BOOTCD_INSTALL),)
install_dirs:
$(RMKDIR) $(INSTALL_DIR)
install_before:
$(RLINE) bootdata/autorun.inf $(INSTALL_DIR)/../autorun.inf
$(RLINE) bootdata/readme.txt $(INSTALL_DIR)/../readme.txt
$(RLINE) bootdata/hivecls.inf $(INSTALL_DIR)/hivecls.inf
$(RLINE) bootdata/hivedef.inf $(INSTALL_DIR)/hivedef.inf
$(RLINE) bootdata/hivesft.inf $(INSTALL_DIR)/hivesft.inf
$(RLINE) bootdata/hivesys.inf $(INSTALL_DIR)/hivesys.inf
$(RLINE) bootdata/txtsetup.sif $(INSTALL_DIR)/txtsetup.sif
$(CP) bootdata/icon.ico $(INSTALL_DIR)/../icon.ico
$(CP) media/fonts $(INSTALL_DIR)
$(CP) media/nls $(INSTALL_DIR)
else # !BOOTCD_INSTALL
install_dirs:
$(RMKDIR) $(INSTALL_DIR)
$(RMKDIR) $(INSTALL_DIR)/bin
$(RMKDIR) $(INSTALL_DIR)/media
$(RMKDIR) $(INSTALL_DIR)/media/fonts
$(RMKDIR) $(INSTALL_DIR)/symbols
$(RMKDIR) $(INSTALL_DIR)/system32
$(RMKDIR) $(INSTALL_DIR)/system32/config
$(RMKDIR) $(INSTALL_DIR)/system32/drivers
install_before:
$(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
$(CP) boot.bat $(INSTALL_DIR)/boot.bat
$(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
$(CP) media/fonts $(INSTALL_DIR)/media/fonts
$(CP) media/nls $(INSTALL_DIR)/system32
$(CP) media/nls/c_1252.nls $(INSTALL_DIR)/system32/ansi.nls
$(CP) media/nls/c_437.nls $(INSTALL_DIR)/system32/oem.nls
$(CP) media/nls/l_intl.nls $(INSTALL_DIR)/system32/casemap.nls
endif # BOOTCD_INSTALL
.PHONY: install_clean install_dirs install_before
#
# Make a distribution saveset
#
dist_clean:
$(RM) $(DIST_DIR)/symbols/*.sym
$(RM) $(DIST_DIR)/drivers/*.sys
$(RM) $(DIST_DIR)/subsys/*.exe
$(RM) $(DIST_DIR)/dlls/*.dll
$(RM) $(DIST_DIR)/apps/*.exe
$(RM) $(DIST_DIR)/*.exe
$(RMDIR) $(DIST_DIR)/symbols
$(RMDIR) $(DIST_DIR)/subsys
$(RMDIR) $(DIST_DIR)/drivers
$(RMDIR) $(DIST_DIR)/dlls
$(RMDIR) $(DIST_DIR)/apps
$(RMDIR) $(DIST_DIR)
dist_dirs:
$(RMKDIR) $(DIST_DIR)
$(RMKDIR) $(DIST_DIR)/apps
$(RMKDIR) $(DIST_DIR)/dlls
$(RMKDIR) $(DIST_DIR)/drivers
$(RMKDIR) $(DIST_DIR)/subsys
$(RMKDIR) $(DIST_DIR)/symbols
.PHONY: dist_clean dist_dirs
etags:
find . -name "*.[ch]" -print | etags --language=c -
# EOF

View File

@@ -1,28 +0,0 @@
========================
ReactOS Version 0.1.x
Updated March 19th, 2003
========================
1. What is ReactOS?
ReactOS is an Open Source effort to develop a quality operating system
that is compatible with Windows NT applications and drivers.
The ReactOS project, although currently focused on Windows NT 4.0
compatibility, is always keeping an eye towards compatibility with
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
Windows XP (NT 5.1).
More information is available at http://www.reactos.com.
2. Building ReactOS
See the INSTALL file for more details.
3. More information
See the doc subdirectory for some sparse notes
4. Who is responsible
See the CREDITS file

View File

@@ -1,3 +0,0 @@
loadros system32\ntoskrnl.exe system32\hal.dll system32\drivers\acpi.sys /DEBUGPORT=SCREEN bootc.lst
rem comment added and changed for no reason

View File

@@ -1,31 +0,0 @@
; Format:
; COMPONENT_NAME PATH_TO_COMPONENT_SOURCES
; COMPONENT_NAME - Name of the component. Eg. kernel32.dll.
; PATH_TO_COMPONENT_SOURCES - Relative path to sources (relative to
; where rgenstat is run from).
advapi32.dll reactos/lib/advapi32
crtdll.dll reactos/lib/crtdll
gdi32.dll reactos/lib/gdi32
iphlpapi.dll reactos/lib/iphlpapi
kernel32.dll reactos/lib/kernel32
lz32.dll reactos/lib/lzexpand
msvcrt.dll reactos/lib/msvcrt
ole32.dll reactos/lib/ole32
oleaut32.dll reactos/lib/oleaut32
rpcrt4.dll reactos/lib/rpcrt4
secur32.dll reactos/lib/secur32
shell32.dll reactos/lib/shell32
snmpapi.dll reactos/lib/snmpapi
user32.dll reactos/lib/user32
version.dll reactos/lib/version
winmm.dll reactos/lib/winmm
winspool.dll reactos/lib/winspool
ws2_32.dll reactos/lib/ws2_32
wsock32.dll reactos/lib/wsock32
videoprt.dll reactos/drivers/dd/videoprt
ndis.dll reactos/drivers/net/ndis
tdi.dll reactos/drivers/net/tdi
class2.sys reactos/drivers/storage/class2
scsiport.sys reactos/drivers/storage/scsiport
ntoskrnl.exe reactos/ntoskrnl
win32k.sys reactos/subsys/win32k

View File

@@ -1,87 +0,0 @@
#
# ReactOS test applications makefile
#
PATH_TO_TOP = ../..
include $(PATH_TO_TOP)/rules.mak
# test_old tests
TEST_APPS = SampleWindow alive apc args atomtest bench bitblt button \
button2 capclock carets cliarea combo consume copymove count dibtest \
dump_shared_data edit enumwnd event file gditest global_mem hello \
hivetest icontest isotest lineclip linetest lock lpc messagebox mktime \
mstest multiwin mutex nptest patblt pipe primitives pteb regtest \
sectest sertest shaptest shm statst statst2 stretchblt suspend \
tcpsvr terminate txtscale thread thread_msg tokentest vmtest \
winhello winhello2 wm_erasebkgnd wm_paint eventpair threadwait \
map_dup_inherit p_dup_handle
TEST_MISC =
all: $(TEST_APPS) $(TEST_MISC)
depends:
implib: $(TEST_APPS:%=%_implib) \
$(TEST_MISC:%=%_implib)
clean: $(TEST_APPS:%=%_clean) \
$(TEST_MISC:%=%_clean)
install: $(TEST_APPS:%=%_install) \
$(TEST_MISC:%=%_install)
dist: $(TEST_APPS:%=%_dist) \
$(TEST_MISC:%=%_dist)
.PHONY: all depends implib clean install dist
#
# Test Applications
#
$(TEST_APPS): %:
$(MAKE) -C $*
$(TEST_APPS:%=%_implib): %_implib:
$(MAKE) -C $* implib
$(TEST_APPS:%=%_clean): %_clean:
$(MAKE) -C $* clean
$(TEST_APPS:%=%_dist): %_dist:
$(MAKE) -C $* dist
$(TEST_APPS:%=%_install): %_install:
$(MAKE) -C $* install
.PHONY: $(TEST_APPS) $(TEST_APPS:%=%_implib) $(TEST_APPS:%=%_clean) $(TEST_APPS:%=%_install) $(TEST_APPS:%=%_dist)
#
# Misc Test Applications
#
$(TEST_MISC): %:
$(MAKE) -C tests/$*
$(TEST_MISC:%=%_implib): %_implib:
$(MAKE) -C tests/$* implib
$(TEST_MISC:%=%_clean): %_clean:
$(MAKE) -C tests/$* clean
$(TEST_MISC:%=%_dist): %_dist:
$(MAKE) -C tests/$* dist
$(TEST_MISC:%=%_install): %_install:
$(MAKE) -C tests/$* install
.PHONY: $(TEST_MISC) $(TEST_MISC:%=%_implib) $(TEST_MISC:%=%_clean) $(TEST_MISC:%=%_install) $(TEST_MISC:%=%_dist)
etags:
find . -name "*.[ch]" -print | etags --language=c -
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.1 2003/07/24 15:51:58 rcampbell Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = window
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,212 +0,0 @@
/*
* A basic example of Win32 programming in C.
*
* This source code is in the PUBLIC DOMAIN and has NO WARRANTY.
*
* Colin Peters <colinp at ma.kcom.ne.jp>
*/
#include <windows.h>
#include <string.h>
/*
* This is the window function for the main window. Whenever a message is
* dispatched using DispatchMessage (or sent with SendMessage) this function
* gets called with the contents of the message.
*/
LRESULT CALLBACK
MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
/* The window handle for the "Click Me" button. */
static HWND hwndButton = 0;
static int cx, cy; /* Height and width of our button. */
HDC hdc; /* A device context used for drawing */
PAINTSTRUCT ps; /* Also used during window drawing */
RECT rc; /* A rectangle used during drawing */
/*
* Perform processing based on what kind of message we got.
*/
switch (nMsg)
{
case WM_CREATE:
{
/* The window is being created. Create our button
* window now. */
TEXTMETRIC tm;
/* First we use the system fixed font size to choose
* a nice button size. */
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
GetTextMetrics (hdc, &tm);
cx = tm.tmAveCharWidth * 30;
cy = (tm.tmHeight + tm.tmExternalLeading) * 2;
ReleaseDC (hwnd, hdc);
/* Now create the button */
hwndButton = CreateWindow (
"button", /* Builtin button class */
"Click Here",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, cx, cy,
hwnd, /* Parent is this window. */
(HMENU) 1, /* Control ID: 1 */
((LPCREATESTRUCT) lParam)->hInstance,
NULL
);
return 0;
break;
}
case WM_DESTROY:
/* The window is being destroyed, close the application
* (the child button gets destroyed automatically). */
PostQuitMessage (0);
return 0;
break;
case WM_PAINT:
/* The window needs to be painted (redrawn). */
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rc);
/* Draw "Hello, World" in the middle of the upper
* half of the window. */
rc.bottom = rc.bottom / 2;
DrawText (hdc, "Hello, World", -1, &rc,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint (hwnd, &ps);
return 0;
break;
case WM_SIZE:
/* The window size is changing. If the button exists
* then place it in the center of the bottom half of
* the window. */
if (hwndButton &&
(wParam == SIZEFULLSCREEN ||
wParam == SIZENORMAL)
)
{
rc.left = (LOWORD(lParam) - cx) / 2;
rc.top = HIWORD(lParam) * 3 / 4 - cy / 2;
MoveWindow (
hwndButton,
rc.left, rc.top, cx, cy, TRUE);
}
break;
case WM_COMMAND:
/* Check the control ID, notification code and
* control handle to see if this is a button click
* message from our child button. */
if (LOWORD(wParam) == 1 &&
HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButton)
{
/* Our button was clicked. Close the window. */
DestroyWindow (hwnd);
}
return 0;
break;
}
/* If we don't handle a message completely we hand it to the system
* provided default window function. */
return DefWindowProc (hwnd, nMsg, wParam, lParam);
}
int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
HWND hwndMain; /* Handle for the main window. */
MSG msg; /* A Win32 message structure. */
WNDCLASSEX wndclass; /* A window class structure. */
char* szMainWndClass = "WinTestWin";
/* The name of the main window class */
/*
* First we create a window class for our main window.
*/
/* Initialize the entire structure to zero. */
memset (&wndclass, 0, sizeof(WNDCLASSEX));
/* This class is called WinTestWin */
wndclass.lpszClassName = szMainWndClass;
/* cbSize gives the size of the structure for extensibility. */
wndclass.cbSize = sizeof(WNDCLASSEX);
/* All windows of this class redraw when resized. */
wndclass.style = CS_HREDRAW | CS_VREDRAW;
/* All windows of this class use the MainWndProc window function. */
wndclass.lpfnWndProc = MainWndProc;
/* This class is used with the current program instance. */
wndclass.hInstance = hInst;
/* Use standard application icon and arrow cursor provided by the OS */
wndclass.hIcon = LoadIcon (NULL, (LPCTSTR)IDI_APPLICATION);
wndclass.hIconSm = LoadIcon (NULL, (LPCTSTR)IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, (LPCTSTR)IDC_ARROW);
/* Color the background white */
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
/*
* Now register the window class for use.
*/
RegisterClassEx (&wndclass);
/*
* Create our main window using that window class.
*/
hwndMain = CreateWindow (
szMainWndClass, /* Class name */
"Hello", /* Caption */
WS_OVERLAPPEDWINDOW, /* Style */
CW_USEDEFAULT, /* Initial x (use default) */
CW_USEDEFAULT, /* Initial y (use default) */
CW_USEDEFAULT, /* Initial x size (use default) */
CW_USEDEFAULT, /* Initial y size (use default) */
NULL, /* No parent window */
NULL, /* No menu */
hInst, /* This program instance */
NULL /* Creation parameters */
);
/*
* Display the window which we just created (using the nShow
* passed by the OS, which allows for start minimized and that
* sort of thing).
*/
ShowWindow (hwndMain, nShow);
UpdateWindow (hwndMain);
/*
* The main message loop. All messages being sent to the windows
* of the application (or at least the primary thread) are retrieved
* by the GetMessage call, then translated (mainly for keyboard
* messages) and dispatched to the appropriate window procedure.
* This is the simplest kind of message loop. More complex loops
* are required for idle processing or handling modeless dialog
* boxes. When one of the windows calls PostQuitMessage GetMessage
* will return zero and the wParam of the message will be filled
* with the argument to PostQuitMessage. The loop will end and
* the application will close.
*/
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
/* EOF */

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,21 +0,0 @@
# $Id: Makefile,v 1.6 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = alive
TARGET_SDKLIBS = kernel32.a user32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,48 +0,0 @@
/* $Id: alive.c,v 1.2 2001/03/26 21:30:20 ea Exp $
*
*/
#include <windows.h>
#include <stdlib.h>
HANDLE StandardOutput = INVALID_HANDLE_VALUE;
CHAR Message [80];
DWORD CharactersToWrite = 0;
DWORD WrittenCharacters = 0;
INT d = 0, h = 0, m = 0, s = 0;
int
main (int argc, char * argv [])
{
StandardOutput = GetStdHandle (STD_OUTPUT_HANDLE);
if (INVALID_HANDLE_VALUE == StandardOutput)
{
return (EXIT_FAILURE);
}
while (TRUE)
{
/* Prepare the message and update it */
CharactersToWrite =
wsprintf (
Message,
"Alive for %dd %dh %d' %d\" \r",
d, h, m, s
);
WriteConsole (
StandardOutput,
Message,
CharactersToWrite,
& WrittenCharacters,
NULL
);
/* suspend the execution for 1s */
Sleep (1000);
/* increment seconds */
++ s;
if (60 == s) { s = 0; ++ m; }
if (60 == m) { m = 0; ++ h; }
if (24 == h) { h = 0; ++ d; }
}
return (EXIT_SUCCESS);
}
/* EOF */

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,85 +0,0 @@
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <windows.h>
#include <ddk/ntddk.h>
HANDLE OutputHandle;
HANDLE InputHandle;
VOID STDCALL
ApcRoutine(PVOID Context,
PIO_STATUS_BLOCK IoStatus,
ULONG Reserved)
{
printf("(apc.exe) ApcRoutine(Context %p)\n", Context);
}
int main(int argc, char* argv[])
{
NTSTATUS Status;
HANDLE FileHandle;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING FileName = UNICODE_STRING_INITIALIZER(L"\\C:\\a.txt");
IO_STATUS_BLOCK IoStatus;
CHAR Buffer[256];
HANDLE EventHandle;
AllocConsole();
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
printf("APC test program\n");
EventHandle = CreateEventW(NULL,
FALSE,
FALSE,
NULL);
if (EventHandle == INVALID_HANDLE_VALUE)
{
printf("Failed to create event\n");
return 0;
}
printf("Opening file\n");
InitializeObjectAttributes(&ObjectAttributes,
&FileName,
0,
NULL,
NULL);
printf("Creating file\n");
FileHandle = CreateFileW(L"C:\\a.txt",
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
if (FileHandle == INVALID_HANDLE_VALUE)
{
printf("Open failed\n");
return 0;
}
printf("Reading file\n");
Status = ZwReadFile(FileHandle,
NULL,
(PIO_APC_ROUTINE)ApcRoutine,
(PVOID)0xdeadbeef,
&IoStatus,
Buffer,
256,
NULL,
NULL);
if (!NT_SUCCESS(Status))
{
printf("Read failed\n");
}
printf("Waiting\n");
WaitForSingleObjectEx(EventHandle, INFINITE, TRUE);
printf("Returned from wait\n");
ZwClose(FileHandle);
printf("Program finished\n");
return 0;
}

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.9 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = apc
TARGET_SDKLIBS = ntdll.a kernel32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,39 +0,0 @@
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <windows.h>
HANDLE OutputHandle;
HANDLE InputHandle;
void debug_printf(char* fmt, ...)
{
va_list args;
char buffer[255];
va_start(args,fmt);
vsprintf(buffer,fmt,args);
WriteConsoleA(OutputHandle, buffer, strlen(buffer), NULL, NULL);
va_end(args);
}
int main(int argc, char* argv[])
{
int i;
AllocConsole();
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
printf("GetCommandLineA() %s\n",GetCommandLineA());
debug_printf("GetCommandLineA() %s\n",GetCommandLineA());
debug_printf("argc %d\n", argc);
for (i=0; i<argc; i++)
{
debug_printf("Argv[%d]: %x\n",i,argv[i]);
debug_printf("Argv[%d]: '%s'\n",i,argv[i]);
}
return 0;
}

View File

@@ -1,19 +0,0 @@
# $Id: makefile,v 1.15 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = args
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,114 +0,0 @@
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <ddk/ntddk.h>
#define BUFFER_SIZE 256
int main(int argc, char* argv[])
{
PRTL_ATOM_TABLE AtomTable = NULL;
RTL_ATOM AtomA = -1, AtomB = -1, AtomC = -1;
NTSTATUS Status;
WCHAR Buffer[BUFFER_SIZE];
ULONG NameLength, Data1, Data2;
printf("Atom table test app\n\n");
printf("RtlCreateAtomTable()\n");
Status = RtlCreateAtomTable(37,
&AtomTable);
printf(" Status 0x%08lx\n", Status);
if (NT_SUCCESS(Status))
{
printf(" AtomTable %p\n", AtomTable);
printf("RtlAddAtomToAtomTable()\n");
Status = RtlAddAtomToAtomTable(AtomTable,
L"TestAtomA",
&AtomA);
printf(" Status 0x%08lx\n", Status);
if (NT_SUCCESS(Status))
{
printf(" AtomA 0x%x\n", AtomA);
}
printf("RtlAddAtomToAtomTable()\n");
Status = RtlAddAtomToAtomTable(AtomTable,
L"TestAtomB",
&AtomB);
printf(" Status 0x%08lx\n", Status);
if (NT_SUCCESS(Status))
{
printf(" AtomB 0x%x\n", AtomB);
}
printf("RtlLookupAtomInAtomTable()\n");
Status = RtlLookupAtomInAtomTable(AtomTable,
L"TestAtomA",
&AtomC);
printf(" Status 0x%08lx\n", Status);
if (NT_SUCCESS(Status))
{
printf(" AtomC 0x%x\n", AtomC);
}
printf("RtlPinAtomInAtomTable()\n");
Status = RtlPinAtomInAtomTable(AtomTable,
AtomC);
printf(" Status 0x%08lx\n", Status);
printf("RtlPinAtomInAtomTable()\n");
Status = RtlPinAtomInAtomTable(AtomTable,
AtomC);
printf(" Status 0x%08lx\n", Status);
// printf("RtlDeleteAtomFromAtomTable()\n");
// Status = RtlDeleteAtomFromAtomTable(AtomTable,
// AtomC);
// printf(" Status 0x%08lx\n", Status);
// printf("RtlEmptyAtomTable()\n");
// Status = RtlEmptyAtomTable(AtomTable,
// TRUE);
// printf(" Status 0x%08lx\n", Status);
// printf("RtlLookupAtomInAtomTable()\n");
// Status = RtlLookupAtomInAtomTable(AtomTable,
// L"TestAtomA",
// &AtomC);
// printf(" Status 0x%08lx\n", Status);
printf("RtlQueryAtomInAtomTable()\n");
NameLength = sizeof(WCHAR) * BUFFER_SIZE;
Status = RtlQueryAtomInAtomTable(AtomTable,
AtomC,
&Data1,
&Data2,
Buffer,
&NameLength);
printf(" Status 0x%08lx\n", Status);
if (NT_SUCCESS(Status))
{
printf(" RefCount %ld\n", Data1);
printf(" PinCount %ld\n", Data2);
printf(" NameLength %lu\n", NameLength);
printf(" AtomName: %S\n", Buffer);
}
printf("RtlDestroyAtomTable()\n");
RtlDestroyAtomTable(AtomTable);
printf("Atom table test app finished\n");
}
return(0);
}

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.5 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = atomtest
TARGET_SDKLIBS = ntdll.a kernel32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,8 +0,0 @@
/*
*
*/
int main(int argc, char* argv[])
{
}

View File

@@ -1,82 +0,0 @@
#include <stdio.h>
#include <windows.h>
#define NR_THREADS (30)
DWORD WINAPI
thread_main1(LPVOID param)
{
printf("Thread 1 running (Counter %lu)\n", (DWORD)param);
SleepEx(INFINITE, TRUE);
return 0;
}
DWORD WINAPI
thread_main2(LPVOID param)
{
printf("Thread 2 running (Counter %lu)\n", (DWORD)param);
Sleep(INFINITE);
return 0;
}
int main (void)
{
HANDLE hThread;
DWORD i=0;
DWORD id;
#if 1
printf("Creating %d threads...\n",NR_THREADS*2);
for (i=0;i<NR_THREADS;i++)
{
CreateThread(NULL,
0,
thread_main1,
(LPVOID)i,
0,
&id);
/* CreateThread(NULL,
0,
thread_main2,
(LPVOID)i,
0,
&id);*/
}
printf("All threads created...\n");
/*
* Waiting for threads is not implemented yet.
* If you want to see all threads running, uncomment the
* call to SuspendThread(). The test application will
* freeze after all threads are created.
*/
/* SuspendThread (GetCurrentThread()); */
#else
printf("Creating thread...\n");
hThread = CreateThread(NULL,
0,
thread_main1,
(LPVOID)i,
0,
&id);
printf("Thread created. Waiting for termination...\n");
WaitForSingleObject (hThread,
-1);
CloseHandle (hThread);
printf("Thread terminated...\n");
#endif
printf("Exiting\n");
return 0;
}

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.10 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = bench-thread
TARGET_SDKLIBS = kernel32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,138 +0,0 @@
/*
* Windows 2000 Graphics API Black Book
* (BitBlt Bitmap Rendering Demo)
*
* Created by Damon Chandler <dmc27@ee.cornell.edu>
* Updates can be downloaded at: <www.coriolis.com>
*
* Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
* if you have any questions about this code.
*/
#include <windows.h>
HINSTANCE HInst;
const char* WndClassName = "GMainWnd";
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
LPARAM LParam);
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HInst = HInstance;
memset(&wc, 0, sizeof(WNDCLASS));
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.hInstance = HInstance;
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
/* wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1); */
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wc.lpszClassName = WndClassName;
if (RegisterClass(&wc))
{
HWND HWnd =
CreateWindow(
WndClassName, TEXT("BitBlt Bitmap Rendering Demo"),
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
WS_VISIBLE | WS_CLIPSIBLINGS,
0, 0, 220, 230,
NULL, NULL, HInst, NULL
);
if (HWnd)
{
ShowWindow(HWnd, nCmdShow);
UpdateWindow(HWnd);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
return 0;
}
/* image related */
BITMAP bmp;
LPCSTR filename = TEXT("lena.bmp");
HDC HMemDC = NULL;
HBITMAP HOldBmp = NULL;
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
LPARAM LParam)
{
switch (Msg)
{
case WM_CREATE:
{
/* create a memory DC */
HMemDC = CreateCompatibleDC(NULL);
if (HMemDC)
{
/* load a bitmap from file */
HBITMAP HBmp =
/* static_cast<HBITMAP> */(
LoadImage(HInst, filename, IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE)
);
if (HBmp)
{
/* extract dimensions of the bitmap */
GetObject(HBmp, sizeof(BITMAP), &bmp);
/* associate the bitmap with the memory DC */
/* HOldBmp = static_cast<HBITMAP> */
(SelectObject(HMemDC, HBmp)
);
}
}
}
case WM_PAINT:
{
PAINTSTRUCT ps;
const HDC Hdc = BeginPaint(HWnd, &ps);
#if 0
try
#endif
{
/* TODO: add palette support (see Chapter 9)... */
BitBlt(Hdc, 20, 15,
bmp.bmWidth, bmp.bmHeight,
HMemDC, 0, 0,
SRCCOPY);
}
#if 0
catch (...)
#endif
{
EndPaint(HWnd, &ps);
}
EndPaint(HWnd, &ps);
break;
}
case WM_DESTROY:
{
/* clean up */
DeleteObject(SelectObject(HMemDC, HOldBmp));
DeleteDC(HMemDC);
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(HWnd, Msg, WParam, LParam);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -1,20 +0,0 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = bitblt
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,20 +0,0 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = btntest
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = buttontst.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,108 +0,0 @@
/* Based on Radoslaw Sokol's static control test. */
#include <windows.h>
static LPSTR BUTTON_CLASS = "BUTTON";
static LPSTR TEST_WND_CLASS = "TESTWND";
#ifdef NDEBUG
#define DPRINT(s) (void)0
#else
#define DPRINT(s) OutputDebugStringA("BUTTONTEST: " s "\n")
#endif
HINSTANCE AppInstance = NULL;
LRESULT WmCreate(
HWND Wnd)
{
UCHAR i;
DPRINT("WM_CREATE (enter).");
DPRINT("test 1");
CreateWindowEx(0, BUTTON_CLASS, "PushButton", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
10, 10, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 2");
CreateWindowEx(0, BUTTON_CLASS, "DefPushButton", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,
10, 40, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 3");
CreateWindowEx(0, BUTTON_CLASS, "AutoRadioButton", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE,
10, 70, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 4");
CreateWindowEx(0, BUTTON_CLASS, "AutoCheckBox", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE,
10, 100, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("WM_CREATE (leave).");
return 0;
}
LRESULT CALLBACK TestWndProc(
HWND Wnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam)
{
switch (Msg) {
case WM_CREATE:
return WmCreate(Wnd);
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(Wnd, Msg, wParam, lParam);
}
}
int STDCALL WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
ATOM Result;
MSG Msg;
HWND MainWindow;
WNDCLASSEX TestWndClass = {0};
DPRINT("Application starting up.");
// Remember instance handle.
AppInstance = GetModuleHandle(NULL);
// Register test window class.
TestWndClass.cbSize = sizeof(WNDCLASSEX);
TestWndClass.lpfnWndProc = &TestWndProc;
TestWndClass.hInstance = AppInstance;
TestWndClass.hCursor = LoadCursor(0, (LPCTSTR)IDC_ARROW);
TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230));
TestWndClass.lpszClassName = TEST_WND_CLASS;
Result = RegisterClassEx(&TestWndClass);
if (Result == 0) {
DPRINT("Error registering class.");
MessageBox(0, "Error registering test window class.",
"Button control test", MB_ICONSTOP | MB_OK);
ExitProcess(0);
}
// Create main window.
DPRINT("Creating main window.");
MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
TEST_WND_CLASS, "Button test",
WS_OVERLAPPEDWINDOW, 50, 50, 180, 365,
NULL, NULL, AppInstance, NULL);
if (MainWindow == 0) {
DPRINT("Error creating main window.");
UnregisterClass(TEST_WND_CLASS, AppInstance);
MessageBox(0, "Error creating test window.",
"Static control test", MB_ICONSTOP | MB_OK);
ExitProcess(0);
}
DPRINT("Showing main window.");
ShowWindow(MainWindow, SW_SHOWNORMAL);
UpdateWindow(MainWindow);
// Run message loop.
DPRINT("Entering message loop.");
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
// Unregister window class.
UnregisterClass(TEST_WND_CLASS, AppInstance);
DPRINT("Exiting.");
return Msg.wParam;
}

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,20 +0,0 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = btntest2
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = buttontst2.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,219 +0,0 @@
#include <windows.h>
#include <stdio.h>
HFONT tf;
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
HWND hbtn[26];
wc.lpszClassName = "ButtonTest";
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow("ButtonTest",
"Button Test",
WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
if (hWnd == NULL)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
ShowWindow(hWnd, nCmdShow);
hbtn[0] = CreateWindow(
"BUTTON","BS_DEFPUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
10, 10, 200, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[1] = CreateWindow(
"BUTTON","BS_3STATE",WS_VISIBLE | WS_CHILD | BS_3STATE,
10, 60, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[2] = CreateWindow(
"BUTTON","BS_AUTO3STATE",WS_VISIBLE | WS_CHILD | BS_AUTO3STATE,
10, 90, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[3] = CreateWindow(
"BUTTON","BS_AUTOCHECKBOX",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
10, 120, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[4] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
10, 150, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[5] = CreateWindow(
"BUTTON","BS_CHECKBOX",WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
10, 180, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[6] = CreateWindow(
"BUTTON","BS_GROUPBOX",WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
10, 210, 200, 80, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[7] = CreateWindow(
"BUTTON","BS_PUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
20, 230, 180, 30, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[8] = CreateWindow(
"BUTTON","BS_RADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_RADIOBUTTON,
10, 300, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[9] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
220, 160, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[10] = CreateWindow(
"BUTTON","BS_DEFPUSHBUTTON|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_BOTTOM,
220, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[11] = CreateWindow(
"BUTTON","BS_DEFPUSHBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_LEFT,
480, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[12] = CreateWindow(
"BUTTON","BS_DEFPUSHBUTTON|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_RIGHT |BS_MULTILINE,
740, 10, 150, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[13] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP,
220, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
// Other Combinations
hbtn[14] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_BOTTOM | BS_MULTILINE,
480, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[15] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_LEFT,
740, 80, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[16] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON|BS_RIGHT|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_RIGHT | BS_TOP,
220, 130, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[17] = CreateWindow(
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP| BS_MULTILINE,
480, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[18] = CreateWindow(
"BUTTON","BS_AUTOCHECKBOX|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_BOTTOM | BS_MULTILINE,
740, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[19] = CreateWindow(
"BUTTON","BS_AUTOCHECKBOX|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE,
480, 190, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[20] = CreateWindow(
"BUTTON","BS_AUTOCHECKBOX|BS_LEFT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE,
220, 230, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[21] = CreateWindow(
"BUTTON","BS_AUTOCHECKBOX|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_RIGHT | BS_MULTILINE,
480, 240, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[22] = CreateWindow(
"BUTTON","BS_GROUPBOX|BS_TOP",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_TOP,
10, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[23] = CreateWindow(
"BUTTON","BS_GROUPBOX|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM,
10, 410, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[24] = CreateWindow(
"BUTTON","BS_GROUPBOXBOX|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_LEFT,
520, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
hbtn[25] = CreateWindow(
"BUTTON","BS_GROUPBOX|BS_RIGHT|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM | BS_RIGHT,
300, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DeleteObject(tf);
return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
switch(msg)
{
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
SelectObject(hDC, tf);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
printf("BUTTON CLICKED !\n");
break;
case BN_DBLCLK:
printf("BUTTON DOUBLE-CLICKED !\n");
break;
case BN_PUSHED:
printf("BUTTON PUSHED !\n");
break;
case BN_PAINT:
printf("BUTTON PAINTED !\n");
break;
case BN_UNPUSHED:
printf("BUTTON UNPUSHED !\n");
break;
}
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,18 +0,0 @@
PATH_TO_TOP = ../../..
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = capclock
TARGET_SDKLIBS = kernel32.a
TARGET_OBJECTS = capclock.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,69 +0,0 @@
/* $Id: capclock.c,v 1.2 2003/09/24 20:05:29 weiden Exp $
*
* DESCRIPTION: Simple Win32 Caption Clock
* PROJECT : ReactOS (test applications)
* AUTHOR : Emanuele Aliberti
* DATE : 2003-09-03
* LICENSE : GNU GPL v2.0
*/
#include <windows.h>
UINT Timer = 1;
static BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
static VOID CALLBACK TimerProc(HWND,UINT,UINT,DWORD);
INT STDCALL WinMain (HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpCmdLine, INT nCmdShow)
{
WNDCLASS wc;
ZeroMemory (& wc, sizeof wc);
wc.lpfnWndProc = DefDlgProc;
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = hinst;
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
wc.lpszClassName = "CapClock";
RegisterClass (& wc);
return DialogBox(hinst, MAKEINTRESOURCE(2), NULL, (DLGPROC) DialogFunc);
}
static int InitializeApp (HWND hDlg,WPARAM wParam, LPARAM lParam)
{
Timer = SetTimer (hDlg,Timer,1000,TimerProc);
TimerProc (hDlg,0,0,0);
return 1;
}
static BOOL CALLBACK DialogFunc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_INITDIALOG:
InitializeApp(hwndDlg,wParam,lParam);
return TRUE;
case WM_CLOSE:
KillTimer (hwndDlg,Timer);
EndDialog(hwndDlg,0);
return TRUE;
}
return FALSE;
}
static VOID CALLBACK TimerProc (HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
CHAR text [20];
SYSTEMTIME lt;
GetLocalTime (& lt);
wsprintf (
text,
"%d-%02d-%02d %02d:%02d:%02d",
lt.wYear,
lt.wMonth,
lt.wDay,
lt.wHour,
lt.wMinute,
lt.wSecond);
SetWindowText (hwnd, text);
}
/* EOF */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

View File

@@ -1,52 +0,0 @@
#include <windows.h>
#include "../../../include/reactos/resource.h"
/* Icons */
1 ICON "capclock.ico"
/* Dialogs */
2 DIALOG 6, 18, 132, 0
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "Microsoft Sans Serif"
BEGIN
END
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
/* Version information. */
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "ReactOS W32 Caption Clock\0"
VALUE "FileVersion", RES_STR_PRODUCT_VERSION
VALUE "InternalName", "capclock\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "capclock.exe\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

View File

@@ -1,150 +0,0 @@
#include <windows.h>
#include <stdio.h>
#include "resource.h"
static int CaretWidth = 2;
static int CaretHeight = 16;
static int CharWidth = 10;
static int CharHeight = 16;
static HBITMAP CaretBitmap;
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
CaretBitmap = LoadBitmap(hInstance, (LPCTSTR)IDB_CARET);
wc.lpszClassName = "CaretTestClass";
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow(wc.lpszClassName,
"Caret Test",
WS_OVERLAPPEDWINDOW,
0,
0,
200,
250,
NULL,
NULL,
hInstance,
NULL);
if (hWnd == NULL)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
POINT pt;
switch(msg)
{
case WM_ACTIVATE:
switch(LOWORD(wParam))
{
case WA_ACTIVE:
case WA_CLICKACTIVE:
if(!ShowCaret(hWnd))
DbgPrint("ShowCaret(0x%x)\n", hWnd);
break;
case WA_INACTIVE:
if(!HideCaret(hWnd))
DbgPrint("HideCaret(0x%x)\n", hWnd);
break;
}
break;
case WM_KEYDOWN:
if(!GetCaretPos(&pt))
{
DbgPrint("GetCaretPos() failed!\n");
break;
}
switch(wParam)
{
case VK_LEFT:
pt.x -= CharWidth;
break;
case VK_UP:
pt.y -= CharHeight;
break;
case VK_RIGHT:
pt.x += CharWidth;
break;
case VK_DOWN:
pt.y += CharHeight;
break;
}
if(!SetCaretPos(pt.x, pt.y))
DbgPrint("SetCaretPos() failed!\n");
break;
case WM_RBUTTONDOWN:
if(!CreateCaret(hWnd, CaretBitmap, 0, 0))
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
else
if(!ShowCaret(hWnd))
DbgPrint("ShowCaret(0x%x)\n", hWnd);
break;
case WM_LBUTTONDOWN:
if(!CreateCaret(hWnd, (HBITMAP)0, CaretWidth, CaretHeight))
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
else
if(!ShowCaret(hWnd))
DbgPrint("ShowCaret(0x%x)\n", hWnd);
break;
case WM_CREATE:
if(!CreateCaret(hWnd, (HBITMAP)0, CaretWidth, CaretHeight))
DbgPrint("CreateCaret() for window 0x%x failed!\n", hWnd);
else
if(!SetCaretPos(1, 1))
DbgPrint("SetCaretPos(%i, %i) failed!\n", 1, 1);
break;
case WM_DESTROY:
if(!DestroyCaret())
DbgPrint("DestroyCaret() failed!\n");
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -1,5 +0,0 @@
#include <defines.h>
#include <reactos/resource.h>
#include "resource.h"
IDB_CARET BITMAP DISCARDABLE "caret.bmp"

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.1 2003/10/15 18:28:54 weiden Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = no
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = carets
TARGET_SDKLIBS = kernel32.a gdi32.a ntdll.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1 +0,0 @@
#define IDB_CARET 101

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,100 +0,0 @@
#include <windows.h>
#include <stdio.h>
//HFONT tf;
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
wc.lpszClassName = "CliAreaClass";
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow("CliAreaClass",
"ClientArea Test",
WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
if (hWnd == NULL)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
//tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
// ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
// DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//DeleteObject(tf);
return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
RECT clr, wir;
char txt[100];
switch(msg)
{
case WM_LBUTTONUP:
{
ULONG x, y;
RECT Rect;
GetWindowRect(hWnd, &Rect);
SendMessage(hWnd, WM_NCCALCSIZE, 0, (LPARAM)(&Rect));
hDC = GetWindowDC(0);
Rectangle(hDC, Rect.left, Rect.top, Rect.right, Rect.bottom);
sprintf(txt, "Client coordinates: %d, %d, %d, %d\0", Rect.left, Rect.top, Rect.right, Rect.bottom);
TextOut(hDC, Rect.left + 1, Rect.top + 1, (LPCTSTR)txt, strlen(txt));
ReleaseDC(0, hDC);
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.1 2003/10/04 12:14:37 weiden Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = cliarea
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,687 +0,0 @@
/* ComboBox Control Test for ReactOS.
* This is a test program. Not made to be fast, small
* easy to mantain, or portable.
* I'm not erasing text because I don't want to use other functions from the API
* or make this more complex. Also Fonts are not heavily used.
* This source code is in the PUBLIC DOMAIN and has NO WARRANTY.
* by Waldo Alvarez Ca<43>izares <wac at ghost.matcom.uh.cu>, started July 11, 2003. */
//#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "utils.h"
#define CONTROLCLASS "COMBOBOX" /* the class name */
#define CONTROLCLASSW L"COMBOBOX" /* the class name in unicode*/
#define WINDOWWIDTH 560
#define WINDOWHEIGHT 350
/* --- Command IDs of some buttons --- */
#define CREATEWINDOW_ID 106
#define CREATEWINDOWEX_ID 107
#define CREATEWINDOWW_ID 108
#define INITPAGE_ID 400
#define SECONDPAGE_ID 401
#define BACKFIRSTPAGE_ID 402
/* --- Position where the result text goes --- */
#define ResultX 0
#define ResultY 305
/* --- Position where the notify text goes --- */
#define NOTIFYX 390
#define NOTIFYY 285
/* --- The width of most buttons --- */
#define CHECKBUTWIDTH 190
#define SCROLLAMOUNT -15
/* Size of buffer to hold resulting strings from conversion
and returned by messages */
#define BUFFERLEN 80
char TextBuffer[BUFFERLEN]={'R','e','s','u','l','t',':',' '};
HWND g_hwnd = NULL;
HINSTANCE g_hInst = NULL;
int pos = 10;
int n = 0;
int yButPos = 10;
int xButPos = 0;
DWORD ComboStyle = 0;
/* --- Control coordinates --- */
#define CONTROLPOSX 390
#define CONTROLPOSY 10
DWORD ControlWidth = 160;
DWORD ControlHeight = 150;
static RECT srect = {CONTROLPOSX,CONTROLPOSY,WINDOWWIDTH,WINDOWHEIGHT};
HWND hwndEdit = NULL;
RECT rect;
DWORD StartP,EndP;
HWND hwnd; /* main window handle */
char AddString[] = "string added";
typedef void FunctionHandler(HWND,DWORD,WPARAM,LPARAM);
typedef FunctionHandler* LPFUNCTIONHANDLER;
PrintTextXY(char* Text,int x,int y,int len, RECT rect)
{
HDC hdc;
hdc = GetDC (g_hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
TextOut (hdc, x,y,Text,len);
ReleaseDC (g_hwnd, hdc);
ValidateRect (g_hwnd, &rect);
}
static
VOID
HandlePrintReturnHex(HWND handle,DWORD Msg,WPARAM wParam,LPARAM lParam)
{
LRESULT ret;
RECT rect;
ret = SendMessage(handle,Msg,wParam,lParam);
htoa((unsigned int)ret,&TextBuffer[8]);
GetWindowRect(g_hwnd,&rect);
PrintTextXY(TextBuffer,ResultX,ResultY,16,rect);
}
static
VOID
HandlePrintReturnStr(HWND handle,DWORD Msg,WPARAM wParam,LPARAM lParam)
{
LRESULT ret;
RECT rect;
TextBuffer[8] = (char)(BUFFERLEN - 8); /* Setting the max size to put chars in first byte */
ret = SendMessage(handle,Msg,wParam,lParam);
GetWindowRect(g_hwnd,&rect);
PrintTextXY(TextBuffer,ResultX,ResultY,8+(int)ret,rect);
}
static
VOID
HandlePrintRect(HWND handle,DWORD Msg,WPARAM wParam,LPARAM lParam)
{
RECT rect;
TextBuffer[8] = (char)(BUFFERLEN - 8); /* Setting the max size to put chars in first byte */
SendMessage(handle,Msg,wParam,lParam);
htoa(rect.top,&TextBuffer[8]);
TextBuffer[8+8] = ' ';
htoa(rect.bottom,&TextBuffer[8+8+1]);
TextBuffer[8+8+8+1] = ' ';
htoa(rect.left,&TextBuffer[8+8+8+1+1]);
TextBuffer[8+8+8+8+1+1] = ' ';
htoa(rect.right,&TextBuffer[8+8+8+8+1+1+1]);
GetWindowRect(g_hwnd,&rect);
PrintTextXY(TextBuffer,ResultX,ResultY,8+4*9-1,rect);
}
struct
{
char* Text; /* Text for the button */
DWORD MsgCode; /* Message Code */
WPARAM wParam; /* Well hope you can understand this */
LPARAM lParam; /* ditto */
LPFUNCTIONHANDLER Handler; /* Funtion called to handle the result of each message */
}
Msg[] =
{
"CB_ADDSTRING",CB_ADDSTRING,0,(LPARAM)&AddString,&HandlePrintReturnHex,
"CB_ADDSTRING - long",CB_ADDSTRING,0,(LPARAM)"very loooooooooong striiinnnnnnnnnggg",&HandlePrintReturnHex,
"CB_DELETESTRING",CB_DELETESTRING,2,0,&HandlePrintReturnHex, /* remember to catch WM_DELETEITEM*/
/* What a message, why M$ decided to implement his thing ? */
"CB_DIR - drives",CB_DIR,DDL_DRIVES,
/* Hoping that most machines have this */
(LPARAM)"C:\\",
&HandlePrintReturnHex,
"CB_DIR - dirs",CB_DIR,DDL_DIRECTORY,(LPARAM)"C:\\*",&HandlePrintReturnHex,
"CB_DIR - files",CB_DIR,
DDL_ARCHIVE | DDL_EXCLUSIVE | DDL_HIDDEN | DDL_READONLY | DDL_READWRITE | DDL_SYSTEM,
(LPARAM)"C:\\*",&HandlePrintReturnHex,
/* Do not forget WM_COMPAREITEM */
"CB_FINDSTRING",CB_FINDSTRING,1,(LPARAM)"str",&HandlePrintReturnHex,
"CB_FINDSTRINGEXACT(-1)",CB_FINDSTRINGEXACT,-1,(LPARAM)&AddString,&HandlePrintReturnHex,
"CB_FINDSTRINGEXACT(2)",CB_FINDSTRINGEXACT,2,(LPARAM)&AddString,&HandlePrintReturnHex,
/* "CB_GETCOMBOBOXINFO",CB_GETCOMBOBOXINFO,0,0,&HandlePrintReturnHex, winXP & .net server remember to handle the struct */
"CB_GETCOUNT",CB_GETCOUNT,0,0,&HandlePrintReturnHex,
"CB_GETCURSEL",CB_GETCURSEL,0,0,&HandlePrintReturnHex,
/* To implement "CB_GETEDITSEL - vars",CB_GETEDITSEL,,,&HandlePrintReturnHex, */
"CB_GETEXTENDEDUI",CB_GETEXTENDEDUI,0,0,&HandlePrintReturnHex,
"CB_GETHORIZONTALEXTENT",CB_GETHORIZONTALEXTENT,0,0,&HandlePrintReturnHex,
"CB_GETLBTEXT",CB_GETLBTEXT,1,(LPARAM)&TextBuffer[8],&HandlePrintReturnStr,
"CB_GETLBTEXTLEN",CB_GETLBTEXTLEN,1,0,&HandlePrintReturnHex,
"CB_GETLOCALE",CB_GETLOCALE,0,0,&HandlePrintReturnHex,
/* "CB_GETMINVISIBLE",CB_GETMINVISIBLE,0,0,&HandlePrintReturnHex, Included in Windows XP and Windows .NET Server. */
"CB_GETTOPINDEX",CB_GETTOPINDEX,0,0,&HandlePrintReturnHex,
"CB_INITSTORAGE",CB_INITSTORAGE,10,200,&HandlePrintReturnHex,
"CB_INSERTSTRING",CB_INSERTSTRING,2,(LPARAM)"inserted string",&HandlePrintReturnHex,
"CB_LIMITTEXT",CB_LIMITTEXT,10,0,&HandlePrintReturnHex,
"CB_RESETCONTENT",CB_RESETCONTENT ,0,0,&HandlePrintReturnHex,
"CB_SELECTSTRING",CB_SELECTSTRING,2,(LPARAM)"str",&HandlePrintReturnHex,
"CB_SETCURSEL",CB_SETCURSEL,1,0,&HandlePrintReturnHex,
"CB_SETDROPPEDWIDTH",CB_SETDROPPEDWIDTH,250,0,&HandlePrintReturnHex,
"CB_SETEXTENDEDUI - set",CB_SETEXTENDEDUI,TRUE,0,&HandlePrintReturnHex,
"CB_SETEXTENDEDUI - clear",CB_SETEXTENDEDUI,FALSE,0,&HandlePrintReturnHex,
/*
* win2k have a small bug with this ^ , if you press F4 while it is cleared,
* the combobox is using style cbs_dropdown
* and the pointer is over the edit box then the mouse pointer is not changed
* to an arrow
*/
"CB_SETHORIZONTALEXTENT",CB_SETHORIZONTALEXTENT,500,0,&HandlePrintReturnHex,
"CB_GETITEMDATA",CB_GETITEMDATA,1,0,&HandlePrintReturnHex,
"CB_SETITEMDATA",CB_SETITEMDATA,1,0x791031,&HandlePrintReturnHex,
"CB_SETITEMHEIGHT",CB_SETITEMHEIGHT,-1,30,&HandlePrintReturnHex,
"CB_GETITEMHEIGHT",CB_GETITEMHEIGHT,2,0,&HandlePrintReturnHex,
/* "CB_SETMINVISIBLE",CB_SETMINVISIBLE,4,0,&HandlePrintReturnHex, Included in Windows XP and Windows .NET Server */
"CB_GETEDITSEL",CB_GETEDITSEL,(WPARAM)NULL,(LPARAM)NULL,&HandlePrintReturnHex,
"CB_SETEDITSEL",CB_SETEDITSEL,0,0x00020005,&HandlePrintReturnHex,
"CB_SETEDITSEL - clear",CB_SETEDITSEL,0,0xFFFFFFFF,&HandlePrintReturnHex,
"CB_SETTOPINDEX",CB_SETTOPINDEX,3,0,&HandlePrintReturnHex,
"CB_SHOWDROPDOWN - true",CB_SHOWDROPDOWN,TRUE,0,&HandlePrintReturnHex,
"CB_SHOWDROPDOWN - false",CB_SHOWDROPDOWN,FALSE,0,&HandlePrintReturnHex,
"CB_GETDROPPEDCONTROLRECT",CB_GETDROPPEDCONTROLRECT,0,(LPARAM)&rect,&HandlePrintRect,
"CB_GETDROPPEDSTATE",CB_GETDROPPEDSTATE,0,0,&HandlePrintReturnHex,
"CB_GETDROPPEDWIDTH",CB_GETDROPPEDWIDTH,0,0,&HandlePrintReturnHex,
"WM_PASTE",WM_PASTE,0,0,&HandlePrintReturnHex,
};
#define MAXMESSAGEBUTTONS 40
struct
{
char* Name; /* Text for the button */
DWORD Code; /* Style Code */
}
Styles[] = {
"WS_DISABLED",WS_DISABLED,
"CBS_AUTOHSCROLL",CBS_AUTOHSCROLL,
"CBS_DISABLENOSCROLL",CBS_DISABLENOSCROLL,
"CBS_DROPDOWN",CBS_DROPDOWN,
"CBS_DROPDOWNLIST",CBS_DROPDOWNLIST,
"CBS_HASSTRINGS",CBS_HASSTRINGS,
"CBS_LOWERCASE",CBS_LOWERCASE,
"CBS_NOINTEGRALHEIGHT",CBS_NOINTEGRALHEIGHT,
"CBS_OEMCONVERT",CBS_OEMCONVERT,
"CBS_OWNERDRAWFIXED",CBS_OWNERDRAWFIXED,
"CBS_OWNERDRAWVARIABLE",CBS_OWNERDRAWVARIABLE,
"CBS_SIMPLE",CBS_SIMPLE,
"CBS_SORT",CBS_SORT,
"CBS_UPPERCASE",CBS_UPPERCASE,
"CBS_DISABLENOSCROLL",CBS_DISABLENOSCROLL,
"WS_HSCROLL",WS_HSCROLL,
"WS_VSCROLL",WS_VSCROLL
};
/* The number of check buttons we have.
* Maybe some calculations at compile time would be better
*/
#define NUMBERCHECKS 17
#define NUMBERBUTTONS NUMBERCHECKS + 7
HWND Buttons[NUMBERBUTTONS];
HWND MessageButtons[MAXMESSAGEBUTTONS];
HWND Back1But,Back2But;
HWND NextBut;
HWND
CreateCheckButton(const char* lpWindowName, DWORD xSize, DWORD id)
{
HWND h;
h = CreateWindowEx(0,
"BUTTON",
lpWindowName,
WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
xButPos, /* x */
yButPos, /* y */
xSize, /* nWidth */
20, /* nHeight */
g_hwnd,
(HMENU) id,
g_hInst,
NULL
);
yButPos += 21;
return h;
}
HWND
CreatePushButton(const char* lpWindowName, DWORD xSize, DWORD id,DWORD Style)
{
HWND h = CreateWindow("BUTTON",
lpWindowName,
WS_CHILD | BS_PUSHBUTTON | Style,
xButPos, /* x */
yButPos, /* y */
xSize, /* nWidth */
20, /* nHeight */
g_hwnd,
(HMENU) id,
g_hInst,
NULL
);
yButPos += 21;
return h;
}
VOID
ReadNHide()
{
int i;
ComboStyle = 0;
for (i=0 ; i< NUMBERCHECKS ; i++)
{
if(BST_CHECKED == SendMessage(Buttons[i],BM_GETCHECK,0,0))
ComboStyle |= Styles[i].Code;
ShowWindow(Buttons[i],SW_HIDE);
}
for (; i< NUMBERBUTTONS ; i++)ShowWindow(Buttons[i],SW_HIDE);
for (i=0 ; i< 26 ; i++) ShowWindow(MessageButtons[i],SW_SHOW);
ShowWindow(Back1But,SW_SHOW);
ShowWindow(NextBut,SW_SHOW);
}
VOID
ForwardToSecondPage()
{
int i;
for (i=0;i<26;i++)ShowWindow(MessageButtons[i],SW_HIDE);
for(;i<MAXMESSAGEBUTTONS;i++)ShowWindow(MessageButtons[i],SW_SHOW);
ShowWindow(Back2But,SW_SHOW);
ShowWindow(Back1But,SW_HIDE);
ShowWindow(NextBut,SW_HIDE);
}
VOID
BackToFirstPage()
{
int i;
for (i=0;i<26;i++)ShowWindow(MessageButtons[i],SW_SHOW);
for(;i<MAXMESSAGEBUTTONS;i++)ShowWindow(MessageButtons[i],SW_HIDE);
ShowWindow(Back2But,SW_HIDE);
ShowWindow(Back1But,SW_SHOW);
ShowWindow(NextBut,SW_SHOW);
}
VOID
BackToInitialPage()
{
int i;
DestroyWindow(hwndEdit);
for (i=0 ; i< NUMBERBUTTONS ; i++) {ShowWindow(Buttons[i],SW_SHOW);}
for (i=0;i<26;i++)ShowWindow(MessageButtons[i],SW_HIDE);
ShowWindow(Back1But,SW_HIDE);
ShowWindow(NextBut,SW_HIDE);
}
LRESULT
CALLBACK
WndProc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
int i;
switch ( msg )
{
case WM_CREATE:
g_hwnd = hwnd;
/* ---- Initial page ---- */
for (i = 0 ; i < 14 ; i++)
Buttons[i] = CreateCheckButton(Styles[i].Name,CHECKBUTWIDTH,500+i);
xButPos += CHECKBUTWIDTH + 10;
yButPos = 10;
for (; i < NUMBERCHECKS ; i++)
Buttons[i] = CreateCheckButton(Styles[i].Name,CHECKBUTWIDTH,500+i);
Buttons[i++] = CreatePushButton("Width +",70,100,WS_VISIBLE);
Buttons[i++] = CreatePushButton("Width -",70,101,WS_VISIBLE);
Buttons[i++] = CreatePushButton("Heigth +",70,102,WS_VISIBLE);
Buttons[i++] = CreatePushButton("Heigth -",70,103,WS_VISIBLE);
Buttons[i++] = CreatePushButton("CreateWindowA",CHECKBUTWIDTH,CREATEWINDOW_ID,WS_VISIBLE);
Buttons[i++] = CreatePushButton("CreateWindowExA",CHECKBUTWIDTH,CREATEWINDOWEX_ID,WS_VISIBLE);
Buttons[i++] = CreatePushButton("CreateWindowExW",CHECKBUTWIDTH,CREATEWINDOWW_ID,WS_VISIBLE);
/* ---- The 1st page of buttons ---- */
xButPos = 0;
yButPos = 10;
for (i = 0 ; i < 14 ; i++)
MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);
xButPos += CHECKBUTWIDTH + 10;
yButPos = 10;
for (; i < 26 ; i++)
MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);
Back1But = CreatePushButton("Back - destroys ComboBox",CHECKBUTWIDTH,INITPAGE_ID,0);
NextBut = CreatePushButton("Next",CHECKBUTWIDTH,SECONDPAGE_ID,0);
/* ---- The 2nd page of buttons ------*/
xButPos = 0;
yButPos = 10;
for (; i<40; i++)
MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);
xButPos += CHECKBUTWIDTH + 10;
yButPos = 10;
for (; i < MAXMESSAGEBUTTONS ; i++)
MessageButtons[i] = CreatePushButton(Msg[i].Text,CHECKBUTWIDTH,600+i,0);
Back2But = CreatePushButton("Back",CHECKBUTWIDTH,BACKFIRSTPAGE_ID,0);
break;
case WM_COMMAND:
if (LOWORD(wParam) >= 600)
{
Msg[LOWORD(wParam)-600].Handler(hwndEdit,
Msg[LOWORD(wParam)-600].MsgCode,
Msg[LOWORD(wParam)-600].wParam,
Msg[LOWORD(wParam)-600].lParam);
break;
}
switch(LOWORD(wParam)){
case 100:
ControlWidth += 10;
break;
case 101:
ControlWidth -= 10;
break;
case 102:
ControlHeight += 10;
break;
case 103:
ControlHeight -= 10;
break;
case INITPAGE_ID:
BackToInitialPage();
break;
case SECONDPAGE_ID:
ForwardToSecondPage();
break;
case BACKFIRSTPAGE_ID:
BackToFirstPage();
break;
case CREATEWINDOW_ID:
ReadNHide();
srect.top = CONTROLPOSY + ControlHeight;
hwndEdit = CreateWindow(CONTROLCLASS,
NULL,
ComboStyle | WS_CHILD | WS_VISIBLE,
CONTROLPOSX,
CONTROLPOSY,
ControlWidth,
ControlHeight,
g_hwnd,
NULL,
g_hInst,
NULL);
break;
case CREATEWINDOWEX_ID:
ReadNHide();
srect.top = CONTROLPOSY + ControlHeight;
hwndEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
CONTROLCLASS,
NULL,
ComboStyle | WS_CHILD | WS_VISIBLE ,
CONTROLPOSX,
CONTROLPOSY,
ControlWidth,
ControlHeight,
g_hwnd,
NULL,
g_hInst,
NULL);
break;
case CREATEWINDOWW_ID:
ReadNHide();
srect.top = CONTROLPOSY + ControlHeight;
hwndEdit = CreateWindowExW(WS_EX_CLIENTEDGE,
CONTROLCLASSW,
NULL,
ComboStyle | WS_CHILD | WS_VISIBLE ,
CONTROLPOSX,
CONTROLPOSY,
ControlWidth,
ControlHeight,
g_hwnd,
NULL,
g_hInst,
NULL);
break;
}
if (lParam == (LPARAM)hwndEdit)
switch(HIWORD(wParam))
{
case CBN_DROPDOWN:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_DROPDOWN notification",NOTIFYX,NOTIFYY,25,srect);
break;
case CBN_CLOSEUP:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_CLOSEUP notification",NOTIFYX,NOTIFYY,24,srect);
break;
case CBN_DBLCLK:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_DBLCLK notification",NOTIFYX,NOTIFYY,23,srect);
break;
case CBN_EDITCHANGE:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_EDITCHANGE notification",NOTIFYX,NOTIFYY,27,srect);
break;
case CBN_ERRSPACE:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_ERRSPACE notification",NOTIFYX,NOTIFYY,25,srect);
break;
case CBN_KILLFOCUS:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_KILLFOCUS notification",NOTIFYX,NOTIFYY,26,srect);
break;
case CBN_EDITUPDATE:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_EDITUPDATE notification",NOTIFYX,NOTIFYY,27,srect);
break;
case CBN_SELCHANGE:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_SELCHANGE notification",NOTIFYX,NOTIFYY,26,srect);
break;
case CBN_SELENDCANCEL:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_SELENDCANCEL notification",NOTIFYX,NOTIFYY,29,srect);
break;
case CBN_SETFOCUS:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_SETFOCUS notification",NOTIFYX,NOTIFYY,25,srect);
break;
case CBN_SELENDOK:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("CBN_SELENDOK notification",NOTIFYX,NOTIFYY,25,srect);
break;
}
return DefWindowProc ( hwnd, msg, wParam, lParam );
case WM_MEASUREITEM:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("WM_MEASUREITEM called",NOTIFYX,NOTIFYY,21,srect);
break;
case WM_COMPAREITEM:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("WM_COMPAREITEM called",NOTIFYX,NOTIFYY,21,srect);
break;
case WM_DRAWITEM:
ScrollWindow (hwnd, 0, SCROLLAMOUNT, &srect, &srect);
PrintTextXY("WM_DRAWITEM called",NOTIFYX,NOTIFYY,18,srect);
break;
case WM_SIZE :
return 0;
case WM_CLOSE:
DestroyWindow (g_hwnd);
return 0;
case WM_QUERYENDSESSION:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc ( hwnd, msg, wParam, lParam );
}
HWND
RegisterAndCreateWindow (HINSTANCE hInst,
const char* className,
const char* title)
{
WNDCLASSEX wc;
g_hInst = hInst;
wc.cbSize = sizeof (WNDCLASSEX);
wc.lpfnWndProc = WndProc; /* window procedure */
wc.hInstance = hInst; /* owner of the class */
wc.lpszClassName = className;
wc.hCursor = LoadCursor ( 0, (LPCTSTR)IDC_ARROW );
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIcon = 0;
wc.hIconSm = 0;
wc.lpszMenuName = 0;
if ( !RegisterClassEx ( &wc ) )
return NULL;
hwnd = CreateWindowEx (
0, /* dwStyleEx */
className, /* class name */
title, /* window title */
WS_OVERLAPPEDWINDOW, /* dwStyle */
1, /* x */
1, /* y */
WINDOWWIDTH, /* width */
WINDOWHEIGHT, /* height */
NULL, /* hwndParent */
NULL, /* hMenu */
hInst,
0
);
if (!hwnd) return NULL;
ShowWindow (hwnd, SW_SHOW);
UpdateWindow (hwnd);
return hwnd;
}
int
WINAPI
WinMain ( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdParam, int cmdShow )
{
char className [] = "ComboBox Control Test";
MSG msg;
RegisterAndCreateWindow ( hInst, className, "ComboBox Control Test" );
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return (int)msg.wParam;
}

View File

@@ -1,22 +0,0 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = combotst
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = \
combotst.o \
utils.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,33 +0,0 @@
/*
* Edit Control Test for ReactOS, quick n' dirty. There you go
* This source code is in the PUBLIC DOMAIN and has NO WARRANTY.
* by Waldo Alvarez Ca<43>izares <wac at ghost.matcom.uh.cu>, June 22, 2003.
*/
#include <windows.h>
static const char hexvals[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
VOID htoa (unsigned int val, char *buf)
{
int i;
buf += 7;
for (i=0;i<8;i++)
{
*buf-- = hexvals[val & 0x0000000F];
val = val >> 4;
}
}
VOID strcpy_(char *dst, const char *src)
{
const char* p = src;
while ((*dst++ = *p++)) {}
}
VOID strcpyw_(wchar_t* dst,wchar_t* src)
{
const wchar_t* p = src;
while ((*dst++ = *p++)) {}
}

View File

@@ -1,9 +0,0 @@
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
VOID htoa (unsigned int, char *);
VOID strcpy_(char *, const char *);
VOID strcpyw_(wchar_t*,wchar_t*);
#ifdef __cplusplus
}
#endif

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,19 +0,0 @@
# $Id: Makefile,v 1.7 2002/06/02 19:24:57 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = consume
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,31 +0,0 @@
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define SIZE (65*1024*1024)
ULONG x[SIZE / 4096];
int main()
{
int i;
PUCHAR BaseAddress;
BaseAddress = VirtualAlloc(NULL,
SIZE,
MEM_COMMIT,
PAGE_READONLY);
if (BaseAddress == NULL)
{
printf("Failed to allocate virtual memory");
return(1);
}
printf("BaseAddress %p\n", BaseAddress);
for (i = 0; i < (SIZE / 4096); i++)
{
printf("%.8x ", i*4096);
x[i] = BaseAddress[i*4096];
}
return(0);
}

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,19 +0,0 @@
# $Id: Makefile,v 1.1 2002/12/27 23:54:33 gvg Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = copymove
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,302 +0,0 @@
/*
* CopyFile, MoveFile and related routines test
*/
#include <ctype.h>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
static TCHAR
FindOtherDrive()
{
DWORD drives = GetLogicalDrives();
BOOL found = FALSE;
TCHAR drive;
TCHAR rootdir[] = _T( "?:\\" );
TCHAR currentdir[MAX_PATH + 1];
if (0 != GetCurrentDirectory(MAX_PATH + 1, currentdir)) {
for (drive = _T('A'); ! found && drive <= _T('Z'); drive++) {
if (0 != (drives & (1 << (drive - _T('A'))))&&
drive != _totupper(currentdir[0])) {
rootdir[0] = drive;
found = (DRIVE_FIXED == GetDriveType(rootdir));
}
}
}
return found ? drive - 1 : _T( ' ' );
}
static void
DeleteTestFile(LPCTSTR filename)
{
SetFileAttributes(filename, FILE_ATTRIBUTE_NORMAL);
DeleteFile(filename);
}
static void
CreateTestFile(LPCTSTR filename, DWORD attributes)
{
HANDLE file;
char buffer[4096];
DWORD wrote;
int c;
DeleteTestFile(filename);
file = CreateFile(filename,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
0,
0);
if (INVALID_HANDLE_VALUE == file) {
fprintf(stderr, "CreateFile failed with code %d\n", GetLastError());
exit(1);
}
for(c = 0; c < sizeof(buffer); c++) {
buffer[c] = (char) c;
}
if (! WriteFile(file, buffer, sizeof(buffer), &wrote, NULL)) {
fprintf(stderr, "WriteFile failed with code %d\n", GetLastError());
exit(1);
}
CloseHandle(file);
if (! SetFileAttributes(filename, attributes)) {
fprintf(stderr, "SetFileAttributes failed with code %d\n", GetLastError());
exit(1);
}
}
static void
DeleteTestDir(LPCTSTR dirname)
{
RemoveDirectory(dirname);
}
static void
CreateTestDir(LPCTSTR dirname)
{
if (! CreateDirectory(dirname, NULL)) {
fprintf(stderr, "CreateDirectory failed with code %d\n", GetLastError());
exit(1);
}
}
static void
CheckTestFile(LPCTSTR filename, DWORD attributes)
{
HANDLE file;
char buffer[4096];
DWORD read;
int c;
DWORD diskattr;
file = CreateFile(filename,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
0,
0);
if (INVALID_HANDLE_VALUE == file) {
fprintf(stderr, "CreateFile failed with code %d\n", GetLastError());
exit(1);
}
if (! ReadFile(file, buffer, sizeof(buffer), &read, NULL)) {
fprintf(stderr, "ReadFile failed with code %d\n", GetLastError());
exit(1);
}
if (read != sizeof(buffer)) {
fprintf(stderr, "Trying to read %d bytes but got %d bytes\n", sizeof(buffer), read);
exit(1);
}
for(c = 0; c < sizeof(buffer); c++) {
if (buffer[c] != (char) c) {
fprintf(stderr, "File contents changed at position %d\n", c);
exit(1);
}
}
CloseHandle(file);
diskattr = GetFileAttributes(filename);
if (INVALID_FILE_ATTRIBUTES == diskattr) {
fprintf(stderr, "GetFileAttributes failed with code %d\n", GetLastError());
exit(1);
}
if (diskattr != attributes) {
fprintf(stderr, "Attribute mismatch, expected 0x%08x found 0x%08x\n", attributes, diskattr);
exit(1);
}
}
int
main(int argc, char *argv[])
{
TCHAR otherdrive;
TCHAR otherfile[ ] = _T("?:\\other.dat");
otherdrive = FindOtherDrive();
printf("Testing simple move\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end.dat"));
if (! MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end.dat"));
printf("Testing move of non-existing file\n");
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
if (MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_FILE_NOT_FOUND != GetLastError()) {
fprintf(stderr, "MoveFile failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("end.dat"));
/* Not correctly implemented in ros, destination file is kept open after this */
#if 0
printf("Testing move to existing file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
if (MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_ALREADY_EXISTS != GetLastError()) {
fprintf(stderr, "MoveFile failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
#endif
/* Not implemented yet in ros */
#if 0
printf("Testing directory move\n");
CreateTestDir(_T("begin"));
CreateTestFile(_T("begin\\file.dat"), FILE_ATTRIBUTE_NORMAL);
DeleteTestDir(_T("end"));
if (! MoveFile(_T("begin"), _T("end"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end\\file.dat"), FILE_ATTRIBUTE_NORMAL);
DeleteTestFile(_T("end\\file.dat"));
DeleteTestDir(_T("end"));
#endif
printf("Testing file move to different directory\n");
CreateTestFile(_T("file.dat"), FILE_ATTRIBUTE_NORMAL);
CreateTestDir(_T("end"));
if (! MoveFile(_T("file.dat"), _T("end\\file.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end\\file.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end\\file.dat"));
DeleteTestDir(_T("end"));
printf("Testing move of read-only file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_READONLY);
DeleteTestFile(_T("end.dat"));
if (! MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_READONLY);
DeleteTestFile(_T("end.dat"));
printf("Testing move to different drive\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (! MoveFile(_T("begin.dat"), otherfile)) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(otherfile, FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
printf("Testing move/overwrite of existing file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
if (! MoveFileEx(_T("begin.dat"), _T("end.dat"), MOVEFILE_REPLACE_EXISTING)) {
fprintf(stderr, "MoveFileEx failed with code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
/* Not (correctly) implemented in ros yet */
#if 0
printf("Testing move/overwrite of existing readonly file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_READONLY);
if (MoveFileEx(_T("begin.dat"), _T("end.dat"), MOVEFILE_REPLACE_EXISTING)) {
fprintf(stderr, "MoveFileEx succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_ALREADY_EXISTS != GetLastError() &&
ERROR_ACCESS_DENIED != GetLastError()) {
fprintf(stderr, "MoveFileEx failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
#endif
/* Not implemented in ros yet */
#if 0
printf("Testing move to different drive without COPY_ALLOWED\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (MoveFileEx(_T("begin.dat"), otherfile, 0)) {
fprintf(stderr, "MoveFileEx succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_NOT_SAME_DEVICE != GetLastError()) {
fprintf(stderr, "MoveFileEx failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
#endif
printf("Testing move to different drive with COPY_ALLOWED\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (! MoveFileEx(_T("begin.dat"), otherfile, MOVEFILE_COPY_ALLOWED)) {
fprintf(stderr, "MoveFileEx failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(otherfile, FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
printf("All tests successfully completed\n");
return 0;
}

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,21 +0,0 @@
# $Id: Makefile,v 1.6 2002/06/02 19:24:58 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = count
TARGET_SDKLIBS = kernel32.a user32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,15 +0,0 @@
/* $Id: count.c,v 1.1 2001/03/26 21:30:20 ea Exp $
*
*/
#include <stdlib.h>
int n = 0;
int
main (int argc, char * argv [])
{
while (1) printf ("%d ", n ++ );
return (0);
}
/* EOF */

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,196 +0,0 @@
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define CELL_SIZE 10
static RGBQUAD Colors[] =
{
{ 0x00, 0x00, 0x00, 0x00 }, // black
{ 0x00, 0x00, 0x80, 0x00 }, // red
{ 0x00, 0x80, 0x00, 0x00 }, // green
{ 0x00, 0x80, 0x80, 0x00 }, // brown
{ 0x80, 0x00, 0x00, 0x00 }, // blue
{ 0x80, 0x00, 0x80, 0x00 }, // magenta
{ 0x80, 0x80, 0x00, 0x00 }, // cyan
{ 0x80, 0x80, 0x80, 0x00 }, // dark gray
{ 0xc0, 0xc0, 0xc0, 0x00 }, // light gray
{ 0x00, 0x00, 0xFF, 0x00 }, // bright red
{ 0x00, 0xFF, 0x00, 0x00 }, // bright green
{ 0x00, 0xFF, 0xFF, 0x00 }, // bright yellow
{ 0xFF, 0x00, 0x00, 0x00 }, // bright blue
{ 0xFF, 0x00, 0xFF, 0x00 }, // bright magenta
{ 0xFF, 0xFF, 0x00, 0x00 }, // bright cyan
{ 0xFF, 0xFF, 0xFF, 0x00 } // bright white
};
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
wc.lpszClassName = "DibTestClass";
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow("DibTestClass",
"DIB Test",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
25 * CELL_SIZE + 5,
25 * CELL_SIZE + 20,
NULL,
NULL,
hInstance,
NULL);
if (hWnd == NULL)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
static void PaintCells(HDC WindowDC, WORD BitCount1, WORD BitCount2,
int XDest, int YDest)
{
HBRUSH Brush;
RECT Rect;
UINT row, col;
BITMAPINFO *BitmapInfo;
HBITMAP DIB1, DIB2;
HDC DC1, DC2;
BitmapInfo = malloc(sizeof(BITMAPINFO) + 15 * sizeof(RGBQUAD));
BitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
BitmapInfo->bmiHeader.biWidth = 4 * CELL_SIZE + 9;
BitmapInfo->bmiHeader.biHeight = -(4 * CELL_SIZE + 9); // it's top down (since BI_RGB is used, the sign is operative of direction)
BitmapInfo->bmiHeader.biPlanes = 1;
BitmapInfo->bmiHeader.biBitCount = BitCount1;
BitmapInfo->bmiHeader.biCompression = BI_RGB;
BitmapInfo->bmiHeader.biSizeImage = 0;
BitmapInfo->bmiHeader.biXPelsPerMeter = 0;
BitmapInfo->bmiHeader.biYPelsPerMeter = 0;
BitmapInfo->bmiHeader.biClrUsed = 16;
BitmapInfo->bmiHeader.biClrImportant = 16;
for (col = 0; col < 16; col++) {
BitmapInfo->bmiColors[col] = Colors[col];
}
DIB1 = CreateDIBSection(NULL, BitmapInfo, DIB_RGB_COLORS, NULL, NULL, 0);
DC1 = CreateCompatibleDC(NULL);
SelectObject(DC1, DIB1);
BitmapInfo->bmiHeader.biBitCount = BitCount2;
DIB2 = CreateDIBSection(NULL, BitmapInfo, DIB_RGB_COLORS, NULL, NULL, 0);
DC2 = CreateCompatibleDC(NULL);
SelectObject(DC2, DIB2);
free(BitmapInfo);
/* Now paint on the first bitmap */
for (row = 0; row < 4; row++)
{
for (col = 0; col < 4; col++)
{
Brush = CreateSolidBrush(RGB(Colors[4 * row + col].rgbRed,
Colors[4 * row + col].rgbGreen,
Colors[4 * row + col].rgbBlue));
Rect.left = CELL_SIZE * col + 5;
Rect.top = CELL_SIZE * row + 5;
Rect.right = Rect.left + CELL_SIZE;
Rect.bottom = Rect.top + CELL_SIZE;
FillRect(DC1, &Rect, Brush);
DeleteObject(Brush);
}
}
/* Copy the first bitmap to the second */
BitBlt(DC2, 4, 4, 4 * CELL_SIZE, 4 * CELL_SIZE, DC1, 5, 5, SRCCOPY);
/* Show results on screen */
BitBlt(WindowDC, XDest, YDest, 4 * CELL_SIZE, 4 * CELL_SIZE, DC2, 4, 4, SRCCOPY);
}
LRESULT CALLBACK MainWndProc(HWND Wnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC WindowDC;
switch(msg)
{
case WM_PAINT:
WindowDC = BeginPaint(Wnd, &ps);
PaintCells(WindowDC, 4, 4, 0, 0);
PaintCells(WindowDC, 4, 8, 5 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 16, 10 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 24, 15 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 32, 20 * CELL_SIZE, 0);
PaintCells(WindowDC, 8, 4, 0, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 8, 5 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 16, 10 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 24, 15 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 32, 20 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 16, 4, 0, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 8, 5 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 16, 10 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 24, 15 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 32, 20 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 24, 4, 0, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 8, 5 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 16, 10 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 24, 15 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 32, 20 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 32, 4, 0, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 8, 5 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 16, 10 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 24, 15 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 32, 20 * CELL_SIZE, 20 * CELL_SIZE);
EndPaint(Wnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(Wnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -1,21 +0,0 @@
# $Id: makefile,v 1.2 2003/03/04 10:09:00 gvg Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = dibtest
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,6 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,51 +0,0 @@
#include <stdio.h>
#include <ntddk.h>
int main()
{
int i;
printf("TickCountLow: %x\n",
SharedUserData->TickCountLow);
printf("Drives: ");
for (i = 0; i < 26; i++)
{
printf("%c", (SharedUserData->DosDeviceMap & (1 << i))?'1':'0');
}
printf("\n");
for (i = 0; i < 26; i++)
{
if (SharedUserData->DosDeviceMap & (1 << i))
{
printf("%c: ", 'A'+i);
switch(SharedUserData->DosDeviceDriveType[i])
{
case DOSDEVICE_DRIVE_UNKNOWN:
printf("Unknown\n");
break;
case DOSDEVICE_DRIVE_CALCULATE:
printf("No root\n");
break;
case DOSDEVICE_DRIVE_REMOVABLE:
printf("Removable\n");
break;
case DOSDEVICE_DRIVE_FIXED:
printf("Fixed\n");
break;
case DOSDEVICE_DRIVE_REMOTE:
printf("Remote\n");
break;
case DOSDEVICE_DRIVE_CDROM:
printf("CD-ROM\n");
break;
case DOSDEVICE_DRIVE_RAMDISK:
printf("Ram disk\n");
break;
default:
printf("undefined type\n");
break;
}
}
}
printf("\n\n");
}

View File

@@ -1,20 +0,0 @@
# $Id: makefile,v 1.6 2002/06/02 19:24:58 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = dump_shared_data
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

Some files were not shown because too many files have changed in this diff Show More