24#ifndef INCLUDED_SAL_MAIN_H
25#define INCLUDED_SAL_MAIN_H
40#if defined LIBO_INTERNAL_ONLY && defined __cplusplus
44namespace sal::detail {
constexpr int InitializeSoffice = -1; }
50#if !(defined IOS || defined ANDROID)
53#define SAL_MAIN_WITH_ARGS_IMPL \
54int 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 \
64int 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
97DECLARE_HANDLE(HINSTANCE);
102#define SAL_WIN_WinMain \
103int 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)
#define SAL_DLLPUBLIC
Definition saldllapi.h:34
SAL_DLLPUBLIC void sal_detail_deinitialize(void)
SAL_DLLPUBLIC void sal_detail_initialize(int argc, char **argv)