4 #ifndef INCLUDED_SAL_MAIN_H
5 #define INCLUDED_SAL_MAIN_H
20 #if defined LIBO_INTERNAL_ONLY && defined __cplusplus
24 namespace sal::detail { constexpr
int InitializeSoffice = -1; }
30 #if !(defined IOS || defined ANDROID)
33 #define SAL_MAIN_WITH_ARGS_IMPL \
34 int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
37 sal_detail_initialize(argc, argv); \
38 ret = sal_main_with_args(argc, argv); \
39 sal_detail_deinitialize(); \
43 #define SAL_MAIN_IMPL \
44 int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
47 sal_detail_initialize(argc, argv); \
49 sal_detail_deinitialize(); \
65 # define WINAPI __stdcall
68 #if !defined(DECLARE_HANDLE)
71 # define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
75 # define DECLARE_HANDLE(name) typedef HANDLE name
77 DECLARE_HANDLE(HINSTANCE);
82 #define SAL_WIN_WinMain \
83 int WINAPI WinMain( HINSTANCE _hinst, HINSTANCE _dummy, char* _cmdline, int _nshow ) \
85 int argc = __argc; char ** argv = __argv; \
86 (void) _hinst; (void) _dummy; (void) _cmdline; (void) _nshow; \
87 return main(argc, argv); \
92 # define SAL_WIN_WinMain
98 #define SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) \
99 static int SAL_CALL sal_main_with_args (int _argc_, char ** _argv_); \
100 SAL_MAIN_WITH_ARGS_IMPL \
102 static int SAL_CALL sal_main_with_args(int _argc_, char ** _argv_)
104 #define SAL_IMPLEMENT_MAIN() \
105 static int SAL_CALL sal_main(void); \
108 static int SAL_CALL sal_main(void)
135 #endif // INCLUDED_SAL_MAIN_H
SAL_DLLPUBLIC void sal_detail_deinitialize(void)
SAL_DLLPUBLIC void sal_detail_initialize(int argc, char **argv)
#define SAL_DLLPUBLIC
Definition: saldllapi.h:14