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