static nsresult NSAPI handle_node_insert(nsIDOMEventListener *iface, nsIDOMEvent *event) { NSContainer *This = NSEVENTLIST_THIS(iface)->This; nsIDOMHTMLScriptElement *script; nsIDOMEventTarget *target; nsIDOMElement *elem; nsresult nsres; TRACE("(%p %p)\n", This, event); nsres = nsIDOMEvent_GetTarget(event, &target); if(NS_FAILED(nsres)) { ERR("GetTarget failed: %08x\n", nsres); return NS_OK; } nsres = nsIDOMEventTarget_QueryInterface(target, &IID_nsIDOMElement, (void**)&elem); nsIDOMEventTarget_Release(target); if(NS_FAILED(nsres)) return NS_OK; nsres = nsIDOMElement_QueryInterface(elem, &IID_nsIDOMHTMLScriptElement, (void**)&script); if(SUCCEEDED(nsres)) { doc_insert_script(This->doc, script); nsIDOMHTMLScriptElement_Release(script); } check_event_attr(This->doc, elem); nsIDOMNode_Release(elem); return NS_OK; }
HRESULT HTMLAreaElement_Create(HTMLDocumentNode *doc, nsIDOMElement *nselem, HTMLElement **elem) { HTMLAreaElement *ret; nsresult nsres; ret = heap_alloc_zero(sizeof(HTMLAreaElement)); if(!ret) return E_OUTOFMEMORY; ret->IHTMLAreaElement_iface.lpVtbl = &HTMLAreaElementVtbl; ret->element.node.vtbl = &HTMLAreaElementImplVtbl; HTMLElement_Init(&ret->element, doc, nselem, &HTMLAreaElement_dispex); nsres = nsIDOMElement_QueryInterface(nselem, &IID_nsIDOMHTMLAreaElement, (void**)&ret->nsarea); assert(nsres == NS_OK); *elem = &ret->element; return S_OK; }
static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, LONG *p) { HTMLElement *This = HTMLELEM2_THIS(iface); nsIDOMNSHTMLElement *nselem; PRInt32 top = 0; nsresult nsres; TRACE("(%p)->(%p)\n", This, p); nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); if(NS_SUCCEEDED(nsres)) { nsres = nsIDOMNSHTMLElement_GetScrollTop(nselem, &top); nsIDOMNSHTMLElement_Release(nselem); if(NS_FAILED(nsres)) ERR("GetScrollTop failed: %08x\n", nsres); }else { ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); } *p = top; TRACE("*p = %d\n", *p); return S_OK; }