2 * Copyright 2008 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
36 EVENTID_READYSTATECHANGE
,
41 eventid_t
str_to_eid(LPCWSTR
);
42 void check_event_attr(HTMLDocumentNode
*,nsIDOMElement
*);
43 void release_event_target(event_target_t
*);
44 void fire_event(HTMLDocumentNode
*,eventid_t
,nsIDOMNode
*,nsIDOMEvent
*);
45 HRESULT
set_event_handler(event_target_t
**,HTMLDocument
*,eventid_t
,VARIANT
*);
46 HRESULT
get_event_handler(event_target_t
**,eventid_t
,VARIANT
*);
47 HRESULT
attach_event(event_target_t
**,HTMLDocument
*,BSTR
,IDispatch
*,VARIANT_BOOL
*);
48 HRESULT
dispatch_event(HTMLDOMNode
*,const WCHAR
*,VARIANT
*,VARIANT_BOOL
*);
49 HRESULT
call_event(HTMLDOMNode
*,eventid_t
);
51 static inline event_target_t
**get_node_event_target(HTMLDOMNode
*node
)
53 return node
->vtbl
->get_event_target
? node
->vtbl
->get_event_target(node
) : &node
->event_target
;
56 static inline HRESULT
set_node_event(HTMLDOMNode
*node
, eventid_t eid
, VARIANT
*var
)
58 return set_event_handler(get_node_event_target(node
), &node
->doc
->basedoc
, eid
, var
);
61 static inline HRESULT
get_node_event(HTMLDOMNode
*node
, eventid_t eid
, VARIANT
*var
)
63 return get_event_handler(get_node_event_target(node
), eid
, var
);
66 static inline HRESULT
set_doc_event(HTMLDocument
*doc
, eventid_t eid
, VARIANT
*var
)
68 return set_node_event(&doc
->doc_node
->node
, eid
, var
);
71 static inline HRESULT
get_doc_event(HTMLDocument
*doc
, eventid_t eid
, VARIANT
*var
)
73 return get_node_event(&doc
->doc_node
->node
, eid
, var
);
76 static inline HRESULT
set_window_event(HTMLWindow
*window
, eventid_t eid
, VARIANT
*var
)
78 return set_event_handler(&window
->event_target
, &window
->doc_obj
->basedoc
, eid
, var
);
81 static inline HRESULT
get_window_event(HTMLWindow
*window
, eventid_t eid
, VARIANT
*var
)
83 return get_event_handler(&window
->event_target
, eid
, var
);