- Don't hardcode a buffer length in ExpandEnvironmentStringsW() call.
- If no file name is associated to a log (ErrorLog->FileName == NULL),
don't try to attempt looking at its file properties. This also allows
avoiding a crash in the FindFirstFileW() call under certain conditions
on Windows.
CORE-12269
- Add support for '/?' and '/l:' switches. The former displays usage
information. The latter allows to specify an event log file to load.
Also one can specify the computer name from which one wants to
retrieve events for display (work in progress).
- In EnumEventsThread(), move around the code that updates the
application title and status bar, so that the selected event log name
and loading status is always displayed first, while loading itself is
in progress.
- Initialize hwndMainWindow as it can be used before it is properly
initialized with an existing window handle.
- Transform ShowLastWin32Error() to a more generic ShowWin32Error().
- Use iswdigit() instead of isdigit().
- Add extra heap buffer cleanup.
- Split OpenUserEventLog() in two: OpenUserEventLog() that displays
an open-file dialog, and OpenUserEventLogFile() that does the real
work of allocating internal structures and opening the log file using
the event-log service. We also check that the file really exists
before proceeding further.
- Force treeview repaint when *children* items are inserted, because
otherwise the expand/collapse buttons do not display next to parent
items (this problem happens on Windows too).
- Reshuffle the resource string IDs.
With these, we generate the WM_CONTEXTMENU and NIN_(KEY)SELECT
shell icon notifications that applications expect when they handle
shell notification icons with uVersion >= 3.
This fixes in particular the previously unresponsive icon of KVIrc 4.x,
and more generally *all* the notifiation icons of Qt applications.
CORE-10605 #resolve
This replaces old link to svn.reactos.org with rapps.reactos.org
which is a new stable location for RAPPS database and future community
website. That said, svn.reactos.org link will be kept for some time.
TODO: make this a configurable value.
CORE-14351
- Use the "%d days" format for timeouts longer than a day.
- Fail if timeout is 10 years or longer.
- TODO: Replace format strings by resources. German WinXP uses "%d days" instead of "%d Tage". We can do better! ;-)
* [SERVMAN] Italian update translation
* [SERVMAN] Small grammatical typo fixed
* [SERVMAN] Word replaced
- "Accedi" would be more convenient than "Accedere"
- Replace the winlogon icon by the warning icon.
- Add more space for the main text.
- Move the shutdown time into a separate line to ensure it is always fully visible.
- Add more space for the shutdown message and keep the message empty by default.
- Clean up the resource IDs.
- Replace the UNICODE_STRING usMessage by a PWSTR pszMessage.
- Use the "%02d:%02d:%02d" time format and get rid of the safe string printf because the string will NEVER be longer than 8 characters.
- Rename the timer id constant because it is NOT a resource id.
- Rename variables according to the coding style.
- Add empty lines to separate logical blocks of code.
- Add spaces according to our coding style.
- Move g_hShutdownDialog and g_bShuttingDown into the shutdown parameters struct.
- Pass a pointer to the shutdown parameters to the shutdown thread and the shutdown dialog and use the pointer instead of the global variables.
- Move the timer code into a separate function because it requires local variables.
- Small Italian translation update;
- Translation update for Romanian;
- Small update (just two strings translated based on the latest RAPPS commits);
- Header E-mail changed.
- Use a stop event to terminate the dispatch loop.
- Report to the services manager that the service can be stopped or shut-down while it is running.
CORE-14390
* [BROWSEUI] Update German translation
* [SHELL32] Update German translation
* [COMCTL32] Update German translation
* [COMDLG32] Update German Translation
* [SETUPAPI] Update German translation
* [EXPLORER] Update German translation
FDI allows to have user-defined callbacks for file handling.
Since it doesn't provide support for Unicode we convert strings to
multi-byte UTF-8 and handle them appropriately in the callbacks. They
are properly null-terminated so FDI won't choke when doing operations
with strings.
Thanks to hbelusca and mjansen for the help.
CORE-14466
- Fix the layout of the normal master dialog layout.
- Change the name of the normal and tray master dialogs.
- Add the WS_EX_LAYOUTRTL style to the hebrew dialogs.
- Add the small master dialog.
- Add support for tray (/t), small (/s) and normal (/n) dialog sizes.
- Fix the font size calculation for the dialogs.
- Fix the dialog unit to pixel conversion.
- Fix the client window size calculation.
- Do not leak font handles.
* Convert to wWinMain()
* Add a resource file
* Use a slightly friendlier application name
* Add code to load the output path from the Registry
* Add localized string resources
- Make sure the DWLP_* values are correct on _WIN64
- Don't use the DWL_* constants, they are not portable. Enforce this by removing them entirely from winuser.h
- Make sure Get/SetWindowLong*Ptr* is used and pointers are not truncated to LONG
services\database.c:
- Refactor ScmControlService() so that it can be used to send the dispatcher loop stop command.
- Separate the code to decrement the image run counter from the service image cleanup code.
services\rpcserver.c:
- RSetServiceStatus(): Stop the dispatcher loop when the image run counter is zero and remove the service image after that.
advapi32\service\sctrl.c:
- Do not terminate the service dispatcher loop when the last service is being stopped. Wait for an explicit dispatcher stop command (empty service name).
CORE-12413
- ScmUnloadDriver: Handle failed unload properly.
- ScmGetDriverStatus: A driver is running when its driver object was found. Otherwise it has been stopped.
- ScmControlDriver: Check a drivers status before and after unloading.
CORE-14317
- We should not open a new connection to request a certificate.
- Update the issuer / subject for the LE certificate.
- User proper types.
- Require all fields that we check to be present.
Without checking the public key or the entire certificate it's still not secure, but we are a step closer.
Dedicated to Joachim Henze
CORE-14350