Showing preview only (4,692K chars total). Download the full file or copy to clipboard to get everything.
Repository: CodeBees/CEFWebkitBrowser
Branch: master
Commit: 909a7f3532c8
Files: 443
Total size: 49.9 MB
Directory structure:
gitextract_f2ea7q17/
├── .gitignore
├── BrowserHandlers.cc
├── BrowserHandlers.h
├── CEF/
│ ├── Release/
│ │ ├── libcef.lib
│ │ └── libcef_dll_wrapper.lib
│ └── include/
│ ├── base/
│ │ ├── cef_atomic_ref_count.h
│ │ ├── cef_atomicops.h
│ │ ├── cef_basictypes.h
│ │ ├── cef_bind.h
│ │ ├── cef_bind_helpers.h
│ │ ├── cef_build.h
│ │ ├── cef_callback.h
│ │ ├── cef_callback_forward.h
│ │ ├── cef_callback_helpers.h
│ │ ├── cef_callback_list.h
│ │ ├── cef_cancelable_callback.h
│ │ ├── cef_lock.h
│ │ ├── cef_logging.h
│ │ ├── cef_macros.h
│ │ ├── cef_move.h
│ │ ├── cef_platform_thread.h
│ │ ├── cef_ref_counted.h
│ │ ├── cef_scoped_ptr.h
│ │ ├── cef_string16.h
│ │ ├── cef_template_util.h
│ │ ├── cef_thread_checker.h
│ │ ├── cef_thread_collision_warner.h
│ │ ├── cef_trace_event.h
│ │ ├── cef_tuple.h
│ │ ├── cef_weak_ptr.h
│ │ └── internal/
│ │ ├── cef_atomicops_x86_msvc.h
│ │ ├── cef_bind_internal.h
│ │ ├── cef_bind_internal_win.h
│ │ ├── cef_callback_internal.h
│ │ ├── cef_lock_impl.h
│ │ ├── cef_raw_scoped_refptr_mismatch_checker.h
│ │ └── cef_thread_checker_impl.h
│ ├── capi/
│ │ ├── cef_app_capi.h
│ │ ├── cef_auth_callback_capi.h
│ │ ├── cef_base_capi.h
│ │ ├── cef_browser_capi.h
│ │ ├── cef_browser_process_handler_capi.h
│ │ ├── cef_callback_capi.h
│ │ ├── cef_client_capi.h
│ │ ├── cef_command_line_capi.h
│ │ ├── cef_context_menu_handler_capi.h
│ │ ├── cef_cookie_capi.h
│ │ ├── cef_dialog_handler_capi.h
│ │ ├── cef_display_handler_capi.h
│ │ ├── cef_dom_capi.h
│ │ ├── cef_download_handler_capi.h
│ │ ├── cef_download_item_capi.h
│ │ ├── cef_drag_data_capi.h
│ │ ├── cef_drag_handler_capi.h
│ │ ├── cef_find_handler_capi.h
│ │ ├── cef_focus_handler_capi.h
│ │ ├── cef_frame_capi.h
│ │ ├── cef_geolocation_capi.h
│ │ ├── cef_geolocation_handler_capi.h
│ │ ├── cef_image_capi.h
│ │ ├── cef_jsdialog_handler_capi.h
│ │ ├── cef_keyboard_handler_capi.h
│ │ ├── cef_life_span_handler_capi.h
│ │ ├── cef_load_handler_capi.h
│ │ ├── cef_menu_model_capi.h
│ │ ├── cef_menu_model_delegate_capi.h
│ │ ├── cef_navigation_entry_capi.h
│ │ ├── cef_origin_whitelist_capi.h
│ │ ├── cef_parser_capi.h
│ │ ├── cef_path_util_capi.h
│ │ ├── cef_print_handler_capi.h
│ │ ├── cef_print_settings_capi.h
│ │ ├── cef_process_message_capi.h
│ │ ├── cef_process_util_capi.h
│ │ ├── cef_render_handler_capi.h
│ │ ├── cef_render_process_handler_capi.h
│ │ ├── cef_request_capi.h
│ │ ├── cef_request_context_capi.h
│ │ ├── cef_request_context_handler_capi.h
│ │ ├── cef_request_handler_capi.h
│ │ ├── cef_resource_bundle_capi.h
│ │ ├── cef_resource_bundle_handler_capi.h
│ │ ├── cef_resource_handler_capi.h
│ │ ├── cef_response_capi.h
│ │ ├── cef_response_filter_capi.h
│ │ ├── cef_scheme_capi.h
│ │ ├── cef_ssl_info_capi.h
│ │ ├── cef_stream_capi.h
│ │ ├── cef_string_visitor_capi.h
│ │ ├── cef_task_capi.h
│ │ ├── cef_trace_capi.h
│ │ ├── cef_urlrequest_capi.h
│ │ ├── cef_v8_capi.h
│ │ ├── cef_values_capi.h
│ │ ├── cef_web_plugin_capi.h
│ │ ├── cef_xml_reader_capi.h
│ │ ├── cef_zip_reader_capi.h
│ │ └── views/
│ │ ├── cef_box_layout_capi.h
│ │ ├── cef_browser_view_capi.h
│ │ ├── cef_browser_view_delegate_capi.h
│ │ ├── cef_button_capi.h
│ │ ├── cef_button_delegate_capi.h
│ │ ├── cef_display_capi.h
│ │ ├── cef_fill_layout_capi.h
│ │ ├── cef_label_button_capi.h
│ │ ├── cef_layout_capi.h
│ │ ├── cef_menu_button_capi.h
│ │ ├── cef_menu_button_delegate_capi.h
│ │ ├── cef_panel_capi.h
│ │ ├── cef_panel_delegate_capi.h
│ │ ├── cef_scroll_view_capi.h
│ │ ├── cef_textfield_capi.h
│ │ ├── cef_textfield_delegate_capi.h
│ │ ├── cef_view_capi.h
│ │ ├── cef_view_delegate_capi.h
│ │ ├── cef_window_capi.h
│ │ └── cef_window_delegate_capi.h
│ ├── cef_app.h
│ ├── cef_auth_callback.h
│ ├── cef_base.h
│ ├── cef_browser.h
│ ├── cef_browser_process_handler.h
│ ├── cef_callback.h
│ ├── cef_client.h
│ ├── cef_command_line.h
│ ├── cef_context_menu_handler.h
│ ├── cef_cookie.h
│ ├── cef_dialog_handler.h
│ ├── cef_display_handler.h
│ ├── cef_dom.h
│ ├── cef_download_handler.h
│ ├── cef_download_item.h
│ ├── cef_drag_data.h
│ ├── cef_drag_handler.h
│ ├── cef_find_handler.h
│ ├── cef_focus_handler.h
│ ├── cef_frame.h
│ ├── cef_geolocation.h
│ ├── cef_geolocation_handler.h
│ ├── cef_image.h
│ ├── cef_jsdialog_handler.h
│ ├── cef_keyboard_handler.h
│ ├── cef_life_span_handler.h
│ ├── cef_load_handler.h
│ ├── cef_menu_model.h
│ ├── cef_menu_model_delegate.h
│ ├── cef_navigation_entry.h
│ ├── cef_origin_whitelist.h
│ ├── cef_pack_resources.h
│ ├── cef_pack_strings.h
│ ├── cef_parser.h
│ ├── cef_path_util.h
│ ├── cef_print_handler.h
│ ├── cef_print_settings.h
│ ├── cef_process_message.h
│ ├── cef_process_util.h
│ ├── cef_render_handler.h
│ ├── cef_render_process_handler.h
│ ├── cef_request.h
│ ├── cef_request_context.h
│ ├── cef_request_context_handler.h
│ ├── cef_request_handler.h
│ ├── cef_resource_bundle.h
│ ├── cef_resource_bundle_handler.h
│ ├── cef_resource_handler.h
│ ├── cef_response.h
│ ├── cef_response_filter.h
│ ├── cef_sandbox_win.h
│ ├── cef_scheme.h
│ ├── cef_ssl_info.h
│ ├── cef_stream.h
│ ├── cef_string_visitor.h
│ ├── cef_task.h
│ ├── cef_trace.h
│ ├── cef_urlrequest.h
│ ├── cef_v8.h
│ ├── cef_values.h
│ ├── cef_version.h
│ ├── cef_web_plugin.h
│ ├── cef_xml_reader.h
│ ├── cef_zip_reader.h
│ ├── internal/
│ │ ├── cef_export.h
│ │ ├── cef_logging_internal.h
│ │ ├── cef_ptr.h
│ │ ├── cef_string.h
│ │ ├── cef_string_list.h
│ │ ├── cef_string_map.h
│ │ ├── cef_string_multimap.h
│ │ ├── cef_string_types.h
│ │ ├── cef_string_wrappers.h
│ │ ├── cef_thread_internal.h
│ │ ├── cef_time.h
│ │ ├── cef_trace_event_internal.h
│ │ ├── cef_types.h
│ │ ├── cef_types_win.h
│ │ ├── cef_types_wrappers.h
│ │ └── cef_win.h
│ ├── views/
│ │ ├── cef_box_layout.h
│ │ ├── cef_browser_view.h
│ │ ├── cef_browser_view_delegate.h
│ │ ├── cef_button.h
│ │ ├── cef_button_delegate.h
│ │ ├── cef_display.h
│ │ ├── cef_fill_layout.h
│ │ ├── cef_label_button.h
│ │ ├── cef_layout.h
│ │ ├── cef_menu_button.h
│ │ ├── cef_menu_button_delegate.h
│ │ ├── cef_panel.h
│ │ ├── cef_panel_delegate.h
│ │ ├── cef_scroll_view.h
│ │ ├── cef_textfield.h
│ │ ├── cef_textfield_delegate.h
│ │ ├── cef_view.h
│ │ ├── cef_view_delegate.h
│ │ ├── cef_window.h
│ │ └── cef_window_delegate.h
│ └── wrapper/
│ ├── cef_byte_read_handler.h
│ ├── cef_closure_task.h
│ ├── cef_helpers.h
│ ├── cef_message_router.h
│ ├── cef_resource_manager.h
│ ├── cef_stream_resource_handler.h
│ ├── cef_xml_object.h
│ └── cef_zip_archive.h
├── CEFV8HandlerEx.cc
├── CEFV8HandlerEx.h
├── CEFWebkit.cc
├── CEFWebkit.h
├── CEFWebkitBrowser.cc
├── CEFWebkitBrowser.h
├── CEFWebkitBrowser.rc
├── CEFWebkitBrowser.sln
├── CEFWebkitBrowser.vcxproj
├── CEFWebkitBrowser.vcxproj.filters
├── CEFWebkitBrowser.vcxproj.user
├── DuiLib/
│ ├── Control/
│ │ ├── UIActiveX.cpp
│ │ ├── UIActiveX.h
│ │ ├── UIAnimation.cpp
│ │ ├── UIAnimation.h
│ │ ├── UIButton.cpp
│ │ ├── UIButton.h
│ │ ├── UICheckBox.cpp
│ │ ├── UICheckBox.h
│ │ ├── UIColorPalette.cpp
│ │ ├── UIColorPalette.h
│ │ ├── UICombo.cpp
│ │ ├── UICombo.h
│ │ ├── UIComboBox.cpp
│ │ ├── UIComboBox.h
│ │ ├── UIDateTime.cpp
│ │ ├── UIDateTime.h
│ │ ├── UIEdit.cpp
│ │ ├── UIEdit.h
│ │ ├── UIFadeButton.cpp
│ │ ├── UIFadeButton.h
│ │ ├── UIFlash.cpp
│ │ ├── UIFlash.h
│ │ ├── UIHyperlink.cpp
│ │ ├── UIHyperlink.h
│ │ ├── UIIpAddress.cpp
│ │ ├── UIIpAddress.h
│ │ ├── UILabel.cpp
│ │ ├── UILabel.h
│ │ ├── UIList.cpp
│ │ ├── UIList.h
│ │ ├── UIMediaPlayer.cpp
│ │ ├── UIMediaPlayer.h
│ │ ├── UIOption.cpp
│ │ ├── UIOption.h
│ │ ├── UIProgress.cpp
│ │ ├── UIProgress.h
│ │ ├── UIRichEdit.cpp
│ │ ├── UIRichEdit.h
│ │ ├── UIScrollBar.cpp
│ │ ├── UIScrollBar.h
│ │ ├── UISlider.cpp
│ │ ├── UISlider.h
│ │ ├── UIText.cpp
│ │ ├── UIText.h
│ │ ├── UITreeView.cpp
│ │ ├── UITreeView.h
│ │ ├── UIWebBrowser.cpp
│ │ └── UIWebBrowser.h
│ ├── Core/
│ │ ├── UIBase.cpp
│ │ ├── UIBase.h
│ │ ├── UIContainer - 副本.cpp
│ │ ├── UIContainer - 副本.h
│ │ ├── UIContainer.cpp
│ │ ├── UIContainer.h
│ │ ├── UIControl.cpp
│ │ ├── UIControl.h
│ │ ├── UIDefine.h
│ │ ├── UIDlgBuilder.cpp
│ │ ├── UIDlgBuilder.h
│ │ ├── UIManager.cpp
│ │ ├── UIManager.h
│ │ ├── UIMarkup.cpp
│ │ ├── UIMarkup.h
│ │ ├── UIRender.cpp
│ │ └── UIRender.h
│ ├── DuiLib.vcproj
│ ├── DuiLib.vcxproj
│ ├── DuiLib.vcxproj.filters
│ ├── Ex/
│ │ └── ShadowWindow.h
│ ├── Layout/
│ │ ├── UIChildLayout.cpp
│ │ ├── UIChildLayout.h
│ │ ├── UIHorizontalLayout.cpp
│ │ ├── UIHorizontalLayout.h
│ │ ├── UITabLayout.cpp
│ │ ├── UITabLayout.h
│ │ ├── UITileLayout.cpp
│ │ ├── UITileLayout.h
│ │ ├── UIVerticalLayout.cpp
│ │ └── UIVerticalLayout.h
│ ├── StdAfx.cpp
│ ├── StdAfx.h
│ ├── UIlib.cpp
│ ├── UIlib.h
│ └── Utils/
│ ├── Flash11.tlb
│ ├── FlashEventHandler.h
│ ├── UIDelegate.cpp
│ ├── UIDelegate.h
│ ├── UnCompression.h
│ ├── Utils.cpp
│ ├── Utils.h
│ ├── WebBrowserEventHandler.h
│ ├── WinImplBase.cpp
│ ├── WinImplBase.h
│ ├── Zip/
│ │ ├── XUnZip.cpp
│ │ ├── XUnZip.h
│ │ └── XUnZipBase.h
│ ├── downloadmgr.h
│ ├── stb_image.c
│ ├── stb_image.h
│ ├── wmp.tlh
│ └── wmp.tli
├── Entry.cc
├── HookFlash/
│ ├── EasyHook/
│ │ ├── EasyHook32.lib
│ │ ├── EasyHook64.lib
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── easyhook.h
│ ├── HookFlash.cpp
│ ├── HookFlash.h
│ ├── HookFlash.vcxproj
│ ├── HookFlash.vcxproj.filters
│ ├── HookFlash.vcxproj.user
│ ├── ReadMe.txt
│ ├── dllmain.cpp
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
├── LICENSE
├── MiniDumper.cpp
├── MiniDumper.h
├── README.md
├── ReadMe.txt
├── Resource.h
├── bin/
│ ├── Skin/
│ │ └── skin.xml
│ ├── cef.pak
│ ├── cef_100_percent.pak
│ ├── cef_200_percent.pak
│ ├── cef_extensions.pak
│ ├── devtools_resources.pak
│ ├── htmlexample/
│ │ ├── css/
│ │ │ ├── style.css
│ │ │ ├── style_1_common.css
│ │ │ ├── text.css
│ │ │ └── tree.css
│ │ ├── index.html
│ │ └── src/
│ │ ├── css/
│ │ │ ├── style.css
│ │ │ ├── text.css
│ │ │ └── tree.css
│ │ └── js/
│ │ ├── common.js
│ │ ├── common52.js
│ │ ├── fancybox/
│ │ │ ├── jquery.easing-1.3.pack.js
│ │ │ ├── jquery.fancybox-1.3.4.css
│ │ │ ├── jquery.fancybox-1.3.4.js
│ │ │ ├── jquery.fancybox-1.3.4.pack.js
│ │ │ └── jquery.mousewheel-3.0.4.pack.js
│ │ ├── scrolltop.js
│ │ └── tree/
│ │ ├── tree.css
│ │ └── tree.js
│ ├── locales/
│ │ ├── am.pak
│ │ ├── ar.pak
│ │ ├── bg.pak
│ │ ├── bn.pak
│ │ ├── ca.pak
│ │ ├── cs.pak
│ │ ├── da.pak
│ │ ├── de.pak
│ │ ├── el.pak
│ │ ├── en-GB.pak
│ │ ├── en-US.pak
│ │ ├── es-419.pak
│ │ ├── es.pak
│ │ ├── et.pak
│ │ ├── fa.pak
│ │ ├── fi.pak
│ │ ├── fil.pak
│ │ ├── fr.pak
│ │ ├── gu.pak
│ │ ├── he.pak
│ │ ├── hi.pak
│ │ ├── hr.pak
│ │ ├── hu.pak
│ │ ├── id.pak
│ │ ├── it.pak
│ │ ├── ja.pak
│ │ ├── kn.pak
│ │ ├── ko.pak
│ │ ├── lt.pak
│ │ ├── lv.pak
│ │ ├── ml.pak
│ │ ├── mr.pak
│ │ ├── ms.pak
│ │ ├── nb.pak
│ │ ├── nl.pak
│ │ ├── pl.pak
│ │ ├── pt-BR.pak
│ │ ├── pt-PT.pak
│ │ ├── ro.pak
│ │ ├── ru.pak
│ │ ├── sk.pak
│ │ ├── sl.pak
│ │ ├── sr.pak
│ │ ├── sv.pak
│ │ ├── sw.pak
│ │ ├── ta.pak
│ │ ├── te.pak
│ │ ├── th.pak
│ │ ├── tr.pak
│ │ ├── uk.pak
│ │ ├── vi.pak
│ │ ├── zh-CN.pak
│ │ └── zh-TW.pak
│ └── ppflash/
│ └── 18_0_0_209/
│ └── manifest.json
├── chromium命令行参数.docx
├── clientapp.cc
├── clientapp.h
├── stdafx.cpp
├── stdafx.h
└── targetver.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
# Executables
*.exe
*.out
*.app
================================================
FILE: BrowserHandlers.cc
================================================
#include "stdafx.h"
#include "BrowserHandlers.h"
#include <wrapper/cef_helpers.h>
#include <base/cef_bind.h>
//TID_UI ̡߳߳ӦóڵõCefInitialize()ʱCefSettings.multi_threaded_message_loop = false߳ҲӦó̡߳
//TID_IO ߳ҪIPCϢԼͨš
//TID_FILE ̸߳ļϵͳ
// 1. User clicks the window close button which sends an OS close
// notification (e.g. WM_CLOSE on Windows, performClose: on OS-X and
// "delete_event" on Linux).
// 2. Application's top-level window receives the close notification and:
// A. Calls CefBrowserHost::CloseBrowser(false).
// B. Cancels the window close.
// 3. JavaScript 'onbeforeunload' handler executes and shows the close
// confirmation dialog (which can be overridden via
// CefJSDialogHandler::OnBeforeUnloadDialog()).
// 4. User approves the close.
// 5. JavaScript 'onunload' handler executes.
// 6. Application's DoClose() handler is called. Application will:
// A. Set a flag to indicate that the next close attempt will be allowed.
// B. Return false.
// 7. CEF sends an OS close notification.
// 8. Application's top-level window receives the OS close notification and
// allows the window to close based on the flag from #6B.
// 9. Browser OS window is destroyed.
// 10. Application's CefLifeSpanHandler::OnBeforeClose() handler is called and
// the browser object is destroyed.
// 11. Application exits by calling CefQuitMessageLoop() if no other browsers
// exist.
///
CCefClientHandler::CCefClientHandler() :hWnd_(NULL), is_closing_(false)
{
}
CCefClientHandler::~CCefClientHandler()
{
}
// CefClient methods:
CefRefPtr<CefDisplayHandler> CCefClientHandler::GetDisplayHandler()
{
return this;
}
CefRefPtr<CefLifeSpanHandler> CCefClientHandler::GetLifeSpanHandler()
{
return this;
}
CefRefPtr<CefLoadHandler> CCefClientHandler::GetLoadHandler()
{
return this;
}
CefRefPtr<CefRequestHandler> CCefClientHandler::GetRequestHandler()
{
return this;
}
// һָbrowser
void CCefClientHandler::OnAfterCreated(CefRefPtr<CefBrowser> browser)
{
// Add to the list of existing browsers.
browser_list_.push_back(browser);
int nID = browser->GetIdentifier();
::PostMessage(hWnd_, UM_CEF_AFTERCREATED, nID, 0);
}
bool CCefClientHandler::DoClose(CefRefPtr<CefBrowser> browser)
{
//TID_UI ̡߳߳
CEF_REQUIRE_UI_THREAD();
// AutoLock lock_scope(this);
lock_.Acquire();
// Remove from the list of existing browsers.
BrowserList::iterator bit = browser_list_.begin();
for (; bit != browser_list_.end(); bit++)
{
if ((*bit)->IsSame(browser))
{
browser_list_.erase(bit);
browser = NULL;
break;
}
}
lock_.Release();
if (browser_list_.size() == 0) {
// Set a flag to indicate that the window close should be allowed.
is_closing_ = true;
::PostMessage(hWnd_, UM_CEF_POSTQUITMESSAGE, 0, 0);
}
return false;
}
void CCefClientHandler::OnBeforeClose(CefRefPtr<CefBrowser> browser)
{
CEF_REQUIRE_UI_THREAD();
AutoLock lock_scope(this);
// lock_.Acquire();
BrowserList::iterator bit = browser_list_.begin();
for (; bit != browser_list_.end(); bit++)
{
if ((*bit)->IsSame(browser))
{
browser_list_.erase(bit);
browser = NULL;
break;
}
}
if (browser_list_.empty())
{
is_closing_ = true;
::PostMessage(hWnd_, UM_CEF_POSTQUITMESSAGE, 0, 0);
// All browser windows have closed. Quit the application message loop.
//CefQuitMessageLoop();
//PostQuitMessage(0l);
}
// lock_.Release();
}
void CCefClientHandler::OnLoadStart(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame)
{
CEF_REQUIRE_UI_THREAD();
CefString* strTmpURL = new CefString(browser->GetMainFrame()->GetURL());
int nID = browser->GetIdentifier();
::PostMessage(hWnd_, UM_CEF_WEBLOADSTART, nID, (LPARAM)strTmpURL);
//return __super::OnLoadStart(browser, frame);
}
void CCefClientHandler::OnLoadEnd(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode)
{
CEF_REQUIRE_UI_THREAD();
CefString* strTmpURL = new CefString(browser->GetMainFrame()->GetURL());
int nID = browser->GetIdentifier();
::PostMessage(hWnd_, UM_CEF_WEBLOADEND, nID, (LPARAM)strTmpURL);
}
void CCefClientHandler::OnLoadError(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, ErrorCode errorCode, const CefString& errorText, const CefString& failedUrl)
{
CEF_REQUIRE_UI_THREAD();
// Don't display an error for downloaded files.
if (errorCode == ERR_ABORTED)
return;
// Display a load error message.
std::stringstream ss;
ss << "<html><body bgcolor=\"white\">"
"<h2>Failed to load URL " << std::string(failedUrl) <<
" with error " << std::string(errorText) << " (" << errorCode <<
").</h2></body></html>";
frame->LoadString(ss.str(), failedUrl);
}
void CCefClientHandler::OnTitleChange(CefRefPtr<CefBrowser> browser, const CefString& title)
{
CEF_REQUIRE_UI_THREAD();
// globally unique identifier for this browser
int nID = browser->GetIdentifier();
CefString* strTitle = new CefString(title);
::PostMessage(hWnd_, UM_CEF_WEBTITLECHANGE, nID, (LPARAM)strTitle);
}
bool CCefClientHandler::OnBeforePopup(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& target_url, const CefString& target_frame_name, CefLifeSpanHandler::WindowOpenDisposition target_disposition,
bool user_gesture, const CefPopupFeatures& popupFeatures, CefWindowInfo& windowInfo, CefRefPtr<CefClient>& client, CefBrowserSettings& settings, bool* no_javascript_access)
{
//ϢǵdeleteַԴ
CefString* strTargetURL = new CefString(target_url);
::PostMessage(hWnd_, UM_CEF_WEBLOADPOPUP, (WPARAM)0, (LPARAM)strTargetURL);
return true;
}
enum MyEnum
{
MENU_ID_USER_OPENLINK = MENU_ID_USER_FIRST + 200,
MENU_ID_USER_COPYLINK,
MENU_ID_USER_SHOWDEVTOOLS,
};
void CCefClientHandler::OnBeforeContextMenu(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefContextMenuParams> params, CefRefPtr<CefMenuModel> model)
{
//ԼҪIJ˵
cef_context_menu_type_flags_t flag = params->GetTypeFlags();
if (flag&CM_TYPEFLAG_LINK)
{
model->Clear(); //в˵
model->AddItem(MENU_ID_USER_OPENLINK, L"±ǩҳд(&T)");//Ӳ˵
model->AddSeparator(); //ӷָ
model->AddItem(MENU_ID_USER_COPYLINK, L"ӵַ(&C)");//Ӳ˵
//model->SetEnabled(MENU_ID_USER_OPENLINK, false); //ò˵
return;
}
if (flag & CM_TYPEFLAG_PAGE)
{//ͨҳҼϢ
model->SetLabel(MENU_ID_BACK, L"");
model->SetLabel(MENU_ID_FORWARD, L"ǰ");
model->AddSeparator();
model->AddItem(MENU_ID_RELOAD, L"ˢ");
model->AddItem(MENU_ID_RELOAD_NOCACHE, L"ǿˢ");
model->AddItem(MENU_ID_STOPLOAD, L"ֹͣ");
model->AddSeparator();
model->SetLabel(MENU_ID_PRINT, L"ӡ");
model->SetLabel(MENU_ID_VIEW_SOURCE, L"鿴Դ");
model->AddItem(MENU_ID_USER_SHOWDEVTOOLS, L"߹"); //"&Show DevTools");
}
if (flag & CM_TYPEFLAG_EDITABLE)
{//༭ҼϢ
model->SetLabel(MENU_ID_UNDO, L"");
model->SetLabel(MENU_ID_REDO, L"");
model->SetLabel(MENU_ID_CUT, L"");
model->SetLabel(MENU_ID_COPY, L"");
model->SetLabel(MENU_ID_PASTE, L"ճ");
model->SetLabel(MENU_ID_DELETE, L"ɾ");
model->SetLabel(MENU_ID_SELECT_ALL, L"ȫѡ");
}
}
bool CCefClientHandler::OnContextMenuCommand(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefContextMenuParams> params, int command_id, EventFlags event_flags)
{
//CefString strLinkURL;
CefString strURLLink;
CefString* strTargetURL = nullptr;
HGLOBAL hglbCopy;
LPTSTR lptstrCopy;
int nBuffLength = 0;
switch (command_id)
{
case MENU_ID_USER_OPENLINK:
strTargetURL = new CefString(params->GetLinkUrl());
::PostMessage(hWnd_, UM_CEF_WEBLOADPOPUP, (WPARAM)0, (LPARAM)strTargetURL);
break;
case MENU_ID_USER_COPYLINK:
if (!OpenClipboard(frame->GetBrowser().get()->GetHost().get()->GetWindowHandle()))
{
return FALSE;
}
EmptyClipboard();
strURLLink = params->GetUnfilteredLinkUrl();
if (strURLLink.length() != 0)
{
nBuffLength = (strURLLink.length() + 1) * sizeof(TCHAR);
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, nBuffLength);
if (hglbCopy == NULL)
{
CloseClipboard();
return FALSE;
}
// Lock the handle and copy the text to the buffer.
lptstrCopy = (LPTSTR)::GlobalLock(hglbCopy);
memset(lptstrCopy, '\0', nBuffLength);
memcpy(lptstrCopy, strURLLink.c_str(), nBuffLength - sizeof(TCHAR));
GlobalUnlock(hglbCopy); //
// Place the handle on the clipboard.
//SetClipboardData(CF_TEXT, hglbCopy);
SetClipboardData(CF_UNICODETEXT, hglbCopy);// CF_UNICODETEXTΪUnicode
}
CloseClipboard();
break;
case MENU_ID_USER_SHOWDEVTOOLS:
ShowDevelopTools(browser, CefPoint());
return true;
default:
break;
}
return false;
}
void CCefClientHandler::CloseHostBrowser(CefRefPtr<CefBrowser>browser, bool force_close)
{
if (!CefCurrentlyOn(TID_UI))
{
// Execute on the UI thread.
CefPostTask(TID_UI, base::Bind(&CCefClientHandler::CloseHostBrowser, this, browser, force_close));
return;
}
int nID = browser->GetIdentifier();
::PostMessage(hWnd_, UM_CEF_BROWSERCLOSE, nID, 0);
browser->GetHost()->CloseBrowser(force_close);
}
void CCefClientHandler::CloseAllBrowsers(bool force_close)
{
//if (!CefCurrentlyOn(TID_UI))
//{
// // Execute on the UI thread.
// CefPostTask(TID_UI, base::Bind(&CCefClientHandler::CloseAllBrowsers, this, force_close));
// return;
//}
lock_.Acquire();
if (browser_list_.empty()) {
return;
}
BrowserList::const_iterator it = browser_list_.begin();
for (; it != browser_list_.end(); ++it)
{
(*it)->GetHost()->CloseBrowser(force_close);
}
lock_.Release();
}
bool CCefClientHandler::IsClosing() const
{
return is_closing_;
}
void CCefClientHandler::ShowDevelopTools(CefRefPtr<CefBrowser> browser,const CefPoint& inspect_element_at) {CefWindowInfo windowInfo;CefBrowserSettings settings;
#if defined(OS_WIN)
//windowInfo.SetAsPopup(browser->GetHost()->GetWindowHandle(), "DevTools");
RECT rc = { 0,0,800,600 };
windowInfo.SetAsChild(hWnd_,rc);
#endif
browser->GetHost()->ShowDevTools(windowInfo, this, settings,inspect_element_at);
}
void CCefClientHandler::CloseDevelopTools(CefRefPtr<CefBrowser> browser)
{
browser->GetHost()->CloseDevTools();
}
================================================
FILE: BrowserHandlers.h
================================================
#pragma once
#include "stdafx.h"
#include <list>
#include "include/cef_base.h"
#include "include/cef_browser.h"
class CCefClientHandler : public CefClient,public CefDisplayHandler,public CefLifeSpanHandler,public CefLoadHandler,public CefRequestHandler, public CefContextMenuHandler
{
public:
CCefClientHandler();
~CCefClientHandler();
// CefClient methods:
virtual CefRefPtr<CefDisplayHandler> GetDisplayHandler() override;
virtual CefRefPtr<CefLifeSpanHandler> GetLifeSpanHandler() override;
virtual CefRefPtr<CefLoadHandler> GetLoadHandler() override;
virtual CefRefPtr<CefRequestHandler> GetRequestHandler() override;
virtual CefRefPtr<CefContextMenuHandler> GetContextMenuHandler() override{
return this;
}
// ----------------CefDisplayHandler methods:-------------------
virtual void OnTitleChange(CefRefPtr<CefBrowser> browser,const CefString& title) override;
//---------------- CefLifeSpanHandler methods:----------------------------
virtual bool OnBeforePopup(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& target_url, const CefString& target_frame_name,
CefLifeSpanHandler::WindowOpenDisposition target_disposition, bool user_gesture, const CefPopupFeatures& popupFeatures, CefWindowInfo& windowInfo, CefRefPtr<CefClient>& client, CefBrowserSettings& settings, bool* no_javascript_access) override;
virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser) override;
virtual bool DoClose(CefRefPtr<CefBrowser> browser) override;
virtual void OnBeforeClose(CefRefPtr<CefBrowser> browser) override;
// ----------------CefLoadHandler methods:---------------------------
virtual void OnLoadStart(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame) override;
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser,CefRefPtr<CefFrame> frame,int httpStatusCode) override;
virtual void OnLoadError(CefRefPtr<CefBrowser> browser,CefRefPtr<CefFrame> frame,ErrorCode errorCode,const CefString& errorText,const CefString& failedUrl) override;
//-----------------
//˵
virtual void OnBeforeContextMenu(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame,CefRefPtr<CefContextMenuParams> params, CefRefPtr<CefMenuModel> model) override;
virtual bool OnContextMenuCommand(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame,CefRefPtr<CefContextMenuParams> params, int command_id, EventFlags event_flags) override;
void CloseHostBrowser(CefRefPtr<CefBrowser>browser, bool force_close) ;
// Request that all existing browser windows close.
void CloseAllBrowsers(bool force_close);
bool IsClosing() const;
void ShowDevelopTools(CefRefPtr<CefBrowser> browser,const CefPoint& inspect_element_at);
void CloseDevelopTools(CefRefPtr<CefBrowser> browser);
public:
//CefRefPtr<CefBrowser> browser_;
HWND hWnd_; //Ϣľ
CefString strTitle_; //ַ
// List of existing browser windows. Only accessed on the CEF UI thread.
typedef std::vector<CefRefPtr<CefBrowser> > BrowserList;
BrowserList browser_list_;
private:
bool is_closing_;
// Include the default reference counting implementation.
IMPLEMENT_REFCOUNTING(CCefClientHandler);
//CEFö̼ܹ߳бҪʹͱհ֤ڶ̰ͬ߳ȫĴݡIMPLEMENT_LOCKINGṩLock()Unlock()ԼAutoLock֤ͬͬ
IMPLEMENT_LOCKING(CCefClientHandler);
};
================================================
FILE: CEF/Release/libcef_dll_wrapper.lib
================================================
[File too large to display: 45.5 MB]
================================================
FILE: CEF/include/base/cef_atomic_ref_count.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This is a low level implementation of atomic semantics for reference
// counting. Please use cef_ref_counted.h directly instead.
//
// The Chromium implementation includes annotations to avoid some false
// positives when using data race detection tools. Annotations are not
// currently supported by the CEF implementation.
#ifndef CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_
#define CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_
#pragma once
#if defined(BASE_ATOMIC_REF_COUNT_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/atomic_ref_count.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/cef_atomicops.h"
// Annotations are not currently supported.
#define ANNOTATE_HAPPENS_BEFORE(obj) /* empty */
#define ANNOTATE_HAPPENS_AFTER(obj) /* empty */
namespace base {
typedef subtle::Atomic32 AtomicRefCount;
// Increment a reference count by "increment", which must exceed 0.
inline void AtomicRefCountIncN(volatile AtomicRefCount *ptr,
AtomicRefCount increment) {
subtle::NoBarrier_AtomicIncrement(ptr, increment);
}
// Decrement a reference count by "decrement", which must exceed 0,
// and return whether the result is non-zero.
// Insert barriers to ensure that state written before the reference count
// became zero will be visible to a thread that has just made the count zero.
inline bool AtomicRefCountDecN(volatile AtomicRefCount *ptr,
AtomicRefCount decrement) {
ANNOTATE_HAPPENS_BEFORE(ptr);
bool res = (subtle::Barrier_AtomicIncrement(ptr, -decrement) != 0);
if (!res) {
ANNOTATE_HAPPENS_AFTER(ptr);
}
return res;
}
// Increment a reference count by 1.
inline void AtomicRefCountInc(volatile AtomicRefCount *ptr) {
base::AtomicRefCountIncN(ptr, 1);
}
// Decrement a reference count by 1 and return whether the result is non-zero.
// Insert barriers to ensure that state written before the reference count
// became zero will be visible to a thread that has just made the count zero.
inline bool AtomicRefCountDec(volatile AtomicRefCount *ptr) {
return base::AtomicRefCountDecN(ptr, 1);
}
// Return whether the reference count is one. If the reference count is used
// in the conventional way, a refrerence count of 1 implies that the current
// thread owns the reference and no other thread shares it. This call performs
// the test for a reference count of one, and performs the memory barrier
// needed for the owning thread to act on the object, knowing that it has
// exclusive access to the object.
inline bool AtomicRefCountIsOne(volatile AtomicRefCount *ptr) {
bool res = (subtle::Acquire_Load(ptr) == 1);
if (res) {
ANNOTATE_HAPPENS_AFTER(ptr);
}
return res;
}
// Return whether the reference count is zero. With conventional object
// referencing counting, the object will be destroyed, so the reference count
// should never be zero. Hence this is generally used for a debug check.
inline bool AtomicRefCountIsZero(volatile AtomicRefCount *ptr) {
bool res = (subtle::Acquire_Load(ptr) == 0);
if (res) {
ANNOTATE_HAPPENS_AFTER(ptr);
}
return res;
}
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_
================================================
FILE: CEF/include/base/cef_atomicops.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// For atomic operations on reference counts, see cef_atomic_ref_count.h.
// The routines exported by this module are subtle. If you use them, even if
// you get the code right, it will depend on careful reasoning about atomicity
// and memory ordering; it will be less readable, and harder to maintain. If
// you plan to use these routines, you should have a good reason, such as solid
// evidence that performance would otherwise suffer, or there being no
// alternative. You should assume only properties explicitly guaranteed by the
// specifications in this file. You are almost certainly _not_ writing code
// just for the x86; if you assume x86 semantics, x86 hardware bugs and
// implementations on other archtectures will cause your code to break. If you
// do not know what you are doing, avoid these routines, and use a Mutex.
//
// It is incorrect to make direct assignments to/from an atomic variable.
// You should use one of the Load or Store routines. The NoBarrier
// versions are provided when no barriers are needed:
// NoBarrier_Store()
// NoBarrier_Load()
// Although there are currently no compiler enforcement, you are encouraged
// to use these.
//
#ifndef CEF_INCLUDE_BASE_CEF_ATOMICOPS_H_
#define CEF_INCLUDE_BASE_CEF_ATOMICOPS_H_
#pragma once
#if defined(BASE_ATOMICOPS_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/atomicops.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include <stdint.h>
#include "include/base/cef_build.h"
#if defined(OS_WIN) && defined(ARCH_CPU_64_BITS)
// windows.h #defines this (only on x64). This causes problems because the
// public API also uses MemoryBarrier at the public name for this fence. So, on
// X64, undef it, and call its documented
// (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684208.aspx)
// implementation directly.
#undef MemoryBarrier
#endif
namespace base {
namespace subtle {
typedef int32_t Atomic32;
#ifdef ARCH_CPU_64_BITS
// We need to be able to go between Atomic64 and AtomicWord implicitly. This
// means Atomic64 and AtomicWord should be the same type on 64-bit.
#if defined(__ILP32__) || defined(OS_NACL)
// NaCl's intptr_t is not actually 64-bits on 64-bit!
// http://code.google.com/p/nativeclient/issues/detail?id=1162
typedef int64_t Atomic64;
#else
typedef intptr_t Atomic64;
#endif
#endif
// Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
// Atomic64 routines below, depending on your architecture.
typedef intptr_t AtomicWord;
// Atomically execute:
// result = *ptr;
// if (*ptr == old_value)
// *ptr = new_value;
// return result;
//
// I.e., replace "*ptr" with "new_value" if "*ptr" used to be "old_value".
// Always return the old value of "*ptr"
//
// This routine implies no memory barriers.
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
Atomic32 old_value,
Atomic32 new_value);
// Atomically store new_value into *ptr, returning the previous value held in
// *ptr. This routine implies no memory barriers.
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, Atomic32 new_value);
// Atomically increment *ptr by "increment". Returns the new value of
// *ptr with the increment applied. This routine implies no memory barriers.
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment);
Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
Atomic32 increment);
// These following lower-level operations are typically useful only to people
// implementing higher-level synchronization operations like spinlocks,
// mutexes, and condition-variables. They combine CompareAndSwap(), a load, or
// a store with appropriate memory-ordering instructions. "Acquire" operations
// ensure that no later memory access can be reordered ahead of the operation.
// "Release" operations ensure that no previous memory access can be reordered
// after the operation. "Barrier" operations have both "Acquire" and "Release"
// semantics. A MemoryBarrier() has "Barrier" semantics, but does no memory
// access.
Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
Atomic32 old_value,
Atomic32 new_value);
Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
Atomic32 old_value,
Atomic32 new_value);
void MemoryBarrier();
void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value);
void Acquire_Store(volatile Atomic32* ptr, Atomic32 value);
void Release_Store(volatile Atomic32* ptr, Atomic32 value);
Atomic32 NoBarrier_Load(volatile const Atomic32* ptr);
Atomic32 Acquire_Load(volatile const Atomic32* ptr);
Atomic32 Release_Load(volatile const Atomic32* ptr);
// 64-bit atomic operations (only available on 64-bit processors).
#ifdef ARCH_CPU_64_BITS
Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
Atomic64 old_value,
Atomic64 new_value);
Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, Atomic64 new_value);
Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment);
Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment);
Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
Atomic64 old_value,
Atomic64 new_value);
Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
Atomic64 old_value,
Atomic64 new_value);
void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value);
void Acquire_Store(volatile Atomic64* ptr, Atomic64 value);
void Release_Store(volatile Atomic64* ptr, Atomic64 value);
Atomic64 NoBarrier_Load(volatile const Atomic64* ptr);
Atomic64 Acquire_Load(volatile const Atomic64* ptr);
Atomic64 Release_Load(volatile const Atomic64* ptr);
#endif // ARCH_CPU_64_BITS
} // namespace subtle
} // namespace base
// Include our platform specific implementation.
#if defined(OS_WIN) && defined(COMPILER_MSVC) && defined(ARCH_CPU_X86_FAMILY)
#include "include/base/internal/cef_atomicops_x86_msvc.h"
#elif defined(OS_MACOSX)
#include "include/base/internal/cef_atomicops_mac.h"
#elif defined(COMPILER_GCC) && defined(ARCH_CPU_X86_FAMILY)
#include "include/base/internal/cef_atomicops_x86_gcc.h"
#else
#error "Atomic operations are not supported on your platform"
#endif
// On some platforms we need additional declarations to make
// AtomicWord compatible with our other Atomic* types.
#if defined(OS_MACOSX) || defined(OS_OPENBSD)
#include "include/base/internal/cef_atomicops_atomicword_compat.h"
#endif
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_ATOMICOPS_H_
================================================
FILE: CEF/include/base/cef_basictypes.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_BASICTYPES_H_
#define CEF_INCLUDE_BASE_CEF_BASICTYPES_H_
#pragma once
#include <limits.h> // For UINT_MAX
#include <stddef.h> // For size_t
#include "include/base/cef_build.h"
// The NSPR system headers define 64-bit as |long| when possible, except on
// Mac OS X. In order to not have typedef mismatches, we do the same on LP64.
//
// On Mac OS X, |long long| is used for 64-bit types for compatibility with
// <inttypes.h> format macros even in the LP64 model.
#if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
typedef long int64; // NOLINT(runtime/int)
typedef unsigned long uint64; // NOLINT(runtime/int)
#else
typedef long long int64; // NOLINT(runtime/int)
typedef unsigned long long uint64; // NOLINT(runtime/int)
#endif
// TODO: Remove these type guards. These are to avoid conflicts with
// obsolete/protypes.h in the Gecko SDK.
#ifndef _INT32
#define _INT32
typedef int int32;
#endif
// TODO: Remove these type guards. These are to avoid conflicts with
// obsolete/protypes.h in the Gecko SDK.
#ifndef _UINT32
#define _UINT32
typedef unsigned int uint32;
#endif
// UTF-16 character type.
// This should be kept synchronized with base/strings/string16.h
#ifndef char16
#if defined(WCHAR_T_IS_UTF16)
typedef wchar_t char16;
#elif defined(WCHAR_T_IS_UTF32)
typedef unsigned short char16;
#endif
#endif
#endif // CEF_INCLUDE_BASE_CEF_BASICTYPES_H_
================================================
FILE: CEF/include/base/cef_bind.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_BIND_H_
#define CEF_INCLUDE_BASE_CEF_BIND_H_
#pragma once
#if defined(BASE_BIND_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/bind.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/internal/cef_bind_internal.h"
#include "include/base/internal/cef_callback_internal.h"
// -----------------------------------------------------------------------------
// Usage documentation
// -----------------------------------------------------------------------------
//
// See base/cef_callback.h for documentation.
//
//
// -----------------------------------------------------------------------------
// Implementation notes
// -----------------------------------------------------------------------------
//
// If you're reading the implementation, before proceeding further, you should
// read the top comment of base/bind_internal.h for a definition of common
// terms and concepts.
//
// RETURN TYPES
//
// Though Bind()'s result is meant to be stored in a Callback<> type, it
// cannot actually return the exact type without requiring a large amount
// of extra template specializations. The problem is that in order to
// discern the correct specialization of Callback<>, Bind would need to
// unwrap the function signature to determine the signature's arity, and
// whether or not it is a method.
//
// Each unique combination of (arity, function_type, num_prebound) where
// function_type is one of {function, method, const_method} would require
// one specialization. We eventually have to do a similar number of
// specializations anyways in the implementation (see the Invoker<>,
// classes). However, it is avoidable in Bind if we return the result
// via an indirection like we do below.
//
// TODO(ajwong): We might be able to avoid this now, but need to test.
//
// It is possible to move most of the COMPILE_ASSERT asserts into BindState<>,
// but it feels a little nicer to have the asserts here so people do not
// need to crack open bind_internal.h. On the other hand, it makes Bind()
// harder to read.
namespace base {
template <typename Functor>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void()>
::UnboundRunType>
Bind(Functor functor) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
typedef cef_internal::BindState<RunnableType, RunType, void()> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor)));
}
template <typename Functor, typename P1>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1));
}
template <typename Functor, typename P1, typename P2>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2));
}
template <typename Functor, typename P1, typename P2, typename P3>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A3Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3));
}
template <typename Functor, typename P1, typename P2, typename P3, typename P4>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A3Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A4Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
p4_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4));
}
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
typename P5>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
const P5& p5) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A3Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A4Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A5Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
p4_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value,
p5_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5));
}
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
typename P5, typename P6>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
const P5& p5, const P6& p6) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A3Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A4Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A5Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A6Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
p4_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value,
p5_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P6>::value,
p6_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6));
}
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
typename P5, typename P6, typename P7>
base::Callback<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType,
typename cef_internal::CallbackParamTraits<P7>::StorageType)>
::UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
const P5& p5, const P6& p6, const P7& p7) {
// Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our
// checks should below for bound references need to know what the actual
// functor is going to interpret the argument as.
typedef cef_internal::FunctionTraits<typename RunnableType::RunType>
BoundFunctorTraits;
// Do not allow binding a non-const reference parameter. Non-const reference
// parameters are disallowed by the Google style guide. Also, binding a
// non-const reference parameter can make for subtle bugs because the
// invoked function will receive a reference to the stored copy of the
// argument and not the original.
COMPILE_ASSERT(
!(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A2Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A3Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A4Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A5Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A6Type>::value ||
is_non_const_reference<typename BoundFunctorTraits::A7Type>::value ),
do_not_bind_functions_with_nonconst_ref);
// For methods, we need to be careful for parameter 1. We do not require
// a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target
// object.
COMPILE_ASSERT(
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
p4_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value,
p5_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P6>::value,
p6_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P7>::value,
p7_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType,
typename cef_internal::CallbackParamTraits<P7>::StorageType)> BindState;
return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6,
p7));
}
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_BIND_H_
================================================
FILE: CEF/include/base/cef_bind_helpers.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This defines a set of argument wrappers and related factory methods that
// can be used specify the refcounting and reference semantics of arguments
// that are bound by the Bind() function in base/bind.h.
//
// It also defines a set of simple functions and utilities that people want
// when using Callback<> and Bind().
//
//
// ARGUMENT BINDING WRAPPERS
//
// The wrapper functions are base::Unretained(), base::Owned(), base::Passed(),
// base::ConstRef(), and base::IgnoreResult().
//
// Unretained() allows Bind() to bind a non-refcounted class, and to disable
// refcounting on arguments that are refcounted objects.
//
// Owned() transfers ownership of an object to the Callback resulting from
// bind; the object will be deleted when the Callback is deleted.
//
// Passed() is for transferring movable-but-not-copyable types (eg. scoped_ptr)
// through a Callback. Logically, this signifies a destructive transfer of
// the state of the argument into the target function. Invoking
// Callback::Run() twice on a Callback that was created with a Passed()
// argument will CHECK() because the first invocation would have already
// transferred ownership to the target function.
//
// ConstRef() allows binding a constant reference to an argument rather
// than a copy.
//
// IgnoreResult() is used to adapt a function or Callback with a return type to
// one with a void return. This is most useful if you have a function with,
// say, a pesky ignorable bool return that you want to use with PostTask or
// something else that expect a Callback with a void return.
//
// EXAMPLE OF Unretained():
//
// class Foo {
// public:
// void func() { cout << "Foo:f" << endl; }
// };
//
// // In some function somewhere.
// Foo foo;
// Closure foo_callback =
// Bind(&Foo::func, Unretained(&foo));
// foo_callback.Run(); // Prints "Foo:f".
//
// Without the Unretained() wrapper on |&foo|, the above call would fail
// to compile because Foo does not support the AddRef() and Release() methods.
//
//
// EXAMPLE OF Owned():
//
// void foo(int* arg) { cout << *arg << endl }
//
// int* pn = new int(1);
// Closure foo_callback = Bind(&foo, Owned(pn));
//
// foo_callback.Run(); // Prints "1"
// foo_callback.Run(); // Prints "1"
// *n = 2;
// foo_callback.Run(); // Prints "2"
//
// foo_callback.Reset(); // |pn| is deleted. Also will happen when
// // |foo_callback| goes out of scope.
//
// Without Owned(), someone would have to know to delete |pn| when the last
// reference to the Callback is deleted.
//
//
// EXAMPLE OF ConstRef():
//
// void foo(int arg) { cout << arg << endl }
//
// int n = 1;
// Closure no_ref = Bind(&foo, n);
// Closure has_ref = Bind(&foo, ConstRef(n));
//
// no_ref.Run(); // Prints "1"
// has_ref.Run(); // Prints "1"
//
// n = 2;
// no_ref.Run(); // Prints "1"
// has_ref.Run(); // Prints "2"
//
// Note that because ConstRef() takes a reference on |n|, |n| must outlive all
// its bound callbacks.
//
//
// EXAMPLE OF IgnoreResult():
//
// int DoSomething(int arg) { cout << arg << endl; }
//
// // Assign to a Callback with a void return type.
// Callback<void(int)> cb = Bind(IgnoreResult(&DoSomething));
// cb->Run(1); // Prints "1".
//
// // Prints "1" on |ml|.
// ml->PostTask(FROM_HERE, Bind(IgnoreResult(&DoSomething), 1);
//
//
// EXAMPLE OF Passed():
//
// void TakesOwnership(scoped_ptr<Foo> arg) { }
// scoped_ptr<Foo> CreateFoo() { return scoped_ptr<Foo>(new Foo()); }
//
// scoped_ptr<Foo> f(new Foo());
//
// // |cb| is given ownership of Foo(). |f| is now NULL.
// // You can use f.Pass() in place of &f, but it's more verbose.
// Closure cb = Bind(&TakesOwnership, Passed(&f));
//
// // Run was never called so |cb| still owns Foo() and deletes
// // it on Reset().
// cb.Reset();
//
// // |cb| is given a new Foo created by CreateFoo().
// cb = Bind(&TakesOwnership, Passed(CreateFoo()));
//
// // |arg| in TakesOwnership() is given ownership of Foo(). |cb|
// // no longer owns Foo() and, if reset, would not delete Foo().
// cb.Run(); // Foo() is now transferred to |arg| and deleted.
// cb.Run(); // This CHECK()s since Foo() already been used once.
//
// Passed() is particularly useful with PostTask() when you are transferring
// ownership of an argument into a task, but don't necessarily know if the
// task will always be executed. This can happen if the task is cancellable
// or if it is posted to a MessageLoopProxy.
//
//
// SIMPLE FUNCTIONS AND UTILITIES.
//
// DoNothing() - Useful for creating a Closure that does nothing when called.
// DeletePointer<T>() - Useful for creating a Closure that will delete a
// pointer when invoked. Only use this when necessary.
// In most cases MessageLoop::DeleteSoon() is a better
// fit.
#ifndef CEF_INCLUDE_BASE_CEF_BIND_HELPERS_H_
#define CEF_INCLUDE_BASE_CEF_BIND_HELPERS_H_
#pragma once
#if defined(BASE_BIND_HELPERS_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/bind_helpers.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/cef_basictypes.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_template_util.h"
#include "include/base/cef_weak_ptr.h"
namespace base {
namespace cef_internal {
// Use the Substitution Failure Is Not An Error (SFINAE) trick to inspect T
// for the existence of AddRef() and Release() functions of the correct
// signature.
//
// http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error
// http://stackoverflow.com/questions/257288/is-it-possible-to-write-a-c-template-to-check-for-a-functions-existence
// http://stackoverflow.com/questions/4358584/sfinae-approach-comparison
// http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
//
// The last link in particular show the method used below.
//
// For SFINAE to work with inherited methods, we need to pull some extra tricks
// with multiple inheritance. In the more standard formulation, the overloads
// of Check would be:
//
// template <typename C>
// Yes NotTheCheckWeWant(Helper<&C::TargetFunc>*);
//
// template <typename C>
// No NotTheCheckWeWant(...);
//
// static const bool value = sizeof(NotTheCheckWeWant<T>(0)) == sizeof(Yes);
//
// The problem here is that template resolution will not match
// C::TargetFunc if TargetFunc does not exist directly in C. That is, if
// TargetFunc in inherited from an ancestor, &C::TargetFunc will not match,
// |value| will be false. This formulation only checks for whether or
// not TargetFunc exist directly in the class being introspected.
//
// To get around this, we play a dirty trick with multiple inheritance.
// First, We create a class BaseMixin that declares each function that we
// want to probe for. Then we create a class Base that inherits from both T
// (the class we wish to probe) and BaseMixin. Note that the function
// signature in BaseMixin does not need to match the signature of the function
// we are probing for; thus it's easiest to just use void(void).
//
// Now, if TargetFunc exists somewhere in T, then &Base::TargetFunc has an
// ambiguous resolution between BaseMixin and T. This lets us write the
// following:
//
// template <typename C>
// No GoodCheck(Helper<&C::TargetFunc>*);
//
// template <typename C>
// Yes GoodCheck(...);
//
// static const bool value = sizeof(GoodCheck<Base>(0)) == sizeof(Yes);
//
// Notice here that the variadic version of GoodCheck() returns Yes here
// instead of No like the previous one. Also notice that we calculate |value|
// by specializing GoodCheck() on Base instead of T.
//
// We've reversed the roles of the variadic, and Helper overloads.
// GoodCheck(Helper<&C::TargetFunc>*), when C = Base, fails to be a valid
// substitution if T::TargetFunc exists. Thus GoodCheck<Base>(0) will resolve
// to the variadic version if T has TargetFunc. If T::TargetFunc does not
// exist, then &C::TargetFunc is not ambiguous, and the overload resolution
// will prefer GoodCheck(Helper<&C::TargetFunc>*).
//
// This method of SFINAE will correctly probe for inherited names, but it cannot
// typecheck those names. It's still a good enough sanity check though.
//
// Works on gcc-4.2, gcc-4.4, and Visual Studio 2008.
//
// TODO(ajwong): Move to ref_counted.h or template_util.h when we've vetted
// this works well.
//
// TODO(ajwong): Make this check for Release() as well.
// See http://crbug.com/82038.
template <typename T>
class SupportsAddRefAndRelease {
typedef char Yes[1];
typedef char No[2];
struct BaseMixin {
void AddRef();
};
// MSVC warns when you try to use Base if T has a private destructor, the
// common pattern for refcounted types. It does this even though no attempt to
// instantiate Base is made. We disable the warning for this definition.
#if defined(OS_WIN)
#pragma warning(push)
#pragma warning(disable:4624)
#endif
struct Base : public T, public BaseMixin {
};
#if defined(OS_WIN)
#pragma warning(pop)
#endif
template <void(BaseMixin::*)(void)> struct Helper {};
template <typename C>
static No& Check(Helper<&C::AddRef>*);
template <typename >
static Yes& Check(...);
public:
static const bool value = sizeof(Check<Base>(0)) == sizeof(Yes);
};
// Helpers to assert that arguments of a recounted type are bound with a
// scoped_refptr.
template <bool IsClasstype, typename T>
struct UnsafeBindtoRefCountedArgHelper : false_type {
};
template <typename T>
struct UnsafeBindtoRefCountedArgHelper<true, T>
: integral_constant<bool, SupportsAddRefAndRelease<T>::value> {
};
template <typename T>
struct UnsafeBindtoRefCountedArg : false_type {
};
template <typename T>
struct UnsafeBindtoRefCountedArg<T*>
: UnsafeBindtoRefCountedArgHelper<is_class<T>::value, T> {
};
template <typename T>
class HasIsMethodTag {
typedef char Yes[1];
typedef char No[2];
template <typename U>
static Yes& Check(typename U::IsMethod*);
template <typename U>
static No& Check(...);
public:
static const bool value = sizeof(Check<T>(0)) == sizeof(Yes);
};
template <typename T>
class UnretainedWrapper {
public:
explicit UnretainedWrapper(T* o) : ptr_(o) {}
T* get() const { return ptr_; }
private:
T* ptr_;
};
template <typename T>
class ConstRefWrapper {
public:
explicit ConstRefWrapper(const T& o) : ptr_(&o) {}
const T& get() const { return *ptr_; }
private:
const T* ptr_;
};
template <typename T>
struct IgnoreResultHelper {
explicit IgnoreResultHelper(T functor) : functor_(functor) {}
T functor_;
};
template <typename T>
struct IgnoreResultHelper<Callback<T> > {
explicit IgnoreResultHelper(const Callback<T>& functor) : functor_(functor) {}
const Callback<T>& functor_;
};
// An alternate implementation is to avoid the destructive copy, and instead
// specialize ParamTraits<> for OwnedWrapper<> to change the StorageType to
// a class that is essentially a scoped_ptr<>.
//
// The current implementation has the benefit though of leaving ParamTraits<>
// fully in callback_internal.h as well as avoiding type conversions during
// storage.
template <typename T>
class OwnedWrapper {
public:
explicit OwnedWrapper(T* o) : ptr_(o) {}
~OwnedWrapper() { delete ptr_; }
T* get() const { return ptr_; }
OwnedWrapper(const OwnedWrapper& other) {
ptr_ = other.ptr_;
other.ptr_ = NULL;
}
private:
mutable T* ptr_;
};
// PassedWrapper is a copyable adapter for a scoper that ignores const.
//
// It is needed to get around the fact that Bind() takes a const reference to
// all its arguments. Because Bind() takes a const reference to avoid
// unnecessary copies, it is incompatible with movable-but-not-copyable
// types; doing a destructive "move" of the type into Bind() would violate
// the const correctness.
//
// This conundrum cannot be solved without either C++11 rvalue references or
// a O(2^n) blowup of Bind() templates to handle each combination of regular
// types and movable-but-not-copyable types. Thus we introduce a wrapper type
// that is copyable to transmit the correct type information down into
// BindState<>. Ignoring const in this type makes sense because it is only
// created when we are explicitly trying to do a destructive move.
//
// Two notes:
// 1) PassedWrapper supports any type that has a "Pass()" function.
// This is intentional. The whitelisting of which specific types we
// support is maintained by CallbackParamTraits<>.
// 2) is_valid_ is distinct from NULL because it is valid to bind a "NULL"
// scoper to a Callback and allow the Callback to execute once.
template <typename T>
class PassedWrapper {
public:
explicit PassedWrapper(T scoper) : is_valid_(true), scoper_(scoper.Pass()) {}
PassedWrapper(const PassedWrapper& other)
: is_valid_(other.is_valid_), scoper_(other.scoper_.Pass()) {
}
T Pass() const {
CHECK(is_valid_);
is_valid_ = false;
return scoper_.Pass();
}
private:
mutable bool is_valid_;
mutable T scoper_;
};
// Unwrap the stored parameters for the wrappers above.
template <typename T>
struct UnwrapTraits {
typedef const T& ForwardType;
static ForwardType Unwrap(const T& o) { return o; }
};
template <typename T>
struct UnwrapTraits<UnretainedWrapper<T> > {
typedef T* ForwardType;
static ForwardType Unwrap(UnretainedWrapper<T> unretained) {
return unretained.get();
}
};
template <typename T>
struct UnwrapTraits<ConstRefWrapper<T> > {
typedef const T& ForwardType;
static ForwardType Unwrap(ConstRefWrapper<T> const_ref) {
return const_ref.get();
}
};
template <typename T>
struct UnwrapTraits<scoped_refptr<T> > {
typedef T* ForwardType;
static ForwardType Unwrap(const scoped_refptr<T>& o) { return o.get(); }
};
template <typename T>
struct UnwrapTraits<WeakPtr<T> > {
typedef const WeakPtr<T>& ForwardType;
static ForwardType Unwrap(const WeakPtr<T>& o) { return o; }
};
template <typename T>
struct UnwrapTraits<OwnedWrapper<T> > {
typedef T* ForwardType;
static ForwardType Unwrap(const OwnedWrapper<T>& o) {
return o.get();
}
};
template <typename T>
struct UnwrapTraits<PassedWrapper<T> > {
typedef T ForwardType;
static T Unwrap(PassedWrapper<T>& o) {
return o.Pass();
}
};
// Utility for handling different refcounting semantics in the Bind()
// function.
template <bool is_method, typename T>
struct MaybeRefcount;
template <typename T>
struct MaybeRefcount<false, T> {
static void AddRef(const T&) {}
static void Release(const T&) {}
};
template <typename T, size_t n>
struct MaybeRefcount<false, T[n]> {
static void AddRef(const T*) {}
static void Release(const T*) {}
};
template <typename T>
struct MaybeRefcount<true, T> {
static void AddRef(const T&) {}
static void Release(const T&) {}
};
template <typename T>
struct MaybeRefcount<true, T*> {
static void AddRef(T* o) { o->AddRef(); }
static void Release(T* o) { o->Release(); }
};
// No need to additionally AddRef() and Release() since we are storing a
// scoped_refptr<> inside the storage object already.
template <typename T>
struct MaybeRefcount<true, scoped_refptr<T> > {
static void AddRef(const scoped_refptr<T>& o) {}
static void Release(const scoped_refptr<T>& o) {}
};
template <typename T>
struct MaybeRefcount<true, const T*> {
static void AddRef(const T* o) { o->AddRef(); }
static void Release(const T* o) { o->Release(); }
};
// IsWeakMethod is a helper that determine if we are binding a WeakPtr<> to a
// method. It is used internally by Bind() to select the correct
// InvokeHelper that will no-op itself in the event the WeakPtr<> for
// the target object is invalidated.
//
// P1 should be the type of the object that will be received of the method.
template <bool IsMethod, typename P1>
struct IsWeakMethod : public false_type {};
template <typename T>
struct IsWeakMethod<true, WeakPtr<T> > : public true_type {};
template <typename T>
struct IsWeakMethod<true, ConstRefWrapper<WeakPtr<T> > > : public true_type {};
} // namespace cef_internal
template <typename T>
static inline cef_internal::UnretainedWrapper<T> Unretained(T* o) {
return cef_internal::UnretainedWrapper<T>(o);
}
template <typename T>
static inline cef_internal::ConstRefWrapper<T> ConstRef(const T& o) {
return cef_internal::ConstRefWrapper<T>(o);
}
template <typename T>
static inline cef_internal::OwnedWrapper<T> Owned(T* o) {
return cef_internal::OwnedWrapper<T>(o);
}
// We offer 2 syntaxes for calling Passed(). The first takes a temporary and
// is best suited for use with the return value of a function. The second
// takes a pointer to the scoper and is just syntactic sugar to avoid having
// to write Passed(scoper.Pass()).
template <typename T>
static inline cef_internal::PassedWrapper<T> Passed(T scoper) {
return cef_internal::PassedWrapper<T>(scoper.Pass());
}
template <typename T>
static inline cef_internal::PassedWrapper<T> Passed(T* scoper) {
return cef_internal::PassedWrapper<T>(scoper->Pass());
}
template <typename T>
static inline cef_internal::IgnoreResultHelper<T> IgnoreResult(T data) {
return cef_internal::IgnoreResultHelper<T>(data);
}
template <typename T>
static inline cef_internal::IgnoreResultHelper<Callback<T> >
IgnoreResult(const Callback<T>& data) {
return cef_internal::IgnoreResultHelper<Callback<T> >(data);
}
void DoNothing();
template<typename T>
void DeletePointer(T* obj) {
delete obj;
}
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_BIND_HELPERS_H_
================================================
FILE: CEF/include/base/cef_build.h
================================================
// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_BUILD_H_
#define CEF_INCLUDE_BASE_CEF_BUILD_H_
#pragma once
#if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/compiler_specific.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#if defined(_WIN32)
#ifndef OS_WIN
#define OS_WIN 1
#endif
#elif defined(__APPLE__)
#ifndef OS_MACOSX
#define OS_MACOSX 1
#endif
#elif defined(__linux__)
#ifndef OS_LINUX
#define OS_LINUX 1
#endif
#else
#error Please add support for your platform in cef_build.h
#endif
// For access to standard POSIXish features, use OS_POSIX instead of a
// more specific macro.
#if defined(OS_MACOSX) || defined(OS_LINUX)
#ifndef OS_POSIX
#define OS_POSIX 1
#endif
#endif
// Compiler detection.
#if defined(__GNUC__)
#ifndef COMPILER_GCC
#define COMPILER_GCC 1
#endif
#elif defined(_MSC_VER)
#ifndef COMPILER_MSVC
#define COMPILER_MSVC 1
#endif
#else
#error Please add support for your compiler in cef_build.h
#endif
// Processor architecture detection. For more info on what's defined, see:
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx
// http://www.agner.org/optimize/calling_conventions.pdf
// or with gcc, run: "echo | gcc -E -dM -"
#if defined(_M_X64) || defined(__x86_64__)
#define ARCH_CPU_X86_FAMILY 1
#define ARCH_CPU_X86_64 1
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(_M_IX86) || defined(__i386__)
#define ARCH_CPU_X86_FAMILY 1
#define ARCH_CPU_X86 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__ARMEL__)
#define ARCH_CPU_ARM_FAMILY 1
#define ARCH_CPU_ARMEL 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__aarch64__)
#define ARCH_CPU_ARM_FAMILY 1
#define ARCH_CPU_ARM64 1
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__pnacl__)
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__MIPSEL__)
#define ARCH_CPU_MIPS_FAMILY 1
#define ARCH_CPU_MIPSEL 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#else
#error Please add support for your architecture in cef_build.h
#endif
// Type detection for wchar_t.
#if defined(OS_WIN)
#define WCHAR_T_IS_UTF16
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
#define WCHAR_T_IS_UTF32
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
// On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
// compile in this mode (in particular, Chrome doesn't). This is intended for
// other projects using base who manage their own dependencies and make sure
// short wchar works for them.
#define WCHAR_T_IS_UTF16
#else
#error Please add support for your compiler in cef_build.h
#endif
// Annotate a function indicating the caller must examine the return value.
// Use like:
// int foo() WARN_UNUSED_RESULT;
// To explicitly ignore a result, see |ignore_result()| in <base/macros.h>.
#ifndef WARN_UNUSED_RESULT
#if defined(COMPILER_GCC)
#define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
#define WARN_UNUSED_RESULT
#endif
#endif // WARN_UNUSED_RESULT
// Annotate a typedef or function indicating it's ok if it's not used.
// Use like:
// typedef Foo Bar ALLOW_UNUSED_TYPE;
#ifndef ALLOW_UNUSED_TYPE
#if defined(COMPILER_GCC)
#define ALLOW_UNUSED_TYPE __attribute__((unused))
#else
#define ALLOW_UNUSED_TYPE
#endif
#endif // ALLOW_UNUSED_TYPE
// Annotate a variable indicating it's ok if the variable is not used.
// (Typically used to silence a compiler warning when the assignment
// is important for some other reason.)
// Use like:
// int x = ...;
// ALLOW_UNUSED_LOCAL(x);
#ifndef ALLOW_UNUSED_LOCAL
#define ALLOW_UNUSED_LOCAL(x) false ? (void)x : (void)0
#endif
#endif // !USING_CHROMIUM_INCLUDES
// Annotate a virtual method indicating it must be overriding a virtual method
// in the parent class.
// Use like:
// void foo() OVERRIDE;
// NOTE: This define should only be used in classes exposed to the client since
// C++11 support may not be enabled in client applications. CEF internal classes
// should use the `override` keyword directly.
#ifndef OVERRIDE
#if defined(__clang__)
#define OVERRIDE override
#elif defined(COMPILER_MSVC) && _MSC_VER >= 1600
// Visual Studio 2010 and later support override.
#define OVERRIDE override
#elif defined(COMPILER_GCC) && __cplusplus >= 201103 && \
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40700
// GCC 4.7 supports explicit virtual overrides when C++11 support is enabled.
#define OVERRIDE override
#else
#define OVERRIDE
#endif
#endif // OVERRIDE
#endif // CEF_INCLUDE_BASE_CEF_BUILD_H_
================================================
FILE: CEF/include/base/cef_callback.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_CALLBACK_H_
#define CEF_INCLUDE_BASE_CEF_CALLBACK_H_
#pragma once
#if defined(BASE_CALLBACK_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/callback.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/internal/cef_callback_internal.h"
#include "include/base/cef_callback_forward.h"
#include "include/base/cef_template_util.h"
// NOTE: Header files that do not require the full definition of Callback or
// Closure should #include "base/cef_callback_forward.h" instead of this file.
// -----------------------------------------------------------------------------
// Introduction
// -----------------------------------------------------------------------------
//
// The templated Callback class is a generalized function object. Together
// with the Bind() function in bind.h, they provide a type-safe method for
// performing partial application of functions.
//
// Partial application (or "currying") is the process of binding a subset of
// a function's arguments to produce another function that takes fewer
// arguments. This can be used to pass around a unit of delayed execution,
// much like lexical closures are used in other languages. For example, it
// is used in Chromium code to schedule tasks on different MessageLoops.
//
// A callback with no unbound input parameters (base::Callback<void(void)>)
// is called a base::Closure. Note that this is NOT the same as what other
// languages refer to as a closure -- it does not retain a reference to its
// enclosing environment.
//
// MEMORY MANAGEMENT AND PASSING
//
// The Callback objects themselves should be passed by const-reference, and
// stored by copy. They internally store their state via a refcounted class
// and thus do not need to be deleted.
//
// The reason to pass via a const-reference is to avoid unnecessary
// AddRef/Release pairs to the internal state.
//
//
// -----------------------------------------------------------------------------
// Quick reference for basic stuff
// -----------------------------------------------------------------------------
//
// BINDING A BARE FUNCTION
//
// int Return5() { return 5; }
// base::Callback<int(void)> func_cb = base::Bind(&Return5);
// LOG(INFO) << func_cb.Run(); // Prints 5.
//
// BINDING A CLASS METHOD
//
// The first argument to bind is the member function to call, the second is
// the object on which to call it.
//
// class Ref : public base::RefCountedThreadSafe<Ref> {
// public:
// int Foo() { return 3; }
// void PrintBye() { LOG(INFO) << "bye."; }
// };
// scoped_refptr<Ref> ref = new Ref();
// base::Callback<void(void)> ref_cb = base::Bind(&Ref::Foo, ref);
// LOG(INFO) << ref_cb.Run(); // Prints out 3.
//
// By default the object must support RefCounted or you will get a compiler
// error. If you're passing between threads, be sure it's
// RefCountedThreadSafe! See "Advanced binding of member functions" below if
// you don't want to use reference counting.
//
// RUNNING A CALLBACK
//
// Callbacks can be run with their "Run" method, which has the same
// signature as the template argument to the callback.
//
// void DoSomething(const base::Callback<void(int, std::string)>& callback) {
// callback.Run(5, "hello");
// }
//
// Callbacks can be run more than once (they don't get deleted or marked when
// run). However, this precludes using base::Passed (see below).
//
// void DoSomething(const base::Callback<double(double)>& callback) {
// double myresult = callback.Run(3.14159);
// myresult += callback.Run(2.71828);
// }
//
// PASSING UNBOUND INPUT PARAMETERS
//
// Unbound parameters are specified at the time a callback is Run(). They are
// specified in the Callback template type:
//
// void MyFunc(int i, const std::string& str) {}
// base::Callback<void(int, const std::string&)> cb = base::Bind(&MyFunc);
// cb.Run(23, "hello, world");
//
// PASSING BOUND INPUT PARAMETERS
//
// Bound parameters are specified when you create thee callback as arguments
// to Bind(). They will be passed to the function and the Run()ner of the
// callback doesn't see those values or even know that the function it's
// calling.
//
// void MyFunc(int i, const std::string& str) {}
// base::Callback<void(void)> cb = base::Bind(&MyFunc, 23, "hello world");
// cb.Run();
//
// A callback with no unbound input parameters (base::Callback<void(void)>)
// is called a base::Closure. So we could have also written:
//
// base::Closure cb = base::Bind(&MyFunc, 23, "hello world");
//
// When calling member functions, bound parameters just go after the object
// pointer.
//
// base::Closure cb = base::Bind(&MyClass::MyFunc, this, 23, "hello world");
//
// PARTIAL BINDING OF PARAMETERS
//
// You can specify some parameters when you create the callback, and specify
// the rest when you execute the callback.
//
// void MyFunc(int i, const std::string& str) {}
// base::Callback<void(const std::string&)> cb = base::Bind(&MyFunc, 23);
// cb.Run("hello world");
//
// When calling a function bound parameters are first, followed by unbound
// parameters.
//
//
// -----------------------------------------------------------------------------
// Quick reference for advanced binding
// -----------------------------------------------------------------------------
//
// BINDING A CLASS METHOD WITH WEAK POINTERS
//
// base::Bind(&MyClass::Foo, GetWeakPtr());
//
// The callback will not be run if the object has already been destroyed.
// DANGER: weak pointers are not threadsafe, so don't use this
// when passing between threads!
//
// BINDING A CLASS METHOD WITH MANUAL LIFETIME MANAGEMENT
//
// base::Bind(&MyClass::Foo, base::Unretained(this));
//
// This disables all lifetime management on the object. You're responsible
// for making sure the object is alive at the time of the call. You break it,
// you own it!
//
// BINDING A CLASS METHOD AND HAVING THE CALLBACK OWN THE CLASS
//
// MyClass* myclass = new MyClass;
// base::Bind(&MyClass::Foo, base::Owned(myclass));
//
// The object will be deleted when the callback is destroyed, even if it's
// not run (like if you post a task during shutdown). Potentially useful for
// "fire and forget" cases.
//
// IGNORING RETURN VALUES
//
// Sometimes you want to call a function that returns a value in a callback
// that doesn't expect a return value.
//
// int DoSomething(int arg) { cout << arg << endl; }
// base::Callback<void<int>) cb =
// base::Bind(base::IgnoreResult(&DoSomething));
//
//
// -----------------------------------------------------------------------------
// Quick reference for binding parameters to Bind()
// -----------------------------------------------------------------------------
//
// Bound parameters are specified as arguments to Bind() and are passed to the
// function. A callback with no parameters or no unbound parameters is called a
// Closure (base::Callback<void(void)> and base::Closure are the same thing).
//
// PASSING PARAMETERS OWNED BY THE CALLBACK
//
// void Foo(int* arg) { cout << *arg << endl; }
// int* pn = new int(1);
// base::Closure foo_callback = base::Bind(&foo, base::Owned(pn));
//
// The parameter will be deleted when the callback is destroyed, even if it's
// not run (like if you post a task during shutdown).
//
// PASSING PARAMETERS AS A scoped_ptr
//
// void TakesOwnership(scoped_ptr<Foo> arg) {}
// scoped_ptr<Foo> f(new Foo);
// // f becomes null during the following call.
// base::Closure cb = base::Bind(&TakesOwnership, base::Passed(&f));
//
// Ownership of the parameter will be with the callback until the it is run,
// when ownership is passed to the callback function. This means the callback
// can only be run once. If the callback is never run, it will delete the
// object when it's destroyed.
//
// PASSING PARAMETERS AS A scoped_refptr
//
// void TakesOneRef(scoped_refptr<Foo> arg) {}
// scoped_refptr<Foo> f(new Foo)
// base::Closure cb = base::Bind(&TakesOneRef, f);
//
// This should "just work." The closure will take a reference as long as it
// is alive, and another reference will be taken for the called function.
//
// PASSING PARAMETERS BY REFERENCE
//
// Const references are *copied* unless ConstRef is used. Example:
//
// void foo(const int& arg) { printf("%d %p\n", arg, &arg); }
// int n = 1;
// base::Closure has_copy = base::Bind(&foo, n);
// base::Closure has_ref = base::Bind(&foo, base::ConstRef(n));
// n = 2;
// foo(n); // Prints "2 0xaaaaaaaaaaaa"
// has_copy.Run(); // Prints "1 0xbbbbbbbbbbbb"
// has_ref.Run(); // Prints "2 0xaaaaaaaaaaaa"
//
// Normally parameters are copied in the closure. DANGER: ConstRef stores a
// const reference instead, referencing the original parameter. This means
// that you must ensure the object outlives the callback!
//
//
// -----------------------------------------------------------------------------
// Implementation notes
// -----------------------------------------------------------------------------
//
// WHERE IS THIS DESIGN FROM:
//
// The design Callback and Bind is heavily influenced by C++'s
// tr1::function/tr1::bind, and by the "Google Callback" system used inside
// Google.
//
//
// HOW THE IMPLEMENTATION WORKS:
//
// There are three main components to the system:
// 1) The Callback classes.
// 2) The Bind() functions.
// 3) The arguments wrappers (e.g., Unretained() and ConstRef()).
//
// The Callback classes represent a generic function pointer. Internally,
// it stores a refcounted piece of state that represents the target function
// and all its bound parameters. Each Callback specialization has a templated
// constructor that takes an BindState<>*. In the context of the constructor,
// the static type of this BindState<> pointer uniquely identifies the
// function it is representing, all its bound parameters, and a Run() method
// that is capable of invoking the target.
//
// Callback's constructor takes the BindState<>* that has the full static type
// and erases the target function type as well as the types of the bound
// parameters. It does this by storing a pointer to the specific Run()
// function, and upcasting the state of BindState<>* to a
// BindStateBase*. This is safe as long as this BindStateBase pointer
// is only used with the stored Run() pointer.
//
// To BindState<> objects are created inside the Bind() functions.
// These functions, along with a set of internal templates, are responsible for
//
// - Unwrapping the function signature into return type, and parameters
// - Determining the number of parameters that are bound
// - Creating the BindState storing the bound parameters
// - Performing compile-time asserts to avoid error-prone behavior
// - Returning an Callback<> with an arity matching the number of unbound
// parameters and that knows the correct refcounting semantics for the
// target object if we are binding a method.
//
// The Bind functions do the above using type-inference, and template
// specializations.
//
// By default Bind() will store copies of all bound parameters, and attempt
// to refcount a target object if the function being bound is a class method.
// These copies are created even if the function takes parameters as const
// references. (Binding to non-const references is forbidden, see bind.h.)
//
// To change this behavior, we introduce a set of argument wrappers
// (e.g., Unretained(), and ConstRef()). These are simple container templates
// that are passed by value, and wrap a pointer to argument. See the
// file-level comment in base/bind_helpers.h for more info.
//
// These types are passed to the Unwrap() functions, and the MaybeRefcount()
// functions respectively to modify the behavior of Bind(). The Unwrap()
// and MaybeRefcount() functions change behavior by doing partial
// specialization based on whether or not a parameter is a wrapper type.
//
// ConstRef() is similar to tr1::cref. Unretained() is specific to Chromium.
//
//
// WHY NOT TR1 FUNCTION/BIND?
//
// Direct use of tr1::function and tr1::bind was considered, but ultimately
// rejected because of the number of copy constructors invocations involved
// in the binding of arguments during construction, and the forwarding of
// arguments during invocation. These copies will no longer be an issue in
// C++0x because C++0x will support rvalue reference allowing for the compiler
// to avoid these copies. However, waiting for C++0x is not an option.
//
// Measured with valgrind on gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5), the
// tr1::bind call itself will invoke a non-trivial copy constructor three times
// for each bound parameter. Also, each when passing a tr1::function, each
// bound argument will be copied again.
//
// In addition to the copies taken at binding and invocation, copying a
// tr1::function causes a copy to be made of all the bound parameters and
// state.
//
// Furthermore, in Chromium, it is desirable for the Callback to take a
// reference on a target object when representing a class method call. This
// is not supported by tr1.
//
// Lastly, tr1::function and tr1::bind has a more general and flexible API.
// This includes things like argument reordering by use of
// tr1::bind::placeholder, support for non-const reference parameters, and some
// limited amount of subtyping of the tr1::function object (e.g.,
// tr1::function<int(int)> is convertible to tr1::function<void(int)>).
//
// These are not features that are required in Chromium. Some of them, such as
// allowing for reference parameters, and subtyping of functions, may actually
// become a source of errors. Removing support for these features actually
// allows for a simpler implementation, and a terser Currying API.
//
//
// WHY NOT GOOGLE CALLBACKS?
//
// The Google callback system also does not support refcounting. Furthermore,
// its implementation has a number of strange edge cases with respect to type
// conversion of its arguments. In particular, the argument's constness must
// at times match exactly the function signature, or the type-inference might
// break. Given the above, writing a custom solution was easier.
//
//
// MISSING FUNCTIONALITY
// - Invoking the return of Bind. Bind(&foo).Run() does not work;
// - Binding arrays to functions that take a non-const pointer.
// Example:
// void Foo(const char* ptr);
// void Bar(char* ptr);
// Bind(&Foo, "test");
// Bind(&Bar, "test"); // This fails because ptr is not const.
namespace base {
// First, we forward declare the Callback class template. This informs the
// compiler that the template only has 1 type parameter which is the function
// signature that the Callback is representing.
//
// After this, create template specializations for 0-7 parameters. Note that
// even though the template typelist grows, the specialization still
// only has one type: the function signature.
//
// If you are thinking of forward declaring Callback in your own header file,
// please include "base/callback_forward.h" instead.
template <typename Sig>
class Callback;
namespace cef_internal {
template <typename Runnable, typename RunType, typename BoundArgsType>
struct BindState;
} // namespace cef_internal
template <typename R>
class Callback<R(void)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)();
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run() const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get());
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*);
};
template <typename R, typename A1>
class Callback<R(A1)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType);
};
template <typename R, typename A1, typename A2>
class Callback<R(A1, A2)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType);
};
template <typename R, typename A1, typename A2, typename A3>
class Callback<R(A1, A2, A3)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2, A3);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2),
cef_internal::CallbackForward(a3));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType);
};
template <typename R, typename A1, typename A2, typename A3, typename A4>
class Callback<R(A1, A2, A3, A4)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2, A3, A4);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2),
cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType);
};
template <typename R, typename A1, typename A2, typename A3, typename A4,
typename A5>
class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2, A3, A4, A5);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2),
cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4),
cef_internal::CallbackForward(a5));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType,
typename cef_internal::CallbackParamTraits<A5>::ForwardType);
};
template <typename R, typename A1, typename A2, typename A3, typename A4,
typename A5, typename A6>
class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5,
typename cef_internal::CallbackParamTraits<A6>::ForwardType a6) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2),
cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4),
cef_internal::CallbackForward(a5),
cef_internal::CallbackForward(a6));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType,
typename cef_internal::CallbackParamTraits<A5>::ForwardType,
typename cef_internal::CallbackParamTraits<A6>::ForwardType);
};
template <typename R, typename A1, typename A2, typename A3, typename A4,
typename A5, typename A6, typename A7>
class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBase {
public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
Callback() : CallbackBase(NULL) { }
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType,
BoundArgsType>* bind_state)
: CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has
// the correct type.
PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
}
bool Equals(const Callback& other) const {
return CallbackBase::Equals(other);
}
R Run(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5,
typename cef_internal::CallbackParamTraits<A6>::ForwardType a6,
typename cef_internal::CallbackParamTraits<A7>::ForwardType a7) const {
PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a2),
cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4),
cef_internal::CallbackForward(a5),
cef_internal::CallbackForward(a6),
cef_internal::CallbackForward(a7));
}
private:
typedef R(*PolymorphicInvoke)(
cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType,
typename cef_internal::CallbackParamTraits<A5>::ForwardType,
typename cef_internal::CallbackParamTraits<A6>::ForwardType,
typename cef_internal::CallbackParamTraits<A7>::ForwardType);
};
// Syntactic sugar to make Callbacks<void(void)> easier to declare since it
// will be used in a lot of APIs with delayed execution.
typedef Callback<void(void)> Closure;
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_CALLBACK_H_
================================================
FILE: CEF/include/base/cef_callback_forward.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef INCLUDE_BASE_CEF_CALLBACK_FORWARD_H_
#define INCLUDE_BASE_CEF_CALLBACK_FORWARD_H_
#pragma once
#if defined(BASE_CALLBACK_FORWARD_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/callback_forward.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
namespace base {
template <typename Sig>
class Callback;
typedef Callback<void(void)> Closure;
} // namespace base
#endif // !!USING_CHROMIUM_INCLUDES
#endif // INCLUDE_BASE_CEF_CALLBACK_FORWARD_H_
================================================
FILE: CEF/include/base/cef_callback_helpers.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This defines helpful methods for dealing with Callbacks. Because Callbacks
// are implemented using templates, with a class per callback signature, adding
// methods to Callback<> itself is unattractive (lots of extra code gets
// generated). Instead, consider adding methods here.
//
// ResetAndReturn(&cb) is like cb.Reset() but allows executing a callback (via a
// copy) after the original callback is Reset(). This can be handy if Run()
// reads/writes the variable holding the Callback.
#ifndef CEF_INCLUDE_BASE_CEF_CALLBACK_HELPERS_H_
#define CEF_INCLUDE_BASE_CEF_CALLBACK_HELPERS_H_
#pragma once
#if defined(BASE_CALLBACK_HELPERS_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/callback_helpers.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/cef_basictypes.h"
#include "include/base/cef_build.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_macros.h"
namespace base {
template <typename Sig>
base::Callback<Sig> ResetAndReturn(base::Callback<Sig>* cb) {
base::Callback<Sig> ret(*cb);
cb->Reset();
return ret;
}
// ScopedClosureRunner is akin to scoped_ptr for Closures. It ensures that the
// Closure is executed and deleted no matter how the current scope exits.
class ScopedClosureRunner {
public:
ScopedClosureRunner();
explicit ScopedClosureRunner(const Closure& closure);
~ScopedClosureRunner();
void Reset();
void Reset(const Closure& closure);
Closure Release() WARN_UNUSED_RESULT;
private:
Closure closure_;
DISALLOW_COPY_AND_ASSIGN(ScopedClosureRunner);
};
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_CALLBACK_HELPERS_H_
================================================
FILE: CEF/include/base/cef_callback_list.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2013
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_CALLBACK_LIST_H_
#define CEF_INCLUDE_BASE_CEF_CALLBACK_LIST_H_
#pragma once
#if defined(BASE_CALLBACK_LIST_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/callback_list.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include <list>
#include "include/base/cef_basictypes.h"
#include "include/base/cef_callback.h"
#include "include/base/internal/cef_callback_internal.h"
#include "include/base/cef_build.h"
#include "include/base/cef_logging.h"
#include "include/base/cef_macros.h"
#include "include/base/cef_scoped_ptr.h"
// OVERVIEW:
//
// A container for a list of callbacks. Unlike a normal STL vector or list,
// this container can be modified during iteration without invalidating the
// iterator. It safely handles the case of a callback removing itself
// or another callback from the list while callbacks are being run.
//
// TYPICAL USAGE:
//
// class MyWidget {
// public:
// ...
//
// typedef base::Callback<void(const Foo&)> OnFooCallback;
//
// scoped_ptr<base::CallbackList<void(const Foo&)>::Subscription>
// RegisterCallback(const OnFooCallback& cb) {
// return callback_list_.Add(cb);
// }
//
// private:
// void NotifyFoo(const Foo& foo) {
// callback_list_.Notify(foo);
// }
//
// base::CallbackList<void(const Foo&)> callback_list_;
//
// DISALLOW_COPY_AND_ASSIGN(MyWidget);
// };
//
//
// class MyWidgetListener {
// public:
// MyWidgetListener::MyWidgetListener() {
// foo_subscription_ = MyWidget::GetCurrent()->RegisterCallback(
// base::Bind(&MyWidgetListener::OnFoo, this)));
// }
//
// MyWidgetListener::~MyWidgetListener() {
// // Subscription gets deleted automatically and will deregister
// // the callback in the process.
// }
//
// private:
// void OnFoo(const Foo& foo) {
// // Do something.
// }
//
// scoped_ptr<base::CallbackList<void(const Foo&)>::Subscription>
// foo_subscription_;
//
// DISALLOW_COPY_AND_ASSIGN(MyWidgetListener);
// };
namespace base {
namespace cef_internal {
template <typename CallbackType>
class CallbackListBase {
public:
class Subscription {
public:
Subscription(CallbackListBase<CallbackType>* list,
typename std::list<CallbackType>::iterator iter)
: list_(list),
iter_(iter) {
}
~Subscription() {
if (list_->active_iterator_count_) {
iter_->Reset();
} else {
list_->callbacks_.erase(iter_);
if (!list_->removal_callback_.is_null())
list_->removal_callback_.Run();
}
}
private:
CallbackListBase<CallbackType>* list_;
typename std::list<CallbackType>::iterator iter_;
DISALLOW_COPY_AND_ASSIGN(Subscription);
};
// Add a callback to the list. The callback will remain registered until the
// returned Subscription is destroyed, which must occur before the
// CallbackList is destroyed.
scoped_ptr<Subscription> Add(const CallbackType& cb) WARN_UNUSED_RESULT {
DCHECK(!cb.is_null());
return scoped_ptr<Subscription>(
new Subscription(this, callbacks_.insert(callbacks_.end(), cb)));
}
// Sets a callback which will be run when a subscription list is changed.
void set_removal_callback(const Closure& callback) {
removal_callback_ = callback;
}
// Returns true if there are no subscriptions. This is only valid to call when
// not looping through the list.
bool empty() {
DCHECK_EQ(0, active_iterator_count_);
return callbacks_.empty();
}
protected:
// An iterator class that can be used to access the list of callbacks.
class Iterator {
public:
explicit Iterator(CallbackListBase<CallbackType>* list)
: list_(list),
list_iter_(list_->callbacks_.begin()) {
++list_->active_iterator_count_;
}
Iterator(const Iterator& iter)
: list_(iter.list_),
list_iter_(iter.list_iter_) {
++list_->active_iterator_count_;
}
~Iterator() {
if (list_ && --list_->active_iterator_count_ == 0) {
list_->Compact();
}
}
CallbackType* GetNext() {
while ((list_iter_ != list_->callbacks_.end()) && list_iter_->is_null())
++list_iter_;
CallbackType* cb = NULL;
if (list_iter_ != list_->callbacks_.end()) {
cb = &(*list_iter_);
++list_iter_;
}
return cb;
}
private:
CallbackListBase<CallbackType>* list_;
typename std::list<CallbackType>::iterator list_iter_;
};
CallbackListBase() : active_iterator_count_(0) {}
~CallbackListBase() {
DCHECK_EQ(0, active_iterator_count_);
DCHECK_EQ(0U, callbacks_.size());
}
// Returns an instance of a CallbackListBase::Iterator which can be used
// to run callbacks.
Iterator GetIterator() {
return Iterator(this);
}
// Compact the list: remove any entries which were NULLed out during
// iteration.
void Compact() {
typename std::list<CallbackType>::iterator it = callbacks_.begin();
bool updated = false;
while (it != callbacks_.end()) {
if ((*it).is_null()) {
updated = true;
it = callbacks_.erase(it);
} else {
++it;
}
if (updated && !removal_callback_.is_null())
removal_callback_.Run();
}
}
private:
std::list<CallbackType> callbacks_;
int active_iterator_count_;
Closure removal_callback_;
DISALLOW_COPY_AND_ASSIGN(CallbackListBase);
};
} // namespace cef_internal
template <typename Sig> class CallbackList;
template <>
class CallbackList<void(void)>
: public cef_internal::CallbackListBase<Callback<void(void)> > {
public:
typedef Callback<void(void)> CallbackType;
CallbackList() {}
void Notify() {
cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run();
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1>
class CallbackList<void(A1)>
: public cef_internal::CallbackListBase<Callback<void(A1)> > {
public:
typedef Callback<void(A1)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2>
class CallbackList<void(A1, A2)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2)> > {
public:
typedef Callback<void(A1, A2)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2, typename A3>
class CallbackList<void(A1, A2, A3)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3)> > {
public:
typedef Callback<void(A1, A2, A3)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2, a3);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2, typename A3, typename A4>
class CallbackList<void(A1, A2, A3, A4)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4)> > {
public:
typedef Callback<void(A1, A2, A3, A4)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2, a3, a4);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2, typename A3, typename A4, typename A5>
class CallbackList<void(A1, A2, A3, A4, A5)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5)> > {
public:
typedef Callback<void(A1, A2, A3, A4, A5)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2, a3, a4, a5);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2, typename A3, typename A4, typename A5,
typename A6>
class CallbackList<void(A1, A2, A3, A4, A5, A6)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5,
A6)> > {
public:
typedef Callback<void(A1, A2, A3, A4, A5, A6)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5,
typename cef_internal::CallbackParamTraits<A6>::ForwardType a6) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2, a3, a4, a5, a6);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
template <typename A1, typename A2, typename A3, typename A4, typename A5,
typename A6, typename A7>
class CallbackList<void(A1, A2, A3, A4, A5, A6, A7)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5, A6,
A7)> > {
public:
typedef Callback<void(A1, A2, A3, A4, A5, A6, A7)> CallbackType;
CallbackList() {}
void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
typename cef_internal::CallbackParamTraits<A2>::ForwardType a2,
typename cef_internal::CallbackParamTraits<A3>::ForwardType a3,
typename cef_internal::CallbackParamTraits<A4>::ForwardType a4,
typename cef_internal::CallbackParamTraits<A5>::ForwardType a5,
typename cef_internal::CallbackParamTraits<A6>::ForwardType a6,
typename cef_internal::CallbackParamTraits<A7>::ForwardType a7) {
typename cef_internal::CallbackListBase<CallbackType>::Iterator it =
this->GetIterator();
CallbackType* cb;
while ((cb = it.GetNext()) != NULL) {
cb->Run(a1, a2, a3, a4, a5, a6, a7);
}
}
private:
DISALLOW_COPY_AND_ASSIGN(CallbackList);
};
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_CALLBACK_LIST_H_
================================================
FILE: CEF/include/base/cef_cancelable_callback.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// CancelableCallback is a wrapper around base::Callback that allows
// cancellation of a callback. CancelableCallback takes a reference on the
// wrapped callback until this object is destroyed or Reset()/Cancel() are
// called.
//
// NOTE:
//
// Calling CancelableCallback::Cancel() brings the object back to its natural,
// default-constructed state, i.e., CancelableCallback::callback() will return
// a null callback.
//
// THREAD-SAFETY:
//
// CancelableCallback objects must be created on, posted to, cancelled on, and
// destroyed on the same thread.
//
//
// EXAMPLE USAGE:
//
// In the following example, the test is verifying that RunIntensiveTest()
// Quit()s the message loop within 4 seconds. The cancelable callback is posted
// to the message loop, the intensive test runs, the message loop is run,
// then the callback is cancelled.
//
// void TimeoutCallback(const std::string& timeout_message) {
// FAIL() << timeout_message;
// MessageLoop::current()->QuitWhenIdle();
// }
//
// CancelableClosure timeout(base::Bind(&TimeoutCallback, "Test timed out."));
// MessageLoop::current()->PostDelayedTask(FROM_HERE, timeout.callback(),
// 4000) // 4 seconds to run.
// RunIntensiveTest();
// MessageLoop::current()->Run();
// timeout.Cancel(); // Hopefully this is hit before the timeout callback runs.
//
#ifndef CEF_INCLUDE_BASE_CEF_CANCELABLE_CALLBACK_H_
#define CEF_INCLUDE_BASE_CEF_CANCELABLE_CALLBACK_H_
#pragma once
#if defined(BASE_CANCELABLE_CALLBACK_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/cancelable_callback.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/cef_bind.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_build.h"
#include "include/base/cef_logging.h"
#include "include/base/cef_macros.h"
#include "include/base/cef_weak_ptr.h"
#include "include/base/internal/cef_callback_internal.h"
namespace base {
template <typename Sig>
class CancelableCallback;
template <>
class CancelableCallback<void(void)> {
public:
CancelableCallback() : weak_factory_(this) {}
// |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(void)>& callback)
: weak_factory_(this),
callback_(callback) {
DCHECK(!callback.is_null());
InitializeForwarder();
}
~CancelableCallback() {}
// Cancels and drops the reference to the wrapped callback.
void Cancel() {
weak_factory_.InvalidateWeakPtrs();
forwarder_.Reset();
callback_.Reset();
}
// Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const {
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled.
void Reset(const base::Callback<void(void)>& callback) {
DCHECK(!callback.is_null());
// Outstanding tasks (e.g., posted to a message loop) must not be called.
Cancel();
// |forwarder_| is no longer valid after Cancel(), so re-bind.
InitializeForwarder();
callback_ = callback;
}
// Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(void)>& callback() const {
return forwarder_;
}
private:
void Forward() {
callback_.Run();
}
// Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|.
void InitializeForwarder() {
forwarder_ = base::Bind(&CancelableCallback<void(void)>::Forward,
weak_factory_.GetWeakPtr());
}
// Used to ensure Forward() is not run when this object is destroyed.
base::WeakPtrFactory<CancelableCallback<void(void)> > weak_factory_;
// The wrapper closure.
base::Callback<void(void)> forwarder_;
// The stored closure that may be cancelled.
base::Callback<void(void)> callback_;
DISALLOW_COPY_AND_ASSIGN(CancelableCallback);
};
template <typename A1>
class CancelableCallback<void(A1)> {
public:
CancelableCallback() : weak_factory_(this) {}
// |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(A1)>& callback)
: weak_factory_(this),
callback_(callback) {
DCHECK(!callback.is_null());
InitializeForwarder();
}
~CancelableCallback() {}
// Cancels and drops the reference to the wrapped callback.
void Cancel() {
weak_factory_.InvalidateWeakPtrs();
forwarder_.Reset();
callback_.Reset();
}
// Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const {
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled.
void Reset(const base::Callback<void(A1)>& callback) {
DCHECK(!callback.is_null());
// Outstanding tasks (e.g., posted to a message loop) must not be called.
Cancel();
// |forwarder_| is no longer valid after Cancel(), so re-bind.
InitializeForwarder();
callback_ = callback;
}
// Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(A1)>& callback() const {
return forwarder_;
}
private:
void Forward(A1 a1) const {
callback_.Run(a1);
}
// Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|.
void InitializeForwarder() {
forwarder_ = base::Bind(&CancelableCallback<void(A1)>::Forward,
weak_factory_.GetWeakPtr());
}
// Used to ensure Forward() is not run when this object is destroyed.
base::WeakPtrFactory<CancelableCallback<void(A1)> > weak_factory_;
// The wrapper closure.
base::Callback<void(A1)> forwarder_;
// The stored closure that may be cancelled.
base::Callback<void(A1)> callback_;
DISALLOW_COPY_AND_ASSIGN(CancelableCallback);
};
template <typename A1, typename A2>
class CancelableCallback<void(A1, A2)> {
public:
CancelableCallback() : weak_factory_(this) {}
// |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(A1, A2)>& callback)
: weak_factory_(this),
callback_(callback) {
DCHECK(!callback.is_null());
InitializeForwarder();
}
~CancelableCallback() {}
// Cancels and drops the reference to the wrapped callback.
void Cancel() {
weak_factory_.InvalidateWeakPtrs();
forwarder_.Reset();
callback_.Reset();
}
// Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const {
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled.
void Reset(const base::Callback<void(A1, A2)>& callback) {
DCHECK(!callback.is_null());
// Outstanding tasks (e.g., posted to a message loop) must not be called.
Cancel();
// |forwarder_| is no longer valid after Cancel(), so re-bind.
InitializeForwarder();
callback_ = callback;
}
// Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(A1, A2)>& callback() const {
return forwarder_;
}
private:
void Forward(A1 a1, A2 a2) const {
callback_.Run(a1, a2);
}
// Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|.
void InitializeForwarder() {
forwarder_ = base::Bind(&CancelableCallback<void(A1, A2)>::Forward,
weak_factory_.GetWeakPtr());
}
// Used to ensure Forward() is not run when this object is destroyed.
base::WeakPtrFactory<CancelableCallback<void(A1, A2)> > weak_factory_;
// The wrapper closure.
base::Callback<void(A1, A2)> forwarder_;
// The stored closure that may be cancelled.
base::Callback<void(A1, A2)> callback_;
DISALLOW_COPY_AND_ASSIGN(CancelableCallback);
};
typedef CancelableCallback<void(void)> CancelableClosure;
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_CANCELABLE_CALLBACK_H_
================================================
FILE: CEF/include/base/cef_lock.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_LOCK_H_
#define CEF_INCLUDE_BASE_CEF_LOCK_H_
#pragma once
#if defined(BASE_SYNCHRONIZATION_LOCK_H_)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/synchronization/lock.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include "include/base/cef_macros.h"
#include "include/base/cef_platform_thread.h"
#include "include/base/internal/cef_lock_impl.h"
namespace base {
// A convenient wrapper for an OS specific critical section. The only real
// intelligence in this class is in debug mode for the support for the
// AssertAcquired() method.
class Lock {
public:
#if defined(NDEBUG) // Optimized wrapper implementation
Lock() : lock_() {}
~Lock() {}
void Acquire() { lock_.Lock(); }
void Release() { lock_.Unlock(); }
// If the lock is not held, take it and return true. If the lock is already
// held by another thread, immediately return false. This must not be called
// by a thread already holding the lock (what happens is undefined and an
// assertion may fail).
bool Try() { return lock_.Try(); }
// Null implementation if not debug.
void AssertAcquired() const {}
#else
Lock();
~Lock();
// NOTE: Although windows critical sections support recursive locks, we do not
// allow this, and we will commonly fire a DCHECK() if a thread attempts to
// acquire the lock a second time (while already holding it).
void Acquire() {
lock_.Lock();
CheckUnheldAndMark();
}
void Release() {
CheckHeldAndUnmark();
lock_.Unlock();
}
bool Try() {
bool rv = lock_.Try();
if (rv) {
CheckUnheldAndMark();
}
return rv;
}
void AssertAcquired() const;
#endif // NDEBUG
private:
#if !defined(NDEBUG)
// Members and routines taking care of locks assertions.
// Note that this checks for recursive locks and allows them
// if the variable is set. This is allowed by the underlying implementation
// on windows but not on Posix, so we're doing unneeded checks on Posix.
// It's worth it to share the code.
void CheckHeldAndUnmark();
void CheckUnheldAndMark();
// All private data is implicitly protected by lock_.
// Be VERY careful to only access members under that lock.
base::PlatformThreadRef owning_thread_ref_;
#endif // NDEBUG
// Platform specific underlying lock implementation.
cef_internal::LockImpl lock_;
DISALLOW_COPY_AND_ASSIGN(Lock);
};
// A helper class that acquires the given Lock while the AutoLock is in scope.
class AutoLock {
public:
struct AlreadyAcquired {};
explicit AutoLock(Lock& lock) : lock_(lock) {
lock_.Acquire();
}
AutoLock(Lock& lock, const AlreadyAcquired&) : lock_(lock) {
lock_.AssertAcquired();
}
~AutoLock() {
lock_.AssertAcquired();
lock_.Release();
}
private:
Lock& lock_;
DISALLOW_COPY_AND_ASSIGN(AutoLock);
};
// AutoUnlock is a helper that will Release() the |lock| argument in the
// constructor, and re-Acquire() it in the destructor.
class AutoUnlock {
public:
explicit AutoUnlock(Lock& lock) : lock_(lock) {
// We require our caller to have the lock.
lock_.AssertAcquired();
lock_.Release();
}
~AutoUnlock() {
lock_.Acquire();
}
private:
Lock& lock_;
DISALLOW_COPY_AND_ASSIGN(AutoUnlock);
};
} // namespace base
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_LOCK_H_
================================================
FILE: CEF/include/base/cef_logging.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// ---------------------------------------------------------------------------
//
// The contents of this file are only available to applications that link
// against the libcef_dll_wrapper target.
//
// WARNING: Logging macros should not be used in the main/browser process before
// calling CefInitialize or in sub-processes before calling CefExecuteProcess.
//
// Instructions
// ------------
//
// Make a bunch of macros for logging. The way to log things is to stream
// things to LOG(<a particular severity level>). E.g.,
//
// LOG(INFO) << "Found " << num_cookies << " cookies";
//
// You can also do conditional logging:
//
// LOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";
//
// The CHECK(condition) macro is active in both debug and release builds and
// effectively performs a LOG(FATAL) which terminates the process and
// generates a crashdump unless a debugger is attached.
//
// There are also "debug mode" logging macros like the ones above:
//
// DLOG(INFO) << "Found cookies";
//
// DLOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";
//
// All "debug mode" logging is compiled away to nothing for non-debug mode
// compiles. LOG_IF and development flags also work well together
// because the code can be compiled away sometimes.
//
// We also have
//
// LOG_ASSERT(assertion);
// DLOG_ASSERT(assertion);
//
// which is syntactic sugar for {,D}LOG_IF(FATAL, assert fails) << assertion;
//
// There are "verbose level" logging macros. They look like
//
// VLOG(1) << "I'm printed when you run the program with --v=1 or more";
// VLOG(2) << "I'm printed when you run the program with --v=2 or more";
//
// These always log at the INFO log level (when they log at all).
// The verbose logging can also be turned on module-by-module. For instance,
// --vmodule=profile=2,icon_loader=1,browser_*=3,*/chromeos/*=4 --v=0
// will cause:
// a. VLOG(2) and lower messages to be printed from profile.{h,cc}
// b. VLOG(1) and lower messages to be printed from icon_loader.{h,cc}
// c. VLOG(3) and lower messages to be printed from files prefixed with
// "browser"
// d. VLOG(4) and lower messages to be printed from files under a
// "chromeos" directory.
// e. VLOG(0) and lower messages to be printed from elsewhere
//
// The wildcarding functionality shown by (c) supports both '*' (match
// 0 or more characters) and '?' (match any single character)
// wildcards. Any pattern containing a forward or backward slash will
// be tested against the whole pathname and not just the module.
// E.g., "*/foo/bar/*=2" would change the logging level for all code
// in source files under a "foo/bar" directory.
//
// There's also VLOG_IS_ON(n) "verbose level" condition macro. To be used as
//
// if (VLOG_IS_ON(2)) {
// // do some logging preparation and logging
// // that can't be accomplished with just VLOG(2) << ...;
// }
//
// There is also a VLOG_IF "verbose level" condition macro for sample
// cases, when some extra computation and preparation for logs is not
// needed.
//
// VLOG_IF(1, (size > 1024))
// << "I'm printed when size is more than 1024 and when you run the "
// "program with --v=1 or more";
//
// We also override the standard 'assert' to use 'DLOG_ASSERT'.
//
// Lastly, there is:
//
// PLOG(ERROR) << "Couldn't do foo";
// DPLOG(ERROR) << "Couldn't do foo";
// PLOG_IF(ERROR, cond) << "Couldn't do foo";
// DPLOG_IF(ERROR, cond) << "Couldn't do foo";
// PCHECK(condition) << "Couldn't do foo";
// DPCHECK(condition) << "Couldn't do foo";
//
// which append the last system error to the message in string form (taken from
// GetLastError() on Windows and errno on POSIX).
//
// The supported severity levels for macros that allow you to specify one
// are (in increasing order of severity) INFO, WARNING, ERROR, and FATAL.
//
// Very important: logging a message at the FATAL severity level causes
// the program to terminate (after the message is logged).
//
// There is the special severity of DFATAL, which logs FATAL in debug mode,
// ERROR in normal mode.
//
#ifndef CEF_INCLUDE_BASE_CEF_LOGGING_H_
#define CEF_INCLUDE_BASE_CEF_LOGGING_H_
#pragma once
#if defined(DCHECK)
// Do nothing if the macros provided by this header already exist.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
// Always define the DCHECK_IS_ON macro which is used from other CEF headers.
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
#define DCHECK_IS_ON() 0
#else
#define DCHECK_IS_ON() 1
#endif
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/logging.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include <cassert>
#include <string>
#include <cstring>
#include <sstream>
#include "include/base/cef_build.h"
#include "include/base/cef_macros.h"
#include "include/internal/cef_logging_internal.h"
namespace cef {
namespace logging {
// Gets the current log level.
inline int GetMinLogLevel() {
return cef_get_min_log_level();
}
// Gets the current vlog level for the given file (usually taken from
// __FILE__). Note that |N| is the size *with* the null terminator.
template <size_t N>
int GetVlogLevel(const char (&file)[N]) {
return cef_get_vlog_level(file, N);
}
typedef int LogSeverity;
const LogSeverity LOG_VERBOSE = -1; // This is level 1 verbosity
// Note: the log severities are used to index into the array of names,
// see log_severity_names.
const LogSeverity LOG_INFO = 0;
const LogSeverity LOG_WARNING = 1;
const LogSeverity LOG_ERROR = 2;
const LogSeverity LOG_FATAL = 3;
const LogSeverity LOG_NUM_SEVERITIES = 4;
// LOG_DFATAL is LOG_FATAL in debug mode, ERROR in normal mode
#ifdef NDEBUG
const LogSeverity LOG_DFATAL = LOG_ERROR;
#else
const LogSeverity LOG_DFATAL = LOG_FATAL;
#endif
// A few definitions of macros that don't generate much code. These are used
// by LOG() and LOG_IF, etc. Since these are used all over our code, it's
// better to have compact code for these operations.
#define COMPACT_GOOGLE_LOG_EX_INFO(ClassName, ...) \
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_INFO , \
##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_EX_WARNING(ClassName, ...) \
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_WARNING , \
##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_EX_ERROR(ClassName, ...) \
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_ERROR , \
##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_EX_FATAL(ClassName, ...) \
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_FATAL , \
##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_EX_DFATAL(ClassName, ...) \
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_DFATAL , \
##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_INFO \
COMPACT_GOOGLE_LOG_EX_INFO(LogMessage)
#define COMPACT_GOOGLE_LOG_WARNING \
COMPACT_GOOGLE_LOG_EX_WARNING(LogMessage)
#define COMPACT_GOOGLE_LOG_ERROR \
COMPACT_GOOGLE_LOG_EX_ERROR(LogMessage)
#define COMPACT_GOOGLE_LOG_FATAL \
COMPACT_GOOGLE_LOG_EX_FATAL(LogMessage)
#define COMPACT_GOOGLE_LOG_DFATAL \
COMPACT_GOOGLE_LOG_EX_DFATAL(LogMessage)
#if defined(OS_WIN)
// wingdi.h defines ERROR to be 0. When we call LOG(ERROR), it gets
// substituted with 0, and it expands to COMPACT_GOOGLE_LOG_0. To allow us
// to keep using this syntax, we define this macro to do the same thing
// as COMPACT_GOOGLE_LOG_ERROR, and also define ERROR the same way that
// the Windows SDK does for consistency.
#define ERROR 0
#define COMPACT_GOOGLE_LOG_EX_0(ClassName, ...) \
COMPACT_GOOGLE_LOG_EX_ERROR(ClassName , ##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_0 COMPACT_GOOGLE_LOG_ERROR
// Needed for LOG_IS_ON(ERROR).
const LogSeverity LOG_0 = LOG_ERROR;
#endif
// As special cases, we can assume that LOG_IS_ON(FATAL) always holds. Also,
// LOG_IS_ON(DFATAL) always holds in debug mode. In particular, CHECK()s will
// always fire if they fail.
#define LOG_IS_ON(severity) \
((::cef::logging::LOG_ ## severity) >= ::cef::logging::GetMinLogLevel())
// We can't do any caching tricks with VLOG_IS_ON() like the
// google-glog version since it requires GCC extensions. This means
// that using the v-logging functions in conjunction with --vmodule
// may be slow.
#define VLOG_IS_ON(verboselevel) \
((verboselevel) <= ::cef::logging::GetVlogLevel(__FILE__))
// Helper macro which avoids evaluating the arguments to a stream if
// the condition doesn't hold.
#define LAZY_STREAM(stream, condition) \
!(condition) ? (void) 0 : ::cef::logging::LogMessageVoidify() & (stream)
// We use the preprocessor's merging operator, "##", so that, e.g.,
// LOG(INFO) becomes the token COMPACT_GOOGLE_LOG_INFO. There's some funny
// subtle difference between ostream member streaming functions (e.g.,
// ostream::operator<<(int) and ostream non-member streaming functions
// (e.g., ::operator<<(ostream&, string&): it turns out that it's
// impossible to stream something like a string directly to an unnamed
// ostream. We employ a neat hack by calling the stream() member
// function of LogMessage which seems to avoid the problem.
#define LOG_STREAM(severity) COMPACT_GOOGLE_LOG_ ## severity.stream()
#define LOG(severity) LAZY_STREAM(LOG_STREAM(severity), LOG_IS_ON(severity))
#define LOG_IF(severity, condition) \
LAZY_STREAM(LOG_STREAM(severity), LOG_IS_ON(severity) && (condition))
#define SYSLOG(severity) LOG(severity)
#define SYSLOG_IF(severity, condition) LOG_IF(severity, condition)
// The VLOG macros log with negative verbosities.
#define VLOG_STREAM(verbose_level) \
cef::logging::LogMessage(__FILE__, __LINE__, -verbose_level).stream()
#define VLOG(verbose_level) \
LAZY_STREAM(VLOG_STREAM(verbose_level), VLOG_IS_ON(verbose_level))
#define VLOG_IF(verbose_level, condition) \
LAZY_STREAM(VLOG_STREAM(verbose_level), \
VLOG_IS_ON(verbose_level) && (condition))
#if defined (OS_WIN)
#define VPLOG_STREAM(verbose_level) \
cef::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -verbose_level, \
::cef::logging::GetLastSystemErrorCode()).stream()
#elif defined(OS_POSIX)
#define VPLOG_STREAM(verbose_level) \
cef::logging::ErrnoLogMessage(__FILE__, __LINE__, -verbose_level, \
::cef::logging::GetLastSystemErrorCode()).stream()
#endif
#define VPLOG(verbose_level) \
LAZY_STREAM(VPLOG_STREAM(verbose_level), VLOG_IS_ON(verbose_level))
#define VPLOG_IF(verbose_level, condition) \
LAZY_STREAM(VPLOG_STREAM(verbose_level), \
VLOG_IS_ON(verbose_level) && (condition))
// TODO(akalin): Add more VLOG variants, e.g. VPLOG.
#define LOG_ASSERT(condition) \
LOG_IF(FATAL, !(condition)) << "Assert failed: " #condition ". "
#define SYSLOG_ASSERT(condition) \
SYSLOG_IF(FATAL, !(condition)) << "Assert failed: " #condition ". "
#if defined(OS_WIN)
#define PLOG_STREAM(severity) \
COMPACT_GOOGLE_LOG_EX_ ## severity(Win32ErrorLogMessage, \
::cef::logging::GetLastSystemErrorCode()).stream()
#elif defined(OS_POSIX)
#define PLOG_STREAM(severity) \
COMPACT_GOOGLE_LOG_EX_ ## severity(ErrnoLogMessage, \
::cef::logging::GetLastSystemErrorCode()).stream()
#endif
#define PLOG(severity) \
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity))
#define PLOG_IF(severity, condition) \
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity) && (condition))
// The actual stream used isn't important.
#define EAT_STREAM_PARAMETERS \
true ? (void) 0 : ::cef::logging::LogMessageVoidify() & LOG_STREAM(FATAL)
// CHECK dies with a fatal error if condition is not true. It is *not*
// controlled by NDEBUG, so the check will be executed regardless of
// compilation mode.
//
// We make sure CHECK et al. always evaluates their arguments, as
// doing CHECK(FunctionWithSideEffect()) is a common idiom.
#define CHECK(condition) \
LAZY_STREAM(LOG_STREAM(FATAL), !(condition)) \
<< "Check failed: " #condition ". "
#define PCHECK(condition) \
LAZY_STREAM(PLOG_STREAM(FATAL), !(condition)) \
<< "Check failed: " #condition ". "
// Helper macro for binary operators.
// Don't use this macro directly in your code, use CHECK_EQ et al below.
//
// TODO(akalin): Rewrite this so that constructs like if (...)
// CHECK_EQ(...) else { ... } work properly.
#define CHECK_OP(name, op, val1, val2) \
if (std::string* _result = \
cef::logging::Check##name##Impl((val1), (val2), \
#val1 " " #op " " #val2)) \
cef::logging::LogMessage(__FILE__, __LINE__, _result).stream()
// Build the error message string. This is separate from the "Impl"
// function template because it is not performance critical and so can
// be out of line, while the "Impl" code should be inline. Caller
// takes ownership of the returned string.
template<class t1, class t2>
std::string* MakeCheckOpString(const t1& v1, const t2& v2, const char* names) {
std::ostringstream ss;
ss << names << " (" << v1 << " vs. " << v2 << ")";
std::string* msg = new std::string(ss.str());
return msg;
}
// MSVC doesn't like complex extern templates and DLLs.
#if !defined(COMPILER_MSVC)
// Commonly used instantiations of MakeCheckOpString<>. Explicitly instantiated
// in logging.cc.
extern template std::string* MakeCheckOpString<int, int>(
const int&, const int&, const char* names);
extern template
std::string* MakeCheckOpString<unsigned long, unsigned long>(
const unsigned long&, const unsigned long&, const char* names);
extern template
std::string* MakeCheckOpString<unsigned long, unsigned int>(
const unsigned long&, const unsigned int&, const char* names);
extern template
std::string* MakeCheckOpString<unsigned int, unsigned long>(
const unsigned int&, const unsigned long&, const char* names);
extern template
std::string* MakeCheckOpString<std::string, std::string>(
const std::string&, const std::string&, const char* name);
#endif
// Helper functions for CHECK_OP macro.
// The (int, int) specialization works around the issue that the compiler
// will not instantiate the template version of the function on values of
// unnamed enum type - see comment below.
#define DEFINE_CHECK_OP_IMPL(name, op) \
template <class t1, class t2> \
inline std::string* Check##name##Impl(const t1& v1, const t2& v2, \
const char* names) { \
if (v1 op v2) return NULL; \
else return MakeCheckOpString(v1, v2, names); \
} \
inline std::string* Check##name##Impl(int v1, int v2, const char* names) { \
if (v1 op v2) return NULL; \
else return MakeCheckOpString(v1, v2, names); \
}
DEFINE_CHECK_OP_IMPL(EQ, ==)
DEFINE_CHECK_OP_IMPL(NE, !=)
DEFINE_CHECK_OP_IMPL(LE, <=)
DEFINE_CHECK_OP_IMPL(LT, < )
DEFINE_CHECK_OP_IMPL(GE, >=)
DEFINE_CHECK_OP_IMPL(GT, > )
#undef DEFINE_CHECK_OP_IMPL
#define CHECK_EQ(val1, val2) CHECK_OP(EQ, ==, val1, val2)
#define CHECK_NE(val1, val2) CHECK_OP(NE, !=, val1, val2)
#define CHECK_LE(val1, val2) CHECK_OP(LE, <=, val1, val2)
#define CHECK_LT(val1, val2) CHECK_OP(LT, < , val1, val2)
#define CHECK_GE(val1, val2) CHECK_OP(GE, >=, val1, val2)
#define CHECK_GT(val1, val2) CHECK_OP(GT, > , val1, val2)
#if defined(NDEBUG)
#define ENABLE_DLOG 0
#else
#define ENABLE_DLOG 1
#endif
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
#define DCHECK_IS_ON() 0
#else
#define DCHECK_IS_ON() 1
#endif
// Definitions for DLOG et al.
#if ENABLE_DLOG
#define DLOG_IS_ON(severity) LOG_IS_ON(severity)
#define DLOG_IF(severity, condition) LOG_IF(severity, condition)
#define DLOG_ASSERT(condition) LOG_ASSERT(condition)
#define DPLOG_IF(severity, condition) PLOG_IF(severity, condition)
#define DVLOG_IF(verboselevel, condition) VLOG_IF(verboselevel, condition)
#define DVPLOG_IF(verboselevel, condition) VPLOG_IF(verboselevel, condition)
#else // ENABLE_DLOG
// If ENABLE_DLOG is off, we want to avoid emitting any references to
// |condition| (which may reference a variable defined only if NDEBUG
// is not defined). Contrast this with DCHECK et al., which has
// different behavior.
#define DLOG_IS_ON(severity) false
#define DLOG_IF(severity, condition) EAT_STREAM_PARAMETERS
#define DLOG_ASSERT(condition) EAT_STREAM_PARAMETERS
#define DPLOG_IF(severity, condition) EAT_STREAM_PARAMETERS
#define DVLOG_IF(verboselevel, condition) EAT_STREAM_PARAMETERS
#define DVPLOG_IF(verboselevel, condition) EAT_STREAM_PARAMETERS
#endif // ENABLE_DLOG
// DEBUG_MODE is for uses like
// if (DEBUG_MODE) foo.CheckThatFoo();
// instead of
// #ifndef NDEBUG
// foo.CheckThatFoo();
// #endif
//
// We tie its state to ENABLE_DLOG.
enum { DEBUG_MODE = ENABLE_DLOG };
#undef ENABLE_DLOG
#define DLOG(severity) \
LAZY_STREAM(LOG_STREAM(severity), DLOG_IS_ON(severity))
#define DPLOG(severity) \
LAZY_STREAM(PLOG_STREAM(severity), DLOG_IS_ON(severity))
#define DVLOG(verboselevel) DVLOG_IF(verboselevel, VLOG_IS_ON(verboselevel))
#define DVPLOG(verboselevel) DVPLOG_IF(verboselevel, VLOG_IS_ON(verboselevel))
// Definitions for DCHECK et al.
#if DCHECK_IS_ON()
#define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \
COMPACT_GOOGLE_LOG_EX_FATAL(ClassName , ##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_FATAL
const LogSeverity LOG_DCHECK = LOG_FATAL;
#else // DCHECK_IS_ON()
// These are just dummy values.
#define COMPACT_GOOGLE_LOG_EX_DCHECK(ClassName, ...) \
COMPACT_GOOGLE_LOG_EX_INFO(ClassName , ##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_INFO
const LogSeverity LOG_DCHECK = LOG_INFO;
#endif // DCHECK_IS_ON()
// DCHECK et al. make sure to reference |condition| regardless of
// whether DCHECKs are enabled; this is so that we don't get unused
// variable warnings if the only use of a variable is in a DCHECK.
// This behavior is different from DLOG_IF et al.
#define DCHECK(condition) \
LAZY_STREAM(LOG_STREAM(DCHECK), DCHECK_IS_ON() && !(condition)) \
<< "Check failed: " #condition ". "
#define DPCHECK(condition) \
LAZY_STREAM(PLOG_STREAM(DCHECK), DCHECK_IS_ON() && !(condition)) \
<< "Check failed: " #condition ". "
// Helper macro for binary operators.
// Don't use this macro directly in your code, use DCHECK_EQ et al below.
#define DCHECK_OP(name, op, val1, val2) \
if (DCHECK_IS_ON()) \
if (std::string* _result = cef::logging::Check##name##Impl( \
(val1), (val2), #val1 " " #op " " #val2)) \
cef::logging::LogMessage(__FILE__, __LINE__, \
::cef::logging::LOG_DCHECK, _result).stream()
// Equality/Inequality checks - compare two values, and log a
// LOG_DCHECK message including the two values when the result is not
// as expected. The values must have operator<<(ostream, ...)
// defined.
//
// You may append to the error message like so:
// DCHECK_NE(1, 2) << ": The world must be ending!";
//
// We are very careful to ensure that each argument is evaluated exactly
// once, and that anything which is legal to pass as a function argument is
// legal here. In particular, the arguments may be temporary expressions
// which will end up being destroyed at the end of the apparent statement,
// for example:
// DCHECK_EQ(string("abc")[1], 'b');
//
// WARNING: These may not compile correctly if one of the arguments is a pointer
// and the other is NULL. To work around this, simply static_cast NULL to the
// type of the desired pointer.
#define DCHECK_EQ(val1, val2) DCHECK_OP(EQ, ==, val1, val2)
#define DCHECK_NE(val1, val2) DCHECK_OP(NE, !=, val1, val2)
#define DCHECK_LE(val1, val2) DCHECK_OP(LE, <=, val1, val2)
#define DCHECK_LT(val1, val2) DCHECK_OP(LT, < , val1, val2)
#define DCHECK_GE(val1, val2) DCHECK_OP(GE, >=, val1, val2)
#define DCHECK_GT(val1, val2) DCHECK_OP(GT, > , val1, val2)
#if defined(NDEBUG) && defined(OS_CHROMEOS)
#define NOTREACHED() LOG(ERROR) << "NOTREACHED() hit in " << \
__FUNCTION__ << ". "
#else
#define NOTREACHED() DCHECK(false)
#endif
// Redefine the standard assert to use our nice log files
#undef assert
#define assert(x) DLOG_ASSERT(x)
// This class more or less represents a particular log message. You
// create an instance of LogMessage and then stream stuff to it.
// When you finish streaming to it, ~LogMessage is called and the
// full message gets streamed to the appropriate destination.
//
// You shouldn't actually use LogMessage's constructor to log things,
// though. You should use the LOG() macro (and variants thereof)
// above.
class LogMessage {
public:
// Used for LOG(severity).
LogMessage(const char* file, int line, LogSeverity severity);
// Used for CHECK_EQ(), etc. Takes ownership of the given string.
// Implied severity = LOG_FATAL.
LogMessage(const char* file, int line, std::string* result);
// Used for DCHECK_EQ(), etc. Takes ownership of the given string.
LogMessage(const char* file, int line, LogSeverity severity,
std::string* result);
~LogMessage();
std::ostream& stream() { return stream_; }
private:
LogSeverity severity_;
std::ostringstream stream_;
// The file and line information passed in to the constructor.
const char* file_;
const int line_;
#if defined(OS_WIN)
// Stores the current value of GetLastError in the constructor and restores
// it in the destructor by calling SetLastError.
// This is useful since the LogMessage class uses a lot of Win32 calls
// that will lose the value of GLE and the code that called the log function
// will have lost the thread error value when the log call returns.
class SaveLastError {
public:
SaveLastError();
~SaveLastError();
unsigned long get_error() const { return last_error_; }
protected:
unsigned long last_error_;
};
SaveLastError last_error_;
#endif
DISALLOW_COPY_AND_ASSIGN(LogMessage);
};
// A non-macro interface to the log facility; (useful
// when the logging level is not a compile-time constant).
inline void LogAtLevel(int const log_level, std::string const &msg) {
LogMessage(__FILE__, __LINE__, log_level).stream() << msg;
}
// This class is used to explicitly ignore values in the conditional
// logging macros. This avoids compiler warnings like "value computed
// is not used" and "statement has no effect".
class LogMessageVoidify {
public:
LogMessageVoidify() { }
// This has to be an operator with a precedence lower than << but
// higher than ?:
void operator&(std::ostream&) { }
};
#if defined(OS_WIN)
typedef unsigned long SystemErrorCode;
#elif defined(OS_POSIX)
typedef int SystemErrorCode;
#endif
// Alias for ::GetLastError() on Windows and errno on POSIX. Avoids having to
// pull in windows.h just for GetLastError() and DWORD.
SystemErrorCode GetLastSystemErrorCode();
std::string SystemErrorCodeToString(SystemErrorCode error_code);
#if defined(OS_WIN)
// Appends a formatted system message of the GetLastError() type.
class Win32ErrorLogMessage {
public:
Win32ErrorLogMessage(const char* file,
int line,
LogSeverity severity,
SystemErrorCode err);
// Appends the error message before destructing the encapsulated class.
~Win32ErrorLogMessage();
std::ostream& stream() { return log_message_.stream(); }
private:
SystemErrorCode err_;
LogMessage log_message_;
DISALLOW_COPY_AND_ASSIGN(Win32ErrorLogMessage);
};
#elif defined(OS_POSIX)
// Appends a formatted system message of the errno type
class ErrnoLogMessage {
public:
ErrnoLogMessage(const char* file,
int line,
LogSeverity severity,
SystemErrorCode err);
// Appends the error message before destructing the encapsulated class.
~ErrnoLogMessage();
std::ostream& stream() { return log_message_.stream(); }
private:
SystemErrorCode err_;
LogMessage log_message_;
DISALLOW_COPY_AND_ASSIGN(ErrnoLogMessage);
};
#endif // OS_WIN
} // namespace logging
} // namespace cef
// These functions are provided as a convenience for logging, which is where we
// use streams (it is against Google style to use streams in other places). It
// is designed to allow you to emit non-ASCII Unicode strings to the log file,
// which is normally ASCII. It is relatively slow, so try not to use it for
// common cases. Non-ASCII characters will be converted to UTF-8 by these
// operators.
std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
return out << wstr.c_str();
}
// The NOTIMPLEMENTED() macro annotates codepaths which have
// not been implemented yet.
//
// The implementation of this macro is controlled by NOTIMPLEMENTED_POLICY:
// 0 -- Do nothing (stripped by compiler)
// 1 -- Warn at compile time
// 2 -- Fail at compile time
// 3 -- Fail at runtime (DCHECK)
// 4 -- [default] LOG(ERROR) at runtime
// 5 -- LOG(ERROR) at runtime, only once per call-site
#ifndef NOTIMPLEMENTED_POLICY
#if defined(OS_ANDROID) && defined(OFFICIAL_BUILD)
#define NOTIMPLEMENTED_POLICY 0
#else
// Select default policy: LOG(ERROR)
#define NOTIMPLEMENTED_POLICY 4
#endif
#endif
#if defined(COMPILER_GCC)
// On Linux, with GCC, we can use __PRETTY_FUNCTION__ to get the demangled name
// of the current function in the NOTIMPLEMENTED message.
#define NOTIMPLEMENTED_MSG "Not implemented reached in " << __PRETTY_FUNCTION__
#else
#define NOTIMPLEMENTED_MSG "NOT IMPLEMENTED"
#endif
#if NOTIMPLEMENTED_POLICY == 0
#define NOTIMPLEMENTED() EAT_STREAM_PARAMETERS
#elif NOTIMPLEMENTED_POLICY == 1
// TODO, figure out how to generate a warning
#define NOTIMPLEMENTED() COMPILE_ASSERT(false, NOT_IMPLEMENTED)
#elif NOTIMPLEMENTED_POLICY == 2
#define NOTIMPLEMENTED() COMPILE_ASSERT(false, NOT_IMPLEMENTED)
#elif NOTIMPLEMENTED_POLICY == 3
#define NOTIMPLEMENTED() NOTREACHED()
#elif NOTIMPLEMENTED_POLICY == 4
#define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG
#elif NOTIMPLEMENTED_POLICY == 5
#define NOTIMPLEMENTED() do {\
static bool logged_once = false;\
LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG;\
logged_once = true;\
} while(0);\
EAT_STREAM_PARAMETERS
#endif
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_LOGGING_H_
================================================
FILE: CEF/include/base/cef_macros.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_MACROS_H_
#define CEF_INCLUDE_BASE_CEF_MACROS_H_
#pragma once
#if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/macros.h"
// Chromium uses movable types.
#define MOVE_SCOPED_PTR(var) std::move(var)
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include <stddef.h> // For size_t.
#include "include/base/cef_build.h" // For COMPILER_MSVC
// CEF does not use movable types.
#define MOVE_SCOPED_PTR(var) var.Pass()
#if !defined(arraysize)
// The arraysize(arr) macro returns the # of elements in an array arr.
// The expression is a compile-time constant, and therefore can be
// used in defining new arrays, for example. If you use arraysize on
// a pointer by mistake, you will get a compile-time error.
//
// One caveat is that arraysize() doesn't accept any array of an
// anonymous type or a type defined inside a function. In these rare
// cases, you have to use the unsafe ARRAYSIZE_UNSAFE() macro below. This is
// due to a limitation in C++'s template system. The limitation might
// eventually be removed, but it hasn't happened yet.
// This template function declaration is used in defining arraysize.
// Note that the function doesn't need an implementation, as we only
// use its type.
template <typename T, size_t N>
char (&ArraySizeHelper(T (&array)[N]))[N];
// That gcc wants both of these prototypes seems mysterious. VC, for
// its part, can't decide which to use (another mystery). Matching of
// template overloads: the final frontier.
#ifndef _MSC_VER
template <typename T, size_t N>
char (&ArraySizeHelper(const T (&array)[N]))[N];
#endif
#define arraysize(array) (sizeof(ArraySizeHelper(array)))
#endif // !arraysize
#if !defined(DISALLOW_COPY_AND_ASSIGN)
// A macro to disallow the copy constructor and operator= functions
// This should be used in the private: declarations for a class
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
#endif // !DISALLOW_COPY_AND_ASSIGN
#if !defined(DISALLOW_IMPLICIT_CONSTRUCTORS)
// A macro to disallow all the implicit constructors, namely the
// default constructor, copy constructor and operator= functions.
//
// This should be used in the private: declarations for a class
// that wants to prevent anyone from instantiating it. This is
// especially useful for classes containing only static methods.
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName(); \
DISALLOW_COPY_AND_ASSIGN(TypeName)
#endif // !DISALLOW_IMPLICIT_CONSTRUCTORS
#if !defined(COMPILE_ASSERT)
// The COMPILE_ASSERT macro can be used to verify that a compile time
// expression is true. For example, you could use it to verify the
// size of a static array:
//
// COMPILE_ASSERT(ARRAYSIZE_UNSAFE(content_type_names) == CONTENT_NUM_TYPES,
// content_type_names_incorrect_size);
//
// or to make sure a struct is smaller than a certain size:
//
// COMPILE_ASSERT(sizeof(foo) < 128, foo_too_large);
//
// The second argument to the macro is the name of the variable. If
// the expression is false, most compilers will issue a warning/error
// containing the name of the variable.
#if __cplusplus >= 201103L
// Under C++11, just use static_assert.
#define COMPILE_ASSERT(expr, msg) static_assert(expr, #msg)
#else
namespace cef {
template <bool>
struct CompileAssert {
};
} // namespace cef
#define COMPILE_ASSERT(expr, msg) \
typedef cef::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] \
ALLOW_UNUSED_TYPE
// Implementation details of COMPILE_ASSERT:
//
// - COMPILE_ASSERT works by defining an array type that has -1
// elements (and thus is invalid) when the expression is false.
//
// - The simpler definition
//
// #define COMPILE_ASSERT(expr, msg) typedef char msg[(expr) ? 1 : -1]
//
// does not work, as gcc supports variable-length arrays whose sizes
// are determined at run-time (this is gcc's extension and not part
// of the C++ standard). As a result, gcc fails to reject the
// following code with the simple definition:
//
// int foo;
// COMPILE_ASSERT(foo, msg); // not supposed to compile as foo is
// // not a compile-time constant.
//
// - By using the type CompileAssert<(bool(expr))>, we ensures that
// expr is a compile-time constant. (Template arguments must be
// determined at compile-time.)
//
// - The outer parentheses in CompileAssert<(bool(expr))> are necessary
// to work around a bug in gcc 3.4.4 and 4.0.1. If we had written
//
// CompileAssert<bool(expr)>
//
// instead, these compilers will refuse to compile
//
// COMPILE_ASSERT(5 > 0, some_message);
//
// (They seem to think the ">" in "5 > 0" marks the end of the
// template argument list.)
//
// - The array size is (bool(expr) ? 1 : -1), instead of simply
//
// ((expr) ? 1 : -1).
//
// This is to avoid running into a bug in MS VC 7.1, which
// causes ((0.0) ? 1 : -1) to incorrectly evaluate to 1.
#endif // !(__cplusplus >= 201103L)
#endif // !defined(COMPILE_ASSERT)
#endif // !USING_CHROMIUM_INCLUDES
#if !defined(ALLOW_THIS_IN_INITIALIZER_LIST)
#if defined(COMPILER_MSVC)
// MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled.
// The warning remains disabled until popped by MSVC_POP_WARNING.
#define MSVC_PUSH_DISABLE_WARNING(n) __pragma(warning(push)) \
__pragma(warning(disable:n))
// MSVC_PUSH_WARNING_LEVEL pushes |n| as the global warning level. The level
// remains in effect until popped by MSVC_POP_WARNING(). Use 0 to disable all
// warnings.
#define MSVC_PUSH_WARNING_LEVEL(n) __pragma(warning(push, n))
// Pop effects of innermost MSVC_PUSH_* macro.
#define MSVC_POP_WARNING() __pragma(warning(pop))
// Allows |this| to be passed as an argument in constructor initializer lists.
// This uses push/pop instead of the seemingly simpler suppress feature to avoid
// having the warning be disabled for more than just |code|.
//
// Example usage:
// Foo::Foo() : x(NULL), ALLOW_THIS_IN_INITIALIZER_LIST(y(this)), z(3) {}
//
// Compiler warning C4355: 'this': used in base member initializer list:
// http://msdn.microsoft.com/en-us/library/3c594ae3(VS.80).aspx
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) MSVC_PUSH_DISABLE_WARNING(4355) \
code \
MSVC_POP_WARNING()
#else // !COMPILER_MSVC
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) code
#endif // !COMPILER_MSVC
#endif // !ALLOW_THIS_IN_INITIALIZER_LIST
#endif // CEF_INCLUDE_BASE_CEF_MACROS_H_
================================================
FILE: CEF/include/base/cef_move.h
================================================
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_MOVE_H_
#define CEF_INCLUDE_BASE_CEF_MOVE_H_
#if defined(MOVE_ONLY_TYPE_FOR_CPP_03)
// Do nothing if the macro in this header has already been defined.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/move.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
// Macro with the boilerplate that makes a type move-only in C++03.
//
// USAGE
//
// This macro should be used instead of DISALLOW_COPY_AND_ASSIGN to create
// a "move-only" type. Unlike DISALLOW_COPY_AND_ASSIGN, this macro should be
// the first line in a class declaration.
//
// A class using this macro must call .Pass() (or somehow be an r-value already)
// before it can be:
//
// * Passed as a function argument
// * Used as the right-hand side of an assignment
// * Returned from a function
//
// Each class will still need to define their own "move constructor" and "move
// operator=" to make this useful. Here's an example of the macro, the move
// constructor, and the move operator= from the scoped_ptr class:
//
// template <typename T>
// class scoped_ptr {
// MOVE_ONLY_TYPE_FOR_CPP_03(scoped_ptr, RValue)
// public:
// scoped_ptr(RValue& other) : ptr_(other.release()) { }
// scoped_ptr& operator=(RValue& other) {
// swap(other);
// return *this;
// }
// };
//
// Note that the constructor must NOT be marked explicit.
//
// For consistency, the second parameter to the macro should always be RValue
// unless you have a strong reason to do otherwise. It is only exposed as a
// macro parameter so that the move constructor and move operator= don't look
// like they're using a phantom type.
//
//
// HOW THIS WORKS
//
// For a thorough explanation of this technique, see:
//
// http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Move_Constructor
//
// The summary is that we take advantage of 2 properties:
//
// 1) non-const references will not bind to r-values.
// 2) C++ can apply one user-defined conversion when initializing a
// variable.
//
// The first lets us disable the copy constructor and assignment operator
// by declaring private version of them with a non-const reference param
gitextract_f2ea7q17/ ├── .gitignore ├── BrowserHandlers.cc ├── BrowserHandlers.h ├── CEF/ │ ├── Release/ │ │ ├── libcef.lib │ │ └── libcef_dll_wrapper.lib │ └── include/ │ ├── base/ │ │ ├── cef_atomic_ref_count.h │ │ ├── cef_atomicops.h │ │ ├── cef_basictypes.h │ │ ├── cef_bind.h │ │ ├── cef_bind_helpers.h │ │ ├── cef_build.h │ │ ├── cef_callback.h │ │ ├── cef_callback_forward.h │ │ ├── cef_callback_helpers.h │ │ ├── cef_callback_list.h │ │ ├── cef_cancelable_callback.h │ │ ├── cef_lock.h │ │ ├── cef_logging.h │ │ ├── cef_macros.h │ │ ├── cef_move.h │ │ ├── cef_platform_thread.h │ │ ├── cef_ref_counted.h │ │ ├── cef_scoped_ptr.h │ │ ├── cef_string16.h │ │ ├── cef_template_util.h │ │ ├── cef_thread_checker.h │ │ ├── cef_thread_collision_warner.h │ │ ├── cef_trace_event.h │ │ ├── cef_tuple.h │ │ ├── cef_weak_ptr.h │ │ └── internal/ │ │ ├── cef_atomicops_x86_msvc.h │ │ ├── cef_bind_internal.h │ │ ├── cef_bind_internal_win.h │ │ ├── cef_callback_internal.h │ │ ├── cef_lock_impl.h │ │ ├── cef_raw_scoped_refptr_mismatch_checker.h │ │ └── cef_thread_checker_impl.h │ ├── capi/ │ │ ├── cef_app_capi.h │ │ ├── cef_auth_callback_capi.h │ │ ├── cef_base_capi.h │ │ ├── cef_browser_capi.h │ │ ├── cef_browser_process_handler_capi.h │ │ ├── cef_callback_capi.h │ │ ├── cef_client_capi.h │ │ ├── cef_command_line_capi.h │ │ ├── cef_context_menu_handler_capi.h │ │ ├── cef_cookie_capi.h │ │ ├── cef_dialog_handler_capi.h │ │ ├── cef_display_handler_capi.h │ │ ├── cef_dom_capi.h │ │ ├── cef_download_handler_capi.h │ │ ├── cef_download_item_capi.h │ │ ├── cef_drag_data_capi.h │ │ ├── cef_drag_handler_capi.h │ │ ├── cef_find_handler_capi.h │ │ ├── cef_focus_handler_capi.h │ │ ├── cef_frame_capi.h │ │ ├── cef_geolocation_capi.h │ │ ├── cef_geolocation_handler_capi.h │ │ ├── cef_image_capi.h │ │ ├── cef_jsdialog_handler_capi.h │ │ ├── cef_keyboard_handler_capi.h │ │ ├── cef_life_span_handler_capi.h │ │ ├── cef_load_handler_capi.h │ │ ├── cef_menu_model_capi.h │ │ ├── cef_menu_model_delegate_capi.h │ │ ├── cef_navigation_entry_capi.h │ │ ├── cef_origin_whitelist_capi.h │ │ ├── cef_parser_capi.h │ │ ├── cef_path_util_capi.h │ │ ├── cef_print_handler_capi.h │ │ ├── cef_print_settings_capi.h │ │ ├── cef_process_message_capi.h │ │ ├── cef_process_util_capi.h │ │ ├── cef_render_handler_capi.h │ │ ├── cef_render_process_handler_capi.h │ │ ├── cef_request_capi.h │ │ ├── cef_request_context_capi.h │ │ ├── cef_request_context_handler_capi.h │ │ ├── cef_request_handler_capi.h │ │ ├── cef_resource_bundle_capi.h │ │ ├── cef_resource_bundle_handler_capi.h │ │ ├── cef_resource_handler_capi.h │ │ ├── cef_response_capi.h │ │ ├── cef_response_filter_capi.h │ │ ├── cef_scheme_capi.h │ │ ├── cef_ssl_info_capi.h │ │ ├── cef_stream_capi.h │ │ ├── cef_string_visitor_capi.h │ │ ├── cef_task_capi.h │ │ ├── cef_trace_capi.h │ │ ├── cef_urlrequest_capi.h │ │ ├── cef_v8_capi.h │ │ ├── cef_values_capi.h │ │ ├── cef_web_plugin_capi.h │ │ ├── cef_xml_reader_capi.h │ │ ├── cef_zip_reader_capi.h │ │ └── views/ │ │ ├── cef_box_layout_capi.h │ │ ├── cef_browser_view_capi.h │ │ ├── cef_browser_view_delegate_capi.h │ │ ├── cef_button_capi.h │ │ ├── cef_button_delegate_capi.h │ │ ├── cef_display_capi.h │ │ ├── cef_fill_layout_capi.h │ │ ├── cef_label_button_capi.h │ │ ├── cef_layout_capi.h │ │ ├── cef_menu_button_capi.h │ │ ├── cef_menu_button_delegate_capi.h │ │ ├── cef_panel_capi.h │ │ ├── cef_panel_delegate_capi.h │ │ ├── cef_scroll_view_capi.h │ │ ├── cef_textfield_capi.h │ │ ├── cef_textfield_delegate_capi.h │ │ ├── cef_view_capi.h │ │ ├── cef_view_delegate_capi.h │ │ ├── cef_window_capi.h │ │ └── cef_window_delegate_capi.h │ ├── cef_app.h │ ├── cef_auth_callback.h │ ├── cef_base.h │ ├── cef_browser.h │ ├── cef_browser_process_handler.h │ ├── cef_callback.h │ ├── cef_client.h │ ├── cef_command_line.h │ ├── cef_context_menu_handler.h │ ├── cef_cookie.h │ ├── cef_dialog_handler.h │ ├── cef_display_handler.h │ ├── cef_dom.h │ ├── cef_download_handler.h │ ├── cef_download_item.h │ ├── cef_drag_data.h │ ├── cef_drag_handler.h │ ├── cef_find_handler.h │ ├── cef_focus_handler.h │ ├── cef_frame.h │ ├── cef_geolocation.h │ ├── cef_geolocation_handler.h │ ├── cef_image.h │ ├── cef_jsdialog_handler.h │ ├── cef_keyboard_handler.h │ ├── cef_life_span_handler.h │ ├── cef_load_handler.h │ ├── cef_menu_model.h │ ├── cef_menu_model_delegate.h │ ├── cef_navigation_entry.h │ ├── cef_origin_whitelist.h │ ├── cef_pack_resources.h │ ├── cef_pack_strings.h │ ├── cef_parser.h │ ├── cef_path_util.h │ ├── cef_print_handler.h │ ├── cef_print_settings.h │ ├── cef_process_message.h │ ├── cef_process_util.h │ ├── cef_render_handler.h │ ├── cef_render_process_handler.h │ ├── cef_request.h │ ├── cef_request_context.h │ ├── cef_request_context_handler.h │ ├── cef_request_handler.h │ ├── cef_resource_bundle.h │ ├── cef_resource_bundle_handler.h │ ├── cef_resource_handler.h │ ├── cef_response.h │ ├── cef_response_filter.h │ ├── cef_sandbox_win.h │ ├── cef_scheme.h │ ├── cef_ssl_info.h │ ├── cef_stream.h │ ├── cef_string_visitor.h │ ├── cef_task.h │ ├── cef_trace.h │ ├── cef_urlrequest.h │ ├── cef_v8.h │ ├── cef_values.h │ ├── cef_version.h │ ├── cef_web_plugin.h │ ├── cef_xml_reader.h │ ├── cef_zip_reader.h │ ├── internal/ │ │ ├── cef_export.h │ │ ├── cef_logging_internal.h │ │ ├── cef_ptr.h │ │ ├── cef_string.h │ │ ├── cef_string_list.h │ │ ├── cef_string_map.h │ │ ├── cef_string_multimap.h │ │ ├── cef_string_types.h │ │ ├── cef_string_wrappers.h │ │ ├── cef_thread_internal.h │ │ ├── cef_time.h │ │ ├── cef_trace_event_internal.h │ │ ├── cef_types.h │ │ ├── cef_types_win.h │ │ ├── cef_types_wrappers.h │ │ └── cef_win.h │ ├── views/ │ │ ├── cef_box_layout.h │ │ ├── cef_browser_view.h │ │ ├── cef_browser_view_delegate.h │ │ ├── cef_button.h │ │ ├── cef_button_delegate.h │ │ ├── cef_display.h │ │ ├── cef_fill_layout.h │ │ ├── cef_label_button.h │ │ ├── cef_layout.h │ │ ├── cef_menu_button.h │ │ ├── cef_menu_button_delegate.h │ │ ├── cef_panel.h │ │ ├── cef_panel_delegate.h │ │ ├── cef_scroll_view.h │ │ ├── cef_textfield.h │ │ ├── cef_textfield_delegate.h │ │ ├── cef_view.h │ │ ├── cef_view_delegate.h │ │ ├── cef_window.h │ │ └── cef_window_delegate.h │ └── wrapper/ │ ├── cef_byte_read_handler.h │ ├── cef_closure_task.h │ ├── cef_helpers.h │ ├── cef_message_router.h │ ├── cef_resource_manager.h │ ├── cef_stream_resource_handler.h │ ├── cef_xml_object.h │ └── cef_zip_archive.h ├── CEFV8HandlerEx.cc ├── CEFV8HandlerEx.h ├── CEFWebkit.cc ├── CEFWebkit.h ├── CEFWebkitBrowser.cc ├── CEFWebkitBrowser.h ├── CEFWebkitBrowser.rc ├── CEFWebkitBrowser.sln ├── CEFWebkitBrowser.vcxproj ├── CEFWebkitBrowser.vcxproj.filters ├── CEFWebkitBrowser.vcxproj.user ├── DuiLib/ │ ├── Control/ │ │ ├── UIActiveX.cpp │ │ ├── UIActiveX.h │ │ ├── UIAnimation.cpp │ │ ├── UIAnimation.h │ │ ├── UIButton.cpp │ │ ├── UIButton.h │ │ ├── UICheckBox.cpp │ │ ├── UICheckBox.h │ │ ├── UIColorPalette.cpp │ │ ├── UIColorPalette.h │ │ ├── UICombo.cpp │ │ ├── UICombo.h │ │ ├── UIComboBox.cpp │ │ ├── UIComboBox.h │ │ ├── UIDateTime.cpp │ │ ├── UIDateTime.h │ │ ├── UIEdit.cpp │ │ ├── UIEdit.h │ │ ├── UIFadeButton.cpp │ │ ├── UIFadeButton.h │ │ ├── UIFlash.cpp │ │ ├── UIFlash.h │ │ ├── UIHyperlink.cpp │ │ ├── UIHyperlink.h │ │ ├── UIIpAddress.cpp │ │ ├── UIIpAddress.h │ │ ├── UILabel.cpp │ │ ├── UILabel.h │ │ ├── UIList.cpp │ │ ├── UIList.h │ │ ├── UIMediaPlayer.cpp │ │ ├── UIMediaPlayer.h │ │ ├── UIOption.cpp │ │ ├── UIOption.h │ │ ├── UIProgress.cpp │ │ ├── UIProgress.h │ │ ├── UIRichEdit.cpp │ │ ├── UIRichEdit.h │ │ ├── UIScrollBar.cpp │ │ ├── UIScrollBar.h │ │ ├── UISlider.cpp │ │ ├── UISlider.h │ │ ├── UIText.cpp │ │ ├── UIText.h │ │ ├── UITreeView.cpp │ │ ├── UITreeView.h │ │ ├── UIWebBrowser.cpp │ │ └── UIWebBrowser.h │ ├── Core/ │ │ ├── UIBase.cpp │ │ ├── UIBase.h │ │ ├── UIContainer - 副本.cpp │ │ ├── UIContainer - 副本.h │ │ ├── UIContainer.cpp │ │ ├── UIContainer.h │ │ ├── UIControl.cpp │ │ ├── UIControl.h │ │ ├── UIDefine.h │ │ ├── UIDlgBuilder.cpp │ │ ├── UIDlgBuilder.h │ │ ├── UIManager.cpp │ │ ├── UIManager.h │ │ ├── UIMarkup.cpp │ │ ├── UIMarkup.h │ │ ├── UIRender.cpp │ │ └── UIRender.h │ ├── DuiLib.vcproj │ ├── DuiLib.vcxproj │ ├── DuiLib.vcxproj.filters │ ├── Ex/ │ │ └── ShadowWindow.h │ ├── Layout/ │ │ ├── UIChildLayout.cpp │ │ ├── UIChildLayout.h │ │ ├── UIHorizontalLayout.cpp │ │ ├── UIHorizontalLayout.h │ │ ├── UITabLayout.cpp │ │ ├── UITabLayout.h │ │ ├── UITileLayout.cpp │ │ ├── UITileLayout.h │ │ ├── UIVerticalLayout.cpp │ │ └── UIVerticalLayout.h │ ├── StdAfx.cpp │ ├── StdAfx.h │ ├── UIlib.cpp │ ├── UIlib.h │ └── Utils/ │ ├── Flash11.tlb │ ├── FlashEventHandler.h │ ├── UIDelegate.cpp │ ├── UIDelegate.h │ ├── UnCompression.h │ ├── Utils.cpp │ ├── Utils.h │ ├── WebBrowserEventHandler.h │ ├── WinImplBase.cpp │ ├── WinImplBase.h │ ├── Zip/ │ │ ├── XUnZip.cpp │ │ ├── XUnZip.h │ │ └── XUnZipBase.h │ ├── downloadmgr.h │ ├── stb_image.c │ ├── stb_image.h │ ├── wmp.tlh │ └── wmp.tli ├── Entry.cc ├── HookFlash/ │ ├── EasyHook/ │ │ ├── EasyHook32.lib │ │ ├── EasyHook64.lib │ │ ├── LICENSE │ │ ├── README.md │ │ └── easyhook.h │ ├── HookFlash.cpp │ ├── HookFlash.h │ ├── HookFlash.vcxproj │ ├── HookFlash.vcxproj.filters │ ├── HookFlash.vcxproj.user │ ├── ReadMe.txt │ ├── dllmain.cpp │ ├── stdafx.cpp │ ├── stdafx.h │ └── targetver.h ├── LICENSE ├── MiniDumper.cpp ├── MiniDumper.h ├── README.md ├── ReadMe.txt ├── Resource.h ├── bin/ │ ├── Skin/ │ │ └── skin.xml │ ├── cef.pak │ ├── cef_100_percent.pak │ ├── cef_200_percent.pak │ ├── cef_extensions.pak │ ├── devtools_resources.pak │ ├── htmlexample/ │ │ ├── css/ │ │ │ ├── style.css │ │ │ ├── style_1_common.css │ │ │ ├── text.css │ │ │ └── tree.css │ │ ├── index.html │ │ └── src/ │ │ ├── css/ │ │ │ ├── style.css │ │ │ ├── text.css │ │ │ └── tree.css │ │ └── js/ │ │ ├── common.js │ │ ├── common52.js │ │ ├── fancybox/ │ │ │ ├── jquery.easing-1.3.pack.js │ │ │ ├── jquery.fancybox-1.3.4.css │ │ │ ├── jquery.fancybox-1.3.4.js │ │ │ ├── jquery.fancybox-1.3.4.pack.js │ │ │ └── jquery.mousewheel-3.0.4.pack.js │ │ ├── scrolltop.js │ │ └── tree/ │ │ ├── tree.css │ │ └── tree.js │ ├── locales/ │ │ ├── am.pak │ │ ├── ar.pak │ │ ├── bg.pak │ │ ├── bn.pak │ │ ├── ca.pak │ │ ├── cs.pak │ │ ├── da.pak │ │ ├── de.pak │ │ ├── el.pak │ │ ├── en-GB.pak │ │ ├── en-US.pak │ │ ├── es-419.pak │ │ ├── es.pak │ │ ├── et.pak │ │ ├── fa.pak │ │ ├── fi.pak │ │ ├── fil.pak │ │ ├── fr.pak │ │ ├── gu.pak │ │ ├── he.pak │ │ ├── hi.pak │ │ ├── hr.pak │ │ ├── hu.pak │ │ ├── id.pak │ │ ├── it.pak │ │ ├── ja.pak │ │ ├── kn.pak │ │ ├── ko.pak │ │ ├── lt.pak │ │ ├── lv.pak │ │ ├── ml.pak │ │ ├── mr.pak │ │ ├── ms.pak │ │ ├── nb.pak │ │ ├── nl.pak │ │ ├── pl.pak │ │ ├── pt-BR.pak │ │ ├── pt-PT.pak │ │ ├── ro.pak │ │ ├── ru.pak │ │ ├── sk.pak │ │ ├── sl.pak │ │ ├── sr.pak │ │ ├── sv.pak │ │ ├── sw.pak │ │ ├── ta.pak │ │ ├── te.pak │ │ ├── th.pak │ │ ├── tr.pak │ │ ├── uk.pak │ │ ├── vi.pak │ │ ├── zh-CN.pak │ │ └── zh-TW.pak │ └── ppflash/ │ └── 18_0_0_209/ │ └── manifest.json ├── chromium命令行参数.docx ├── clientapp.cc ├── clientapp.h ├── stdafx.cpp ├── stdafx.h └── targetver.h
SYMBOL INDEX (2202 symbols across 313 files)
FILE: BrowserHandlers.cc
type MyEnum (line 216) | enum MyEnum
FILE: CEF/include/base/cef_atomic_ref_count.h
function namespace (line 61) | namespace base {
FILE: CEF/include/base/cef_atomicops.h
function namespace (line 83) | namespace base {
FILE: CEF/include/base/cef_basictypes.h
type int64 (line 46) | typedef long int64;
type uint64 (line 47) | typedef unsigned long uint64;
type int64 (line 49) | typedef long long int64;
type uint64 (line 50) | typedef unsigned long long uint64;
type int32 (line 57) | typedef int int32;
type uint32 (line 64) | typedef unsigned int uint32;
type wchar_t (line 71) | typedef wchar_t char16;
type char16 (line 73) | typedef unsigned short char16;
FILE: CEF/include/base/cef_bind.h
function namespace (line 89) | namespace base {
FILE: CEF/include/base/cef_bind_helpers.h
function namespace (line 191) | namespace base {
function T (line 414) | T Pass() const {
function ForwardType (line 435) | static ForwardType Unwrap(UnretainedWrapper<T> unretained) {
type T (line 442) | typedef const T& ForwardType;
function ForwardType (line 443) | static ForwardType Unwrap(ConstRefWrapper<T> const_ref) {
function ForwardType (line 451) | static ForwardType Unwrap(const scoped_refptr<T>& o) { return o.get(); }
type WeakPtr (line 456) | typedef const WeakPtr<T>& ForwardType;
function ForwardType (line 457) | static ForwardType Unwrap(const WeakPtr<T>& o) { return o; }
function ForwardType (line 463) | static ForwardType Unwrap(const OwnedWrapper<T>& o) {
type T (line 470) | typedef T ForwardType;
function T (line 471) | static T Unwrap(PassedWrapper<T>& o) {
function AddRef (line 483) | static void AddRef(const T&) {}
function Release (line 484) | static void Release(const T&) {}
function AddRef (line 495) | static void AddRef(const T&) {}
function Release (line 496) | static void Release(const T&) {}
function AddRef (line 501) | static void AddRef(T* o) { o->AddRef(); }
function Release (line 502) | static void Release(T* o) { o->Release(); }
function AddRef (line 509) | static void AddRef(const scoped_refptr<T>& o) {}
function Release (line 510) | static void Release(const scoped_refptr<T>& o) {}
function AddRef (line 515) | static void AddRef(const T* o) { o->AddRef(); }
function Release (line 516) | static void Release(const T* o) { o->Release(); }
FILE: CEF/include/base/cef_callback.h
function namespace (line 385) | namespace base {
type Callback (line 801) | typedef Callback<void(void)> Closure;
FILE: CEF/include/base/cef_callback_forward.h
function namespace (line 48) | namespace base {
FILE: CEF/include/base/cef_callback_helpers.h
function namespace (line 62) | namespace base {
FILE: CEF/include/base/cef_callback_list.h
function namespace (line 112) | namespace base {
function Notify (line 421) | void Notify(typename cef_internal::CallbackParamTraits<A1>::ForwardType a1,
FILE: CEF/include/base/cef_cancelable_callback.h
function namespace (line 93) | namespace base {
type CancelableCallback (line 308) | typedef CancelableCallback<void(void)> CancelableClosure;
FILE: CEF/include/base/cef_lock.h
function namespace (line 52) | namespace base {
FILE: CEF/include/base/cef_logging.h
function namespace (line 169) | namespace cef {
FILE: CEF/include/base/cef_macros.h
function namespace (line 132) | namespace cef {
FILE: CEF/include/base/cef_platform_thread.h
function namespace (line 55) | namespace base {
FILE: CEF/include/base/cef_ref_counted.h
function namespace (line 58) | namespace base {
function ptr_ (line 308) | ptr_(NULL) {
function ptr_ (line 311) | ptr_(p) {
function T (line 332) | T* get() const { return ptr_; }
function operator (line 336) | operator T*() const { return ptr_; }
function swap (line 363) | void swap(T** pp) {
function swap (line 369) | void swap(scoped_refptr<T>& r) {
FILE: CEF/include/base/cef_scoped_ptr.h
function namespace (line 145) | namespace base {
type FreeDeleter (line 212) | struct FreeDeleter {
function namespace (line 218) | namespace cef_internal {
type D (line 360) | typedef D deleter_type;
function impl_ (line 363) | impl_(NULL) { }
function explicit (line 366) | explicit scoped_ptr(element_type* p) : impl_(p) { }
function swap (line 447) | void swap(scoped_ptr& p2) {
function element_type (line 456) | element_type* release() WARN_UNUSED_RESULT {
type D (line 494) | typedef D deleter_type;
function impl_ (line 497) | impl_(NULL) { }
function explicit (line 515) | explicit scoped_ptr(element_type* array) : impl_(array) { }
function element_type (line 535) | element_type* get() const { return impl_.get(); }
function swap (line 557) | void swap(scoped_ptr& p2) {
function element_type (line 566) | element_type* release() WARN_UNUSED_RESULT {
FILE: CEF/include/base/cef_string16.h
function namespace (line 75) | namespace base {
function namespace (line 89) | namespace base {
type std (line 172) | typedef std::basic_string<char16, base::string16_char_traits> string16;
FILE: CEF/include/base/cef_template_util.h
function namespace (line 52) | namespace base {
FILE: CEF/include/base/cef_thread_checker.h
function namespace (line 62) | namespace base {
FILE: CEF/include/base/cef_thread_collision_warner.h
function namespace (line 169) | namespace base {
FILE: CEF/include/base/cef_trace_event.h
function namespace (line 406) | namespace cef_trace_event {
FILE: CEF/include/base/cef_tuple.h
function namespace (line 74) | namespace base {
type Tuple2 (line 331) | typedef Tuple2<typename
type Tuple2 (line 333) | typedef Tuple2<typename
type Tuple3 (line 342) | typedef Tuple3<typename
type Tuple3 (line 345) | typedef Tuple3<typename
type Tuple4 (line 356) | typedef Tuple4<typename
type Tuple4 (line 360) | typedef Tuple4<typename
type Tuple5 (line 373) | typedef Tuple5<typename
type Tuple5 (line 378) | typedef Tuple5<typename
type Tuple6 (line 393) | typedef Tuple6<typename
type Tuple6 (line 399) | typedef Tuple6<typename
type Tuple7 (line 416) | typedef Tuple7<typename
type Tuple7 (line 423) | typedef Tuple7<typename
type Tuple8 (line 443) | typedef Tuple8<typename
type Tuple8 (line 451) | typedef Tuple8<typename
function Tuple0 (line 466) | inline Tuple0 MakeTuple() {
function DispatchToMethod (line 579) | void DispatchToMethod(ObjT* obj, Method method, const Tuple0& arg) {
function DispatchToMethod (line 584) | void DispatchToMethod(ObjT* obj, Method method, const A& arg) {
function DispatchToMethod (line 589) | void DispatchToMethod(ObjT* obj, Method method, const Tuple1<A>& arg) {
function DispatchToMethod (line 594) | void DispatchToMethod(ObjT* obj,
function DispatchToMethod (line 602) | void DispatchToMethod(ObjT* obj, Method method,
function DispatchToMethod (line 619) | void DispatchToMethod(ObjT* obj, Method method,
function DispatchToMethod (line 630) | void DispatchToMethod(ObjT* obj, Method method,
function DispatchToMethod (line 642) | void DispatchToMethod(ObjT* obj, Method method,
function DispatchToMethod (line 655) | void DispatchToMethod(ObjT* obj, Method method,
function DispatchToFunction (line 670) | void DispatchToFunction(Function function, const Tuple0& arg) {
function DispatchToFunction (line 675) | void DispatchToFunction(Function function, const A& arg) {
function DispatchToFunction (line 680) | void DispatchToFunction(Function function, const Tuple1<A>& arg) {
function DispatchToFunction (line 685) | void DispatchToFunction(Function function, const Tuple2<A, B>& arg) {
function DispatchToFunction (line 691) | void DispatchToFunction(Function function, const Tuple3<A, B, C>& arg) {
function DispatchToFunction (line 698) | void DispatchToFunction(Function function,
function DispatchToMethod (line 757) | void DispatchToMethod(ObjT* obj,
function DispatchToMethod (line 764) | void DispatchToMethod(ObjT* obj, Method method, const A& arg, Tuple0*) {
function DispatchToMethod (line 769) | void DispatchToMethod(ObjT* obj,
function DispatchToMethod (line 776) | void DispatchToMethod(ObjT* obj,
function DispatchToMethod (line 784) | void DispatchToMethod(ObjT* obj, Method method,
FILE: CEF/include/base/cef_weak_ptr.h
function class (line 127) | class WeakReference {
function class (line 160) | class WeakReferenceOwner {
function class (line 181) | class WeakPtrBase {
type is_convertible (line 203) | typedef
function T (line 251) | T* get() const { return ref_.is_valid() ? ptr_ : NULL; }
function InvalidateWeakPtrs (line 322) | void InvalidateWeakPtrs() {
function HasWeakPtrs (line 328) | bool HasWeakPtrs() const {
FILE: CEF/include/base/internal/cef_atomicops_x86_msvc.h
function namespace (line 51) | namespace base {
FILE: CEF/include/base/internal/cef_bind_internal.h
function namespace (line 46) | namespace base {
type R (line 261) | typedef R (RunType)(T*, A1, A2);
type true_type (line 262) | typedef true_type IsMethod;
function explicit (line 264) | explicit RunnableAdapter(R(T::*method)(A1, A2))
function R (line 268) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 281) | typedef R (RunType)(const T*, A1, A2);
type true_type (line 282) | typedef true_type IsMethod;
function explicit (line 284) | explicit RunnableAdapter(R(T::*method)(A1, A2) const)
function R (line 307) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 322) | typedef R (RunType)(T*, A1, A2, A3);
type true_type (line 323) | typedef true_type IsMethod;
function explicit (line 325) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3))
function R (line 329) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 344) | typedef R (RunType)(const T*, A1, A2, A3);
type true_type (line 345) | typedef true_type IsMethod;
function explicit (line 347) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3) const)
function R (line 372) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 389) | typedef R (RunType)(T*, A1, A2, A3, A4);
type true_type (line 390) | typedef true_type IsMethod;
function explicit (line 392) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4))
function R (line 396) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 413) | typedef R (RunType)(const T*, A1, A2, A3, A4);
type true_type (line 414) | typedef true_type IsMethod;
function explicit (line 416) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4) const)
function R (line 443) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 461) | typedef R (RunType)(T*, A1, A2, A3, A4, A5);
type true_type (line 462) | typedef true_type IsMethod;
function explicit (line 464) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5))
function R (line 468) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 486) | typedef R (RunType)(const T*, A1, A2, A3, A4, A5);
type true_type (line 487) | typedef true_type IsMethod;
function explicit (line 489) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5) const)
function R (line 517) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 537) | typedef R (RunType)(T*, A1, A2, A3, A4, A5, A6);
type true_type (line 538) | typedef true_type IsMethod;
function explicit (line 540) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5, A6))
function R (line 544) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 564) | typedef R (RunType)(const T*, A1, A2, A3, A4, A5, A6);
type true_type (line 565) | typedef true_type IsMethod;
function explicit (line 567) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5, A6) const)
function R (line 597) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 618) | typedef R (RunType)(T*, A1, A2, A3, A4, A5, A6, A7);
type true_type (line 619) | typedef true_type IsMethod;
function explicit (line 621) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5, A6, A7))
function R (line 625) | R Run(T* object, typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 646) | typedef R (RunType)(const T*, A1, A2, A3, A4, A5, A6, A7);
type true_type (line 647) | typedef true_type IsMethod;
function explicit (line 649) | explicit RunnableAdapter(R(T::*method)(A1, A2, A3, A4, A5, A6, A7) const)
type typename (line 817) | typedef typename Callback<T>::RunType RunType;
type R (line 1132) | typedef R(UnboundRunType)();
function R (line 1134) | static R Run(BindStateBase* base) {
type R (line 1154) | typedef R(UnboundRunType)(X1);
function R (line 1156) | static R Run(BindStateBase* base,
type R (line 1176) | typedef R(UnboundRunType)();
function R (line 1178) | static R Run(BindStateBase* base) {
type R (line 1202) | typedef R(UnboundRunType)(X1, X2);
function R (line 1204) | static R Run(BindStateBase* base,
type R (line 1228) | typedef R(UnboundRunType)(X2);
function R (line 1230) | static R Run(BindStateBase* base,
type R (line 1255) | typedef R(UnboundRunType)();
function R (line 1257) | static R Run(BindStateBase* base) {
type R (line 1288) | typedef R(UnboundRunType)(X1, X2, X3);
function R (line 1290) | static R Run(BindStateBase* base,
type R (line 1318) | typedef R(UnboundRunType)(X2, X3);
function R (line 1320) | static R Run(BindStateBase* base,
type R (line 1349) | typedef R(UnboundRunType)(X3);
function R (line 1351) | static R Run(BindStateBase* base,
type R (line 1381) | typedef R(UnboundRunType)();
function R (line 1383) | static R Run(BindStateBase* base) {
type R (line 1419) | typedef R(UnboundRunType)(X1, X2, X3, X4);
function R (line 1421) | static R Run(BindStateBase* base,
type R (line 1453) | typedef R(UnboundRunType)(X2, X3, X4);
function R (line 1455) | static R Run(BindStateBase* base,
type R (line 1488) | typedef R(UnboundRunType)(X3, X4);
function R (line 1490) | static R Run(BindStateBase* base,
type R (line 1524) | typedef R(UnboundRunType)(X4);
function R (line 1526) | static R Run(BindStateBase* base,
type R (line 1561) | typedef R(UnboundRunType)();
function R (line 1563) | static R Run(BindStateBase* base) {
type R (line 1605) | typedef R(UnboundRunType)(X1, X2, X3, X4, X5);
function R (line 1607) | static R Run(BindStateBase* base,
type R (line 1642) | typedef R(UnboundRunType)(X2, X3, X4, X5);
function R (line 1644) | static R Run(BindStateBase* base,
type R (line 1680) | typedef R(UnboundRunType)(X3, X4, X5);
function R (line 1682) | static R Run(BindStateBase* base,
type R (line 1719) | typedef R(UnboundRunType)(X4, X5);
function R (line 1721) | static R Run(BindStateBase* base,
type R (line 1759) | typedef R(UnboundRunType)(X5);
function R (line 1761) | static R Run(BindStateBase* base,
type R (line 1800) | typedef R(UnboundRunType)();
function R (line 1802) | static R Run(BindStateBase* base) {
type R (line 1849) | typedef R(UnboundRunType)(X1, X2, X3, X4, X5, X6);
function R (line 1851) | static R Run(BindStateBase* base,
type R (line 1890) | typedef R(UnboundRunType)(X2, X3, X4, X5, X6);
function R (line 1892) | static R Run(BindStateBase* base,
type R (line 1932) | typedef R(UnboundRunType)(X3, X4, X5, X6);
function R (line 1934) | static R Run(BindStateBase* base,
type R (line 1975) | typedef R(UnboundRunType)(X4, X5, X6);
function R (line 1977) | static R Run(BindStateBase* base,
type R (line 2019) | typedef R(UnboundRunType)(X5, X6);
function R (line 2021) | static R Run(BindStateBase* base,
type R (line 2064) | typedef R(UnboundRunType)(X6);
function R (line 2066) | static R Run(BindStateBase* base,
type R (line 2110) | typedef R(UnboundRunType)();
function R (line 2112) | static R Run(BindStateBase* base) {
type R (line 2165) | typedef R(UnboundRunType)(X1, X2, X3, X4, X5, X6, X7);
function R (line 2167) | static R Run(BindStateBase* base,
type R (line 2209) | typedef R(UnboundRunType)(X2, X3, X4, X5, X6, X7);
function R (line 2211) | static R Run(BindStateBase* base,
type R (line 2254) | typedef R(UnboundRunType)(X3, X4, X5, X6, X7);
function R (line 2256) | static R Run(BindStateBase* base,
type R (line 2300) | typedef R(UnboundRunType)(X4, X5, X6, X7);
function R (line 2302) | static R Run(BindStateBase* base,
type R (line 2347) | typedef R(UnboundRunType)(X5, X6, X7);
function R (line 2349) | static R Run(BindStateBase* base,
type R (line 2395) | typedef R(UnboundRunType)(X6, X7);
function R (line 2397) | static R Run(BindStateBase* base,
type R (line 2444) | typedef R(UnboundRunType)(X7);
function R (line 2446) | static R Run(BindStateBase* base,
type R (line 2494) | typedef R(UnboundRunType)();
function R (line 2496) | static R Run(BindStateBase* base) {
type Runnable (line 2558) | typedef Runnable RunnableType;
type false_type (line 2559) | typedef false_type IsWeakCall;
type typename (line 2561) | typedef typename InvokerType::UnboundRunType UnboundRunType;
function explicit (line 2562) | explicit BindState(const Runnable& runnable)
function Destroy (line 2569) | static void Destroy(BindStateBase* self) {
type Runnable (line 2578) | typedef Runnable RunnableType;
type IsWeakMethod (line 2579) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2581) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2584) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
function Destroy (line 2596) | static void Destroy(BindStateBase* self) {
type Runnable (line 2606) | typedef Runnable RunnableType;
type IsWeakMethod (line 2607) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2609) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2612) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2613) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
function Destroy (line 2626) | static void Destroy(BindStateBase* self) {
type Runnable (line 2639) | typedef Runnable RunnableType;
type IsWeakMethod (line 2640) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2642) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2645) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2646) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
type UnwrapTraits (line 2647) | typedef UnwrapTraits<P3> Bound3UnwrapTraits;
function Destroy (line 2661) | static void Destroy(BindStateBase* self) {
type IsWeakMethod (line 2676) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2678) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2681) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2682) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
type UnwrapTraits (line 2683) | typedef UnwrapTraits<P3> Bound3UnwrapTraits;
type UnwrapTraits (line 2684) | typedef UnwrapTraits<P4> Bound4UnwrapTraits;
function Destroy (line 2700) | static void Destroy(BindStateBase* self) {
type IsWeakMethod (line 2716) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2718) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2721) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2722) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
type UnwrapTraits (line 2723) | typedef UnwrapTraits<P3> Bound3UnwrapTraits;
type UnwrapTraits (line 2724) | typedef UnwrapTraits<P4> Bound4UnwrapTraits;
type UnwrapTraits (line 2725) | typedef UnwrapTraits<P5> Bound5UnwrapTraits;
function Destroy (line 2742) | static void Destroy(BindStateBase* self) {
type IsWeakMethod (line 2759) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2761) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2764) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2765) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
type UnwrapTraits (line 2766) | typedef UnwrapTraits<P3> Bound3UnwrapTraits;
type UnwrapTraits (line 2767) | typedef UnwrapTraits<P4> Bound4UnwrapTraits;
type UnwrapTraits (line 2768) | typedef UnwrapTraits<P5> Bound5UnwrapTraits;
type UnwrapTraits (line 2769) | typedef UnwrapTraits<P6> Bound6UnwrapTraits;
function Destroy (line 2787) | static void Destroy(BindStateBase* self) {
type IsWeakMethod (line 2805) | typedef IsWeakMethod<HasIsMethodTag<Runnable>::value, P1> IsWeakCall;
type typename (line 2807) | typedef typename InvokerType::UnboundRunType UnboundRunType;
type UnwrapTraits (line 2810) | typedef UnwrapTraits<P1> Bound1UnwrapTraits;
type UnwrapTraits (line 2811) | typedef UnwrapTraits<P2> Bound2UnwrapTraits;
type UnwrapTraits (line 2812) | typedef UnwrapTraits<P3> Bound3UnwrapTraits;
type UnwrapTraits (line 2813) | typedef UnwrapTraits<P4> Bound4UnwrapTraits;
type UnwrapTraits (line 2814) | typedef UnwrapTraits<P5> Bound5UnwrapTraits;
type UnwrapTraits (line 2815) | typedef UnwrapTraits<P6> Bound6UnwrapTraits;
type UnwrapTraits (line 2816) | typedef UnwrapTraits<P7> Bound7UnwrapTraits;
function Destroy (line 2835) | static void Destroy(BindStateBase* self) {
FILE: CEF/include/base/internal/cef_bind_internal_win.h
function namespace (line 43) | namespace base {
type R (line 163) | typedef R (RunType)(A1, A2, A3);
function explicit (line 165) | explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3))
function R (line 169) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 183) | typedef R (RunType)(A1, A2, A3);
function explicit (line 185) | explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3))
function R (line 189) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 203) | typedef R (RunType)(A1, A2, A3, A4);
function explicit (line 205) | explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4))
function R (line 209) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 224) | typedef R (RunType)(A1, A2, A3, A4);
function explicit (line 226) | explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4))
function R (line 230) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 246) | typedef R (RunType)(A1, A2, A3, A4, A5);
function explicit (line 248) | explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5))
function R (line 252) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 269) | typedef R (RunType)(A1, A2, A3, A4, A5);
function explicit (line 271) | explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5))
function R (line 275) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 292) | typedef R (RunType)(A1, A2, A3, A4, A5, A6);
function explicit (line 294) | explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6))
function R (line 298) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 316) | typedef R (RunType)(A1, A2, A3, A4, A5, A6);
function explicit (line 318) | explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6))
function R (line 322) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 340) | typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7);
function explicit (line 342) | explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, ...
function R (line 346) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
type R (line 365) | typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7);
function explicit (line 367) | explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6,...
function R (line 371) | R Run(typename CallbackParamTraits<A1>::ForwardType a1,
FILE: CEF/include/base/internal/cef_callback_internal.h
function namespace (line 50) | namespace base {
type T (line 172) | typedef const T* StorageType;
type T (line 190) | typedef T ForwardType;
type T (line 191) | typedef T StorageType;
FILE: CEF/include/base/internal/cef_lock_impl.h
function namespace (line 45) | namespace base {
FILE: CEF/include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h
function namespace (line 47) | namespace base {
FILE: CEF/include/base/internal/cef_thread_checker_impl.h
function namespace (line 39) | namespace base {
FILE: CEF/include/capi/cef_app_capi.h
type _cef_app_t (line 52) | struct _cef_app_t
type cef_app_t (line 58) | typedef struct _cef_app_t {
type _cef_main_args_t (line 125) | struct _cef_main_args_t
type _cef_main_args_t (line 135) | struct _cef_main_args_t
type _cef_settings_t (line 136) | struct _cef_settings_t
FILE: CEF/include/capi/cef_auth_callback_capi.h
type cef_auth_callback_t (line 52) | typedef struct _cef_auth_callback_t {
FILE: CEF/include/capi/cef_base_capi.h
type cef_base_t (line 51) | typedef struct _cef_base_t {
FILE: CEF/include/capi/cef_browser_capi.h
type _cef_browser_host_t (line 53) | struct _cef_browser_host_t
type _cef_client_t (line 54) | struct _cef_client_t
type cef_browser_t (line 62) | typedef struct _cef_browser_t {
type cef_run_file_dialog_callback_t (line 192) | typedef struct _cef_run_file_dialog_callback_t {
type cef_navigation_entry_visitor_t (line 215) | typedef struct _cef_navigation_entry_visitor_t {
type cef_pdf_print_callback_t (line 238) | typedef struct _cef_pdf_print_callback_t {
type cef_download_image_callback_t (line 259) | typedef struct _cef_download_image_callback_t {
type cef_browser_host_t (line 284) | typedef struct _cef_browser_host_t {
type _cef_client_t (line 714) | struct _cef_client_t
type _cef_browser_settings_t (line 715) | struct _cef_browser_settings_t
type _cef_request_context_t (line 716) | struct _cef_request_context_t
type _cef_client_t (line 724) | struct _cef_client_t
type _cef_browser_settings_t (line 725) | struct _cef_browser_settings_t
type _cef_request_context_t (line 726) | struct _cef_request_context_t
FILE: CEF/include/capi/cef_browser_process_handler_capi.h
type cef_browser_process_handler_t (line 56) | typedef struct _cef_browser_process_handler_t {
FILE: CEF/include/capi/cef_callback_capi.h
type cef_callback_t (line 51) | typedef struct _cef_callback_t {
type cef_completion_callback_t (line 72) | typedef struct _cef_completion_callback_t {
FILE: CEF/include/capi/cef_client_capi.h
type cef_client_t (line 66) | typedef struct _cef_client_t {
FILE: CEF/include/capi/cef_command_line_capi.h
type cef_command_line_t (line 58) | typedef struct _cef_command_line_t {
FILE: CEF/include/capi/cef_context_menu_handler_capi.h
type _cef_context_menu_params_t (line 50) | struct _cef_context_menu_params_t
type cef_run_context_menu_callback_t (line 55) | typedef struct _cef_run_context_menu_callback_t {
type cef_context_menu_handler_t (line 79) | typedef struct _cef_context_menu_handler_t {
type cef_context_menu_params_t (line 139) | typedef struct _cef_context_menu_params_t {
FILE: CEF/include/capi/cef_cookie_capi.h
type _cef_cookie_visitor_t (line 48) | struct _cef_cookie_visitor_t
type _cef_delete_cookies_callback_t (line 49) | struct _cef_delete_cookies_callback_t
type _cef_set_cookie_callback_t (line 50) | struct _cef_set_cookie_callback_t
type cef_cookie_manager_t (line 56) | typedef struct _cef_cookie_manager_t {
type _cef_completion_callback_t (line 151) | struct _cef_completion_callback_t
type _cef_completion_callback_t (line 164) | struct _cef_completion_callback_t
type cef_cookie_visitor_t (line 171) | typedef struct _cef_cookie_visitor_t {
type cef_set_cookie_callback_t (line 194) | typedef struct _cef_set_cookie_callback_t {
type cef_delete_cookies_callback_t (line 213) | typedef struct _cef_delete_cookies_callback_t {
FILE: CEF/include/capi/cef_dialog_handler_capi.h
type cef_file_dialog_callback_t (line 52) | typedef struct _cef_file_dialog_callback_t {
type cef_dialog_handler_t (line 79) | typedef struct _cef_dialog_handler_t {
FILE: CEF/include/capi/cef_display_handler_capi.h
type cef_display_handler_t (line 54) | typedef struct _cef_display_handler_t {
FILE: CEF/include/capi/cef_dom_capi.h
type _cef_domdocument_t (line 47) | struct _cef_domdocument_t
type _cef_domnode_t (line 48) | struct _cef_domnode_t
type cef_domvisitor_t (line 54) | typedef struct _cef_domvisitor_t {
type cef_domdocument_t (line 76) | typedef struct _cef_domdocument_t {
type cef_domnode_t (line 176) | typedef struct _cef_domnode_t {
FILE: CEF/include/capi/cef_download_handler_capi.h
type cef_before_download_callback_t (line 53) | typedef struct _cef_before_download_callback_t {
type cef_download_item_callback_t (line 73) | typedef struct _cef_download_item_callback_t {
type cef_download_handler_t (line 100) | typedef struct _cef_download_handler_t {
FILE: CEF/include/capi/cef_download_item_capi.h
type cef_download_item_t (line 51) | typedef struct _cef_download_item_t {
FILE: CEF/include/capi/cef_drag_data_capi.h
type cef_drag_data_t (line 53) | typedef struct _cef_drag_data_t {
FILE: CEF/include/capi/cef_drag_handler_capi.h
type cef_drag_handler_t (line 54) | typedef struct _cef_drag_handler_t {
FILE: CEF/include/capi/cef_find_handler_capi.h
type cef_find_handler_t (line 53) | typedef struct _cef_find_handler_t {
FILE: CEF/include/capi/cef_focus_handler_capi.h
type cef_focus_handler_t (line 55) | typedef struct _cef_focus_handler_t {
FILE: CEF/include/capi/cef_frame_capi.h
type _cef_browser_t (line 51) | struct _cef_browser_t
type _cef_v8context_t (line 52) | struct _cef_v8context_t
type cef_frame_t (line 60) | typedef struct _cef_frame_t {
FILE: CEF/include/capi/cef_geolocation_capi.h
type cef_get_geolocation_callback_t (line 52) | typedef struct _cef_get_geolocation_callback_t {
FILE: CEF/include/capi/cef_geolocation_handler_capi.h
type cef_geolocation_callback_t (line 53) | typedef struct _cef_geolocation_callback_t {
type cef_geolocation_handler_t (line 72) | typedef struct _cef_geolocation_handler_t {
FILE: CEF/include/capi/cef_image_capi.h
type cef_image_t (line 57) | typedef struct _cef_image_t {
FILE: CEF/include/capi/cef_jsdialog_handler_capi.h
type cef_jsdialog_callback_t (line 53) | typedef struct _cef_jsdialog_callback_t {
type cef_jsdialog_handler_t (line 72) | typedef struct _cef_jsdialog_handler_t {
FILE: CEF/include/capi/cef_keyboard_handler_capi.h
type cef_keyboard_handler_t (line 53) | typedef struct _cef_keyboard_handler_t {
FILE: CEF/include/capi/cef_life_span_handler_capi.h
type _cef_client_t (line 48) | struct _cef_client_t
type cef_life_span_handler_t (line 55) | typedef struct _cef_life_span_handler_t {
FILE: CEF/include/capi/cef_load_handler_capi.h
type cef_load_handler_t (line 55) | typedef struct _cef_load_handler_t {
FILE: CEF/include/capi/cef_menu_model_capi.h
type cef_menu_model_t (line 55) | typedef struct _cef_menu_model_t {
type _cef_menu_model_delegate_t (line 389) | struct _cef_menu_model_delegate_t
FILE: CEF/include/capi/cef_menu_model_delegate_capi.h
type _cef_menu_model_t (line 47) | struct _cef_menu_model_t
type cef_menu_model_delegate_t (line 54) | typedef struct _cef_menu_model_delegate_t {
FILE: CEF/include/capi/cef_navigation_entry_capi.h
type cef_navigation_entry_t (line 51) | typedef struct _cef_navigation_entry_t {
FILE: CEF/include/capi/cef_parser_capi.h
type _cef_urlparts_t (line 53) | struct _cef_urlparts_t
type _cef_urlparts_t (line 60) | struct _cef_urlparts_t
type _cef_value_t (line 155) | struct _cef_value_t
FILE: CEF/include/capi/cef_print_handler_capi.h
type cef_print_dialog_callback_t (line 53) | typedef struct _cef_print_dialog_callback_t {
type cef_print_job_callback_t (line 75) | typedef struct _cef_print_job_callback_t {
type cef_print_handler_t (line 92) | typedef struct _cef_print_handler_t {
FILE: CEF/include/capi/cef_print_settings_capi.h
type cef_print_settings_t (line 51) | typedef struct _cef_print_settings_t {
FILE: CEF/include/capi/cef_process_message_capi.h
type cef_process_message_t (line 52) | typedef struct _cef_process_message_t {
FILE: CEF/include/capi/cef_process_util_capi.h
type _cef_command_line_t (line 58) | struct _cef_command_line_t
FILE: CEF/include/capi/cef_render_handler_capi.h
type cef_render_handler_t (line 54) | typedef struct _cef_render_handler_t {
FILE: CEF/include/capi/cef_render_process_handler_capi.h
type cef_render_process_handler_t (line 60) | typedef struct _cef_render_process_handler_t {
FILE: CEF/include/capi/cef_request_capi.h
type _cef_post_data_element_t (line 47) | struct _cef_post_data_element_t
type _cef_post_data_t (line 48) | struct _cef_post_data_t
type cef_request_t (line 54) | typedef struct _cef_request_t {
type cef_post_data_t (line 204) | typedef struct _cef_post_data_t {
type cef_post_data_element_t (line 264) | typedef struct _cef_post_data_element_t {
FILE: CEF/include/capi/cef_request_context_capi.h
type _cef_scheme_handler_factory_t (line 50) | struct _cef_scheme_handler_factory_t
type cef_resolve_callback_t (line 55) | typedef struct _cef_resolve_callback_t {
type cef_request_context_t (line 88) | typedef struct _cef_request_context_t {
type _cef_request_context_settings_t (line 275) | struct _cef_request_context_settings_t
type _cef_request_context_handler_t (line 276) | struct _cef_request_context_handler_t
type _cef_request_context_handler_t (line 284) | struct _cef_request_context_handler_t
FILE: CEF/include/capi/cef_request_context_handler_capi.h
type cef_request_context_handler_t (line 55) | typedef struct _cef_request_context_handler_t {
FILE: CEF/include/capi/cef_request_handler_capi.h
type cef_request_callback_t (line 59) | typedef struct _cef_request_callback_t {
type cef_request_handler_t (line 82) | typedef struct _cef_request_handler_t {
FILE: CEF/include/capi/cef_resource_bundle_capi.h
type cef_resource_bundle_t (line 55) | typedef struct _cef_resource_bundle_t {
FILE: CEF/include/capi/cef_resource_bundle_handler_capi.h
type cef_resource_bundle_handler_t (line 53) | typedef struct _cef_resource_bundle_handler_t {
FILE: CEF/include/capi/cef_resource_handler_capi.h
type cef_resource_handler_t (line 57) | typedef struct _cef_resource_handler_t {
FILE: CEF/include/capi/cef_response_capi.h
type cef_response_t (line 52) | typedef struct _cef_response_t {
FILE: CEF/include/capi/cef_response_filter_capi.h
type cef_response_filter_t (line 52) | typedef struct _cef_response_filter_t {
FILE: CEF/include/capi/cef_scheme_capi.h
type _cef_scheme_handler_factory_t (line 52) | struct _cef_scheme_handler_factory_t
type cef_scheme_registrar_t (line 57) | typedef struct _cef_scheme_registrar_t {
type cef_scheme_handler_factory_t (line 120) | typedef struct _cef_scheme_handler_factory_t {
FILE: CEF/include/capi/cef_ssl_info_capi.h
type cef_sslcert_principal_t (line 52) | typedef struct _cef_sslcert_principal_t {
type cef_sslinfo_t (line 123) | typedef struct _cef_sslinfo_t {
FILE: CEF/include/capi/cef_stream_capi.h
type cef_read_handler_t (line 52) | typedef struct _cef_read_handler_t {
type cef_stream_reader_t (line 94) | typedef struct _cef_stream_reader_t {
type cef_write_handler_t (line 155) | typedef struct _cef_write_handler_t {
type cef_stream_writer_t (line 197) | typedef struct _cef_stream_writer_t {
FILE: CEF/include/capi/cef_string_visitor_capi.h
type cef_string_visitor_t (line 51) | typedef struct _cef_string_visitor_t {
FILE: CEF/include/capi/cef_task_capi.h
type cef_task_t (line 56) | typedef struct _cef_task_t {
type cef_task_runner_t (line 78) | typedef struct _cef_task_runner_t {
FILE: CEF/include/capi/cef_trace_capi.h
type cef_end_tracing_callback_t (line 54) | typedef struct _cef_end_tracing_callback_t {
type _cef_completion_callback_t (line 89) | struct _cef_completion_callback_t
FILE: CEF/include/capi/cef_urlrequest_capi.h
type _cef_urlrequest_client_t (line 51) | struct _cef_urlrequest_client_t
type cef_urlrequest_t (line 60) | typedef struct _cef_urlrequest_t {
type _cef_request_t (line 123) | struct _cef_request_t
type _cef_urlrequest_client_t (line 123) | struct _cef_urlrequest_client_t
type _cef_request_context_t (line 124) | struct _cef_request_context_t
type cef_urlrequest_client_t (line 132) | typedef struct _cef_urlrequest_client_t {
FILE: CEF/include/capi/cef_v8_capi.h
type _cef_v8exception_t (line 50) | struct _cef_v8exception_t
type _cef_v8handler_t (line 51) | struct _cef_v8handler_t
type _cef_v8stack_frame_t (line 52) | struct _cef_v8stack_frame_t
type _cef_v8value_t (line 53) | struct _cef_v8value_t
type cef_v8context_t (line 62) | typedef struct _cef_v8context_t {
type cef_v8handler_t (line 158) | typedef struct _cef_v8handler_t {
type cef_v8accessor_t (line 184) | typedef struct _cef_v8accessor_t {
type cef_v8exception_t (line 218) | typedef struct _cef_v8exception_t {
type cef_v8value_t (line 285) | typedef struct _cef_v8value_t {
type cef_v8stack_trace_t (line 690) | typedef struct _cef_v8stack_trace_t {
type cef_v8stack_frame_t (line 730) | typedef struct _cef_v8stack_frame_t {
FILE: CEF/include/capi/cef_values_capi.h
type _cef_binary_value_t (line 47) | struct _cef_binary_value_t
type _cef_dictionary_value_t (line 48) | struct _cef_dictionary_value_t
type _cef_list_value_t (line 49) | struct _cef_list_value_t
type cef_value_t (line 56) | typedef struct _cef_value_t {
type cef_binary_value_t (line 227) | typedef struct _cef_binary_value_t {
type cef_dictionary_value_t (line 292) | typedef struct _cef_dictionary_value_t {
type cef_list_value_t (line 519) | typedef struct _cef_list_value_t {
FILE: CEF/include/capi/cef_web_plugin_capi.h
type _cef_browser_t (line 47) | struct _cef_browser_t
type cef_web_plugin_info_t (line 52) | typedef struct _cef_web_plugin_info_t {
type cef_web_plugin_info_visitor_t (line 92) | typedef struct _cef_web_plugin_info_visitor_t {
type cef_web_plugin_unstable_callback_t (line 113) | typedef struct _cef_web_plugin_unstable_callback_t {
FILE: CEF/include/capi/cef_xml_reader_capi.h
type cef_xml_reader_t (line 54) | typedef struct _cef_xml_reader_t {
type _cef_stream_reader_t (line 270) | struct _cef_stream_reader_t
FILE: CEF/include/capi/cef_zip_reader_capi.h
type cef_zip_reader_t (line 54) | typedef struct _cef_zip_reader_t {
type _cef_stream_reader_t (line 143) | struct _cef_stream_reader_t
FILE: CEF/include/capi/views/cef_box_layout_capi.h
type _cef_view_t (line 47) | struct _cef_view_t
type cef_box_layout_t (line 57) | typedef struct _cef_box_layout_t {
FILE: CEF/include/capi/views/cef_browser_view_capi.h
type cef_browser_view_t (line 54) | typedef struct _cef_browser_view_t {
type _cef_client_t (line 74) | struct _cef_client_t
type _cef_browser_settings_t (line 75) | struct _cef_browser_settings_t
type _cef_request_context_t (line 76) | struct _cef_request_context_t
type _cef_browser_view_delegate_t (line 77) | struct _cef_browser_view_delegate_t
type _cef_browser_t (line 83) | struct _cef_browser_t
FILE: CEF/include/capi/views/cef_browser_view_delegate_capi.h
type _cef_browser_t (line 48) | struct _cef_browser_t
type _cef_browser_view_t (line 49) | struct _cef_browser_view_t
type cef_browser_view_delegate_t (line 56) | typedef struct _cef_browser_view_delegate_t {
FILE: CEF/include/capi/views/cef_button_capi.h
type _cef_label_button_t (line 47) | struct _cef_label_button_t
type cef_button_t (line 54) | typedef struct _cef_button_t {
FILE: CEF/include/capi/views/cef_button_delegate_capi.h
type _cef_button_t (line 47) | struct _cef_button_t
type cef_button_delegate_t (line 54) | typedef struct _cef_button_delegate_t {
FILE: CEF/include/capi/views/cef_display_capi.h
type cef_display_t (line 56) | typedef struct _cef_display_t {
FILE: CEF/include/capi/views/cef_fill_layout_capi.h
type cef_fill_layout_t (line 53) | typedef struct _cef_fill_layout_t {
FILE: CEF/include/capi/views/cef_label_button_capi.h
type _cef_menu_button_t (line 49) | struct _cef_menu_button_t
type cef_label_button_t (line 55) | typedef struct _cef_label_button_t {
type _cef_button_delegate_t (line 153) | struct _cef_button_delegate_t
FILE: CEF/include/capi/views/cef_layout_capi.h
type _cef_box_layout_t (line 47) | struct _cef_box_layout_t
type _cef_fill_layout_t (line 48) | struct _cef_fill_layout_t
type cef_layout_t (line 55) | typedef struct _cef_layout_t {
FILE: CEF/include/capi/views/cef_menu_button_capi.h
type cef_menu_button_t (line 56) | typedef struct _cef_menu_button_t {
type _cef_menu_button_delegate_t (line 85) | struct _cef_menu_button_delegate_t
FILE: CEF/include/capi/views/cef_menu_button_delegate_capi.h
type _cef_menu_button_t (line 47) | struct _cef_menu_button_t
type cef_menu_button_delegate_t (line 54) | typedef struct _cef_menu_button_delegate_t {
FILE: CEF/include/capi/views/cef_panel_capi.h
type _cef_box_layout_t (line 48) | struct _cef_box_layout_t
type _cef_fill_layout_t (line 49) | struct _cef_fill_layout_t
type _cef_layout_t (line 50) | struct _cef_layout_t
type _cef_window_t (line 51) | struct _cef_window_t
type cef_panel_t (line 58) | typedef struct _cef_panel_t {
type _cef_panel_delegate_t (line 142) | struct _cef_panel_delegate_t
FILE: CEF/include/capi/views/cef_panel_delegate_capi.h
type cef_panel_delegate_t (line 53) | typedef struct _cef_panel_delegate_t {
FILE: CEF/include/capi/views/cef_scroll_view_capi.h
type cef_scroll_view_t (line 53) | typedef struct _cef_scroll_view_t {
type _cef_view_delegate_t (line 106) | struct _cef_view_delegate_t
FILE: CEF/include/capi/views/cef_textfield_capi.h
type cef_textfield_t (line 54) | typedef struct _cef_textfield_t {
type _cef_textfield_delegate_t (line 272) | struct _cef_textfield_delegate_t
FILE: CEF/include/capi/views/cef_textfield_delegate_capi.h
type _cef_textfield_t (line 47) | struct _cef_textfield_t
type cef_textfield_delegate_t (line 54) | typedef struct _cef_textfield_delegate_t {
FILE: CEF/include/capi/views/cef_view_capi.h
type _cef_browser_view_t (line 47) | struct _cef_browser_view_t
type _cef_button_t (line 48) | struct _cef_button_t
type _cef_panel_t (line 49) | struct _cef_panel_t
type _cef_scroll_view_t (line 50) | struct _cef_scroll_view_t
type _cef_textfield_t (line 51) | struct _cef_textfield_t
type _cef_window_t (line 52) | struct _cef_window_t
type cef_view_t (line 60) | typedef struct _cef_view_t {
FILE: CEF/include/capi/views/cef_view_delegate_capi.h
type _cef_view_t (line 47) | struct _cef_view_t
type cef_view_delegate_t (line 54) | typedef struct _cef_view_delegate_t {
FILE: CEF/include/capi/views/cef_window_capi.h
type cef_window_t (line 59) | typedef struct _cef_window_t {
type _cef_window_delegate_t (line 279) | struct _cef_window_delegate_t
FILE: CEF/include/capi/views/cef_window_delegate_capi.h
type _cef_window_t (line 47) | struct _cef_window_t
type cef_window_delegate_t (line 54) | typedef struct _cef_window_delegate_t {
FILE: CEF/include/cef_app.h
function class (line 140) | class CefApp : public virtual CefBase {
FILE: CEF/include/cef_auth_callback.h
function class (line 48) | class CefAuthCallback : public virtual CefBase {
FILE: CEF/include/cef_base.h
function class (line 54) | class CefBase {
function class (line 80) | class CefRefCount {
FILE: CEF/include/cef_browser.h
function class (line 61) | class CefBrowser : public virtual CefBase {
function class (line 200) | class CefRunFileDialogCallback : public virtual CefBase {
function class (line 221) | class CefNavigationEntryVisitor : public virtual CefBase {
function class (line 243) | class CefPdfPrintCallback : public virtual CefBase {
function class (line 260) | class CefDownloadImageCallback : public virtual CefBase {
function class (line 283) | class CefBrowserHost : public virtual CefBase {
FILE: CEF/include/cef_browser_process_handler.h
function class (line 51) | class CefBrowserProcessHandler : public virtual CefBase {
FILE: CEF/include/cef_callback.h
function class (line 47) | class CefCallback : public virtual CefBase {
function class (line 66) | class CefCompletionCallback : public virtual CefBase {
FILE: CEF/include/cef_client.h
function class (line 62) | class CefClient : public virtual CefBase {
FILE: CEF/include/cef_command_line.h
function class (line 56) | class CefCommandLine : public virtual CefBase {
FILE: CEF/include/cef_context_menu_handler.h
function class (line 53) | class CefRunContextMenuCallback : public virtual CefBase {
function class (line 77) | class CefContextMenuHandler : public virtual CefBase {
function class (line 142) | class CefContextMenuParams : public virtual CefBase {
FILE: CEF/include/cef_cookie.h
function class (line 54) | class CefCookieManager : public virtual CefBase {
function class (line 174) | class CefCookieVisitor : public virtual CefBase {
function class (line 194) | class CefSetCookieCallback : public virtual CefBase {
function class (line 210) | class CefDeleteCookiesCallback : public virtual CefBase {
FILE: CEF/include/cef_dialog_handler.h
function class (line 48) | class CefFileDialogCallback : public virtual CefBase {
function class (line 75) | class CefDialogHandler : public virtual CefBase {
FILE: CEF/include/cef_display_handler.h
function class (line 50) | class CefDisplayHandler : public virtual CefBase {
FILE: CEF/include/cef_dom.h
function class (line 52) | class CefDOMVisitor : public virtual CefBase {
function class (line 71) | class CefDOMDocument : public virtual CefBase {
function class (line 167) | class CefDOMNode : public virtual CefBase {
FILE: CEF/include/cef_download_handler.h
function class (line 50) | class CefBeforeDownloadCallback : public virtual CefBase {
function class (line 67) | class CefDownloadItemCallback : public virtual CefBase {
function class (line 94) | class CefDownloadHandler : public virtual CefBase {
FILE: CEF/include/cef_download_item.h
function class (line 47) | class CefDownloadItem : public virtual CefBase {
FILE: CEF/include/cef_drag_data.h
function class (line 50) | class CefDragData : public virtual CefBase {
FILE: CEF/include/cef_drag_handler.h
function class (line 50) | class CefDragHandler : public virtual CefBase {
FILE: CEF/include/cef_find_handler.h
function class (line 49) | class CefFindHandler : public virtual CefBase {
FILE: CEF/include/cef_focus_handler.h
function class (line 51) | class CefFocusHandler : public virtual CefBase {
FILE: CEF/include/cef_frame.h
function class (line 57) | class CefFrame : public virtual CefBase {
FILE: CEF/include/cef_geolocation.h
function class (line 48) | class CefGetGeolocationCallback : public virtual CefBase {
FILE: CEF/include/cef_geolocation_handler.h
function class (line 49) | class CefGeolocationCallback : public virtual CefBase {
function class (line 65) | class CefGeolocationHandler : public virtual CefBase {
FILE: CEF/include/cef_image.h
function class (line 53) | class CefImage : public virtual CefBase {
FILE: CEF/include/cef_jsdialog_handler.h
function class (line 49) | class CefJSDialogCallback : public virtual CefBase {
function class (line 66) | class CefJSDialogHandler : public virtual CefBase {
FILE: CEF/include/cef_keyboard_handler.h
function class (line 49) | class CefKeyboardHandler : public virtual CefBase {
FILE: CEF/include/cef_life_span_handler.h
function class (line 52) | class CefLifeSpanHandler : public virtual CefBase {
FILE: CEF/include/cef_load_handler.h
function class (line 51) | class CefLoadHandler : public virtual CefBase {
FILE: CEF/include/cef_menu_model.h
function class (line 51) | class CefMenuModel : public virtual CefBase {
FILE: CEF/include/cef_menu_model_delegate.h
function class (line 51) | class CefMenuModelDelegate : public virtual CefBase {
FILE: CEF/include/cef_navigation_entry.h
function class (line 47) | class CefNavigationEntry : public virtual CefBase {
FILE: CEF/include/cef_path_util.h
type cef_path_key_t (line 43) | typedef cef_path_key_t PathKey;
FILE: CEF/include/cef_print_handler.h
function class (line 49) | class CefPrintDialogCallback : public virtual CefBase {
function class (line 68) | class CefPrintJobCallback : public virtual CefBase {
function class (line 83) | class CefPrintHandler : public virtual CefBase {
FILE: CEF/include/cef_print_settings.h
function class (line 49) | class CefPrintSettings : public virtual CefBase {
FILE: CEF/include/cef_process_message.h
type cef_process_id_t (line 44) | typedef cef_process_id_t CefProcessId;
function class (line 50) | class CefProcessMessage : public virtual CefBase {
FILE: CEF/include/cef_render_handler.h
function class (line 51) | class CefRenderHandler : public virtual CefBase {
FILE: CEF/include/cef_render_process_handler.h
function class (line 56) | class CefRenderProcessHandler : public virtual CefBase {
FILE: CEF/include/cef_request.h
function class (line 53) | class CefRequest : public virtual CefBase {
function class (line 210) | class CefPostData : public virtual CefBase {
function class (line 273) | class CefPostDataElement : public virtual CefBase {
FILE: CEF/include/cef_request_context.h
function class (line 55) | class CefResolveCallback : public virtual CefBase {
function class (line 86) | class CefRequestContext : public virtual CefBase {
FILE: CEF/include/cef_request_context_handler.h
function class (line 51) | class CefRequestContextHandler : public virtual CefBase {
FILE: CEF/include/cef_request_handler.h
function class (line 56) | class CefRequestCallback : public virtual CefBase {
function class (line 78) | class CefRequestHandler : public virtual CefBase {
FILE: CEF/include/cef_resource_bundle.h
function class (line 51) | class CefResourceBundle : public virtual CefBase {
FILE: CEF/include/cef_resource_bundle_handler.h
function class (line 49) | class CefResourceBundleHandler : public virtual CefBase {
FILE: CEF/include/cef_resource_handler.h
function class (line 53) | class CefResourceHandler : public virtual CefBase {
FILE: CEF/include/cef_response.h
function class (line 49) | class CefResponse : public virtual CefBase {
FILE: CEF/include/cef_response_filter.h
function class (line 48) | class CefResponseFilter : public virtual CefBase {
FILE: CEF/include/cef_sandbox_win.h
function class (line 74) | class CefScopedSandboxInfo {
FILE: CEF/include/cef_scheme.h
function class (line 85) | class CefSchemeRegistrar : public virtual CefBase {
function class (line 146) | class CefSchemeHandlerFactory : public virtual CefBase {
FILE: CEF/include/cef_ssl_info.h
function class (line 50) | class CefSSLCertPrincipal : public virtual CefBase {
function class (line 112) | class CefSSLInfo : public virtual CefBase {
FILE: CEF/include/cef_stream.h
function class (line 47) | class CefReadHandler : public virtual CefBase {
function class (line 90) | class CefStreamReader : public virtual CefBase {
function class (line 150) | class CefWriteHandler : public virtual CefBase {
function class (line 193) | class CefStreamWriter : public virtual CefBase {
FILE: CEF/include/cef_string_visitor.h
function class (line 46) | class CefStringVisitor : public virtual CefBase {
FILE: CEF/include/cef_task.h
type cef_thread_id_t (line 42) | typedef cef_thread_id_t CefThreadId;
function class (line 53) | class CefTask : public virtual CefBase {
function class (line 72) | class CefTaskRunner : public virtual CefBase {
FILE: CEF/include/cef_trace.h
function class (line 52) | class CefEndTracingCallback : public virtual CefBase {
FILE: CEF/include/cef_urlrequest.h
function class (line 57) | class CefURLRequest : public virtual CefBase {
function class (line 130) | class CefURLRequestClient : public virtual CefBase {
FILE: CEF/include/cef_v8.h
function class (line 127) | class CefV8Context : public virtual CefBase {
type std (line 221) | typedef std::vector<CefRefPtr<CefV8Value> > CefV8ValueList;
function class (line 228) | class CefV8Handler : public virtual CefBase {
function class (line 251) | class CefV8Accessor : public virtual CefBase {
function class (line 285) | class CefV8Exception : public virtual CefBase {
function class (line 350) | class CefV8Value : public virtual CefBase {
function class (line 785) | class CefV8StackTrace : public virtual CefBase {
function class (line 823) | class CefV8StackFrame : public virtual CefBase {
FILE: CEF/include/cef_values.h
type cef_value_type_t (line 48) | typedef cef_value_type_t CefValueType;
function class (line 56) | class CefValue : public virtual CefBase {
function class (line 237) | class CefBinaryValue : public virtual CefBase {
function class (line 303) | class CefDictionaryValue : public virtual CefBase {
function class (line 536) | class CefListValue : public virtual CefBase {
FILE: CEF/include/cef_web_plugin.h
function class (line 48) | class CefWebPluginInfo : public virtual CefBase {
function class (line 80) | class CefWebPluginInfoVisitor : public virtual CefBase {
function class (line 127) | class CefWebPluginUnstableCallback : public virtual CefBase {
FILE: CEF/include/cef_xml_reader.h
function class (line 50) | class CefXmlReader : public virtual CefBase {
FILE: CEF/include/cef_zip_reader.h
function class (line 49) | class CefZipReader : public virtual CefBase {
FILE: CEF/include/internal/cef_ptr.h
function parent (line 153) | parent(p) {}
function parent (line 155) | parent(r) {}
function parent (line 158) | parent(r) {}
FILE: CEF/include/internal/cef_string.h
type CefStringUTF16 (line 53) | typedef CefStringUTF16 CefString;
type CefStringUTF8 (line 55) | typedef CefStringUTF8 CefString;
type CefStringWide (line 57) | typedef CefStringWide CefString;
type cef_char_t (line 62) | typedef char cef_char_t;
type cef_string_utf8_t (line 63) | typedef cef_string_utf8_t cef_string_t;
type cef_string_userfree_utf8_t (line 64) | typedef cef_string_userfree_utf8_t cef_string_userfree_t;
type char16 (line 78) | typedef char16 cef_char_t;
type cef_string_userfree_utf16_t (line 79) | typedef cef_string_userfree_utf16_t cef_string_userfree_t;
type cef_string_utf16_t (line 80) | typedef cef_string_utf16_t cef_string_t;
type wchar_t (line 94) | typedef wchar_t cef_char_t;
type cef_string_wide_t (line 95) | typedef cef_string_wide_t cef_string_t;
type cef_string_userfree_wide_t (line 96) | typedef cef_string_userfree_wide_t cef_string_userfree_t;
FILE: CEF/include/internal/cef_string_types.h
type cef_string_wide_t (line 55) | typedef struct _cef_string_wide_t {
type cef_string_utf8_t (line 61) | typedef struct _cef_string_utf8_t {
type cef_string_utf16_t (line 67) | typedef struct _cef_string_utf16_t {
type cef_string_wide_t (line 163) | typedef cef_string_wide_t* cef_string_userfree_wide_t;
type cef_string_utf8_t (line 164) | typedef cef_string_utf8_t* cef_string_userfree_utf8_t;
type cef_string_utf16_t (line 165) | typedef cef_string_utf16_t* cef_string_userfree_utf16_t;
FILE: CEF/include/internal/cef_string_wrappers.h
function set (line 47) | struct CefStringTraitsWide {
function compare (line 57) | static inline int compare(const struct_type* s1, const struct_type* s2) {
function userfree_struct_type (line 60) | static inline userfree_struct_type userfree_alloc() {
function userfree_free (line 63) | static inline void userfree_free(userfree_struct_type ufs) {
function from_ascii (line 68) | static inline bool from_ascii(const char* str, size_t len, struct_type *...
function std (line 71) | static inline std::string to_string(const struct_type *s) {
function from_string (line 81) | static inline bool from_string(const std::string& str, struct_type *s) {
function std (line 84) | static inline std::wstring to_wstring(const struct_type *s) {
function from_wstring (line 87) | static inline bool from_wstring(const std::wstring& str, struct_type *s) {
function base (line 92) | static inline base::string16 to_string16(const struct_type *s) {
function from_string16 (line 102) | static inline bool from_string16(const base::string16& str,
function base (line 108) | static inline base::string16 to_string16(const struct_type *s) {
function from_string16 (line 111) | static inline bool from_string16(const base::string16& str, struct_type ...
function set (line 121) | struct CefStringTraitsUTF8 {
function compare (line 131) | static inline int compare(const struct_type* s1, const struct_type* s2) {
function userfree_struct_type (line 134) | static inline userfree_struct_type userfree_alloc() {
function userfree_free (line 137) | static inline void userfree_free(userfree_struct_type ufs) {
function from_ascii (line 142) | static inline bool from_ascii(const char* str, size_t len, struct_type* ...
function std (line 145) | static inline std::string to_string(const struct_type* s) {
function from_string (line 148) | static inline bool from_string(const std::string& str, struct_type* s) {
function std (line 151) | static inline std::wstring to_wstring(const struct_type* s) {
function from_wstring (line 161) | static inline bool from_wstring(const std::wstring& str, struct_type* s) {
function base (line 164) | static inline base::string16 to_string16(const struct_type* s) {
function from_string16 (line 174) | static inline bool from_string16(const base::string16& str, struct_type*...
function set (line 183) | struct CefStringTraitsUTF16 {
function compare (line 193) | static inline int compare(const struct_type* s1, const struct_type* s2) {
function userfree_struct_type (line 196) | static inline userfree_struct_type userfree_alloc() {
function userfree_free (line 199) | static inline void userfree_free(userfree_struct_type ufs) {
function from_ascii (line 204) | static inline bool from_ascii(const char* str, size_t len, struct_type* ...
function std (line 207) | static inline std::string to_string(const struct_type* s) {
function from_string (line 217) | static inline bool from_string(const std::string& str, struct_type* s) {
function std (line 222) | static inline std::wstring to_wstring(const struct_type* s) {
function from_wstring (line 232) | static inline bool from_wstring(const std::wstring& str, struct_type* s) {
function std (line 237) | static inline std::wstring to_wstring(const struct_type* s) {
function from_wstring (line 240) | static inline bool from_wstring(const std::wstring& str, struct_type* s) {
function base (line 245) | static inline base::string16 to_string16(const struct_type* s) {
function from_string16 (line 248) | static inline bool from_string16(const base::string16& str, struct_type*...
type typename (line 286) | typedef typename traits::struct_type struct_type;
type typename (line 287) | typedef typename traits::userfree_struct_type userfree_struct_type;
function virtual (line 374) | virtual ~CefStringBase() { ClearAndFree(); }
function char_type (line 383) | const char_type* c_str() const { return (string_ ? string_->str : NULL); }
function compare (line 403) | int compare(const CefStringBase& str) const {
function clear (line 416) | void clear() {
function swap (line 424) | void swap(CefStringBase& str) {
function struct_type (line 445) | const struct_type* GetStruct() const { return string_; }
function struct_type (line 451) | struct_type* GetWritableStruct() {
function ClearAndFree (line 460) | void ClearAndFree() {
function Attach (line 475) | void Attach(struct_type* str, bool owner) {
function AttachToUserFree (line 488) | void AttachToUserFree(userfree_struct_type str) {
function Detach (line 509) | void Detach() {
function userfree_struct_type (line 519) | userfree_struct_type DetachToUserFree() {
function FromString (line 539) | bool FromString(const char_type* src, size_t src_len, bool copy) {
function FromASCII (line 553) | bool FromASCII(const char* str) {
function FromString (line 578) | bool FromString(const std::string& str) {
function FromWString (line 602) | bool FromWString(const std::wstring& str) {
function FromString16 (line 626) | bool FromString16(const base::string16& str) {
type CefStringBase (line 726) | typedef CefStringBase<CefStringTraitsWide> CefStringWide;
type CefStringBase (line 727) | typedef CefStringBase<CefStringTraitsUTF8> CefStringUTF8;
type CefStringBase (line 728) | typedef CefStringBase<CefStringTraitsUTF16> CefStringUTF16;
FILE: CEF/include/internal/cef_thread_internal.h
type DWORD (line 48) | typedef DWORD cef_platform_thread_id_t;
type pid_t (line 50) | typedef pid_t cef_platform_thread_id_t;
type DWORD (line 59) | typedef DWORD cef_platform_thread_handle_t;
type pthread_t (line 61) | typedef pthread_t cef_platform_thread_handle_t;
FILE: CEF/include/internal/cef_time.h
type cef_time_t (line 44) | typedef struct _cef_time_t {
FILE: CEF/include/internal/cef_types.h
type uint32 (line 51) | typedef uint32 cef_color_t;
type cef_log_severity_t (line 89) | typedef enum {
type cef_state_t (line 124) | typedef enum {
type cef_settings_t (line 146) | typedef struct _cef_settings_t {
type cef_request_context_settings_t (line 390) | typedef struct _cef_request_context_settings_t {
type cef_browser_settings_t (line 451) | typedef struct _cef_browser_settings_t {
type cef_return_value_t (line 634) | typedef enum {
type cef_urlparts_t (line 654) | typedef struct _cef_urlparts_t {
type cef_cookie_t (line 708) | typedef struct _cef_cookie_t {
type cef_termination_status_t (line 764) | typedef enum {
type cef_path_key_t (line 784) | typedef enum {
type cef_storage_type_t (line 832) | typedef enum {
type cef_errorcode_t (line 841) | typedef enum {
type cef_cert_status_t (line 905) | typedef enum {
type cef_window_open_disposition_t (line 935) | typedef enum {
type cef_drag_operations_mask_t (line 954) | typedef enum {
type cef_v8_accesscontrol_t (line 968) | typedef enum {
type cef_v8_propertyattribute_t (line 978) | typedef enum {
type cef_postdataelement_type_t (line 989) | typedef enum {
type cef_resource_type_t (line 998) | typedef enum {
type cef_transition_type_t (line 1095) | typedef enum {
type cef_urlrequest_flags_t (line 1195) | typedef enum {
type cef_urlrequest_status_t (line 1233) | typedef enum {
type cef_point_t (line 1264) | typedef struct _cef_point_t {
type cef_rect_t (line 1272) | typedef struct _cef_rect_t {
type cef_size_t (line 1282) | typedef struct _cef_size_t {
type cef_range_t (line 1290) | typedef struct _cef_range_t {
type cef_insets_t (line 1298) | typedef struct _cef_insets_t {
type cef_draggable_region_t (line 1308) | typedef struct _cef_draggable_region_t {
type cef_process_id_t (line 1323) | typedef enum {
type cef_thread_id_t (line 1337) | typedef enum {
type cef_value_type_t (line 1389) | typedef enum {
type cef_jsdialog_type_t (line 1404) | typedef enum {
type cef_screen_info_t (line 1415) | typedef struct _cef_screen_info_t {
type cef_menu_id_t (line 1470) | typedef enum {
type cef_mouse_button_type_t (line 1517) | typedef enum {
type cef_mouse_event_t (line 1526) | typedef struct _cef_mouse_event_t {
type cef_paint_element_type_t (line 1547) | typedef enum {
type cef_event_flags_t (line 1555) | typedef enum {
type cef_menu_item_type_t (line 1575) | typedef enum {
type cef_context_menu_type_flags_t (line 1587) | typedef enum {
type cef_context_menu_media_type_t (line 1621) | typedef enum {
type cef_context_menu_media_state_flags_t (line 1651) | typedef enum {
type cef_context_menu_edit_state_flags_t (line 1668) | typedef enum {
type cef_key_event_type_t (line 1683) | typedef enum {
type cef_key_event_t (line 1712) | typedef struct _cef_key_event_t {
type cef_focus_source_t (line 1765) | typedef enum {
type cef_navigation_type_t (line 1779) | typedef enum {
type cef_xml_encoding_type_t (line 1794) | typedef enum {
type cef_xml_node_type_t (line 1805) | typedef enum {
type cef_popup_features_t (line 1822) | typedef struct _cef_popup_features_t {
type cef_dom_document_type_t (line 1847) | typedef enum {
type cef_dom_event_category_t (line 1857) | typedef enum {
type cef_dom_event_phase_t (line 1880) | typedef enum {
type cef_dom_node_type_t (line 1890) | typedef enum {
type cef_file_dialog_mode_t (line 1906) | typedef enum {
type cef_geoposition_error_code_t (line 1952) | typedef enum {
type cef_geoposition_t (line 1964) | typedef struct _cef_geoposition_t {
type cef_color_model_t (line 2020) | typedef enum {
type cef_duplex_mode_t (line 2047) | typedef enum {
type cef_cursor_type_t (line 2057) | typedef enum {
type cef_cursor_info_t (line 2109) | typedef struct _cef_cursor_info_t {
type cef_uri_unescape_rule_t (line 2119) | typedef enum {
type cef_json_parser_options_t (line 2181) | typedef enum {
type cef_json_parser_error_t (line 2197) | typedef enum {
type cef_json_writer_options_t (line 2213) | typedef enum {
type cef_pdf_print_margin_type_t (line 2245) | typedef enum {
type cef_pdf_print_settings_t (line 2270) | typedef struct _cef_pdf_print_settings_t {
type cef_scale_factor_t (line 2333) | typedef enum {
type cef_plugin_policy_t (line 2349) | typedef enum {
type cef_referrer_policy_t (line 2377) | typedef enum {
type cef_response_filter_status_t (line 2417) | typedef enum {
type cef_color_type_t (line 2439) | typedef enum {
type cef_alpha_type_t (line 2454) | typedef enum {
type cef_text_style_t (line 2474) | typedef enum {
type cef_main_axis_alignment_t (line 2486) | typedef enum {
type cef_cross_axis_alignment_t (line 2507) | typedef enum {
type cef_box_layout_settings_t (line 2532) | typedef struct _cef_box_layout_settings_t {
type cef_button_state_t (line 2589) | typedef enum {
type cef_horizontal_alignment_t (line 2599) | typedef enum {
type cef_menu_anchor_position_t (line 2620) | typedef enum {
FILE: CEF/include/internal/cef_types_win.h
type cef_main_args_t (line 58) | typedef struct _cef_main_args_t {
type cef_window_info_t (line 65) | typedef struct _cef_window_info_t {
FILE: CEF/include/internal/cef_types_wrappers.h
function attached_to_ (line 46) | attached_to_(NULL) {
function virtual (line 49) | virtual ~CefStructBase() {
function Reset (line 68) | void Reset() {
function AttachTo (line 77) | void AttachTo(struct_type& source) {
function DetachTo (line 93) | void DetachTo(struct_type& target) {
function Set (line 111) | void Set(const struct_type& source, bool copy) {
function Clear (line 131) | static void Clear(struct_type* s) { traits::clear(s); }
function set (line 137) | struct CefPointTraits {
function class (line 152) | class CefPoint : public CefStructBase<CefPointTraits> {
function Set (line 164) | void Set(int x_val, int y_val) {
function set (line 178) | struct CefRectTraits {
function class (line 193) | class CefRect : public CefStructBase<CefRectTraits> {
function Set (line 205) | void Set(int x_val, int y_val, int width_val, int height_val) {
function Contains (line 212) | bool Contains(int point_x, int point_y) const {
function Contains (line 216) | bool Contains(const CefPoint& point) const {
function set (line 230) | struct CefSizeTraits {
function class (line 245) | class CefSize : public CefStructBase<CefSizeTraits> {
function Set (line 257) | void Set(int width_val, int height_val) {
function set (line 271) | struct CefRangeTraits {
function class (line 286) | class CefRange : public CefStructBase<CefRangeTraits> {
function Set (line 299) | void Set(int from_val, int to_val) {
function set (line 313) | struct CefInsetsTraits {
function class (line 328) | class CefInsets : public CefStructBase<CefInsetsTraits> {
function Set (line 339) | void Set(int top_val, int left_val, int bottom_val, int right_val) {
function set (line 354) | struct CefDraggableRegionTraits {
function class (line 369) | class CefDraggableRegion : public CefStructBase<CefDraggableRegionTraits> {
function Set (line 382) | void Set(const CefRect& bounds_val, bool draggable_val) {
function set (line 398) | struct CefScreenInfoTraits {
function class (line 420) | class CefScreenInfo : public CefStructBase<CefScreenInfoTraits> {
function Set (line 437) | void Set(float device_scale_factor_val,
function set (line 453) | struct CefKeyEventTraits {
type CefStructBase (line 476) | typedef CefStructBase<CefKeyEventTraits> CefKeyEvent;
function set (line 479) | struct CefMouseEventTraits {
type CefStructBase (line 497) | typedef CefStructBase<CefMouseEventTraits> CefMouseEvent;
function clear (line 500) | struct CefPopupFeaturesTraits {
function set (line 517) | static inline void set(const struct_type* src, struct_type* target,
type CefStructBase (line 546) | typedef CefStructBase<CefPopupFeaturesTraits> CefPopupFeatures;
function clear (line 549) | struct CefSettingsTraits {
function set (line 570) | static inline void set(const struct_type* src, struct_type* target,
type CefStructBase (line 619) | typedef CefStructBase<CefSettingsTraits> CefSettings;
function clear (line 622) | struct CefRequestContextSettingsTraits {
function set (line 634) | static inline void set(const struct_type* src, struct_type* target,
type CefStructBase (line 649) | typedef CefStructBase<CefRequestContextSettingsTraits>
function clear (line 653) | struct CefBrowserSettingsTraits {
function set (line 671) | static inline void set(const struct_type* src, struct_type* target,
type CefStructBase (line 729) | typedef CefStructBase<CefBrowserSettingsTraits> CefBrowserSettings;
function set (line 732) | struct CefURLPartsTraits {
type CefStructBase (line 768) | typedef CefStructBase<CefURLPartsTraits> CefURLParts;
function set (line 771) | struct CefTimeTraits {
function class (line 787) | class CefTime : public CefStructBase<CefTimeTraits> {
function set (line 833) | struct CefCookieTraits {
type CefStructBase (line 863) | typedef CefStructBase<CefCookieTraits> CefCookie;
function set (line 866) | struct CefGeopositionTraits {
type CefStructBase (line 894) | typedef CefStructBase<CefGeopositionTraits> CefGeoposition;
function set (line 897) | struct CefCursorInfoTraits {
type CefStructBase (line 916) | typedef CefStructBase<CefCursorInfoTraits> CefCursorInfo;
function set (line 919) | struct CefPdfPrintSettingsTraits {
type CefStructBase (line 956) | typedef CefStructBase<CefPdfPrintSettingsTraits> CefPdfPrintSettings;
function set (line 959) | struct CefBoxLayoutSettingsTraits {
type CefStructBase (line 975) | typedef CefStructBase<CefBoxLayoutSettingsTraits> CefBoxLayoutSettings;
FILE: CEF/include/internal/cef_win.h
function set (line 46) | struct CefMainArgsTraits {
function class (line 59) | class CefMainArgs : public CefStructBase<CefMainArgsTraits> {
function set (line 71) | struct CefWindowInfoTraits {
function class (line 101) | class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
FILE: CEF/include/views/cef_box_layout.h
function class (line 54) | class CefBoxLayout : public CefLayout {
FILE: CEF/include/views/cef_browser_view.h
function class (line 50) | class CefBrowserView : public CefView {
FILE: CEF/include/views/cef_browser_view_delegate.h
function class (line 53) | class CefBrowserViewDelegate : public CefViewDelegate {
FILE: CEF/include/views/cef_button.h
function class (line 51) | class CefButton : public CefView {
FILE: CEF/include/views/cef_button_delegate.h
function class (line 50) | class CefButtonDelegate : public CefViewDelegate {
FILE: CEF/include/views/cef_display.h
function class (line 54) | class CefDisplay : public CefBase {
FILE: CEF/include/views/cef_fill_layout.h
function class (line 49) | class CefFillLayout : public CefLayout {
FILE: CEF/include/views/cef_label_button.h
function class (line 52) | class CefLabelButton : public CefButton {
FILE: CEF/include/views/cef_layout.h
function class (line 52) | class CefLayout : public CefBase {
FILE: CEF/include/views/cef_menu_button.h
function class (line 52) | class CefMenuButton : public CefLabelButton {
FILE: CEF/include/views/cef_menu_button_delegate.h
function class (line 51) | class CefMenuButtonDelegate : public CefButtonDelegate {
FILE: CEF/include/views/cef_panel.h
function class (line 55) | class CefPanel : public CefView {
FILE: CEF/include/views/cef_panel_delegate.h
function class (line 48) | class CefPanelDelegate : public CefViewDelegate {
FILE: CEF/include/views/cef_scroll_view.h
function class (line 49) | class CefScrollView : public CefView {
FILE: CEF/include/views/cef_textfield.h
function class (line 50) | class CefTextfield : public CefView {
FILE: CEF/include/views/cef_textfield_delegate.h
function class (line 51) | class CefTextfieldDelegate : public CefViewDelegate {
FILE: CEF/include/views/cef_view.h
function class (line 57) | class CefView : public CefBase {
FILE: CEF/include/views/cef_view_delegate.h
function class (line 50) | class CefViewDelegate : public virtual CefBase {
FILE: CEF/include/views/cef_window.h
function class (line 55) | class CefWindow : public CefPanel {
FILE: CEF/include/views/cef_window_delegate.h
function class (line 50) | class CefWindowDelegate : public CefPanelDelegate {
FILE: CEF/include/wrapper/cef_byte_read_handler.h
function class (line 49) | class CefByteReadHandler : public CefReadHandler {
FILE: CEF/include/wrapper/cef_helpers.h
function Destruct (line 78) | void Destruct(const T* x) {
type CefDeleteOnUIThread (line 88) | struct CefDeleteOnUIThread
type CefDeleteOnIOThread (line 89) | struct CefDeleteOnIOThread
type CefDeleteOnFileThread (line 90) | struct CefDeleteOnFileThread
type CefDeleteOnRendererThread (line 91) | struct CefDeleteOnRendererThread
function class (line 97) | class CefScopedArgArray {
FILE: CEF/include/wrapper/cef_message_router.h
type CefMessageRouterConfig (line 199) | struct CefMessageRouterConfig {
function class (line 245) | class Handler {
function virtual (line 369) | virtual ~CefMessageRouterBrowserSide() {}
function virtual (line 425) | virtual ~CefMessageRouterRendererSide() {}
FILE: CEF/include/wrapper/cef_resource_manager.h
type base (line 74) | typedef base::Callback<std::string(
type RequestParams (line 79) | struct RequestParams {
type RequestState (line 89) | struct RequestState
type std (line 181) | typedef std::list<scoped_refptr<Request> > RequestList;
function class (line 189) | class Provider {
type ProviderEntry (line 319) | struct ProviderEntry
type std (line 320) | typedef std::list<ProviderEntry*> ProviderEntryList;
type std (line 361) | typedef std::map<uint64, CefRefPtr<CefResourceHandler> > PendingHandlers...
FILE: CEF/include/wrapper/cef_stream_resource_handler.h
function class (line 51) | class CefStreamResourceHandler : public CefResourceHandler {
FILE: CEF/include/wrapper/cef_xml_object.h
function class (line 74) | class CefXmlObject : public base::RefCountedThreadSafe<CefXmlObject> {
FILE: CEF/include/wrapper/cef_zip_archive.h
function class (line 59) | class CefZipArchive : public base::RefCountedThreadSafe<CefZipArchive> {
FILE: CEFV8HandlerEx.h
function class (line 6) | class CCEFV8HandlerEx : public CefV8Handler {
FILE: CEFWebkit.cc
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 19) | LPCTSTR CCEFWebkitUI::GetClass() const
function LPVOID (line 23) | LPVOID CCEFWebkitUI::GetInterface(LPCTSTR pstrName)
function BOOL (line 197) | BOOL CCEFWebkitUI::IsClosed() const
function CefString (line 262) | CefString CCEFWebkitUI::GetFinalURL(int nWebBrowserID)
function BOOL (line 280) | BOOL CCEFWebkitUI::CanGoForward(int nWebBrowserID)
function BOOL (line 316) | BOOL CCEFWebkitUI::CanGoBack(int nWebBrowserID)
FILE: CEFWebkit.h
function namespace (line 9) | namespace DuiLib
FILE: CEFWebkitBrowser.cc
function CControlUI (line 32) | CControlUI* CEFWebkitBrowserWnd::CreateControl(LPCTSTR pstrClassName)
function LRESULT (line 49) | LRESULT CEFWebkitBrowserWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 56) | LRESULT CEFWebkitBrowserWnd::OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, L...
function LRESULT (line 258) | LRESULT CEFWebkitBrowserWnd::HandleCustomMessage(UINT uMsg, WPARAM wPara...
function COptionUI (line 506) | COptionUI * CEFWebkitBrowserWnd::GetActiveOption() const
FILE: CEFWebkitBrowser.h
function class (line 6) | class CEFWebkitBrowserWnd : public WindowImplBase
FILE: DuiLib/Control/UIActiveX.cpp
type DuiLib (line 3) | namespace DuiLib
class CActiveXCtrl (line 10) | class CActiveXCtrl
class CActiveXWnd (line 17) | class CActiveXWnd : public CWindowWnd
class CActiveXEnum (line 45) | class CActiveXEnum : public IEnumUnknown
method CActiveXEnum (line 48) | CActiveXEnum(IUnknown* pUnk) : m_pUnk(pUnk), m_dwRef(1), m_iPos(0)
class CActiveXFrameWnd (line 109) | class CActiveXFrameWnd : public IOleInPlaceFrame
method CActiveXFrameWnd (line 112) | CActiveXFrameWnd(CActiveXUI* pOwner) : m_dwRef(1), m_pOwner(pOwner),...
class CActiveXCtrl (line 206) | class CActiveXCtrl :
function STDMETHODIMP (line 332) | STDMETHODIMP CActiveXCtrl::QueryInterface(REFIID riid, LPVOID *ppvObject)
function STDMETHODIMP (line 360) | STDMETHODIMP CActiveXCtrl::SetSite(IUnknown *pUnkSite)
function STDMETHODIMP (line 374) | STDMETHODIMP CActiveXCtrl::GetSite(REFIID riid, LPVOID* ppvSite)
function STDMETHODIMP (line 383) | STDMETHODIMP CActiveXCtrl::SaveObject(void)
function STDMETHODIMP (line 389) | STDMETHODIMP CActiveXCtrl::GetMoniker(DWORD dwAssign, DWORD dwWhichMon...
function STDMETHODIMP (line 396) | STDMETHODIMP CActiveXCtrl::GetContainer(IOleContainer** ppContainer)
function STDMETHODIMP (line 407) | STDMETHODIMP CActiveXCtrl::ShowObject(void)
function STDMETHODIMP (line 418) | STDMETHODIMP CActiveXCtrl::OnShowWindow(BOOL fShow)
function STDMETHODIMP (line 424) | STDMETHODIMP CActiveXCtrl::RequestNewObjectLayout(void)
function STDMETHODIMP (line 430) | STDMETHODIMP CActiveXCtrl::CanWindowlessActivate(void)
function STDMETHODIMP (line 436) | STDMETHODIMP CActiveXCtrl::GetCapture(void)
function STDMETHODIMP (line 443) | STDMETHODIMP CActiveXCtrl::SetCapture(BOOL fCapture)
function STDMETHODIMP (line 452) | STDMETHODIMP CActiveXCtrl::GetFocus(void)
function STDMETHODIMP (line 459) | STDMETHODIMP CActiveXCtrl::SetFocus(BOOL fFocus)
function STDMETHODIMP (line 468) | STDMETHODIMP CActiveXCtrl::GetDC(LPCRECT pRect, DWORD grfFlags, HDC* p...
function STDMETHODIMP (line 482) | STDMETHODIMP CActiveXCtrl::ReleaseDC(HDC hDC)
function STDMETHODIMP (line 490) | STDMETHODIMP CActiveXCtrl::InvalidateRect(LPCRECT pRect, BOOL fErase)
function STDMETHODIMP (line 498) | STDMETHODIMP CActiveXCtrl::InvalidateRgn(HRGN hRGN, BOOL fErase)
function STDMETHODIMP (line 505) | STDMETHODIMP CActiveXCtrl::ScrollRect(INT dx, INT dy, LPCRECT pRectScr...
function STDMETHODIMP (line 511) | STDMETHODIMP CActiveXCtrl::AdjustRect(LPRECT prc)
function STDMETHODIMP (line 517) | STDMETHODIMP CActiveXCtrl::OnDefWindowMessage(UINT msg, WPARAM wParam,...
function STDMETHODIMP (line 525) | STDMETHODIMP CActiveXCtrl::OnInPlaceActivateEx(BOOL* pfNoRedraw, DWORD...
function STDMETHODIMP (line 555) | STDMETHODIMP CActiveXCtrl::OnInPlaceDeactivateEx(BOOL fNoRedraw)
function STDMETHODIMP (line 571) | STDMETHODIMP CActiveXCtrl::RequestUIActivate(void)
function STDMETHODIMP (line 577) | STDMETHODIMP CActiveXCtrl::CanInPlaceActivate(void)
function STDMETHODIMP (line 583) | STDMETHODIMP CActiveXCtrl::OnInPlaceActivate(void)
function STDMETHODIMP (line 590) | STDMETHODIMP CActiveXCtrl::OnUIActivate(void)
function STDMETHODIMP (line 597) | STDMETHODIMP CActiveXCtrl::GetWindowContext(IOleInPlaceFrame** ppFrame...
function STDMETHODIMP (line 627) | STDMETHODIMP CActiveXCtrl::Scroll(SIZE scrollExtant)
function STDMETHODIMP (line 633) | STDMETHODIMP CActiveXCtrl::OnUIDeactivate(BOOL fUndoable)
function STDMETHODIMP (line 640) | STDMETHODIMP CActiveXCtrl::OnInPlaceDeactivate(void)
function STDMETHODIMP (line 646) | STDMETHODIMP CActiveXCtrl::DiscardUndoState(void)
function STDMETHODIMP (line 652) | STDMETHODIMP CActiveXCtrl::DeactivateAndUndo(void)
function STDMETHODIMP (line 658) | STDMETHODIMP CActiveXCtrl::OnPosRectChange(LPCRECT lprcPosRect)
function STDMETHODIMP (line 664) | STDMETHODIMP CActiveXCtrl::GetWindow(HWND* phwnd)
function STDMETHODIMP (line 674) | STDMETHODIMP CActiveXCtrl::ContextSensitiveHelp(BOOL fEnterMode)
function STDMETHODIMP (line 680) | STDMETHODIMP CActiveXCtrl::OnControlInfoChanged(void)
function STDMETHODIMP (line 686) | STDMETHODIMP CActiveXCtrl::LockInPlaceActive(BOOL fLock)
function STDMETHODIMP (line 692) | STDMETHODIMP CActiveXCtrl::GetExtendedControl(IDispatch** ppDisp)
function STDMETHODIMP (line 701) | STDMETHODIMP CActiveXCtrl::TransformCoords(POINTL* pPtlHimetric, POINT...
function STDMETHODIMP (line 707) | STDMETHODIMP CActiveXCtrl::TranslateAccelerator(MSG *pMsg, DWORD grfMo...
function STDMETHODIMP (line 713) | STDMETHODIMP CActiveXCtrl::OnFocus(BOOL fGotFocus)
function STDMETHODIMP (line 720) | STDMETHODIMP CActiveXCtrl::ShowPropertyFrame(void)
function STDMETHODIMP (line 726) | STDMETHODIMP CActiveXCtrl::EnumObjects(DWORD grfFlags, IEnumUnknown** ...
function STDMETHODIMP (line 735) | STDMETHODIMP CActiveXCtrl::LockContainer(BOOL fLock)
function STDMETHODIMP (line 742) | STDMETHODIMP CActiveXCtrl::ParseDisplayName(IBindCtx *pbc, LPOLESTR ps...
function HRESULT (line 748) | HRESULT CActiveXCtrl::CreateActiveXWnd( )
function HWND (line 762) | HWND CActiveXWnd::Init(CActiveXCtrl* pOwner, HWND hWndParent)
function LPCTSTR (line 770) | LPCTSTR CActiveXWnd::GetWindowClassName( ) const
function LRESULT (line 794) | LRESULT CActiveXWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lP...
function LRESULT (line 812) | LRESULT CActiveXWnd::OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lPa...
function LRESULT (line 818) | LRESULT CActiveXWnd::OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 832) | LRESULT CActiveXWnd::OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lPara...
function LRESULT (line 840) | LRESULT CActiveXWnd::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lPar...
function LRESULT (line 847) | LRESULT CActiveXWnd::OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, ...
function LPCTSTR (line 870) | LPCTSTR CActiveXUI::GetClass( ) const
function LPVOID (line 875) | LPVOID CActiveXUI::GetInterface(LPCTSTR pstrName)
function HWND (line 881) | HWND CActiveXUI::GetHostWindow( ) const
function PixelToHiMetric (line 886) | static void PixelToHiMetric(const SIZEL* lpSizeInPix, LPSIZEL lpSizeIn...
function LRESULT (line 962) | LRESULT CActiveXUI::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lP...
function HRESULT (line 1136) | HRESULT CActiveXUI::GetControl(const IID iid, LPVOID* ppRet)
function CLSID (line 1145) | CLSID CActiveXUI::GetClisd( ) const
function CDuiString (line 1150) | CDuiString CActiveXUI::GetModuleName( ) const
FILE: DuiLib/Control/UIActiveX.h
type IOleObject (line 6) | struct IOleObject
function namespace (line 9) | namespace DuiLib {
FILE: DuiLib/Control/UIAnimation.cpp
type DuiLib (line 5) | namespace DuiLib {
function BOOL (line 13) | BOOL CUIAnimation::StartAnimation(int nElapse, int nTotalFrame, int nA...
function VOID (line 36) | VOID CUIAnimation::StopAnimation(int nAnimationID /*= 0*/)
function BOOL (line 61) | BOOL CUIAnimation::IsAnimationRunning(int nAnimationID)
function BOOL (line 78) | BOOL CUIAnimation::SetCurrentFrame(int nFrame, int nAnimationID/* = 0*/)
function VOID (line 99) | VOID CUIAnimation::OnAnimationElapse(int nAnimationID)
function CAnimationData (line 136) | CAnimationData* CUIAnimation::GetAnimationDataByID(int nAnimationID)
FILE: DuiLib/Control/UIAnimation.h
function namespace (line 8) | namespace DuiLib {
function virtual (line 66) | virtual VOID OnAnimationStart(int nAnimationID, BOOL bFirstLoop) {}
function virtual (line 67) | virtual VOID OnAnimationStep(int nTotalFrame, int nCurFrame, int nAnimat...
function virtual (line 68) | virtual VOID OnAnimationStop(int nAnimationID) {}
FILE: DuiLib/Control/UIButton.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 18) | LPCTSTR CButtonUI::GetClass() const
function LPVOID (line 23) | LPVOID CButtonUI::GetInterface(LPCTSTR pstrName)
function UINT (line 29) | UINT CButtonUI::GetControlFlags() const
function DWORD (line 156) | DWORD CButtonUI::GetHotBkColor() const
function DWORD (line 166) | DWORD CButtonUI::GetHotTextColor() const
function DWORD (line 176) | DWORD CButtonUI::GetPushedTextColor() const
function DWORD (line 186) | DWORD CButtonUI::GetPushedBKColor()
function DWORD (line 196) | DWORD CButtonUI::GetFocusedTextColor() const
function LPCTSTR (line 201) | LPCTSTR CButtonUI::GetNormalImage()
function LPCTSTR (line 212) | LPCTSTR CButtonUI::GetHotImage()
function LPCTSTR (line 223) | LPCTSTR CButtonUI::GetPushedImage()
function LPCTSTR (line 234) | LPCTSTR CButtonUI::GetFocusedImage()
function LPCTSTR (line 245) | LPCTSTR CButtonUI::GetDisabledImage()
function LPCTSTR (line 264) | LPCTSTR CButtonUI::GetForeImage()
function LPCTSTR (line 292) | LPCTSTR CButtonUI::GetHotForeImage()
function SIZE (line 312) | SIZE CButtonUI::EstimateSize(SIZE szAvailable)
FILE: DuiLib/Control/UIButton.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UICheckBox.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 6) | LPCTSTR CCheckBoxUI::GetClass() const
function LPVOID (line 11) | LPVOID CCheckBoxUI::GetInterface(LPCTSTR pstrName)
FILE: DuiLib/Control/UICheckBox.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIColorPalette.cpp
type DuiLib (line 6) | namespace DuiLib {
function HueToRGB (line 17) | static float HueToRGB(float v1, float v2, float vH)
function RGBToHSL (line 35) | static void RGBToHSL(DWORD clr, float *pHue, float *pSat, float *pLue)
function DWORD (line 85) | static DWORD HSLToRGB(float H, float S, float L)
function DWORD (line 150) | DWORD CColorPaletteUI::GetSelectColor()
function LPCTSTR (line 168) | LPCTSTR CColorPaletteUI::GetClass() const
function LPVOID (line 173) | LPVOID CColorPaletteUI::GetInterface(LPCTSTR pstrName)
function LPCTSTR (line 209) | LPCTSTR CColorPaletteUI::GetThumbImage() const
FILE: DuiLib/Control/UIColorPalette.h
function namespace (line 19) | namespace DuiLib {
FILE: DuiLib/Control/UICombo.cpp
type DuiLib (line 3) | namespace DuiLib {
class CComboWnd (line 9) | class CComboWnd : public CWindowWnd
function LPCTSTR (line 84) | LPCTSTR CComboWnd::GetWindowClassName() const
function LRESULT (line 97) | LRESULT CComboWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
function UINT (line 199) | UINT CComboWnd::GetClassStyle() const
function LPCTSTR (line 231) | LPCTSTR CComboUI::GetClass() const
function LPVOID (line 236) | LPVOID CComboUI::GetInterface(LPCTSTR pstrName)
function UINT (line 243) | UINT CComboUI::GetControlFlags() const
function SIZE (line 482) | SIZE CComboUI::EstimateSize(SIZE szAvailable)
function CDuiString (line 500) | CDuiString CComboUI::GetText() const
function CDuiString (line 513) | CDuiString CComboUI::GetDropBoxAttributeList()
function SIZE (line 523) | SIZE CComboUI::GetDropBoxSize() const
function RECT (line 533) | RECT CComboUI::GetTextPadding() const
function LPCTSTR (line 544) | LPCTSTR CComboUI::GetNormalImage() const
function LPCTSTR (line 555) | LPCTSTR CComboUI::GetHotImage() const
function LPCTSTR (line 566) | LPCTSTR CComboUI::GetPushedImage() const
function LPCTSTR (line 577) | LPCTSTR CComboUI::GetFocusedImage() const
function LPCTSTR (line 588) | LPCTSTR CComboUI::GetDisabledImage() const
function TListInfoUI (line 599) | TListInfoUI* CComboUI::GetListInfo()
function RECT (line 616) | RECT CComboUI::GetItemTextPadding() const
function DWORD (line 643) | DWORD CComboUI::GetItemTextColor() const
function DWORD (line 648) | DWORD CComboUI::GetItemBkColor() const
function LPCTSTR (line 653) | LPCTSTR CComboUI::GetItemBkImage() const
function DWORD (line 683) | DWORD CComboUI::GetSelectedItemTextColor() const
function DWORD (line 688) | DWORD CComboUI::GetSelectedItemBkColor() const
function LPCTSTR (line 693) | LPCTSTR CComboUI::GetSelectedItemImage() const
function DWORD (line 713) | DWORD CComboUI::GetHotItemTextColor() const
function DWORD (line 717) | DWORD CComboUI::GetHotItemBkColor() const
function LPCTSTR (line 722) | LPCTSTR CComboUI::GetHotItemImage() const
function DWORD (line 742) | DWORD CComboUI::GetDisabledItemTextColor() const
function DWORD (line 747) | DWORD CComboUI::GetDisabledItemBkColor() const
function LPCTSTR (line 752) | LPCTSTR CComboUI::GetDisabledItemImage() const
function DWORD (line 757) | DWORD CComboUI::GetItemLineColor() const
FILE: DuiLib/Control/UICombo.h
function namespace (line 6) | namespace DuiLib {
FILE: DuiLib/Control/UIComboBox.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 11) | LPCTSTR CComboBoxUI::GetClass() const
FILE: DuiLib/Control/UIComboBox.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIDateTime.cpp
type DuiLib (line 4) | namespace DuiLib
class CDateTimeWnd (line 12) | class CDateTimeWnd : public CWindowWnd
function RECT (line 61) | RECT CDateTimeWnd::CalPos()
function LPCTSTR (line 67) | LPCTSTR CDateTimeWnd::GetWindowClassName() const
function LPCTSTR (line 72) | LPCTSTR CDateTimeWnd::GetSuperClassName() const
function LRESULT (line 85) | LRESULT CDateTimeWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM l...
function LRESULT (line 177) | LRESULT CDateTimeWnd::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lPa...
function LPCTSTR (line 217) | LPCTSTR CDateTimeUI::GetClass() const
function LPVOID (line 222) | LPVOID CDateTimeUI::GetInterface(LPCTSTR pstrName)
function SYSTEMTIME (line 228) | SYSTEMTIME& CDateTimeUI::GetTime()
FILE: DuiLib/Control/UIDateTime.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIEdit.cpp
type DuiLib (line 4) | namespace DuiLib
class CEditWnd (line 6) | class CEditWnd : public CWindowWnd
function RECT (line 79) | RECT CEditWnd::CalPos( )
function LPCTSTR (line 95) | LPCTSTR CEditWnd::GetWindowClassName( ) const
function LPCTSTR (line 101) | LPCTSTR CEditWnd::GetSuperClassName( ) const
function LRESULT (line 115) | LRESULT CEditWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
function LRESULT (line 148) | LRESULT CEditWnd::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lParam,...
function LRESULT (line 155) | LRESULT CEditWnd::OnEditChanged(UINT /*uMsg*/, WPARAM /*wParam*/, LPAR...
function LRESULT (line 169) | LRESULT CEditWnd::OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL...
function LPCTSTR (line 250) | LPCTSTR CEditUI::GetClass( ) const
function LPVOID (line 255) | LPVOID CEditUI::GetInterface(LPCTSTR pstrName)
function UINT (line 261) | UINT CEditUI::GetControlFlags( ) const
function UINT (line 395) | UINT CEditUI::GetMaxChar( )
function TCHAR (line 473) | TCHAR CEditUI::GetPasswordChar( ) const
function LPCTSTR (line 478) | LPCTSTR CEditUI::GetNormalImage( )
function LPCTSTR (line 489) | LPCTSTR CEditUI::GetHotImage( )
function LPCTSTR (line 500) | LPCTSTR CEditUI::GetFocusedImage( )
function LPCTSTR (line 511) | LPCTSTR CEditUI::GetDisabledImage( )
function DWORD (line 527) | DWORD CEditUI::GetNativeEditBkColor( ) const
function SIZE (line 569) | SIZE CEditUI::EstimateSize(SIZE szAvailable)
FILE: DuiLib/Control/UIEdit.h
function namespace (line 7) | namespace DuiLib
FILE: DuiLib/Control/UIFadeButton.cpp
type DuiLib (line 4) | namespace DuiLib {
function LPCTSTR (line 17) | LPCTSTR CFadeButtonUI::GetClass() const
function LPVOID (line 22) | LPVOID CFadeButtonUI::GetInterface(LPCTSTR pstrName)
FILE: DuiLib/Control/UIFadeButton.h
function namespace (line 9) | namespace DuiLib {
FILE: DuiLib/Control/UIFlash.cpp
type DuiLib (line 9) | namespace DuiLib
function LPCTSTR (line 38) | LPCTSTR CFlashUI::GetClass() const
function LPVOID (line 43) | LPVOID CFlashUI::GetInterface( LPCTSTR pstrName )
function HRESULT (line 49) | HRESULT STDMETHODCALLTYPE CFlashUI::GetTypeInfoCount( __RPC__out UINT ...
function HRESULT (line 54) | HRESULT STDMETHODCALLTYPE CFlashUI::GetTypeInfo( UINT iTInfo, LCID lci...
function HRESULT (line 59) | HRESULT STDMETHODCALLTYPE CFlashUI::GetIDsOfNames( __RPC__in REFIID ri...
function HRESULT (line 64) | HRESULT STDMETHODCALLTYPE CFlashUI::Invoke( DISPID dispIdMember, REFII...
function HRESULT (line 106) | HRESULT STDMETHODCALLTYPE CFlashUI::QueryInterface( REFIID riid, void ...
function ULONG (line 122) | ULONG STDMETHODCALLTYPE CFlashUI::AddRef( void )
function ULONG (line 128) | ULONG STDMETHODCALLTYPE CFlashUI::Release( void )
function HRESULT (line 134) | HRESULT CFlashUI::OnReadyStateChange (long newState)
function HRESULT (line 143) | HRESULT CFlashUI::OnProgress(long percentDone )
function HRESULT (line 152) | HRESULT CFlashUI::FSCommand (_bstr_t command, _bstr_t args)
function HRESULT (line 161) | HRESULT CFlashUI::FlashCall( _bstr_t request )
function LRESULT (line 206) | LRESULT CFlashUI::TranslateAccelerator( MSG *pMsg )
function HRESULT (line 240) | HRESULT CFlashUI::RegisterEventHandler( BOOL inAdvise )
FILE: DuiLib/Control/UIFlash.h
function namespace (line 20) | namespace DuiLib
FILE: DuiLib/Control/UIHyperlink.cpp
type DuiLib (line 5) | namespace DuiLib{
function LPCTSTR (line 15) | LPCTSTR CHyperLinkUI::GetClass() const
function LPVOID (line 19) | LPVOID CHyperLinkUI::GetInterface(LPCTSTR pstrName)
FILE: DuiLib/Control/UIHyperlink.h
function namespace (line 6) | namespace DuiLib{
FILE: DuiLib/Control/UIIpAddress.cpp
function DWORD (line 7) | DWORD GetLocalIpAddress()
type DuiLib (line 24) | namespace DuiLib
class CIPAddressWnd (line 28) | class CIPAddressWnd : public CWindowWnd
function RECT (line 84) | RECT CIPAddressWnd::CalPos()
function LPCTSTR (line 90) | LPCTSTR CIPAddressWnd::GetWindowClassName() const
function LPCTSTR (line 95) | LPCTSTR CIPAddressWnd::GetSuperClassName() const
function LRESULT (line 108) | LRESULT CIPAddressWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 170) | LRESULT CIPAddressWnd::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lP...
function LPCTSTR (line 222) | LPCTSTR CIPAddressUI::GetClass() const
function LPVOID (line 227) | LPVOID CIPAddressUI::GetInterface(LPCTSTR pstrName)
function DWORD (line 233) | DWORD CIPAddressUI::GetIP()
FILE: DuiLib/Control/UIIpAddress.h
function namespace (line 9) | namespace DuiLib
FILE: DuiLib/Control/UILabel.cpp
type DuiLib (line 6) | namespace DuiLib
function Color (line 9) | Color _MakeRGB(int a, Color cl)
function Color (line 14) | Color _MakeRGB(int r, int g, int b)
function LPCTSTR (line 53) | LPCTSTR CLabelUI::GetClass() const
function LPVOID (line 58) | LPVOID CLabelUI::GetInterface(LPCTSTR pstrName)
function UINT (line 70) | UINT CLabelUI::GetTextStyle() const
function DWORD (line 81) | DWORD CLabelUI::GetTextColor() const
function DWORD (line 92) | DWORD CLabelUI::GetDisabledTextColor() const
function RECT (line 108) | RECT CLabelUI::GetTextPadding() const
function SIZE (line 141) | SIZE CLabelUI::EstimateSize(SIZE szAvailable)
function RectF (line 471) | RectF CLabelUI::GetShadowOffset()
function DWORD (line 495) | DWORD CLabelUI::GetTextColor1()
function DWORD (line 506) | DWORD CLabelUI::GetTextShadowColorA()
function DWORD (line 517) | DWORD CLabelUI::GetTextShadowColorB()
function DWORD (line 590) | DWORD CLabelUI::GetStrokeColor()
FILE: DuiLib/Control/UILabel.h
function namespace (line 9) | namespace DuiLib
FILE: DuiLib/Control/UIList.cpp
type DuiLib (line 3) | namespace DuiLib {
function LPCTSTR (line 45) | LPCTSTR CListUI::GetClass() const
function UINT (line 50) | UINT CListUI::GetControlFlags() const
function LPVOID (line 55) | LPVOID CListUI::GetInterface(LPCTSTR pstrName)
function CControlUI (line 63) | CControlUI* CListUI::GetItemAt(int iIndex) const
function CListHeaderUI (line 329) | CListHeaderUI* CListUI::GetHeader() const
function CContainerUI (line 334) | CContainerUI* CListUI::GetList() const
function TListInfoUI (line 392) | TListInfoUI* CListUI::GetListInfo()
function RECT (line 425) | RECT CListUI::GetItemTextPadding() const
function DWORD (line 454) | DWORD CListUI::GetItemTextColor() const
function DWORD (line 459) | DWORD CListUI::GetItemBkColor() const
function LPCTSTR (line 464) | LPCTSTR CListUI::GetItemBkImage() const
function DWORD (line 492) | DWORD CListUI::GetSelectedItemTextColor() const
function DWORD (line 497) | DWORD CListUI::GetSelectedItemBkColor() const
function LPCTSTR (line 502) | LPCTSTR CListUI::GetSelectedItemImage() const
function DWORD (line 525) | DWORD CListUI::GetHotItemTextColor() const
function DWORD (line 529) | DWORD CListUI::GetHotItemBkColor() const
function LPCTSTR (line 534) | LPCTSTR CListUI::GetHotItemImage() const
function DWORD (line 557) | DWORD CListUI::GetDisabledItemTextColor() const
function DWORD (line 562) | DWORD CListUI::GetDisabledItemBkColor() const
function LPCTSTR (line 567) | LPCTSTR CListUI::GetDisabledItemImage() const
function DWORD (line 572) | DWORD CListUI::GetItemLineColor() const
function IListCallbackUI (line 762) | IListCallbackUI* CListUI::GetTextCallback() const
function SIZE (line 772) | SIZE CListUI::GetScrollPos() const
function SIZE (line 777) | SIZE CListUI::GetScrollRange() const
function CScrollBarUI (line 852) | CScrollBarUI* CListUI::GetVerticalScrollBar() const
function CScrollBarUI (line 857) | CScrollBarUI* CListUI::GetHorizontalScrollBar() const
function BOOL (line 862) | BOOL CListUI::SortItems(PULVCompareFunc pfnCompare, UINT_PTR dwData)
function BOOL (line 878) | BOOL CListBodyUI::SortItems(PULVCompareFunc pfnCompare, UINT_PTR dwData)
function LPCTSTR (line 1138) | LPCTSTR CListHeaderUI::GetClass() const
function LPVOID (line 1143) | LPVOID CListHeaderUI::GetInterface(LPCTSTR pstrName)
function SIZE (line 1149) | SIZE CListHeaderUI::EstimateSize(SIZE szAvailable)
function LPCTSTR (line 1179) | LPCTSTR CListHeaderItemUI::GetClass() const
function LPVOID (line 1184) | LPVOID CListHeaderItemUI::GetInterface(LPCTSTR pstrName)
function UINT (line 1190) | UINT CListHeaderItemUI::GetControlFlags() const
function DWORD (line 1215) | DWORD CListHeaderItemUI::GetSepWidth() const
function DWORD (line 1225) | DWORD CListHeaderItemUI::GetTextStyle() const
function DWORD (line 1236) | DWORD CListHeaderItemUI::GetTextColor() const
function RECT (line 1247) | RECT CListHeaderItemUI::GetTextPadding() const
function LPCTSTR (line 1276) | LPCTSTR CListHeaderItemUI::GetNormalImage() const
function LPCTSTR (line 1287) | LPCTSTR CListHeaderItemUI::GetHotImage() const
function LPCTSTR (line 1298) | LPCTSTR CListHeaderItemUI::GetPushedImage() const
function LPCTSTR (line 1309) | LPCTSTR CListHeaderItemUI::GetFocusedImage() const
function LPCTSTR (line 1320) | LPCTSTR CListHeaderItemUI::GetSepImage() const
function SIZE (line 1479) | SIZE CListHeaderItemUI::EstimateSize(SIZE szAvailable)
function RECT (line 1485) | RECT CListHeaderItemUI::GetThumbRect() const
function LPCTSTR (line 1559) | LPCTSTR CListElementUI::GetClass() const
function UINT (line 1564) | UINT CListElementUI::GetControlFlags() const
function LPVOID (line 1569) | LPVOID CListElementUI::GetInterface(LPCTSTR pstrName)
function IListOwnerUI (line 1576) | IListOwnerUI* CListElementUI::GetOwner()
function LPCTSTR (line 1798) | LPCTSTR CListLabelElementUI::GetClass() const
function LPVOID (line 1803) | LPVOID CListLabelElementUI::GetInterface(LPCTSTR pstrName)
function SIZE (line 1857) | SIZE CListLabelElementUI::EstimateSize(SIZE szAvailable)
function LPCTSTR (line 1941) | LPCTSTR CListTextElementUI::GetClass() const
function LPVOID (line 1946) | LPVOID CListTextElementUI::GetInterface(LPCTSTR pstrName)
function UINT (line 1952) | UINT CListTextElementUI::GetControlFlags() const
function LPCTSTR (line 1957) | LPCTSTR CListTextElementUI::GetText(int iIndex) const
function CDuiString (line 1987) | CDuiString* CListTextElementUI::GetLinkContent(int iIndex)
function SIZE (line 2041) | SIZE CListTextElementUI::EstimateSize(SIZE szAvailable)
function LPCTSTR (line 2115) | LPCTSTR CListContainerElementUI::GetClass() const
function UINT (line 2120) | UINT CListContainerElementUI::GetControlFlags() const
function LPVOID (line 2125) | LPVOID CListContainerElementUI::GetInterface(LPCTSTR pstrName)
function IListOwnerUI (line 2132) | IListOwnerUI* CListContainerElementUI::GetOwner()
FILE: DuiLib/Control/UIList.h
type TListInfoUI (line 18) | typedef struct tagTListInfoUI
function class (line 47) | class IListCallbackUI
function virtual (line 57) | virtual int GetCurSel() const = 0;
function LPCTSTR (line 100) | LPCTSTR GetClass() const;
function LPCTSTR (line 314) | LPCTSTR GetClass() const;
FILE: DuiLib/Control/UIMediaPlayer.cpp
type DuiLib (line 6) | namespace DuiLib
function LPCTSTR (line 19) | LPCTSTR CMediaPlayerUI::GetClass( ) const
function LPVOID (line 24) | LPVOID CMediaPlayerUI::GetInterface(LPCTSTR pstrName)
FILE: DuiLib/Control/UIMediaPlayer.h
function namespace (line 10) | namespace DuiLib
FILE: DuiLib/Control/UIOption.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 15) | LPCTSTR COptionUI::GetClass() const
function LPVOID (line 20) | LPVOID COptionUI::GetInterface(LPCTSTR pstrName)
function LPCTSTR (line 34) | LPCTSTR COptionUI::GetGroup() const
function LPCTSTR (line 112) | LPCTSTR COptionUI::GetSelectedImage()
function LPCTSTR (line 123) | LPCTSTR COptionUI::GetSelectedHotImage()
function LPCTSTR (line 133) | LPCTSTR COptionUI::GetSelectedPushedImage()
function DWORD (line 148) | DWORD COptionUI::GetSelectedTextColor()
function DWORD (line 159) | DWORD COptionUI::GetSelectBkColor()
function LPCTSTR (line 164) | LPCTSTR COptionUI::GetForeImage()
function SIZE (line 175) | SIZE COptionUI::EstimateSize(SIZE szAvailable)
FILE: DuiLib/Control/UIOption.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIProgress.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 12) | LPCTSTR CProgressUI::GetClass() const
function LPVOID (line 17) | LPVOID CProgressUI::GetInterface(LPCTSTR pstrName)
function LPCTSTR (line 73) | LPCTSTR CProgressUI::GetForeImage() const
FILE: DuiLib/Control/UIProgress.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIRichEdit.cpp
type DuiLib (line 9) | namespace DuiLib
class CRichEditOleCallback (line 38) | class CRichEditOleCallback : public IRichEditOleCallback
function HRESULT (line 108) | HRESULT CRichEditOleCallback::QueryInterface(REFIID riid, LPVOID* ppv)
function ULONG (line 135) | ULONG CRichEditOleCallback::AddRef(void)
function ULONG (line 142) | ULONG CRichEditOleCallback::Release(void)
function HRESULT (line 175) | HRESULT CRichEditOleCallback::GetNewStorage(LPSTORAGE* ppStg)
function HRESULT (line 238) | HRESULT CRichEditOleCallback::GetInPlaceContext(LPOLEINPLACEFRAME* ppF...
function HRESULT (line 297) | HRESULT CRichEditOleCallback::ShowContainerUI(BOOL fShow)
function HRESULT (line 325) | HRESULT CRichEditOleCallback::QueryInsertObject(LPCLSID /* pclsid */,
function HRESULT (line 339) | HRESULT CRichEditOleCallback::DeleteObject(LPOLEOBJECT /* pOleObj */)
function HRESULT (line 352) | HRESULT CRichEditOleCallback::QueryAcceptData(LPDATAOBJECT /* pDataObj...
function HRESULT (line 370) | HRESULT CRichEditOleCallback::ContextSensitiveHelp(BOOL fEnterMode)
function HRESULT (line 383) | HRESULT CRichEditOleCallback::GetClipboardData(CHARRANGE* /* pchrg */,
function HRESULT (line 401) | HRESULT CRichEditOleCallback::GetDragDropEffect(BOOL /* fDrag */,
function HRESULT (line 425) | HRESULT CRichEditOleCallback::GetContextMenu(WORD seltype,
class COleInPlaceFrame (line 484) | class COleInPlaceFrame : public IOleInPlaceFrame
method COleInPlaceFrame (line 495) | COleInPlaceFrame(HWND hwndFrame = NULL)
function HRESULT (line 556) | HRESULT COleInPlaceFrame::QueryInterface(REFIID riid, LPVOID* ppv)
function ULONG (line 596) | ULONG COleInPlaceFrame::AddRef( )
function ULONG (line 603) | ULONG COleInPlaceFrame::Release( )
function HRESULT (line 632) | HRESULT COleInPlaceFrame::GetWindow(HWND* pHwnd)
function HRESULT (line 657) | HRESULT COleInPlaceFrame::ContextSensitiveHelp(BOOL fEnterMode)
function HRESULT (line 704) | HRESULT COleInPlaceFrame::GetBorder(LPRECT prcBorder)
function HRESULT (line 736) | HRESULT COleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pbw)
function HRESULT (line 764) | HRESULT COleInPlaceFrame::SetBorderSpace(LPCBORDERWIDTHS pbw)
function HRESULT (line 838) | HRESULT COleInPlaceFrame::SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIn...
function HRESULT (line 891) | HRESULT COleInPlaceFrame::InsertMenus(HMENU hmenuShared,
function HRESULT (line 936) | HRESULT COleInPlaceFrame::SetMenu(HMENU hmenuShared, HOLEMENU holemenu,
function HRESULT (line 963) | HRESULT COleInPlaceFrame::RemoveMenus(HMENU hmenuShared)
function HRESULT (line 991) | HRESULT COleInPlaceFrame::SetStatusText(LPCOLESTR szStatusText)
function HRESULT (line 1030) | HRESULT COleInPlaceFrame::EnableModeless(BOOL fEnable)
function HRESULT (line 1056) | HRESULT COleInPlaceFrame::TranslateAccelerator(LPMSG pMsg, WORD wID)
class CTxtWinHost (line 1140) | class CTxtWinHost : public ITextHost
method ITextServices (line 1147) | ITextServices* GetTextServices(void) { return pserv; }
method RECT (line 1149) | RECT* GetClientRect( ) { return &rcClient; }
method BOOL (line 1150) | BOOL GetWordWrap(void) { return fWordWrap; }
method BOOL (line 1172) | BOOL GetActiveState(void) { return fInplaceActive; }
function LONG (line 1267) | LONG DXtoHimetricX(LONG dx, LONG xPerInch)
function LONG (line 1273) | LONG DYtoHimetricY(LONG dy, LONG yPerInch)
function HRESULT (line 1278) | HRESULT InitDefaultCharFormat(CRichEditUI* re, CHARFORMAT2W* pcf, HFON...
function HRESULT (line 1312) | HRESULT InitDefaultParaFormat(CRichEditUI* re, PARAFORMAT2* ppf)
function HRESULT (line 1324) | HRESULT CreateHost(CRichEditUI *re, const CREATESTRUCT *pcs, CTxtWinHo...
function BOOL (line 1362) | BOOL CTxtWinHost::Init(CRichEditUI *re, const CREATESTRUCT *pcs)
function HRESULT (line 1466) | HRESULT CTxtWinHost::QueryInterface(REFIID riid, void **ppvObject)
function ULONG (line 1482) | ULONG CTxtWinHost::AddRef(void)
function ULONG (line 1487) | ULONG CTxtWinHost::Release(void)
function HIMC (line 1501) | HIMC CTxtWinHost::TxImmGetContext(void)
function HDC (line 1517) | HDC CTxtWinHost::TxGetDC( )
function BOOL (line 1527) | BOOL CTxtWinHost::TxShowScrollBar(INT fnBar, BOOL fShow)
function BOOL (line 1544) | BOOL CTxtWinHost::TxEnableScrollBar(INT fuSBFlags, INT fuArrowflags)
function BOOL (line 1563) | BOOL CTxtWinHost::TxSetScrollRange(INT fnBar, LONG nMinPos, INT nMaxPo...
function BOOL (line 1588) | BOOL CTxtWinHost::TxSetScrollPos(INT fnBar, INT nPos, BOOL fRedraw)
function BOOL (line 1616) | BOOL CTxtWinHost::TxCreateCaret(HBITMAP hbmp, INT xWidth, INT yHeight)
function BOOL (line 1621) | BOOL CTxtWinHost::TxShowCaret(BOOL fShow)
function BOOL (line 1629) | BOOL CTxtWinHost::TxSetCaretPos(INT x, INT y)
function BOOL (line 1634) | BOOL CTxtWinHost::TxSetTimer(UINT idTimer, UINT uTimeout)
function BOOL (line 1668) | BOOL CTxtWinHost::TxScreenToClient(LPPOINT lppt)
function BOOL (line 1673) | BOOL CTxtWinHost::TxClientToScreen(LPPOINT lppt)
function HRESULT (line 1678) | HRESULT CTxtWinHost::TxActivate(LONG *plOldState)
function HRESULT (line 1683) | HRESULT CTxtWinHost::TxDeactivate(LONG lNewState)
function HRESULT (line 1688) | HRESULT CTxtWinHost::TxGetClientRect(LPRECT prc)
function HRESULT (line 1695) | HRESULT CTxtWinHost::TxGetViewInset(LPRECT prc)
function HRESULT (line 1701) | HRESULT CTxtWinHost::TxGetCharFormat(const CHARFORMATW **ppCF)
function HRESULT (line 1707) | HRESULT CTxtWinHost::TxGetParaFormat(const PARAFORMAT **ppPF)
function COLORREF (line 1713) | COLORREF CTxtWinHost::TxGetSysColor(int nIndex)
function HRESULT (line 1718) | HRESULT CTxtWinHost::TxGetBackStyle(TXTBACKSTYLE *pstyle)
function HRESULT (line 1724) | HRESULT CTxtWinHost::TxGetMaxLength(DWORD *pLength)
function HRESULT (line 1730) | HRESULT CTxtWinHost::TxGetScrollBars(DWORD *pdwScrollBar)
function HRESULT (line 1738) | HRESULT CTxtWinHost::TxGetPasswordChar(TCHAR *pch)
function HRESULT (line 1748) | HRESULT CTxtWinHost::TxGetAcceleratorPos(LONG *pcp)
function HRESULT (line 1754) | HRESULT CTxtWinHost::OnTxCharFormatChange(const CHARFORMATW *pcf)
function HRESULT (line 1759) | HRESULT CTxtWinHost::OnTxParaFormatChange(const PARAFORMAT *ppf)
function HRESULT (line 1764) | HRESULT CTxtWinHost::TxGetPropertyBits(DWORD dwMask, DWORD *pdwBits)
function HRESULT (line 1818) | HRESULT CTxtWinHost::TxNotify(DWORD iNotify, void *pv)
function HRESULT (line 1832) | HRESULT CTxtWinHost::TxGetExtent(LPSIZEL lpExtent)
function HRESULT (line 1838) | HRESULT CTxtWinHost::TxGetSelectionBarWidth(LONG *plSelBarWidth)
function BOOL (line 1850) | BOOL CTxtWinHost::GetReadOnly( )
function SIZEL (line 1903) | SIZEL* CTxtWinHost::GetExtent( )
function BOOL (line 1921) | BOOL CTxtWinHost::IsCaptured( )
function BOOL (line 1926) | BOOL CTxtWinHost::GetAllowBeep( )
function WORD (line 1939) | WORD CTxtWinHost::GetDefaultAlign( )
function BOOL (line 1952) | BOOL CTxtWinHost::GetRichTextFlag( )
function LONG (line 1965) | LONG CTxtWinHost::GetDefaultLeftIndent( )
function BOOL (line 1989) | BOOL CTxtWinHost::SetSaveSelection(BOOL f_SaveSelection)
function HRESULT (line 2002) | HRESULT CTxtWinHost::OnTxInPlaceDeactivate( )
function HRESULT (line 2014) | HRESULT CTxtWinHost::OnTxInPlaceActivate(LPCRECT prcClient)
function BOOL (line 2028) | BOOL CTxtWinHost::DoSetCursor(RECT *prc, POINT *pt)
function LONG (line 2061) | LONG CTxtWinHost::SetAccelPos(LONG l_accelpos)
function WCHAR (line 2073) | WCHAR CTxtWinHost::SetPasswordChar(WCHAR ch_PasswordChar)
function LONG (line 2100) | LONG CTxtWinHost::SetSelBarWidth(LONG l_SelBarWidth)
function BOOL (line 2120) | BOOL CTxtWinHost::GetTimerState( )
function LPCTSTR (line 2172) | LPCTSTR CRichEditUI::GetClass( ) const
function LPVOID (line 2177) | LPVOID CRichEditUI::GetInterface(LPCTSTR pstrName)
function UINT (line 2183) | UINT CRichEditUI::GetControlFlags( ) const
function RECT (line 2219) | RECT CRichEditUI::GetTextPadding() const
function LONG (line 2293) | LONG CRichEditUI::GetWinStyle( )
function DWORD (line 2303) | DWORD CRichEditUI::GetTextColor( )
function CDuiString (line 2343) | CDuiString CRichEditUI::GetText( ) const
function CDuiString (line 2438) | CDuiString CRichEditUI::GetSelText( ) const
function WORD (line 2487) | WORD CRichEditUI::GetSelectionType( ) const
function DWORD (line 2508) | DWORD CRichEditUI::GetEventMask( ) const
function DWORD (line 2515) | DWORD CRichEditUI::SetEventMask(DWORD dwEventMask)
function CDuiString (line 2522) | CDuiString CRichEditUI::GetTextRange(long nStartChar, long nEndChar) c...
function DWORD (line 2562) | DWORD CRichEditUI::GetDefaultCharFormat(CHARFORMAT2 &cf) const
function DWORD (line 2586) | DWORD CRichEditUI::GetSelectionCharFormat(CHARFORMAT2 &cf) const
function DWORD (line 2612) | DWORD CRichEditUI::GetParaFormat(PARAFORMAT2 &pf) const
function CDuiString (line 2677) | CDuiString CRichEditUI::GetLine(int nIndex, int nMaxLength) const
function CPoint (line 2711) | CPoint CRichEditUI::GetCharPos(long lChar) const
function CPoint (line 2726) | CPoint CRichEditUI::PosFromChar(UINT nChar) const
function UINT (line 2747) | UINT CRichEditUI::SetUndoLimit(UINT nLimit)
function IRichEditOleCallback (line 2784) | IRichEditOleCallback *CRichEditUI::GetOLECallback( )
function LPRICHEDITOLE (line 2789) | LPRICHEDITOLE CRichEditUI::GetRichEditOle( )
function HRESULT (line 2826) | HRESULT CRichEditUI::TxSendMessage(UINT msg, WPARAM wparam, LPARAM lpa...
function IDropTarget (line 2842) | IDropTarget* CRichEditUI::GetTxDropTarget( )
function SIZE (line 3078) | SIZE CRichEditUI::EstimateSize(SIZE szAvailable)
function LRESULT (line 3466) | LRESULT CRichEditUI::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM l...
FILE: DuiLib/Control/UIRichEdit.h
function namespace (line 17) | namespace DuiLib
FILE: DuiLib/Control/UIScrollBar.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 19) | LPCTSTR CScrollBarUI::GetClass() const
function LPVOID (line 24) | LPVOID CScrollBarUI::GetInterface(LPCTSTR pstrName)
function CContainerUI (line 30) | CContainerUI* CScrollBarUI::GetOwner() const
function LPCTSTR (line 168) | LPCTSTR CScrollBarUI::GetButton1NormalImage()
function LPCTSTR (line 179) | LPCTSTR CScrollBarUI::GetButton1HotImage()
function LPCTSTR (line 190) | LPCTSTR CScrollBarUI::GetButton1PushedImage()
function LPCTSTR (line 201) | LPCTSTR CScrollBarUI::GetButton1DisabledImage()
function LPCTSTR (line 223) | LPCTSTR CScrollBarUI::GetButton2NormalImage()
function LPCTSTR (line 234) | LPCTSTR CScrollBarUI::GetButton2HotImage()
function LPCTSTR (line 245) | LPCTSTR CScrollBarUI::GetButton2PushedImage()
function LPCTSTR (line 256) | LPCTSTR CScrollBarUI::GetButton2DisabledImage()
function LPCTSTR (line 267) | LPCTSTR CScrollBarUI::GetThumbNormalImage()
function LPCTSTR (line 278) | LPCTSTR CScrollBarUI::GetThumbHotImage()
function LPCTSTR (line 289) | LPCTSTR CScrollBarUI::GetThumbPushedImage()
function LPCTSTR (line 300) | LPCTSTR CScrollBarUI::GetThumbDisabledImage()
function LPCTSTR (line 311) | LPCTSTR CScrollBarUI::GetRailNormalImage()
function LPCTSTR (line 322) | LPCTSTR CScrollBarUI::GetRailHotImage()
function LPCTSTR (line 333) | LPCTSTR CScrollBarUI::GetRailPushedImage()
function LPCTSTR (line 344) | LPCTSTR CScrollBarUI::GetRailDisabledImage()
function LPCTSTR (line 355) | LPCTSTR CScrollBarUI::GetBkNormalImage()
function LPCTSTR (line 366) | LPCTSTR CScrollBarUI::GetBkHotImage()
function LPCTSTR (line 377) | LPCTSTR CScrollBarUI::GetBkPushedImage()
function LPCTSTR (line 388) | LPCTSTR CScrollBarUI::GetBkDisabledImage()
FILE: DuiLib/Control/UIScrollBar.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UISlider.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 12) | LPCTSTR CSliderUI::GetClass() const
function UINT (line 17) | UINT CSliderUI::GetControlFlags() const
function LPVOID (line 23) | LPVOID CSliderUI::GetInterface(LPCTSTR pstrName)
function RECT (line 52) | RECT CSliderUI::GetThumbRect() const
function LPCTSTR (line 66) | LPCTSTR CSliderUI::GetThumbImage() const
function LPCTSTR (line 77) | LPCTSTR CSliderUI::GetThumbHotImage() const
function LPCTSTR (line 88) | LPCTSTR CSliderUI::GetThumbPushedImage() const
FILE: DuiLib/Control/UISlider.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UIText.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 18) | LPCTSTR CTextUI::GetClass() const
function LPVOID (line 23) | LPVOID CTextUI::GetInterface(LPCTSTR pstrName)
function UINT (line 29) | UINT CTextUI::GetControlFlags() const
function CDuiString (line 35) | CDuiString* CTextUI::GetLinkContent(int iIndex)
function SIZE (line 106) | SIZE CTextUI::EstimateSize(SIZE szAvailable)
FILE: DuiLib/Control/UIText.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Control/UITreeView.cpp
type DuiLib (line 5) | namespace DuiLib
function LPCTSTR (line 58) | LPCTSTR CTreeNodeUI::GetClass() const
function LPVOID (line 63) | LPVOID CTreeNodeUI::GetInterface( LPCTSTR pstrName )
function CDuiString (line 304) | CDuiString CTreeNodeUI::GetItemText()
function CTreeNodeUI (line 378) | CTreeNodeUI* CTreeNodeUI::GetParentNode()
function CTreeViewUI (line 393) | CTreeViewUI* CTreeNodeUI::GetTreeView()
function CStdPtrArray (line 442) | CStdPtrArray CTreeNodeUI::GetTreeNodes()
function CTreeNodeUI (line 447) | CTreeNodeUI* CTreeNodeUI::GetChildNode( int _nIndex )
function CTreeNodeUI (line 496) | CTreeNodeUI* CTreeNodeUI::GetLastNode( )
function CTreeNodeUI (line 519) | CTreeNodeUI* CTreeNodeUI::CalLocation( CTreeNodeUI* _pTreeNodeUI )
function DWORD (line 536) | DWORD CTreeNodeUI::GetItemTextColor() const
function DWORD (line 547) | DWORD CTreeNodeUI::GetItemHotTextColor() const
function DWORD (line 558) | DWORD CTreeNodeUI::GetSelItemTextColor() const
function DWORD (line 569) | DWORD CTreeNodeUI::GetSelItemHotTextColor() const
function LPCTSTR (line 584) | LPCTSTR CTreeViewUI::GetClass() const
function LPVOID (line 589) | LPVOID CTreeViewUI::GetInterface(LPCTSTR pstrName)
function UINT (line 917) | UINT CTreeViewUI::GetItemMinWidth()
FILE: DuiLib/Control/UITreeView.h
function namespace (line 9) | namespace DuiLib
FILE: DuiLib/Control/UIWebBrowser.cpp
function STDMETHODIMP (line 65) | STDMETHODIMP DuiLib::CWebBrowserUI::GetTypeInfoCount( UINT *iTInfo )
function STDMETHODIMP (line 71) | STDMETHODIMP DuiLib::CWebBrowserUI::GetTypeInfo( UINT iTInfo, LCID lcid,...
function STDMETHODIMP (line 76) | STDMETHODIMP DuiLib::CWebBrowserUI::GetIDsOfNames( REFIID riid, OLECHAR ...
function STDMETHODIMP (line 81) | STDMETHODIMP DuiLib::CWebBrowserUI::Invoke( DISPID dispIdMember, REFIID ...
function STDMETHODIMP (line 148) | STDMETHODIMP DuiLib::CWebBrowserUI::QueryInterface( REFIID riid, LPVOID ...
function STDMETHODIMP (line 279) | STDMETHODIMP DuiLib::CWebBrowserUI::Download( /* [in] */ IMoniker *pmk, ...
function STDMETHODIMP (line 289) | STDMETHODIMP DuiLib::CWebBrowserUI::ShowContextMenu( DWORD dwID, POINT* ...
function STDMETHODIMP (line 298) | STDMETHODIMP DuiLib::CWebBrowserUI::GetHostInfo( DOCHOSTUIINFO* pInfo )
function STDMETHODIMP (line 308) | STDMETHODIMP DuiLib::CWebBrowserUI::ShowUI( DWORD dwID, IOleInPlaceActiv...
function STDMETHODIMP (line 317) | STDMETHODIMP DuiLib::CWebBrowserUI::HideUI()
function STDMETHODIMP (line 326) | STDMETHODIMP DuiLib::CWebBrowserUI::UpdateUI()
function STDMETHODIMP (line 335) | STDMETHODIMP DuiLib::CWebBrowserUI::EnableModeless( BOOL fEnable )
function STDMETHODIMP (line 344) | STDMETHODIMP DuiLib::CWebBrowserUI::OnDocWindowActivate( BOOL fActivate )
function STDMETHODIMP (line 353) | STDMETHODIMP DuiLib::CWebBrowserUI::OnFrameWindowActivate( BOOL fActivate )
function STDMETHODIMP (line 362) | STDMETHODIMP DuiLib::CWebBrowserUI::ResizeBorder( LPCRECT prcBorder, IOl...
function STDMETHODIMP (line 371) | STDMETHODIMP DuiLib::CWebBrowserUI::TranslateAccelerator( LPMSG lpMsg, c...
function LRESULT (line 380) | LRESULT DuiLib::CWebBrowserUI::TranslateAccelerator( MSG *pMsg )
function STDMETHODIMP (line 415) | STDMETHODIMP DuiLib::CWebBrowserUI::GetOptionKeyPath( LPOLESTR* pchKey, ...
function STDMETHODIMP (line 424) | STDMETHODIMP DuiLib::CWebBrowserUI::GetDropTarget( IDropTarget* pDropTar...
function STDMETHODIMP (line 433) | STDMETHODIMP DuiLib::CWebBrowserUI::GetExternal( IDispatch** ppDispatch )
function STDMETHODIMP (line 442) | STDMETHODIMP DuiLib::CWebBrowserUI::TranslateUrl( DWORD dwTranslate, OLE...
function STDMETHODIMP (line 455) | STDMETHODIMP DuiLib::CWebBrowserUI::FilterDataObject( IDataObject* pDO, ...
function LPCTSTR (line 512) | LPCTSTR DuiLib::CWebBrowserUI::GetClass() const
function LPVOID (line 517) | LPVOID DuiLib::CWebBrowserUI::GetInterface( LPCTSTR pstrName )
function LPCTSTR (line 528) | LPCTSTR DuiLib::CWebBrowserUI::GetHomePage()
function STDMETHODIMP (line 545) | STDMETHODIMP DuiLib::CWebBrowserUI::QueryService( REFGUID guidService, R...
function HRESULT (line 559) | HRESULT DuiLib::CWebBrowserUI::RegisterEventHandler( BOOL inAdvise )
function DISPID (line 585) | DISPID DuiLib::CWebBrowserUI::FindId( IDispatch *pObj, LPOLESTR pName )
function HRESULT (line 592) | HRESULT DuiLib::CWebBrowserUI::InvokeMethod( IDispatch *pObj, LPOLESTR p...
function HRESULT (line 606) | HRESULT DuiLib::CWebBrowserUI::GetProperty( IDispatch *pObj, LPOLESTR pN...
function HRESULT (line 620) | HRESULT DuiLib::CWebBrowserUI::SetProperty( IDispatch *pObj, LPOLESTR pN...
function IDispatch (line 634) | IDispatch* DuiLib::CWebBrowserUI::GetHtmlWindow()
function IWebBrowser2 (line 662) | IWebBrowser2* DuiLib::CWebBrowserUI::GetWebBrowser2( void )
function HRESULT (line 667) | HRESULT STDMETHODCALLTYPE DuiLib::CWebBrowserUI::QueryStatus( __RPC__in_...
function HRESULT (line 673) | HRESULT STDMETHODCALLTYPE DuiLib::CWebBrowserUI::Exec( __RPC__in_opt con...
FILE: DuiLib/Control/UIWebBrowser.h
function namespace (line 12) | namespace DuiLib
FILE: DuiLib/Core/UIBase.cpp
type DuiLib (line 8) | namespace DuiLib {
function DUI__Trace (line 14) | void UILIB_API DUI__Trace(LPCTSTR pstrFormat, ...)
function LPCTSTR (line 30) | LPCTSTR DUI__TraceMsg(UINT uMsg)
function DUI_MSGMAP_ENTRY (line 101) | static const DUI_MSGMAP_ENTRY* DuiFindMessageEntry(const DUI_MSGMAP_EN...
function HWND (line 220) | HWND CWindowWnd::GetHWND() const
function HWND (line 224) | HWND CWindowWnd::GetSafeHwnd() const
function UINT (line 229) | UINT CWindowWnd::GetClassStyle() const
function LPCTSTR (line 234) | LPCTSTR CWindowWnd::GetSuperClassName() const
function HWND (line 244) | HWND CWindowWnd::CreateDuiWindow( HWND hwndParent, LPCTSTR pstrWindowN...
function HWND (line 249) | HWND CWindowWnd::Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwSty...
function HWND (line 254) | HWND CWindowWnd::Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwSty...
function HWND (line 263) | HWND CWindowWnd::Subclass(HWND hWnd)
function UINT (line 292) | UINT CWindowWnd::ShowModal()
function LRESULT (line 443) | LRESULT CALLBACK CWindowWnd::__WndProc(HWND hWnd, UINT uMsg, WPARAM wP...
function LRESULT (line 471) | LRESULT CALLBACK CWindowWnd::__ControlProc(HWND hWnd, UINT uMsg, WPARA...
function LRESULT (line 499) | LRESULT CWindowWnd::SendMessage(UINT uMsg, WPARAM wParam /*= 0*/, LPAR...
function LRESULT (line 505) | LRESULT CWindowWnd::PostMessage(UINT uMsg, WPARAM wParam /*= 0*/, LPAR...
function LRESULT (line 522) | LRESULT CWindowWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lPa...
FILE: DuiLib/Core/UIBase.h
function namespace (line 7) | namespace DuiLib {
FILE: DuiLib/Core/UIContainer - 副本.cpp
type DuiLib (line 3) | namespace DuiLib
function LPCTSTR (line 31) | LPCTSTR CContainerUI::GetClass() const
function LPVOID (line 36) | LPVOID CContainerUI::GetInterface(LPCTSTR pstrName)
function CControlUI (line 43) | CControlUI* CContainerUI::GetItemAt(int iIndex) const
function RECT (line 155) | RECT CContainerUI::GetInset() const
function SIZE (line 323) | SIZE CContainerUI::GetScrollPos() const
function SIZE (line 331) | SIZE CContainerUI::GetScrollRange() const
function CScrollBarUI (line 536) | CScrollBarUI* CContainerUI::GetVerticalScrollBar() const
function CScrollBarUI (line 541) | CScrollBarUI* CContainerUI::GetHorizontalScrollBar() const
function CControlUI (line 633) | CControlUI* CContainerUI::FindControl(FINDCONTROLPROC Proc, LPVOID pDa...
function CDuiString (line 932) | const CDuiString CContainerUI::GetSubControlUserData( LPCTSTR pstrSubC...
function CControlUI (line 942) | CControlUI* CContainerUI::FindSubControl( LPCTSTR pstrSubControlName )
FILE: DuiLib/Core/UIContainer.cpp
type DuiLib (line 3) | namespace DuiLib
function LPCTSTR (line 30) | LPCTSTR CContainerUI::GetClass() const
function LPVOID (line 35) | LPVOID CContainerUI::GetInterface(LPCTSTR pstrName)
function CControlUI (line 42) | CControlUI* CContainerUI::GetItemAt(int iIndex) const
function RECT (line 154) | RECT CContainerUI::GetInset() const
function SIZE (line 310) | SIZE CContainerUI::GetScrollPos() const
function SIZE (line 318) | SIZE CContainerUI::GetScrollRange() const
function CScrollBarUI (line 514) | CScrollBarUI* CContainerUI::GetVerticalScrollBar() const
function CScrollBarUI (line 519) | CScrollBarUI* CContainerUI::GetHorizontalScrollBar() const
function CControlUI (line 627) | CControlUI* CContainerUI::FindControl(FINDCONTROLPROC Proc, LPVOID pDa...
function CDuiString (line 926) | const CDuiString CContainerUI::GetSubControlUserData( LPCTSTR pstrSubC...
function CControlUI (line 936) | CControlUI* CContainerUI::FindSubControl( LPCTSTR pstrSubControlName )
FILE: DuiLib/Core/UIContainer.h
type ScrollType (line 33) | enum ScrollType
FILE: DuiLib/Core/UIControl.cpp
type DuiLib (line 4) | namespace DuiLib {
function CDuiString (line 51) | CDuiString CControlUI::GetName() const
function LPVOID (line 61) | LPVOID CControlUI::GetInterface(LPCTSTR pstrName)
function LPCTSTR (line 67) | LPCTSTR CControlUI::GetClass() const
function UINT (line 72) | UINT CControlUI::GetControlFlags() const
function CPaintManagerUI (line 84) | CPaintManagerUI* CControlUI::GetManager() const
function CControlUI (line 96) | CControlUI* CControlUI::GetParent() const
function CDuiString (line 101) | CDuiString CControlUI::GetText() const
function DWORD (line 114) | DWORD CControlUI::GetBkColor() const
function DWORD (line 127) | DWORD CControlUI::GetBkColor2() const
function DWORD (line 140) | DWORD CControlUI::GetBkColor3() const
function LPCTSTR (line 153) | LPCTSTR CControlUI::GetBkImage()
function DWORD (line 166) | DWORD CControlUI::GetBorderColor() const
function DWORD (line 179) | DWORD CControlUI::GetFocusBorderColor() const
function SIZE (line 224) | SIZE CControlUI::GetBorderRound() const
function RECT (line 245) | const RECT& CControlUI::GetPos() const
function RECT (line 318) | RECT CControlUI::GetPadding() const
function SIZE (line 329) | SIZE CControlUI::GetFixedXY() const
function TRelativePosUI (line 442) | TRelativePosUI CControlUI::GetRelativePos() const
function CDuiString (line 452) | CDuiString CControlUI::GetToolTip() const
function TCHAR (line 474) | TCHAR CControlUI::GetShortcut() const
function CDuiString (line 504) | const CDuiString& CControlUI::GetUserData()
function UINT_PTR (line 514) | UINT_PTR CControlUI::GetTag() const
function CControlUI (line 619) | CControlUI* CControlUI::FindControl(FINDCONTROLPROC Proc, LPVOID pData...
function DWORD (line 676) | DWORD CControlUI::GetAdjustColor(DWORD dwColor)
function CDuiString (line 742) | CDuiString CControlUI::GetVirtualWnd() const
function CDuiString (line 760) | CDuiString CControlUI::GetCurVirtualWnd() const
function CControlUI (line 916) | CControlUI* CControlUI::ApplyAttributeList(LPCTSTR pstrList)
function SIZE (line 947) | SIZE CControlUI::EstimateSize(SIZE szAvailable)
FILE: DuiLib/Core/UIControl.h
function namespace (line 6) | namespace DuiLib {
FILE: DuiLib/Core/UIDefine.h
function namespace (line 5) | namespace DuiLib
FILE: DuiLib/Core/UIDlgBuilder.cpp
type DuiLib (line 3) | namespace DuiLib {
function CControlUI (line 10) | CControlUI* CDialogBuilder::Create(STRINGorID xml, LPCTSTR type, IDial...
function CControlUI (line 42) | CControlUI* CDialogBuilder::Create(IDialogBuilderCallback* pCallback, ...
function CMarkup (line 251) | CMarkup* CDialogBuilder::GetMarkup()
function CControlUI (line 266) | CControlUI* CDialogBuilder::_Parse(CMarkupNode* pRoot, CControlUI* pPa...
FILE: DuiLib/Core/UIDlgBuilder.h
function namespace (line 6) | namespace DuiLib {
FILE: DuiLib/Core/UIManager.cpp
type DuiLib (line 17) | namespace DuiLib {
function UINT (line 23) | static UINT MapKeyState()
type tagFINDTABINFO (line 34) | struct tagFINDTABINFO
type tagFINDSHORTCUT (line 42) | struct tagFINDSHORTCUT
type tagTIMERINFO (line 48) | struct tagTIMERINFO
function HINSTANCE (line 203) | HINSTANCE CPaintManagerUI::GetInstance()
function CDuiString (line 208) | CDuiString CPaintManagerUI::GetInstancePath()
function CDuiString (line 220) | CDuiString CPaintManagerUI::GetCurrentPath()
function HINSTANCE (line 227) | HINSTANCE CPaintManagerUI::GetResourceDll()
function CDuiString (line 233) | const CDuiString& CPaintManagerUI::GetResourcePath()
function CDuiString (line 238) | const CDuiString& CPaintManagerUI::GetResourceZip()
function BOOL (line 248) | BOOL CPaintManagerUI::CompressedPacketOpen(const TCHAR* filepath)
function BOOL (line 254) | BOOL CPaintManagerUI::FindCompressedPacketResource(LPCTSTR lpszName, i...
function BOOL (line 259) | BOOL CPaintManagerUI::GetCompressedPacketResource(int index, void *dst...
function CStdPtrArray (line 358) | CStdPtrArray* CPaintManagerUI::GetPlugins()
function HWND (line 363) | HWND CPaintManagerUI::GetPaintWindow() const
function HWND (line 368) | HWND CPaintManagerUI::GetTooltipWindow() const
function HDC (line 373) | HDC CPaintManagerUI::GetPaintDC() const
function POINT (line 378) | POINT CPaintManagerUI::GetMousePos() const
function SIZE (line 383) | SIZE CPaintManagerUI::GetClientSize() const
function SIZE (line 390) | SIZE CPaintManagerUI::GetInitSize()
function RECT (line 404) | RECT& CPaintManagerUI::GetSizeBox()
function RECT (line 414) | RECT& CPaintManagerUI::GetCaptionRect()
function SIZE (line 424) | SIZE CPaintManagerUI::GetRoundCorner() const
function SIZE (line 435) | SIZE CPaintManagerUI::GetMinInfo() const
function SIZE (line 447) | SIZE CPaintManagerUI::GetMaxInfo() const
function CStdPtrArray (line 1309) | CStdPtrArray* CPaintManagerUI::GetOptionGroup(LPCTSTR pStrGroupName)
function CControlUI (line 1367) | CControlUI* CPaintManagerUI::GetFocus() const
function CPaintManagerUI (line 1696) | CPaintManagerUI* CPaintManagerUI::GetParentResource() const
function DWORD (line 1701) | DWORD CPaintManagerUI::GetDefaultDisabledColor() const
function DWORD (line 1712) | DWORD CPaintManagerUI::GetDefaultFontColor() const
function DWORD (line 1723) | DWORD CPaintManagerUI::GetDefaultLinkFontColor() const
function DWORD (line 1734) | DWORD CPaintManagerUI::GetDefaultLinkHoverFontColor() const
function DWORD (line 1745) | DWORD CPaintManagerUI::GetDefaultSelectedBkColor() const
function TFontInfo (line 1756) | TFontInfo* CPaintManagerUI::GetDefaultFontInfo()
function DWORD (line 1796) | DWORD CPaintManagerUI::GetCustomFontCount() const
function HFONT (line 1801) | HFONT CPaintManagerUI::AddFont(LPCTSTR pStrFontName, int nSize, bool b...
function HFONT (line 1837) | HFONT CPaintManagerUI::AddFontAt(int index, LPCTSTR pStrFontName, int ...
function HFONT (line 1873) | HFONT CPaintManagerUI::GetFont(int index)
function HFONT (line 1880) | HFONT CPaintManagerUI::GetFont(LPCTSTR pStrFontName, int nSize, bool b...
function CDuiString (line 2045) | CDuiString* CPaintManagerUI::GetResString(LPCTSTR key)
function TFontInfo (line 2077) | TFontInfo* CPaintManagerUI::GetFontInfo(int index)
function TFontInfo (line 2089) | TFontInfo* CPaintManagerUI::GetFontInfo(HFONT hFont)
function TImageInfo (line 2108) | const TImageInfo* CPaintManagerUI::GetImage(LPCTSTR bitmap)
function TImageInfo (line 2115) | const TImageInfo* CPaintManagerUI::GetImageEx(LPCTSTR bitmap, LPCTSTR ...
function TImageInfo (line 2127) | const TImageInfo* CPaintManagerUI::AddImage(LPCTSTR bitmap, LPCTSTR ty...
function TImageInfo (line 2152) | const TImageInfo* CPaintManagerUI::AddImage(LPCTSTR bitmap, HBITMAP hB...
function LPCTSTR (line 2242) | LPCTSTR CPaintManagerUI::GetDefaultAttributeList(LPCTSTR pStrControlNa...
function CStdStringPtrMap (line 2260) | const CStdStringPtrMap& CPaintManagerUI::GetDefaultAttribultes() const
function CControlUI (line 2277) | CControlUI* CPaintManagerUI::GetRoot() const
function CControlUI (line 2284) | CControlUI* CPaintManagerUI::FindControl(POINT pt) const
function CControlUI (line 2290) | CControlUI* CPaintManagerUI::FindControl(LPCTSTR pstrName) const
function CControlUI (line 2296) | CControlUI* CPaintManagerUI::FindSubControlByPoint(CControlUI* pParent...
function CControlUI (line 2303) | CControlUI* CPaintManagerUI::FindSubControlByName(CControlUI* pParent,...
function CControlUI (line 2310) | CControlUI* CPaintManagerUI::FindSubControlByClass(CControlUI* pParent...
function CStdPtrArray (line 2318) | CStdPtrArray* CPaintManagerUI::FindSubControlsByClass(CControlUI* pPar...
function CStdPtrArray (line 2327) | CStdPtrArray* CPaintManagerUI::GetSubControlsByClass()
FILE: DuiLib/Core/UIManager.h
function namespace (line 6) | namespace DuiLib {
FILE: DuiLib/Core/UIMarkup.cpp
type DuiLib (line 7) | namespace DuiLib {
function CMarkupNode (line 22) | CMarkupNode CMarkupNode::GetSibling()
function CMarkupNode (line 37) | CMarkupNode CMarkupNode::GetChild()
function CMarkupNode (line 45) | CMarkupNode CMarkupNode::GetChild(LPCTSTR pstrName)
function CMarkupNode (line 64) | CMarkupNode CMarkupNode::GetParent()
function LPCTSTR (line 77) | LPCTSTR CMarkupNode::GetName() const
function LPCTSTR (line 83) | LPCTSTR CMarkupNode::GetValue() const
function LPCTSTR (line 89) | LPCTSTR CMarkupNode::GetAttributeName(int iIndex)
function LPCTSTR (line 97) | LPCTSTR CMarkupNode::GetAttributeValue(int iIndex)
function LPCTSTR (line 105) | LPCTSTR CMarkupNode::GetAttributeValue(LPCTSTR pstrName)
function CMarkupNode (line 419) | CMarkupNode CMarkup::GetRoot()
FILE: DuiLib/Core/UIMarkup.h
function class (line 19) | class UILIB_API CMarkup
FILE: DuiLib/Core/UIRender.cpp
type DuiLib (line 11) | namespace DuiLib {
function RGBtoHSL (line 68) | static void RGBtoHSL(DWORD ARGB, float* H, float* S, float* L) {
function HSLtoRGB (line 91) | static void HSLtoRGB(DWORD* ARGB, float H, float S, float L) {
function COLORREF (line 109) | static COLORREF PixelAlpha(COLORREF clrSrc, double src_darken, COLORRE...
function BOOL (line 117) | static BOOL WINAPI AlphaBitBlt(HDC hDC, int nDestX, int nDestY, int dw...
function DWORD (line 231) | DWORD CRenderEngine::AdjustColor(DWORD dwColor, short H, short S, shor...
function TImageInfo (line 246) | TImageInfo* CRenderEngine::LoadImage(STRINGorID bitmap, LPCTSTR type, ...
function DrawImage (line 868) | bool DrawImage(HDC hDC, CPaintManagerUI* pManager, const RECT& rc, con...
function DrawImage (line 900) | bool DrawImage(HDC hDC, CPaintManagerUI* pManager, const RECT& rc, con...
function HBITMAP (line 2105) | HBITMAP CRenderEngine::GenerateBitmap(CPaintManagerUI* pManager, CCont...
function SIZE (line 2147) | SIZE CRenderEngine::GetTextSize(HDC hDC, CPaintManagerUI* pManager, LP...
FILE: DuiLib/Core/UIRender.h
function namespace (line 6) | namespace DuiLib {
FILE: DuiLib/Ex/ShadowWindow.h
function namespace (line 18) | namespace DuiLib
function GetSize (line 594) | int GetSize()
function GetSharpness (line 608) | unsigned GetSharpness()
function GetDarkness (line 622) | unsigned GetDarkness()
function GetPosition (line 638) | void GetPosition(int * pnxOffset,int *pnyOffset)
function COLORREF (line 652) | COLORREF GetColor()
function SetAdjustShadowBmpCallback (line 656) | void SetAdjustShadowBmpCallback(pfnAdjustShadows fNewCallback, void * pC...
function pfnAdjustShadows (line 666) | pfnAdjustShadows GetAdjustShadowBmpCallback(void ** ppCallbackData)
FILE: DuiLib/Layout/UIChildLayout.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 11) | LPCTSTR CChildLayoutUI::GetClass() const
function LPVOID (line 16) | LPVOID CChildLayoutUI::GetInterface( LPCTSTR pstrName )
FILE: DuiLib/Layout/UIChildLayout.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Layout/UIHorizontalLayout.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 12) | LPCTSTR CHorizontalLayoutUI::GetClass() const
function LPVOID (line 17) | LPVOID CHorizontalLayoutUI::GetInterface(LPCTSTR pstrName)
function UINT (line 23) | UINT CHorizontalLayoutUI::GetControlFlags() const
function RECT (line 283) | RECT CHorizontalLayoutUI::GetThumbRect(bool bUseNew) const
FILE: DuiLib/Layout/UIHorizontalLayout.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Layout/UITabLayout.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 10) | LPCTSTR CTabLayoutUI::GetClass() const
function LPVOID (line 15) | LPVOID CTabLayoutUI::GetInterface(LPCTSTR pstrName)
FILE: DuiLib/Layout/UITabLayout.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Layout/UITileLayout.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 11) | LPCTSTR CTileLayoutUI::GetClass() const
function LPVOID (line 16) | LPVOID CTileLayoutUI::GetInterface(LPCTSTR pstrName)
function SIZE (line 22) | SIZE CTileLayoutUI::GetItemSize() const
FILE: DuiLib/Layout/UITileLayout.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Layout/UIVerticalLayout.cpp
type DuiLib (line 4) | namespace DuiLib
function LPCTSTR (line 12) | LPCTSTR CVerticalLayoutUI::GetClass() const
function LPVOID (line 17) | LPVOID CVerticalLayoutUI::GetInterface(LPCTSTR pstrName)
function UINT (line 23) | UINT CVerticalLayoutUI::GetControlFlags() const
function RECT (line 272) | RECT CVerticalLayoutUI::GetThumbRect(bool bUseNew) const
FILE: DuiLib/Layout/UIVerticalLayout.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/UIlib.cpp
function BOOL (line 54) | BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID /*lpReserv...
FILE: DuiLib/Utils/FlashEventHandler.h
function namespace (line 9) | namespace DuiLib
FILE: DuiLib/Utils/UIDelegate.cpp
type DuiLib (line 4) | namespace DuiLib {
FILE: DuiLib/Utils/UIDelegate.h
function namespace (line 8) | namespace DuiLib {
function CDelegateBase (line 117) | CDelegate(const CDelegate& rhs) : CDelegateBase(rhs) {
function virtual (line 119) | virtual CDelegateBase* Copy() const { return new CDelegate(*this); }
function virtual (line 120) | virtual ~CDelegate(){
function virtual (line 138) | virtual bool Invoke(TEventUI* pTEventUI)
function virtual (line 149) | virtual bool Invoke(TNotifyUI* pTNotifyUI)
function CDelegateStatic (line 185) | inline CDelegateStatic MakeDelegate(FunVoid pFunVoid)
function CDelegateStatic (line 190) | inline CDelegateStatic MakeDelegate(FunTEvent pFunTEvent,UINT _iEventType)
function CDelegateStatic (line 195) | inline CDelegateStatic MakeDelegate(FunTNotify pFunTNotify,LPCTSTR _sNot...
function class (line 200) | class UILIB_API CEventSource
FILE: DuiLib/Utils/UnCompression.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Utils/Utils.cpp
type DuiLib (line 4) | namespace DuiLib
function LPVOID (line 255) | LPVOID* CStdPtrArray::GetData()
function LPVOID (line 260) | LPVOID CStdPtrArray::GetAt(int iIndex) const
function LPVOID (line 266) | LPVOID CStdPtrArray::operator[] (int iIndex) const
function LPVOID (line 334) | LPVOID CStdValArray::GetData()
function LPVOID (line 339) | LPVOID CStdValArray::GetAt(int iIndex) const
function LPVOID (line 345) | LPVOID CStdValArray::operator[] (int iIndex) const
function LPCTSTR (line 452) | LPCTSTR CDuiString::GetData() const
function TCHAR (line 457) | TCHAR CDuiString::GetAt(int nIndex) const
function TCHAR (line 462) | TCHAR CDuiString::operator[] (int nIndex) const
function CDuiString (line 467) | const CDuiString& CDuiString::operator=(const CDuiString& src)
function CDuiString (line 473) | const CDuiString& CDuiString::operator=(LPCTSTR lpStr)
function CDuiString (line 489) | const CDuiString& CDuiString::operator=(LPCSTR lpStr)
function CDuiString (line 506) | const CDuiString& CDuiString::operator+=(LPCSTR lpStr)
function CDuiString (line 522) | const CDuiString& CDuiString::operator=(LPCWSTR lpwStr)
function CDuiString (line 540) | const CDuiString& CDuiString::operator+=(LPCWSTR lpwStr)
function CDuiString (line 556) | const CDuiString& CDuiString::operator=(const TCHAR ch)
function CDuiString (line 564) | CDuiString CDuiString::operator+(const CDuiString& src) const
function CDuiString (line 571) | CDuiString CDuiString::operator+(LPCTSTR lpStr) const
function CDuiString (line 584) | const CDuiString& CDuiString::operator+=(const CDuiString& src)
function CDuiString (line 590) | const CDuiString& CDuiString::operator+=(LPCTSTR lpStr)
function CDuiString (line 601) | const CDuiString& CDuiString::operator+=(const TCHAR ch)
function CDuiString (line 689) | CDuiString CDuiString::Left(int iLength) const
function CDuiString (line 696) | CDuiString CDuiString::Mid(int iPos, int iLength) const
function CDuiString (line 704) | CDuiString CDuiString::Right(int iLength) const
function UINT (line 1059) | static UINT HashKey(LPCTSTR Key)
function UINT (line 1068) | static UINT HashKey(const CDuiString& Key)
function LPVOID (line 1129) | LPVOID CStdStringPtrMap::Find(LPCTSTR key, bool optimize) const
function LPVOID (line 1173) | LPVOID CStdStringPtrMap::Set(LPCTSTR key, LPVOID pData)
function LPCTSTR (line 1228) | LPCTSTR CStdStringPtrMap::GetAt(int iIndex) const
function LPCTSTR (line 1245) | LPCTSTR CStdStringPtrMap::operator[] (int nIndex) const
FILE: DuiLib/Utils/Utils.h
function class (line 11) | class STRINGorID
function GetWidth (line 54) | int GetWidth() const;
function class (line 129) | class UILIB_API CStdValArray
FILE: DuiLib/Utils/WebBrowserEventHandler.h
function namespace (line 6) | namespace DuiLib
FILE: DuiLib/Utils/WinImplBase.cpp
type DuiLib (line 6) | namespace DuiLib
function LRESULT (line 30) | LRESULT WindowImplBase::ResponseDefaultKeyEvent(WPARAM wParam)
function UINT (line 45) | UINT WindowImplBase::GetClassStyle() const
function UILIB_RESOURCETYPE (line 50) | UILIB_RESOURCETYPE WindowImplBase::GetResourceType() const
function CDuiString (line 55) | CDuiString WindowImplBase::GetZIPFileName() const
function LPCTSTR (line 60) | LPCTSTR WindowImplBase::GetResourceID() const
function CControlUI (line 65) | CControlUI* WindowImplBase::CreateControl(LPCTSTR pstrClass)
function CPaintManagerUI (line 69) | CPaintManagerUI* WindowImplBase::GetPaintManager()
function CControlUI (line 74) | CControlUI* WindowImplBase::FindControl(POINT pt)
function CControlUI (line 79) | CControlUI* WindowImplBase::FindControl(LPCTSTR pstrName)
function LRESULT (line 84) | LRESULT WindowImplBase::MessageHandler(UINT uMsg, WPARAM wParam, LPARA...
function LRESULT (line 101) | LRESULT WindowImplBase::OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPAR...
function LRESULT (line 107) | LRESULT WindowImplBase::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LP...
function LRESULT (line 114) | LRESULT WindowImplBase::OnNcActivate(UINT /*uMsg*/, WPARAM wParam, LPA...
function LRESULT (line 120) | LRESULT WindowImplBase::OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 160) | LRESULT WindowImplBase::OnNcPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LP...
function LRESULT (line 165) | LRESULT WindowImplBase::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM l...
function LRESULT (line 211) | LRESULT WindowImplBase::OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPAR...
function LRESULT (line 237) | LRESULT WindowImplBase::OnMouseWheel(UINT /*uMsg*/,UINT fwKeys,int nde...
function LRESULT (line 243) | LRESULT WindowImplBase::OnMouseHover(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 250) | LRESULT WindowImplBase::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam...
function LRESULT (line 288) | LRESULT WindowImplBase::OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam...
function LRESULT (line 294) | LRESULT WindowImplBase::OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM ...
function LRESULT (line 310) | LRESULT WindowImplBase::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lPar...
function LRESULT (line 412) | LRESULT WindowImplBase::OnKeyDown( UINT /*uMsg*/,UINT nChar, UINT nRep...
function LRESULT (line 417) | LRESULT WindowImplBase::OnKeyUp(UINT /*uMsg*/, UINT nChar, UINT nRepCn...
function LRESULT (line 423) | LRESULT WindowImplBase::OnSysKeyDown( UINT /*uMsg*/,UINT nChar, UINT n...
function LRESULT (line 428) | LRESULT WindowImplBase::OnSysKeyUp(UINT /*uMsg*/, UINT nChar, UINT nRe...
function LRESULT (line 434) | LRESULT WindowImplBase::OnKillFocus(UINT /*uMsg*/, WPARAM /*wParam*/, ...
function LRESULT (line 440) | LRESULT WindowImplBase::OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, L...
function LRESULT (line 446) | LRESULT WindowImplBase::OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/...
function LRESULT (line 452) | LRESULT WindowImplBase::OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, ...
function LRESULT (line 457) | LRESULT WindowImplBase::OnRButtonDown(UINT /*uMsg*/, UINT nFlags, CPoi...
function LRESULT (line 462) | LRESULT WindowImplBase::OnRButtonUp(UINT /*uMsg*/, UINT nFlags, CPoint...
function LRESULT (line 467) | LRESULT WindowImplBase::OnMouseMove(UINT /*uMsg*/, UINT nFlags, CPoint...
function LRESULT (line 473) | LRESULT WindowImplBase::OnPointerDown(UINT /*uMsg*/, WPARAM /*wParam*/...
function LRESULT (line 478) | LRESULT WindowImplBase::OnPointerUp(UINT /*uMsg*/, WPARAM /*wParam*/, ...
function LRESULT (line 486) | LRESULT WindowImplBase::OnTouch(UINT /*uMsg*/, UINT cInputs,HTOUCHINPU...
function LRESULT (line 523) | LRESULT WindowImplBase::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM...
function LRESULT (line 646) | LRESULT WindowImplBase::HandleCustomMessage(UINT uMsg, WPARAM wParam, ...
function LONG (line 652) | LONG WindowImplBase::GetStyle()
FILE: DuiLib/Utils/WinImplBase.h
function namespace (line 5) | namespace DuiLib
FILE: DuiLib/Utils/Zip/XUnZip.cpp
function BOOL (line 6) | BOOL CDUIUnZip::Open(const TCHAR *filepath)
function BOOL (line 28) | BOOL CDUIUnZip::Open(void *z, unsigned int len)
function BOOL (line 43) | BOOL CDUIUnZip::IsOpen( )
function BOOL (line 48) | BOOL CDUIUnZip::Close( )
function BOOL (line 65) | BOOL CDUIUnZip::Find(const TCHAR *name, int* index, DWORD64 *size)
function BOOL (line 82) | BOOL CDUIUnZip::Get(int index, void *dst, DWORD64 len)
FILE: DuiLib/Utils/Zip/XUnZip.h
function class (line 6) | class CDUIUnZip : public DuiLib::CUnCompression
FILE: DuiLib/Utils/Zip/XUnZipBase.h
type DWORD (line 201) | typedef DWORD ZRESULT;
type ZIPENTRY (line 208) | typedef struct
type ZIPENTRYW (line 217) | typedef struct
type tm_unz (line 260) | typedef struct tm_unz_s
type unz_global_info (line 271) | typedef struct unz_global_info_s
type unz_file_info (line 277) | typedef struct unz_file_info_s
type Byte (line 363) | typedef unsigned char Byte;
type uInt (line 364) | typedef unsigned int uInt;
type uLong (line 365) | typedef unsigned long uLong;
type z_off_t (line 368) | typedef long z_off_t;
type voidpf (line 381) | typedef voidpf (*alloc_func) (voidpf opaque, uInt items, uInt size);
type internal_state (line 384) | struct internal_state
type z_stream (line 386) | typedef struct z_stream_s {
type z_stream (line 407) | typedef z_stream *z_streamp;
type uch (line 619) | typedef unsigned char uch;
type uch (line 620) | typedef uch uchf;
type ush (line 621) | typedef unsigned short ush;
type ush (line 622) | typedef ush ushf;
type ulg (line 623) | typedef unsigned long ulg;
function z_error (line 681) | void z_error (char *m) {fprintf(stderr, "%s\n", m); exit(1);}
type uLong (line 708) | typedef uLong (*check_func) (uLong check, const Byte *buf, uInt len);
type inflate_huft (line 729) | typedef struct inflate_huft_s inflate_huft;
type inflate_huft_s (line 731) | struct inflate_huft_s {
type inflate_blocks_state (line 778) | struct inflate_blocks_state
type inflate_blocks_statef (line 779) | typedef struct inflate_blocks_state inflate_blocks_statef;
type inflate_codes_state (line 811) | struct inflate_codes_state
type inflate_codes_statef (line 812) | typedef struct inflate_codes_state inflate_codes_statef;
type inflate_block_mode (line 831) | typedef enum {
type inflate_blocks_state (line 845) | struct inflate_blocks_state {
function inflate_flush (line 1069) | int inflate_flush(inflate_blocks_statef *s,z_streamp z,int r)
type inflate_codes_mode (line 1143) | typedef enum { // waiting for "i:"=input, "o:"=output, "x:"=nothing
type inflate_codes_state (line 1157) | struct inflate_codes_state {
function inflate_codes_statef (line 1185) | inflate_codes_statef *inflate_codes_new(
function inflate_codes (line 1207) | int inflate_codes(inflate_blocks_statef *s, z_streamp z, int r)
function inflate_codes_free (line 1365) | void inflate_codes_free(inflate_codes_statef *c,z_streamp z)
function inflate_blocks_reset (line 1428) | void inflate_blocks_reset(inflate_blocks_statef *s, z_streamp z, uLong *c)
function inflate_blocks_statef (line 1446) | inflate_blocks_statef *inflate_blocks_new(z_streamp z, check_func c, uIn...
function j (line 1634) | DUMPBITS(t)
function huft_build (line 1811) | int huft_build(
function inflate_trees_bits (line 2012) | int inflate_trees_bits(
function inflate_trees_dynamic (line 2039) | int inflate_trees_dynamic(
function inflate_trees_fixed (line 2101) | int inflate_trees_fixed(
function inflate_fast (line 2134) | int inflate_fast(
function uLong (line 2350) | const uLong * get_crc_table()
function uLong (line 2359) | uLong ucrc32(uLong crc, const Byte *buf, uInt len)
function uLong (line 2386) | uLong adler32(uLong adler, const Byte *buf, uInt len)
function voidpf (line 2438) | voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
function zcfree (line 2444) | void zcfree (voidpf opaque, voidpf ptr)
type inflate_mode (line 2458) | typedef enum {
type internal_state (line 2476) | struct internal_state {
function inflateReset (line 2499) | int inflateReset(z_streamp z)
function inflateEnd (line 2511) | int inflateEnd(z_streamp z)
function inflateInit2 (line 2524) | int inflateInit2(z_streamp z)
function inflate (line 2592) | int inflate(z_streamp z, int f)
function GetAnsiFileName (line 2718) | static int GetAnsiFileName(LPCWSTR name, char * buf, int nBufSize)
function GetUnicodeFileName (line 2733) | static int GetUnicodeFileName(const char * name, LPWSTR buf, int nBufSize)
type unz_file_info_internal (line 2768) | typedef struct unz_file_info_internal_s
type LUFILE (line 2774) | typedef struct
function LUFILE (line 2784) | LUFILE *lufopen(void *z,unsigned int len,DWORD flags,ZRESULT *err)
function lufclose (line 2845) | int lufclose(LUFILE *stream)
function luferror (line 2852) | int luferror(LUFILE *stream)
function luftell (line 2857) | long int luftell(LUFILE *stream)
function lufseek (line 2863) | int lufseek(LUFILE *stream, long offset, int whence)
function lufread (line 2881) | size_t lufread(void *ptr,size_t size,size_t n,LUFILE *stream)
type file_in_zip_read_info_s (line 2899) | typedef struct
type unz_s (line 2922) | typedef struct
function unzlocal_getByte (line 2969) | int unzlocal_getByte(LUFILE *fin,int *pi)
function unzlocal_getShort (line 2985) | int unzlocal_getShort (LUFILE *fin,uLong *pX)
function unzlocal_getLong (line 3005) | int unzlocal_getLong (LUFILE *fin,uLong *pX)
function strcmpcasenosensitive_internal (line 3035) | int strcmpcasenosensitive_internal (const char* fileName1,const char *fi...
function unzStringFileNameCompare (line 3064) | int unzStringFileNameCompare (const char*fileName1,const char*fileName2,...
function uLong (line 3074) | uLong unzlocal_SearchCentralDir(LUFILE *fin)
function unzFile (line 3113) | unzFile unzOpenInternal(LUFILE *fin)
function unzClose (line 3167) | int unzClose (unzFile file)
function unzGetGlobalInfo (line 3186) | int unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
function unzlocal_DosDateToTmuDate (line 3198) | void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz* ptm)
function unzlocal_GetCurrentFileInfoInternal (line 3223) | int unzlocal_GetCurrentFileInfoInternal (unzFile file, unz_file_info *pf...
function unzGetCurrentFileInfo (line 3374) | int unzGetCurrentFileInfo (unzFile file, unz_file_info *pfile_info,
function unzGoToFirstFile (line 3384) | int unzGoToFirstFile (unzFile file)
function unzGoToNextFile (line 3403) | int unzGoToNextFile (unzFile file)
function unzLocateFile (line 3432) | int unzLocateFile (unzFile file, const TCHAR *szFileName, int iCaseSensi...
function unzlocal_CheckCurrentFileCoherencyHeader (line 3495) | int unzlocal_CheckCurrentFileCoherencyHeader (unz_s *s,uInt *piSizeVar,
function unzOpenCurrentFile (line 3579) | int unzOpenCurrentFile (unzFile file)
function unzReadCurrentFile (line 3674) | int unzReadCurrentFile (unzFile file, voidp buf, unsigned len)
function z_off_t (line 3753) | z_off_t unztell (unzFile file)
function unzeof (line 3770) | int unzeof (unzFile file)
function unzGetLocalExtrafield (line 3796) | int unzGetLocalExtrafield (unzFile file,voidp buf,unsigned len)
function unzCloseCurrentFile (line 3836) | int unzCloseCurrentFile (unzFile file)
function unzGetGlobalComment (line 3879) | int unzGetGlobalComment (unzFile file, char *szComment, uLong uSizeBuf)
function FILETIME (line 3905) | FILETIME timet2filetime(time_t timer)
function class (line 3924) | class TUnzip
function ZRESULT (line 3939) | ZRESULT TUnzip::Open(void *z,unsigned int len,DWORD flags)
function ZRESULT (line 3960) | ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
function ZRESULT (line 4054) | ZRESULT TUnzip::Find(const TCHAR *name, bool ic, int *index, ZIPENTRY *ze)
function EnsureDirectory (line 4081) | void EnsureDirectory(const TCHAR *rootdir, const TCHAR *dir)
function ZRESULT (line 4108) | ZRESULT TUnzip::Unzip(int index,void *dst,unsigned int len,DWORD flags)
function ZRESULT (line 4236) | ZRESULT TUnzip::Close()
function FormatZipMessageU (line 4244) | unsigned int FormatZipMessageU(ZRESULT code, char *buf,unsigned int len)
FILE: DuiLib/Utils/downloadmgr.h
type interface (line 44) | typedef interface IDownloadManager
type IDownloadManagerVtbl (line 119) | typedef struct IDownloadManagerVtbl
function interface (line 148) | interface IDownloadManager
FILE: DuiLib/Utils/stb_image.c
type stbi__uint16 (line 298) | typedef unsigned short stbi__uint16;
type stbi__int16 (line 299) | typedef signed short stbi__int16;
type stbi__uint32 (line 300) | typedef unsigned int stbi__uint32;
type stbi__int32 (line 301) | typedef signed int stbi__int32;
type stbi__uint16 (line 304) | typedef uint16_t stbi__uint16;
type stbi__int16 (line 305) | typedef int16_t stbi__int16;
type stbi__uint32 (line 306) | typedef uint32_t stbi__uint32;
type stbi__int32 (line 307) | typedef int32_t stbi__int32;
function stbi__cpuid3 (line 382) | static int stbi__cpuid3(void)
function stbi__sse2_available (line 403) | static int stbi__sse2_available()
function stbi__sse2_available (line 411) | static int stbi__sse2_available()
type stbi__context (line 446) | typedef struct
function stbi__start_mem (line 466) | static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int...
function stbi__start_callbacks (line 475) | static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c...
function stbi__stdio_read (line 488) | static int stbi__stdio_read(void *user, char *data, int size)
function stbi__stdio_skip (line 493) | static void stbi__stdio_skip(void *user, int n)
function stbi__stdio_eof (line 498) | static int stbi__stdio_eof(void *user)
function stbi__start_file (line 510) | static void stbi__start_file(stbi__context *s, FILE *f)
function stbi__rewind (line 519) | static void stbi__rewind(stbi__context *s)
function STBIDEF (line 585) | STBIDEF const char *stbi_failure_reason(void)
function stbi__err (line 590) | static int stbi__err(const char *str)
function STBIDEF (line 616) | STBIDEF void stbi_image_free(void *retval_from_stbi_load)
function STBIDEF (line 631) | STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
function stbi__float_postprocess (line 702) | static void stbi__float_postprocess(float *result, int *x, int *y, int *...
function FILE (line 726) | static FILE *stbi__fopen(char const *filename, char const *mode)
function STBIDEF (line 739) | STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *co...
function STBIDEF (line 749) | STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp,...
function STBIDEF (line 763) | STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, i...
function STBIDEF (line 770) | STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk,...
function STBIDEF (line 795) | STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, in...
function STBIDEF (line 802) | STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, ...
function STBIDEF (line 810) | STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *com...
function STBIDEF (line 820) | STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, ...
function STBIDEF (line 834) | STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
function STBIDEF (line 848) | STBIDEF int stbi_is_hdr (char const *filename)
function STBIDEF (line 859) | STBIDEF int stbi_is_hdr_from_file(FILE *f)
function STBIDEF (line 872) | STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clb...
function STBIDEF (line 889) | STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = ga...
function STBIDEF (line 890) | STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = sc...
function STBIDEF (line 893) | STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = ...
function STBIDEF (line 894) | STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = ...
function stbi__refill_buffer (line 909) | static void stbi__refill_buffer(stbi__context *s)
function stbi_inline (line 925) | stbi_inline static stbi_uc stbi__get8(stbi__context *s)
function stbi_inline (line 936) | stbi_inline static int stbi__at_eof(stbi__context *s)
function stbi__skip (line 948) | static void stbi__skip(stbi__context *s, int n)
function stbi__getn (line 965) | static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
function stbi__get16be (line 989) | static int stbi__get16be(stbi__context *s)
function stbi__uint32 (line 995) | static stbi__uint32 stbi__get32be(stbi__context *s)
function stbi__get16le (line 1004) | static int stbi__get16le(stbi__context *s)
function stbi__uint32 (line 1012) | static stbi__uint32 stbi__get32le(stbi__context *s)
function stbi_uc (line 1033) | static stbi_uc stbi__compute_y(int r, int g, int b)
function stbi_uc (line 1103) | static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
type stbi__huffman (line 1155) | typedef struct
type stbi__jpeg (line 1166) | typedef struct
function stbi__build_huffman (line 1217) | static int stbi__build_huffman(stbi__huffman *h, int *count)
function stbi__build_fast_ac (line 1260) | static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
function stbi__grow_buffer_unsafe (line 1285) | static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
function stbi_inline (line 1306) | stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffm...
function stbi_inline (line 1360) | stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
function stbi_inline (line 1376) | stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
function stbi_inline (line 1387) | stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
function stbi__jpeg_decode_block (line 1415) | static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__...
function stbi__jpeg_decode_block_prog_dc (line 1467) | static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64]...
function stbi__jpeg_decode_block_prog_ac (line 1494) | static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64]...
function stbi_inline (line 1614) | stbi_inline static stbi_uc stbi__clamp(int x)
function stbi__idct_block (line 1665) | static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 1728) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 1909) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi_uc (line 2117) | static stbi_uc stbi__get_marker(stbi__jpeg *j)
function stbi__jpeg_reset (line 2134) | static void stbi__jpeg_reset(stbi__jpeg *j)
function stbi__parse_entropy_coded_data (line 2147) | static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
function stbi__jpeg_dequantize (line 2271) | static void stbi__jpeg_dequantize(short *data, stbi_uc *dequant)
function stbi__jpeg_finish (line 2278) | static void stbi__jpeg_finish(stbi__jpeg *z)
function stbi__process_marker (line 2297) | static int stbi__process_marker(stbi__jpeg *z, int m)
function stbi__process_scan_header (line 2361) | static int stbi__process_scan_header(stbi__jpeg *z)
function stbi__process_frame_header (line 2400) | static int stbi__process_frame_header(stbi__jpeg *z, int scan)
function stbi__decode_jpeg_header (line 2491) | static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
function stbi__decode_jpeg_image (line 2514) | static int stbi__decode_jpeg_image(stbi__jpeg *j)
type stbi_uc (line 2553) | typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_u...
function stbi_uc (line 2558) | static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *...
function stbi_uc (line 2567) | static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, s...
function stbi_uc (line 2577) | static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 2607) | static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 2632) | static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_n...
function stbi_uc (line 2748) | static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_nea...
function stbi__YCbCr_to_RGB_row (line 2763) | static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const...
function stbi__YCbCr_to_RGB_row (line 2791) | static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const...
function stbi__YCbCr_to_RGB_simd (line 2818) | static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi...
function stbi__setup_jpeg (line 2953) | static void stbi__setup_jpeg(stbi__jpeg *j)
function stbi__cleanup_jpeg (line 2979) | static void stbi__cleanup_jpeg(stbi__jpeg *j)
type stbi__resample (line 3000) | typedef struct
function stbi_uc (line 3010) | static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, i...
function stbi__jpeg_test (line 3115) | static int stbi__jpeg_test(stbi__context *s)
function stbi__jpeg_info_raw (line 3126) | static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
function stbi__jpeg_info (line 3138) | static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
type stbi__zhuffman (line 3161) | typedef struct
function stbi_inline (line 3171) | stbi_inline static int stbi__bitreverse16(int n)
function stbi_inline (line 3180) | stbi_inline static int stbi__bit_reverse(int v, int bits)
function stbi__zbuild_huffman (line 3188) | static int stbi__zbuild_huffman(stbi__zhuffman *z, stbi_uc *sizelist, in...
type stbi__zbuf (line 3241) | typedef struct
function stbi_inline (line 3255) | stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
function stbi__fill_bits (line 3261) | static void stbi__fill_bits(stbi__zbuf *z)
function stbi__zreceive (line 3270) | int stbi__zreceive(stbi__zbuf *z, int n)
function stbi__zhuffman_decode_slowpath (line 3280) | static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
function stbi_inline (line 3298) | stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffm...
function stbi__zexpand (line 3312) | static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to m...
function stbi__parse_huffman_block (line 3344) | static int stbi__parse_huffman_block(stbi__zbuf *a)
function stbi__compute_huffman_codes (line 3386) | static int stbi__compute_huffman_codes(stbi__zbuf *a)
function stbi__parse_uncomperssed_block (line 3432) | static int stbi__parse_uncomperssed_block(stbi__zbuf *a)
function stbi__parse_zlib_header (line 3461) | static int stbi__parse_zlib_header(stbi__zbuf *a)
function stbi__init_zdefaults (line 3476) | static void stbi__init_zdefaults(void)
function stbi__parse_zlib (line 3487) | static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
function stbi__do_zlib (line 3516) | static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, i...
function STBIDEF (line 3526) | STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int ...
function STBIDEF (line 3542) | STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *...
function STBIDEF (line 3547) | STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *b...
function STBIDEF (line 3563) | STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const ...
function STBIDEF (line 3574) | STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int l...
function STBIDEF (line 3590) | STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, co...
type stbi__pngchunk (line 3613) | typedef struct
function stbi__pngchunk (line 3619) | static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
function stbi__check_png_header (line 3627) | static int stbi__check_png_header(stbi__context *s)
type stbi__png (line 3636) | typedef struct
function stbi__paeth (line 3663) | static int stbi__paeth(int a, int b, int c)
function stbi__create_png_image_raw (line 3677) | static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__...
function stbi__create_png_image (line 3855) | static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stb...
function stbi__compute_transparency (line 3897) | static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int o...
function stbi__expand_png_palette (line 3922) | static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int ...
function STBIDEF (line 3962) | STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpr...
function STBIDEF (line 3967) | STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_conv...
function stbi__de_iphone (line 3972) | static void stbi__de_iphone(stbi__png *z)
function stbi__parse_png_file (line 4016) | static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
function stbi__png_test (line 4203) | static int stbi__png_test(stbi__context *s)
function stbi__png_info_raw (line 4211) | static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
function stbi__png_info (line 4223) | static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__bmp_test_raw (line 4234) | static int stbi__bmp_test_raw(stbi__context *s)
function stbi__bmp_test (line 4249) | static int stbi__bmp_test(stbi__context *s)
function stbi__high_bit (line 4258) | static int stbi__high_bit(unsigned int z)
function stbi__bitcount (line 4270) | static int stbi__bitcount(unsigned int a)
function stbi__shiftsigned (line 4280) | static int stbi__shiftsigned(int v, int shift, int bits)
function stbi_uc (line 4297) | static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *co...
function stbi__tga_info (line 4510) | static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__tga_test (line 4547) | static int stbi__tga_test(stbi__context *s)
function stbi_uc (line 4572) | static stbi_uc *stbi__tga_load(stbi__context *s, int *x, int *y, int *co...
function stbi__psd_test (line 4771) | static int stbi__psd_test(stbi__context *s)
function stbi_uc (line 4778) | static stbi_uc *stbi__psd_load(stbi__context *s, int *x, int *y, int *co...
function stbi__pic_is4 (line 4955) | static int stbi__pic_is4(stbi__context *s,const char *str)
function stbi__pic_test_core (line 4965) | static int stbi__pic_test_core(stbi__context *s)
type stbi__pic_packet (line 4981) | typedef struct
function stbi_uc (line 4986) | static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
function stbi__copyval (line 5000) | static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src)
function stbi_uc (line 5009) | static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int heigh...
function stbi_uc (line 5119) | static stbi_uc *stbi__pic_load(stbi__context *s,int *px,int *py,int *com...
function stbi__pic_test (line 5152) | static int stbi__pic_test(stbi__context *s)
type stbi__gif_lzw (line 5164) | typedef struct
type stbi__gif (line 5171) | typedef struct
function stbi__gif_test_raw (line 5188) | static int stbi__gif_test_raw(stbi__context *s)
function stbi__gif_test (line 5198) | static int stbi__gif_test(stbi__context *s)
function stbi__gif_parse_colortable (line 5205) | static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256...
function stbi__gif_header (line 5216) | static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, i...
function stbi__gif_info_raw (line 5244) | static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
function stbi__out_gif_code (line 5256) | static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
function stbi_uc (line 5290) | static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
function stbi__fill_gif_background (line 5370) | static void stbi__fill_gif_background(stbi__gif *g, int x0, int y0, int ...
function stbi_uc (line 5386) | static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int ...
function stbi_uc (line 5502) | static stbi_uc *stbi__gif_load(stbi__context *s, int *x, int *y, int *co...
function stbi__gif_info (line 5522) | static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__hdr_test_core (line 5532) | static int stbi__hdr_test_core(stbi__context *s)
function stbi__hdr_test (line 5542) | static int stbi__hdr_test(stbi__context* s)
function stbi__hdr_convert (line 5572) | static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
function stbi__hdr_info (line 5710) | static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__bmp_info (line 5751) | static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__psd_info (line 5781) | static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__pic_info (line 5814) | static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__pnm_test (line 5882) | static int stbi__pnm_test(stbi__context *s)
function stbi_uc (line 5894) | static stbi_uc *stbi__pnm_load(stbi__context *s, int *x, int *y, int *co...
function stbi__pnm_isspace (line 5914) | static int stbi__pnm_isspace(char c)
function stbi__pnm_skip_whitespace (line 5919) | static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
function stbi__pnm_isdigit (line 5925) | static int stbi__pnm_isdigit(char c)
function stbi__pnm_getinteger (line 5930) | static int stbi__pnm_getinteger(stbi__context *s, char *c)
function stbi__pnm_info (line 5942) | static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__info_main (line 5977) | static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
function STBIDEF (line 6020) | STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
function STBIDEF (line 6030) | STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
function STBIDEF (line 6042) | STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x...
function STBIDEF (line 6049) | STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *u...
FILE: DuiLib/Utils/stb_image.h
type stbi_uc (line 197) | typedef unsigned char stbi_uc;
type stbi_io_callbacks (line 218) | typedef struct
FILE: Entry.cc
function _tWinMain (line 13) | int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPT...
FILE: HookFlash/EasyHook/easyhook.h
type BOOL (line 34) | typedef int BOOL;
type _LOCAL_HOOK_INFO_ (line 81) | struct _LOCAL_HOOK_INFO_
type HOOK_TRACE_INFO (line 83) | typedef struct _HOOK_TRACE_INFO_
type _MODULE_INFORMATION_ (line 181) | struct _MODULE_INFORMATION_
type MODULE_INFORMATION (line 183) | typedef struct _MODULE_INFORMATION_
type EASYHOOK_INTERFACE_API_v_1 (line 221) | typedef struct _EASYHOOK_INTERFACE_API_v_1_
type EASYHOOK_DEVICE_EXTENSION (line 243) | typedef struct _EASYHOOK_DEVICE_EXTENSION_
function NTSTATUS (line 250) | static NTSTATUS EasyHookQueryInterface(
type TEST_FUNC_HOOKS_OPTIONS (line 352) | typedef struct _TEST_FUNC_HOOKS_OPTIONS
type TEST_FUNC_HOOKS_RESULT (line 358) | typedef struct _TEST_FUNC_HOOKS_RESULT
type REMOTE_ENTRY_INFO (line 380) | typedef struct _REMOTE_ENTRY_INFO_
type _GACUTIL_INFO_ (line 435) | struct _GACUTIL_INFO_
FILE: HookFlash/HookFlash.cpp
function BOOL (line 37) | BOOL WINAPI MYCreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommand...
function BOOL (line 64) | BOOL WINAPI MYCreateProcessA(
function DoHook (line 94) | void DoHook()
function UnHook (line 134) | void UnHook()
FILE: HookFlash/dllmain.cpp
function BOOL (line 5) | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID...
FILE: MiniDumper.cpp
function LONG (line 85) | LONG CMiniDumper::unhandledExceptionHandler( _EXCEPTION_POINTERS *pExcep...
function BOOL (line 147) | BOOL CMiniDumper::enablePrivilege( LPCTSTR pszPriv, HANDLE hToken, TOKEN...
function BOOL (line 169) | BOOL CMiniDumper::restorePrivilege( HANDLE hToken, TOKEN_PRIVILEGES* ptp...
function LONG (line 179) | LONG CMiniDumper::writeMiniDump( _EXCEPTION_POINTERS *pExceptionInfo )
FILE: MiniDumper.h
function class (line 8) | class CMiniDumper
FILE: bin/htmlexample/src/js/common.js
function manageControls (line 68) | function manageControls(position,lr){
FILE: bin/htmlexample/src/js/common52.js
function $ (line 1) | function $(id) {return !id ? null : document.getElementById(id);}
function $C (line 1) | function $C(classname, ele, tag) {var returns = [];ele = ele || document...
function _attachEvent (line 1) | function _attachEvent(obj, evt, func, eventobj) {eventobj = !eventobj ? ...
function _detachEvent (line 1) | function _detachEvent(obj, evt, func, eventobj) {eventobj = !eventobj ? ...
function browserVersion (line 1) | function browserVersion(types) {var other = 1;for(i in types) {var v = t...
function getEvent (line 1) | function getEvent() {if(document.all) return window.event;func = getEven...
function isUndefined (line 1) | function isUndefined(variable) {return typeof variable == 'undefined' ? ...
function in_array (line 1) | function in_array(needle, haystack) {if(typeof needle == 'string' || typ...
function trim (line 1) | function trim(str) {return (str + '').replace(/(\s+)$/g, '').replace(/^\...
function strlen (line 1) | function strlen(str) {return (BROWSER.ie && str.indexOf('\n') != -1) ? s...
function mb_strlen (line 1) | function mb_strlen(str) {var len = 0;for(var i = 0; i < str.length; i++)...
function mb_cutstr (line 1) | function mb_cutstr(str, maxlen, dot) {var len = 0;var ret = '';var dot =...
function preg_replace (line 1) | function preg_replace(search, replace, str, regswitch) {var regswitch = ...
function htmlspecialchars (line 1) | function htmlspecialchars(str) {return preg_replace(['&', '<', '>', '"']...
function display (line 1) | function display(id) {var obj = $(id);if(obj.style.visibility) {obj.styl...
function checkall (line 1) | function checkall(form, prefix, checkall) {var checkall = checkall ? che...
function setcookie (line 1) | function setcookie(cookieName, cookieValue, seconds, path, domain, secur...
function getcookie (line 1) | function getcookie(name, nounescape) {name = cookiepre + name;var cookie...
function Ajax (line 1) | function Ajax(recvType, waitId) {var aj = new Object();aj.loading = 'Ժ.....
function getHost (line 1) | function getHost(url) {var host = "null";if(typeof url == "undefined"|| ...
function hostconvert (line 1) | function hostconvert(url) {if(!url.match(/^https?:\/\//)) url = SITEURL ...
function newfunction (line 1) | function newfunction(func) {var args = [];for(var i=1; i<arguments.lengt...
function evalscript (line 1) | function evalscript(s) {if(s.indexOf('<script') == -1) return s;var p = ...
function safescript (line 1) | function safescript(id, call, seconds, times, timeoutcall, endcall, inde...
function $F (line 1) | function $F(func, args, script) {var run = function () {var argc = args....
function appendscript (line 1) | function appendscript(src, text, reload, charset) {var id = hash(src + t...
function hash (line 1) | function hash(string, length) {var length = length ? length : 32;var sta...
function stringxor (line 1) | function stringxor(s1, s2) {var s = '';var hash = 'abcdefghijklmnopqrstu...
function ajaxupdateevents (line 1) | function ajaxupdateevents(obj, tagName) {$F('_ajaxupdateevents', argumen...
function ajaxupdateevent (line 1) | function ajaxupdateevent(o) {$F('_ajaxupdateevent', arguments, 'ajax');}
function ajaxget (line 1) | function ajaxget(url, showid, waitid, loading, display, recall) {$F('_aj...
function ajaxpost (line 1) | function ajaxpost(formid, showid, waitid, showidclass, submitbtn, recall...
function ajaxmenu (line 1) | function ajaxmenu(ctrlObj, timeout, cache, duration, pos, recall, idclas...
function ajaxinnerhtml (line 1) | function ajaxinnerhtml(showid, s) {$F('_ajaxinnerhtml', arguments, 'ajax...
function showPreview (line 1) | function showPreview(val, id) {var showObj = $(id);if(showObj) {showObj....
function showloading (line 1) | function showloading(display, waiting) {var display = display ? display ...
function doane (line 1) | function doane(event, preventDefault, stopPropagation) {var preventDefau...
function loadcss (line 1) | function loadcss(cssname) {if(!CSSLOADED[cssname]) {var csspath = (typeo...
function showMenu (line 1) | function showMenu(v) {var ctrlid = isUndefined(v['ctrlid']) ? v : v['ctr...
function delayShow (line 1) | function delayShow(ctrlObj, call, time) {if(typeof ctrlObj == 'object') ...
function dragMenu (line 1) | function dragMenu(menuObj, e, op) {e = e ? e : window.event;if(op == 1) ...
function setMenuPosition (line 1) | function setMenuPosition(showid, menuid, pos) {var showObj = $(showid);v...
function hideMenu (line 1) | function hideMenu(attr, mtype) {attr = isUndefined(attr) ? '' : attr;mty...
function getCurrentStyle (line 1) | function getCurrentStyle(obj, cssproperty, csspropertyNS) {if(obj.style[...
function fetchOffset (line 1) | function fetchOffset(obj, mode) {var left_offset = 0, top_offset = 0, mo...
function showTip (line 1) | function showTip(ctrlobj) {$F('_showTip', arguments);}
function showPrompt (line 1) | function showPrompt(ctrlid, evt, msg, timeout, classname) {$F('_showProm...
function showCreditPrompt (line 1) | function showCreditPrompt() {$F('_showCreditPrompt', []);}
function showDialog (line 1) | function showDialog(msg, mode, t, func, cover, funccancel, leftmsg, conf...
function showWindow (line 1) | function showWindow(k, url, mode, cache, menuv) {mode = isUndefined(mode...
function showError (line 1) | function showError(msg) {var p = /<script[^\>]*?>([^\x00]*?)<\/script>/i...
function hideWindow (line 1) | function hideWindow(k, all, clear) {all = isUndefined(all) ? 1 : all;cle...
function AC_FL_RunContent (line 1) | function AC_FL_RunContent() {var str = '';var ret = AC_GetArgs(arguments...
function AC_GetArgs (line 1) | function AC_GetArgs(args, classid, mimeType) {var ret = new Object();ret...
function simulateSelect (line 1) | function simulateSelect(selectId, widthvalue) {var selectObj = $(selectI...
function switchTab (line 1) | function switchTab(prefix, current, total, activeclass) {$F('_switchTab'...
function imageRotate (line 1) | function imageRotate(imgid, direct) {$F('_imageRotate', arguments);}
function thumbImg (line 1) | function thumbImg(obj, method) {if(!obj) {return;}obj.onload = null;file...
function zoom (line 1) | function zoom(obj, zimg, nocover, pn, showexif) {$F('_zoom', arguments);}
function showselect (line 1) | function showselect(obj, inpid, t, rettype) {$F('_showselect', arguments);}
function showColorBox (line 1) | function showColorBox(ctrlid, layer, k, bgcolor) {$F('_showColorBox', ar...
function ctrlEnter (line 1) | function ctrlEnter(event, btnId, onlyEnter) {if(isUndefined(onlyEnter)) ...
function parseurl (line 1) | function parseurl(str, mode, parsecode) {if(isUndefined(parsecode)) pars...
function codetag (line 1) | function codetag(text, br) {var br = !br ? 1 : br;DISCUZCODE['num']++;if...
function saveUserdata (line 1) | function saveUserdata(name, data) {try {if(window.localStorage){localSto...
function loadUserdata (line 1) | function loadUserdata(name) {if(window.localStorage){return localStorage...
function initTab (line 1) | function initTab(frameId, type) {$F('_initTab', arguments);}
function openDiy (line 1) | function openDiy(){if(DYNAMICURL) {window.location.href = SITEURL+DYNAMI...
function hasClass (line 1) | function hasClass(elem, className) {return elem.className && (" " + elem...
function runslideshow (line 1) | function runslideshow() {$F('_runslideshow', []);}
function toggle_collapse (line 1) | function toggle_collapse(objname, noimg, complex, lang) {$F('_toggle_col...
function updatestring (line 1) | function updatestring(str1, str2, clear) {str2 = '_' + str2 + '_';return...
function getClipboardData (line 1) | function getClipboardData() {window.document.clipboardswf.SetVariable('s...
function setCopy (line 1) | function setCopy(text, msg) {$F('_setCopy', arguments);}
function copycode (line 1) | function copycode(obj) {$F('_copycode', arguments);}
function showdistrict (line 1) | function showdistrict(container, elems, totallevel, changelevel, contain...
function setDoodle (line 1) | function setDoodle(fid, oid, url, tid, from) {$F('_setDoodle', arguments);}
function initSearchmenu (line 1) | function initSearchmenu(searchform, cloudSearchUrl) {var defaultUrl = 's...
function searchFocus (line 1) | function searchFocus(obj) {if(obj.value == '') {obj.value = '';}if($('cl...
function extstyle (line 1) | function extstyle(css) {$F('_extstyle', arguments);}
function widthauto (line 1) | function widthauto(obj) {$F('_widthauto', arguments);}
function updatesecqaa (line 1) | function updatesecqaa(idhash) {$F('_updatesecqaa', arguments);}
function updateseccode (line 1) | function updateseccode(idhash) {$F('_updateseccode', arguments);}
function checksec (line 1) | function checksec(type, idhash, showmsg, recall) {$F('_checksec', argume...
function createPalette (line 1) | function createPalette(colorid, id, func) {$F('_createPalette', argument...
function showForummenu (line 1) | function showForummenu(fid) {$F('_showForummenu', arguments);}
function showUserApp (line 1) | function showUserApp() {$F('_showUserApp', arguments);}
function cardInit (line 1) | function cardInit() {var cardShow = function (obj) {if(BROWSER.ie && BRO...
function navShow (line 1) | function navShow(id) {var mnobj = $('snav_mn_' + id);if(!mnobj) {return;...
function strLenCalc (line 1) | function strLenCalc(obj, checklen, maxlen) {var v = obj.value, charlen =...
function patchNotice (line 1) | function patchNotice() {if($('patch_notice')) {ajaxget('misc.php?mod=pat...
function pluginNotice (line 1) | function pluginNotice() {if($('plugin_notice')) {ajaxget('misc.php?mod=p...
function ipNotice (line 1) | function ipNotice() {if($('ip_notice')) {ajaxget('misc.php?mod=patch&act...
function noticeTitle (line 1) | function noticeTitle() {NOTICETITLE = {'State':0, 'oldTitle':NOTICECURTI...
function noticeTitleFlash (line 1) | function noticeTitleFlash() {if(NOTICETITLE.flashNumber < 5 || NOTICETIT...
function relatedlinks (line 1) | function relatedlinks(rlinkmsgid) {$F('_relatedlinks', arguments);}
function con_handle_response (line 1) | function con_handle_response(response) {return response;}
function showTopLink (line 1) | function showTopLink() {var ft = $('ft');if(ft){var scrolltop = $('scrol...
function showCreditmenu (line 1) | function showCreditmenu() {$F('_showCreditmenu', []);}
function showUpgradeinfo (line 1) | function showUpgradeinfo() {$F('_showUpgradeinfo', []);}
function addFavorite (line 1) | function addFavorite(url, title) {try {window.external.addFavorite(url, ...
function setHomepage (line 1) | function setHomepage(sURL) {if(BROWSER.ie){document.body.style.behavior ...
function setShortcut (line 1) | function setShortcut() {var scrollTop = Math.max(document.documentElemen...
function smilies_show (line 1) | function smilies_show(id, smcols, seditorkey) {$F('_smilies_show', argum...
function showfocus (line 1) | function showfocus(ftype, autoshow) {var id = parseInt($('focuscur').inn...
function rateStarHover (line 1) | function rateStarHover(target,level) {if(level == 0) {$(target).style.w...
function rateStarSet (line 1) | function rateStarSet(target,level,input) {$(input).value = level;$(targe...
function img_onmouseoverfunc (line 1) | function img_onmouseoverfunc(obj) {if(typeof showsetcover == 'function')...
function toggleBlind (line 1) | function toggleBlind(dom) {if(dom) {if(loadUserdata('is_blindman')) {sav...
function checkBlind (line 1) | function checkBlind() {var dom = $('switchblind');if(dom) {if(loadUserda...
function getElementOffset (line 1) | function getElementOffset(element) {var left = element.offsetLeft, top =...
function mobileplayer (line 1) | function mobileplayer() {var platform = navigator.platform;var ua = navi...
FILE: bin/htmlexample/src/js/fancybox/jquery.fancybox-1.3.4.js
function _cleanup (line 954) | function _cleanup() {
FILE: bin/htmlexample/src/js/fancybox/jquery.fancybox-1.3.4.pack.js
function a (line 39) | function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger...
FILE: bin/htmlexample/src/js/fancybox/jquery.mousewheel-3.0.4.pack.js
function g (line 13) | function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0...
FILE: bin/htmlexample/src/js/tree/tree.js
function preloadIcons (line 16) | function preloadIcons() {
function createTree (line 31) | function createTree(arrName, startNode, openNode) {
function getArrayId (line 48) | function getArrayId(node) {
function setOpenNodes (line 55) | function setOpenNodes(openNode) {
function isNodeOpen (line 65) | function isNodeOpen(node) {
function hasChildNode (line 71) | function hasChildNode(parentNode) {
function lastSibling (line 79) | function lastSibling (node, parentNode) {
function addNode (line 90) | function addNode(parentNode, recursedNodes) {
function oc (line 159) | function oc(node, bottom) {
function array_push (line 178) | function array_push() {
function array_pop (line 186) | function array_pop(){
FILE: clientapp.h
function virtual (line 13) | virtual CefRefPtr<CefRenderProcessHandler> GetRenderProcessHandler() {
function virtual (line 18) | virtual CefRefPtr<CefBrowserProcessHandler> GetBrowserProcessHandler() o...
Condensed preview — 443 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,868K chars).
[
{
"path": ".gitignore",
"chars": 239,
"preview": "# Compiled Object files\n*.slo\n*.lo\n*.o\n*.obj\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Compiled Dynamic libraries\n*.so\n*.dyl"
},
{
"path": "BrowserHandlers.cc",
"chars": 10064,
"preview": "#include \"stdafx.h\"\n#include \"BrowserHandlers.h\"\n#include <wrapper/cef_helpers.h>\n#include <base/cef_bind.h>\n\n\n//TID_UI "
},
{
"path": "BrowserHandlers.h",
"chars": 3235,
"preview": "#pragma once\n#include \"stdafx.h\"\n#include <list>\n\n#include \"include/cef_base.h\"\n#include \"include/cef_browser.h\"\n\n\nclass"
},
{
"path": "CEF/include/base/cef_atomic_ref_count.h",
"chars": 5370,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_atomicops.h",
"chars": 8983,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_basictypes.h",
"chars": 3157,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_bind.h",
"chars": 28922,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_bind_helpers.h",
"chars": 19770,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_build.h",
"chars": 6545,
"preview": "// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/base/cef_callback.h",
"chars": 33352,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_callback_forward.h",
"chars": 2605,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_callback_helpers.h",
"chars": 3817,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_callback_list.h",
"chars": 14147,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2013\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_cancelable_callback.h",
"chars": 10215,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_lock.h",
"chars": 5529,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_logging.h",
"chars": 28649,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_macros.h",
"chars": 8538,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_move.h",
"chars": 10868,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_platform_thread.h",
"chars": 4472,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_ref_counted.h",
"chars": 10317,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_scoped_ptr.h",
"chars": 24807,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_string16.h",
"chars": 8879,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2013\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_template_util.h",
"chars": 7358,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_thread_checker.h",
"chars": 4820,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_thread_collision_warner.h",
"chars": 9676,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_trace_event.h",
"chars": 20937,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_tuple.h",
"chars": 53989,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/cef_weak_ptr.h",
"chars": 13500,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redi"
},
{
"path": "CEF/include/base/internal/cef_atomicops_x86_msvc.h",
"chars": 7920,
"preview": "// Copyright (c) 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_bind_internal.h",
"chars": 111039,
"preview": "// Copyright (c) 2011 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_bind_internal_win.h",
"chars": 12030,
"preview": "// Copyright (c) 2011 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_callback_internal.h",
"chars": 8959,
"preview": "// Copyright (c) 2012 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_lock_impl.h",
"chars": 3118,
"preview": "// Copyright (c) 2011 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h",
"chars": 6602,
"preview": "// Copyright (c) 2011 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/base/internal/cef_thread_checker_impl.h",
"chars": 2881,
"preview": "// Copyright (c) 2011 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or "
},
{
"path": "CEF/include/capi/cef_app_capi.h",
"chars": 8156,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_auth_callback_capi.h",
"chars": 2665,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_base_capi.h",
"chars": 3310,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_browser_capi.h",
"chars": 28612,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_browser_process_handler_capi.h",
"chars": 4176,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_callback_capi.h",
"chars": 2858,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_client_capi.h",
"chars": 6206,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_command_line_capi.h",
"chars": 7569,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_context_menu_handler_capi.h",
"chars": 11036,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_cookie_capi.h",
"chars": 9652,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_dialog_handler_capi.h",
"chars": 4625,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_display_handler_capi.h",
"chars": 4865,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_dom_capi.h",
"chars": 10556,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_download_handler_capi.h",
"chars": 4904,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_download_item_capi.h",
"chars": 5348,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_drag_data_capi.h",
"chars": 7106,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_drag_handler_capi.h",
"chars": 3525,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_find_handler_capi.h",
"chars": 3112,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_focus_handler_capi.h",
"chars": 3527,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_frame_capi.h",
"chars": 7391,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_geolocation_capi.h",
"chars": 2978,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_geolocation_handler_capi.h",
"chars": 3863,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_image_capi.h",
"chars": 7642,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_jsdialog_handler_capi.h",
"chars": 5617,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_keyboard_handler_capi.h",
"chars": 3586,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_life_span_handler_capi.h",
"chars": 10327,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_load_handler_capi.h",
"chars": 4999,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_menu_model_capi.h",
"chars": 13233,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_menu_model_delegate_capi.h",
"chars": 2960,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_navigation_entry_capi.h",
"chars": 4659,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_origin_whitelist_capi.h",
"chars": 4945,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_parser_capi.h",
"chars": 7013,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_path_util_capi.h",
"chars": 2358,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_print_handler_capi.h",
"chars": 5242,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_print_settings_capi.h",
"chars": 6220,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_process_message_capi.h",
"chars": 3503,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_process_util_capi.h",
"chars": 2666,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_render_handler_capi.h",
"chars": 7203,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_render_process_handler_capi.h",
"chars": 7100,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_request_capi.h",
"chars": 10261,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_request_context_capi.h",
"chars": 12362,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_request_context_handler_capi.h",
"chars": 4390,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_request_handler_capi.h",
"chars": 12527,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_resource_bundle_capi.h",
"chars": 4543,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_resource_bundle_handler_capi.h",
"chars": 4215,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_resource_handler_capi.h",
"chars": 5280,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_response_capi.h",
"chars": 4553,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_response_filter_capi.h",
"chars": 4134,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_scheme_capi.h",
"chars": 7969,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_ssl_info_capi.h",
"chars": 7489,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_stream_capi.h",
"chars": 7561,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_string_visitor_capi.h",
"chars": 2495,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_task_capi.h",
"chars": 5678,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_trace_capi.h",
"chars": 4587,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_urlrequest_capi.h",
"chars": 7763,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_v8_capi.h",
"chars": 30573,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_values_capi.h",
"chars": 26245,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_web_plugin_capi.h",
"chars": 5739,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_xml_reader_capi.h",
"chars": 10073,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/cef_zip_reader_capi.h",
"chars": 5112,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_box_layout_capi.h",
"chars": 3485,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_browser_view_capi.h",
"chars": 3365,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_browser_view_delegate_capi.h",
"chars": 5030,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_button_capi.h",
"chars": 3439,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_button_delegate_capi.h",
"chars": 2680,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_display_capi.h",
"chars": 5245,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_fill_layout_capi.h",
"chars": 2492,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_label_button_capi.h",
"chars": 6100,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_layout_capi.h",
"chars": 2996,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_menu_button_capi.h",
"chars": 4008,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_menu_button_delegate_capi.h",
"chars": 2871,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_panel_capi.h",
"chars": 4920,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_panel_delegate_capi.h",
"chars": 2486,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_scroll_view_capi.h",
"chars": 3854,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_textfield_capi.h",
"chars": 9254,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_textfield_delegate_capi.h",
"chars": 3145,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_view_capi.h",
"chars": 13611,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_view_delegate_capi.h",
"chars": 4552,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_window_capi.h",
"chars": 9548,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/capi/views/cef_window_delegate_capi.h",
"chars": 4120,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_app.h",
"chars": 8217,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_auth_callback.h",
"chars": 2532,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_base.h",
"chars": 6558,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_browser.h",
"chars": 27282,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_browser_process_handler.h",
"chars": 3832,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_callback.h",
"chars": 2669,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_client.h",
"chars": 5915,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_command_line.h",
"chars": 6792,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_context_menu_handler.h",
"chars": 9803,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_cookie.h",
"chars": 9495,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_dialog_handler.h",
"chars": 4818,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_display_handler.h",
"chars": 4896,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_dom.h",
"chars": 8438,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_download_handler.h",
"chars": 4507,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_download_item.h",
"chars": 4211,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_drag_data.h",
"chars": 5930,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_drag_handler.h",
"chars": 3410,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_find_handler.h",
"chars": 3064,
"preview": "// Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_focus_handler.h",
"chars": 3361,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_frame.h",
"chars": 6713,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_geolocation.h",
"chars": 2788,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_geolocation_handler.h",
"chars": 3619,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_image.h",
"chars": 7983,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_jsdialog_handler.h",
"chars": 5753,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_keyboard_handler.h",
"chars": 3476,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_life_span_handler.h",
"chars": 10293,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_load_handler.h",
"chars": 5034,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_menu_model.h",
"chars": 12460,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_menu_model_delegate.h",
"chars": 3173,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_navigation_entry.h",
"chars": 3933,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_origin_whitelist.h",
"chars": 5080,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_pack_resources.h",
"chars": 79836,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_pack_strings.h",
"chars": 55832,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_parser.h",
"chars": 6534,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_path_util.h",
"chars": 2288,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_print_handler.h",
"chars": 4867,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_print_settings.h",
"chars": 5500,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_process_message.h",
"chars": 3125,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_process_util.h",
"chars": 2609,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_render_handler.h",
"chars": 7429,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_render_process_handler.h",
"chars": 6931,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_request.h",
"chars": 9302,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_request_context.h",
"chars": 11739,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_request_context_handler.h",
"chars": 4380,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_request_handler.h",
"chars": 13080,
"preview": "// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_resource_bundle.h",
"chars": 4419,
"preview": "// Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_resource_bundle_handler.h",
"chars": 4152,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_resource_handler.h",
"chars": 5021,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_response.h",
"chars": 3973,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_response_filter.h",
"chars": 4174,
"preview": "// Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_sandbox_win.h",
"chars": 3421,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_scheme.h",
"chars": 7736,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_ssl_info.h",
"chars": 6405,
"preview": "// Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_stream.h",
"chars": 6829,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_string_visitor.h",
"chars": 2350,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_task.h",
"chars": 5401,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_trace.h",
"chars": 4635,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. Portons copyright (c) 2012\n// Google Inc. All rights reserved.\n//\n// Redis"
},
{
"path": "CEF/include/cef_urlrequest.h",
"chars": 7701,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_v8.h",
"chars": 28504,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_values.h",
"chars": 23941,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_version.h",
"chars": 3877,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_web_plugin.h",
"chars": 4946,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_xml_reader.h",
"chars": 8390,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/cef_zip_reader.h",
"chars": 4589,
"preview": "// Copyright (c) 2012 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_export.h",
"chars": 2172,
"preview": "// Copyright (c) 2009 The Chromium Embedded Framework Authors. All rights\n// reserved.\n//\n// Redistribution and use in s"
},
{
"path": "CEF/include/internal/cef_logging_internal.h",
"chars": 2530,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_ptr.h",
"chars": 5783,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string.h",
"chars": 4998,
"preview": "// Copyright (c) 2010 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string_list.h",
"chars": 3023,
"preview": "// Copyright (c) 2009 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string_map.h",
"chars": 3300,
"preview": "// Copyright (c) 2009 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string_multimap.h",
"chars": 3820,
"preview": "// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string_types.h",
"chars": 7539,
"preview": "// Copyright (c) 2010 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_string_wrappers.h",
"chars": 22906,
"preview": "// Copyright (c) 2010 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_thread_internal.h",
"chars": 2568,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_time.h",
"chars": 3527,
"preview": "// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_trace_event_internal.h",
"chars": 6460,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_types.h",
"chars": 70640,
"preview": "// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_types_win.h",
"chars": 3789,
"preview": "// Copyright (c) 2009 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_types_wrappers.h",
"chars": 30111,
"preview": "// Copyright (c) 2013 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/internal/cef_win.h",
"chars": 5750,
"preview": "// Copyright (c) 2008 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/views/cef_box_layout.h",
"chars": 3293,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/views/cef_browser_view.h",
"chars": 3303,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/views/cef_browser_view_delegate.h",
"chars": 4699,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/views/cef_button.h",
"chars": 3233,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
},
{
"path": "CEF/include/views/cef_button_delegate.h",
"chars": 2503,
"preview": "// Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved.\n//\n// Redistribution and use in source and binary for"
}
]
// ... and 243 more files (download for full content)
About this extraction
This page contains the full source code of the CodeBees/CEFWebkitBrowser GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 443 files (49.9 MB), approximately 1.2M tokens, and a symbol index with 2202 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.