- Added more missed mouse injection flag and extra data being passed in and from set cursor position. Wine mouse low level hook msg tests now see it and check the validity of the hook message.
svn path=/trunk/; revision=51290
- Always write line states configuration values in one step
- Fixes the problem when old line state settings were not present
- Advantage is that it is faster and sndvol32 now works in ReactOS
svn path=/trunk/; revision=51286
- Polish translation by Adam "Saibman" Stachowicz
[SNDREC32]
- Polish translation by Adam "Saibman" Stachowicz
[SNDVOL32]
- Polish translation update by me
[TRANSLATION]
- Polish translation fixes (spelling, typos, grammar) and updates on multiple modules by Adam "Saibman" Stachowicz, few small corrections by me.
See issue #6087 for more details.
svn path=/trunk/; revision=51285
- Fix TrackMouseEvent! Keyboard and Mouse pass all the right flags. Update to accelerator code. Fixed recursion in global hooks. Hack-implement GetMouseMovePointsEx due to slack time and boredom, it passes the input tests but does nothing. Pass all the test_TrackMouseEvent!!! test_accelerators and test_menu_messages work too, so far no hangs.
svn path=/trunk/; revision=51283
- Fix incorrect prototypes and partially implement fast unsafe versions of activation context activation/deactivation, however disable them for now, until the new loader is in place.
- Fix their usage in the new loader code, which by mistake (which got copypasted into three other places) was passing a totally empty activation context to the activate function.
svn path=/trunk/; revision=51281
ExInitializePushLock takes a PEX_PUSH_LOCK as parameter, do it the same in the inline version instead of casting to PULONG_PTR everywhere
svn path=/trunk/; revision=51278
- Zero-initialize base address in BasepLoadLibraryAsDatafile. Should fix 2nd stage problems.
- Add a trace debugprint, silented by default.
See issue #6092 for more details.
svn path=/trunk/; revision=51277
- co_IntSendMessageWithCallBack: Insert the message into the messagequeue before attempting to wake the queue. Probably fixes bug 5580.
- Remove the use of MSQ_SENTNOWAIT that was used to determine if messagequeues needed dereferencing. Instead use the SenderQueue member of the message.
- Do not close the NewMessagesHandle member of the messagequeue in IntDereferenceMessageQueue.
The last reference on a messagequeue could be released by a thread belonging to a process other than the on that created the handle.
Also the creating process could already be long gone. Instead close this handle in MsqDestroyMessageQueue which is in the thread/process that created the handle. Problem noticed by smiley.
- Revert change done in 51254. James you are indeed correct.
Testing shows that the WM_PARENTNOTIFY message is not sent when the program is exiting.
svn path=/trunk/; revision=51275
- Implement retrieving current volume level and mute state and set the dialog controls on startup
- Remove last line separator from GUI
- Implement updating slider / switch control when another application modifies volume settings
- Implement writing current selected lines settings into registry when the preference dialog is closed
- Implement helper functions which receive / set volume level
- Sndvol32 is now fully functional and has been tested in Windows XP SP3
- TODO: implement support for setting volume balance (left - right slider)
- TODO: Resources have not yet been commited
svn path=/trunk/; revision=51274
- 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