/// <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); } }