2 * wmainCRTStartup default entry point
4 * Copyright 2019 Jacek Caban for CodeWeavers
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #pragma makedep implib
37 int __cdecl
wmain(int argc
, WCHAR
**argv
, WCHAR
**env
);
39 static const IMAGE_NT_HEADERS
*get_nt_header( void )
41 IMAGE_DOS_HEADER
*dos
= (IMAGE_DOS_HEADER
*)NtCurrentTeb()->Peb
->ImageBaseAddress
;
42 return (const IMAGE_NT_HEADERS
*)((char *)dos
+ dos
->e_lfanew
);
45 int __cdecl
wmainCRTStartup(void)
51 _configure_wide_argv(_crt_argv_unexpanded_arguments
);
52 _initialize_wide_environment();
54 argv
= *__p___wargv();
55 env
= _get_initial_wide_environment();
58 __wgetmainargs(&argc
, &argv
, &env
, 0, &new_mode
);
60 _set_app_type(get_nt_header()->OptionalHeader
.Subsystem
== IMAGE_SUBSYSTEM_WINDOWS_GUI
? _crt_gui_app
: _crt_console_app
);
62 ret
= wmain(argc
, argv
, env
);