/// <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. The /// |windows_sandbox_info| parameter is only used on Windows and may be NULL (see /// cef_sandbox_win.h for details). /// </summary> public static int ExecuteProcess(CefMainArgs args, CefApp application, IntPtr windowsSandboxInfo) { LoadIfNeed(); var n_args = args.ToNative(); var n_app = application != null?application.ToNative() : null; try { return(libcef.execute_process(n_args, n_app, (void *)windowsSandboxInfo)); } 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. /// The |windows_sandbox_info| parameter is only used on Windows and may be NULL /// (see cef_sandbox_win.h for details). /// </summary> public static void Initialize(CefMainArgs args, CefSettings settings, CefApp application, IntPtr windowsSandboxInfo) { 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, (void *)windowsSandboxInfo) != 0) { _initialized = true; } else { throw ExceptionBuilder.CefRuntimeFailedToInitialize(); } } finally { CefMainArgs.Free(n_main_args); CefSettings.Free(n_settings); } }