24#ifndef INCLUDED_SAL_MAIN_H
25#define INCLUDED_SAL_MAIN_H
36#if defined LIBO_INTERNAL_ONLY && defined __cplusplus
40namespace sal::detail {
constexpr int InitializeSoffice = -1; }
46#if !(defined IOS || defined ANDROID)
49#define SAL_MAIN_WITH_ARGS_IMPL \
50int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
53 sal_detail_initialize(argc, argv); \
54 ret = sal_main_with_args(argc, argv); \
55 sal_detail_deinitialize(); \
59#define SAL_MAIN_IMPL \
60int SAL_DLLPUBLIC_EXPORT SAL_CALL main(int argc, char ** argv) \
63 sal_detail_initialize(argc, argv); \
65 sal_detail_deinitialize(); \
81# define WINAPI __stdcall
84#if !defined(DECLARE_HANDLE)
87# define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
91# define DECLARE_HANDLE(name) typedef HANDLE name
93DECLARE_HANDLE(HINSTANCE);
98#define SAL_WIN_WinMain \
99int WINAPI WinMain( HINSTANCE _hinst, HINSTANCE _dummy, char* _cmdline, int _nshow ) \
101 int argc = __argc; char ** argv = __argv; \
102 (void) _hinst; (void) _dummy; (void) _cmdline; (void) _nshow; \
103 return main(argc, argv); \
108# define SAL_WIN_WinMain
114#define SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) \
115 static int SAL_CALL sal_main_with_args (int _argc_, char ** _argv_); \
116 SAL_MAIN_WITH_ARGS_IMPL \
118 static int SAL_CALL sal_main_with_args(int _argc_, char ** _argv_)
120#define SAL_IMPLEMENT_MAIN() \
121 static int SAL_CALL sal_main(void); \
124 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