ReactOS  0.4.15-dev-3745-g356babc
winmain.cpp
Go to the documentation of this file.
1 /*
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)
8  */
9 #include "rapps.h"
10 #include "unattended.h"
11 #include "winmain.h"
12 #include <atlcom.h>
13 #include <gdiplus.h>
14 #include <conutils.h>
15 
16 LPCWSTR szWindowClass = L"ROSAPPMGR";
17 
21 
22 BEGIN_OBJECT_MAP(ObjectMap)
24 
27 
28 
29 INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nShowCmd)
30 {
31  Gdiplus::GdiplusStartupInput gdiplusStartupInput;
33 
34  gModule.Init(ObjectMap, hInstance, NULL);
35  Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
36 
38  {
40  }
41 
42  hInst = hInstance;
43 
44  BOOL bIsFirstLaunch = !LoadSettings(&SettingsInfo);
45  if (bIsFirstLaunch)
46  {
48  }
49 
50  InitLogs();
52 
53  // parse cmd-line and perform the corresponding operation
55 
57  gModule.Term();
58 
59  return bSuccess ? 0 : 1;
60 }
LANGID WINAPI GetUserDefaultUILanguage(void)
Definition: lang.c:810
#define LAYOUT_RTL
Definition: wingdi.h:1371
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
VOID FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
Definition: settings.cpp:167
#define SUBLANG_DEFAULT
Definition: nls.h:168
CComModule gModule
Definition: winmain.cpp:25
CAtlWinModule gWinModule
Definition: winmain.cpp:26
INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nShowCmd)
Definition: winmain.cpp:29
HINSTANCE hInst
Definition: winmain.cpp:19
int32_t INT
Definition: typedefs.h:58
#define LANG_HEBREW
Definition: nls.h:67
static BOOLEAN bSuccess
Definition: drive.cpp:432
void Term()
Definition: atlbase.h:821
uint32_t ULONG_PTR
Definition: typedefs.h:65
HRESULT Init(_ATL_OBJMAP_ENTRY *p, HINSTANCE, const GUID *plibid)
Definition: atlbase.h:798
HINSTANCE hInstance
Definition: charmap.c:20
#define L(x)
Definition: ntvdm.h:50
VOID InitLogs()
Definition: misc.cpp:175
void LoadSettings(void)
Definition: settings.c:53
unsigned int BOOL
Definition: ntddk_ex.h:94
LPWSTR WINAPI GetCommandLineW(VOID)
Definition: proc.c:2014
BOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout)
Definition: window.c:1720
void WINAPI GdiplusShutdown(ULONG_PTR)
#define WINAPI
Definition: msvc.h:6
Status WINAPI GdiplusStartup(ULONG_PTR *token, const struct GdiplusStartupInput *input, struct GdiplusStartupOutput *output)
Definition: gdiplus.c:81
static ULONG_PTR gdiplusToken
Definition: CImage.cpp:79
LPCWSTR szWindowClass
Definition: winmain.cpp:16
#define SW_SHOWNORMAL
Definition: winuser.h:764
#define NULL
Definition: types.h:112
HWND hMainWnd
Definition: winmain.cpp:18
BOOL ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
Definition: unattended.cpp:238
#define MAKELANGID(p, s)
Definition: nls.h:15
#define BEGIN_OBJECT_MAP(x)
Definition: atlcom.h:650
VOID WINAPI InitCommonControls(void)
Definition: commctrl.c:863
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define END_OBJECT_MAP()
Definition: atlcom.h:652
SETTINGS_INFO SettingsInfo
Definition: winmain.cpp:20