/// <summary> /// This function should be called from the application entry point function to /// execute a secondary process. It can be used to run secondary processes from /// the browser client executable (default behavior) or from a separate /// executable specified by the CefSettings.browser_subprocess_path value. If /// called for the browser process (identified by no "type" command-line value) /// it will return immediately with a value of -1. If called for a recognized /// secondary process it will block until the process should exit and then return /// the process exit code. The |application| parameter may be empty. /// </summary> public static int ExecuteProcess(CefMainArgs args, CefApp application) { LoadIfNeed(); var n_args = args.ToNative(); var n_app = application != null?application.ToNative() : null; try { return(libcef.execute_process(n_args, n_app)); } finally { CefMainArgs.Free(n_args); } }
/// <summary> /// This function should be called on the main application thread to initialize /// the CEF browser process. The |application| parameter may be empty. A return /// value of true indicates that it succeeded and false indicates that it failed. /// </summary> public static void Initialize(CefMainArgs args, CefSettings settings, CefApp application) { LoadIfNeed(); if (args == null) { throw new ArgumentNullException("args"); } if (settings == null) { throw new ArgumentNullException("settings"); } // if (_initialized) throw ExceptionBuilder.CefRuntimeAlreadyInitialized(); var n_main_args = args.ToNative(); var n_settings = settings.ToNative(); var n_app = application != null?application.ToNative() : null; try { if (libcef.initialize(n_main_args, n_settings, n_app) != 0) { _initialized = true; } else { throw ExceptionBuilder.CefRuntimeFailedToInitialize(); } } finally { CefMainArgs.Free(n_main_args); CefSettings.Free(n_settings); } }