* [UIAUTOMATIONCORE] import from wine-10.0
* [DXDIAG] fix build after sync
Used in many NT6+ applications like web browsers. This dll "enables assistive technology products, such as screen readers, to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI" according to msdn.
Fix CD-ROM eject in Explorer's "My Computer" not updating the drive text label (e.g., "ReactOS LiveCD (D:)" staying after eject). LV_RefreshIcon() only invalidated the cached icon (I_IMAGECALLBACK) but not the cached text, so the ListView never re-queried the display name.
Add text invalidation (LPSTR_TEXTCALLBACK) to force label refresh on media change events.
In particular:
- `IDS_NOSET`: When the user tries `hostname -s ...`, tell them that for
changing the computer host's name, one has to go in the "Computer Name"
tab in the "System" control panel applet.
NOTE: You may observe that Windows' hostname says instead,
"Use the Network Control Panel Applet to set hostname."
This piece of information is wrong since Windows 2000. Indeed:
* From NT 3.1 to NT 4, one had to change the host's name via the
"Network" control panel applet; the message was accurate back then.
* Since Windows 2000, one changes the computer's host name via the
"Network Identification" (Win2000) / "Computer Name" (WinXP and above)
tab of the "System" properties Control Panel applet.
* In addition, the ony "Network" feature in the Control Panel is the
"Network Connections" special folder and doesn't deal with the host name.
- Use the ConUtils library for uniform output (on console or redirected)
of localized string resources/messages. Supersedes PR #8739.
- Improve output of last-errors by showing their description, only
falling back to showing the error number if no description exists.
conutils\pager.c(658):
warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(179),(263):
warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(433):
warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
- Make the INetCfgComponentControl interface the 'base' interface because it is the only required interface for notification objects and it manages the configuration data.
- Add the INetCfgComponentSetup interface. It will be used for installing and uninstalling network components.
- Clean-up configuration data to prevent memory leaks.
- Fix #GP crash on UEFI x64 boot caused by `call ExecuteLoaderCleanly[rip]` and `mov rax, UefiExitBootServices[rip]; call rax` generating indirect calls that read function code bytes as a pointer.
- Reload CS and data segments after `lgdt` to avoid #GP from stale UEFI selectors (e.g. CS=0x38) exceeding the new GDT limit.
- [USER32_APITEST_MENUUI] Return an empty test list when called with --list
NOTE: The better way to fix this is to move this executable to \reactos\bin\suppl. But that requires some refactoring of tests already in our source tree.
...but wait until the partitions are actually updated on disk.
CORE-13525
DeletePartition() deletes partitions only in the virtual partitions list
in memory; the partitions still exist on the disk and are written only
later when committing all partition changes.
Thus, we do the same for file system volumes that lay on top of these
partitions being deleted: we move the linked VOLENTRY structures to a
list of "pending volumes to unmount", while they still actually stay
mounted on the system. Only when partition changes are about to be
committed to disk, the "pending volumes to unmount" list is processed
and the volumes actually unmounted, prior to modifying the partitions.
SendMessageA for IME message
won't work in some situations.
JIRA issue: CORE-19268
Always use SendMessageW instead of
SendMessageA in ImmGenerateMessage.
CORE-20528
Addendum to commit 912c8ad987 (PR #5187)
Fix a bug where "KDCOM/KDGDB_NAME_ON_CD" CMake variables weren't used
as variables, but directly as names.
CORE-20433
The brush returned from WM_CTLCOLORLISTBOX message is ignored when painting the background. This bug can be found at https://bugs.winehq.org/show_bug.cgi?id=2948
Fixed by handling backgound painting in LISTBOX_PaintItem and LISTBOX_Paint functions.
Patch by @I_Kill_Bugs
Detect whether we run on XBOX or PC98 (on x86 builds), or on (U)EFI or on
a BIOS-based PC, or whether a generic linear framebuffer mode is used, in
order to choose the correct bootvid module to load, based from a predefined
file names list (ideally it should be derived from txtsetup.sif...).
Supersedes PR #8701.
Use `KeFindConfiguration*Entry()` to spelunk the hardware configuration
tree in the NT loader module.
Alternatively, allow the user to override the choice with a new `BOOTVID=`
boot option. In any case, if the selected bootvid module failed to be loaded,
silently fall back to the default bootvid.dll file. The fallback is done
by just letting the PE loader resolve the necessary exports from hal.dll
and ntoskrnl.exe.
CORE-10935
- This reverts commit 522e9f6dd3.
- Implement Mark's suggestion given in PR #7784,
https://github.com/reactos/reactos/pull/7784#pullrequestreview-2722604928
Build three binary versions of the delayimp_apitest, named:
delayimp_nohook_apitest, delayimp_globalhook_apitest, and delayimp_runtimehook_apitest,
that respectively are:
- "nohook": delayload is used, but neither of the hook/failurehook is defined;
- "globalhook": delayload is used, and the hooks are assigned at global scope;
- "runtimehook": delayload is used, and the hooks are assigned at runtime.
- Since the delayimp apitests are self-contained, don't use the separate
testlist.c file. It is temporarily unused, until other SDK-specific tests
are added in this directory.
## Testing observations:
GCC build (tested with KVM x86): binutils doesn't create specification-compliant
`IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT` table for delay-loaded imports, and as a
result, the tests show:
```
delayimp.cpp:472: Tests skipped: No IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT found,
some advanced features might not work!
```
Additionally, both `SymGetOptions` and `MapAndLoad` tests are skipped "until
CORE-6504 is fixed", as claimed. _**This doesn't happen for MSVC builds.**_
```
gdb_input.c(243): error C4477: '_snprintf' : format string '%p' requires
an argument of type 'void *', but variadic argument 1 has type 'UINT_PTR'
i386_sup.c(98): error C4090: 'return': different 'const' qualifiers
amd64_sup.c(115): error C4090: 'return': different 'const' qualifiers
```
But add KDGDB compilation only for x86 and x64, since for other
architectures (e.g. ARM) it currently emits the following error:
```
drivers/base/kdgdb/kdgdb.h(149): fatal error C1189: #error:
"Please define relevant macros for your architecture"
```
For the time being, keep the "GDB" build configuration macro, used for
Gitpod testing... but this needs to be replaced with a more robust solution.
Because of this, rename kdgdb.dll to kdcom.dll, and kdcom.dll to kdser.dll
so that GDB is used by default, and we don't get a file name clash too.
Revert also commit 57cf5cdc5d.
This is the same feature as the one that already exists in the
NTOS:KD!kdmain.c module used by the in-kernel KDBG debugger
(GCC builds), first introduced in commit 4ce30245de (r54473),
and documented at:
https://reactos.org/wiki/Debugging#Changing_the_serial_port_address
This feature is useful if one uses a PCI, PCIe, PCMCIA, or ExpressCard
serial card on real hardware (these cards are used e.g. with laptops
without a built-in serial port), or with AMT serial over LAN.
After determining the serial port I/O address (say, 0xCC00), specify
the debug port as follows:
/DEBUGPORT=COM:0xCC00
instead of the usual syntax: /DEBUGPORT=COMn (n an integer).
The same syntax can be used for debugging FreeLoader as well: in the
FREELDR.INI file, add a "Debug" line in the "FREELOADER" section,
as follows:
```
[FREELOADER]
Debug=/DEBUG /DEBUGPORT=COM:0xCC00 /BAUDRATE=115200
```
----
NOTE for KDCOM/KDGDB:
Since `strtoul()` is used, but isn't exported by ntoskrnl, link against
the "strtol" static library that has been introduced in commit d317d4fbcc
(r71481).