Used in `ATL::CStringW` and `ATL::CStringA`, for example:
```
ATL::CStringW cswItemText = "";
cswItemText.Preallocate(64);
SendDlgItemMessageW(pdis->CtlID, LB_GETTEXT, pdis->itemID, reinterpret_cast<LPARAM>(cswItemText.GetBuffer()));
cswItemText.ReleaseBuffer();
```
This public function is used to allocate memory for the string via private PrepareWrite, but it's missing somehow. Now it shouldn't be.
Supporting the Language bar...
JIRA issue: CORE-19363
- Delete TFInitLib and TFUninitLib
calls from ctfmon.exe.
- Delete TFUninitLib from Cicero
library.
- Implement InitDisplayAttrbuteLib
in msctfime.ime.
- Improve CIC_LIBTHREAD structure.
Refactoring and reduce binary size.
JIRA issue: CORE-19268
- Add cicero static library in sdk/lib/cicero folder.
- Delete sdk/include/reactos/cicero folder.
- Adapt the dependencies to these changes.
- Make ctfmon, msutb, and msctf modules UNICODE.
Improve header compatibility and
code quality.
JIRA issue: CORE-19268
- Improve <imm.h> and <immdev.h>
compatibility by correctly choosing
the items.
- Use <immdev.h> instead of
<ddk/immdev.h>.
- Move INPUTCONTEXTDX, IMEINFOEX,
IMEDPI, and CLIENTIMC into
<imm32_undoc.h>.
- Adapt to these changes.
Use the MS PSDK-compatible name _INC_MALLOC, instead of the MinGW one
_MALLOC_H_, so that code that may depend on this to determine whether
malloc.h functions are defined, can compile without problems.
Supporting Language Bar...
JIRA issue: CORE-19363
- Add many global variables
to add UTB settings.
- Add IsSkipRedrawHKL, IsBiDiLocalizedSystem,
InitSkipRedrawHKLArray helper functions.
- Add InitFromReg helper function to
load the settings from registry.
- Add CicRegKey::EnumValue method.
+ Improve related comments.
Registry hives are opened in shared read access when NT is loaded in PE
mode (MININT) or from network (the hives residing on a network share).
This is true in particular for the main system hives (SYSTEM, SOFTWARE,
DEFAULT, ...).
However, in PE mode, we can allow other hives, e.g. those loaded by the
user (with NtLoadKey) to be loaded with full read/write access, since we
boot from a local computer.
In particular remove some extra-parentheses around single code tokens,
and replace few "DPRINT1 + while (TRUE);" by UNIMPLEMENTED_DBGBREAK.
+ Improve some comments.
Add a basic IOpenControlPanel implementation that supports Vista canonical registry names.
Implements `control.exe /name company.name [/page id]` and `IOpenControlPanel`
handling of Vista-style canonical registry names.
The documented `Microsoft.*` names don't work because they are simply not
in our registry but "[Executable Control Panel Items](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-an-executable-control-panel-item-registration-)" registered by 3rd-party ISVs
will function correctly in control.exe and the COM API.
Notes:
- `IOpenControlPanel` is implemented in CControlPanelFolder.cpp because
it is supposed to have tighter integration with that shell folder than
it does in this PR.
- `IOpenControlPanel` is also supposed to handle .cpl files with canonical
names registered under [`Extended Properties`](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-dll-control-panel-item-registration-#step-3) but the control panel folder
does not implement `IShellFolder2::GetDetailsEx` yet, so it will have to wait.
- These "Executable Control Panel Items" are also supposed to be displayed
in the control panel itself but this PR does not address that. The
`ITEMIDLIST` format for those needs investigation...
- The Wow64 handling is perhaps not correct but it does not matter,
`ShellExecuteEx` gets to deal with whatever is in the `...\shell\open\command` key.
`CControlPanelFolder` would have to take more care when it starts
reading those keys so it knows when to append "(32-bit)" to the display name.
- `%s%s` because .cpl canonical names don't have the `::` prefix according
to Geoff Chappell.
- Always returns `CPVIEW_CLASSIC` because our `CControlPanelFolder` does
not support the category view.
GCC 8.4 and Clang 13.0.1:
`cc1: note: unrecognized command-line option ‘-Wno-deprecated-non-prototype’ may have been intended to silence earlier diagnostics`
Addendum to commit 4e3bf252d
* [SDK][VIRTIO][NETKVM] Make VirtIO a separate library
This is to avoid code duplication when more VirtIO drivers are brought in. This will also be used on development of a VirtIO XDDM GPU Driver.
* [VIRTIO] Sync with upstream