ashaposhnikov in reactos

[RAPPS] Improvements & multiple selections

- Improved translations view - storing LCIDs now

- Added checkboxes on list view and Select All button (although they do nothing just yet)

- Made download dialogs nonmodal (yay, download and install multiple apps at once!)

- Minor code improvements

[RAPPS] Fixed multiple redraws of the apps list
[RAPPS] Translations

- Implemented HasNativeLanguage() and HasEnglishLanguage()

- Moved config parser to it's own class CConfigParser

- Added translation strings

[RAPPS] Refactoring & bugfixes

- Made a bunch of classes for Available apps;

- Removed unnessesary GetBuffer calls;

- Set a bit higher minimum height for RichEdit;

- Added "Single" indicator for the Languages to show that the translation available is the only one;

- Small style changes.

[ATL] [3RDPARTY] Updated & moved atlex to sdk/lib/3rdparty
  1. … 6 more files in changeset.
[RAPPS] Showing info from Languages sectin

- Created dummies & added new string resources

- lang/uk-UA.rc: translated all strings

- crichedit.h: safe text add

[RAPPS] Language loading

- RAPPS now can load language list from a file where locale identifiers are separated by '|'

`Language=0C09|0813|0422 \\English|Dutch|Ukrainian`

The only limitation is that the parameter is only 260 chars.

So there arises another goal - multiline parameters

- This list is stored in `CSimpleArray<CStringW>` as strings

Maybe it would be wiser to store them as INT array.

- Some refactoring

[RAPPS] More code improvements

- Replaced some functions with their Wide versions

- Generalized `GetInstalledVersion` function so it could accept NULL

- Minor cleanup

[SDK] Added atlex for future use

- atlex is ATL wrappers for WINAPI functions

- It is header-only library licensed under GPLv3

- For details see


- Added missing operator+=

[RAPPS] Fixes

- Minor style improvements

- Not resizing with GetBuffer() calls where not nessesary

- loaddlg.cpp: Wrong logic fixed

- rosui.h: Fixed length determination

[RAPPS] Some fixes

- winmain.cpp, loaddlg.cpp, installed.cpp:

Changed string-related opreations

- installed.cpp: Fixed buffer sizing when calling RegQueryValueExW()

- misc.cpp: Removed unused function

- rosui.h: Made use of GetWindowTextLength()

[RAPPS] Extensive conversion to ATL and general improvements

* Converted most of the WCHAR buffers to ATL::CStringW

* available.cpp: replaced C heap list with ATL::CAtlList

* Improved style consistency

* Added myself to the headers

* Other improvements

[RAPPS] StringCbCatW => StringCchCatW, sizeof() => _countof()


[RAPPS] winmain.cpp: sizeof instead of _countof
[RAPPS] Fixed default "Download" folder default. Now defaults to "RAPPS Downloads" folder in user Documents or installation drive.
[RAPPS] Update check, license type

* Added LicenseType numeric field in the RAPPS DB files.

Values mean: 1 - open source, 2 - freeware, 3 - trial/demo

The existing License field will be used to contain the license name itself.

* Finished version parser and update check.

Now RAPPS can suggest an update.

* Added new strings to lang/en-US.rc, lang/ru-RU.rc, lang/uk-UA.rc

[FORMATTING][RAPPS] available.cpp: Fix braces

* Separated available and installed version.

If the app is installed it's DisplayVersion is shown.

* Reduced registry key access checks

* Version parser WIP


* Reduced "installed" check - checks only for the key inself and not the DisplayName.

Blazing fast!

* Added installed version getter

* Added version parser function (without definition yet).

Meant to support versions like

* rapps.h: Added #pragma once


* available.cpp: Replaced macros with inline functions.

* gui.cpp: Fixed typo.


* Added individual icons loading for each app

The icons are loaded by the Name field in the DB for the proof-of-concept.

It falls back to default icon if none present.

TODO: It would be best to make another entry there for icon name.


* Added constants in resource.h for stringtables

* Removed "Installed apps" from the TreeView

* Added intallation status to the RichEdit using existing check

* Changed IsInstalledApplication signature to accept access righta

This is needed for the 64 bit systems.


* Added STRINGTABLE entries for installation status in en-US.rc and ru-RU.rc