The British language wasn't included here, so I have corrected some texts that were in American English.
Also fixed one string that uses British English language.
CORE-17741
This function (which should belong to the user32 helpers) depends on the
internal format of the USER handles table, that is ReactOS-specific. Its
pointer value is stored in the win32k/user32 shared info section, and
thus cannot be converted to user-space and stored back into that section.
Therefore it needs to be retrieved and manually converted when the function
is called.
Co-authored-by: Gabriel Aguiar <fgygh5804@gmail.com>
Reviewed-by: Joachim Henze <Joachim.Henze@reactos.org>
Reviewed-by: Jose Carlos Jesus <zecarlos1957@hotmail.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Signed-off-by: Gabriel Aguiar <fgsoftwarestudio@gmail.com>
[NETID]
- Add and improve Russian translation. Addendum to b9426a3f and c276681e.
[MACHINE.INF]
- Fix probably a machine translation. Addendum to 2d8274bd.
- Standardize some device names.
- Also add missing Ukrainian translation.
- usetup: New bootsector page.
- shell32: Copy and paste, and moving elements.
Also, some strings related to the shutdown and logoff.
- Minor Spanish grammar fix - some female words and minor latin american typos.
- First revision of the .inf, that includes the translation of the Services,
audio, processors and other drivers and minor things.
Fix and improve DirectSoundEnumerateW and DirectSoundCaptureEnumerateW implementations in our dsound.
Use the Windows-compatible way to get the device name and pass it to callback.
- Don't use Wine-specific DSDRIVERDESC structure and DRV_QUERYDSOUNDDESC message, declared in sdk/include/dxsdk/dsdriver.h, whose are obsolete even in Wine for now.
- Instead, declare a new WAVEINCAPSW and WAVEOUTCAPSW structures (for input and output appropriately), call waveInGetDevCapsW and WaveOutGetDevCapsW for enumerated device ID and store retieved device name in these structures.
- Then pass them to a lpDSEnumCallbackW as well, without Ansi to Unicode conversion (since the retrieved string is Unicode already).
- Do this both for capture and playback functions.
- Addtionally, add MMSYSERR_BADDEVICEID status code to mmErr macro, because it also might be returned by waveIn/OutGetDevCapsW as well, in case of failure.
- And mark our dosund as forked, because it definitely will not be synced at least until we'll retarget to Vista or newer. Add an appropriate comment.
This fixes incorrect detection of DirectSound audio input and output devices, so now a lot of apps are able to detect it correctly, and can play the sound properly (e.g. AIMP 2.61 and IcyTower from RAPPS).
CORE-7535 CORE-10907 CORE-15324 CORE-15533 CORE-16340
Only show the main dialog pane on taskbar when executing a Cancel dialog.
Assign previous window handle as a parent when creating Cancel dialog box.
CORE-17702
By taking alternative code-paths in WdmAud and bypassing Sysaudio.
This is my 2nd attempt to commit that.
Using USE_MMIXER_LIB relies on those 2 previous patches:
0.4.15-dev-765-g b8e936a57b CORE17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca CORE17276 winmm:mixer-testbot-crash-fix
Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
same improvement for "ScummVM 2.0 with Monkey Island 2"
The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.
Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. I will resolve that as WontFix now.
- Improve User32InitializeImmEntryTable function and related.
- Complete win32ss/user/user32/include/immtable.h table.
- Delete a hack in user32.DllMain and apply my magical tricks. This will fix some access violations in IMM32.
- Add some stubs into IMM32.
CORE-11700
We don't need Wine-specific functions for Japanese input.
- Delete __wine_get_ui_window, __wine_register_window and __wine_unregister_window functions.
- Modify imm32.spec.
CORE-11700
- Add Imm32WideFromAnsi, Imm32AnsiFromWide and Imm32IsCrossThreadAccess helper functions.
- Simplify the IMM32 code by using the helper functions.
CORE-11700
We found out what we wanted to find out:
the remaining TODOs for the Python script.
So we can silence the DPRINTs again for the time being
to reduce spam from 3rd party dlls.
Paying tribute to Mark Jansen ;)
* Fix initialization of _commode. In msvcrt it is allocated from .bss, i.e. initialized with 0.
* _fileinfo is initialized with -1
* _aexit_rtn is a pointer, not a function
* Fix _sys_nerr
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at 3a3ef631d1
The driver is written by Lee Jae-Hong, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/
FS Recognizer code is left to keep the FS support as an
installable driver.
CORE-11040
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at e308102f4a
The driver is written by Mark W Piper, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/
FS Recognizer code is left to keep the FS support as an
installable driver.
CORE-11005
MSVC2010 compiler warning shellext\netshell\lang/de-DE.rc(118) : warning RC4206 : title string too long; truncated at 256
introduced by SVN r71434 == git 6ce8ee357a
The string was displayed properly and was not truncated even before this patch.
Improve performance of Start-Run Dialog Box Options
This will fix:
CORE-17351 'RunDlg fails calling URL without http'
and
CORE-16898 'RunCommand "iexplore" fails to open Wine IE'
Both regressed by 0.4.10-dev-419-g bfcbda227f
This is needed, because for some reason, otherwise RPCRT4 will assume that whatever value is in there is already the buffer and copy the string there.
Fixes exception in Chrome 48.
Suppose dwFlags == 1 | 4 (i.e. skipping the flag 2).
Then the while-loop would only run once, because at the second iteration
(after dwWhich >>= 1; has been executed once), dwWhich value == 2, but
dwWhich & 0x1 == 0, which makes the while-loop condition false.
Instead the loop should run, but the handling of the extension should be
skipped.
- Add as well the undocumented 0x40 dwFlags value from shlwapi!PathFileExistsDefExtW()
to the list.
- Fix a bug (also present in Win2k3) in PathResolveW() where, specifying
the PRF_DONTFINDLNK flag, would also erroneously exclude checking for
the .cmd extension as well (which was obviously NOT the original
intention, from the name of the flag and the documentation as well:
https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-pathresolve
).
Addendum to 3a822e4f.
This reverts
0.4.13-dev-284-g 74be88ac47
The logging is helpful to alert us when we should really
recalculate the base addresses for performance reasons.
Spams a bit sometimes, sure, but it's worth it!
MSI on 2k3sp2 hides empty CD-ROM, and hides CD-ROM with iso mounted.
MSI on 2k3sp2 hides VBox shares, both: writable and read-only-ones.
MSI on 2k3sp2 hides floppy drives with a floppy img mounted.
MSI on XPSP3 hides a mounted writable USB stick.
Thanks to the patches author Doug Lyons.
This patch supersedes
0.4.15-dev-2651-g 864e20b881 (CORE-14432)
and we are also better than Wines
0dd0d879a1
We decided to check a bit different than Wine currently does.
Wine checks for
if (GetVolumeInformationW(ptr, NULL, 0, NULL, 0, &flags, NULL, 0) && flags & FILE_READ_ONLY_VOLUME)
to exclude read-only-media while we (for now) check for
if (GetDriveTypeW(ptr) == DRIVE_CDROM)
For now this gives us the benefit of covering also CDROM drives, that do not have
a CD put into it.
That does not work properly for us with the Wine patch yet, but it does for Wine!
So this maybe points to some other bug in ros, maybe in our CDROM(FS)-drivers?
In the future we should also test this on other read-only-media in Windows e.g.
a read-only USB stick to decide whether we want to stick with our current solution
or whether we want to switch to Wines solution or whether we want to logically OR
both conditions!
Thanks to Doug Lyons for providing what *currently* does work best for us!
VBox https://reactos.org/testman/compare.php?ids=77537,77546 (no change)
KVM https://reactos.org/testman/compare.php?ids=77531,77541 (no change)
The About dialog banner will now show the correspondent Product version selected on install.
This will make it easier to tell which edition of ReactOS is installed.
CORE-17545
Addendum to commit d635ce0c.
dll/cpl/sysdm/general.c:156:25: warning: variable 'hCreditsDC' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (hDC == NULL)
^~~~~~~~~~~
dll/cpl/sysdm/general.c:216:25: note: uninitialized use occurs here
if (hCreditsDC != NULL) DeleteDC(hCreditsDC);
^~~~~~~~~~
and the same for hLogoDC:
dll/cpl/sysdm/general.c:215:25: note: uninitialized use occurs here
if (hLogoDC != NULL) DeleteDC(hLogoDC);
^~~~~~~
CORE-17545
Addendum to commit d635ce0c.
- Move the HDC variables initialization via function calls, out of
the variables declaration block.
- Fix warnings (and identical for base/system/userinit/livecd.c):
dll/cpl/sysdm/general.c:72:9: warning: variable 'hLogo' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dll/cpl/sysdm/general.c:130:9: note: uninitialized use occurs here
if (hLogo != NULL) DeleteObject(hLogo);
^~~~~
and similar for hMask too:
dll/cpl/sysdm/general.c:129:9: note: uninitialized use occurs here
if (hMask != NULL) DeleteObject(hMask);
^~~~~
Alias CHSTRING_WCHAR to unsigned short and use inline wrappers
to be able to use the thing with modern compilers
Put the GCC aliases into the public header.
Enable build with clang-cl
Do a sanity check onto the dialog box type before terminating it. As it stands now, a call of PostQuitMessage() is invoked even when the dialog box is modal. This is illegal due to the fact that the shutdown dialog box is initiated by the "Security" main window thus WlxDialogBoxParam.
A call to PostQuitMessage onto a modal dialog box leads to a undefined behaviour, as it'll not just terminate the thread but also eventually killing the Winlogon process whose the thread belongs to.
CORE-17535
Implement a sanity check helper which determines if the partition is a system drive or not based on the %SystemDrive% environment variable, preventing the user from nuking accidentally the partition with ReactOS system files installed. :P
NOTE: This code serves as a temporary measure to prevent accidental formatting of the system drive. In the future most of this code has to be totally rewritten (and stopping syncing with WINE altogether) as well as FMIFS library code so that we're on par in terms of compatibility with Windows.
- this prevents duplicating the code with umpnpmgr::PNP_GetDeviceList
- we can enumerate devices on other computers
This is part of the bugfix for CORE-17529
Auto-completion will be enabled when the user opens "Open" or "Save As" dialog of the common dialogs. CORE-9281
NOTE: The relative pathes, "..\" and "\" are not working. Those are bugs in CLSID_ACListISF.
Reduce failures on sanity check of auto-completion. CORE-9281
- Return E_FAIL rather than E_INVALIDARG in sanity check of CAutoComplete::Init (IAutoComplete::Init).
CORE-17506
- Convert some judgements against BIF_NEWDIALOGSTYLE to judgements against BIF_USENEWUI. Here BIF_USENEWUI == (BIF_NEWDIALOGSTYLE | BIF_EDITBOX).
- Remove WS_SIZEBOX window style from new UI dialog resource (IDD_BROWSE_FOR_FOLDER_NEW).
- Fix header layout.h for resizing without WS_SIZEBOX.
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
Implement IAutoComplete to realize input auto completion. CORE-9281, CORE-1419
- The main features of this PR are Auto-Suggest and Auto-Append.
- Auto-Suggest shows a list near the textbox (an EDIT control) when the user has typed partial pathname into the textbox.
- Auto-Append appends complement text into the textbox to complete the pathname with selected status.
- The list of AutoSuggest is a top-level window whose window class is "Auto-Suggest Dropdown". We call it "the drop-down window".
- The drop-down window contains three controls: a listview, a scrollbar and a sizebox.
- The drop-down window watches the input into the textbox. If the textbox changed, then the window updates the list.
- The sizebox control enables the user to resize the drop-down window.
This is a slight refactor of InsertDefaultClusterSizeForFs() code with the goal to avoid having the same code for FAT-related and EXT2/BtrFS filesystems.
FATX is listed as a filesystem for format within the list but it's classed out from current proposed filesystems, thus spamming the debug output and not allowing to actually format a storage drive with this FS.
CORE-17272
* [SHIMGVW] Add OLE32 for CoInitializeEx()
* Implemented support for effective image size (100%).
* Fix bug that could leave one of the zoom buttons if 100% size button is now pressed.
* Replace a CreateWindowEx() with CreateWindowExW().
* Added stub for image delete function.
* Implemented support for 'Modify' button.
* [SHIMGVW] Added CoUninitialize()
* [SHIMGVW] Pair CoUninitialize with CoInitializeEx
Implement the re-worked shut down dialog box as well as implementing fancy log off dialog box.
- Fancy shut down dialog box has been redesigned to be more comparable to of XP.
- Implement features that were missing earlier.
- Implement the fancy log off dialog which is more comparable to of XP.
- Use _countof macro instead of non-standard ARRAYSIZE macro.
- Use UINT type for array index instead of INT type, to erase signed/unsigned comparison warning.
JIRA issue: N/A
- Make the calls of CallWindowProc and DefWindowProc Wide (Unicode).
- Delete needless type casts.
- Add const to function arguments.
- Improve ImageView_LoadSettings function.
- Insert OFN_EXPLORER flag.