- Finish the ldr.c rewrite. Properly implement LoadLibraryExW (which contained some good code pieces added by Alex). Implement BasepLoadLibraryAsDatafile, however it doesn't support redirection yet and a call to load alternate resource module is commented out (it's totally absent in the existing ntdll/ldr API now).
- Mark GetDllLoadPath as deprecated, should be removed when SearchPathW is rewritten (or at least, reviewed). The new function to use is BasepGetDllPath.
svn path=/trunk/; revision=51272
- Implement loading of resources and parsing the dialog template in memory
- Store the created windows in an array
- Implement destroying of controls when mixer is changed / line selection is altered
- Implement generating layout for each new line
- Implement setting line name
- Resources have not yet been commited
- Sndvol32 is not yet functional
svn path=/trunk/; revision=51271
- Rewrite most of kernel32 module loading APIs (except for LoadLibraryExW, for testing purposes it's gonna be committed in a separate commit). Rewritten parts include:
* Better definition of LOADPARMS32 structure for LoadModule, and rewritten LoadModule which is now a well structured function with proper parameters validation, proper work algorithm and setting proper last error values in failure cases. Optimization of allocating MAX_PATH buffer on stack instead of in the heap is saved from the old version of the function.
* LoadLibraryA, added a path-hack (present at least up to Windows 2003) for twain_32.dll loading (not that important, but still a compatibility issue).
* Make GetProcAddress() use BasepMapModuleHandle for mapping the passed-in handle (including properly handling NULL module handle which was incorrectly handled by the old implementation), and check for a special failure case when LdrGetProcedureAddress returns pointer to the image base address.
svn path=/trunk/; revision=51270
- Pass all the wine test_capture_1/2/3/4.
- Fix the menu tracking pop up hang issue by looking for deceased windows that pass on while in the start of tracking. This could be a fix for other wine tests.
- ReactOS is not Linux and wine is not enough!
svn path=/trunk/; revision=51265
- Implement LsaLookupNames2 in advapi32.dll.
- Implement LsarLookupNames3 in lsasrv.dll as a mock-up which returns a hard-coded user account (Administrator).
This fixes several wine tests.
svn path=/trunk/; revision=51257
- co_MsqDispatchOneSentMessage: After calling the windows procedure check if the message was a callback. If so place the message into the calling MessageQueue. Also check if the current MessageQueue is the calling MessageQueue in which case dont call the Windows procedure but call the callback routine. SendMessageCallback is now properly implemented.
- Remove the use of MSQ_SENTNOWAIT and instead use the SenderQueue and CallBackSenderQueue members to determine if the MessageQueues need to be dereferenced.
- Modify co_MsqSendMessage to accept more parameters so that it can handle Notification, Callback and Internal messages. These changes make this function more complex but removes duplicate code in messages.c and move the handling for all queued messages in one location.
- co_IntSendMessageWithCallBack: If the callback is for the same Message Queue, call it vice queuing it.
Insert the message into the MessageQueue before waking the thread to handle the message. Should fix bug 5580.
svn path=/trunk/; revision=51255
- Minor cleanup, better flag names (thanks to ProcessHacker team for the good names and values).
- Return error in failure path of BasepGetModuleHandleExW.
- Optimize GetModuleHandleExA so that it calls the internal routine directly, without going through GetModuleHandleExW first and thus validating parameters second time.
svn path=/trunk/; revision=51253
- Set Control variable to null, which prevents that mixer controls being assigned to another line when the current line does not have any controls. Bug was highlighted when opening the property window. In that case sndvol32 frees the previous setting, so all mixer lines are also getting freed including their controls, which caused a double free in the case the line did not have any controls assigned.
svn path=/trunk/; revision=51252
- Working on wine win test_capture_4, pass all the tests in test_capture_4_proc but still waiting forever in MenuTrackMenu:WaitMessage!
svn path=/trunk/; revision=51248
- Implement BasepMapModuleHandle and use it in GetModuleFileNameW. Later, it'll be used by other module and loader related functions in kernel32.
- Wrap a call to RtlImageNtHeader into SEH, because winetest and for some reason FF installer call it with incorrect handle and expect it to not crash (Windows also has SEH, but inside RtlImageNtHeader).
- Fix null-termination problems in GetModuleFileNameA, and incorrect calculation of characters returned in GetModuleFileNameW.
- Various smaller improvements to the rewritten code (missing parenthesis, better variable names, use pretty LDR_ macros from http://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx ).
- Thanks for your feedback!
See issue #6079 for more details.
svn path=/trunk/; revision=51246
Fix typos in lsa.idl (LsarLookupNames2, LsarLookupNames3 and LsarLookupNames4) and fix resulting errors in lsasrv.dll.
svn path=/trunk/; revision=51240
- Rewrite large part of ldr.c code, including FreeLibrary, FreeLibraryAndExitThread, GetModuleFileNameA/W, GetModuleHandleA/W, ExA/W. Now they properly validate parameters, common code for getting module handles is factored into a standalone function which is reused for all 4 APIs instead of duplicating almost the same code four times. GetModuleFileNameA became a typical A->W wrapper around GetModuleFileNameW so duplication is also removed there.
- Getting module handle also became a correct implementation because now it takes process's dll path into account instead of always assuming a "default" one (which is incompatible with a new ntdll loader).
- Fixed a typo in BasepGetProcessPath which led to incorrect value being returned. Downgrade two debugprints.
svn path=/trunk/; revision=51238
- Fix the return checks for co_MsqWaitForNewMessages, now the wait_idle test no longer randomly crash, also tested the testkbd check from bug 3212. Setup co_MsqWaitForNewMessages to act like get message, checking QS bits and dispatching send messages if queued.
- Added desktop hit test data point, now the new track mouse timer code works. Not yet committed.
svn path=/trunk/; revision=51237
- Add RTL_PERTHREAD_CURDIR structure definition.
- Fix RTL_DRIVE_LETTER_CURDIR type vs. structure definition typo (adding more underscores is a truly universal fix!).
svn path=/trunk/; revision=51235
- Fix warnings for both msc and rbuild
- These fixes will be applied to the FullFat source too, so I've not bothered with a local ros.diff
svn path=/trunk/; revision=51234
- Update FullFat to the latest SVN code on James' recommendation.
- This release has many advantages over the previous, including full UTF-8 and UTF-16 support and the ability to modify attributes and timestamps. All of which are important for ros.
- It currently has a few warnings (in both gcc and msc), so I've had to turn allow warnings on.
svn path=/trunk/; revision=51229
- Update FullFat to the latest stable release (1.0.5)
- I'm awaiting a reply from James as to when 1.1.0 will be released as it have some nice improvements.
svn path=/trunk/; revision=51227
- Simplify co_IntWaitMessage
- In co_IntGetPeekMessage, call co_MsqWaitForNewMessages instead of co_IntWaitMessage when we need to wait for a new message. co_IntWaitMessage calls co_IntPeekMessage again without removing messages. The problem is that processing some messages produce other messages or hooks even though the message must not be removed. As a result some messages like WM_NCHITTEST were received twice by the application
- Should fix bug 3232
svn path=/trunk/; revision=51224
- Fix a typo which led to incorrect logic of TLS allocation. This repairs those installers broken by r51051.
See issue #6009 for more details.
svn path=/trunk/; revision=51223
* Fix bug in RegQueryValueExA, which causes buffer overflow
* Fixes systeminfo in ReactOS
See issue #6050 for more details.
svn path=/trunk/; revision=51222
Don't translate System Type
Don't mix TCHARs and chars
Fix Time Zone for not English systems
Use proper registry key for Install Date
Format dates using system settings
Format numbers
svn path=/trunk/; revision=51221
- Fix wine post message test, corrected the peek message window selection.
- Add a check for dead windows and new message queue flags.
- Other miscellaneous fix ups.
svn path=/trunk/; revision=51216
Add System Manufacturer and System Model to resources
Convert TABs to spaces in resources
Sort strings in resources a bit
svn path=/trunk/; revision=51215