126 virtual ::string get_file_type_identifier(const ::file::path& path);
129 virtual void call_async(const ::scoped_string & scopedstrPath, const ::scoped_string & scopedstrParam, const ::scoped_string & scopedstrDir,
130 ::e_display edisplay,
bool bPrivileged, ::u32* puiPid =
nullptr);
133 virtual void call_sync(const ::scoped_string & scopedstrPath, const ::scoped_string & scopedstrParam, const ::scoped_string & scopedstrDir,
134 ::e_display edisplay,
const class time& timeTimeout,
::property_set & set, ::i32* piExitCode);
137 virtual ::process_identifier_array module_list_file_processes_identifiers(const ::scoped_string& scopedstr);
140 virtual ::enum_id key_command(const ::user::e_key & ekey);
143 virtual void notify_system_started();
146 virtual void defer_install_store_dependencies();
148 virtual ::particle_pointer create_mutex();
151 virtual void initialize(
::particle* pparticle);
154 virtual void node_application_on_status(const_char_pointer pszStatus,
void* p =
nullptr, ::i64 hi = 0);
160 virtual ::file::path get_default_base_integration_folder();
168 virtual void node_implement_main();
171 virtual void on_app_activated(::user::activation_token * puseractivationtoken);
174 virtual void on_system_main();
177 virtual void start_application(::pointer<::platform::node>& pnode);
183 virtual void _will_finish_launching();
185 virtual void _did_finish_launching();
191 virtual void on_prepare_application(::platform::application * papplication);
194 virtual string audio_get_default_implementation_name();
197 virtual string multimedia_audio_get_default_implementation_name();
200 virtual string multimedia_audio_mixer_get_default_implementation_name();
203 virtual string veriwell_multimedia_music_midi_get_default_implementation_name();
206 virtual void _launch_macos_app(const ::scoped_string & scopedstrAppFolder);
209 virtual void _launch_macos_app_args(const ::scoped_string & scopedstrAppFolder, const ::scoped_string & scopedstrArgs);
214 virtual void initialize_memory_counter();
217 virtual void system_main();
220 virtual void reboot();
223 virtual void defer_show_system_menu(::user::mouse* pmouse);
226 virtual void install_crash_dump_reporting(const ::scoped_string & scopedstrModuleNameWithTheExeExtension);
229 virtual ::file::path module_path_source();
237 virtual ::pointer<::mutex> create_local_named_mutex(
::particle* pparticleContext,
bool bInitiallyOwned,
238 const ::scoped_string & scopedstrName,
242 virtual ::pointer<::mutex> create_global_named_mutex(
::particle* pparticleContext,
bool bInitiallyOwned,
243 const ::scoped_string & scopedstrName,
247 virtual ::pointer<::mutex> open_local_named_mutex(
::particle* pparticleContext, const ::scoped_string & scopedstrName);
250 virtual ::pointer<::mutex> open_global_named_mutex(
::particle* pparticleContext, const ::scoped_string & scopedstrName);
253 virtual ::pointer<::mutex> get_install_mutex(
::particle* pparticleContext, const ::scoped_string & scopedstrPlatform,
254 const ::scoped_string & scopedstrSuffix);
257 virtual ::pointer<::acme::exclusive> _get_exclusive(
::particle* pparticleContext, const ::scoped_string & scopedstrName,
261 virtual ::pointer<::acme::exclusive> get_exclusive(
::particle* pparticleContext, const ::scoped_string & scopedstrName,
265 virtual bool erase_exclusive(const ::scoped_string & scopedstrName);
268 virtual void release_exclusive();
271 virtual bool exclusive_fails(
::particle* pparticleContext, const ::scoped_string & scopedstrName,
275 virtual string app_id_to_app_name(const ::scoped_string & scopedstrAppId);
278 virtual string app_id_to_executable_name(const ::scoped_string & scopedstrAppId);
281 virtual bool is_application_installed(const ::file::path& pathExe, const ::scoped_string & scopedstrAppId,
string& strBuild,
282 const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration,
283 const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
286 virtual void set_application_installed(const ::file::path& pathExe, const ::scoped_string & scopedstrAppId, const ::scoped_string & scopedstrBuild,
287 const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration,
288 const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
291 virtual ::file::path application_installer_folder(const ::file::path& pathExe, const ::scoped_string & scopedstrAppId,
292 const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration,
293 const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
296 virtual ::file::path get_application_path(const ::scoped_string & scopedstrAppId, const ::scoped_string & scopedstrPlatform,
297 const ::scoped_string & scopedstrConfiguration);
300 virtual ::file::path get_last_run_application_path_file(const ::scoped_string & scopedstrAppId);
303 virtual ::file::path get_last_run_application_path(const ::scoped_string & scopedstrAppId);
306 virtual void set_last_run_application_path(const ::scoped_string & scopedstrAppId);
309 virtual ::file::path _module_path();
319 virtual void datetime_to_file_time(
::file_time_t* pfile_time, const ::earth::time&
time);
322 virtual ::i32 node_init_check(::i32* pi, char_pointer ** ppz);
325 virtual void start_node();
328 virtual void install_sigchld_handler();
378 virtual string get_file_icon_path(const ::scoped_string & scopedstrPath, ::i32 iSize);
381 virtual string get_file_content_type(const ::scoped_string & scopedstrPath);
384 virtual ::i32 os_launch_uri(const ::scoped_string & scopedstrUri, char_pointer pszError = NULL, ::i32 iBufferSize = 0);
390 virtual bool has_xcb();
393 virtual void* get_os_xcb_connection();
396 virtual bool is_wayland();
409 virtual void defer_do_main_tasks();
417 virtual bool should_launch_on_node(
::topic* ptopic);
420 virtual bool defer_launch_on_node(
::topic* ptopic);
423 virtual bool launch_on_node(
::topic* ptopic);
426 virtual string get_user_name();
429 virtual void set_console_colors(::u32 dwScreenColors, ::u32 dwPopupColors, ::u32 dwWindowAlpha);
432 virtual void browse_for_folder(
::file::path& pathFolder);
438 virtual ::f64 get_time_zone();
441 virtual string font_name(enum_font efont);
447 virtual string file_memory_map_path_from_name(const ::scoped_string & scopedstrName);
450 virtual enum_operating_system get_operating_system()
const;
453 virtual void launch_app(const ::scoped_string & scopedstr, const_char_pointer *argv, ::i32 iFlags);
456 virtual ::file::path get_executable_path_by_app_id(const ::scoped_string& scopedstrAppId,
457 bool bSingleExecutableVersion);
460 virtual ::file::path get_executable_path_by_app_id(const ::scoped_string& scopedstrRepos,
461 const ::scoped_string& scopedstrApp,
462 bool bSingleExecutableVersion);
465 virtual void launch_app_by_app_id(const ::scoped_string& scopedstrAppId,
bool bSingleExecutableVersion);
468 virtual ::process_identifier create_process(const ::scoped_string & scopedstrCommandLine);
471 virtual void run_silent(const ::scoped_string & scopedstrFunct, const ::scoped_string & scopedstrstrParams);
474 virtual ::file::path_array_base process_identifier_modules_paths(::process_identifier processidentifier);
477 virtual ::file::path_array_base modules_paths();
480 virtual bool load_modules_diff(string_array_base& straOld, string_array_base& straNew, const ::scoped_string & scopedstrExceptDir);
483 virtual ::process_identifier_array processes_identifiers();
486 virtual ::process_identifier_array module_path_processes_identifiers(
487 const ::scoped_string & scopedstrModulePath,
bool bModuleNameIsPropertyFormatted);
490 virtual ::file::path process_identifier_module_path(::process_identifier processidentifier);
493 virtual string process_identifier_command_line(::process_identifier processidentifier);
500 virtual bool process_contains_module(
string& strImage, ::process_identifier processidentifier,
501 const ::scoped_string & scopedstrLibrary);
504 virtual ::process_identifier_array
505 shared_library_process(string_array_base& straProcesses, const ::scoped_string & scopedstrLibrary);
508 virtual bool is_process_running(::process_identifier processidentifier);
511 virtual string get_environment_variable(const ::scoped_string& scopedstrEnvironmentVariable);
514 virtual string expand_environment_variables(const ::scoped_string& scopedstr);
517 virtual void set_environment_variable(const ::scoped_string& scopedstrEnvironmentVariable,
518 const ::scoped_string& scopedstrValue);
521 virtual void unset_environment_variable(const ::scoped_string& scopedstrEnvironmentVariable);
524 virtual string get_user_language();
527 virtual ::pointer<security_attributes> get_application_exclusivity_security_attributes();
530 virtual void register_spa_file_type(const ::scoped_string & scopedstrAppIdHandler);
533 virtual bool low_is_app_app_admin_running(const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration);
536 virtual void defer_start_program_files_app_app_admin(const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration);
539 virtual void start_program_files_app_app_admin(const ::scoped_string & scopedstrPlatform, const ::scoped_string & scopedstrConfiguration);
542 virtual void get_folder_path_from_user(
::file::path& pathFolder);
547 virtual ::file::path command_find_path(const ::scoped_string & scopedstrCommand);
550 virtual void launch_application(
::particle* pparticle, const ::scoped_string & scopedstrAppId, const ::scoped_string & scopedstrParams,
554 virtual void shell_open(const ::file::path& path, const ::scoped_string & scopedstrParams =
"",
555 const ::file::path& pathFolder = {});
561 virtual void shell_execute_async(const ::scoped_string& scopedstrFile, const ::scoped_string& scopedstrParams,
562 const ::file::path& pathWorkingDirectory = {});
565 virtual ::i32 shell_execute_sync(const ::scoped_string& scopedstrFile, const ::scoped_string& scopedstrParams,
566 const class time& timeTimeout = 1_minute,
567 const ::file::path& pathWorkingDirectory = {});
570 virtual void root_execute_async(const ::scoped_string& scopedstrFile, const ::scoped_string& scopedstrParams,
571 const ::file::path& pathWorkingDirectory = {});
574 virtual ::i32 root_execute_sync(const ::scoped_string& scopedstrFile, const ::scoped_string& scopedstrParams,
575 const class time& timeTimeout = 1_minute,
576 const ::file::path& pathWorkingDirectory = {});
579 virtual void on_start_system();
582 virtual void create_app_shortcut(::platform::application* papplication);
585 virtual void report_exception_to_user(
::particle* pparticle, ::exception& exception,
586 const ::scoped_string & scopedstrMoreDetails);
589 virtual void shell_launch(const ::scoped_string & scopedstrAppId);
592 virtual bool has_application_capability(::enum_application_capability ecapability)
const;
595 virtual void add_application_capability(const ::enum_application_capability_array& ecapabilitya);
598 virtual void on_change_application_capability();
601 virtual string get_local_mutex_name(const ::scoped_string & scopedstrAppId);
604 virtual string get_local_id_mutex_name(const ::scoped_string & scopedstrAppId, const ::scoped_string & scopedstrId);
607 virtual string get_global_mutex_name(const ::scoped_string & scopedstrAppId);
610 virtual string get_global_id_mutex_name(const ::scoped_string & scopedstrAppId, const ::scoped_string & scopedstrId);
616 virtual ::process_identifier current_process_identifier();
619 virtual bool stdin_has_input_events();
622 virtual void flush_stdin_input_events();
625 virtual void flush_stdin();
628 virtual void defer_update_call_stack();
634 virtual ::i32 get_call_stack_default_frame_count();
637 virtual void get_call_stack_frames(
void**
stack, ::i32& frame_count);
640 virtual string get_call_stack_trace(const ::scoped_string& scopedstrFormat = call_stack_default_format(),
641 ::i32 iSkip = CALLSTACK_DEFAULT_SKIP_TRIGGER,
void* caller_address =
nullptr,
645 virtual string get_call_stack_trace(
void**
stack, ::i32 frame_count,
646 const ::scoped_string& scopedstrFormat = call_stack_default_format(),
647 ::i32 iSkip = CALLSTACK_DEFAULT_SKIP_TRIGGER,
void* caller_address =
nullptr,
652 virtual string _get_call_stack_trace(const ::scoped_string& scopedstrFormat = call_stack_default_format(),
653 ::i32 iSkip = CALLSTACK_DEFAULT_SKIP_TRIGGER,
void* caller_address =
nullptr,
657 virtual string _get_call_stack_trace(
void**
stack, ::i32 frame_count,
658 const ::scoped_string& scopedstrFormat = call_stack_default_format(),
659 ::i32 iSkip = CALLSTACK_DEFAULT_SKIP_TRIGGER,
void* caller_address =
nullptr,
663 virtual ::string get_command_line();
669 virtual ::i32 get_current_processor_index();
672 virtual ::i32 get_current_process_maximum_affinity();
675 virtual ::i32 get_current_process_affinity_order();
678 virtual ::u64 translate_processor_affinity(::i32 i);
692 virtual bool set_process_priority(::enum_priority epriority);
737 virtual string process_configuration_name();
740 virtual string time_binary_platform(const ::scoped_string & scopedstrPlatform);
743 virtual string process_platform_name();
747 virtual string process_version_dir_name();
750 virtual ::file::path core_app_path(const ::scoped_string & scopedstrApp);
771 virtual string executable_title_from_appid(const ::scoped_string & scopedstrAppId);
780 virtual ::i32 is_debug_build();
783 virtual ::i32 is_release_build();
796 virtual ::pointer<::file::file_dialog> node_file_dialog();
799 virtual ::pointer<::file::folder_dialog> node_folder_dialog();
802 virtual ::file::path library_file_name(const ::scoped_string& scopedstr);
805 virtual ::string default_component_implementation(const ::scoped_string& scopedstrComponentName);
808 virtual void integration_factory();
814 virtual ::string get_user_permanent_environment_variable(const ::scoped_string& scopedstr);
817 virtual ::string get_system_permanent_environment_variable(const ::scoped_string& scopedstr);
820 virtual void set_user_permanent_environment_variable(const ::scoped_string& scopedstr,
821 const ::scoped_string& strPayload,
822 bool bNoSystemNotify =
false);
825 virtual void system_notify_environment_variable_change();
828 virtual void update_process_environment_variables();
831 virtual void set_user_run_once(const ::scoped_string& scopedstrLabel, const ::scoped_string& scopedstrCommand);
834 virtual ::string operating_system_store_release();
837 virtual ::pointer<::operating_system::summary> operating_system_summary();
854 virtual ::string get_character_set_default_sample_text(enum_character_set echaracterset);
857 virtual void load_character_set_default_sample_text();
860 virtual void play_sound(const ::file::path& path);
865 virtual ::string operating_system_application_version();
870 virtual bool is_application_running_good_effort(const ::scoped_string& scopedstrRepos,
871 const ::scoped_string& scopedstrApp);
874 virtual bool are_framework_shared_libraries_busy(const ::scoped_string& scopedstrRepos,
875 const ::scoped_string& scopedstrApp);
877 virtual bool are_any_shared_libraries_mapped(const ::file::path_array_base & patha);
880 virtual ::string get_error_code_message(const ::error_code& errorcode);
886 virtual bool defer_process_protocol_path(
::file::path& path);
894 virtual void shutdown(
bool bPowerOff);
897 virtual void terminate_processes_by_title(const ::scoped_string & scopedstrName);
904 virtual ::process_identifier_array module_path_processes_identifiers(const ::scoped_string& scopedstrName);
907 virtual ::process_identifier_array title_processes_identifiers(const ::scoped_string& scopedstrName);
916 virtual ::payload connection_settings_get_auto_detect();
919 virtual ::payload connection_settings_get_auto_config_url();
921 virtual void open_internet_link_in_browser(const ::scoped_string& scopedstrUrl,
922 const ::scoped_string& scopedstrBrowser,
923 const ::scoped_string& scopedstrProfile = {}, const ::scoped_string & scopedstrTarget = {});
925 virtual void open_internet_link(const ::scoped_string& scopedstrUrl, const ::scoped_string& scopedstrProfile = {}, const ::scoped_string & scopedstrTarget = {});
928 virtual void local_machine_set_run(const ::scoped_string & scopedstrKey, const ::file::path& pathExecutable,
929 const ::scoped_string & scopedstrArguments,
bool bSet);
932 virtual void local_machine_set_run_once(const ::scoped_string & scopedstrKey, const ::file::path& pathExecutable,
933 const ::scoped_string & scopedstrArguments,
bool bSet);
936 virtual void current_user_set_run(const ::scoped_string & scopedstrKey, const ::file::path& pathExecutable,
937 const ::scoped_string & scopedstrArguments,
bool bSet);
940 virtual void current_user_set_run_once(const ::scoped_string & scopedstrKey, const ::file::path& pathExecutable,
941 const ::scoped_string & scopedstrArguments,
bool bSet);
944 virtual void defer_register_ca2_plugin_for_mozilla();
947 virtual void file_extension_get_open_with_list_keys(string_array_base& straKey, const ::scoped_string& scopedstrExtension);
950 virtual void file_extension_get_open_with_list_commands(string_array_base& straCommand, const ::scoped_string& scopedstrExtension);
953 virtual void file_association_set_default_icon(const ::scoped_string& scopedstrExtension,
954 const ::scoped_string& scopedstrExtensionNamingClass,
955 const ::file::path & pathIconPath);
958 virtual void file_association_set_shell_open_command(const ::scoped_string& scopedstrExtension,
959 const ::scoped_string& scopedstrExtensionNamingClass,
960 const ::file::path & pathExecutable,
961 const ::scoped_string & scopedstrParam);
964 virtual void file_association_get_shell_open_command(const ::scoped_string& scopedstrExtension,
965 string& strExtensionNamingClass,
string& strCommand,
969 virtual void native_full_web_browser(const ::scoped_string & scopedstr);
972 virtual void native_modern_web_browser(const ::scoped_string & scopedstr);
975 virtual void enable_service();
978 virtual void disable_service();
981 virtual void start_service();
984 virtual void stop_service();
987 virtual void enable_service(const ::scoped_string & scopedstrServiceName, const ::scoped_string & scopedstrDisplayName,
988 const ::scoped_string & scopedstrCommand, const ::scoped_string & scopedstrUser =
"",
989 const ::scoped_string & scopedstrPass =
"");
992 virtual void disable_service(const ::scoped_string & scopedstrServiceName);
995 virtual void start_service(const ::scoped_string & scopedstrServiceName);
998 virtual void stop_service(const ::scoped_string & scopedstrServiceName);
1005 virtual bool is_remote_session();
1008 virtual void set_file_status(const ::file::path& path, const ::file::file_status&
status);
1015 virtual bool has_alias_in_path(const ::scoped_string& scopedstr,
bool bNoUI =
false,
bool bNoMount =
false);
1018 virtual bool is_alias(const ::file::path& path);
1021 virtual void initialize_wallpaper_fileset(::file::set* pfileset,
bool bAddSearch);
1026 virtual void file_open(const ::file::path& path, const ::scoped_string & scopedstrParams =
"",
1027 const ::file::path& pathFolder =
"");
1030 virtual void hidden_start(const ::file::path& path, const ::scoped_string & scopedstrParams =
"",
1031 const ::file::path& pathFolder =
"");
1034 virtual void hidden_run(
const class time& timeWait, const ::file::path& path, const ::scoped_string & scopedstrParams =
"",
1035 const ::file::path& pathFolder =
"");
1038 virtual string get_default_browser();
1041 virtual void get_default_browser(
string& strId,
::file::path& path,
string& strParam);
1044 virtual void set_default_browser();
1047 virtual void set_file_extension_mime_type(::get_file_extension_mime_type* pgetfileextensionmimetype);
1050 virtual void set_file_extension_mime_type(string_array_base& straExtension, string_array_base& straMimeType);
1053 virtual void register_user_auto_start(::platform::application* papplication, const ::scoped_string & scopedstrArguments,
1057 virtual bool is_user_auto_start(const ::scoped_string & scopedstrAppId);
1060 virtual ::file::path get_app_path(const ::scoped_string & scopedstrApp);
1063 virtual void on_process_request(
::request* prequest);
1097 virtual void broadcast_environment_variable_change();
1100 virtual void set_this_application_as_default_for_file_extension(const ::scoped_string & scopedstrExtension);
1103 string get_file_extension_mime_type(const ::scoped_string & scopedstrExtension);
1108 virtual enum_linux_distribution get_linux_distribution()
const;
1113 virtual void calculate_linux_distribution();
1117#if !defined(WINDOWS)
1118 virtual string_array_base cmdline_from_pid(::process_identifier processidentifier);
1119 virtual atom_array app_get_pid(const ::scoped_string & scopedstrModuleName);
1126 virtual error_code defer_co_initialize_ex(
bool bMultiThread,
bool bDisableOleDDE =
false);
1138#ifdef WINDOWS_DESKTOP
1143 virtual void register_dll(const ::file::path& pathDll);
1146 virtual ::e_status _defer_beta_use_unicode_utf8();
1149 virtual ::e_status _defer_enable_coder_mode();
1152 virtual bool _has_beta_use_unicode_utf8();
1155 virtual bool _is_visual_studio_installed();
1158 virtual bool _is_tortoise_git_installed();
1161 virtual bool _is_msys2_installed();
1170 virtual bool _is_strawberry_perl_installed();
1173 virtual bool _is_coder_mode_enabled();
1176 virtual void _enable_coder_mode(
bool bEnable =
true);
1180 virtual bool _is_code_exe_user_path_environment_variable_ok(::string* pstrCorrectPath =
nullptr,
1181 const_char_pointer pszPath =
nullptr);
1183#if defined(WINDOWS_DESKTOP) || defined(MACOS) || defined(LINUX)
1185 virtual bool _is_smart_git_installed();
1189 virtual bool _is_google_drive_installed();
1195 virtual bool _is_onedrive_installed();
1201 virtual void calculate_onedrive_installed();
1204 virtual bool _is_google_chrome_installed();
1207 virtual bool _is_opera_browser_installed();
1210 virtual bool _is_visual_studio_code_installed();
1213 virtual bool _is_git_credential_manager_installed();
1216 virtual bool _is_jetbrains_clion_installed();
1219 virtual bool _is_shell_patched();
1221#ifndef UNIVERSAL_WINDOWS
1223 virtual ::array<::serial::port_info> list_serial_ports();
1247#if defined(__BSD__) || defined(__APPLE__)
1249 virtual void arp_a(
void *p,
void(*callback)(
void * p, ::u32 uIp, const_char_pointer
status));
1253 virtual ::string eol();
1256 virtual ::i32 building_core_count(
bool bDedicatedBuilding);
1259 virtual ::i32 performance_core_count();
1262 virtual ::i32 efficiency_core_count();
1265 virtual bool defer_component_factory(const ::scoped_string& scopedstrComponent);
1268 virtual void detached_command(const ::scoped_string& scopedstrCommand, const ::file::path& pathLog);
1277 virtual bool _get_monitor_rectangle(::collection::index iMonitor, ::i32_rectangle& rectangle);
1280 virtual bool _get_workspace_rectangle(::collection::index iWorkspace, ::i32_rectangle& rectangle);
1283 virtual void realize(::particle_pointer pparticle);
1286 virtual ::string get_computer_name();
1289 virtual ::string system_name();
1290 virtual ::string system_release();
1291 virtual ::string system_architecture();
1294 virtual void protocol_set_data(const ::file::path & path, const ::block &
block);
1295 virtual ::memory protocol_get_data(const ::file::path & path);
1298 virtual void on_protocol_set_data(const ::scoped_string & scopedstrProtocol, const ::scoped_string & scopedstrPath, const ::block &
block);
1299 virtual ::memory on_protocol_get_data(const ::scoped_string & scopedstrProtocol, const ::scoped_string & scopedstrPath);
1302 virtual void post_media_store_operation(
::data::block * pdatablock);
1304 virtual void restart_application();