34 static const WCHAR beforeunloadW[] = {
'b',
'e',
'f',
'o',
'r',
'e',
'u',
'n',
'l',
'o',
'a',
'd',0};
35 static const WCHAR onbeforeunloadW[] = {
'o',
'n',
'b',
'e',
'f',
'o',
'r',
'e',
'u',
'n',
'l',
'o',
'a',
'd',0};
46 static const WCHAR contextmenuW[] = {
'c',
'o',
'n',
't',
'e',
'x',
't',
'm',
'e',
'n',
'u',0};
47 static const WCHAR oncontextmenuW[] = {
'o',
'n',
'c',
'o',
'n',
't',
'e',
'x',
't',
'm',
'e',
'n',
'u',0};
49 static const WCHAR dataavailableW[] = {
'd',
'a',
't',
'a',
'a',
'v',
'a',
'i',
'l',
'a',
'b',
'l',
'e',0};
50 static const WCHAR ondataavailableW[] = {
'o',
'n',
'd',
'a',
't',
'a',
'a',
'v',
'a',
'i',
'l',
'a',
'b',
'l',
'e',0};
53 static const WCHAR ondblclickW[] = {
'o',
'n',
'd',
'b',
'l',
'c',
'l',
'i',
'c',
'k',0};
59 static const WCHAR ondragstartW[] = {
'o',
'n',
'd',
'r',
'a',
'g',
's',
't',
'a',
'r',
't',0};
77 static const WCHAR onkeypressW[] = {
'o',
'n',
'k',
'e',
'y',
'p',
'r',
'e',
's',
's',0};
86 static const WCHAR onmousedownW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'd',
'o',
'w',
'n',0};
89 static const WCHAR onmousemoveW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'm',
'o',
'v',
'e',0};
92 static const WCHAR onmouseoutW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'o',
'u',
't',0};
95 static const WCHAR onmouseoverW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'o',
'v',
'e',
'r',0};
100 static const WCHAR mousewheelW[] = {
'm',
'o',
'u',
's',
'e',
'w',
'h',
'e',
'e',
'l',0};
101 static const WCHAR onmousewheelW[] = {
'o',
'n',
'm',
'o',
'u',
's',
'e',
'w',
'h',
'e',
'e',
'l',0};
106 static const WCHAR readystatechangeW[] = {
'r',
'e',
'a',
'd',
'y',
's',
't',
'a',
't',
'e',
'c',
'h',
'a',
'n',
'g',
'e',0};
107 static const WCHAR onreadystatechangeW[] = {
'o',
'n',
'r',
'e',
'a',
'd',
'y',
's',
't',
'a',
't',
'e',
'c',
'h',
'a',
'n',
'g',
'e',0};
115 static const WCHAR selectstartW[] = {
's',
'e',
'l',
'e',
'c',
't',
's',
't',
'a',
'r',
't',0};
116 static const WCHAR onselectstartW[] = {
'o',
'n',
's',
'e',
'l',
'e',
'c',
't',
's',
't',
'a',
'r',
't',0};
121 static const WCHAR HTMLEventsW[] = {
'H',
'T',
'M',
'L',
'E',
'v',
'e',
'n',
't',
's',0};
122 static const WCHAR KeyboardEventW[] = {
'K',
'e',
'y',
'b',
'o',
'a',
'r',
'd',
'E',
'v',
'e',
'n',
't',0};
123 static 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,
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) {
988 if(
data &&
data->event_table[eid] &&
data->event_table[eid]->handler_cnt) {
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);
#define DISPID_EVMETH_ONLOAD
static const WCHAR keypressW[]
#define DISPID_EVMETH_ONKEYDOWN
static const WCHAR onfocusW[]
#define DISPID_EVMETH_ONCLICK
#define DISPID_EVMETH_ONSELECTSTART
static const WCHAR dragW[]
#define DISPID_EVMETH_ONREADYSTATECHANGE
#define EVENT_FORWARDBODY
static eventid_t attr_to_eid(LPCWSTR str)
#define DISPID_EVMETH_ONBLUR
static HRESULT WINAPI HTMLEventObj_get_offsetY(IHTMLEventObj *iface, LONG *p)
nsIDOMHTMLDocument * nsdoc
static const WCHAR readystatechangeW[]
static const WCHAR abortW[]
static const WCHAR loadW[]
static const WCHAR mouseoverW[]
static const WCHAR onfocusinW[]
#define DISPID_EVMETH_ONMOUSEDOWN
static event_target_t * get_event_target_data(EventTarget *event_target, BOOL alloc)
static const WCHAR onresizeW[]
static ULONG WINAPI HTMLEventObj_Release(IHTMLEventObj *iface)
static HRESULT WINAPI HTMLEventObj_get_reason(IHTMLEventObj *iface, LONG *p)
static xmlCharEncodingHandlerPtr * handlers
static const IHTMLEventObjVtbl HTMLEventObjVtbl
static const tid_t HTMLEventObj_iface_tids[]
static const WCHAR dblclickW[]
static const WCHAR onchangeW[]
static HRESULT WINAPI HTMLEventObj_get_srcElement(IHTMLEventObj *iface, IHTMLElement **p)
static HRESULT WINAPI HTMLEventObj_get_clientY(IHTMLEventObj *iface, LONG *p)
static const WCHAR onmousedownW[]
const dispex_static_data_vtbl_t * vtbl
static HRESULT WINAPI HTMLEventObj_Invoke(IHTMLEventObj *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static ULONG WINAPI HTMLEventObj_AddRef(IHTMLEventObj *iface)
static HRESULT WINAPI HTMLEventObj_put_returnValue(IHTMLEventObj *iface, VARIANT v)
#define EVENT_HASDEFAULTHANDLERS
nsresult get_elem_attr_value(nsIDOMHTMLElement *nselem, const WCHAR *name, nsAString *val_str, const PRUnichar **val)
#define EVENT_BIND_TO_BODY
#define DISPID_EVMETH_ONABORT
static HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp, VARIANT *retv)
HRESULT dispatch_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *event_var, VARIANT_BOOL *cancelled)
static const WCHAR onhelpW[]
GLint GLint GLint GLint GLint x
static HRESULT WINAPI HTMLEventObj_GetIDsOfNames(IHTMLEventObj *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
IHTMLEventObj IHTMLEventObj_iface
event_target_t **(* get_event_target_ptr)(DispatchEx *)
#define EVENT_DEFAULTLISTENER
static const WCHAR contextmenuW[]
LCID WINAPI GetUserDefaultLCID(void)
#define DISPID_EVMETH_ONDRAG
static const WCHAR changeW[]
static const WCHAR onmousemoveW[]
static HRESULT WINAPI HTMLEventObj_GetTypeInfo(IHTMLEventObj *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
#define DISPID_EVMETH_ONMOUSEWHEEL
static const WCHAR pasteW[]
static dispex_static_data_t HTMLEventObj_dispex
#define DISPID_EVMETH_ONSCROLL
HRESULT dispex_get_dprop_ref(DispatchEx *This, const WCHAR *name, BOOL alloc, VARIANT **ret)
static const WCHAR onblurW[]
static const WCHAR onclickW[]
static HRESULT WINAPI HTMLEventObj_get_screenY(IHTMLEventObj *iface, LONG *p)
static const WCHAR HTMLEventsW[]
#define DISPID_EVMETH_ONFOCUS
const char * debugstr_mshtml_guid(const GUID *iid)
void release_nsevents(HTMLDocumentNode *) DECLSPEC_HIDDEN
static const WCHAR clickW[]
static void node_release(HTMLDOMNode *node)
#define DISPID_EVMETH_ONDRAGSTART
static HRESULT WINAPI HTMLEventObj_get_button(IHTMLEventObj *iface, LONG *p)
static const event_info_t event_info[]
#define DISPID_EVMETH_ONMOUSEOVER
static const WCHAR * event_types[]
handler_vector_t * event_table[EVENTID_LAST]
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)
static HRESULT set_event_handler_disp(EventTarget *event_target, eventid_t eid, IDispatch *disp)
static HRESULT WINAPI HTMLEventObj_get_fromElement(IHTMLEventObj *iface, IHTMLElement **p)
BSTR WINAPI SysAllocString(LPCOLESTR str)
static const WCHAR onbeforeunloadW[]
static const WCHAR ondataavailableW[]
void release_event_target(event_target_t *event_target)
const event_info_t * type
static HTMLEventObj * unsafe_impl_from_IHTMLEventObj(IHTMLEventObj *iface)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
static HRESULT call_cp_func(IDispatch *disp, DISPID dispid, HTMLEventObj *event_obj, VARIANT *retv)
static const WCHAR onabortW[]
static HRESULT WINAPI HTMLEventObj_get_toElement(IHTMLEventObj *iface, IHTMLElement **p)
#define DISPID_EVMETH_ONDBLCLICK
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
static void bind_event(EventTarget *event_target, eventid_t eid)
static const WCHAR MouseEventW[]
HRESULT create_event_obj(IHTMLEventObj **ret)
static const WCHAR resizeW[]
eventid_t str_to_eid(LPCWSTR str)
#define DISPID_EVMETH_ONMOUSEOUT
static const WCHAR onscrollW[]
HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var)
#define DISPID_EVMETH_ONCHANGE
static const WCHAR onmouseoverW[]
void init_nsevents(HTMLDocumentNode *) DECLSPEC_HIDDEN
void bind_target_event(HTMLDocumentNode *doc, EventTarget *event_target, const WCHAR *event, IDispatch *disp)
#define DISPID_EVMETH_ONERROR
static const WCHAR selectstartW[]
static HRESULT WINAPI HTMLEventObj_get_qualifier(IHTMLEventObj *iface, BSTR *p)
static HRESULT WINAPI HTMLEventObj_put_keyCode(IHTMLEventObj *iface, LONG v)
#define DISPID_EVMETH_ONDATAAVAILABLE
static const WCHAR oncontextmenuW[]
#define DISPID_EVMETH_ONRESIZE
dispex_static_data_t * data
static HRESULT WINAPI HTMLEventObj_get_x(IHTMLEventObj *iface, LONG *p)
#define DISPID_EVMETH_ONMOUSEMOVE
static const WCHAR submitW[]
static HTMLEventObj * create_event(void)
void detach_nsevent(HTMLDocumentNode *, const WCHAR *) DECLSPEC_HIDDEN
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 HRESULT WINAPI HTMLEventObj_QueryInterface(IHTMLEventObj *iface, REFIID riid, void **ppv)
#define DISPID_EVMETH_ONPASTE
static HRESULT WINAPI HTMLEventObj_get_srcFilter(IHTMLEventObj *iface, IDispatch **p)
#define NS_SUCCEEDED(res)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
ConnectionPointContainer cp_container
static const WCHAR onkeypressW[]
static const WCHAR ondragstartW[]
static HRESULT WINAPI HTMLEventObj_get_clientX(IHTMLEventObj *iface, LONG *p)
#define DISP_E_BADVARTYPE
void add_nsevent_listener(HTMLDocumentNode *, nsIDOMNode *, LPCWSTR) DECLSPEC_HIDDEN
static void fire_event_obj(HTMLDocumentNode *doc, eventid_t eid, HTMLEventObj *event_obj, nsIDOMNode *target, IDispatch *script_this)
HRESULT detach_event(EventTarget *event_target, BSTR name, IDispatch *disp)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define InterlockedDecrement
HRESULT doc_init_events(HTMLDocumentNode *doc)
static const WCHAR ondblclickW[]
static const WCHAR mouseoutW[]
static const WCHAR onselectstartW[]
#define DISPID_EVMETH_ONKEYUP
static HRESULT WINAPI HTMLEventObj_get_type(IHTMLEventObj *iface, BSTR *p)
static const WCHAR onerrorW[]
static const WCHAR blurW[]
void(* bind_event)(DispatchEx *, int)
HRESULT call_fire_event(HTMLDOMNode *node, eventid_t eid)
static IHTMLWindow2 * window
#define DISPID_EVMETH_ONFOCUSIN
static void remove_event_handler(EventTarget *event_target, eventid_t eid)
static const WCHAR helpW[]
static const WCHAR scrollW[]
static ULONG htmldoc_release(HTMLDocument *This)
static const WCHAR beforeunloadW[]
IDispatch * script_parse_event(HTMLInnerWindow *, LPCWSTR) DECLSPEC_HIDDEN
static const WCHAR onloadW[]
static const WCHAR mouseupW[]
struct ConnectionPointContainer * forward_container
_In_ DWORD _Out_ _In_ WORD wFlags
static HRESULT WINAPI HTMLEventObj_get_keyCode(IHTMLEventObj *iface, LONG *p)
HRESULT get_dispids(tid_t tid, DWORD *ret_size, DISPID **ret)
struct stdole::EXCEPINFO EXCEPINFO
static const WCHAR focusinW[]
static HRESULT WINAPI HTMLEventObj_put_cancelBubble(IHTMLEventObj *iface, VARIANT_BOOL v)
static const char * debugstr_variant(const VARIANT *var)
static VARIANTARG static DISPID
void detach_events(HTMLDocumentNode *doc)
static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
static const WCHAR onmouseupW[]
HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode *doc, eventid_t eid)
#define InterlockedIncrement
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
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
void key_event(int scancode, int pressed)
HRESULT get_node(HTMLDocumentNode *This, nsIDOMNode *nsnode, BOOL create, HTMLDOMNode **ret)
static HTMLEventObj * impl_from_IHTMLEventObj(IHTMLEventObj *iface)
static HRESULT WINAPI HTMLEventObj_GetTypeInfoCount(IHTMLEventObj *iface, UINT *pctinfo)
static const WCHAR keyupW[]
static ULONG htmldoc_addref(HTMLDocument *This)
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
#define DISPID_EVMETH_ONHELP
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
#define DISPID_EVMETH_ONMOUSEUP
IHTMLDocument2 IHTMLDocument2_iface
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
GLint GLint GLint GLint GLint GLint y
void update_doc_cp_events(HTMLDocumentNode *doc, cp_static_data_t *cp)
static const WCHAR onpasteW[]
static HRESULT WINAPI HTMLEventObj_get_y(IHTMLEventObj *iface, LONG *p)
void call_event_handlers(HTMLDocumentNode *doc, HTMLEventObj *event_obj, EventTarget *event_target, ConnectionPointContainer *cp_container, eventid_t eid, IDispatch *this_obj)
static const WCHAR mousewheelW[]
static HRESULT WINAPI HTMLEventObj_get_screenX(IHTMLEventObj *iface, LONG *p)
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
static HRESULT WINAPI HTMLEventObj_get_cancelBubble(IHTMLEventObj *iface, VARIANT_BOOL *p)
#define DISPID_EVMETH_ONCONTEXTMENU
static const WCHAR mousemoveW[]
WINE_UNICODE_INLINE int strcmpW(const WCHAR *str1, const WCHAR *str2)
static const WCHAR onmousewheelW[]
#define DISPID_EVMETH_ONSUBMIT
struct stdole::DISPPARAMS DISPPARAMS
static const WCHAR onkeyupW[]
#define DISPID_EVMETH_ONKEYPRESS
#define DISPID_EVMETH_ONBEFOREUNLOAD
static const WCHAR onmouseoutW[]
const cpc_entry_t * cp_entries
static HRESULT WINAPI HTMLEventObj_get_ctrlKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
HRESULT attach_event(EventTarget *event_target, BSTR name, IDispatch *disp, VARIANT_BOOL *res)
static const WCHAR ondragW[]
static const WCHAR dragstartW[]
static HRESULT WINAPI HTMLEventObj_get_offsetX(IHTMLEventObj *iface, LONG *p)
GLuint GLuint GLsizei GLenum type
static const WCHAR focusW[]
static const WCHAR onkeydownW[]
static HRESULT WINAPI HTMLEventObj_get_shiftKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
static HRESULT WINAPI HTMLEventObj_get_returnValue(IHTMLEventObj *iface, VARIANT *p)
HRESULT WINAPI VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
void check_event_attr(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
static const WCHAR onreadystatechangeW[]
static const WCHAR onsubmitW[]
static BOOL alloc_handler_vector(event_target_t *event_target, eventid_t eid, int cnt)
static const WCHAR dataavailableW[]
void release_dispex(DispatchEx *This)
static const WCHAR mousedownW[]
static const WCHAR KeyboardEventW[]
static const WCHAR errorW[]
static const WCHAR keydownW[]
static BOOL is_cp_event(cp_static_data_t *data, DISPID dispid)
nsDocumentEventListener * nsevent_listener
static BOOL heap_free(void *mem)
void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode *target, nsIDOMEvent *nsevent, IDispatch *script_this)