1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.cef.types;
29 
30 private {
31     import core.stdc.stddef;
32     import derelict.util.system;
33 }
34 
35 // cef_string_*.h
36 alias void* cef_string_list_t;
37 alias void* cef_string_map_t;
38 alias void* cef_string_multimap_t;
39 
40 struct cef_string_wide_t {
41     wchar_t* str;
42     size_t length;
43     extern( C ) @nogc nothrow void function( wchar* ) dtor;
44 }
45 
46 struct cef_string_utf8_t {
47     char* str;
48     size_t length;
49     extern( C ) @nogc nothrow void function( char* ) dtor;
50 }
51 
52 struct cef_string_utf16_t {
53     wchar* str;
54     size_t length;
55     extern( C ) @nogc nothrow void function( wchar* ) dtor;
56 }
57 
58 alias cef_string_userfree_wide_t = cef_string_wide_t*;
59 alias cef_string_userfree_utf8_t = cef_string_utf8_t*;
60 alias cef_string_userfree_utf16_t = cef_string_utf16_t*;
61 
62 version( DerelictCEF_WideStrings ) {
63     enum CEF_STRING_TYPE_WIDE = true;
64     enum CEF_STRING_TYPE_UTF16 = false;
65     enum CEF_STRING_TYPE_UTF8 = false;
66     alias cef_char_t = wchar_t;
67     alias cef_string_t = cef_string_wide_t;
68     alias cef_string_userfree_t = cef_string_userfree_wide_t;
69 } else version( DerelictCEF_UTF8Strings ) {
70     enum CEF_STRING_TYPE_WIDE = false;
71     enum CEF_STRING_TYPE_UTF16 = false;
72     enum CEF_STRING_TYPE_UTF8 = true;
73     alias cef_char_t = char;
74     alias cef_string_t = cef_string_utf8_t;
75     alias cef_string_userfree_t = cef_string_userfree_utf8_t;
76 } else {
77     // CEF builds with UTF16 strings by default.
78     enum CEF_STRING_TYPE_WIDE = false;
79     enum CEF_STRING_TYPE_UTF16 = true;
80     enum CEF_STRING_TYPE_UTF8 = false;
81     alias cef_char_t = wchar;
82     alias cef_string_t = cef_string_utf16_t;
83     alias cef_string_userfree_t = cef_string_userfree_utf16_t;
84 }
85 
86 // cef_time.h
87 struct cef_time_t {
88     int year;
89     int month;
90     int day_of_week;
91     int day_of_month;
92     int hour;
93     int minute;
94     int second;
95     int millisecond;
96 }
97 
98 // cef_types.h
99 alias int64 = long;
100 alias uint64 = ulong;
101 alias int32 = int;
102 alias uint32 = uint;
103 alias cef_color_t = uint32;
104 alias char16 = wchar;
105 
106 alias cef_log_severity_t = int;
107 enum {
108     LOGSEVERITY_DEFAULT,
109     LOGSEVERITY_VERBOSE,
110     LOGSEVERITY_DEBUG,
111     LOGSEVERITY_INFO,
112     LOGSEVERITY_WARNING,
113     LOGSEVERITY_ERROR,
114     LOGSEVERITY_FATAL,
115     LOGSEVERITY_DISABLE = 99
116 }
117 
118 alias cef_state_t = int;
119 enum {
120     STATE_DEFAULT = 0,
121     STATE_ENABLED,
122     STATE_DISABLED,
123 }
124 
125 struct cef_settings_t {
126     size_t size;
127     int no_sandbox;
128     cef_string_t browser_subprocess_path;
129     cef_string_t framework_dir_path;
130     int multi_threaded_message_loop;
131     int external_message_pump;
132     int windowless_rendering_enabled;
133     int command_line_args_disabled;
134     cef_string_t cache_path;
135     cef_string_t user_data_path;
136     int persist_session_cookies;
137     int persist_user_preferences;
138     cef_string_t user_agent;
139     cef_string_t product_version;
140     cef_string_t locale;
141     cef_string_t log_file;
142     cef_log_severity_t log_severity;
143     cef_string_t javascript_flags;
144     cef_string_t resources_dir_path;
145     cef_string_t locales_dir_path;
146     int pack_loading_disabled;
147     int remote_debugging_port;
148     int uncaught_exception_stack_size;
149     int ignore_certificate_errors;
150     int enable_net_security_expiration;
151     cef_color_t background_color;
152     cef_string_t accept_language_list;
153 }
154 
155 struct cef_request_context_settings_t {
156     size_t size;
157     cef_string_t cache_path;
158     int persist_session_cookies;
159     int persist_user_preferences;
160     int ignore_certificate_errors;
161     int enable_net_security_expiration;
162     cef_string_t accept_language_list;
163 }
164 
165 struct cef_browser_settings_t {
166     size_t size;
167     int windowless_frame_rate;
168     cef_string_t standard_font_family;
169     cef_string_t fixed_font_family;
170     cef_string_t serif_font_family;
171     cef_string_t sans_serif_font_family;
172     cef_string_t cursive_font_family;
173     cef_string_t fantasy_font_family;
174     int default_font_size;
175     int default_fixed_font_size;
176     int minimum_font_size;
177     int minimum_logical_font_size;
178     cef_string_t default_encoding;
179     cef_state_t remote_fonts;
180     cef_state_t javascript;
181     cef_state_t javascript_close_windows;
182     cef_state_t javascript_access_clipboard;
183     cef_state_t javascript_dom_paste;
184     cef_state_t plugins;
185     cef_state_t universal_access_from_file_urls;
186     cef_state_t file_access_from_file_urls;
187     cef_state_t web_security;
188     cef_state_t image_loading;
189     cef_state_t image_shrink_standalone_to_fit;
190     cef_state_t text_area_resize;
191     cef_state_t tab_to_links;
192     cef_state_t local_storage;
193     cef_state_t databases;
194     cef_state_t application_cache;
195     cef_state_t webgl;
196     cef_color_t background_color;
197     cef_string_t accept_language_list;
198 }
199 
200 alias cef_return_value_t = int;
201 enum {
202     RV_CANCEL = 0,
203     RV_CONTINUE,
204     RV_CONTINUE_ASYNC,
205 }
206 
207 struct cef_urlparts_t {
208     cef_string_t spec;
209     cef_string_t scheme;
210     cef_string_t username;
211     cef_string_t password;
212     cef_string_t host;
213     cef_string_t port;
214     cef_string_t origin;
215     cef_string_t path;
216     cef_string_t query;
217 }
218 
219 struct cef_cookie_t {
220     cef_string_t name;
221     cef_string_t value;
222     cef_string_t domain;
223     cef_string_t path;
224     int secure;
225     int httponly;
226     cef_time_t creation;
227     cef_time_t last_access;
228     int has_expires;
229     cef_time_t expires;
230 }
231 
232 alias cef_termination_status_t = int;
233 enum {
234     TS_ABNORMAL_TERMINATION,
235     TS_PROCESS_WAS_KILLED,
236     TS_PROCESS_CRASHED,
237     TS_PROCESS_OOM,
238 }
239 
240 alias cef_path_key_t = int;
241 enum {
242     PK_DIR_CURRENT,
243     PK_DIR_EXE,
244     PK_DIR_MODULE,
245     PK_DIR_TEMP,
246     PK_FILE_EXE,
247     PK_FILE_MODULE,
248     PK_LOCAL_APP_DATA,
249     PK_USER_DATA,
250     PK_DIR_RESOURCES,
251 }
252 
253 alias cef_storage_type_t = int;
254 enum {
255     ST_LOCALSTORAGE = 0,
256     ST_SESSIONSTORAGE,
257 }
258 
259 alias cef_errorcode_t = int;
260 enum {
261     ERR_NONE = 0,
262     ERR_FAILED = -2,
263     ERR_ABORTED = -3,
264     ERR_INVALID_ARGUMENT = -4,
265     ERR_INVALID_HANDLE = -5,
266     ERR_FILE_NOT_FOUND = -6,
267     ERR_TIMED_OUT = -7,
268     ERR_FILE_TOO_BIG = -8,
269     ERR_UNEXPECTED = -9,
270     ERR_ACCESS_DENIED = -10,
271     ERR_NOT_IMPLEMENTED = -11,
272     ERR_CONNECTION_CLOSED = -100,
273     ERR_CONNECTION_RESET = -101,
274     ERR_CONNECTION_REFUSED = -102,
275     ERR_CONNECTION_ABORTED = -103,
276     ERR_CONNECTION_FAILED = -104,
277     ERR_NAME_NOT_RESOLVED = -105,
278     ERR_INTERNET_DISCONNECTED = -106,
279     ERR_SSL_PROTOCOL_ERROR = -107,
280     ERR_ADDRESS_INVALID = -108,
281     ERR_ADDRESS_UNREACHABLE = -109,
282     ERR_SSL_CLIENT_AUTH_CERT_NEEDED = -110,
283     ERR_TUNNEL_CONNECTION_FAILED = -111,
284     ERR_NO_SSL_VERSIONS_ENABLED = -112,
285     ERR_SSL_VERSION_OR_CIPHER_MISMATCH = -113,
286     ERR_SSL_RENEGOTIATION_REQUESTED = -114,
287     ERR_CERT_COMMON_NAME_INVALID = -200,
288     ERR_CERT_DATE_INVALID = -201,
289     ERR_CERT_AUTHORITY_INVALID = -202,
290     ERR_CERT_CONTAINS_ERRORS = -203,
291     ERR_CERT_NO_REVOCATION_MECHANISM = -204,
292     ERR_CERT_UNABLE_TO_CHECK_REVOCATION = -205,
293     ERR_CERT_REVOKED = -206,
294     ERR_CERT_INVALID = -207,
295     ERR_CERT_END = -208,
296     ERR_INVALID_URL = -300,
297     ERR_DISALLOWED_URL_SCHEME = -301,
298     ERR_UNKNOWN_URL_SCHEME = -302,
299     ERR_TOO_MANY_REDIRECTS = -310,
300     ERR_UNSAFE_REDIRECT = -311,
301     ERR_UNSAFE_PORT = -312,
302     ERR_INVALID_RESPONSE = -320,
303     ERR_INVALID_CHUNKED_ENCODING = -321,
304     ERR_METHOD_NOT_SUPPORTED = -322,
305     ERR_UNEXPECTED_PROXY_AUTH = -323,
306     ERR_EMPTY_RESPONSE = -324,
307     ERR_RESPONSE_HEADERS_TOO_BIG = -325,
308     ERR_CACHE_MISS = -400,
309     ERR_INSECURE_RESPONSE = -501,
310 }
311 
312 alias cef_cert_status_t = int;
313 enum {
314     CERT_STATUS_NONE = 0,
315     CERT_STATUS_COMMON_NAME_INVALID = 1 << 0,
316     CERT_STATUS_DATE_INVALID = 1 << 1,
317     CERT_STATUS_AUTHORITY_INVALID = 1 << 2,
318     CERT_STATUS_NO_REVOCATION_MECHANISM = 1 << 4,
319     CERT_STATUS_UNABLE_TO_CHECK_REVOCATION = 1 << 5,
320     CERT_STATUS_REVOKED = 1 << 6,
321     CERT_STATUS_INVALID = 1 << 7,
322     CERT_STATUS_WEAK_SIGNATURE_ALGORITHM = 1 << 8,
323     CERT_STATUS_NON_UNIQUE_NAME = 1 << 10,
324     CERT_STATUS_WEAK_KEY = 1 << 11,
325     CERT_STATUS_PINNED_KEY_MISSING = 1 << 13,
326     CERT_STATUS_NAME_CONSTRAINT_VIOLATION = 1 << 14,
327     CERT_STATUS_VALIDITY_TOO_LONG = 1 << 15,
328     CERT_STATUS_IS_EV = 1 << 16,
329     CERT_STATUS_REV_CHECKING_ENABLED = 1 << 17,
330     CERT_STATUS_SHA1_SIGNATURE_PRESENT = 1 << 19,
331     CERT_STATUS_CT_COMPLIANCE_FAILED = 1 << 20,
332 }
333 
334 alias cef_window_open_disposition_t = int;
335 enum {
336     WOD_UNKNOWN,
337     WOD_CURRENT_TAB,
338     WOD_SINGLETON_TAB,
339     WOD_NEW_FOREGROUND_TAB,
340     WOD_NEW_BACKGROUND_TAB,
341     WOD_NEW_POPUP,
342     WOD_NEW_WINDOW,
343     WOD_SAVE_TO_DISK,
344     WOD_OFF_THE_RECORD,
345     WOD_IGNORE_ACTION
346 }
347 
348 
349 alias cef_drag_operations_mask_t = int;
350 enum {
351     DRAG_OPERATION_NONE = 0,
352     DRAG_OPERATION_COPY = 1,
353     DRAG_OPERATION_LINK = 2,
354     DRAG_OPERATION_GENERIC = 4,
355     DRAG_OPERATION_PRIVATE = 8,
356     DRAG_OPERATION_MOVE = 16,
357     DRAG_OPERATION_DELETE = 32,
358     DRAG_OPERATION_EVERY = uint.max,
359 }
360 
361 alias cef_v8_accesscontrol_t = int;
362 enum {
363     V8_ACCESS_CONTROL_DEFAULT = 0,
364     V8_ACCESS_CONTROL_ALL_CAN_READ = 1,
365     V8_ACCESS_CONTROL_ALL_CAN_WRITE = 1<<1,
366     V8_ACCESS_CONTROL_PROHIBITS_OVERWRITING = 1<<2
367 }
368 
369 alias cef_v8_propertyattribute_t = int;
370 enum {
371     V8_PROPERTY_ATTRIBUTE_NONE       = 0,
372     V8_PROPERTY_ATTRIBUTE_READONLY   = 1<<0,
373     V8_PROPERTY_ATTRIBUTE_DONTENUM   = 1<<1,
374     V8_PROPERTY_ATTRIBUTE_DONTDELETE = 1<<2
375 }
376 
377 alias cef_postdataelement_type_t = int;
378 enum {
379     PDE_TYPE_EMPTY = 0,
380     PDE_TYPE_BYTES,
381     PDE_TYPE_FILE,
382 }
383 
384 alias cef_resource_type_t = int;
385 enum {
386     RT_MAIN_FRAME = 0,
387     RT_SUB_FRAME,
388     RT_STYLESHEET,
389     RT_SCRIPT,
390     RT_IMAGE,
391     RT_FONT_RESOURCE,
392     RT_SUB_RESOURCE,
393     RT_OBJECT,
394     RT_MEDIA,
395     RT_WORKER,
396     RT_SHARED_WORKER,
397     RT_PREFETCH,
398     RT_FAVICON,
399     RT_XHR,
400     RT_PING,
401     RT_SERVICE_WORKER,
402     RT_CSP_REPORT,
403     RT_PLUGIN_RESOURCE,
404 }
405 
406 alias cef_transition_type_t = int;
407 enum {
408     TT_LINK = 0,
409     TT_EXPLICIT = 1,
410     TT_AUTO_SUBFRAME = 3,
411     TT_MANUAL_SUBFRAME = 4,
412     TT_FORM_SUBMIT = 7,
413     TT_RELOAD = 8,
414     TT_SOURCE_MASK = 0xFF,
415     TT_BLOCKED_FLAG = 0x00800000,
416     TT_FORWARD_BACK_FLAG = 0x01000000,
417     TT_CHAIN_START_FLAG = 0x10000000,
418     TT_CHAIN_END_FLAG = 0x20000000,
419     TT_CLIENT_REDIRECT_FLAG = 0x40000000,
420     TT_SERVER_REDIRECT_FLAG = 0x80000000,
421     TT_IS_REDIRECT_MASK = 0xC0000000,
422     TT_QUALIFIER_MASK = 0xFFFFFF00,
423 }
424 
425 alias cef_urlrequest_flags_t = int;
426 enum {
427     UR_FLAG_NONE = 0,
428     UR_FLAG_SKIP_CACHE = 1 << 0,
429     UR_FLAG_ONLY_FROM_CACHE = 1 << 1,
430     UR_FLAG_ALLOW_STORED_CREDENTIALS = 1 << 2,
431     UR_FLAG_REPORT_UPLOAD_PROGRESS = 1 << 3,
432     UR_FLAG_NO_DOWNLOAD_DATA = 1 << 4,
433     UR_FLAG_NO_RETRY_ON_5XX = 1 << 5,
434     UR_FLAG_STOP_ON_REDIRECT = 1 << 6,
435 }
436 
437 alias cef_urlrequest_status_t = int;
438 enum {
439     UR_UNKNOWN = 0,
440     UR_SUCCESS,
441     UR_IO_PENDING,
442     UR_CANCELED,
443     UR_FAILED,
444 }
445 
446 struct cef_point_t {
447     int x;
448     int y;
449 }
450 
451 struct cef_rect_t {
452     int x;
453     int y;
454     int width;
455     int height;
456 }
457 
458 struct cef_size_t {
459     int width;
460     int height;
461 }
462 
463 struct cef_range_t {
464     int from;
465     int to;
466 }
467 
468 struct cef_insets_t {
469   int top;
470   int left;
471   int bottom;
472   int right;
473 }
474 
475 struct cef_draggable_region_t {
476     cef_rect_t bounds;
477     int draggable;
478 }
479 
480 alias cef_process_id_t = int;
481 enum {
482     PID_BROWSER,
483     PID_RENDERER,
484 }
485 
486 alias cef_thread_id_t = int;
487 enum {
488     TID_UI,
489     TID_DB,
490     TID_FILE,
491     TID_FILE_USER_BLOCKING,
492     TID_PROCESS_LAUNCHER,
493     TID_CACHE,
494     TID_IO,
495     TID_RENDERER,
496 }
497 
498 alias cef_thread_priority_t = int;
499 enum {
500     TP_BACKGROUND,
501     TP_NORMAL,
502     TP_DISPLAY,
503     TP_REALTIME_AUDIO,
504 }
505 
506 alias cef_message_loop_type_t = int;
507 enum {
508     ML_TYPE_DEFAULT,
509     ML_TYPE_UI,
510     ML_TYPE_IO,
511 }
512 
513 alias cef_com_init_mode_t = int;
514 enum {
515     COM_INIT_MODE_NONE,
516     COM_INIT_MODE_STA,
517     COM_INIT_MODE_MTA,
518 }
519 
520 alias cef_value_type_t = int;
521 enum {
522     VTYPE_INVALID = 0,
523     VTYPE_NULL,
524     VTYPE_BOOL,
525     VTYPE_INT,
526     VTYPE_DOUBLE,
527     VTYPE_STRING,
528     VTYPE_BINARY,
529     VTYPE_DICTIONARY,
530     VTYPE_LIST,
531 }
532 
533 alias cef_jsdialog_type_t = int;
534 enum {
535     JSDIALOGTYPE_ALERT = 0,
536     JSDIALOGTYPE_CONFIRM,
537     JSDIALOGTYPE_PROMPT,
538 }
539 
540 struct cef_screen_info_t {
541     float device_scale_factor;
542     int depth;
543     int depth_per_component;
544     int is_monochrome;
545     cef_rect_t rect;
546     cef_rect_t available_rect;
547 }
548 
549 alias cef_menu_id_t = int;
550 enum {
551     MENU_ID_BACK = 100,
552     MENU_ID_FORWARD = 101,
553     MENU_ID_RELOAD = 102,
554     MENU_ID_RELOAD_NOCACHE = 103,
555     MENU_ID_STOPLOAD = 104,
556     MENU_ID_UNDO = 110,
557     MENU_ID_REDO = 111,
558     MENU_ID_CUT = 112,
559     MENU_ID_COPY = 113,
560     MENU_ID_PASTE = 114,
561     MENU_ID_DELETE = 115,
562     MENU_ID_SELECT_ALL = 116,
563     MENU_ID_FIND = 130,
564     MENU_ID_PRINT = 131,
565     MENU_ID_VIEW_SOURCE = 132,
566     MENU_ID_SPELLCHECK_SUGGESTION_0 = 200,
567     MENU_ID_SPELLCHECK_SUGGESTION_1 = 201,
568     MENU_ID_SPELLCHECK_SUGGESTION_2 = 202,
569     MENU_ID_SPELLCHECK_SUGGESTION_3 = 203,
570     MENU_ID_SPELLCHECK_SUGGESTION_4 = 204,
571     MENU_ID_SPELLCHECK_SUGGESTION_LAST = 204,
572     MENU_ID_NO_SPELLING_SUGGESTIONS = 205,
573     MENU_ID_ADD_TO_DICTIONARY = 206,
574     MENU_ID_CUSTOM_FIRST = 220,
575     MENU_ID_CUSTOM_LAST = 250,
576     MENU_ID_USER_FIRST = 26500,
577     MENU_ID_USER_LAST = 28500,
578 }
579 
580 alias cef_mouse_button_type_t = int;
581 enum {
582     MBT_LEFT = 0,
583     MBT_MIDDLE,
584     MBT_RIGHT,
585 }
586 
587 struct cef_mouse_event_t {
588     int x;
589     int y;
590     uint32 modifiers;
591 }
592 
593 alias cef_paint_element_type_t = int;
594 enum {
595     PET_VIEW = 0,
596     PET_POPUP,
597 }
598 
599 alias cef_event_flags_t = int;
600 enum {
601     EVENTFLAG_NONE = 0,
602     EVENTFLAG_CAPS_LOCK_ON = 1<<0,
603     EVENTFLAG_SHIFT_DOWN = 1<<1,
604     EVENTFLAG_CONTROL_DOWN = 1<<2,
605     EVENTFLAG_ALT_DOWN = 1<<3,
606     EVENTFLAG_LEFT_MOUSE_BUTTON = 1<<4,
607     EVENTFLAG_MIDDLE_MOUSE_BUTTON = 1<<5,
608     EVENTFLAG_RIGHT_MOUSE_BUTTON = 1<<6,
609     EVENTFLAG_COMMAND_DOWN = 1<<7,
610     EVENTFLAG_NUM_LOCK_ON = 1<<8,
611     EVENTFLAG_IS_KEY_PAD = 1<<9,
612     EVENTFLAG_IS_LEFT = 1<<10,
613     EVENTFLAG_IS_RIGHT = 1<<11,
614 }
615 
616 alias cef_menu_item_type_t = int;
617 enum {
618     MENUITEMTYPE_NONE,
619     MENUITEMTYPE_COMMAND,
620     MENUITEMTYPE_CHECK,
621     MENUITEMTYPE_RADIO,
622     MENUITEMTYPE_SEPARATOR,
623     MENUITEMTYPE_SUBMENU,
624 }
625 
626 alias cef_context_menu_type_flags_t = int;
627 enum {
628     CM_TYPEFLAG_NONE = 0,
629     CM_TYPEFLAG_PAGE = 1<<0,
630     CM_TYPEFLAG_FRAME = 1<<1,
631     CM_TYPEFLAG_LINK = 1<<2,
632     CM_TYPEFLAG_MEDIA = 1<<3,
633     CM_TYPEFLAG_SELECTION = 1<<4,
634     CM_TYPEFLAG_EDITABLE = 1<<5,
635 }
636 
637 alias cef_context_menu_media_type_t = int;
638 enum {
639     CM_MEDIATYPE_NONE,
640     CM_MEDIATYPE_IMAGE,
641     CM_MEDIATYPE_VIDEO,
642     CM_MEDIATYPE_AUDIO,
643     CM_MEDIATYPE_FILE,
644     CM_MEDIATYPE_PLUGIN,
645 }
646 
647 alias cef_context_menu_media_state_flags_t = int;
648 enum {
649     CM_MEDIAFLAG_NONE = 0,
650     CM_MEDIAFLAG_ERROR = 1<<0,
651     CM_MEDIAFLAG_PAUSED = 1<<1,
652     CM_MEDIAFLAG_MUTED = 1<<2,
653     CM_MEDIAFLAG_LOOP = 1<<3,
654     CM_MEDIAFLAG_CAN_SAVE = 1<<4,
655     CM_MEDIAFLAG_HAS_AUDIO = 1<<5,
656     CM_MEDIAFLAG_HAS_VIDEO = 1<<6,
657     CM_MEDIAFLAG_CONTROL_ROOT_ELEMENT = 1<<7,
658     CM_MEDIAFLAG_CAN_PRINT = 1<<8,
659     CM_MEDIAFLAG_CAN_ROTATE = 1<<9,
660 }
661 
662 alias cef_context_menu_edit_state_flags_t = int;
663 enum {
664     CM_EDITFLAG_NONE = 0,
665     CM_EDITFLAG_CAN_UNDO = 1<<0,
666     CM_EDITFLAG_CAN_REDO = 1<<1,
667     CM_EDITFLAG_CAN_CUT = 1<<2,
668     CM_EDITFLAG_CAN_COPY = 1<<3,
669     CM_EDITFLAG_CAN_PASTE = 1<<4,
670     CM_EDITFLAG_CAN_DELETE = 1<<5,
671     CM_EDITFLAG_CAN_SELECT_ALL = 1<<6,
672     CM_EDITFLAG_CAN_TRANSLATE = 1<<7,
673 }
674 
675 alias cef_key_event_type_t = int;
676 enum {
677     KEYEVENT_RAWKEYDOWN = 0,
678     KEYEVENT_KEYDOWN,
679     KEYEVENT_KEYUP,
680     KEYEVENT_CHAR
681 }
682 
683 struct cef_key_event_t {
684     cef_key_event_type_t type;
685     uint32 modifiers;
686     int windows_key_code;
687     int native_key_code;
688     int is_system_key;
689     char16 character;
690     char16 unmodified_character;
691     int focus_on_editable_field;
692 }
693 
694 alias cef_focus_source_t = int;
695 enum {
696     FOCUS_SOURCE_NAVIGATION = 0,
697     FOCUS_SOURCE_SYSTEM,
698 }
699 
700 alias cef_navigation_type_t = int;
701 enum {
702     NAVIGATION_LINK_CLICKED = 0,
703     NAVIGATION_FORM_SUBMITTED,
704     NAVIGATION_BACK_FORWARD,
705     NAVIGATION_RELOAD,
706     NAVIGATION_FORM_RESUBMITTED,
707     NAVIGATION_OTHER,
708 }
709 
710 alias cef_xml_encoding_type_t = int;
711 enum {
712     XML_ENCODING_NONE = 0,
713     XML_ENCODING_UTF8,
714     XML_ENCODING_UTF16LE,
715     XML_ENCODING_UTF16BE,
716     XML_ENCODING_ASCII,
717 }
718 
719 alias cef_xml_node_type_t = int;
720 enum {
721     XML_NODE_UNSUPPORTED = 0,
722     XML_NODE_PROCESSING_INSTRUCTION,
723     XML_NODE_DOCUMENT_TYPE,
724     XML_NODE_ELEMENT_START,
725     XML_NODE_ELEMENT_END,
726     XML_NODE_ATTRIBUTE,
727     XML_NODE_TEXT,
728     XML_NODE_CDATA,
729     XML_NODE_ENTITY_REFERENCE,
730     XML_NODE_WHITESPACE,
731     XML_NODE_COMMENT,
732 }
733 
734 struct cef_popup_features_t {
735     int x;
736     int xSet;
737     int y;
738     int ySet;
739     int width;
740     int widthSet;
741     int height;
742     int heightSet;
743     int menuBarVisible;
744     int statusBarVisible;
745     int toolBarVisible;
746     int scrollbarsVisible;
747 }
748 
749 alias cef_dom_document_type_t = int;
750 enum {
751     DOM_DOCUMENT_TYPE_UNKNOWN = 0,
752     DOM_DOCUMENT_TYPE_HTML,
753     DOM_DOCUMENT_TYPE_XHTML,
754     DOM_DOCUMENT_TYPE_PLUGIN,
755 }
756 
757 alias cef_dom_event_category_t = int;
758 enum {
759     DOM_EVENT_CATEGORY_UNKNOWN = 0x0,
760     DOM_EVENT_CATEGORY_UI = 0x1,
761     DOM_EVENT_CATEGORY_MOUSE = 0x2,
762     DOM_EVENT_CATEGORY_MUTATION = 0x4,
763     DOM_EVENT_CATEGORY_KEYBOARD = 0x8,
764     DOM_EVENT_CATEGORY_TEXT = 0x10,
765     DOM_EVENT_CATEGORY_COMPOSITION = 0x20,
766     DOM_EVENT_CATEGORY_DRAG = 0x40,
767     DOM_EVENT_CATEGORY_CLIPBOARD = 0x80,
768     DOM_EVENT_CATEGORY_MESSAGE = 0x100,
769     DOM_EVENT_CATEGORY_WHEEL = 0x200,
770     DOM_EVENT_CATEGORY_BEFORE_TEXT_INSERTED = 0x400,
771     DOM_EVENT_CATEGORY_OVERFLOW = 0x800,
772     DOM_EVENT_CATEGORY_PAGE_TRANSITION = 0x1000,
773     DOM_EVENT_CATEGORY_POPSTATE = 0x2000,
774     DOM_EVENT_CATEGORY_PROGRESS = 0x4000,
775     DOM_EVENT_CATEGORY_XMLHTTPREQUEST_PROGRESS = 0x8000,
776 }
777 
778 alias cef_dom_event_phase_t = int;
779 enum {
780     DOM_EVENT_PHASE_UNKNOWN = 0,
781     DOM_EVENT_PHASE_CAPTURING,
782     DOM_EVENT_PHASE_AT_TARGET,
783     DOM_EVENT_PHASE_BUBBLING,
784 }
785 
786 alias cef_dom_node_type_t = int;
787 enum {
788     DOM_NODE_TYPE_UNSUPPORTED = 0,
789     DOM_NODE_TYPE_ELEMENT,
790     DOM_NODE_TYPE_ATTRIBUTE,
791     DOM_NODE_TYPE_TEXT,
792     DOM_NODE_TYPE_CDATA_SECTION,
793     DOM_NODE_TYPE_PROCESSING_INSTRUCTIONS,
794     DOM_NODE_TYPE_COMMENT,
795     DOM_NODE_TYPE_DOCUMENT,
796     DOM_NODE_TYPE_DOCUMENT_TYPE,
797     DOM_NODE_TYPE_DOCUMENT_FRAGMENT
798 }
799 
800 alias cef_file_dialog_mode_t = int;
801 enum {
802     FILE_DIALOG_OPEN,
803     FILE_DIALOG_OPEN_MULTIPLE,
804     FILE_DIALOG_OPEN_FOLDER,
805     FILE_DIALOG_SAVE,
806     FILE_DIALOG_TYPE_MASK = 0xFF,
807     FILE_DIALOG_OVERWRITEPROMPT_FLAG = 0x01000000,
808     FILE_DIALOG_HIDEREADONLY_FLAG = 0x02000000,
809 }
810 
811 alias cef_color_model_t = int;
812 enum {
813     COLOR_MODEL_UNKNOWN,
814     COLOR_MODEL_GRAY,
815     COLOR_MODEL_COLOR,
816     COLOR_MODEL_CMYK,
817     COLOR_MODEL_CMY,
818     COLOR_MODEL_KCMY,
819     COLOR_MODEL_CMY_K,  // CMY_K represents CMY+K.
820     COLOR_MODEL_BLACK,
821     COLOR_MODEL_GRAYSCALE,
822     COLOR_MODEL_RGB,
823     COLOR_MODEL_RGB16,
824     COLOR_MODEL_RGBA,
825     COLOR_MODEL_COLORMODE_COLOR,              // Used in samsung printer ppds.
826     COLOR_MODEL_COLORMODE_MONOCHROME,         // Used in samsung printer ppds.
827     COLOR_MODEL_HP_COLOR_COLOR,               // Used in HP color printer ppds.
828     COLOR_MODEL_HP_COLOR_BLACK,               // Used in HP color printer ppds.
829     COLOR_MODEL_PRINTOUTMODE_NORMAL,          // Used in foomatic ppds.
830     COLOR_MODEL_PRINTOUTMODE_NORMAL_GRAY,     // Used in foomatic ppds.
831     COLOR_MODEL_PROCESSCOLORMODEL_CMYK,       // Used in canon printer ppds.
832     COLOR_MODEL_PROCESSCOLORMODEL_GREYSCALE,  // Used in canon printer ppds.
833     COLOR_MODEL_PROCESSCOLORMODEL_RGB,        // Used in canon printer ppds
834 }
835 
836 alias cef_duplex_mode_t = int;
837 enum {
838     DUPLEX_MODE_UNKNOWN = -1,
839     DUPLEX_MODE_SIMPLEX,
840     DUPLEX_MODE_LONG_EDGE,
841     DUPLEX_MODE_SHORT_EDGE,
842 }
843 
844 alias cef_cursor_type_t = int;
845 enum {
846     CT_POINTER = 0,
847     CT_CROSS,
848     CT_HAND,
849     CT_IBEAM,
850     CT_WAIT,
851     CT_HELP,
852     CT_EASTRESIZE,
853     CT_NORTHRESIZE,
854     CT_NORTHEASTRESIZE,
855     CT_NORTHWESTRESIZE,
856     CT_SOUTHRESIZE,
857     CT_SOUTHEASTRESIZE,
858     CT_SOUTHWESTRESIZE,
859     CT_WESTRESIZE,
860     CT_NORTHSOUTHRESIZE,
861     CT_EASTWESTRESIZE,
862     CT_NORTHEASTSOUTHWESTRESIZE,
863     CT_NORTHWESTSOUTHEASTRESIZE,
864     CT_COLUMNRESIZE,
865     CT_ROWRESIZE,
866     CT_MIDDLEPANNING,
867     CT_EASTPANNING,
868     CT_NORTHPANNING,
869     CT_NORTHEASTPANNING,
870     CT_NORTHWESTPANNING,
871     CT_SOUTHPANNING,
872     CT_SOUTHEASTPANNING,
873     CT_SOUTHWESTPANNING,
874     CT_WESTPANNING,
875     CT_MOVE,
876     CT_VERTICALTEXT,
877     CT_CELL,
878     CT_CONTEXTMENU,
879     CT_ALIAS,
880     CT_PROGRESS,
881     CT_NODROP,
882     CT_COPY,
883     CT_NONE,
884     CT_NOTALLOWED,
885     CT_ZOOMIN,
886     CT_ZOOMOUT,
887     CT_GRAB,
888     CT_GRABBING,
889     CT_CUSTOM,
890 }
891 
892 struct cef_cursor_info_t {
893     cef_point_t hotspot;
894     float image_scale_factor;
895     void* buffer;
896     cef_size_t size;
897 }
898 
899 alias cef_uri_unescape_rule_t = int;
900 enum {
901     UU_NONE = 0,
902     UU_NORMAL = 1 << 0,
903     UU_SPACES = 1 << 1,
904     UU_PATH_SEPARATORS = 1 << 2,
905     UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS = 1 << 3,
906     UU_SPOOFING_AND_CONTROL_CHARS = 1 << 4,
907     UU_REPLACE_PLUS_WITH_SPACE = 1 << 5,
908 }
909 
910 alias cef_json_parser_options_t = int;
911 enum {
912     JSON_PARSER_RFC = 0,
913     JSON_PARSER_ALLOW_TRAILING_COMMAS = 1 << 0,
914 }
915 
916 alias cef_json_parser_error_t = int;
917 enum {
918     JSON_NO_ERROR = 0,
919     JSON_INVALID_ESCAPE,
920     JSON_SYNTAX_ERROR,
921     JSON_UNEXPECTED_TOKEN,
922     JSON_TRAILING_COMMA,
923     JSON_TOO_MUCH_NESTING,
924     JSON_UNEXPECTED_DATA_AFTER_ROOT,
925     JSON_UNSUPPORTED_ENCODING,
926     JSON_UNQUOTED_DICTIONARY_KEY,
927     JSON_PARSE_ERROR_COUNT
928 }
929 
930 alias cef_json_writer_options_t = int;
931 enum {
932     JSON_WRITER_DEFAULT = 0,
933     JSON_WRITER_OMIT_BINARY_VALUES = 1 << 0,
934     JSON_WRITER_OMIT_DOUBLE_TYPE_PRESERVATION = 1 << 1,
935     JSON_WRITER_PRETTY_PRINT = 1 << 2,
936 }
937 
938 alias cef_pdf_print_margin_type_t = int;
939 enum {
940     PDF_PRINT_MARGIN_DEFAULT,
941     PDF_PRINT_MARGIN_NONE,
942     PDF_PRINT_MARGIN_MINIMUM,
943     PDF_PRINT_MARGIN_CUSTOM,
944 }
945 
946 struct cef_pdf_print_settings_t {
947     cef_string_t header_footer_title;
948     cef_string_t header_footer_url;
949     int page_width;
950     int page_height;
951     int scale_factor;
952     double margin_top;
953     double margin_right;
954     double margin_bottom;
955     double margin_left;
956     cef_pdf_print_margin_type_t margin_type;
957     int header_footer_enabled;
958     int selection_only;
959     int landscape;
960     int backgrounds_enabled;
961 }
962 
963 alias cef_scale_factor_t = int;
964 enum {
965     SCALE_FACTOR_NONE = 0,
966     SCALE_FACTOR_100P,
967     SCALE_FACTOR_125P,
968     SCALE_FACTOR_133P,
969     SCALE_FACTOR_140P,
970     SCALE_FACTOR_150P,
971     SCALE_FACTOR_180P,
972     SCALE_FACTOR_200P,
973     SCALE_FACTOR_250P,
974     SCALE_FACTOR_300P,
975 }
976 
977 alias cef_plugin_policy_t = int;
978 enum {
979     PLUGIN_POLICY_ALLOW,
980     PLUGIN_POLICY_DETECT_IMPORTANT,
981     PLUGIN_POLICY_BLOCK,
982     PLUGIN_POLICY_DISABLE,
983 }
984 
985 alias cef_referrer_policy_t = int;
986 enum {
987     REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
988     REFERRER_POLICY_DEFAULT,
989     REFERRER_POLICY_REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN,
990     REFERRER_POLICY_ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN,
991     REFERRER_POLICY_NEVER_CLEAR_REFERRER,
992     REFERRER_POLICY_ORIGIN,
993     REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN,
994     REFERRER_POLICY_ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE,
995     REFERRER_POLICY_NO_REFERRER,
996     REFERRER_POLICY_LAST_VALUE,
997 }
998 
999 alias cef_response_filter_status_t = int;
1000 enum {
1001     RESPONSE_FILTER_NEED_MORE_DATA,
1002     RESPONSE_FILTER_DONE,
1003     RESPONSE_FILTER_ERROR
1004 }
1005 
1006 alias cef_color_type_t = int;
1007 enum {
1008     CEF_COLOR_TYPE_RGBA_8888,
1009     CEF_COLOR_TYPE_BGRA_8888,
1010 }
1011 
1012 alias cef_alpha_type_t = int;
1013 enum {
1014     CEF_ALPHA_TYPE_OPAQUE,
1015     CEF_ALPHA_TYPE_PREMULTIPLIED,
1016     CEF_ALPHA_TYPE_POSTMULTIPLIED,
1017 }
1018 
1019 alias cef_text_style_t = int;
1020 enum {
1021     CEF_TEXT_STYLE_BOLD,
1022     CEF_TEXT_STYLE_ITALIC,
1023     CEF_TEXT_STYLE_STRIKE,
1024     CEF_TEXT_STYLE_DIAGONAL_STRIKE,
1025     CEF_TEXT_STYLE_UNDERLINE,
1026 }
1027 
1028 alias cef_main_axis_alignment_t = int;
1029 enum {
1030     CEF_MAIN_AXIS_ALIGNMENT_START,
1031     CEF_MAIN_AXIS_ALIGNMENT_CENTER,
1032     CEF_MAIN_AXIS_ALIGNMENT_END,
1033 }
1034 
1035 alias cef_cross_axis_alignment_t = int;
1036 enum {
1037     CEF_CROSS_AXIS_ALIGNMENT_STRETCH,
1038     CEF_CROSS_AXIS_ALIGNMENT_START,
1039     CEF_CROSS_AXIS_ALIGNMENT_CENTER,
1040     CEF_CROSS_AXIS_ALIGNMENT_END,
1041 }
1042 
1043 struct cef_box_layout_settings_t {
1044     int horizontal;
1045     int inside_border_horizontal_spacing;
1046     int inside_border_vertical_spacing;
1047     cef_insets_t inside_border_insets;
1048     int between_child_spacing;
1049     cef_main_axis_alignment_t main_axis_alignment;
1050     cef_cross_axis_alignment_t cross_axis_alignment;
1051     int minimum_cross_axis_size;
1052     int default_flex;
1053 }
1054 
1055 alias cef_button_state_t = int;
1056 enum {
1057     CEF_BUTTON_STATE_NORMAL,
1058     CEF_BUTTON_STATE_HOVERED,
1059     CEF_BUTTON_STATE_PRESSED,
1060     CEF_BUTTON_STATE_DISABLED,
1061 }
1062 
1063 alias cef_horizontal_alignment_t = int;
1064 enum {
1065     CEF_HORIZONTAL_ALIGNMENT_LEFT,
1066     CEF_HORIZONTAL_ALIGNMENT_CENTER,
1067     CEF_HORIZONTAL_ALIGNMENT_RIGHT,
1068 }
1069 
1070 alias cef_menu_anchor_position_t = int;
1071 enum {
1072   CEF_MENU_ANCHOR_TOPLEFT,
1073   CEF_MENU_ANCHOR_TOPRIGHT,
1074   CEF_MENU_ANCHOR_BOTTOMCENTER,
1075 }
1076 
1077 alias cef_menu_color_type_t = int;
1078 enum {
1079     CEF_MENU_COLOR_TEXT,
1080     CEF_MENU_COLOR_TEXT_HOVERED,
1081     CEF_MENU_COLOR_TEXT_ACCELERATOR,
1082     CEF_MENU_COLOR_TEXT_ACCELERATOR_HOVERED,
1083     CEF_MENU_COLOR_BACKGROUND,
1084     CEF_MENU_COLOR_BACKGROUND_HOVERED,
1085     CEF_MENU_COLOR_COUNT,
1086 }
1087 
1088 alias cef_ssl_version_t = int;
1089 enum {
1090     SSL_CONNECTION_VERSION_UNKNOWN = 0,
1091     SSL_CONNECTION_VERSION_SSL2 = 1,
1092     SSL_CONNECTION_VERSION_SSL3 = 2,
1093     SSL_CONNECTION_VERSION_TLS1 = 3,
1094     SSL_CONNECTION_VERSION_TLS1_1 = 4,
1095     SSL_CONNECTION_VERSION_TLS1_2 = 5,
1096     SSL_CONNECTION_VERSION_QUIC = 7,
1097 }
1098 
1099 alias cef_ssl_content_status_t = int;
1100 enum {
1101     SSL_CONTENT_NORMAL_CONTENT = 0,
1102     SSL_CONTENT_DISPLAYED_INSECURE_CONTENT = 1 << 0,
1103     SSL_CONTENT_RAN_INSECURE_CONTENT = 1 << 1,
1104 }
1105 
1106 alias cef_cdm_registration_error_t = int;
1107 enum {
1108     CEF_CDM_REGISTRATION_ERROR_NONE,
1109     CEF_CDM_REGISTRATION_ERROR_INCORRECT_CONTENTS,
1110     CEF_CDM_REGISTRATION_ERROR_INCOMPATIBLE,
1111     CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED,
1112 }
1113 
1114 struct cef_composition_underline_t {
1115     cef_range_t range;
1116     cef_color_t color;
1117     cef_color_t background_color;
1118     int thick;
1119 }
1120 
1121 // cef_types_win.h
1122 alias cef_cursor_handle_t = void*;
1123 alias cef_event_handle_t = void*;
1124 alias cef_window_handle_t = void*;
1125 alias cef_text_input_context_t = void*;
1126 
1127 static if( Derelict_OS_Windows ) {
1128     struct cef_main_args_t {
1129         void* instance;
1130     }
1131 
1132     struct cef_window_info_t {
1133         uint ex_style;
1134         cef_string_t window_name;
1135         uint style;
1136         int x;
1137         int y;
1138         int width;
1139         int height;
1140         cef_window_handle_t parent_window;
1141         void* menu;
1142         int window_rendering_disabled;
1143         int transparent_painting;
1144         cef_window_handle_t window;
1145     }
1146 } else static if( Derelict_OS_Linux ) {
1147     struct cef_main_args_t {
1148         int argc;
1149         char** argv;
1150     }
1151 
1152     struct cef_window_info_t {
1153         cef_window_handle_t parent_widget;
1154         int window_rendering_disabled;
1155         int transparent_painting;
1156         cef_window_handle_t widget;
1157     }
1158 } else static if( Derelict_OS_Mac ) {
1159     struct cef_main_args_t {
1160         int argc;
1161         char** argv;
1162     }
1163 
1164     struct cef_window_info_t {
1165         cef_string_t window_name;
1166         int x;
1167         int y;
1168         int width;
1169         int height;
1170         int hidden;
1171         cef_window_handle_t parent_view;
1172         int window_rendering_disabled;
1173         int transparent_painting;
1174         cef_window_handle_t view;
1175     }
1176 } else {
1177     static assert( 0, "Platform-specific types not yet implemented on this platform." );
1178 }
1179 
1180 // cef_accessibility_handler_capi.h
1181 struct cef_accessibility_handler_t {
1182     cef_base_t base;
1183     extern( System ) @nogc nothrow {
1184         void function( cef_accessibility_handler_t* , cef_value_t* ) on_accessibility_tree_change;
1185         void function( cef_accessibility_handler_t*, cef_value_t* ) on_accessibility_location_change;
1186     }
1187 }
1188 
1189 // cef_app_capi.h
1190 struct cef_app_t {
1191     cef_base_t base;
1192     extern( System ) @nogc nothrow {
1193         void function( cef_app_t*,const( cef_string_t )*,cef_command_line_t* ) on_before_command_line_processing;
1194         void function( cef_app_t*,cef_scheme_registrar_t* ) on_register_custom_schemes;
1195         cef_resource_bundle_handler_t* function( cef_app_t* ) get_resource_bundle_handler;
1196         cef_browser_process_handler_t* function( cef_app_t* ) get_browser_process_handler;
1197         cef_render_process_handler_t* function( cef_app_t* ) get_render_process_handler;
1198     }
1199 }
1200 
1201 // cef_auth_callback_capi.h
1202 struct cef_auth_callback_t {
1203     cef_base_t base;
1204     extern( System ) @nogc nothrow {
1205         void function( cef_auth_callback_t*, const( cef_string_t )*, const( cef_string_t )* ) cont;
1206         void function( cef_auth_callback_t* ) cancel;
1207     }
1208 }
1209 
1210 // cef_base_capi.h
1211 struct cef_base_t {
1212     size_t size;
1213     extern( System ) @nogc nothrow {
1214         int function( cef_base_t* ) add_ref;
1215         int function( cef_base_t* ) release;
1216         int function( cef_base_t* ) has_one_ref;
1217         int function( cef_base_t* ) has_at_least_one_ref;
1218     }
1219 }
1220 
1221 struct cef_base_scoped_t {
1222     size_t size;
1223     extern( System ) @nogc nothrow void function( cef_base_scoped_t* ) del;
1224 }
1225 
1226 // cef_browser_capi.h
1227 static if( Derelict_OS_Windows ) {
1228     alias cef_platform_thread_id_t = uint;
1229     alias cef_platform_thread_handle_t = uint;
1230 } else static if( Derelict_OS_Posix ) {
1231     import core.sys.posix.unistd: pid_t;
1232     alias cef_platform_thread_id_t = pid_t;
1233     alias cef_platform_thread_handle_t = pid_t;
1234 } else {
1235     static assert( 0, "Platform-specific types not yet implemented on this platform." );
1236 }
1237 
1238 struct cef_browser_t {
1239     cef_base_t base;
1240     extern( System ) @nogc nothrow {
1241         cef_browser_host_t* function( cef_browser_t* ) get_host;
1242         int function( cef_browser_t* ) can_go_back;
1243         void function( cef_browser_t* ) go_back;
1244         int function( cef_browser_t* ) can_go_forward;
1245         void function( cef_browser_t* ) go_forward;
1246         int function( cef_browser_t* ) is_loading;
1247         void function( cef_browser_t* ) reload;
1248         void function( cef_browser_t* ) reload_ignore_cache;
1249         void function( cef_browser_t* ) stop_load;
1250         int function( cef_browser_t* ) get_identifier;
1251         int function( cef_browser_t*,cef_browser_t* ) is_same;
1252         int function( cef_browser_t* ) is_popup;
1253         int function( cef_browser_t* ) has_document;
1254         cef_frame_t* function( cef_browser_t* ) get_main_frame;
1255         cef_frame_t* function( cef_browser_t* ) get_focused_frame;
1256         cef_frame_t* function( cef_browser_t*,int64 ) get_frame_byident;
1257         cef_frame_t* function( cef_browser_t*,const( cef_string_t )* ) get_frame;
1258         size_t function( cef_browser_t* ) get_frame_count;
1259         void function( cef_browser_t*,size_t*,int64* ) get_frame_identifiers;
1260         void function( cef_browser_t*,cef_string_list_t ) get_frame_names;
1261         int function( cef_browser_t*,cef_process_id_t,cef_process_message_t* ) send_process_message;
1262     }
1263 }
1264 
1265 struct cef_run_file_dialog_callback_t {
1266     cef_base_t base;
1267     extern( System ) @nogc nothrow void function( cef_run_file_dialog_callback_t*,cef_browser_host_t*,cef_string_list_t ) cont;
1268 }
1269 
1270 struct cef_navigation_entry_visitor_t {
1271     cef_base_t base;
1272     extern( System ) @nogc nothrow int function( cef_navigation_entry_visitor_t*, cef_navigation_entry_t*, int, int, int ) visit;
1273 }
1274 
1275 struct cef_pdf_print_callback_t {
1276     cef_base_t base;
1277     extern( System ) @nogc nothrow void function( cef_pdf_print_callback_t*, const( cef_string_t )*, int ) on_pdf_print_finished;
1278 }
1279 
1280 struct cef_download_image_callback_t {
1281     cef_base_t base;
1282     extern( System ) @nogc nothrow void function( cef_download_image_callback_t*, const( cef_string_t )*, int, cef_image_t* ) on_download_image_finished;
1283 }
1284 
1285 struct cef_browser_host_t {
1286     cef_base_t base;
1287     extern( System ) @nogc nothrow {
1288         cef_browser_t* function( cef_browser_host_t* ) get_browser;
1289         void function( cef_browser_host_t*, int ) close_browser;
1290         int function( cef_browser_host_t* ) try_close_browser;
1291         void function( cef_browser_host_t*, int ) set_focus;
1292         cef_window_handle_t function( cef_browser_host_t* ) get_window_handle;
1293         cef_window_handle_t function( cef_browser_host_t* ) get_opener_window_handle;
1294         int function( cef_browser_host_t* ) has_view;
1295         cef_client_t* function( cef_browser_host_t* ) get_client;
1296         cef_request_context_t* function( cef_browser_host_t* ) get_request_context;
1297         double function( cef_browser_host_t* ) get_zoom_level;
1298         void function( cef_browser_host_t*, double ) set_zoom_level;
1299         void function( cef_browser_host_t*, cef_file_dialog_mode_t, const( cef_string_t )*, const( cef_string_t )*, cef_string_list_t, int, cef_run_file_dialog_callback_t* ) run_file_dialog;
1300         void function( cef_browser_host_t*, const( cef_string_t )* ) start_download;
1301         void function( cef_browser_host_t*, const( cef_string_t )*, int, uint32, int, cef_download_image_callback_t* ) download_image;
1302         void function( cef_browser_host_t* ) print;
1303         void function( cef_browser_host_t*, const( cef_string_t )*, const( cef_pdf_print_settings_t )* settings, cef_pdf_print_callback_t* ) print_to_pdf;
1304         void function( cef_browser_host_t*, int, const( cef_string_t )*, int, int, int ) find;
1305         void function( cef_browser_host_t*, int ) stop_finding;
1306         void function( cef_browser_host_t*, const( cef_window_info_t )*, cef_client_t*, const( cef_browser_settings_t )*, const( cef_point_t )* ) show_dev_tools;
1307         void function( cef_browser_host_t* ) close_dev_tools;
1308         int function( cef_browser_host_t* ) has_dev_tools;
1309         void function( cef_browser_host_t*, cef_navigation_entry_visitor_t*, int ) get_navigation_entries;
1310         void function( cef_browser_host_t*, int ) set_mouse_cursor_change_disabled;
1311         int function( cef_browser_host_t* ) is_mouse_cursor_change_disabled;
1312         void function( cef_browser_host_t*, const( cef_string_t )* ) replace_misspelling;
1313         void function( cef_browser_host_t*, const( cef_string_t )* ) add_word_to_dictionary;
1314         int function( cef_browser_host_t* ) is_window_rendering_disabled;
1315         void function( cef_browser_host_t* ) was_resized;
1316         void function( cef_browser_host_t*, int ) was_hidden;
1317         void function( cef_browser_host_t* ) notify_screen_info_changed;
1318         void function( cef_browser_host_t*, cef_paint_element_type_t ) invalidate;
1319         void function( cef_browser_host_t* ) send_external_begin_frame;
1320         void function( cef_browser_host_t*, const( cef_key_event_t )* ) send_key_event;
1321         void function( cef_browser_host_t*, const( cef_mouse_event_t )*, cef_mouse_button_type_t, int, int ) send_mouse_click_event;
1322         void function( cef_browser_host_t*, const( cef_mouse_event_t )*, int ) send_mouse_move_event;
1323         void function( cef_browser_host_t* self, const( cef_mouse_event_t )*, int, int ) send_mouse_wheel_event;
1324         void function( cef_browser_host_t*, int ) send_focus_event;
1325         void function( cef_browser_host_t* ) send_capture_lost_event;
1326         void function( cef_browser_host_t* ) notify_move_or_resize_started;
1327         int function( cef_browser_host_t* ) get_windowless_frame_rate;
1328         void function( cef_browser_host_t*, int ) set_windowless_frame_rate;
1329         void function( cef_browser_host_t*, const( cef_string_t )*, size_t, const( cef_composition_underline_t* ), const( cef_range_t )*, const( cef_range_t )* ) ime_set_composition;
1330         void function( cef_browser_host_t*, const( cef_string_t )*, const( cef_range_t )*, int ) ime_commit_text;
1331         void function( cef_browser_host_t*, int ) ime_finish_composing_text;
1332         void function( cef_browser_host_t* ) ime_cancel_composition;
1333         void function( cef_browser_host_t*, cef_drag_data_t*, const( cef_mouse_event_t )*, cef_drag_operations_mask_t ) drag_target_drag_enter;
1334         void function( cef_browser_host_t*, const( cef_mouse_event_t )*, cef_drag_operations_mask_t ) drag_target_drag_over;
1335         void function( cef_browser_host_t* ) drag_target_drag_leave;
1336         void function( cef_browser_host_t*, const( cef_mouse_event_t )* ) drag_target_drop;
1337         void function( cef_browser_host_t*, int, int, cef_drag_operations_mask_t ) drag_source_ended_at;
1338         void function( cef_browser_host_t* ) drag_source_system_drag_ended;
1339         cef_navigation_entry_t* function( cef_browser_host_t* ) get_visible_navigation_entry;
1340         void function( cef_browser_host_t*, cef_state_t ) set_accessibility_state;
1341         void function( cef_browser_host_t*, int, const( cef_size_t )*, const( cef_size_t)* ) set_auto_resize_enabled;
1342         cef_extension_t* function( cef_browser_host_t* ) get_extension;
1343         int function( cef_browser_host_t* ) is_background_host;
1344     }
1345 }
1346 
1347 // cef_browser_process_handler_capi
1348 struct cef_browser_process_handler_t  {
1349     cef_base_t base;
1350     extern( System ) @nogc nothrow {
1351         void function( cef_browser_process_handler_t* ) on_context_initialized;
1352         void function( cef_browser_process_handler_t*,cef_command_line_t* ) on_before_child_process_launch;
1353         void function( cef_browser_process_handler_t*,cef_list_value_t* ) on_render_process_thread_created;
1354         cef_print_handler_t* function( cef_browser_process_handler_t* ) get_print_handler;
1355         void function( cef_browser_process_handler_t*, ulong ) on_schedule_message_pump_work;
1356     }
1357 }
1358 
1359 // cef_callback_capi.h
1360 struct cef_callback_t {
1361     cef_base_t base;
1362     extern( System ) @nogc nothrow {
1363         void function( cef_callback_t* ) cont;
1364         void function( cef_callback_t* ) cancel;
1365     }
1366 }
1367 
1368 struct cef_completion_callback_t {
1369     cef_base_t base;
1370     extern( System ) @nogc nothrow void function( cef_completion_callback_t* ) on_complete;
1371 }
1372 
1373 // cef_client_capi.h
1374 struct cef_client_t {
1375     cef_base_t base;
1376     extern( System ) @nogc nothrow {
1377         cef_context_menu_handler_t* function( cef_client_t* ) get_context_menu_handler;
1378         cef_dialog_handler_t* function( cef_client_t* ) get_dialog_handler;
1379         cef_display_handler_t* function( cef_client_t* ) get_display_handler;
1380         cef_download_handler_t* function( cef_client_t* ) get_download_handler;
1381         cef_drag_handler_t* function( cef_client_t* ) get_drag_handler;
1382         cef_find_handler_t* function( cef_client_t* ) get_find_handler;
1383         cef_focus_handler_t* function( cef_client_t* ) get_focus_handler;
1384         cef_jsdialog_handler_t* function( cef_client_t* ) get_jsdialog_handler;
1385         cef_keyboard_handler_t* function( cef_client_t* ) get_keyboard_handler;
1386         cef_life_span_handler_t* function( cef_client_t* ) get_life_span_handler;
1387         cef_load_handler_t* function( cef_client_t* ) get_load_handler;
1388         cef_render_handler_t* function( cef_client_t* ) get_render_handler;
1389         cef_request_handler_t* function( cef_client_t*) get_request_handler;
1390         int function( cef_client_t*,cef_browser_t*,cef_process_id_t,cef_process_message_t* ) on_process_message_received;
1391     }
1392 }
1393 
1394 // cef_command_line_capi.h
1395 struct cef_command_line_t {
1396     cef_base_t base;
1397     extern( System ) @nogc nothrow {
1398         int function( cef_command_line_t* ) is_valid;
1399         int function( cef_command_line_t* ) is_read_only;
1400         cef_command_line_t* function( cef_command_line_t* ) copy;
1401         void function( cef_command_line_t*,int,const( char* )* ) init_from_argv;
1402         void function( cef_command_line_t*,const( cef_string_t )* ) init_from_string;
1403         void function( cef_command_line_t* ) reset;
1404         void function( cef_command_line_t*,cef_string_list_t ) get_argv;
1405         cef_string_userfree_t function( cef_command_line_t* ) get_command_line_string;
1406         cef_string_userfree_t function( cef_command_line_t* ) get_program;
1407         void function( cef_command_line_t*,const( cef_string_t )* ) set_program;
1408         int function( cef_command_line_t* ) has_switches;
1409         int function( cef_command_line_t*,const( cef_string_t )* ) has_switch;
1410         cef_string_userfree_t function( cef_command_line_t*,const( cef_string_t )* ) get_switch_value;
1411         void function( cef_command_line_t*,cef_string_map_t ) get_switches;
1412         void function( cef_command_line_t*,const( cef_string_t )* ) append_switch;
1413         void function( cef_command_line_t*,const( cef_string_t )*,const( cef_string_t )* ) append_switch_with_value;
1414         int function( cef_command_line_t* ) has_arguments;
1415         void function( cef_command_line_t*,cef_string_list_t ) get_arguments;
1416         void function( cef_command_line_t*,const( cef_string_t )* ) append_argument;
1417         void function( cef_command_line_t*,const( cef_string_t )* ) prepend_wrapper;
1418     }
1419 }
1420 
1421 // cef_context_menu_handler_capi.h
1422 struct cef_run_context_menu_callback_t {
1423     cef_base_t base;
1424     extern( System ) @nogc nothrow {
1425         void function( cef_run_context_menu_callback_t*, int, cef_event_flags_t ) cont;
1426         void function( cef_run_context_menu_callback_t* ) cancel;
1427     }
1428 }
1429 
1430 struct cef_context_menu_handler_t {
1431     cef_base_t base;
1432     extern( System ) @nogc nothrow {
1433         void function( cef_context_menu_handler_t*,cef_browser_t*,cef_frame_t*,cef_context_menu_params_t*,cef_menu_model_t* ) on_before_context_menu;
1434         int function( cef_context_menu_handler_t*, cef_browser_t*, cef_frame_t*, cef_context_menu_params_t*, cef_menu_model_t*, cef_run_context_menu_callback_t* ) run_context_menu;
1435         int function( cef_context_menu_handler_t*,cef_browser_t*,cef_frame_t*,cef_context_menu_params_t*,int,cef_event_flags_t ) on_context_menu_command;
1436         int function( cef_context_menu_handler_t*,cef_browser_t*,cef_frame_t* ) on_context_menu_dismissed;
1437     }
1438 }
1439 
1440 struct cef_context_menu_params_t {
1441     cef_base_t base;
1442     extern( System ) @nogc nothrow {
1443         int function( cef_context_menu_params_t* ) get_xcoord;
1444         int function( cef_context_menu_params_t* ) get_ycoord;
1445         cef_context_menu_type_flags_t function( cef_context_menu_params_t* ) get_type_flags;
1446         cef_string_userfree_t function( cef_context_menu_params_t* ) get_link_url;
1447         cef_string_userfree_t function( cef_context_menu_params_t* ) get_unfiltered_link_url;
1448         cef_string_userfree_t function( cef_context_menu_params_t* ) get_source_url;
1449         int function( cef_context_menu_params_t* ) has_image_contents;
1450         cef_string_userfree_t function( cef_context_menu_params_t* ) get_page_url;
1451         cef_string_userfree_t function( cef_context_menu_params_t* ) get_frame_url;
1452         cef_string_userfree_t function( cef_context_menu_params_t* ) get_frame_charset;
1453         cef_context_menu_media_type_t function( cef_context_menu_params_t* ) get_media_type;
1454         cef_context_menu_media_state_flags_t function( cef_context_menu_params_t* ) get_media_state_flags;
1455         cef_string_userfree_t function( cef_context_menu_params_t* ) get_selection_text;
1456         int function( cef_context_menu_params_t*) is_editable;
1457         int function( cef_context_menu_params_t* ) is_speech_input_enabled;
1458         cef_context_menu_edit_state_flags_t function( cef_context_menu_params_t* ) get_edit_state_flags;
1459     }
1460 }
1461 
1462 // cef_cookie_capi.h
1463 struct cef_cookie_manager_t {
1464     cef_base_t base;
1465     extern( System ) @nogc nothrow {
1466         void function( cef_cookie_manager_t*,cef_string_list_t ) set_supported_schemes;
1467         int function( cef_cookie_manager_t*,cef_cookie_visitor_t* ) visit_all_cookies;
1468         int function( cef_cookie_manager_t*,cef_cookie_visitor_t* ) visit_url_cookies;
1469         int function( cef_cookie_manager_t*,const( cef_string_t )*,const( cef_cookie_t )* ) set_cookie;
1470         int function( cef_cookie_manager_t*,const( cef_string_t )*,const( cef_string_t )* ) delete_cookie;
1471         int function( cef_cookie_manager_t*,const( cef_string_t )*,int ) set_storage_path;
1472         int function( cef_cookie_manager_t*,cef_completion_callback_t* ) flush_store;
1473     }
1474 }
1475 
1476 struct cef_cookie_visitor_t {
1477     cef_base_t base;
1478     extern( System ) @nogc nothrow int function( cef_cookie_visitor_t*,const( cef_cookie_t )*,int,int,int* ) visit;
1479 }
1480 
1481 // cef_dialog_handler_capi.h
1482 struct cef_file_dialog_callback_t {
1483     cef_base_t base;
1484     extern( System ) @nogc nothrow {
1485         void function( cef_file_dialog_callback_t*,cef_string_list_t ) cont;
1486         void function( cef_file_dialog_callback_t* ) cancel;
1487     }
1488 }
1489 
1490 struct cef_dialog_handler_t {
1491     cef_base_t base;
1492     extern( System ) @nogc nothrow int function( cef_dialog_handler_t*,cef_browser_t*,cef_file_dialog_mode_t,const( cef_string_t )*,const( cef_string_t )*,cef_string_list_t,cef_file_dialog_callback_t* ) on_file_dialog;
1493 }
1494 
1495 // cef_display_handler_capi.h
1496 struct cef_display_handler_t {
1497     cef_base_t base;
1498     extern( System ) @nogc nothrow {
1499         void function( cef_display_handler_t*,cef_browser_t*,cef_frame_t*,const( cef_string_t )* ) on_address_change;
1500         void function( cef_display_handler_t*,cef_browser_t*,const( cef_string_t )* ) on_title_change;
1501         void function( cef_display_handler_t*, cef_browser_t*, cef_string_list_t ) on_favicon_urlchange;
1502         void function( cef_display_handler_t*, cef_browser_t* , int ) on_fullscreen_mode_change;
1503         int function( cef_display_handler_t*, cef_browser_t,cef_string_t* ) on_tooltip;
1504         void function( cef_display_handler_t*,cef_browser_t*,const( cef_string_t )* ) on_status_message;
1505         int function( cef_display_handler_t*,cef_browser_t*,const( cef_string_t )*,const( cef_string_t )*,int ) on_console_message;
1506         int function( cef_display_handler_t*, cef_browser_t*, const( cef_size_t )* ) on_auto_resize;
1507         void function( cef_display_handler_t*, cef_browser_t*, double ) on_loading_progress_change;
1508     }
1509 }
1510 
1511 // cef_dom_capi.h
1512 struct cef_domvisitor_t {
1513     cef_base_t base;
1514     extern( System ) @nogc nothrow void function( cef_domvisitor_t*,cef_domdocument_t* ) visit;
1515 }
1516 struct cef_domdocument_t {
1517     cef_base_t base;
1518     extern( System ) @nogc nothrow {
1519         cef_dom_document_type_t function( cef_domdocument_t* ) get_type;
1520         cef_domnode_t* function( cef_domdocument_t* ) get_document;
1521         cef_domnode_t* function( cef_domdocument_t* ) get_body;
1522         cef_domnode_t* function( cef_domdocument_t* ) get_head;
1523         cef_string_userfree_t function( cef_domdocument_t* ) get_title;
1524         cef_domnode_t* function( cef_domdocument_t*,const( cef_string_t )* ) get_element_by_id;
1525         cef_domnode_t* function( cef_domdocument_t* ) get_focused_node;
1526         int function( cef_domdocument_t* ) has_selection;
1527         int function( cef_domdocument_t* ) get_selection_start_offset;
1528         int function( cef_domdocument_t* ) get_selection_end_offset;
1529         cef_string_userfree_t function( cef_domdocument_t* ) get_selection_as_markup;
1530         cef_string_userfree_t function( cef_domdocument_t* ) get_selection_as_text;
1531         cef_string_userfree_t function( cef_domdocument_t* ) get_base_url;
1532         cef_string_userfree_t function( cef_domdocument_t*,const( cef_string_t )* ) get_complete_url;
1533     }
1534 }
1535 
1536 struct cef_domnode_t {
1537     cef_base_t base;
1538     extern( System ) @nogc nothrow {
1539         cef_dom_node_type_t function( cef_domnode_t* ) get_type;
1540         int function( cef_domnode_t* ) is_text;
1541         int function( cef_domnode_t* ) is_element;
1542         int function( cef_domnode_t* ) is_editable;
1543         int function( cef_domnode_t* ) is_form_control_element;
1544         cef_string_userfree_t function( cef_domnode_t* ) get_form_control_element_type;
1545         int function( cef_domnode_t*,cef_domnode_t* ) is_same;
1546         cef_string_userfree_t function( cef_domnode_t* ) get_name;
1547         cef_string_userfree_t function( cef_domnode_t* ) get_value;
1548         int function( cef_domnode_t*,const( cef_string_t )* ) set_value;
1549         cef_string_userfree_t function( cef_domnode_t* ) get_as_markup;
1550         cef_domdocument_t* function( cef_domnode_t* ) get_document;
1551         cef_domnode_t* function( cef_domnode_t* ) get_parent;
1552         cef_domnode_t* function( cef_domnode_t* ) get_previous_sibling;
1553         cef_domnode_t* function( cef_domnode_t* ) get_next_sibling;
1554         int function( cef_domnode_t* ) has_children;
1555         cef_domnode_t* function( cef_domnode_t* ) get_first_child;
1556         cef_domnode_t* function( cef_domnode_t* ) get_last_child;
1557         cef_string_userfree_t function( cef_domnode_t* ) get_element_tag_name;
1558         int function( cef_domnode_t* ) has_element_attributes;
1559         int function( cef_domnode_t*,const( cef_string_t )* ) has_element_attribute;
1560         cef_string_userfree_t function( cef_domnode_t*,const( cef_string_t )* ) get_element_attribute;
1561         void function( cef_domnode_t*,cef_string_map_t ) get_element_attributes;
1562         int function( cef_domnode_t* ,const( cef_string_t )*,const( cef_string_t )* ) set_element_attribute;
1563         cef_string_userfree_t function( cef_domnode_t* ) get_element_inner_text;
1564         cef_rect_t function( cef_domnode_t* ) get_element_bounds;
1565     }
1566 }
1567 
1568 struct cef_domevent_t {
1569     cef_base_t base;
1570     extern( System ) @nogc nothrow {
1571         cef_string_userfree_t function( cef_domevent_t* ) get_type;
1572         cef_dom_event_category_t function( cef_domevent_t* ) get_category;
1573         cef_dom_event_phase_t function( cef_domevent_t* ) get_phase;
1574         int function( cef_domevent_t* ) can_bubble;
1575         int function( cef_domevent_t* ) can_cancel;
1576         cef_domdocument_t* function( cef_domevent_t* ) get_document;
1577         cef_domnode_t* function( cef_domevent_t* ) get_target;
1578         cef_domnode_t* function( cef_domevent_t* ) get_current_target;
1579     }
1580 }
1581 
1582 struct cef_domevent_listener_t {
1583     cef_base_t base;
1584     extern( System ) @nogc nothrow void function( cef_domevent_listener_t*,cef_domevent_t* ) handle_event;
1585 }
1586 
1587 // cef_download_handler_capi.h
1588 struct cef_before_download_callback_t {
1589     cef_base_t base;
1590     extern( System ) @nogc nothrow void function( cef_before_download_callback_t,const( cef_string_t )*,int ) cont;
1591 }
1592 
1593 struct cef_download_item_callback_t {
1594     cef_base_t base;
1595     extern( System ) @nogc nothrow {
1596         void function( cef_download_item_callback_t* ) cancel;
1597         void function( cef_download_item_callback_t* ) pause;
1598         void function( cef_download_item_callback_t* ) resume;
1599     }
1600 }
1601 
1602 struct cef_download_handler_t {
1603     cef_base_t base;
1604     extern( System ) @nogc nothrow {
1605         void function( cef_download_handler_t*,cef_browser_t*,cef_download_item_t*,const( cef_string_t )*,cef_before_download_callback_t* ) on_before_download;
1606         void function( cef_download_handler_t*,cef_browser_t*,cef_download_item_t*,cef_download_item_callback_t* ) on_download_updated;
1607     }
1608 }
1609 
1610 // cef_download_item_capi.h
1611 struct cef_download_item_t {
1612     cef_base_t base;
1613     extern( System ) @nogc nothrow {
1614         int function( cef_download_item_t* ) is_valid;
1615         int function( cef_download_item_t* ) is_in_progress;
1616         int function( cef_download_item_t* ) is_complete;
1617         int function( cef_download_item_t* ) is_canceled;
1618         int64 function( cef_download_item_t* ) get_current_speed;
1619         int function( cef_download_item_t* ) get_percent_complete;
1620         int64 function( cef_download_item_t* ) get_total_bytes;
1621         int64 function( cef_download_item_t* ) get_received_bytes;
1622         cef_time_t function( cef_download_item_t* ) get_start_time;
1623         cef_time_t function( cef_download_item_t* ) get_end_time;
1624         cef_string_userfree_t function( cef_download_item_t* ) get_full_path;
1625         uint32 function( cef_download_item_t* ) get_id;
1626         cef_string_userfree_t function( cef_download_item_t* ) get_url;
1627         cef_string_userfree_t function( cef_download_item_t* ) get_suggested_file_name;
1628         cef_string_userfree_t function( cef_download_item_t* ) get_content_disposition;
1629         cef_string_userfree_t function( cef_download_item_t* ) get_mime_type;
1630     }
1631 }
1632 
1633 // cef_drag_data_capi.h
1634 struct cef_drag_data_t {
1635     cef_base_t base;
1636     extern( System ) @nogc nothrow {
1637         cef_drag_data_t* function( cef_drag_data_t* ) clone;
1638         int function( cef_drag_data_t* ) is_read_only;
1639         int function( cef_drag_data_t* ) is_link;
1640         int function( cef_drag_data_t* ) is_fragment;
1641         int function( cef_drag_data_t* ) is_file;
1642         int function( cef_drag_data_t* ) get_link_url;
1643         cef_string_userfree_t function( cef_drag_data_t* ) get_link_title;
1644         cef_string_userfree_t function( cef_drag_data_t* ) get_link_metadata;
1645         cef_string_userfree_t function( cef_drag_data_t* ) get_fragment_text;
1646         cef_string_userfree_t function( cef_drag_data_t* ) get_fragment_html;
1647         cef_string_userfree_t function( cef_drag_data_t* ) get_fragment_base_url;
1648         cef_string_userfree_t function( cef_drag_data_t* ) get_file_name;
1649         size_t function( cef_drag_data_t*, cef_stream_writer_t* ) get_file_contents;
1650         int function( cef_drag_data_t*, cef_string_list_t ) get_file_names;
1651         void function( cef_drag_data_t*, const( cef_string_t )* ) set_link_url;
1652         void function( cef_drag_data_t*, const( cef_string_t )* ) set_link_title;
1653         void function( cef_drag_data_t*, const( cef_string_t )* ) set_link_metadata;
1654         void function( cef_drag_data_t*, const( cef_string_t )* ) set_fragment_text;
1655         void function( cef_drag_data_t*, const( cef_string_t )* ) set_fragment_html;
1656         void function( cef_drag_data_t*, const( cef_string_t )* ) set_fragment_base_url;
1657         void function( cef_drag_data_t* ) reset_file_contents;
1658         void function( cef_drag_data_t*, const( cef_string_t )*, const( cef_string_t )* ) add_file;
1659         cef_image_t* function( cef_drag_data_t* ) get_image;
1660         cef_point_t function( cef_drag_data_t* ) get_image_hotspot;
1661         int function( cef_drag_data_t* ) has_image;
1662     }
1663 }
1664 
1665 // cef_drag_handler_capi.h
1666 struct cef_drag_handler_t {
1667     cef_base_t base;
1668     extern( System ) @nogc nothrow {
1669         int function( cef_drag_handler_t*,cef_browser_t*,cef_drag_data_t*,cef_drag_operations_mask_t ) on_drag_enter;
1670         void function( cef_drag_handler_t*, cef_browser_t*, size_t, const( cef_draggable_region_t*) ) on_draggable_regions_changed;
1671     }
1672 }
1673 
1674 // cef_extension_capi.h
1675 struct cef_extension_t {
1676     cef_base_t base;
1677     extern( System ) @nogc nothrow {
1678         cef_string_userfree_t function( cef_extension_t* ) get_identifier;
1679         cef_string_userfree_t function( cef_extension_t* ) get_path;
1680         cef_dictionary_value_t* function( cef_extension_t* ) get_manifest;
1681         int function( cef_extension_t*, cef_extension_t* ) is_same;
1682         cef_extension_handler_t* function( cef_extension_t* ) get_handler;
1683         cef_request_context_t* function( cef_extension_t* ) get_loader_context;
1684         int function( cef_extension_t* ) is_loaded;
1685         void function( cef_extension_t* ) unload;
1686     }
1687 }
1688 
1689 // cef_extension_handler_capi.h
1690 struct cef_get_extension_resource_callback_t {
1691     cef_base_t base;
1692     extern( System ) @nogc nothrow {
1693         void function( cef_get_extension_resource_callback_t*, cef_stream_reader_t* ) cont;
1694         void function( cef_get_extension_resource_callback_t* ) cancel;
1695     }
1696 }
1697 
1698 struct cef_extension_handler_t {
1699     cef_base_t base;
1700     extern( System ) @nogc nothrow {
1701         void function( cef_extension_handler_t*, cef_errorcode_t ) on_extension_load_failed;
1702         void function( cef_extension_handler_t*, cef_extension_t* ) on_extension_loaded;
1703         void function( cef_extension_handler_t*, cef_extension_t* ) on_extension_unloaded;
1704         int function( cef_extension_handler_t*, cef_extension_t*, const( cef_string_t )*, cef_client_t**, cef_browser_settings_t* ) on_before_background_browser;
1705         int function( cef_extension_handler_t*, cef_extension_t*, cef_browser_t*, cef_browser_t*, int, const( cef_string_t )*, int, cef_window_info_t*, cef_client_t**, cef_browser_settings_t* ) on_before_browser;
1706         cef_browser_t* function( cef_extension_handler_t*, cef_extension_t*, cef_browser_t*, int ) get_active_browser;
1707         int function( cef_extension_handler_t*, cef_extension_t*, cef_browser_t*, int, cef_browser_t* ) can_access_browser;
1708         int function( cef_extension_handler_t*, cef_extension_t*, cef_browser_t*, const( cef_string_t )*, cef_get_extension_resource_callback_t* ) get_extension_resource;
1709     }
1710 }
1711 
1712 // cef_find_handler_capi.h
1713 struct cef_find_handler_t {
1714     cef_base_t base;
1715     extern( System ) @nogc nothrow void function( cef_find_handler_t*, cef_browser_t*, int, int, const( cef_rect_t )*, int, int ) on_find_result;
1716 }
1717 
1718 // cef_focus_handler_capi.h
1719 struct cef_focus_handler_t {
1720     cef_base_t base;
1721     extern( System ) @nogc nothrow {
1722         void function( cef_focus_handler_t*,cef_browser_t*,int ) on_take_focus;
1723         int function( cef_focus_handler_t*,cef_browser_t*,cef_focus_source_t* ) on_set_focus;
1724         void function( cef_focus_handler_t*,cef_browser_t* ) on_get_focus;
1725     }
1726 }
1727 
1728 // cef_frame_capi.h
1729 struct cef_frame_t {
1730     cef_base_t base;
1731     extern( System ) @nogc nothrow {
1732         int function( cef_frame_t* ) is_valid;
1733         void function( cef_frame_t* ) undo;
1734         void function( cef_frame_t* ) redo;
1735         void function( cef_frame_t* ) cut;
1736         void function( cef_frame_t* ) copy;
1737         void function( cef_frame_t* ) paste;
1738         void function( cef_frame_t* ) del;
1739         void function( cef_frame_t*cef_drag_handler_t ) select_all;
1740         void function( cef_frame_t* ) view_source;
1741         void function( cef_frame_t*,cef_string_visitor_t* ) get_source;
1742         void function( cef_frame_t*,cef_string_visitor_t* ) get_text;
1743         void function( cef_frame_t*,cef_request_t* ) load_request;
1744         void function( cef_frame_t*,const( cef_string_t )* ) load_url;
1745         void function( cef_frame_t*,const( cef_string_t )*,const( cef_string_t )* ) load_string;
1746         void function( cef_frame_t*,const( cef_string_t )*,const( cef_string_t )*,int ) execute_java_script;
1747         int function( cef_frame_t* ) is_main;
1748         int function( cef_frame_t* ) is_focused;
1749         cef_string_userfree_t function( cef_frame_t* ) get_name;
1750         int64 function( cef_frame_t* ) get_identifier;
1751         cef_frame_t* function( cef_frame_t* ) get_parent;
1752         cef_string_userfree_t function( cef_frame_t* ) get_url;
1753         cef_browser_t* function( cef_frame_t* ) get_browser;
1754         cef_v8context_t* function( cef_frame_t* ) get_v8context;
1755         void function( cef_frame_t*,cef_domvisitor_t* ) visit_dom;
1756 
1757     }
1758 }
1759 
1760 // cef_image_capi.h
1761 struct cef_image_t {
1762     cef_base_t base;
1763     extern( System ) @nogc nothrow {
1764         int function( cef_image_t* ) is_empty;
1765         int function( cef_image_t*, cef_image_t* ) is_same;
1766         int function( cef_image_t*, float, int, int, cef_color_type_t, cef_alpha_type_t, const( void )*, size_t ) add_bitmap;
1767         int function( cef_image_t*, float, const( void )*, size_t ) add_png;
1768         int function( cef_image_t*, float, const( void )*, size_t ) add_jpeg;
1769         size_t function( cef_image_t* ) get_width;
1770         size_t function( cef_image_t* ) get_height;
1771         int function( cef_image_t*, float ) has_representation;
1772         int function( cef_image_t*, float ) remove_representation;
1773         int function( cef_image_t*, float, float*, int*, int* ) get_representation_info;
1774         cef_binary_value_t* function( cef_image_t*, float, cef_color_type_t, cef_alpha_type_t, int*, int* ) get_as_bitmap;
1775         cef_binary_value_t* function( cef_image_t*, float, int, int*, int* ) get_as_png;
1776         cef_binary_value_t* function( cef_image_t*, float, int, int*, int* ) get_as_jpeg;
1777     }
1778 };
1779 
1780 // cef_jsdialog_handler_capi.h
1781 struct cef_jsdialog_callback_t {
1782     cef_base_t base;
1783     extern( System ) @nogc nothrow void function( cef_jsdialog_callback_t*,int,const( cef_string_t )* ) cont;
1784 }
1785 
1786 struct cef_jsdialog_handler_t {
1787     cef_base_t base;
1788     extern( System ) @nogc nothrow {
1789         int function( cef_jsdialog_handler_t*,cef_browser_t*,const( cef_string_t )*,const( cef_string_t )*,cef_jsdialog_type_t,const( cef_string_t )*,cef_jsdialog_callback_t*,int* ) on_jsdialog;
1790         int function( cef_jsdialog_handler_t*,cef_browser_t*,const( cef_string_t )*,int,cef_jsdialog_callback_t* ) on_before_unload_dialog;
1791         void function( cef_jsdialog_handler_t*,cef_browser_t* ) on_reset_dialog_state;
1792         void function( cef_jsdialog_handler_t*,cef_browser_t* ) on_dialog_closed;
1793     }
1794 }
1795 
1796 // cef_keyboard_handler_capi.h
1797 struct cef_keyboard_handler_t {
1798     cef_base_t base;
1799     extern( System ) @nogc nothrow {
1800         int function( cef_keyboard_handler_t*,cef_browser_t*,const( cef_key_event_t )*,cef_event_handle_t,int* ) on_pre_key_event;
1801         int function( cef_keyboard_handler_t*,cef_browser_t*,const( cef_key_event_t )*,cef_event_handle_t ) on_key_event;
1802     }
1803 }
1804 
1805 // cef_life_span_handler_capi.h
1806 struct cef_life_span_handler_t {
1807     cef_base_t base;
1808     extern( System ) @nogc nothrow {
1809         int function( cef_life_span_handler_t*,cef_browser_t*,cef_frame_t*,const( cef_string_t )*,const( cef_string_t )*,const( cef_popup_features_t )*,cef_window_info_t*,cef_client_t**,cef_browser_settings_t*,int* ) on_before_popup;
1810         void function( cef_life_span_handler_t*,cef_browser_t* ) on_after_created;
1811         void function( cef_life_span_handler_t*,cef_browser_t* ) run_modal;
1812         int function( cef_life_span_handler_t*,cef_browser_t* ) do_close;
1813         void function( cef_life_span_handler_t*,cef_browser_t* ) on_before_close;
1814     }
1815 }
1816 
1817 // cef_load_handler_capi.h
1818 struct cef_load_handler_t {
1819     cef_base_t base;
1820     extern( System ) @nogc nothrow {
1821         void function( cef_load_handler_t*,cef_browser_t*,int,int,int ) on_loading_state_change;
1822         void function( cef_load_handler_t*,cef_browser_t*,cef_frame_t* ) on_load_start;
1823         void function( cef_load_handler_t*,cef_browser_t*,cef_frame_t*,int ) on_load_end;
1824         void function( cef_load_handler_t*,cef_browser_t*,cef_frame_t*,cef_errorcode_t,const( cef_string_t )*,const( cef_string_t )* ) on_load_error;
1825     }
1826 }
1827 
1828 // cef_menu_model_capi.h
1829 struct cef_menu_model_t {
1830     cef_base_t base;
1831     extern( System ) @nogc nothrow {
1832         int function( cef_menu_model_t* ) is_sub_menu;
1833         int function( cef_menu_model_t* ) clear;
1834         int function( cef_menu_model_t* ) get_count;
1835         int function( cef_menu_model_t* ) add_separator;
1836         int function( cef_menu_model_t*,int,const( cef_string_t )* ) add_item;
1837         int function( cef_menu_model_t*,int,const( cef_string_t )* ) add_check_item;
1838         int function( cef_menu_model_t*,int,const( cef_string_t )*,int ) add_radio_item;
1839         cef_menu_model_t* function( cef_menu_model_t*,int,const( cef_string_t )* ) add_sub_menu;
1840         int function( cef_menu_model_t*,int ) insert_separator_at;
1841         int function( cef_menu_model_t*,int,int,const( cef_string_t )* ) insert_item_at;
1842         int function( cef_menu_model_t*,int,int,const( cef_string_t )* ) insert_check_item_at;
1843         int function( cef_menu_model_t*,int,int,const( cef_string_t )*,int ) insert_radio_item_at;
1844         cef_menu_model_t* function( cef_menu_model_t*,int,int,const( cef_string_t )* ) insert_submenu_at;
1845         int function( cef_menu_model_t*,int ) remove;
1846         int function( cef_menu_model_t*,int ) remove_at;
1847         int function( cef_menu_model_t*,int ) get_index_of;
1848         int function( cef_menu_model_t*,int ) get_command_id_at;
1849         int function( cef_menu_model_t*,int,int ) set_command_id_at;
1850         cef_string_userfree_t function( cef_menu_model_t*,int ) get_label;
1851         cef_string_userfree_t function( cef_menu_model_t*,int ) get_label_at;
1852         int function( cef_menu_model_t*,int,const( cef_string_t )* ) set_label;
1853         int function( cef_menu_model_t*,int,const( cef_string_t )* ) set_label_at;
1854         cef_menu_item_type_t function( cef_menu_model_t*,int ) get_type;
1855         cef_menu_item_type_t function( cef_menu_model_t*,int ) get_type_at;
1856         int function( cef_menu_model_t*,int ) get_group_id;
1857         int function( cef_menu_model_t*,int ) get_group_id_at;
1858         int function( cef_menu_model_t*,int,int ) set_group_id;
1859         int function( cef_menu_model_t*,int,int ) set_group_id_at;
1860         cef_menu_model_t* function( cef_menu_model_t*,int ) get_sub_menu;
1861         cef_menu_model_t* function( cef_menu_model_t*,int ) get_sub_menu_at;
1862         int function( cef_menu_model_t*,int ) is_visible;
1863         int function( cef_menu_model_t*,int ) is_visible_at;
1864         int function( cef_menu_model_t*,int,int ) set_visible;
1865         int function( cef_menu_model_t*,int,int ) set_visible_at;
1866         int function( cef_menu_model_t*,int ) is_enabled;
1867         int function( cef_menu_model_t*,int ) is_enabled_at;
1868         int function( cef_menu_model_t*,int,int ) set_enabled;
1869         int function( cef_menu_model_t*,int,int ) set_enabled_at;
1870         int function( cef_menu_model_t*,int ) is_checked;
1871         int function( cef_menu_model_t*,int ) is_checked_at;
1872         int function( cef_menu_model_t*,int,int ) set_checked;
1873         int function( cef_menu_model_t*,int,int ) set_checked_at;
1874         int function( cef_menu_model_t*,int ) has_accelerator;
1875         int function( cef_menu_model_t*,int ) has_accelerator_at;
1876         int function( cef_menu_model_t*,int,int,int,int,int ) set_accelerator;
1877         int function( cef_menu_model_t*,int,int,int,int,int ) set_accelerator_at;
1878         int function( cef_menu_model_t*,int ) remove_accelerator;
1879         int function( cef_menu_model_t*,int ) remove_accelerator_at;
1880         int function( cef_menu_model_t*,int,int*,int*,int*,int* ) get_accelerator;
1881         int function( cef_menu_model_t*,int,int*,int*,int*,int* ) get_accelerator_at;
1882         int function( cef_menu_model_t*, int, cef_menu_color_type_t, cef_color_t ) set_color;
1883         int function( cef_menu_model_t*, int, cef_menu_color_type_t, cef_color_t ) set_color_at;
1884         int function( cef_menu_model_t*, int, cef_menu_color_type_t, cef_color_t* ) get_color;
1885         int function( cef_menu_model_t*, int, cef_menu_color_type_t, cef_color_t* ) get_color_at;
1886         int function( cef_menu_model_t*, int, const( cef_string_t )* ) set_font_list;
1887         int function( cef_menu_model_t*, int, const( cef_string_t )* ) set_font_list_at;
1888     }
1889 }
1890 
1891 // cef_menu_model_delegate_capi.h
1892 struct cef_menu_model_delegate_t {
1893     cef_base_t base;
1894     extern( System ) @nogc nothrow {
1895         void function( cef_menu_model_delegate_t*, cef_menu_model_t*, int, cef_event_flags_t ) execute_command;
1896         void function( cef_menu_model_delegate_t*, cef_menu_model_t*, const( cef_point_t)* ) mouse_outside_menu;
1897         void function( cef_menu_model_delegate_t*, cef_menu_model_t*, int ) unhandled_open_submenu;
1898         void function( cef_menu_model_delegate_t*, cef_menu_model_t*, int ) unhandled_close_submenu;
1899         void function( cef_menu_model_delegate_t*, cef_menu_model_t* ) menu_will_show;
1900         void function( cef_menu_model_delegate_t*, cef_menu_model_t* ) menu_closed;
1901         int function( cef_menu_model_delegate_t*, cef_menu_model_t*, cef_string_t* ) format_label;
1902     }
1903 }
1904 
1905 // cef_navigation_entry_capi.h
1906 struct cef_navigation_entry_t {
1907     cef_base_t base;
1908     extern( System ) @nogc nothrow {
1909         int function( cef_navigation_entry_t* self) is_valid;
1910         cef_string_userfree_t function( cef_navigation_entry_t* ) get_url;
1911         cef_string_userfree_t function( cef_navigation_entry_t* ) get_display_url;
1912         cef_string_userfree_t function( cef_navigation_entry_t* ) get_original_url;
1913         cef_string_userfree_t function( cef_navigation_entry_t* ) get_title;
1914         cef_transition_type_t function( cef_navigation_entry_t* ) get_transition_type;
1915         int function( cef_navigation_entry_t* ) has_post_data;
1916         cef_time_t function( cef_navigation_entry_t* ) get_completion_time;
1917         int function( cef_navigation_entry_t* ) get_http_status_code;
1918         cef_sslstatus_t* function( cef_navigation_entry_t* ) get_sslstatus;
1919     }
1920 }
1921 
1922 // cef_print_handler_capi.h
1923 struct cef_print_dialog_callback_t {
1924     cef_base_t base;
1925     extern( System ) @nogc nothrow {
1926         void function( cef_print_dialog_callback_t*, cef_print_settings_t* ) cont;
1927         void function( cef_print_dialog_callback_t* ) cancel;
1928     }
1929 } 
1930 
1931 struct cef_print_job_callback_t {
1932     cef_base_t base;
1933     extern( System ) @nogc nothrow void function( cef_print_job_callback_t* ) cont;
1934 }
1935 
1936 struct cef_print_handler_t {
1937     cef_base_t base;
1938     extern( System ) @nogc nothrow {
1939         void function( cef_print_handler_t*, cef_browser_t* ) on_print_start;
1940         void function( cef_print_handler_t*, cef_browser_t*, cef_print_settings_t*, int ) on_print_settings;
1941         int function( cef_print_handler_t*, cef_browser_t*, int, cef_print_dialog_callback_t* ) on_print_dialog;
1942         int function( cef_print_handler_t*, cef_browser_t*, const( cef_string_t )*, const( cef_string_t )* , cef_print_job_callback_t* ) on_print_job;
1943         void function( cef_print_handler_t*, cef_browser_t* ) on_print_reset;
1944         cef_size_t function( cef_print_handler_t*, int ) get_pdf_paper_size;
1945     }
1946 }
1947 
1948 // cef_print_settings_capi.h
1949 struct cef_print_settings_t {
1950     cef_base_t base;
1951     extern( System ) @nogc nothrow {
1952         int function( cef_print_settings_t* ) is_valid;
1953         int function( cef_print_settings_t* ) is_read_only;
1954         cef_print_settings_t* function(  cef_print_settings_t* ) copy;
1955         void function( cef_print_settings_t*, int ) set_orientation;
1956         int function( cef_print_settings_t* ) is_landscape;
1957         void function( cef_print_settings_t*, const( cef_size_t )*, const( cef_rect_t )* , int ) set_printer_printable_area;
1958         void function( cef_print_settings_t*, const( cef_string_t )* ) set_device_name;
1959         cef_string_userfree_t function( cef_print_settings_t* ) get_device_name;
1960         void function( cef_print_settings_t*, int ) set_dpi;
1961         int function( cef_print_settings_t* ) get_dpi;
1962         void function( cef_print_settings_t*, size_t, const( cef_range_t )* ) set_page_ranges;
1963         size_t function( cef_print_settings_t* ) get_page_ranges_count;
1964         void function( cef_print_settings_t*, size_t*, cef_range_t* ) get_page_ranges;
1965         void function( cef_print_settings_t*, int ) set_selection_only;
1966         int function( cef_print_settings_t* ) is_selection_only;
1967         void function( cef_print_settings_t*, int ) set_collate;
1968         int function( cef_print_settings_t* ) will_collate;
1969         void function( cef_print_settings_t*, cef_color_model_t ) set_color_model;
1970         cef_color_model_t function( cef_print_settings_t* ) get_color_model;
1971         void function( cef_print_settings_t*, int ) set_copies;
1972         int function( cef_print_settings_t* ) get_copies;
1973         void function( cef_print_settings_t*, cef_duplex_mode_t mode ) set_duplex_mode;
1974         cef_duplex_mode_t function( cef_print_settings_t* ) get_duplex_mode;
1975     }
1976 }
1977 
1978 // cef_process_message_capi.h
1979 struct cef_process_message_t {
1980     cef_base_t base;
1981     extern( System ) @nogc nothrow {
1982         int function( cef_process_message_t* ) is_valid;
1983         int function( cef_process_message_t* ) is_read_only;
1984         cef_process_message_t* function( cef_process_message_t* ) copy;
1985         cef_string_userfree_t function( cef_process_message_t* ) get_name;
1986         cef_list_value_t* function( cef_process_message_t* ) get_argument_list;
1987     }
1988 }
1989 
1990 // cef_render_handler_capi.h
1991 struct cef_render_handler_t {
1992     cef_base_t base;
1993     extern( System ) @nogc nothrow {
1994         cef_accessibility_handler_t* function( cef_render_handler_t* ) get_accessibility_handler;
1995         int function( cef_render_handler_t*,cef_browser_t*,cef_rect_t* ) get_root_screen_rect;
1996         int function( cef_render_handler_t*,cef_browser_t*,cef_rect_t* ) get_view_rect;
1997         int function( cef_render_handler_t*,cef_browser_t*,int,int,int*,int* ) get_screen_point;
1998         int function( cef_render_handler_t*,cef_browser_t*,cef_screen_info_t* ) get_screen_info;
1999         void function( cef_render_handler_t*,cef_browser_t*,int ) on_popup_show;
2000         void function( cef_render_handler_t*,cef_browser_t*,const( cef_rect_t )* ) on_popup_size;
2001         void function( cef_render_handler_t*,cef_browser_t*,cef_paint_element_type_t,size_t,const( cef_rect_t* ),const( void )*,int,int ) on_paint;
2002         void function( cef_render_handler_t*, cef_browser_t*, cef_paint_element_type_t, size_t , const( cef_rect_t* ), void* ) on_accelerated_paint;
2003         void function( cef_render_handler_t*,cef_browser_t*,cef_cursor_handle_t ) on_cursor_change;
2004         int function( cef_render_handler_t*, cef_browser_t*, cef_drag_data_t*, cef_drag_operations_mask_t, int, int ) start_dragging;
2005         void function( cef_render_handler_t*, cef_browser_t*, cef_drag_operations_mask_t ) update_drag_cursor;
2006         void function( cef_render_handler_t*, cef_browser_t*, double, double ) on_scroll_offset_changed;
2007         void function( cef_render_handler_t*, cef_browser_t*, const( cef_range_t )*, size_t, const( cef_rect_t* ) ) on_ime_composition_range_changed;
2008         void function( cef_render_handler_t*, cef_browser_t*, const( cef_string_t )*, const( cef_range_t )* ) on_text_selection_changed;
2009     }
2010 }
2011 
2012 // cef_render_process_handler_capi.h
2013 struct cef_render_process_handler_t {
2014     cef_base_t base;
2015     extern( System ) @nogc nothrow {
2016         void function( cef_render_process_handler_t*,cef_list_value_t* ) on_render_thread_created;
2017         void function( cef_render_process_handler_t* ) on_web_kit_initialized;
2018         void function( cef_render_process_handler_t*,cef_browser_t* ) on_browser_created;
2019         void function( cef_render_process_handler_t*,cef_browser_t* ) on_browser_destroyed;
2020         cef_load_handler_t* function( cef_render_process_handler_t* ) get_load_handler;
2021         int function( cef_render_process_handler_t*,cef_browser_t*,cef_frame_t*,cef_request_t*,cef_navigation_type_t,int ) on_before_navigation;
2022         void function( cef_render_process_handler_t*,cef_browser_t*,cef_frame_t*,cef_v8context_t* ) on_context_created;
2023         void function( cef_render_process_handler_t*,cef_browser_t*,cef_frame_t*,cef_v8context_t* ) on_context_released;
2024         void function( cef_render_process_handler_t*,cef_browser_t*,cef_frame_t*,cef_v8context_t*,cef_v8exception_t*,cef_v8stack_trace_t* ) on_uncaught_exception;
2025         void function( cef_render_process_handler_t*,cef_browser_t*,cef_frame_t*,cef_domnode_t* ) on_focused_node_changed;
2026         int function( cef_render_process_handler_t*,cef_browser_t*,cef_process_id_t,cef_process_message_t* ) on_process_message_received;
2027     }
2028 }
2029 
2030 // cef_request_capi.h
2031 struct cef_request_t {
2032     cef_base_t base;
2033     extern( System ) @nogc nothrow {
2034         int function( cef_request_t* ) is_read_only;
2035         cef_string_userfree_t function( cef_request_t* ) get_url;
2036         void function( cef_request_t*,const( cef_string_t )* ) set_url;
2037         cef_string_userfree_t function( cef_request_t* ) get_method;
2038         void function( cef_request_t*,const( cef_string_t )* ) set_method;
2039         void function( cef_request_t*, const( cef_string_t )*, cef_referrer_policy_t ) set_referrer;
2040         cef_string_userfree_t function( cef_request_t* ) get_referrer_url;
2041         cef_referrer_policy_t function( cef_request_t* ) get_referrer_policy;
2042         cef_post_data_t* function( cef_request_t* ) get_post_data;
2043         void function( cef_request_t*, cef_post_data_t* ) set_post_data;
2044         void function( cef_request_t*,cef_string_multimap_t ) get_header_map;
2045         void function( cef_request_t*,cef_string_multimap_t ) set_header_map;
2046         void function( cef_request_t*,const( cef_string_t )*,const( cef_string_t )*,cef_post_data_t*,cef_string_multimap_t ) set;
2047         int function( cef_request_t* ) get_flags;
2048         void function( cef_request_t*,int ) set_flags;
2049         cef_string_userfree_t function( cef_request_t* ) get_first_party_for_cookies;
2050         void function( cef_request_t*,const( cef_string_t )* ) set_first_party_for_cookies;
2051         cef_resource_type_t function( cef_request_t* ) get_resource_type;
2052         cef_transition_type_t function( cef_request_t* ) get_transition_type;
2053         ulong function( cef_request_t* ) get_identifier;
2054     }
2055 }
2056 
2057 struct cef_post_data_t {
2058     cef_base_t base;
2059     extern( System ) @nogc nothrow {
2060         int function( cef_post_data_t* ) is_read_only;
2061         int function( cef_post_data_t* ) has_excluded_elements;
2062         size_t function( cef_post_data_t* ) get_element_count;
2063         void function( cef_post_data_t*,size_t*,cef_post_data_element_t** ) get_elements;
2064         int function( cef_post_data_t*,cef_post_data_element_t* ) remove_element;
2065         int function( cef_post_data_t*,cef_post_data_element_t* ) add_element;
2066         void function( cef_post_data_t* ) remove_elements;
2067     }
2068 }
2069 
2070 struct cef_post_data_element_t {
2071     cef_base_t base;
2072     extern( System ) @nogc nothrow {
2073         int function( cef_post_data_element_t* ) is_read_only;
2074         void function( cef_post_data_element_t* ) set_to_empty;
2075         void function( cef_post_data_element_t*,const( cef_string_t )* ) set_to_file;
2076         void function( cef_post_data_element_t*,size_t,const( void )* ) set_to_bytes;
2077         cef_postdataelement_type_t function( cef_post_data_element_t* ) get_type;
2078         cef_string_userfree_t function( cef_post_data_element_t* ) get_file;
2079         size_t function( cef_post_data_element_t* ) get_bytes_count;
2080         size_t function( cef_post_data_element_t*,size_t,void* ) get_bytes;
2081     }
2082 }
2083 
2084 // cef_request_context_capi.h
2085 struct cef_resolve_callback_t {
2086     cef_base_t base;
2087     extern( System ) @nogc nothrow void function( cef_resolve_callback_t*, cef_errorcode_t, cef_string_list_t ) on_resolve_completed;
2088 }
2089 
2090 struct cef_request_context_t {
2091     cef_base_t base;
2092     extern( System ) @nogc nothrow {
2093         int function( cef_request_context_t* self, cef_request_context_t* ) is_same;
2094         int function( cef_request_context_t*, cef_request_context_t* ) is_sharing_with;
2095         int function( cef_request_context_t* ) is_global;
2096         cef_request_context_handler_t* function( cef_request_context_t* ) get_handler;
2097         cef_string_userfree_t function( cef_request_context_t* ) get_cache_path;
2098         cef_cookie_manager_t* function( cef_request_context_t*, cef_completion_callback_t* ) get_default_cookie_manager;
2099         int function( cef_request_context_t*, const( cef_string_t )*, const( cef_string_t )*, cef_scheme_handler_factory_t* ) register_scheme_handler_factory;
2100         int function( cef_request_context_t* ) clear_scheme_handler_factories;
2101         void function( cef_request_context_t*, int ) purge_plugin_list_cache;
2102         int function( cef_request_context_t*, const( cef_string_t )* name) has_preference;
2103         cef_value_t* function( cef_request_context_t*, cef_string_t* ) get_preference;
2104         cef_dictionary_value_t* function( cef_request_context_t*, int ) get_all_preferences;
2105         int function( cef_request_context_t*, const( cef_string_t )* ) can_set_preference;
2106         int function( cef_request_context_t*, const( cef_string_t )*, cef_value_t*, cef_string_t* ) set_preference;
2107         void function( cef_request_context_t*, cef_completion_callback_t* ) clear_certificate_exceptions;
2108         void function( cef_request_context_t*, cef_completion_callback_t* ) close_all_connections;
2109         void function( cef_request_context_t*, const( cef_string_t )*, cef_resolve_callback_t* ) resolve_host;
2110         cef_errorcode_t function( cef_request_context_t*, const( cef_string_t )*, cef_string_list_t ) resolve_host_cached;
2111         void function( cef_request_context_t*, const( cef_string_t )*, cef_dictionary_value_t*, cef_extension_handler_t* ) load_extension;
2112         int function( cef_request_context_t*, const( cef_string_t )* ) did_load_extension;
2113         int function( cef_request_context_t*, const( cef_string_t )* ) has_extension;
2114         int function( cef_request_context_t*, cef_string_list_t ) get_extensions;
2115         cef_extension_t* function( cef_request_context_t*, const( cef_string_t )* ) get_extension;
2116     }
2117 }
2118 
2119 // cef_request_context_handler_capi.h
2120 struct cef_request_context_handler_t {
2121     cef_base_t base;
2122     extern( System ) @nogc nothrow {
2123         void function( cef_request_context_handler_t*, cef_request_context_t* ) on_request_context_initialized;
2124         cef_cookie_manager_t* function( cef_request_context_handler_t* ) get_cookie_manager;
2125         int function( cef_request_context_handler_t*, const( cef_string_t )*, const( cef_string_t )*, int, const( cef_string_t )*, cef_web_plugin_info_t*, cef_plugin_policy_t* ) on_before_plugin_load;
2126     }
2127 }
2128 
2129 // cef_request_handler_capi.h
2130 struct cef_request_callback_t {
2131     cef_base_t base;
2132     extern( System ) @nogc nothrow {
2133         void function( cef_request_callback_t*,int ) cont;
2134         void function( cef_request_callback_t* ) cancel;
2135     }
2136 }
2137 
2138 struct cef_select_client_certificate_callback_t {
2139     cef_base_t base;
2140     extern( System ) @nogc nothrow void function( cef_select_client_certificate_callback_t*, cef_x509certificate_t* ) select;
2141 }
2142 
2143 struct cef_request_handler_t {
2144     cef_base_t base;
2145     extern( System ) @nogc nothrow {
2146         int function( cef_request_handler_t*,cef_browser_t*,cef_frame_t*,cef_request_t*,int ) on_before_browse;
2147         int function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, const( cef_string_t )*, cef_window_open_disposition_t, int ) on_open_urlfrom_tab;
2148         int function( cef_request_handler_t*,cef_browser_t*,cef_frame_t*,cef_request_t* ) on_before_resource_load;
2149         cef_resource_handler_t* function( cef_request_handler_t*,cef_browser_t*,cef_frame_t*,cef_request_t* ) get_resource_handler;
2150         void function( cef_request_handler_t*,cef_browser_t*,cef_frame_t*,const( cef_string_t )*,cef_string_t* ) on_resource_redirect;
2151         int function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, cef_request_t*, cef_response_t* ) on_resource_response;
2152         cef_response_filter_t* function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, cef_request_t*, cef_response_t* ) get_resource_response_filter;
2153         void function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, cef_request_t*, cef_response_t*, cef_urlrequest_status_t, ulong ) on_resource_load_complete;
2154         int function( cef_request_handler_t*,cef_browser_t*,cef_frame_t*,int,const( cef_string_t )*,int,const( cef_string_t )*,const( cef_string_t )*,cef_auth_callback_t* ) get_auth_credentials;
2155         int function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, cef_request_t* ) can_get_cookies;
2156         int function( cef_request_handler_t*, cef_browser_t*, cef_frame_t*, cef_request_t*, const( cef_cookie_t )* ) can_set_cookie;
2157         int function( cef_request_handler_t*, cef_browser_t*, const( cef_string_t )*, ulong, cef_request_callback_t* ) on_quota_request;
2158         void function( cef_request_handler_t*, cef_browser_t*, const( cef_string_t )*, int* ) on_protocol_execution;
2159         int function( cef_request_handler_t*, cef_browser_t*, cef_errorcode_t, const( cef_string_t )*, cef_sslinfo_t*, cef_request_callback_t* ) on_certificate_error;
2160         int function( cef_request_handler_t*, cef_browser_t*, int, const( cef_string_t )*, int, size_t, const( cef_x509certificate_t*), cef_select_client_certificate_callback_t* ) on_select_client_certificate;
2161         void function( cef_request_handler_t*, cef_browser_t*, const( cef_string_t )* ) on_plugin_crashed;
2162         void function( cef_request_handler_t*, cef_browser_t* ) on_render_view_ready;
2163         void function( cef_request_handler_t*,cef_browser_t*,cef_termination_status_t ) on_render_process_terminated;
2164     }
2165 }
2166 
2167 // cef_resource_bundle_capi.h
2168 struct cef_resource_bundle_t {
2169     cef_base_t base;
2170     extern( System ) @nogc nothrow {
2171         cef_string_userfree_t function( cef_resource_bundle_t*, int ) get_localized_string;
2172         int function( cef_resource_bundle_t*, int, void**, size_t* ) get_data_resource;
2173         int function( cef_resource_bundle_t*, int, cef_scale_factor_t, void**, size_t* ) get_data_resource_for_scale;
2174     }
2175 }
2176 
2177 // cef_resource_bundle_handler_capi.h
2178 struct cef_resource_bundle_handler_t {
2179     cef_base_t base;
2180     extern( System ) @nogc nothrow {
2181         int function( cef_resource_bundle_handler_t*,int,cef_string_t* ) get_localized_string;
2182         int function( cef_resource_bundle_handler_t*,int,void**,size_t* ) get_data_resource;
2183         int function( cef_resource_bundle_handler_t*, int, cef_scale_factor_t, void**, size_t* ) get_data_resource_for_scale;
2184     }
2185 }
2186 
2187 // cef_resource_handler_capi.h
2188 struct cef_resource_handler_t {
2189     cef_base_t base;
2190     extern( System ) @nogc nothrow {
2191         int function( cef_resource_handler_t*,cef_request_t*,cef_callback_t* ) process_request;
2192         void function( cef_resource_handler_t*,cef_response_t*,int64*,cef_string_t* ) get_response_headers;
2193         int function( cef_resource_handler_t*,void*,int,int*,cef_callback_t* ) read_response;
2194         int function( cef_resource_handler_t*,const( cef_cookie_t )* ) can_get_cookie;
2195         int function( cef_resource_handler_t*,const( cef_cookie_t )* ) can_set_cookie;
2196         void function( cef_resource_handler_t* ) cancel;
2197     }
2198 }
2199 
2200 // cef_reponse_capi.h
2201 struct cef_response_t {
2202     cef_base_t base;
2203     extern( System ) @nogc nothrow {
2204         int function( cef_response_t* ) is_read_only;
2205         cef_errorcode_t function( cef_response_t* ) get_error;
2206         void function( cef_response_t*,cef_errorcode_t ) set_error;
2207         int function( cef_response_t* ) get_status;
2208         void function( cef_response_t*,int ) set_status;
2209         cef_string_userfree_t function( cef_response_t* ) get_status_text;
2210         void function( cef_response_t*,const( cef_string_t )* ) set_status_text;
2211         cef_string_userfree_t function( cef_response_t* ) get_mime_type;
2212         void function( cef_response_t*,const( cef_string_t )* ) set_mime_type;
2213         cef_string_userfree_t function( cef_response_t*,const( cef_string_t )* ) get_header;
2214         void function( cef_response_t*,cef_string_multimap_t ) get_header_map;
2215         void function( cef_response_t*,cef_string_multimap_t ) set_header_map;
2216         cef_string_userfree_t function( cef_response_t* ) get_url;
2217         void function( cef_response_t*, const( cef_string_t )* ) set_url;
2218     }
2219 }
2220 
2221 // cef_response_filter_capi.h
2222 struct cef_response_filter_t {
2223     cef_base_t base;
2224     extern( System ) @nogc nothrow {
2225         int function( cef_response_filter_t* ) init_filter;
2226         cef_response_filter_status_t function( cef_response_filter_t*, void*, size_t, size_t*, void*, size_t, size_t* ) filter;
2227     }
2228 }
2229 
2230 // cef_scheme_capi.h
2231 struct cef_scheme_registrar_t {
2232     cef_base_t base;
2233     extern( System ) @nogc nothrow int function( cef_scheme_registrar_t*,const( cef_string_t )*,int,int,int,int,int,int ) add_custom_scheme;
2234 }
2235 
2236 struct cef_scheme_handler_factory_t {
2237     cef_base_t base;
2238     extern( System ) @nogc nothrow cef_resource_handler_t* function( cef_scheme_handler_factory_t*,cef_browser_t*,cef_frame_t*,const( cef_string_t )*,cef_request_t* ) create;
2239 }
2240 
2241 // cef_server_capi.h
2242 struct cef_server_t {
2243     cef_base_t base;
2244     extern( System ) @nogc nothrow {
2245         cef_task_runner_t* function( cef_server_t* ) get_task_runner;
2246         void function( cef_server_t* ) shutdown;
2247         int function( cef_server_t* ) is_running;
2248         cef_string_userfree_t function( cef_server_t* ) get_address;
2249         int function( cef_server_t* ) has_connection;
2250         int function( cef_server_t*, int ) is_valid_connection;
2251         void function( cef_server_t*, int, const( cef_string_t )*, const( void )*, size_t ) send_http200response;
2252         void function( cef_server_t*, int ) send_http404response;
2253         void function( cef_server_t*, int, const( cef_string_t )* ) send_http500response;
2254         void function( cef_server_t*, int, int , const( cef_string_t )*, ulong, cef_string_multimap_t ) send_http_response;
2255         void function( cef_server_t*, int, const( void )*, size_t ) send_raw_data;
2256         void function( cef_server_t*, int ) close_connection;
2257         void function( cef_server_t*, int, const( void )*, size_t ) send_web_socket_message;
2258     }
2259 }
2260 
2261 struct cef_server_handler_t {
2262     cef_base_t base;
2263     extern( System ) @nogc nothrow {
2264         void function( cef_server_handler_t*, cef_server_t* ) on_server_created;
2265         void function( cef_server_handler_t*, cef_server_t* ) on_server_destroyed;
2266         void function( cef_server_handler_t*, cef_server_t*, int ) on_client_connected;
2267         void function( cef_server_handler_t*, cef_server_t*, int ) on_client_disconnected;
2268         void function( cef_server_handler_t*, cef_server_t*, int, const( cef_string_t )*, cef_request_t* ) on_http_request;
2269         void function( cef_server_handler_t*, cef_server_t*, int, const( cef_string_t )*, cef_request_t*, cef_callback_t* ) on_web_socket_request;
2270         void function( cef_server_handler_t*, cef_server_t* server, int ) on_web_socket_connected;
2271         void function( cef_server_handler_t*, cef_server_t*, int, const( void )*, size_t ) on_web_socket_message;
2272     }
2273 }
2274 
2275 // cef_ssl_info_capi.h
2276 struct cef_sslinfo_t {
2277     cef_base_t base;
2278     extern( System ) @nogc nothrow {
2279         cef_cert_status_t function( cef_sslinfo_t* ) get_cert_status;
2280         cef_x509certificate_t* function( cef_sslinfo_t* self) get_x509certificate;
2281     }
2282 }
2283 
2284 // cef_ssl_status_capi.h
2285 struct cef_sslstatus_t {
2286     cef_base_t base;
2287     extern( System ) @nogc nothrow {
2288         int function( cef_sslstatus_t* ) is_secure_connection;
2289         cef_cert_status_t function( cef_sslstatus_t* ) get_cert_status;
2290         cef_ssl_version_t function( cef_sslstatus_t* ) get_sslversion;
2291         cef_ssl_content_status_t function( cef_sslstatus_t* ) get_content_status;
2292         cef_x509certificate_t* function( cef_sslstatus_t* ) get_x509certificate;
2293     }
2294 }
2295 
2296 // cef_stream_capi.h
2297 struct cef_read_handler_t {
2298     cef_base_t base;
2299     extern( System ) @nogc nothrow {
2300         size_t function( cef_read_handler_t*, void*, size_t, size_t ) read;
2301         int function( cef_read_handler_t*, ulong, int ) seek;
2302         ulong function( cef_read_handler_t* ) tell;
2303         int function( cef_read_handler_t* ) eof;
2304         int function( cef_read_handler_t* ) may_block;
2305     }
2306 }
2307 
2308 struct cef_stream_reader_t {
2309     cef_base_t base;
2310     extern( System ) @nogc nothrow {
2311         size_t function( cef_stream_reader_t*, void*, size_t, size_t ) read;
2312         int function( cef_stream_reader_t*, ulong, int ) seek;
2313         ulong function( cef_stream_reader_t* ) tell;
2314         int function( cef_stream_reader_t* ) eof;
2315         int function( cef_stream_reader_t* ) may_block;
2316     }
2317 }
2318 
2319 struct cef_write_handler_t {
2320     cef_base_t base;
2321     extern( System ) @nogc nothrow {
2322         size_t function( cef_write_handler_t*, const( void )*, size_t, size_t ) write;
2323         int function( cef_write_handler_t*, ulong, int ) seek;
2324         ulong function( cef_write_handler_t* ) tell;
2325         int function( cef_write_handler_t* ) flush;
2326         int function( cef_write_handler_t* ) may_block;
2327     }
2328 }
2329 
2330 struct cef_stream_writer_t {
2331     cef_base_t base;
2332     extern( System ) @nogc nothrow {
2333         size_t function( cef_stream_writer_t*, const( void )*, size_t, size_t ) write;
2334         int function( cef_stream_writer_t*, ulong, int ) seek;
2335         ulong function( cef_stream_writer_t* ) tell;
2336         int function( cef_stream_writer_t* ) flush;
2337         int function( cef_stream_writer_t* ) may_block;
2338     }
2339 }
2340 
2341 // cef_string_visitor_capi.h
2342 struct cef_string_visitor_t {
2343     cef_base_t base;
2344     extern( System ) @nogc nothrow void function( cef_string_visitor_t*, const( cef_string_t )* ) visit;
2345 }
2346 
2347 // cef_task_capi.h
2348 struct cef_task_t {
2349     cef_base_t base;
2350     extern( System ) @nogc nothrow void function( cef_task_t* ) execute;
2351 } 
2352 
2353 struct cef_task_runner_t {
2354     cef_base_t base;
2355     extern( System ) @nogc nothrow {
2356         int function( cef_task_runner_t*, cef_task_runner_t* ) is_same;
2357         int function( cef_task_runner_t* ) belongs_to_current_thread;
2358         int function( cef_task_runner_t*, cef_thread_id_t ) belongs_to_thread;
2359         int function( cef_task_runner_t*, cef_task_t* ) post_task;
2360         int function( cef_task_runner_t*, cef_task_t*, ulong ) post_delayed_task;
2361     }
2362 }
2363 
2364 // cef_thread_capi.h
2365 struct cef_thread_t {
2366     cef_base_t base;
2367     extern( System ) @nogc nothrow {
2368         cef_task_runner_t* function( cef_thread_t* ) get_task_runner;
2369         cef_platform_thread_id_t function( cef_thread_t* ) get_platform_thread_id;
2370         void function( cef_thread_t* ) stop;
2371         int function( cef_thread_t* ) is_running;
2372     }
2373 }
2374 
2375 // cef_trace_capi.h
2376 struct cef_end_tracing_callback_t {
2377     cef_base_t base;
2378     extern( System ) @nogc nothrow void function( cef_end_tracing_callback_t*, const( cef_string_t )* ) on_end_tracing_complete;
2379 }
2380 
2381 // cef_urlrequest_capi.h
2382 struct cef_urlrequest_t {
2383     cef_base_t base;
2384     extern( System ) @nogc nothrow {
2385         cef_request_t* function( cef_urlrequest_t* ) get_request;
2386         cef_urlrequest_client_t* function( cef_urlrequest_t* ) get_client;
2387         cef_urlrequest_status_t function( cef_urlrequest_t* ) get_request_status;
2388         cef_errorcode_t function( cef_urlrequest_t* ) get_request_error;
2389         cef_response_t* function( cef_urlrequest_t* ) get_response;
2390         int function( cef_urlrequest_t* ) response_was_cached;
2391         void function( cef_urlrequest_t* ) cancel;
2392     }
2393 }
2394 
2395 struct cef_urlrequest_client_t {
2396     cef_base_t base;
2397     extern( System ) @nogc nothrow {
2398         void function( cef_urlrequest_client_t*, cef_urlrequest_t* ) on_request_complete;
2399         void function( cef_urlrequest_client_t*, cef_urlrequest_t*, ulong, ulong ) on_upload_progress;
2400         void function( cef_urlrequest_client_t*, cef_urlrequest_t*, ulong, ulong ) on_download_progress;
2401         void function( cef_urlrequest_client_t*, cef_urlrequest_t*, const( void )*, size_t) on_download_data;
2402         int function( cef_urlrequest_client_t*, int, const( cef_string_t )*, int, const( cef_string_t )*, const( cef_string_t )*, cef_auth_callback_t* ) get_auth_credentials;
2403     }
2404 }
2405 
2406 // cef_v8_capi.h
2407 struct cef_v8context_t {
2408     cef_base_t base;
2409     extern( System ) @nogc nothrow {
2410         cef_task_runner_t* function( cef_v8context_t* slf) get_task_runner;
2411         int function( cef_v8context_t* ) is_valid;
2412         cef_browser_t* function( cef_v8context_t* ) get_browser;
2413         cef_frame_t* function( cef_v8context_t* ) get_frame;
2414         cef_v8value_t* function( cef_v8context_t* ) get_global;
2415         int function( cef_v8context_t* ) enter;
2416         int function( cef_v8context_t* ) exit;
2417         int function( cef_v8context_t*, cef_v8context_t* ) is_same;
2418         int function( cef_v8context_t*, const( cef_string_t )*, const( cef_string_t )*, int, cef_v8value_t**, cef_v8exception_t** ) eval;
2419     }
2420 }
2421 
2422 struct cef_v8handler_t {
2423     cef_base_t base;
2424     extern( System ) @nogc nothrow int function( cef_v8handler_t*, const( cef_string_t )*, cef_v8value_t*, size_t, const( cef_v8value_t* ), cef_v8value_t**, cef_string_t* ) execute;
2425 }
2426 
2427 struct cef_v8accessor_t {
2428     cef_base_t base;
2429     extern( System ) @nogc nothrow {
2430         int function( cef_v8accessor_t*, const( cef_string_t )*, cef_v8value_t*, cef_v8value_t**, cef_string_t* ) get;
2431         int function( cef_v8accessor_t*, const( cef_string_t )*, cef_v8value_t*, cef_v8value_t*, cef_string_t* ) set;
2432     }
2433 }
2434 
2435 struct cef_v8interceptor_t {
2436     cef_base_t base;
2437     extern( System ) @nogc nothrow {
2438         int function( cef_v8interceptor_t*, const( cef_string_t )*, cef_v8value_t*, cef_v8value_t**, cef_string_t* ) get_byname;
2439         int function( cef_v8interceptor_t*, int, cef_v8value_t*, cef_v8value_t**, cef_string_t* ) get_byindex;
2440         int function( cef_v8interceptor_t*, const( cef_string_t )*, cef_v8value_t*, cef_v8value_t*, cef_string_t* ) set_byname;
2441         int function( cef_v8interceptor_t*, int, cef_v8value_t*, cef_v8value_t*, cef_string_t* ) set_byindex;
2442     }
2443 }
2444 
2445 struct cef_v8exception_t {
2446     cef_base_t base;
2447     extern( System ) @nogc nothrow {
2448         cef_string_userfree_t function( cef_v8exception_t* ) get_message;
2449         cef_string_userfree_t function( cef_v8exception_t* ) get_source_line;
2450         cef_string_userfree_t function( cef_v8exception_t* ) get_script_resource_name;
2451         int function( cef_v8exception_t* ) get_line_number;
2452         int function( cef_v8exception_t* ) get_start_position;
2453         int function( cef_v8exception_t* ) get_end_position;
2454         int function( cef_v8exception_t* ) get_start_column;
2455         int function( cef_v8exception_t* ) get_end_column;
2456     }
2457 }
2458 
2459 struct cef_v8array_buffer_release_callback_t {
2460     cef_base_t base;
2461     extern( System ) @nogc nothrow  void function( cef_v8array_buffer_release_callback_t*, void* ) release_buffer;
2462 }
2463 
2464 struct cef_v8value_t {
2465     cef_base_t base;
2466     extern( System ) @nogc nothrow {
2467         int function( cef_v8value_t* ) is_valid;
2468         int function( cef_v8value_t* ) is_undefined;
2469         int function( cef_v8value_t* ) is_null;
2470         int function( cef_v8value_t* ) is_bool;
2471         int function( cef_v8value_t* ) is_int;
2472         int function( cef_v8value_t* ) is_uint;
2473         int function( cef_v8value_t* ) is_double;
2474         int function( cef_v8value_t* ) is_date;
2475         int function( cef_v8value_t* ) is_string;
2476         int function( cef_v8value_t* ) is_object;
2477         int function( cef_v8value_t* ) is_array;
2478         int function( cef_v8value_t* ) is_array_buffer;
2479         int function( cef_v8value_t* ) is_function;
2480         int function( cef_v8value_t*, cef_v8value_t* ) is_same;
2481         int function( cef_v8value_t* ) get_bool_value;
2482         int32 function( cef_v8value_t* ) get_int_value;
2483         uint32 function( cef_v8value_t* ) get_uint_value;
2484         double function( cef_v8value_t* ) get_double_value;
2485         cef_time_t function( cef_v8value_t* ) get_date_value;
2486         cef_string_userfree_t function( cef_v8value_t* ) get_string_value;
2487         int function( cef_v8value_t* ) is_user_created;
2488         int function( cef_v8value_t* ) has_exception;
2489         cef_v8exception_t* function( cef_v8value_t* ) get_exception;
2490         int function( cef_v8value_t* ) clear_exception;
2491         int function( cef_v8value_t* ) will_rethrow_exceptions;
2492         int function( cef_v8value_t*, int ) set_rethrow_exceptions;
2493         int function( cef_v8value_t*, const( cef_string_t )* ) has_value_bykey;
2494         int function( cef_v8value_t*, int ) has_value_byindex;
2495         int function( cef_v8value_t*, const( cef_string_t )* ) delete_value_bykey;
2496         int function( cef_v8value_t*, int ) delete_value_byindex;
2497         cef_v8value_t* function( cef_v8value_t*, const( cef_string_t )* ) get_value_bykey;
2498         cef_v8value_t* function( cef_v8value_t*, int ) get_value_byindex;
2499         int function( cef_v8value_t*, const( cef_string_t )*, cef_v8value_t*, cef_v8_propertyattribute_t ) set_value_bykey;
2500         int function( cef_v8value_t*, int, cef_v8value_t* ) set_value_byindex;
2501         int function( cef_v8value_t*, const( cef_string_t )*, cef_v8_accesscontrol_t, cef_v8_propertyattribute_t ) set_value_byaccessor;
2502         int function( cef_v8value_t*, cef_string_list_t ) get_keys;
2503         int function( cef_v8value_t*, cef_base_t* ) set_user_data;
2504         cef_base_t* function( cef_v8value_t* ) get_user_data;
2505         int function( cef_v8value_t* ) get_externally_allocated_memory;
2506         int function( cef_v8value_t*, int ) adjust_externally_allocated_memory;
2507         int function( cef_v8value_t* ) get_array_length;
2508         cef_v8array_buffer_release_callback_t* function( cef_v8value_t* ) get_array_buffer_release_callback;
2509         int function( cef_v8value_t* ) neuter_array_buffer;
2510         cef_string_userfree_t function( cef_v8value_t* ) get_function_name;
2511         cef_v8handler_t* function( cef_v8value_t* ) get_function_handler;
2512         cef_v8value_t* function( cef_v8value_t*, cef_v8value_t*, size_t, const( cef_v8value_t* ) ) execute_function;
2513         cef_v8value_t* function( cef_v8value_t*, cef_v8context_t*, cef_v8value_t*, size_t, const( cef_v8value_t* )) execute_function_with_context;
2514     }
2515 }
2516 
2517 struct cef_v8stack_trace_t {
2518     cef_base_t base;
2519     extern( System ) @nogc nothrow {
2520         int function( cef_v8stack_trace_t* ) is_valid;
2521         int function( cef_v8stack_trace_t* ) get_frame_count;
2522         cef_v8stack_frame_t* function( cef_v8stack_trace_t*, int ) get_frame;
2523     }
2524 }
2525 
2526 struct cef_v8stack_frame_t {
2527     cef_base_t base;
2528     extern( System ) @nogc nothrow {
2529         int function( cef_v8stack_frame_t* ) is_valid;
2530         cef_string_userfree_t function( cef_v8stack_frame_t* ) get_script_name;
2531         cef_string_userfree_t function( cef_v8stack_frame_t* ) get_script_name_or_source_url;
2532         cef_string_userfree_t function( cef_v8stack_frame_t* ) get_function_name;
2533         int function( cef_v8stack_frame_t* ) get_line_number;
2534         int function( cef_v8stack_frame_t* ) get_column;
2535         int function( cef_v8stack_frame_t* ) is_eval;
2536         int function( cef_v8stack_frame_t* ) is_constructor;
2537     }
2538 }
2539 
2540 
2541 // cef_values_capi.h
2542 struct cef_value_t {
2543     cef_base_t base;
2544     extern( System ) @nogc nothrow {
2545         int function( cef_value_t* ) is_valid;
2546         int function( cef_value_t* ) is_owned;
2547         int function( cef_value_t* ) is_read_only;
2548         int function( cef_value_t*, cef_value_t* ) is_same;
2549         int function( cef_value_t*, cef_value_t* ) is_equal;
2550         cef_value_t* function( cef_value_t* ) copy;
2551         cef_value_type_t function( cef_value_t* ) get_type;
2552         int function( cef_value_t* ) get_bool;
2553         int function( cef_value_t* ) get_int;
2554         double function( cef_value_t* ) get_double;
2555         cef_string_userfree_t function( cef_value_t* ) get_string;
2556         cef_binary_value_t* function( cef_value_t* ) get_binary;
2557         cef_dictionary_value_t* function( cef_value_t* ) get_dictionary;
2558         cef_list_value_t* function( cef_value_t* ) get_list;
2559         int function( cef_value_t* ) set_null;
2560         int function( cef_value_t*, int ) set_bool;
2561         int function( cef_value_t*, int ) set_int;
2562         int function( cef_value_t*, double ) set_double;
2563         int function( cef_value_t*, const( cef_string_t )* ) set_string;
2564         int function( cef_value_t*, cef_binary_value_t* ) set_binary;
2565         int function( cef_value_t*, cef_dictionary_value_t* ) set_dictionary;
2566         int function( cef_value_t*, cef_list_value_t* ) set_list;
2567     }
2568 }
2569 
2570 struct cef_binary_value_t {
2571     cef_base_t base;
2572     extern( System ) @nogc nothrow {
2573         int function( cef_binary_value_t* ) is_valid;
2574         int function( cef_binary_value_t* ) is_owned;
2575         int function( cef_binary_value_t*, cef_binary_value_t* ) is_same;
2576         int function( cef_binary_value_t*, cef_binary_value_t* ) is_equal;
2577         cef_binary_value_t* function( cef_binary_value_t* ) copy;
2578         size_t function( cef_binary_value_t* ) get_size;
2579         size_t function( cef_binary_value_t*, void*, size_t, size_t ) get_data;
2580     }
2581 }
2582 
2583 struct cef_dictionary_value_t {
2584     cef_base_t base;
2585     extern( System ) @nogc nothrow {
2586         int function( cef_dictionary_value_t* ) is_valid;
2587         int function( cef_dictionary_value_t* ) is_owned;
2588         int function( cef_dictionary_value_t* ) is_read_only;
2589         int function( cef_dictionary_value_t*, cef_dictionary_value_t* ) is_same;
2590         int function( cef_dictionary_value_t*, cef_dictionary_value_t* ) is_equal;
2591         cef_dictionary_value_t* function( cef_dictionary_value_t*, int ) copy;
2592         size_t function( cef_dictionary_value_t* ) get_size;
2593         int function( cef_dictionary_value_t* ) clear;
2594         int function( cef_dictionary_value_t*, const( cef_string_t )* ) has_key;
2595         int function( cef_dictionary_value_t*, cef_string_list_t ) get_keys;
2596         int function( cef_dictionary_value_t*, const( cef_string_t )* ) remove;
2597         cef_value_type_t function( cef_dictionary_value_t*, const( cef_string_t )* ) get_type;
2598         cef_value_t* function( cef_dictionary_value_t*, const( cef_string_t )* ) get_value;
2599         int function( cef_dictionary_value_t*, const( cef_string_t )* ) get_bool;
2600         int function( cef_dictionary_value_t*, const( cef_string_t )* ) get_int;
2601         double function( cef_dictionary_value_t*, const( cef_string_t )* ) get_double;
2602         cef_string_userfree_t function( cef_dictionary_value_t*, const( cef_string_t )* ) get_string;
2603         cef_binary_value_t* function( cef_dictionary_value_t* self, const( cef_string_t )* key) get_binary;
2604         cef_dictionary_value_t* function( cef_dictionary_value_t* self, const( cef_string_t )* key) get_dictionary;
2605         cef_list_value_t* function( cef_dictionary_value_t*, const( cef_string_t )* ) get_list;
2606         int function( cef_dictionary_value_t*, const( cef_string_t )*, cef_value_t* ) set_value;
2607         int function( cef_dictionary_value_t*, const( cef_string_t )* ) set_null;
2608         int function( cef_dictionary_value_t*, const( cef_string_t )*, int ) set_bool;
2609         int function( cef_dictionary_value_t*, const( cef_string_t )*, int ) set_int;
2610         int function( cef_dictionary_value_t*, const( cef_string_t )*, double ) set_double;
2611         int function( cef_dictionary_value_t*, const( cef_string_t )*, const( cef_string_t )* ) set_string;
2612         int function( cef_dictionary_value_t*, const( cef_string_t )*, cef_binary_value_t* ) set_binary;
2613         int function( cef_dictionary_value_t*, const( cef_string_t )*, cef_dictionary_value_t* ) set_dictionary;
2614         int function( cef_dictionary_value_t*, const( cef_string_t )*, cef_list_value_t* ) set_list;
2615     }
2616 }
2617 
2618 struct cef_list_value_t {
2619     cef_base_t base;
2620     extern( System ) @nogc nothrow {
2621         int function( cef_list_value_t* ) is_valid;
2622         int function( cef_list_value_t* ) is_owned;
2623         int function( cef_list_value_t* ) is_read_only;
2624         int function( cef_list_value_t*, cef_list_value_t* ) is_same;
2625         int function( cef_list_value_t*, cef_list_value_t* ) is_equal;
2626         cef_list_value_t* function( cef_list_value_t* ) copy;
2627         int function( cef_list_value_t*, size_t ) set_size;
2628         size_t function( cef_list_value_t* ) get_size;
2629         int function( cef_list_value_t* ) clear;
2630         int function( cef_list_value_t*, size_t ) remove;
2631         cef_value_type_t function( cef_list_value_t*, size_t ) get_type;
2632         cef_value_t* function( cef_list_value_t*, size_t ) get_value;
2633         int function( cef_list_value_t*, size_t ) get_bool;
2634         int function( cef_list_value_t*, size_t ) get_int;
2635         double function( cef_list_value_t*, size_t ) get_double;
2636         cef_string_userfree_t function( cef_list_value_t*, size_t ) get_string;
2637         cef_binary_value_t* function( cef_list_value_t*, size_t ) get_binary;
2638         cef_dictionary_value_t* function( cef_list_value_t*, size_t ) get_dictionary;
2639         cef_list_value_t* function( cef_list_value_t*, size_t ) get_list;
2640         int function( cef_list_value_t*, size_t, cef_value_t* ) set_value;
2641         int function( cef_list_value_t*, size_t ) set_null;
2642         int function( cef_list_value_t*, size_t, int ) set_bool;
2643         int function( cef_list_value_t*, size_t, int ) set_int;
2644         int function( cef_list_value_t*, size_t, double ) set_double;
2645         int function( cef_list_value_t*, size_t, const( cef_string_t )* ) set_string;
2646         int function( cef_list_value_t*, size_t, cef_binary_value_t* ) set_binary;
2647         int function( cef_list_value_t*, size_t, cef_dictionary_value_t*value) set_dictionary;
2648         int function( cef_list_value_t*, size_t, cef_list_value_t* ) set_list;
2649     }
2650 }
2651 
2652 // cef_waitable_event_capi.h
2653 struct cef_waitable_event_t {
2654     cef_base_t base;
2655     extern( System ) @nogc nothrow {
2656         void function( cef_waitable_event_t* ) reset;
2657         void function( cef_waitable_event_t* ) signal;
2658         int function( cef_waitable_event_t* ) is_signaled;
2659         void function( cef_waitable_event_t* ) wait;
2660         int function( cef_waitable_event_t*, ulong ) timed_wait;
2661     }
2662 }
2663 
2664 // cef_web_plugin_capi.h
2665 struct cef_web_plugin_info_t {
2666     cef_base_t base;
2667     extern( System ) @nogc nothrow {
2668         cef_string_userfree_t function( cef_web_plugin_info_t* ) get_name;
2669         cef_string_userfree_t function( cef_web_plugin_info_t* ) get_path;
2670         cef_string_userfree_t function( cef_web_plugin_info_t* ) get_version;
2671         cef_string_userfree_t function( cef_web_plugin_info_t* ) get_description;
2672     }
2673 }
2674 
2675 struct cef_web_plugin_info_visitor_t {
2676     cef_base_t base;
2677     extern( System ) @nogc nothrow int function( cef_web_plugin_info_visitor_t*,cef_web_plugin_info_t*,int,int ) visit;
2678 }
2679 
2680 struct cef_web_plugin_unstable_callback_t {
2681     cef_base_t base;
2682     extern( System ) @nogc nothrow void function( cef_web_plugin_unstable_callback_t,const( cef_string_t )*,int ) is_unstable;
2683 }
2684 
2685 struct cef_register_cdm_callback_t {
2686     cef_base_t base;
2687     extern( System ) @nogc nothrow void function( cef_register_cdm_callback_t*, cef_cdm_registration_error_t, const ( cef_string_t )* ) on_cdm_registration_complete;
2688 }
2689 
2690 // cef_x509_certificate_capi.h
2691 struct cef_x509cert_principal_t {
2692     cef_base_t base;
2693     extern( System ) @nogc nothrow {
2694         cef_string_userfree_t function( cef_x509cert_principal_t* ) get_display_name;
2695         cef_string_userfree_t function( cef_x509cert_principal_t* ) get_common_name;
2696         cef_string_userfree_t function( cef_x509cert_principal_t* ) get_locality_name;
2697         cef_string_userfree_t function( cef_x509cert_principal_t* ) get_state_or_province_name;
2698         cef_string_userfree_t function( cef_x509cert_principal_t* ) get_country_name;
2699         void function( cef_x509cert_principal_t*, cef_string_list_t ) get_street_addresses;
2700         void function( cef_x509cert_principal_t*, cef_string_list_t ) get_organization_names;
2701         void function( cef_x509cert_principal_t*, cef_string_list_t ) get_organization_unit_names;
2702         void function( cef_x509cert_principal_t*, cef_string_list_t ) get_domain_components;
2703     }
2704 }
2705 
2706 struct cef_x509certificate_t {
2707     cef_base_t base;
2708     extern( System ) @nogc nothrow {
2709         cef_x509cert_principal_t* function( cef_x509certificate_t* ) get_subject;
2710         cef_x509cert_principal_t* function( cef_x509certificate_t* ) get_issuer;
2711         cef_binary_value_t* function( cef_x509certificate_t* ) get_serial_number;
2712         cef_time_t function( cef_x509certificate_t* ) get_valid_start;
2713         cef_time_t function( cef_x509certificate_t* ) get_valid_expiry;
2714         cef_binary_value_t* function( cef_x509certificate_t* ) get_derencoded;
2715         cef_binary_value_t* function( cef_x509certificate_t* ) get_pemencoded;
2716         size_t function( cef_x509certificate_t* ) get_issuer_chain_size;
2717         void function( cef_x509certificate_t*, size_t*, cef_binary_value_t** ) get_derencoded_issuer_chain;
2718         void function( cef_x509certificate_t*, size_t*, cef_binary_value_t** ) get_pemencoded_issuer_chain;
2719     }
2720 }
2721 
2722 // cef_xml_reader_capi.h
2723 struct cef_xml_reader_t {
2724     cef_base_t base;
2725     extern( System ) @nogc nothrow {
2726         int function( cef_xml_reader_t* ) move_to_next_node;
2727         int function( cef_xml_reader_t* ) close;
2728         int function( cef_xml_reader_t* ) has_error;
2729         cef_string_userfree_t function( cef_xml_reader_t* ) get_error;
2730         cef_xml_node_type_t function( cef_xml_reader_t* ) get_type;
2731         int function( cef_xml_reader_t* ) get_depth;
2732         cef_string_userfree_t function( cef_xml_reader_t* ) get_local_name;
2733         cef_string_userfree_t function( cef_xml_reader_t* ) get_prefix;
2734         cef_string_userfree_t function( cef_xml_reader_t* ) get_qualified_name;
2735         cef_string_userfree_t function( cef_xml_reader_t* ) get_namespace_uri;
2736         cef_string_userfree_t function( cef_xml_reader_t* ) get_base_uri;
2737         cef_string_userfree_t function( cef_xml_reader_t* ) get_xml_lang;
2738         int function( cef_xml_reader_t* ) is_empty_element;
2739         int function( cef_xml_reader_t* ) has_value;
2740         cef_string_userfree_t function( cef_xml_reader_t* ) get_value;
2741         int function( cef_xml_reader_t* ) has_attributes;
2742         size_t function( cef_xml_reader_t* ) get_attribute_count;
2743         cef_string_userfree_t function( cef_xml_reader_t*,int ) get_attribute_byindex;
2744         cef_string_userfree_t function( cef_xml_reader_t*,const( cef_string_t )* ) get_attribute_byqname;
2745         cef_string_userfree_t function( cef_xml_reader_t*,const( cef_string_t )*,const( cef_string_t )* ) get_attribute_bylname;
2746         cef_string_userfree_t function( cef_xml_reader_t* ) get_inner_xml;
2747         cef_string_userfree_t function( cef_xml_reader_t* ) get_outer_xml;
2748         int function( cef_xml_reader_t* ) get_line_number;
2749         int function( cef_xml_reader_t*,int ) move_to_attribute_by_index;
2750         int function( cef_xml_reader_t*,const( cef_string_t )* ) move_to_attribute_byqname;
2751         int function( cef_xml_reader_t*,const( cef_string_t )*,const( cef_string_t )* ) move_to_attribute_bylname;
2752         int function( cef_xml_reader_t* ) move_to_first_attribute;
2753         int function( cef_xml_reader_t* ) move_to_next_attribute;
2754         int function( cef_xml_reader_t* ) move_to_carrying_element;
2755     }
2756 }
2757 
2758 // cef_zip_reader_capi.h
2759 struct cef_zip_reader_t {
2760     import core.stdc.time : time_t;
2761 
2762     cef_base_t base;
2763     extern( System ) @nogc nothrow {
2764         int function( cef_zip_reader_t* ) move_to_first_file;
2765         int function( cef_zip_reader_t* ) move_to_next_file;
2766         int function( cef_zip_reader_t*,const( cef_string_t )*,int ) move_to_file;
2767         int function( cef_zip_reader_t* ) close;
2768         cef_string_userfree_t function( cef_zip_reader_t* ) get_file_name;
2769         int64 function( cef_zip_reader_t* ) get_file_size;
2770         time_t function( cef_zip_reader_t* ) get_file_last_modified;
2771         int function( cef_zip_reader_t*,const( cef_string_t )* ) open_file;
2772         int function( cef_zip_reader_t* ) close_file;
2773         int function( cef_zip_reader_t*,void*,size_t ) read_file;
2774         int64 function( cef_zip_reader_t* ) tell;
2775         int function( cef_zip_reader_t* ) eof;
2776     }
2777 }
2778 
2779 // test/cef_translator_test_capi.h
2780 struct cef_translator_test_t {
2781     cef_base_t base;
2782     extern( System ) @nogc nothrow {
2783         void function( cef_translator_test_t* ) get_void;
2784         int function( cef_translator_test_t* ) get_bool;
2785         int function( cef_translator_test_t* ) get_int;
2786         double function( cef_translator_test_t* ) get_double;
2787         long function( cef_translator_test_t* ) get_long;
2788         size_t function( cef_translator_test_t* ) get_sizet;
2789         int function( cef_translator_test_t* ) set_void;
2790         int function( cef_translator_test_t*, int ) set_bool;
2791         int function( cef_translator_test_t*, int ) set_int;
2792         int function( cef_translator_test_t*, double ) set_double;
2793         int function( cef_translator_test_t*, long ) set_long;
2794         int function( cef_translator_test_t*, size_t ) set_sizet;
2795         int function( cef_translator_test_t*, size_t, const( int* ) ) set_int_list;
2796         int function( cef_translator_test_t*, size_t*, int* ) get_int_list_by_ref;
2797         size_t function( cef_translator_test_t* ) get_int_list_size;
2798         cef_string_userfree_t function( cef_translator_test_t* ) get_string;
2799         int function( cef_translator_test_t*, const( cef_string_t )* ) set_string;
2800         void function( cef_translator_test_t*, cef_string_t* ) get_string_by_ref;
2801         int function( cef_translator_test_t*, cef_string_list_t ) set_string_list;
2802         int function( cef_translator_test_t*, cef_string_list_t ) get_string_list_by_ref;
2803         int function( cef_translator_test_t*, cef_string_map_t ) set_string_map;
2804         int function( cef_translator_test_t*, cef_string_map_t ) get_string_map_by_ref;
2805         int function( cef_translator_test_t*, cef_string_multimap_t ) set_string_multimap;
2806         int function( cef_translator_test_t*, cef_string_multimap_t ) get_string_multimap_by_ref;
2807         cef_point_t function( cef_translator_test_t* ) get_point;
2808         int function( cef_translator_test_t*, const( cef_point_t )* ) set_point;
2809         void function( cef_translator_test_t*, cef_point_t* ) get_point_by_ref;
2810         int function( cef_translator_test_t*, size_t, const( cef_point_t* ) val) set_point_list;
2811         int function( cef_translator_test_t*, size_t*, cef_point_t* ) get_point_list_by_ref;
2812         size_t function( cef_translator_test_t* ) get_point_list_size;
2813         cef_translator_test_ref_ptr_library_t* function( cef_translator_test_t*, int ) get_ref_ptr_library;
2814         int function( cef_translator_test_t*, cef_translator_test_ref_ptr_library_t* ) set_ref_ptr_library;
2815         cef_translator_test_ref_ptr_library_t* function( cef_translator_test_t*, cef_translator_test_ref_ptr_library_t* ) set_ref_ptr_library_and_return;
2816         int function( cef_translator_test_t*, cef_translator_test_ref_ptr_library_child_t* ) set_child_ref_ptr_library;
2817         cef_translator_test_ref_ptr_library_t* function( cef_translator_test_t*, cef_translator_test_ref_ptr_library_child_t* ) set_child_ref_ptr_library_and_return_parent;
2818         int function( cef_translator_test_t*, size_t, const( cef_translator_test_ref_ptr_library_t* ) val, int , int ) set_ref_ptr_library_list;
2819         int function( cef_translator_test_t*, size_t*, cef_translator_test_ref_ptr_library_t**, int, int ) get_ref_ptr_library_list_by_ref;
2820         size_t function( cef_translator_test_t* ) get_ref_ptr_library_list_size;
2821         int function( cef_translator_test_t*, cef_translator_test_ref_ptr_client_t* ) set_ref_ptr_client;
2822         cef_translator_test_ref_ptr_client_t* function( cef_translator_test_t* self, cef_translator_test_ref_ptr_client_t* ) set_ref_ptr_client_and_return;
2823         int function( cef_translator_test_t*, cef_translator_test_ref_ptr_client_child_t* ) set_child_ref_ptr_client;
2824         cef_translator_test_ref_ptr_client_t* function( cef_translator_test_t*, cef_translator_test_ref_ptr_client_child_t* ) set_child_ref_ptr_client_and_return_parent;
2825         int function( cef_translator_test_t*, size_t, const( cef_translator_test_ref_ptr_client_t* ) val, int, int ) set_ref_ptr_client_list;
2826         int function( cef_translator_test_t*, size_t*, cef_translator_test_ref_ptr_client_t**, cef_translator_test_ref_ptr_client_t*, cef_translator_test_ref_ptr_client_t* ) get_ref_ptr_client_list_by_ref;
2827         size_t function( cef_translator_test_t* ) get_ref_ptr_client_list_size;
2828         cef_translator_test_scoped_library_t* function( cef_translator_test_t*, int ) get_own_ptr_library;
2829         int function( cef_translator_test_t*, cef_translator_test_scoped_library_t* ) set_own_ptr_library;
2830         cef_translator_test_scoped_library_t* function( cef_translator_test_t*, cef_translator_test_scoped_library_t* ) set_own_ptr_library_and_return;
2831         int function( cef_translator_test_t*, cef_translator_test_scoped_library_child_t* ) set_child_own_ptr_library;
2832         cef_translator_test_scoped_library_t* function( cef_translator_test_t*, cef_translator_test_scoped_library_child_t* ) set_child_own_ptr_library_and_return_parent;
2833         int function( cef_translator_test_t*, cef_translator_test_scoped_client_t* ) set_own_ptr_client;
2834         cef_translator_test_scoped_client_t* function( cef_translator_test_t*, cef_translator_test_scoped_client_t* ) set_own_ptr_client_and_return;
2835         int function( cef_translator_test_t*, cef_translator_test_scoped_client_child_t* ) set_child_own_ptr_client;
2836         cef_translator_test_scoped_client_t* function( cef_translator_test_t*, cef_translator_test_scoped_client_child_t* ) set_child_own_ptr_client_and_return_parent;
2837         int function( cef_translator_test_t*, cef_translator_test_scoped_library_t* ) set_raw_ptr_library;
2838         int function( cef_translator_test_t*, cef_translator_test_scoped_library_child_t* ) set_child_raw_ptr_library;
2839         int function( cef_translator_test_t*, size_t, const( cef_translator_test_scoped_library_t* ), int, int ) set_raw_ptr_library_list;
2840         int function( cef_translator_test_t*, cef_translator_test_scoped_client_t* ) set_raw_ptr_client;
2841         int function( cef_translator_test_t*, cef_translator_test_scoped_client_child_t* ) set_child_raw_ptr_client;
2842         int function( cef_translator_test_t*, size_t, const( cef_translator_test_scoped_client_t* ), int, int ) set_raw_ptr_client_list;
2843     }
2844 }
2845 
2846 struct cef_translator_test_ref_ptr_library_t {
2847     cef_base_t base;
2848     extern( System ) @nogc nothrow {
2849         int function( cef_translator_test_ref_ptr_library_t* ) get_value;
2850         void function( cef_translator_test_ref_ptr_library_t*, int ) set_value;
2851     }
2852 }
2853 
2854 struct cef_translator_test_ref_ptr_library_child_t {
2855     cef_base_t base;
2856     extern( System ) @nogc nothrow {
2857         int function( cef_translator_test_ref_ptr_library_child_t* ) get_other_value;
2858         void function( cef_translator_test_ref_ptr_library_child_t*, int ) set_other_value;
2859     }
2860 }
2861 
2862 struct cef_translator_test_ref_ptr_library_child_child_t {
2863     cef_translator_test_ref_ptr_library_t base;
2864     extern( System ) @nogc nothrow {
2865         int function( cef_translator_test_ref_ptr_library_child_child_t* ) get_other_other_value;
2866         void function( cef_translator_test_ref_ptr_library_child_child_t*, int ) set_other_other_value;
2867     }
2868 }
2869 
2870 struct cef_translator_test_ref_ptr_client_t {
2871     cef_base_t base;
2872     extern( System ) @nogc nothrow int function( cef_translator_test_ref_ptr_client_t* ) get_value;
2873 }
2874 
2875 struct cef_translator_test_ref_ptr_client_child_t {
2876     cef_translator_test_ref_ptr_client_t base;
2877     extern( System ) @nogc nothrow int function( cef_translator_test_ref_ptr_client_child_t* ) get_other_value;
2878 }
2879 
2880 struct cef_translator_test_scoped_library_t {
2881     cef_base_scoped_t base;
2882     extern( System ) @nogc nothrow {
2883         int function( cef_translator_test_scoped_library_t* ) get_value;
2884         void function( cef_translator_test_scoped_library_t*, int ) set_value;
2885     }
2886 }
2887 
2888 struct cef_translator_test_scoped_library_child_t {
2889     cef_translator_test_scoped_library_t base;
2890     extern( System ) @nogc nothrow {
2891         int function( cef_translator_test_scoped_library_child_t* ) get_other_value;
2892         void function( cef_translator_test_scoped_library_child_t*, int ) set_other_value;
2893     }
2894 }
2895 
2896 struct cef_translator_test_scoped_library_child_child_t {
2897     cef_translator_test_scoped_library_child_t base;
2898     extern( System ) @nogc nothrow {
2899         int function( cef_translator_test_scoped_library_child_child_t* ) get_other_other_value;
2900         void function( cef_translator_test_scoped_library_child_child_t*, int ) set_other_other_value;
2901     }
2902 }
2903 
2904 struct cef_translator_test_scoped_client_t {
2905     cef_base_scoped_t base;
2906     extern( System ) @nogc nothrow int function( cef_translator_test_scoped_client_t* ) get_value;
2907 }
2908 
2909 struct cef_translator_test_scoped_client_child_t {
2910     cef_translator_test_scoped_client_t base;
2911     extern( System ) @nogc nothrow int function( cef_translator_test_scoped_client_child_t* ) get_other_value;
2912 }
2913 
2914 // views/cef_box_layout_capi.h
2915 struct cef_box_layout_t {
2916     cef_layout_t base;
2917     extern( System ) @nogc nothrow {
2918         void function( cef_box_layout_t*, cef_view_t*, int ) set_flex_for_view;
2919         void function( cef_box_layout_t*, cef_view_t* ) clear_flex_for_view;
2920     }
2921 }
2922 
2923 // views/cef_browser_view_capi.h
2924 struct cef_browser_view_t {
2925     cef_view_t base;
2926     extern( System ) @nogc nothrow {
2927         cef_browser_t* function( cef_browser_view_t* ) get_browser;
2928         void function( cef_browser_view_t* , int ) set_prefer_accelerators;
2929     }
2930 }
2931 
2932 // views/cef_browser_view_delegate_capi.h
2933 struct cef_browser_view_delegate_t {
2934     cef_view_delegate_t base;
2935     extern( System ) @nogc nothrow {
2936         void function( cef_browser_view_delegate_t*, cef_browser_view_t*, cef_browser_t* ) on_browser_created;
2937         void function( cef_browser_view_delegate_t*, cef_browser_view_t*, cef_browser_t* ) on_browser_destroyed;
2938         cef_browser_view_delegate_t* function( cef_browser_view_delegate_t*, cef_browser_view_t*, const( cef_browser_settings_t )*, cef_client_t*, int ) get_delegate_for_popup_browser_view;
2939         int function( cef_browser_view_delegate_t*, cef_browser_view_t*, cef_browser_view_t*, int is_devtools) on_popup_browser_view_created;
2940     }
2941 }
2942 
2943 // views/cef_button_capi.h
2944 struct cef_button_t {
2945     cef_view_t base;
2946     extern( System ) @nogc nothrow {
2947         cef_label_button_t* function( cef_button_t* ) as_label_button;
2948         void function( cef_button_t*, cef_button_state_t ) set_state;
2949         cef_button_state_t function( cef_button_t* ) get_state;
2950         void function( cef_button_t*, int ) set_ink_drop_enabled;
2951         void function( cef_button_t*, const( cef_string_t )* ) set_tooltip_text;
2952         void function( cef_button_t*, const( cef_string_t )* ) set_accessible_name;
2953     }
2954 }
2955 
2956 // views/cef_button_delegate_capi.h
2957 struct cef_button_delegate_t {
2958     cef_view_delegate_t base;
2959     extern( System ) @nogc nothrow {
2960         void function( cef_button_delegate_t*, cef_button_t* ) on_button_pressed;
2961         void function( cef_button_delegate_t*, cef_button_t* ) on_button_state_changed;
2962     }
2963 }
2964 
2965 // views/cef_display_capi.h
2966 struct cef_display_t {
2967     cef_base_t base;
2968     extern( System ) @nogc nothrow {
2969         long function( cef_display_t* )get_id;
2970         float function( cef_display_t* ) get_device_scale_factor;
2971         void function( cef_display_t*, cef_point_t* ) convert_point_to_pixels;
2972         void function( cef_display_t*, cef_point_t* ) convert_point_from_pixels;
2973         cef_rect_t function( cef_display_t* ) get_bounds;
2974         cef_rect_t function( cef_display_t* ) get_work_area;
2975         int function( cef_display_t* ) get_rotation;
2976     }
2977 }
2978 
2979 // views/cef_fill_layout_capi.h
2980 struct cef_fill_layout_t {
2981     cef_layout_t base;
2982 }
2983 
2984 // views/cef_label_button_capi.h
2985 struct cef_label_button_t {
2986     cef_button_t base;
2987     extern( System ) @nogc nothrow {
2988         cef_menu_button_t* function( cef_label_button_t* ) as_menu_button;
2989         void function( cef_label_button_t*, const( cef_string_t )* ) set_text;
2990         cef_string_userfree_t function( cef_label_button_t* ) get_text;
2991         void function( cef_label_button_t*, cef_button_state_t, cef_image_t* ) set_image;
2992         cef_image_t* function( cef_label_button_t*, cef_button_state_t ) get_image;
2993         void function( cef_label_button_t*, cef_button_state_t, cef_color_t ) set_text_color;
2994         void function( cef_label_button_t* , cef_color_t ) set_enabled_text_colors;
2995         void function( cef_label_button_t* , const( cef_string_t )* ) set_font_list;
2996         void function( cef_label_button_t*, cef_horizontal_alignment_t ) set_horizontal_alignment;
2997         void function( cef_label_button_t*, const( cef_size_t )* size) set_minimum_size;
2998         void function( cef_label_button_t*, const( cef_size_t )* ) set_maximum_size;
2999     }
3000 }
3001 
3002 // views/cef_layout_capi.h
3003 struct cef_layout_t {
3004     cef_base_t base;
3005     extern( System ) @nogc nothrow {
3006         cef_box_layout_t* function( cef_layout_t* ) as_box_layout;
3007         cef_fill_layout_t* function( cef_layout_t* ) as_fill_layout;
3008         int function( cef_layout_t* ) is_valid;
3009     }
3010 }
3011 
3012 // views/cef_menu_button_capi.h
3013 struct cef_menu_button_t {
3014     cef_label_button_t base;
3015     extern( System ) @nogc nothrow {
3016         void function( cef_menu_button_t*, cef_menu_model_t*, const( cef_point_t )* , cef_menu_anchor_position_t ) show_menu;
3017         void function( cef_menu_button_t* ) trigger_menu;
3018     }
3019 }
3020 
3021 // views/cef_menu_button_delegate_capi.h
3022 struct cef_menu_button_pressed_lock_t {
3023     cef_base_t base;
3024 }
3025 
3026 struct cef_menu_button_delegate_t {
3027     cef_button_delegate_t base;
3028     extern( System ) @nogc nothrow void function( cef_menu_button_delegate_t* self, cef_menu_button_t*, const( cef_point_t )*, cef_menu_button_pressed_lock_t* ) on_menu_button_pressed;
3029 }
3030 
3031 // views/cef_panel_capi.h
3032 struct cef_panel_t {
3033     cef_view_t base;
3034     extern( System ) @nogc nothrow {
3035         cef_window_t* function( cef_panel_t* ) as_window;
3036         cef_fill_layout_t* function( cef_panel_t* ) set_to_fill_layout;
3037         cef_box_layout_t* function( cef_panel_t*, const( cef_box_layout_settings_t )* ) set_to_box_layout;
3038         cef_layout_t* function( cef_panel_t* ) get_layout;
3039         void function( cef_panel_t* ) layout;
3040         void function( cef_panel_t*, cef_view_t* ) add_child_view;
3041         void function( cef_panel_t*, cef_view_t*, int ) add_child_view_at;
3042         void function( cef_panel_t*, cef_view_t*, int ) reorder_child_view;
3043         void function( cef_panel_t*, cef_view_t* ) remove_child_view;
3044         void function( cef_panel_t* ) remove_all_child_views;
3045         size_t function( cef_panel_t* ) get_child_view_count;
3046         cef_view_t* function( cef_panel_t*, int ) get_child_view_at;
3047     }
3048 }
3049 
3050 // views/cef_panel_delegate_capi.h
3051 struct cef_panel_delegate_t {
3052     cef_view_delegate_t base;
3053 }
3054 
3055 // views/cef_scroll_view_capi.h
3056 struct cef_scroll_view_t {
3057     cef_view_t base;
3058     extern( System ) @nogc nothrow {
3059         void function( cef_scroll_view_t*, cef_view_t* ) set_content_view;
3060         cef_view_t* function( cef_scroll_view_t* ) get_content_view;
3061         cef_rect_t function( cef_scroll_view_t* ) get_visible_content_rect;
3062         int function( cef_scroll_view_t* ) has_horizontal_scrollbar ;
3063         int function( cef_scroll_view_t* ) get_horizontal_scrollbar_height;
3064         int function( cef_scroll_view_t* ) has_vertical_scrollbar;
3065         int function( cef_scroll_view_t* ) get_vertical_scrollbar_width;
3066     }
3067 }
3068 
3069 // views/cef_scroll_view_capi.h
3070 struct cef_textfield_t {
3071     cef_view_t base;
3072     extern( System ) @nogc nothrow {
3073         void function( cef_textfield_t*, int ) set_password_input;
3074         int function( cef_textfield_t* ) is_password_input;
3075         void function( cef_textfield_t*, int ) set_read_only;
3076         int function( cef_textfield_t* ) is_read_only;
3077         cef_string_userfree_t function( cef_textfield_t* ) get_text;
3078         void function( cef_textfield_t* , const( cef_string_t )* ) set_text;
3079         void function( cef_textfield_t*, const( cef_string_t )* ) append_text;
3080         void function( cef_textfield_t*, const( cef_string_t )* ) insert_or_replace_text;
3081         int function( cef_textfield_t* ) has_selection;
3082         cef_string_userfree_t function( cef_textfield_t* ) get_selected_text;
3083         void function( cef_textfield_t*, int ) select_all;
3084         void function( cef_textfield_t*) clear_selection;
3085         cef_range_t function( cef_textfield_t* ) get_selected_range;
3086         void function( cef_textfield_t*, const( cef_range_t )* ) select_range;
3087         size_t function( cef_textfield_t* ) get_cursor_position;
3088         void function( cef_textfield_t*, cef_color_t ) set_text_color;
3089         cef_color_t function( cef_textfield_t* ) get_text_color;
3090         void function( cef_textfield_t*, cef_color_t ) set_selection_text_color;
3091         cef_color_t function( cef_textfield_t* ) get_selection_text_color; 
3092         void function( cef_textfield_t*, cef_color_t ) set_selection_background_color;
3093         cef_color_t function( cef_textfield_t* ) get_selection_background_color;
3094         void function( cef_textfield_t*, cef_string_t* ) set_font_list;
3095         void function( cef_textfield_t*, cef_color_t, const( cef_range_t )* ) apply_text_color;
3096         void function( cef_textfield_t*, cef_text_style_t, int, const( cef_range_t )* ) apply_text_style;
3097         int function( cef_textfield_t*, int ) is_command_enabled;
3098         void function( cef_textfield_t*, int ) execute_command;
3099         void function( cef_textfield_t* )clear_edit_history;
3100         void function( cef_textfield_t*, const( cef_string_t )* text) set_placeholder_text;
3101         cef_string_userfree_t function( cef_textfield_t* ) get_placeholder_text;
3102         void function( cef_textfield_t*, cef_color_t ) set_placeholder_text_color;
3103         void function( cef_textfield_t*, const( cef_string_t )* ) set_accessible_name;
3104     }
3105 }
3106 
3107 // views/cef_textfield_delegate_capi.h
3108 struct cef_textfield_delegate_t {
3109     cef_view_delegate_t base;
3110     extern( System ) @nogc nothrow {
3111         int function( cef_textfield_delegate_t*, cef_textfield_t*, const( cef_key_event_t )* ) on_key_event;
3112         void function( cef_textfield_delegate_t*, cef_textfield_t* ) on_after_user_action;
3113     }
3114 }
3115 
3116 // views/cef_view_capi.h
3117 struct cef_view_t {
3118     cef_base_t base;
3119     extern( System ) @nogc nothrow {
3120         cef_browser_view_t* function( cef_view_t* ) as_browser_view;
3121         cef_button_t* function( cef_view_t* ) as_button;
3122         cef_panel_t* function( cef_view_t* ) as_panel;
3123         cef_scroll_view_t* function( cef_view_t* ) as_scroll_view;
3124         cef_textfield_t* function( cef_view_t* ) as_textfield;
3125         cef_string_userfree_t function( cef_view_t* ) get_type_string;
3126         cef_string_userfree_t function( cef_view_t* , int ) to_string;
3127         int function( cef_view_t* ) is_valid;
3128         int function( cef_view_t* ) is_attached;
3129         int function( cef_view_t*, cef_view_t* ) is_same;
3130         cef_view_delegate_t* function( cef_view_t* ) get_delegate;
3131         cef_window_t* function( cef_view_t* ) get_window;
3132         int function( cef_view_t* ) get_id;
3133         void function( cef_view_t*, int ) set_id;
3134         int function( cef_view_t*) get_group_id;
3135         void function( cef_view_t*, int ) set_group_id;
3136         cef_view_t* function( cef_view_t* ) get_parent_view;
3137         cef_view_t* function( cef_view_t*, int ) get_view_for_id;
3138         void function( cef_view_t*, const( cef_rect_t )* ) set_bounds;
3139         cef_rect_t function( cef_view_t* ) get_bounds;
3140         cef_rect_t function( cef_view_t* ) get_bounds_in_screen;
3141         void function( cef_view_t*, const( cef_size_t )* ) set_size;
3142         cef_size_t function( cef_view_t* ) get_size;
3143         void function( cef_view_t*, const( cef_point_t )* ) set_position;
3144         cef_point_t function( cef_view_t* ) get_position;
3145         cef_size_t function( cef_view_t* ) get_preferred_size;
3146         void function( cef_view_t* ) size_to_preferred_size;
3147         cef_size_t function( cef_view_t* ) get_minimum_size;
3148         cef_size_t function( cef_view_t* ) get_maximum_size;
3149         int function( cef_view_t*, int) get_height_for_width;
3150         void function( cef_view_t* ) invalidate_layout;
3151         void function( cef_view_t*, int ) set_visible;
3152         int function( cef_view_t* ) is_visible;
3153         int function( cef_view_t* ) is_drawn;
3154         void function( cef_view_t* , int ) set_enabled;
3155         int function( cef_view_t* ) is_enabled;
3156         void function( cef_view_t* , int ) set_focusable;
3157         int function( cef_view_t* ) is_focusable;
3158         int function( cef_view_t* ) is_accessibility_focusable;
3159         void function( cef_view_t* ) request_focus;
3160         void function( cef_view_t*, cef_color_t ) set_background_color;
3161         cef_color_t function( cef_view_t* ) get_background_color;
3162         int function( cef_view_t*, cef_point_t* ) convert_point_to_screen;
3163         int function( cef_view_t*, cef_point_t* ) convert_point_from_screen;
3164         int function( cef_view_t*, cef_point_t* ) convert_point_to_window;
3165         int function( cef_view_t*, cef_point_t* ) convert_point_from_window;
3166         int function( cef_view_t* , cef_view_t*, cef_point_t* ) convert_point_to_view;
3167         int function( cef_view_t*, cef_view_t*, cef_point_t* ) convert_point_from_view;
3168     }
3169 }
3170 
3171 // views/cef_view_delegate_capi.h
3172 struct cef_view_delegate_t {
3173     cef_base_t base;
3174     extern( System ) @nogc nothrow {
3175         cef_size_t function( cef_view_delegate_t*, cef_view_t* ) get_preferred_size;
3176         cef_size_t function( cef_view_delegate_t*, cef_view_t* ) get_minimum_size;
3177         cef_size_t function( cef_view_delegate_t*, cef_view_t*) get_maximum_size;
3178         int function( cef_view_delegate_t*, cef_view_t*, int ) get_height_for_width;
3179         void function( cef_view_delegate_t*, cef_view_t*, int , cef_view_t* ) on_parent_view_changed;
3180         void function( cef_view_delegate_t*, cef_view_t*, int, cef_view_t* ) on_child_view_changed;
3181         void function( cef_view_delegate_t* , cef_view_t* ) on_focus;
3182         void function( cef_view_delegate_t*, cef_view_t* ) on_blur;
3183     }
3184 }
3185 
3186 // views/cef_window_capi.h
3187 struct  cef_window_t {
3188     cef_panel_t base;
3189     extern( System ) @nogc nothrow {
3190         void function( cef_window_t* ) show;
3191         void function( cef_window_t* ) hide;
3192         void function( cef_window_t*, const( cef_size_t )* ) center_window;
3193         void function( cef_window_t* ) close;
3194         int function( cef_window_t* ) is_closed;
3195         void function( cef_window_t* ) activate;
3196         void function( cef_window_t* ) deactivate;
3197         int function( cef_window_t* ) is_active;
3198         void function( cef_window_t* ) bring_to_top;
3199         void function( cef_window_t*, int ) set_always_on_top;
3200         int function( cef_window_t* ) is_always_on_top;
3201         void function( cef_window_t* ) maximize;
3202         void function( cef_window_t* ) minimize;
3203         void function( cef_window_t* ) restore;
3204         void function( cef_window_t*, int ) set_fullscreen;
3205         int function( cef_window_t*) is_maximized;
3206         int function( cef_window_t* ) is_minimized;
3207         int function( cef_window_t* ) is_fullscreen;
3208         void function( cef_window_t*, const( cef_string_t )* ) set_title;
3209         cef_string_userfree_t function( cef_window_t* ) get_title;
3210         void function( cef_window_t*, cef_image_t* ) set_window_icon;
3211         cef_image_t* function( cef_window_t* ) get_window_icon;
3212         void function( cef_window_t*, cef_image_t* ) set_window_app_icon;
3213         cef_image_t* function( cef_window_t* ) get_window_app_icon;
3214         void function( cef_window_t*, cef_menu_model_t*, const( cef_point_t )* , cef_menu_anchor_position_t ) show_menu;
3215         void function( cef_window_t* ) cancel_menu;
3216         cef_display_t* function( cef_window_t* ) get_display;
3217         cef_rect_t function( cef_window_t* ) get_client_area_bounds_in_screen;
3218         void function( cef_window_t* , size_t, const( cef_draggable_region_t* ) ) set_draggable_regions;
3219         cef_window_handle_t function( cef_window_t* ) get_window_handle;
3220         void function( cef_window_t*, int, uint ) send_key_press;
3221         void function( cef_window_t*, int, int ) send_mouse_move;
3222         void function( cef_window_t*, cef_mouse_button_type_t, int, int ) send_mouse_events;
3223         void function( cef_window_t*, int, int, int, int, int ) set_accelerator;
3224         void function( cef_window_t*, int ) remove_accelerator;
3225         void function( cef_window_t* ) remove_all_accelerators;
3226     }
3227 }
3228 
3229 // views/cef_window_delegate_capi.h
3230 struct cef_window_delegate_t {
3231     cef_panel_delegate_t base;
3232     extern( System ) @nogc nothrow {
3233         void function( cef_window_delegate_t*, cef_window_t* ) on_window_created;
3234         void function( cef_window_delegate_t*, cef_window_t* ) on_window_destroyed;
3235         cef_window_t* function( cef_window_delegate_t*, cef_window_t*, int*, int* ) get_parent_window;
3236         int function( cef_window_delegate_t*, cef_window_t* ) is_frameless;
3237         int function( cef_window_delegate_t*, cef_window_t* ) can_resize;
3238         int function( cef_window_delegate_t*, cef_window_t* ) can_maximize;
3239         int function( cef_window_delegate_t*, cef_window_t* ) can_minimize;
3240         int function( cef_window_delegate_t*, cef_window_t* ) can_close;
3241         int function( cef_window_delegate_t*, cef_window_t*, int ) on_accelerator;
3242         int function( cef_window_delegate_t*, cef_window_t*, const( cef_key_event_t )* ) on_key_event;
3243     }
3244 }