24 #ifndef INCLUDED_SAL_MAIN_H
25 #define INCLUDED_SAL_MAIN_H
40 #if defined LIBO_INTERNAL_ONLY && defined __cplusplus
44 namespace sal::detail { constexpr
int InitializeSoffice = -1; }
50 #if !(defined IOS || defined ANDROID)
53 #define SAL_MAIN_WITH_ARGS_IMPL \
54 int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
57 sal_detail_initialize(argc, argv); \
58 ret = sal_main_with_args(argc, argv); \
59 sal_detail_deinitialize(); \
63 #define SAL_MAIN_IMPL \
64 int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
67 sal_detail_initialize(argc, argv); \
69 sal_detail_deinitialize(); \
85 # define WINAPI __stdcall
88 #if !defined(DECLARE_HANDLE)
91 # define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
95 # define DECLARE_HANDLE(name) typedef HANDLE name
97 DECLARE_HANDLE(HINSTANCE);
102 #define SAL_WIN_WinMain \
103 int WINAPI WinMain( HINSTANCE _hinst, HINSTANCE _dummy, char* _cmdline, int _nshow ) \
105 int argc = __argc; char ** argv = __argv; \
106 (void) _hinst; (void) _dummy; (void) _cmdline; (void) _nshow; \
107 return main(argc, argv); \
112 # define SAL_WIN_WinMain
118 #define SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) \
119 static int SAL_CALL sal_main_with_args (int _argc_, char ** _argv_); \
120 SAL_MAIN_WITH_ARGS_IMPL \
122 static int SAL_CALL sal_main_with_args(int _argc_, char ** _argv_)
124 #define SAL_IMPLEMENT_MAIN() \
125 static int SAL_CALL sal_main(void); \
128 static int SAL_CALL sal_main(void)
SAL_DLLPUBLIC void sal_detail_deinitialize(void)
SAL_DLLPUBLIC void sal_detail_initialize(int argc, char **argv)
#define SAL_DLLPUBLIC
Definition: saldllapi.h:34