34static const WCHAR beforeunloadW[] = {
'b',
'e',
'f',
'o',
'r',
'e',
'u',
'n',
'l',
'o',
'a',
'd',0};
35static const WCHAR onbeforeunloadW[] = {
'o',
'n',
'b',
'e',
'f',
'o',
'r',
'e',
'u',
'n',
'l',
'o',
'a',
'd',0};
46static const WCHAR contextmenuW[] = {
'c',
'o',
'n',
't',
'e',
'x',
't',
'm',
'e',
'n',
'u',0};
47static const WCHAR oncontextmenuW[] = {
'o',
'n',
'c',
'o',
'n',
't',
'e',
'x',
't',
'm',
'e',
'n',
'u',0};
49static const WCHAR dataavailableW[] = {
'd',
'a',
't',
'a',
'a',
'v',
'a',
'i',
'l',
'a',
'b',
'l',
'e',0};
50static const WCHAR ondataavailableW[] = {
'o',
'n',
'd',
'a',
't',
'a',
'a',
'v',
'a',
'i',
'l',
'a',
'b',
'l',
'e',0};
53static const WCHAR ondblclickW[] = {
'o',
'n',
'd',
'b',
'l',
'c',
'l',
'i',
'c',
'k',0};
59static const WCHAR ondragstartW[] = {
'o',
'n',
'd',
'r',
'a',
'g',
's',
't',
'a',
'r',
't',0};
77static const WCHAR onkeypressW[] = {
'o',
'n',
'k',
'e',
'y',
'p',
'r',
'e',
's',
's',0};
86static const WCHAR onmousedownW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'd',
'o',
'w',
'n',0};
89static const WCHAR onmousemoveW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'm',
'o',
'v',
'e',0};
92static const WCHAR onmouseoutW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'o',
'u',
't',0};
95static const WCHAR onmouseoverW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'o',
'v',
'e',
'r',0};
100static const WCHAR mousewheelW[] = {
'm',
'o',
'u',
's',
'e',
'w',
'h',
'e',
'e',
'l',0};
101static const WCHAR onmousewheelW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'w',
'h',
'e',
'e',
'l',0};
106static const WCHAR readystatechangeW[] = {
'r',
'e',
'a',
'd',
'y',
's',
't',
'a',
't',
'e',
'c',
'h',
'a',
'n',
'g',
'e',0};
107static const WCHAR onreadystatechangeW[] = {
'o',
'n',
'r',
'e',
'a',
'd',
'y',
's',
't',
'a',
't',
'e',
'c',
'h',
'a',
'n',
'g',
'e',0};
115static const WCHAR selectstartW[] = {
's',
'e',
'l',
'e',
'c',
't',
's',
't',
'a',
'r',
't',0};
116static const WCHAR onselectstartW[] = {
'o',
'n',
's',
'e',
'l',
'e',
'c',
't',
's',
't',
'a',
'r',
't',0};
121static const WCHAR HTMLEventsW[] = {
'H',
'T',
'M',
'L',
'E',
'v',
'e',
'n',
't',
's',0};
122static const WCHAR KeyboardEventW[] = {
'K',
'e',
'y',
'b',
'o',
'a',
'r',
'd',
'E',
'v',
'e',
'n',
't',0};
123static const WCHAR MouseEventW[] = {
'M',
'o',
'u',
's',
'e',
'E',
'v',
'e',
'n',
't',0};
147#define EVENT_DEFAULTLISTENER 0x0001
148#define EVENT_BUBBLE 0x0002
149#define EVENT_FORWARDBODY 0x0004
150#define EVENT_BIND_TO_BODY 0x0008
151#define EVENT_CANCELABLE 0x0010
152#define EVENT_HASDEFAULTHANDLERS 0x0020
268 *
ppv = &
This->IHTMLEventObj_iface;
270 *
ppv = &
This->IHTMLEventObj_iface;
302 IHTMLDOMNode_Release(&
This->target->IHTMLDOMNode_iface);
304 nsIDOMEvent_Release(
This->nsevent);
315 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
322 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
330 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
riid, rgszNames, cNames,
336 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
339 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface, dispIdMember,
riid, lcid,
340 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
351 IHTMLDOMNode_QueryInterface(&
This->target->IHTMLDOMNode_iface, &IID_IHTMLElement, (
void**)
p);
366 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMKeyEvent, (
void**)&
key_event);
373 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
381 *
p =
ret ? VARIANT_TRUE : VARIANT_FALSE;
396 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMKeyEvent, (
void**)&
key_event);
403 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
411 *
p =
ret ? VARIANT_TRUE : VARIANT_FALSE;
426 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMKeyEvent, (
void**)&
key_event);
433 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
441 *
p =
ret ? VARIANT_TRUE : VARIANT_FALSE;
456 This->return_value =
v;
478 This->cancel_bubble = !!
v;
488 *
p =
This->cancel_bubble ? VARIANT_TRUE : VARIANT_FALSE;
530 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMKeyEvent, (
void**)&
key_event);
532 nsIDOMKeyEvent_GetKeyCode(
key_event, &key_code);
552 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
609 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMUIEvent, (
void**)&ui_event);
612 nsres = nsIDOMUIEvent_GetPageX(ui_event, &
x);
614 nsIDOMUIEvent_Release(ui_event);
633 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMUIEvent, (
void**)&ui_event);
636 nsres = nsIDOMUIEvent_GetPageY(ui_event, &
y);
638 nsIDOMUIEvent_Release(ui_event);
657 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
679 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
721 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
743 nsres = nsIDOMEvent_QueryInterface(
This->nsevent, &IID_nsIDOMMouseEvent, (
void**)&
mouse_event);
820 ret = heap_alloc_zero(
sizeof(*
ret));
835 event->nsevent = nsevent;
838 nsIDOMEvent_AddRef(nsevent);
844 nsres = nsIDOMHTMLDocument_CreateEvent(
target->doc->nsdoc, &type_str, &
event->nsevent);
847 ERR(
"Could not create event: %08x\n", nsres);
854 IHTMLDOMNode_AddRef(&
target->IHTMLDOMNode_iface);
866 *
ret = &
event->IHTMLEventObj_iface;
876 : &event_target->
ptr;
889 memset(&ei, 0,
sizeof(ei));
891 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
894 IDispatchEx_Release(dispex);
896 TRACE(
"Could not get IDispatchEx interface: %08x\n",
hres);
898 dp, retv, &ei,
NULL);
914 dp.rgvarg = &event_arg;
918 memset(&ei, 0,
sizeof(ei));
940 if(
data->ids[
i] == dispid)
943 if(
data->ids[
i] < dispid)
960 if(
data &&
data->event_table[eid] &&
data->event_table[eid]->handler_prop) {
963 DISPPARAMS dp = {&
arg, &named_arg, 1, 1};
988 if(
data &&
data->event_table[eid] &&
data->event_table[eid]->handler_cnt) {
990 DISPPARAMS dp = {&
arg,
NULL, 1, 0};
996 i =
data->event_table[eid]->handler_cnt;
998 if(
data->event_table[eid]->handlers[
i]) {
1034 cp = cp_container->
cps +
j;
1039 if(!
cp->sinks[
i].disp)
1046 cp->data->pass_event_arg ? event_obj :
NULL, &
v);
1073 IHTMLEventObj *prev_event;
1086 WARN(
"NULL window\n");
1092 prev_event =
window->event;
1095 nsIDOMNode_GetNodeType(
target, &node_type);
1097 nsIDOMNode_AddRef(nsnode);
1105 script_this ? script_this : (
IDispatch*)&
node->IHTMLDOMNode_iface);
1112 nsIDOMNode_GetParentNode(nsnode, &
parent);
1113 nsIDOMNode_Release(nsnode);
1118 nsIDOMNode_GetNodeType(nsnode, &node_type);
1119 }
while(node_type == ELEMENT_NODE);
1129 nsres = nsIDOMHTMLDocument_GetBody(doc->
nsdoc, &nsbody);
1134 script_this ? script_this : (
IDispatch*)&
node->IHTMLDOMNode_iface);
1137 nsIDOMHTMLElement_Release(nsbody);
1139 ERR(
"Could not get body: %08x\n", nsres);
1148 FIXME(
"unimplemented node type %d\n", node_type);
1152 nsIDOMNode_Release(nsnode);
1155 prevent_default =
TRUE;
1156 window->event = prev_event;
1159 nsIDOMNode_AddRef(
target);
1168 if(
node->vtbl->handle_event)
1175 nsres = nsIDOMNode_GetParentNode(nsnode, &
parent);
1179 nsIDOMNode_Release(nsnode);
1184 nsIDOMNode_Release(nsnode);
1187 if(prevent_default && event_obj && event_obj->
nsevent) {
1188 TRACE(
"calling PreventDefault\n");
1189 nsIDOMEvent_PreventDefault(event_obj->
nsevent);
1244 IHTMLEventObj *event_iface;
1246 hres = IDispatch_QueryInterface(
V_DISPATCH(event_var), &IID_IHTMLEventObj, (
void**)&event_iface);
1248 FIXME(
"No IHTMLEventObj iface\n");
1254 ERR(
"Not our IHTMLEventObj?\n");
1255 IHTMLEventObj_Release(event_iface);
1271 FIXME(
"not EVENT_DEFAULTEVENTHANDLER\n");
1278 *cancelled = VARIANT_TRUE;
1286 if(
node->vtbl->fire_event) {
1302 if(handler_vector) {
1303 if(cnt <= handler_vector->handler_cnt)
1330 nsIDOMNode_AddRef(nsnode);
1337 nsIDOMNode_Release(nsnode);
1362 FIXME(
"Unsupported event binding on target %p\n", event_target);
1376 if(
data &&
data->event_table[eid] &&
data->event_table[eid]->handler_prop) {
1377 IDispatch_Release(
data->event_table[eid]->handler_prop);
1378 data->event_table[eid]->handler_prop =
NULL;
1397 data->event_table[eid]->handler_prop = disp;
1398 IDispatch_AddRef(disp);
1458 if(
data &&
data->event_table[eid] &&
data->event_table[eid]->handler_prop) {
1477 WARN(
"Unknown event\n");
1478 *
res = VARIANT_TRUE;
1486 if(
data->event_table[eid]) {
1487 while(i < data->event_table[eid]->handler_cnt &&
data->event_table[eid]->handlers[
i])
1495 IDispatch_AddRef(disp);
1496 data->event_table[eid]->handlers[
i] = disp;
1500 *
res = VARIANT_TRUE;
1512 WARN(
"Unknown event\n");
1520 if(!
data->event_table[eid])
1523 while(i < data->event_table[eid]->handler_cnt) {
1524 if(
data->event_table[eid]->handlers[
i] == disp) {
1525 IDispatch_Release(
data->event_table[eid]->handlers[
i]);
1526 data->event_table[eid]->handlers[
i] =
NULL;
1584 IDispatch_Release(disp);
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
LCID WINAPI GetUserDefaultLCID(void)
const char * debugstr_mshtml_guid(const GUID *iid)
static xmlCharEncodingHandlerPtr * handlers
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
nsresult get_elem_attr_value(nsIDOMHTMLElement *nselem, const WCHAR *name, nsAString *val_str, const PRUnichar **val)
static const WCHAR onclickW[]
#define EVENT_DEFAULTLISTENER
static HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp, VARIANT *retv)
static const WCHAR helpW[]
static const WCHAR onselectstartW[]
static const WCHAR dragstartW[]
#define EVENT_FORWARDBODY
static const WCHAR onmouseoverW[]
static HRESULT WINAPI HTMLEventObj_get_offsetY(IHTMLEventObj *iface, LONG *p)
static HTMLEventObj * impl_from_IHTMLEventObj(IHTMLEventObj *iface)
static const WCHAR abortW[]
static const WCHAR HTMLEventsW[]
static void fire_event_obj(HTMLDocumentNode *doc, eventid_t eid, HTMLEventObj *event_obj, nsIDOMNode *target, IDispatch *script_this)
static const WCHAR submitW[]
static HRESULT WINAPI HTMLEventObj_get_type(IHTMLEventObj *iface, BSTR *p)
static BOOL alloc_handler_vector(event_target_t *event_target, eventid_t eid, int cnt)
static const WCHAR onchangeW[]
static HRESULT WINAPI HTMLEventObj_GetTypeInfoCount(IHTMLEventObj *iface, UINT *pctinfo)
static const WCHAR onfocusW[]
static HRESULT WINAPI HTMLEventObj_put_keyCode(IHTMLEventObj *iface, LONG v)
static HRESULT WINAPI HTMLEventObj_QueryInterface(IHTMLEventObj *iface, REFIID riid, void **ppv)
static const WCHAR onerrorW[]
static const WCHAR errorW[]
static const WCHAR onloadW[]
static const WCHAR readystatechangeW[]
static const WCHAR onmouseupW[]
static const WCHAR onabortW[]
static HRESULT WINAPI HTMLEventObj_get_shiftKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
void bind_target_event(HTMLDocumentNode *doc, EventTarget *event_target, const WCHAR *event, IDispatch *disp)
static const WCHAR ondragstartW[]
static HRESULT WINAPI HTMLEventObj_get_ctrlKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
static const WCHAR onkeyupW[]
static HRESULT WINAPI HTMLEventObj_get_returnValue(IHTMLEventObj *iface, VARIANT *p)
static const WCHAR onblurW[]
static const WCHAR onresizeW[]
static const WCHAR ondragW[]
static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
static const WCHAR onsubmitW[]
static const WCHAR onbeforeunloadW[]
static HRESULT WINAPI HTMLEventObj_get_cancelBubble(IHTMLEventObj *iface, VARIANT_BOOL *p)
static const tid_t HTMLEventObj_iface_tids[]
static const WCHAR focusinW[]
static HRESULT WINAPI HTMLEventObj_get_qualifier(IHTMLEventObj *iface, BSTR *p)
static const WCHAR onfocusinW[]
static const WCHAR onreadystatechangeW[]
static HRESULT WINAPI HTMLEventObj_get_offsetX(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_get_button(IHTMLEventObj *iface, LONG *p)
HRESULT doc_init_events(HTMLDocumentNode *doc)
static HRESULT WINAPI HTMLEventObj_get_srcFilter(IHTMLEventObj *iface, IDispatch **p)
eventid_t str_to_eid(LPCWSTR str)
static const WCHAR mousemoveW[]
static dispex_static_data_t HTMLEventObj_dispex
static const WCHAR scrollW[]
static HRESULT WINAPI HTMLEventObj_get_y(IHTMLEventObj *iface, LONG *p)
static const WCHAR selectstartW[]
static const WCHAR ondblclickW[]
HRESULT detach_event(EventTarget *event_target, BSTR name, IDispatch *disp)
static HRESULT set_event_handler_disp(EventTarget *event_target, eventid_t eid, IDispatch *disp)
HRESULT get_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var)
static HRESULT set_event_info(HTMLEventObj *event, HTMLDOMNode *target, eventid_t eid, nsIDOMEvent *nsevent)
static const WCHAR onmousewheelW[]
#define EVENT_BIND_TO_BODY
static const WCHAR contextmenuW[]
static HRESULT WINAPI HTMLEventObj_get_keyCode(IHTMLEventObj *iface, LONG *p)
static const WCHAR onscrollW[]
static const IHTMLEventObjVtbl HTMLEventObjVtbl
static const WCHAR mouseoutW[]
void update_doc_cp_events(HTMLDocumentNode *doc, cp_static_data_t *cp)
static const WCHAR keypressW[]
static const WCHAR MouseEventW[]
static BOOL is_cp_event(cp_static_data_t *data, DISPID dispid)
static HRESULT WINAPI HTMLEventObj_get_clientY(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_put_returnValue(IHTMLEventObj *iface, VARIANT v)
static const WCHAR onkeydownW[]
static const WCHAR beforeunloadW[]
void call_event_handlers(HTMLDocumentNode *doc, HTMLEventObj *event_obj, EventTarget *event_target, ConnectionPointContainer *cp_container, eventid_t eid, IDispatch *this_obj)
static HRESULT WINAPI HTMLEventObj_get_screenY(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_put_cancelBubble(IHTMLEventObj *iface, VARIANT_BOOL v)
static const WCHAR ondataavailableW[]
static const WCHAR blurW[]
static void remove_event_handler(EventTarget *event_target, eventid_t eid)
static HRESULT WINAPI HTMLEventObj_get_x(IHTMLEventObj *iface, LONG *p)
static const WCHAR onmouseoutW[]
static const WCHAR * event_types[]
static const WCHAR onmousedownW[]
void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode *target, nsIDOMEvent *nsevent, IDispatch *script_this)
static const WCHAR KeyboardEventW[]
static HRESULT WINAPI HTMLEventObj_get_reason(IHTMLEventObj *iface, LONG *p)
static const WCHAR resizeW[]
static event_target_t * get_event_target_data(EventTarget *event_target, BOOL alloc)
static const WCHAR mouseoverW[]
static HRESULT WINAPI HTMLEventObj_GetTypeInfo(IHTMLEventObj *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static const WCHAR dataavailableW[]
static const WCHAR keydownW[]
static const WCHAR clickW[]
void release_event_target(event_target_t *event_target)
HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var)
static HRESULT WINAPI HTMLEventObj_get_srcElement(IHTMLEventObj *iface, IHTMLElement **p)
static HRESULT WINAPI HTMLEventObj_get_clientX(IHTMLEventObj *iface, LONG *p)
static const event_info_t event_info[]
static const WCHAR onkeypressW[]
static const WCHAR onpasteW[]
static HRESULT WINAPI HTMLEventObj_get_screenX(IHTMLEventObj *iface, LONG *p)
HRESULT call_fire_event(HTMLDOMNode *node, eventid_t eid)
HRESULT create_event_obj(IHTMLEventObj **ret)
static const WCHAR loadW[]
static HRESULT WINAPI HTMLEventObj_get_toElement(IHTMLEventObj *iface, IHTMLElement **p)
static const WCHAR dblclickW[]
#define EVENT_HASDEFAULTHANDLERS
static ULONG WINAPI HTMLEventObj_AddRef(IHTMLEventObj *iface)
static const WCHAR mousewheelW[]
HRESULT attach_event(EventTarget *event_target, BSTR name, IDispatch *disp, VARIANT_BOOL *res)
static const WCHAR mouseupW[]
void check_event_attr(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
static const WCHAR oncontextmenuW[]
static HTMLEventObj * unsafe_impl_from_IHTMLEventObj(IHTMLEventObj *iface)
static void bind_event(EventTarget *event_target, eventid_t eid)
static const WCHAR mousedownW[]
static ULONG WINAPI HTMLEventObj_Release(IHTMLEventObj *iface)
void detach_events(HTMLDocumentNode *doc)
HRESULT dispatch_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *event_var, VARIANT_BOOL *cancelled)
static HRESULT WINAPI HTMLEventObj_get_fromElement(IHTMLEventObj *iface, IHTMLElement **p)
static const WCHAR changeW[]
static eventid_t attr_to_eid(LPCWSTR str)
static const WCHAR keyupW[]
static const WCHAR pasteW[]
static HTMLEventObj * create_event(void)
static HRESULT call_cp_func(IDispatch *disp, DISPID dispid, HTMLEventObj *event_obj, VARIANT *retv)
static const WCHAR onmousemoveW[]
static const WCHAR focusW[]
static const WCHAR dragW[]
static HRESULT WINAPI HTMLEventObj_GetIDsOfNames(IHTMLEventObj *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode *doc, eventid_t eid)
static const WCHAR onhelpW[]
static HRESULT WINAPI HTMLEventObj_Invoke(IHTMLEventObj *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
void release_nsevents(HTMLDocumentNode *) DECLSPEC_HIDDEN
void init_nsevents(HTMLDocumentNode *) DECLSPEC_HIDDEN
void add_nsevent_listener(HTMLDocumentNode *, nsIDOMNode *, LPCWSTR) DECLSPEC_HIDDEN
void detach_nsevent(HTMLDocumentNode *, const WCHAR *) DECLSPEC_HIDDEN
HRESULT get_node(HTMLDocumentNode *This, nsIDOMNode *nsnode, BOOL create, HTMLDOMNode **ret)
IDispatch * script_parse_event(HTMLInnerWindow *, LPCWSTR) DECLSPEC_HIDDEN
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
static const char * debugstr_variant(const VARIANT *var)
static IHTMLWindow2 * window
static VARIANTARG static DISPID
#define DISPID_EVMETH_ONPASTE
#define DISPID_EVMETH_ONRESIZE
#define DISPID_EVMETH_ONMOUSEOUT
#define DISPID_EVMETH_ONFOCUSIN
#define DISPID_EVMETH_ONMOUSEDOWN
#define DISPID_EVMETH_ONKEYPRESS
#define DISPID_EVMETH_ONREADYSTATECHANGE
#define DISPID_EVMETH_ONDRAGSTART
#define DISPID_EVMETH_ONCONTEXTMENU
#define DISPID_EVMETH_ONCHANGE
#define DISPID_EVMETH_ONSELECTSTART
#define DISPID_EVMETH_ONDATAAVAILABLE
#define DISPID_EVMETH_ONKEYUP
#define DISPID_EVMETH_ONKEYDOWN
#define DISPID_EVMETH_ONDRAG
#define DISPID_EVMETH_ONABORT
#define DISPID_EVMETH_ONCLICK
#define DISPID_EVMETH_ONBEFOREUNLOAD
#define DISPID_EVMETH_ONMOUSEOVER
#define DISPID_EVMETH_ONMOUSEWHEEL
#define DISPID_EVMETH_ONMOUSEMOVE
#define DISPID_EVMETH_ONSUBMIT
#define DISPID_EVMETH_ONFOCUS
#define DISPID_EVMETH_ONMOUSEUP
#define DISPID_EVMETH_ONSCROLL
#define DISPID_EVMETH_ONHELP
#define DISPID_EVMETH_ONBLUR
#define DISPID_EVMETH_ONLOAD
#define DISPID_EVMETH_ONERROR
#define DISPID_EVMETH_ONDBLCLICK
void release_dispex(DispatchEx *This)
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
HRESULT get_dispids(tid_t tid, DWORD *ret_size, DISPID **ret)
HRESULT dispex_get_dprop_ref(DispatchEx *This, const WCHAR *name, BOOL alloc, VARIANT **ret)
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
static void node_release(HTMLDOMNode *node)
static ULONG htmldoc_addref(HTMLDocument *This)
static ULONG htmldoc_release(HTMLDocument *This)
#define NS_SUCCEEDED(res)
BSTR WINAPI SysAllocString(LPCOLESTR str)
#define IsEqualGUID(rguid1, rguid2)
struct ConnectionPointContainer * forward_container
const cpc_entry_t * cp_entries
dispex_static_data_t * data
nsIDOMHTMLDocument * nsdoc
nsDocumentEventListener * nsevent_listener
IHTMLDocument2 IHTMLDocument2_iface
ConnectionPointContainer cp_container
const event_info_t * type
IHTMLEventObj IHTMLEventObj_iface
const dispex_static_data_vtbl_t * vtbl
event_target_t **(* get_event_target_ptr)(DispatchEx *)
void(* bind_event)(DispatchEx *, int)
handler_vector_t * event_table[EVENTID_LAST]
void key_event(int scancode, int pressed)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HRESULT WINAPI VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
_In_ DWORD _Out_ _In_ WORD wFlags
#define DISP_E_BADVARTYPE
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)