2 * PROJECT: ReactOS Applications Manager
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Main program
5 * COPYRIGHT: Copyright 2009 Dmitry Chapyshev (dmitry@reactos.org)
6 * Copyright 2015 Ismael Ferreras Morezuelas (swyterzone+ros@gmail.com)
7 * Copyright 2017 Alexander Shaposhnikov (sanchaez@reactos.org)
10 #include "unattended.h"
16 LPCWSTR szWindowClass
= L
"ROSAPPMGR";
20 SETTINGS_INFO SettingsInfo
;
22 class CRAppsModule
: public CComModule
27 BEGIN_OBJECT_MAP(ObjectMap
)
31 CAtlWinModule gWinModule
;
33 Gdiplus::GdiplusStartupInput gdiplusStartupInput
;
34 ULONG_PTR gdiplusToken
;
37 static VOID
InitializeAtlModule(HINSTANCE hInstance
, BOOL bInitialize
)
41 gModule
.Init(ObjectMap
, hInstance
, NULL
);
49 VOID
InitializeGDIPlus(BOOL bInitialize
)
53 Gdiplus::GdiplusStartup(&gdiplusToken
, &gdiplusStartupInput
, NULL
);
57 Gdiplus::GdiplusShutdown(gdiplusToken
);
61 INT WINAPI
wWinMain(HINSTANCE hInstance
, HINSTANCE hPrevInstance
, LPWSTR lpCmdLine
, INT nShowCmd
)
65 InitializeAtlModule(hInstance
, TRUE
);
66 InitializeGDIPlus(TRUE
);
68 if (GetUserDefaultUILanguage() == MAKELANGID(LANG_HEBREW
, SUBLANG_DEFAULT
))
70 SetProcessDefaultLayout(LAYOUT_RTL
);
75 bIsFirstLaunch
= !LoadSettings(&SettingsInfo
);
78 FillDefaultSettings(&SettingsInfo
);
84 // parse cmd-line and perform the corresponding operation
85 BOOL bSuccess
= ParseCmdAndExecute(GetCommandLineW(), bIsFirstLaunch
, SW_SHOWNORMAL
);
87 InitializeGDIPlus(FALSE
);
88 InitializeAtlModule(GetModuleHandle(NULL
), FALSE
);
90 return bSuccess
? 0 : 1;