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
26 EVENTID_DATAAVAILABLE
,
45 EVENTID_READYSTATECHANGE
,
53 eventid_t
str_to_eid(LPCWSTR
) DECLSPEC_HIDDEN
;
54 void check_event_attr(HTMLDocumentNode
*,nsIDOMHTMLElement
*) DECLSPEC_HIDDEN
;
55 void release_event_target(event_target_t
*) DECLSPEC_HIDDEN
;
56 void fire_event(HTMLDocumentNode
*,eventid_t
,BOOL
,nsIDOMNode
*,nsIDOMEvent
*,IDispatch
*) DECLSPEC_HIDDEN
;
57 HRESULT
set_event_handler(EventTarget
*,eventid_t
,VARIANT
*) DECLSPEC_HIDDEN
;
58 HRESULT
get_event_handler(EventTarget
*,eventid_t
,VARIANT
*) DECLSPEC_HIDDEN
;
59 HRESULT
attach_event(EventTarget
*,BSTR
,IDispatch
*,VARIANT_BOOL
*) DECLSPEC_HIDDEN
;
60 HRESULT
detach_event(EventTarget
*,BSTR
,IDispatch
*) DECLSPEC_HIDDEN
;
61 HRESULT
dispatch_event(HTMLDOMNode
*,const WCHAR
*,VARIANT
*,VARIANT_BOOL
*) DECLSPEC_HIDDEN
;
62 HRESULT
call_fire_event(HTMLDOMNode
*,eventid_t
) DECLSPEC_HIDDEN
;
63 void update_doc_cp_events(HTMLDocumentNode
*,cp_static_data_t
*) DECLSPEC_HIDDEN
;
64 HRESULT
doc_init_events(HTMLDocumentNode
*) DECLSPEC_HIDDEN
;
65 void detach_events(HTMLDocumentNode
*doc
) DECLSPEC_HIDDEN
;
66 HRESULT
create_event_obj(IHTMLEventObj
**) DECLSPEC_HIDDEN
;
67 void bind_target_event(HTMLDocumentNode
*,EventTarget
*,const WCHAR
*,IDispatch
*) DECLSPEC_HIDDEN
;
68 HRESULT
ensure_doc_nsevent_handler(HTMLDocumentNode
*,eventid_t
) DECLSPEC_HIDDEN
;
70 typedef struct HTMLEventObj HTMLEventObj
;
71 void call_event_handlers(HTMLDocumentNode
*,HTMLEventObj
*,EventTarget
*,ConnectionPointContainer
*,eventid_t
,IDispatch
*);
73 void init_nsevents(HTMLDocumentNode
*) DECLSPEC_HIDDEN
;
74 void release_nsevents(HTMLDocumentNode
*) DECLSPEC_HIDDEN
;
75 void add_nsevent_listener(HTMLDocumentNode
*,nsIDOMNode
*,LPCWSTR
) DECLSPEC_HIDDEN
;
76 void detach_nsevent(HTMLDocumentNode
*,const WCHAR
*) DECLSPEC_HIDDEN
;
78 static inline HRESULT
set_node_event(HTMLDOMNode
*node
, eventid_t eid
, VARIANT
*var
)
80 return set_event_handler(&node
->event_target
, eid
, var
);
83 static inline HRESULT
get_node_event(HTMLDOMNode
*node
, eventid_t eid
, VARIANT
*var
)
85 return get_event_handler(&node
->event_target
, eid
, var
);
88 static inline HRESULT
set_doc_event(HTMLDocument
*doc
, eventid_t eid
, VARIANT
*var
)
90 return set_node_event(&doc
->doc_node
->node
, eid
, var
);
93 static inline HRESULT
get_doc_event(HTMLDocument
*doc
, eventid_t eid
, VARIANT
*var
)
95 return get_node_event(&doc
->doc_node
->node
, eid
, var
);