static ULONG WINAPI MonikerProp_AddRef(IMonikerProp *iface) { HTMLDocument *This = impl_from_IMonikerProp(iface); return htmldoc_addref(This); }
static ULONG WINAPI ObjectWithSite_AddRef(IObjectWithSite *iface) { HTMLDocument *This = impl_from_IObjectWithSite(iface); return htmldoc_addref(This); }
static ULONG WINAPI PersistMoniker_AddRef(IPersistMoniker *iface) { HTMLDocument *This = impl_from_IPersistMoniker(iface); return htmldoc_addref(This); }
static ULONG WINAPI OleObject_AddRef(IOleObject *iface) { HTMLDocument *This = impl_from_IOleObject(iface); return htmldoc_addref(This); }
static ULONG WINAPI OleControl_AddRef(IOleControl *iface) { HTMLDocument *This = impl_from_IOleControl(iface); return htmldoc_addref(This); }
static ULONG WINAPI PersistHistory_AddRef(IPersistHistory *iface) { HTMLDocument *This = impl_from_IPersistHistory(iface); return htmldoc_addref(This); }
static ULONG WINAPI ObjectSafety_AddRef(IObjectSafety *iface) { HTMLDocument *This = impl_from_IObjectSafety(iface); return htmldoc_addref(This); }
static void fire_event_obj(HTMLDocumentNode *doc, eventid_t eid, HTMLEventObj *event_obj, nsIDOMNode *target, IDispatch *script_this) { IHTMLEventObj *prev_event; nsIDOMNode *parent, *nsnode; BOOL prevent_default = FALSE; HTMLInnerWindow *window; HTMLDOMNode *node; UINT16 node_type; nsresult nsres; HRESULT hres; TRACE("(%p) %s\n", doc, debugstr_w(event_info[eid].name)); window = doc->window; if(!window) { WARN("NULL window\n"); return; } htmldoc_addref(&doc->basedoc); prev_event = window->event; window->event = event_obj ? &event_obj->IHTMLEventObj_iface : NULL; nsIDOMNode_GetNodeType(target, &node_type); nsnode = target; nsIDOMNode_AddRef(nsnode); switch(node_type) { case ELEMENT_NODE: do { hres = get_node(doc, nsnode, FALSE, &node); if(SUCCEEDED(hres) && node) { call_event_handlers(doc, event_obj, *get_node_event_target(node), node->cp_container, eid, script_this ? script_this : (IDispatch*)&node->IHTMLDOMNode_iface); node_release(node); } if(!(event_info[eid].flags & EVENT_BUBBLE) || (event_obj && event_obj->cancel_bubble)) break; nsIDOMNode_GetParentNode(nsnode, &parent); nsIDOMNode_Release(nsnode); nsnode = parent; if(!nsnode) break; nsIDOMNode_GetNodeType(nsnode, &node_type); }while(node_type == ELEMENT_NODE); if(!(event_info[eid].flags & EVENT_BUBBLE) || (event_obj && event_obj->cancel_bubble)) break; case DOCUMENT_NODE: if(event_info[eid].flags & EVENT_FORWARDBODY) { nsIDOMHTMLElement *nsbody; nsresult nsres; nsres = nsIDOMHTMLDocument_GetBody(doc->nsdoc, &nsbody); if(NS_SUCCEEDED(nsres) && nsbody) { hres = get_node(doc, (nsIDOMNode*)nsbody, FALSE, &node); if(SUCCEEDED(hres) && node) { call_event_handlers(doc, event_obj, *get_node_event_target(node), node->cp_container, eid, script_this ? script_this : (IDispatch*)&node->IHTMLDOMNode_iface); node_release(node); } nsIDOMHTMLElement_Release(nsbody); }else { ERR("Could not get body: %08x\n", nsres); } } call_event_handlers(doc, event_obj, doc->node.event_target, &doc->basedoc.cp_container, eid, script_this ? script_this : (IDispatch*)&doc->basedoc.IHTMLDocument2_iface); break; default: FIXME("unimplemented node type %d\n", node_type); } if(nsnode) nsIDOMNode_Release(nsnode); if(event_obj && event_obj->prevent_default) prevent_default = TRUE; window->event = prev_event; if(!prevent_default && (event_info[eid].flags & EVENT_HASDEFAULTHANDLERS)) { nsIDOMNode_AddRef(target); nsnode = target; do { hres = get_node(doc, nsnode, TRUE, &node); if(FAILED(hres)) break; if(node) { if(node->vtbl->handle_event) hres = node->vtbl->handle_event(node, eid, event_obj ? event_obj->nsevent : NULL, &prevent_default); node_release(node); if(FAILED(hres) || prevent_default || (event_obj && event_obj->cancel_bubble)) break; } nsres = nsIDOMNode_GetParentNode(nsnode, &parent); if(NS_FAILED(nsres)) break; nsIDOMNode_Release(nsnode); nsnode = parent; } while(nsnode); if(nsnode) nsIDOMNode_Release(nsnode); } if(prevent_default && event_obj && event_obj->nsevent) { TRACE("calling PreventDefault\n"); nsIDOMEvent_PreventDefault(event_obj->nsevent); } htmldoc_release(&doc->basedoc); }
static ULONG WINAPI PersistStreamInit_AddRef(IPersistStreamInit *iface) { HTMLDocument *This = impl_from_IPersistStreamInit(iface); return htmldoc_addref(This); }
static ULONG WINAPI HTMLDocument4_AddRef(IHTMLDocument4 *iface) { HTMLDocument *This = impl_from_IHTMLDocument4(iface); return htmldoc_addref(This); }
static ULONG WINAPI OleInPlaceObjectWindowless_AddRef(IOleInPlaceObjectWindowless *iface) { HTMLDocument *This = impl_from_IOleInPlaceObjectWindowless(iface); return htmldoc_addref(This); }
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface) { HTMLDocument *This = impl_from_IServiceProvider(iface); return htmldoc_addref(This); }
static nsrefcnt NSAPI nsDocumentObserver_AddRef(nsIDocumentObserver *iface) { HTMLDocumentNode *This = impl_from_nsIDocumentObserver(iface); return htmldoc_addref(&This->basedoc); }
static ULONG WINAPI HlinkTarget_AddRef(IHlinkTarget *iface) { HTMLDocument *This = impl_from_IHlinkTarget(iface); return htmldoc_addref(This); }
static ULONG WINAPI ViewObject_AddRef(IViewObjectEx *iface) { HTMLDocument *This = impl_from_IViewObjectEx(iface); return htmldoc_addref(This); }
static ULONG WINAPI OleDocumentView_AddRef(IOleDocumentView *iface) { HTMLDocument *This = impl_from_IOleDocumentView(iface); return htmldoc_addref(This); }