2 * Copyright 2006-2010 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
28 #include "wine/debug.h"
29 #include "wine/unicode.h"
31 #include "mshtml_private.h"
32 #include "htmlevent.h"
34 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
38 const IHTMLRectVtbl *lpIHTMLRectVtbl;
42 #define HTMLRECT(x) ((IHTMLRect*) &(x)->lpIHTMLRectVtbl)
44 #define HTMLRECT_THIS(iface) DEFINE_THIS(HTMLRect, IHTMLRect, iface)
46 static HRESULT WINAPI HTMLRect_QueryInterface(IHTMLRect *iface, REFIID riid, void **ppv)
48 HTMLRect *This = HTMLRECT_THIS(iface);
50 if(IsEqualGUID(&IID_IUnknown, riid)) {
51 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
52 *ppv = HTMLRECT(This);
53 }else if(IsEqualGUID(&IID_IHTMLRect, riid)) {
54 TRACE("(%p)->(IID_IHTMLRect %p)\n", This, ppv);
55 *ppv = HTMLRECT(This);
56 }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
57 return *ppv ? S_OK : E_NOINTERFACE;
59 FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
64 IUnknown_AddRef((IUnknown*)*ppv);
68 static ULONG WINAPI HTMLRect_AddRef(IHTMLRect *iface)
70 HTMLRect *This = HTMLRECT_THIS(iface);
71 LONG ref = InterlockedIncrement(&This->ref);
73 TRACE("(%p) ref=%d\n", This, ref);
78 static ULONG WINAPI HTMLRect_Release(IHTMLRect *iface)
80 HTMLRect *This = HTMLRECT_THIS(iface);
81 LONG ref = InterlockedDecrement(&This->ref);
83 TRACE("(%p) ref=%d\n", This, ref);
91 static HRESULT WINAPI HTMLRect_GetTypeInfoCount(IHTMLRect *iface, UINT *pctinfo)
93 HTMLRect *This = HTMLRECT_THIS(iface);
94 FIXME("(%p)->(%p)\n", This, pctinfo);
98 static HRESULT WINAPI HTMLRect_GetTypeInfo(IHTMLRect *iface, UINT iTInfo,
99 LCID lcid, ITypeInfo **ppTInfo)
101 HTMLRect *This = HTMLRECT_THIS(iface);
103 return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo);
106 static HRESULT WINAPI HTMLRect_GetIDsOfNames(IHTMLRect *iface, REFIID riid,
107 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
109 HTMLRect *This = HTMLRECT_THIS(iface);
111 return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId);
114 static HRESULT WINAPI HTMLRect_Invoke(IHTMLRect *iface, DISPID dispIdMember,
115 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
116 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
118 HTMLRect *This = HTMLRECT_THIS(iface);
120 return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid, wFlags, pDispParams,
121 pVarResult, pExcepInfo, puArgErr);
124 static HRESULT WINAPI HTMLRect_put_left(IHTMLRect *iface, LONG v)
126 HTMLRect *This = HTMLRECT_THIS(iface);
127 FIXME("(%p)->(%d)\n", This, v);
131 static HRESULT WINAPI HTMLRect_get_left(IHTMLRect *iface, LONG *p)
133 HTMLRect *This = HTMLRECT_THIS(iface);
134 FIXME("(%p)->(%p)\n", This, p);
138 static HRESULT WINAPI HTMLRect_put_top(IHTMLRect *iface, LONG v)
140 HTMLRect *This = HTMLRECT_THIS(iface);
141 FIXME("(%p)->(%d)\n", This, v);
145 static HRESULT WINAPI HTMLRect_get_top(IHTMLRect *iface, LONG *p)
147 HTMLRect *This = HTMLRECT_THIS(iface);
148 FIXME("(%p)->(%p)\n", This, p);
152 static HRESULT WINAPI HTMLRect_put_right(IHTMLRect *iface, LONG v)
154 HTMLRect *This = HTMLRECT_THIS(iface);
155 FIXME("(%p)->(%d)\n", This, v);
159 static HRESULT WINAPI HTMLRect_get_right(IHTMLRect *iface, LONG *p)
161 HTMLRect *This = HTMLRECT_THIS(iface);
162 FIXME("(%p)->(%p)\n", This, p);
166 static HRESULT WINAPI HTMLRect_put_bottom(IHTMLRect *iface, LONG v)
168 HTMLRect *This = HTMLRECT_THIS(iface);
169 FIXME("(%p)->(%d)\n", This, v);
173 static HRESULT WINAPI HTMLRect_get_bottom(IHTMLRect *iface, LONG *p)
175 HTMLRect *This = HTMLRECT_THIS(iface);
176 FIXME("(%p)->(%p)\n", This, p);
182 static const IHTMLRectVtbl HTMLRectVtbl = {
183 HTMLRect_QueryInterface,
186 HTMLRect_GetTypeInfoCount,
187 HTMLRect_GetTypeInfo,
188 HTMLRect_GetIDsOfNames,
200 static const tid_t HTMLRect_iface_tids[] = {
204 static dispex_static_data_t HTMLRect_dispex = {
211 static HRESULT create_html_rect(IHTMLRect **ret)
215 rect = heap_alloc_zero(sizeof(HTMLRect));
217 return E_OUTOFMEMORY;
219 rect->lpIHTMLRectVtbl = &HTMLRectVtbl;
222 init_dispex(&rect->dispex, (IUnknown*)HTMLRECT(rect), &HTMLRect_dispex);
224 *ret = HTMLRECT(rect);
228 #define HTMLELEM2_THIS(iface) DEFINE_THIS(HTMLElement, HTMLElement2, iface)
230 static HRESULT WINAPI HTMLElement2_QueryInterface(IHTMLElement2 *iface,
231 REFIID riid, void **ppv)
233 HTMLElement *This = HTMLELEM2_THIS(iface);
234 return IHTMLElement_QueryInterface(HTMLELEM(This), riid, ppv);
237 static ULONG WINAPI HTMLElement2_AddRef(IHTMLElement2 *iface)
239 HTMLElement *This = HTMLELEM2_THIS(iface);
240 return IHTMLElement_AddRef(HTMLELEM(This));
243 static ULONG WINAPI HTMLElement2_Release(IHTMLElement2 *iface)
245 HTMLElement *This = HTMLELEM2_THIS(iface);
246 return IHTMLElement_Release(HTMLELEM(This));
249 static HRESULT WINAPI HTMLElement2_GetTypeInfoCount(IHTMLElement2 *iface, UINT *pctinfo)
251 HTMLElement *This = HTMLELEM2_THIS(iface);
252 return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo);
255 static HRESULT WINAPI HTMLElement2_GetTypeInfo(IHTMLElement2 *iface, UINT iTInfo,
256 LCID lcid, ITypeInfo **ppTInfo)
258 HTMLElement *This = HTMLELEM2_THIS(iface);
259 return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo);
262 static HRESULT WINAPI HTMLElement2_GetIDsOfNames(IHTMLElement2 *iface, REFIID riid,
263 LPOLESTR *rgszNames, UINT cNames,
264 LCID lcid, DISPID *rgDispId)
266 HTMLElement *This = HTMLELEM2_THIS(iface);
267 return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
270 static HRESULT WINAPI HTMLElement2_Invoke(IHTMLElement2 *iface, DISPID dispIdMember,
271 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
272 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
274 HTMLElement *This = HTMLELEM2_THIS(iface);
275 return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid,
276 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
279 static HRESULT WINAPI HTMLElement2_get_scopeName(IHTMLElement2 *iface, BSTR *p)
281 HTMLElement *This = HTMLELEM2_THIS(iface);
282 FIXME("(%p)->(%p)\n", This, p);
286 static HRESULT WINAPI HTMLElement2_setCapture(IHTMLElement2 *iface, VARIANT_BOOL containerCapture)
288 HTMLElement *This = HTMLELEM2_THIS(iface);
289 FIXME("(%p)->(%x)\n", This, containerCapture);
293 static HRESULT WINAPI HTMLElement2_releaseCapture(IHTMLElement2 *iface)
295 HTMLElement *This = HTMLELEM2_THIS(iface);
296 FIXME("(%p)\n", This);
300 static HRESULT WINAPI HTMLElement2_put_onlosecapture(IHTMLElement2 *iface, VARIANT v)
302 HTMLElement *This = HTMLELEM2_THIS(iface);
303 FIXME("(%p)->()\n", This);
307 static HRESULT WINAPI HTMLElement2_get_onlosecapture(IHTMLElement2 *iface, VARIANT *p)
309 HTMLElement *This = HTMLELEM2_THIS(iface);
310 FIXME("(%p)->(%p)\n", This, p);
314 static HRESULT WINAPI HTMLElement2_componentFromPoint(IHTMLElement2 *iface,
315 LONG x, LONG y, BSTR *component)
317 HTMLElement *This = HTMLELEM2_THIS(iface);
318 FIXME("(%p)->(%d %d %p)\n", This, x, y, component);
322 static HRESULT WINAPI HTMLElement2_doScroll(IHTMLElement2 *iface, VARIANT component)
324 HTMLElement *This = HTMLELEM2_THIS(iface);
326 TRACE("(%p)->(%s)\n", This, debugstr_variant(&component));
328 if(!This->node.doc->content_ready
329 || !This->node.doc->basedoc.doc_obj->in_place_active)
336 static HRESULT WINAPI HTMLElement2_put_onscroll(IHTMLElement2 *iface, VARIANT v)
338 HTMLElement *This = HTMLELEM2_THIS(iface);
339 FIXME("(%p)->()\n", This);
343 static HRESULT WINAPI HTMLElement2_get_onscroll(IHTMLElement2 *iface, VARIANT *p)
345 HTMLElement *This = HTMLELEM2_THIS(iface);
346 FIXME("(%p)->(%p)\n", This, p);
350 static HRESULT WINAPI HTMLElement2_put_ondrag(IHTMLElement2 *iface, VARIANT v)
352 HTMLElement *This = HTMLELEM2_THIS(iface);
354 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
356 return set_node_event(&This->node, EVENTID_DRAG, &v);
359 static HRESULT WINAPI HTMLElement2_get_ondrag(IHTMLElement2 *iface, VARIANT *p)
361 HTMLElement *This = HTMLELEM2_THIS(iface);
363 TRACE("(%p)->(%p)\n", This, p);
365 return get_node_event(&This->node, EVENTID_DRAG, p);
368 static HRESULT WINAPI HTMLElement2_put_ondragend(IHTMLElement2 *iface, VARIANT v)
370 HTMLElement *This = HTMLELEM2_THIS(iface);
371 FIXME("(%p)->()\n", This);
375 static HRESULT WINAPI HTMLElement2_get_ondragend(IHTMLElement2 *iface, VARIANT *p)
377 HTMLElement *This = HTMLELEM2_THIS(iface);
378 FIXME("(%p)->(%p)\n", This, p);
382 static HRESULT WINAPI HTMLElement2_put_ondragenter(IHTMLElement2 *iface, VARIANT v)
384 HTMLElement *This = HTMLELEM2_THIS(iface);
385 FIXME("(%p)->()\n", This);
389 static HRESULT WINAPI HTMLElement2_get_ondragenter(IHTMLElement2 *iface, VARIANT *p)
391 HTMLElement *This = HTMLELEM2_THIS(iface);
392 FIXME("(%p)->(%p)\n", This, p);
396 static HRESULT WINAPI HTMLElement2_put_ondragover(IHTMLElement2 *iface, VARIANT v)
398 HTMLElement *This = HTMLELEM2_THIS(iface);
399 FIXME("(%p)->()\n", This);
403 static HRESULT WINAPI HTMLElement2_get_ondragover(IHTMLElement2 *iface, VARIANT *p)
405 HTMLElement *This = HTMLELEM2_THIS(iface);
406 FIXME("(%p)->(%p)\n", This, p);
410 static HRESULT WINAPI HTMLElement2_put_ondragleave(IHTMLElement2 *iface, VARIANT v)
412 HTMLElement *This = HTMLELEM2_THIS(iface);
413 FIXME("(%p)->()\n", This);
417 static HRESULT WINAPI HTMLElement2_get_ondragleave(IHTMLElement2 *iface, VARIANT *p)
419 HTMLElement *This = HTMLELEM2_THIS(iface);
420 FIXME("(%p)->(%p)\n", This, p);
424 static HRESULT WINAPI HTMLElement2_put_ondrop(IHTMLElement2 *iface, VARIANT v)
426 HTMLElement *This = HTMLELEM2_THIS(iface);
427 FIXME("(%p)->()\n", This);
431 static HRESULT WINAPI HTMLElement2_get_ondrop(IHTMLElement2 *iface, VARIANT *p)
433 HTMLElement *This = HTMLELEM2_THIS(iface);
434 FIXME("(%p)->(%p)\n", This, p);
438 static HRESULT WINAPI HTMLElement2_put_onbeforecut(IHTMLElement2 *iface, VARIANT v)
440 HTMLElement *This = HTMLELEM2_THIS(iface);
441 FIXME("(%p)->()\n", This);
445 static HRESULT WINAPI HTMLElement2_get_onbeforecut(IHTMLElement2 *iface, VARIANT *p)
447 HTMLElement *This = HTMLELEM2_THIS(iface);
448 FIXME("(%p)->(%p)\n", This, p);
452 static HRESULT WINAPI HTMLElement2_put_oncut(IHTMLElement2 *iface, VARIANT v)
454 HTMLElement *This = HTMLELEM2_THIS(iface);
455 FIXME("(%p)->()\n", This);
459 static HRESULT WINAPI HTMLElement2_get_oncut(IHTMLElement2 *iface, VARIANT *p)
461 HTMLElement *This = HTMLELEM2_THIS(iface);
462 FIXME("(%p)->(%p)\n", This, p);
466 static HRESULT WINAPI HTMLElement2_put_onbeforecopy(IHTMLElement2 *iface, VARIANT v)
468 HTMLElement *This = HTMLELEM2_THIS(iface);
469 FIXME("(%p)->()\n", This);
473 static HRESULT WINAPI HTMLElement2_get_onbeforecopy(IHTMLElement2 *iface, VARIANT *p)
475 HTMLElement *This = HTMLELEM2_THIS(iface);
476 FIXME("(%p)->(%p)\n", This, p);
480 static HRESULT WINAPI HTMLElement2_put_oncopy(IHTMLElement2 *iface, VARIANT v)
482 HTMLElement *This = HTMLELEM2_THIS(iface);
483 FIXME("(%p)->()\n", This);
487 static HRESULT WINAPI HTMLElement2_get_oncopy(IHTMLElement2 *iface, VARIANT *p)
489 HTMLElement *This = HTMLELEM2_THIS(iface);
490 FIXME("(%p)->(%p)\n", This, p);
494 static HRESULT WINAPI HTMLElement2_put_onbeforepaste(IHTMLElement2 *iface, VARIANT v)
496 HTMLElement *This = HTMLELEM2_THIS(iface);
497 FIXME("(%p)->()\n", This);
501 static HRESULT WINAPI HTMLElement2_get_onbeforepaste(IHTMLElement2 *iface, VARIANT *p)
503 HTMLElement *This = HTMLELEM2_THIS(iface);
504 FIXME("(%p)->(%p)\n", This, p);
508 static HRESULT WINAPI HTMLElement2_put_onpaste(IHTMLElement2 *iface, VARIANT v)
510 HTMLElement *This = HTMLELEM2_THIS(iface);
512 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
514 return set_node_event(&This->node, EVENTID_PASTE, &v);
517 static HRESULT WINAPI HTMLElement2_get_onpaste(IHTMLElement2 *iface, VARIANT *p)
519 HTMLElement *This = HTMLELEM2_THIS(iface);
521 TRACE("(%p)->(%p)\n", This, p);
523 return get_node_event(&This->node, EVENTID_PASTE, p);
526 static HRESULT WINAPI HTMLElement2_get_currentStyle(IHTMLElement2 *iface, IHTMLCurrentStyle **p)
528 HTMLElement *This = HTMLELEM2_THIS(iface);
530 TRACE("(%p)->(%p)\n", This, p);
532 return HTMLCurrentStyle_Create(This, p);
535 static HRESULT WINAPI HTMLElement2_put_onpropertychange(IHTMLElement2 *iface, VARIANT v)
537 HTMLElement *This = HTMLELEM2_THIS(iface);
538 FIXME("(%p)->()\n", This);
542 static HRESULT WINAPI HTMLElement2_get_onpropertychange(IHTMLElement2 *iface, VARIANT *p)
544 HTMLElement *This = HTMLELEM2_THIS(iface);
545 FIXME("(%p)->(%p)\n", This, p);
549 static HRESULT WINAPI HTMLElement2_getClientRects(IHTMLElement2 *iface, IHTMLRectCollection **pRectCol)
551 HTMLElement *This = HTMLELEM2_THIS(iface);
552 FIXME("(%p)->(%p)\n", This, pRectCol);
556 static HRESULT WINAPI HTMLElement2_getBoundingClientRect(IHTMLElement2 *iface, IHTMLRect **pRect)
558 HTMLElement *This = HTMLELEM2_THIS(iface);
560 TRACE("(%p)->(%p)\n", This, pRect);
562 return create_html_rect(pRect);
565 static HRESULT WINAPI HTMLElement2_setExpression(IHTMLElement2 *iface, BSTR propname,
566 BSTR expression, BSTR language)
568 HTMLElement *This = HTMLELEM2_THIS(iface);
569 FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(propname), debugstr_w(expression),
570 debugstr_w(language));
574 static HRESULT WINAPI HTMLElement2_getExpression(IHTMLElement2 *iface, BSTR propname,
577 HTMLElement *This = HTMLELEM2_THIS(iface);
578 FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), expression);
582 static HRESULT WINAPI HTMLElement2_removeExpression(IHTMLElement2 *iface, BSTR propname,
583 VARIANT_BOOL *pfSuccess)
585 HTMLElement *This = HTMLELEM2_THIS(iface);
586 FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), pfSuccess);
590 static HRESULT WINAPI HTMLElement2_put_tabIndex(IHTMLElement2 *iface, short v)
592 HTMLElement *This = HTMLELEM2_THIS(iface);
593 nsIDOMNSHTMLElement *nselem;
596 TRACE("(%p)->(%d)\n", This, v);
598 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
599 if(NS_FAILED(nsres)) {
600 ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
604 nsres = nsIDOMNSHTMLElement_SetTabIndex(nselem, v);
605 nsIDOMNSHTMLElement_Release(nselem);
607 ERR("GetTabIndex failed: %08x\n", nsres);
612 static HRESULT WINAPI HTMLElement2_get_tabIndex(IHTMLElement2 *iface, short *p)
614 HTMLElement *This = HTMLELEM2_THIS(iface);
615 nsIDOMNSHTMLElement *nselem;
619 TRACE("(%p)->(%p)\n", This, p);
621 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
622 if(NS_FAILED(nsres)) {
623 ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
627 nsres = nsIDOMNSHTMLElement_GetTabIndex(nselem, &index);
628 nsIDOMNSHTMLElement_Release(nselem);
629 if(NS_FAILED(nsres)) {
630 ERR("GetTabIndex failed: %08x\n", nsres);
638 static HRESULT WINAPI HTMLElement2_focus(IHTMLElement2 *iface)
640 HTMLElement *This = HTMLELEM2_THIS(iface);
641 nsIDOMNSHTMLElement *nselem;
644 TRACE("(%p)\n", This);
646 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
647 if(NS_SUCCEEDED(nsres)) {
648 nsIDOMNSHTMLElement_Focus(nselem);
649 nsIDOMNSHTMLElement_Release(nselem);
651 ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
657 static HRESULT WINAPI HTMLElement2_put_accessKey(IHTMLElement2 *iface, BSTR v)
659 HTMLElement *This = HTMLELEM2_THIS(iface);
662 static WCHAR accessKeyW[] = {'a','c','c','e','s','s','K','e','y',0};
664 TRACE("(%p)->(%s)\n", This, debugstr_w(v));
666 V_VT(&var) = VT_BSTR;
668 return IHTMLElement_setAttribute(HTMLELEM(This), accessKeyW, var, 0);
671 static HRESULT WINAPI HTMLElement2_get_accessKey(IHTMLElement2 *iface, BSTR *p)
673 HTMLElement *This = HTMLELEM2_THIS(iface);
674 FIXME("(%p)->(%p)\n", This, p);
678 static HRESULT WINAPI HTMLElement2_put_onblur(IHTMLElement2 *iface, VARIANT v)
680 HTMLElement *This = HTMLELEM2_THIS(iface);
682 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
684 return set_node_event(&This->node, EVENTID_BLUR, &v);
687 static HRESULT WINAPI HTMLElement2_get_onblur(IHTMLElement2 *iface, VARIANT *p)
689 HTMLElement *This = HTMLELEM2_THIS(iface);
691 TRACE("(%p)->(%p)\n", This, p);
693 return get_node_event(&This->node, EVENTID_BLUR, p);
696 static HRESULT WINAPI HTMLElement2_put_onfocus(IHTMLElement2 *iface, VARIANT v)
698 HTMLElement *This = HTMLELEM2_THIS(iface);
700 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
702 return set_node_event(&This->node, EVENTID_FOCUS, &v);
705 static HRESULT WINAPI HTMLElement2_get_onfocus(IHTMLElement2 *iface, VARIANT *p)
707 HTMLElement *This = HTMLELEM2_THIS(iface);
709 TRACE("(%p)->(%p)\n", This, p);
711 return get_node_event(&This->node, EVENTID_FOCUS, p);
714 static HRESULT WINAPI HTMLElement2_put_onresize(IHTMLElement2 *iface, VARIANT v)
716 HTMLElement *This = HTMLELEM2_THIS(iface);
717 FIXME("(%p)->()\n", This);
721 static HRESULT WINAPI HTMLElement2_get_onresize(IHTMLElement2 *iface, VARIANT *p)
723 HTMLElement *This = HTMLELEM2_THIS(iface);
724 FIXME("(%p)->(%p)\n", This, p);
728 static HRESULT WINAPI HTMLElement2_blur(IHTMLElement2 *iface)
730 HTMLElement *This = HTMLELEM2_THIS(iface);
731 FIXME("(%p)\n", This);
735 static HRESULT WINAPI HTMLElement2_addFilter(IHTMLElement2 *iface, IUnknown *pUnk)
737 HTMLElement *This = HTMLELEM2_THIS(iface);
738 FIXME("(%p)->(%p)\n", This, pUnk);
742 static HRESULT WINAPI HTMLElement2_removeFilter(IHTMLElement2 *iface, IUnknown *pUnk)
744 HTMLElement *This = HTMLELEM2_THIS(iface);
745 FIXME("(%p)->(%p)\n", This, pUnk);
749 static HRESULT WINAPI HTMLElement2_get_clientHeight(IHTMLElement2 *iface, LONG *p)
751 HTMLElement *This = HTMLELEM2_THIS(iface);
752 nsIDOMNSElement *nselem;
756 TRACE("(%p)->(%p)\n", This, p);
758 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
759 if(NS_SUCCEEDED(nsres)) {
760 nsIDOMNSElement_GetClientHeight(nselem, &height);
761 nsIDOMNSElement_Release(nselem);
763 ERR("Could not get nsIDOMNSElement: %08x\n", nsres);
770 static HRESULT WINAPI HTMLElement2_get_clientWidth(IHTMLElement2 *iface, LONG *p)
772 HTMLElement *This = HTMLELEM2_THIS(iface);
773 nsIDOMNSElement *nselem;
777 TRACE("(%p)->(%p)\n", This, p);
779 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
780 if(NS_SUCCEEDED(nsres)) {
781 nsIDOMNSElement_GetClientWidth(nselem, &width);
782 nsIDOMNSElement_Release(nselem);
784 ERR("Could not get nsIDOMNSElement: %08x\n", nsres);
791 static HRESULT WINAPI HTMLElement2_get_clientTop(IHTMLElement2 *iface, LONG *p)
793 HTMLElement *This = HTMLELEM2_THIS(iface);
794 nsIDOMNSElement *nselem;
795 PRInt32 client_top = 0;
798 TRACE("(%p)->(%p)\n", This, p);
800 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
801 if(NS_SUCCEEDED(nsres)) {
802 nsres = nsIDOMNSElement_GetClientTop(nselem, &client_top);
803 nsIDOMNSElement_Release(nselem);
805 ERR("GetScrollHeight failed: %08x\n", nsres);
807 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
811 TRACE("*p = %d\n", *p);
815 static HRESULT WINAPI HTMLElement2_get_clientLeft(IHTMLElement2 *iface, LONG *p)
817 HTMLElement *This = HTMLELEM2_THIS(iface);
818 nsIDOMNSElement *nselem;
819 PRInt32 client_left = 0;
822 TRACE("(%p)->(%p)\n", This, p);
824 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
825 if(NS_SUCCEEDED(nsres)) {
826 nsres = nsIDOMNSElement_GetClientLeft(nselem, &client_left);
827 nsIDOMNSElement_Release(nselem);
829 ERR("GetScrollHeight failed: %08x\n", nsres);
831 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
835 TRACE("*p = %d\n", *p);
839 static HRESULT WINAPI HTMLElement2_attachEvent(IHTMLElement2 *iface, BSTR event,
840 IDispatch *pDisp, VARIANT_BOOL *pfResult)
842 HTMLElement *This = HTMLELEM2_THIS(iface);
844 TRACE("(%p)->(%s %p %p)\n", This, debugstr_w(event), pDisp, pfResult);
846 return attach_event(get_node_event_target(&This->node), This->node.nsnode, &This->node.doc->basedoc, event, pDisp, pfResult);
849 static HRESULT WINAPI HTMLElement2_detachEvent(IHTMLElement2 *iface, BSTR event, IDispatch *pDisp)
851 HTMLElement *This = HTMLELEM2_THIS(iface);
853 TRACE("(%p)->(%s %p)\n", This, debugstr_w(event), pDisp);
855 return detach_event(*get_node_event_target(&This->node), &This->node.doc->basedoc, event, pDisp);
858 static HRESULT WINAPI HTMLElement2_get_readyState(IHTMLElement2 *iface, VARIANT *p)
860 HTMLElement *This = HTMLELEM2_THIS(iface);
863 TRACE("(%p)->(%p)\n", This, p);
865 if(This->node.vtbl->get_readystate) {
868 hres = This->node.vtbl->get_readystate(&This->node, &str);
872 static const WCHAR completeW[] = {'c','o','m','p','l','e','t','e',0};
874 str = SysAllocString(completeW);
876 return E_OUTOFMEMORY;
884 static HRESULT WINAPI HTMLElement2_put_onreadystatechange(IHTMLElement2 *iface, VARIANT v)
886 HTMLElement *This = HTMLELEM2_THIS(iface);
888 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
890 return set_node_event(&This->node, EVENTID_READYSTATECHANGE, &v);
893 static HRESULT WINAPI HTMLElement2_get_onreadystatechange(IHTMLElement2 *iface, VARIANT *p)
895 HTMLElement *This = HTMLELEM2_THIS(iface);
897 TRACE("(%p)->(%p)\n", This, p);
899 return get_node_event(&This->node, EVENTID_READYSTATECHANGE, p);
902 static HRESULT WINAPI HTMLElement2_put_onrowsdelete(IHTMLElement2 *iface, VARIANT v)
904 HTMLElement *This = HTMLELEM2_THIS(iface);
905 FIXME("(%p)->()\n", This);
909 static HRESULT WINAPI HTMLElement2_get_onrowsdelete(IHTMLElement2 *iface, VARIANT *p)
911 HTMLElement *This = HTMLELEM2_THIS(iface);
912 FIXME("(%p)->(%p)\n", This, p);
916 static HRESULT WINAPI HTMLElement2_put_onrowsinserted(IHTMLElement2 *iface, VARIANT v)
918 HTMLElement *This = HTMLELEM2_THIS(iface);
919 FIXME("(%p)->()\n", This);
923 static HRESULT WINAPI HTMLElement2_get_onrowsinserted(IHTMLElement2 *iface, VARIANT *p)
925 HTMLElement *This = HTMLELEM2_THIS(iface);
926 FIXME("(%p)->(%p)\n", This, p);
930 static HRESULT WINAPI HTMLElement2_put_oncellchange(IHTMLElement2 *iface, VARIANT v)
932 HTMLElement *This = HTMLELEM2_THIS(iface);
933 FIXME("(%p)->()\n", This);
937 static HRESULT WINAPI HTMLElement2_get_oncellchange(IHTMLElement2 *iface, VARIANT *p)
939 HTMLElement *This = HTMLELEM2_THIS(iface);
940 FIXME("(%p)->(%p)\n", This, p);
944 static HRESULT WINAPI HTMLElement2_put_dir(IHTMLElement2 *iface, BSTR v)
946 HTMLElement *This = HTMLELEM2_THIS(iface);
947 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
951 static HRESULT WINAPI HTMLElement2_get_dir(IHTMLElement2 *iface, BSTR *p)
953 HTMLElement *This = HTMLELEM2_THIS(iface);
955 TRACE("(%p)->(%p)\n", This, p);
963 nsAString_Init(&dir_str, NULL);
965 nsres = nsIDOMHTMLElement_GetDir(This->nselem, &dir_str);
966 if(NS_SUCCEEDED(nsres)) {
967 const PRUnichar *dir;
968 nsAString_GetData(&dir_str, &dir);
970 *p = SysAllocString(dir);
972 ERR("GetDir failed: %08x\n", nsres);
975 nsAString_Finish(&dir_str);
978 TRACE("ret %s\n", debugstr_w(*p));
982 static HRESULT WINAPI HTMLElement2_createControlRange(IHTMLElement2 *iface, IDispatch **range)
984 HTMLElement *This = HTMLELEM2_THIS(iface);
985 FIXME("(%p)->(%p)\n", This, range);
989 static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, LONG *p)
991 HTMLElement *This = HTMLELEM2_THIS(iface);
992 nsIDOMNSElement *nselem;
996 TRACE("(%p)->(%p)\n", This, p);
998 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
999 if(NS_SUCCEEDED(nsres)) {
1000 nsres = nsIDOMNSElement_GetScrollHeight(nselem, &height);
1001 nsIDOMNSElement_Release(nselem);
1002 if(NS_FAILED(nsres))
1003 ERR("GetScrollHeight failed: %08x\n", nsres);
1005 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
1009 TRACE("*p = %d\n", *p);
1014 static HRESULT WINAPI HTMLElement2_get_scrollWidth(IHTMLElement2 *iface, LONG *p)
1016 HTMLElement *This = HTMLELEM2_THIS(iface);
1017 nsIDOMNSElement *nselem;
1021 TRACE("(%p)->(%p)\n", This, p);
1023 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
1024 if(NS_SUCCEEDED(nsres)) {
1025 nsres = nsIDOMNSElement_GetScrollWidth(nselem, &width);
1026 nsIDOMNSElement_Release(nselem);
1027 if(NS_FAILED(nsres))
1028 ERR("GetScrollWidth failed: %08x\n", nsres);
1030 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
1034 TRACE("*p = %d\n", *p);
1039 static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, LONG v)
1041 HTMLElement *This = HTMLELEM2_THIS(iface);
1042 nsIDOMNSElement *nselem;
1045 TRACE("(%p)->(%d)\n", This, v);
1048 FIXME("NULL nselem\n");
1052 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
1053 if(NS_SUCCEEDED(nsres)) {
1054 nsIDOMNSElement_SetScrollTop(nselem, v);
1055 nsIDOMNSElement_Release(nselem);
1057 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
1063 static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, LONG *p)
1065 HTMLElement *This = HTMLELEM2_THIS(iface);
1066 nsIDOMNSElement *nselem;
1070 TRACE("(%p)->(%p)\n", This, p);
1072 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
1073 if(NS_SUCCEEDED(nsres)) {
1074 nsres = nsIDOMNSElement_GetScrollTop(nselem, &top);
1075 nsIDOMNSElement_Release(nselem);
1076 if(NS_FAILED(nsres))
1077 ERR("GetScrollTop failed: %08x\n", nsres);
1079 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
1083 TRACE("*p = %d\n", *p);
1088 static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, LONG v)
1090 HTMLElement *This = HTMLELEM2_THIS(iface);
1091 nsIDOMNSElement *nselem;
1094 TRACE("(%p)->(%d)\n", This, v);
1097 FIXME("NULL nselem\n");
1101 nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
1102 if(NS_SUCCEEDED(nsres)) {
1103 nsIDOMNSElement_SetScrollLeft(nselem, v);
1104 nsIDOMNSElement_Release(nselem);
1106 ERR("Could not get nsIDOMNSElement interface: %08x\n", nsres);
1112 static HRESULT WINAPI HTMLElement2_get_scrollLeft(IHTMLElement2 *iface, LONG *p)
1114 HTMLElement *This = HTMLELEM2_THIS(iface);
1115 nsIDOMNSElement *nselem;
1119 TRACE("(%p)->(%p)\n", This, p);
1122 return E_INVALIDARG;
1126 FIXME("NULL nselem\n");
1130 nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSElement, (void**)&nselem);
1131 if(NS_SUCCEEDED(nsres))
1133 nsres = nsIDOMNSElement_GetScrollLeft(nselem, &left);
1134 nsIDOMNSElement_Release(nselem);
1135 if(NS_FAILED(nsres))
1140 TRACE("*p = %d\n", *p);
1145 static HRESULT WINAPI HTMLElement2_clearAttributes(IHTMLElement2 *iface)
1147 HTMLElement *This = HTMLELEM2_THIS(iface);
1148 FIXME("(%p)\n", This);
1152 static HRESULT WINAPI HTMLElement2_mergeAttributes(IHTMLElement2 *iface, IHTMLElement *mergeThis)
1154 HTMLElement *This = HTMLELEM2_THIS(iface);
1155 FIXME("(%p)->(%p)\n", This, mergeThis);
1159 static HRESULT WINAPI HTMLElement2_put_oncontextmenu(IHTMLElement2 *iface, VARIANT v)
1161 HTMLElement *This = HTMLELEM2_THIS(iface);
1162 FIXME("(%p)->()\n", This);
1166 static HRESULT WINAPI HTMLElement2_get_oncontextmenu(IHTMLElement2 *iface, VARIANT *p)
1168 HTMLElement *This = HTMLELEM2_THIS(iface);
1169 FIXME("(%p)->(%p)\n", This, p);
1173 static HRESULT WINAPI HTMLElement2_insertAdjecentElement(IHTMLElement2 *iface, BSTR where,
1174 IHTMLElement *insertedElement, IHTMLElement **inserted)
1176 HTMLElement *This = HTMLELEM2_THIS(iface);
1177 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(where), insertedElement, inserted);
1181 static HRESULT WINAPI HTMLElement2_applyElement(IHTMLElement2 *iface, IHTMLElement *apply,
1182 BSTR where, IHTMLElement **applied)
1184 HTMLElement *This = HTMLELEM2_THIS(iface);
1185 FIXME("(%p)->(%p %s %p)\n", This, apply, debugstr_w(where), applied);
1189 static HRESULT WINAPI HTMLElement2_getAdjecentText(IHTMLElement2 *iface, BSTR where, BSTR *text)
1191 HTMLElement *This = HTMLELEM2_THIS(iface);
1192 FIXME("(%p)->(%s %p)\n", This, debugstr_w(where), text);
1196 static HRESULT WINAPI HTMLElement2_replaceAdjecentText(IHTMLElement2 *iface, BSTR where,
1197 BSTR newText, BSTR *oldText)
1199 HTMLElement *This = HTMLELEM2_THIS(iface);
1200 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(where), debugstr_w(newText), oldText);
1204 static HRESULT WINAPI HTMLElement2_get_canHandleChildren(IHTMLElement2 *iface, VARIANT_BOOL *p)
1206 HTMLElement *This = HTMLELEM2_THIS(iface);
1207 FIXME("(%p)->(%p)\n", This, p);
1211 static HRESULT WINAPI HTMLElement2_addBehavior(IHTMLElement2 *iface, BSTR bstrUrl,
1212 VARIANT *pvarFactory, LONG *pCookie)
1214 HTMLElement *This = HTMLELEM2_THIS(iface);
1215 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(bstrUrl), pvarFactory, pCookie);
1219 static HRESULT WINAPI HTMLElement2_removeBehavior(IHTMLElement2 *iface, LONG cookie,
1220 VARIANT_BOOL *pfResult)
1222 HTMLElement *This = HTMLELEM2_THIS(iface);
1223 FIXME("(%p)->(%d %p)\n", This, cookie, pfResult);
1227 static HRESULT WINAPI HTMLElement2_get_runtimeStyle(IHTMLElement2 *iface, IHTMLStyle **p)
1229 HTMLElement *This = HTMLELEM2_THIS(iface);
1230 FIXME("(%p)->(%p)\n", This, p);
1234 static HRESULT WINAPI HTMLElement2_get_behaviorUrns(IHTMLElement2 *iface, IDispatch **p)
1236 HTMLElement *This = HTMLELEM2_THIS(iface);
1237 FIXME("(%p)->(%p)\n", This, p);
1241 static HRESULT WINAPI HTMLElement2_put_tagUrn(IHTMLElement2 *iface, BSTR v)
1243 HTMLElement *This = HTMLELEM2_THIS(iface);
1244 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1248 static HRESULT WINAPI HTMLElement2_get_tagUrn(IHTMLElement2 *iface, BSTR *p)
1250 HTMLElement *This = HTMLELEM2_THIS(iface);
1251 FIXME("(%p)->(%p)\n", This, p);
1255 static HRESULT WINAPI HTMLElement2_put_onbeforeeditfocus(IHTMLElement2 *iface, VARIANT vv)
1257 HTMLElement *This = HTMLELEM2_THIS(iface);
1258 FIXME("(%p)->()\n", This);
1262 static HRESULT WINAPI HTMLElement2_get_onbeforeeditfocus(IHTMLElement2 *iface, VARIANT *p)
1264 HTMLElement *This = HTMLELEM2_THIS(iface);
1265 FIXME("(%p)->(%p)\n", This, p);
1269 static HRESULT WINAPI HTMLElement2_get_readyStateValue(IHTMLElement2 *iface, LONG *p)
1271 HTMLElement *This = HTMLELEM2_THIS(iface);
1272 FIXME("(%p)->(%p)\n", This, p);
1276 static HRESULT WINAPI HTMLElement2_getElementsByTagName(IHTMLElement2 *iface, BSTR v,
1277 IHTMLElementCollection **pelColl)
1279 HTMLElement *This = HTMLELEM2_THIS(iface);
1280 nsIDOMNodeList *nslist;
1284 TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl);
1286 nsAString_InitDepend(&tag_str, v);
1287 nsres = nsIDOMHTMLElement_GetElementsByTagName(This->nselem, &tag_str, &nslist);
1288 nsAString_Finish(&tag_str);
1289 if(NS_FAILED(nsres)) {
1290 ERR("GetElementByTagName failed: %08x\n", nsres);
1294 *pelColl = create_collection_from_nodelist(This->node.doc, (IUnknown*)HTMLELEM(This), nslist);
1295 nsIDOMNodeList_Release(nslist);
1299 #undef HTMLELEM2_THIS
1301 static const IHTMLElement2Vtbl HTMLElement2Vtbl = {
1302 HTMLElement2_QueryInterface,
1303 HTMLElement2_AddRef,
1304 HTMLElement2_Release,
1305 HTMLElement2_GetTypeInfoCount,
1306 HTMLElement2_GetTypeInfo,
1307 HTMLElement2_GetIDsOfNames,
1308 HTMLElement2_Invoke,
1309 HTMLElement2_get_scopeName,
1310 HTMLElement2_setCapture,
1311 HTMLElement2_releaseCapture,
1312 HTMLElement2_put_onlosecapture,
1313 HTMLElement2_get_onlosecapture,
1314 HTMLElement2_componentFromPoint,
1315 HTMLElement2_doScroll,
1316 HTMLElement2_put_onscroll,
1317 HTMLElement2_get_onscroll,
1318 HTMLElement2_put_ondrag,
1319 HTMLElement2_get_ondrag,
1320 HTMLElement2_put_ondragend,
1321 HTMLElement2_get_ondragend,
1322 HTMLElement2_put_ondragenter,
1323 HTMLElement2_get_ondragenter,
1324 HTMLElement2_put_ondragover,
1325 HTMLElement2_get_ondragover,
1326 HTMLElement2_put_ondragleave,
1327 HTMLElement2_get_ondragleave,
1328 HTMLElement2_put_ondrop,
1329 HTMLElement2_get_ondrop,
1330 HTMLElement2_put_onbeforecut,
1331 HTMLElement2_get_onbeforecut,
1332 HTMLElement2_put_oncut,
1333 HTMLElement2_get_oncut,
1334 HTMLElement2_put_onbeforecopy,
1335 HTMLElement2_get_onbeforecopy,
1336 HTMLElement2_put_oncopy,
1337 HTMLElement2_get_oncopy,
1338 HTMLElement2_put_onbeforepaste,
1339 HTMLElement2_get_onbeforepaste,
1340 HTMLElement2_put_onpaste,
1341 HTMLElement2_get_onpaste,
1342 HTMLElement2_get_currentStyle,
1343 HTMLElement2_put_onpropertychange,
1344 HTMLElement2_get_onpropertychange,
1345 HTMLElement2_getClientRects,
1346 HTMLElement2_getBoundingClientRect,
1347 HTMLElement2_setExpression,
1348 HTMLElement2_getExpression,
1349 HTMLElement2_removeExpression,
1350 HTMLElement2_put_tabIndex,
1351 HTMLElement2_get_tabIndex,
1353 HTMLElement2_put_accessKey,
1354 HTMLElement2_get_accessKey,
1355 HTMLElement2_put_onblur,
1356 HTMLElement2_get_onblur,
1357 HTMLElement2_put_onfocus,
1358 HTMLElement2_get_onfocus,
1359 HTMLElement2_put_onresize,
1360 HTMLElement2_get_onresize,
1362 HTMLElement2_addFilter,
1363 HTMLElement2_removeFilter,
1364 HTMLElement2_get_clientHeight,
1365 HTMLElement2_get_clientWidth,
1366 HTMLElement2_get_clientTop,
1367 HTMLElement2_get_clientLeft,
1368 HTMLElement2_attachEvent,
1369 HTMLElement2_detachEvent,
1370 HTMLElement2_get_readyState,
1371 HTMLElement2_put_onreadystatechange,
1372 HTMLElement2_get_onreadystatechange,
1373 HTMLElement2_put_onrowsdelete,
1374 HTMLElement2_get_onrowsdelete,
1375 HTMLElement2_put_onrowsinserted,
1376 HTMLElement2_get_onrowsinserted,
1377 HTMLElement2_put_oncellchange,
1378 HTMLElement2_get_oncellchange,
1379 HTMLElement2_put_dir,
1380 HTMLElement2_get_dir,
1381 HTMLElement2_createControlRange,
1382 HTMLElement2_get_scrollHeight,
1383 HTMLElement2_get_scrollWidth,
1384 HTMLElement2_put_scrollTop,
1385 HTMLElement2_get_scrollTop,
1386 HTMLElement2_put_scrollLeft,
1387 HTMLElement2_get_scrollLeft,
1388 HTMLElement2_clearAttributes,
1389 HTMLElement2_mergeAttributes,
1390 HTMLElement2_put_oncontextmenu,
1391 HTMLElement2_get_oncontextmenu,
1392 HTMLElement2_insertAdjecentElement,
1393 HTMLElement2_applyElement,
1394 HTMLElement2_getAdjecentText,
1395 HTMLElement2_replaceAdjecentText,
1396 HTMLElement2_get_canHandleChildren,
1397 HTMLElement2_addBehavior,
1398 HTMLElement2_removeBehavior,
1399 HTMLElement2_get_runtimeStyle,
1400 HTMLElement2_get_behaviorUrns,
1401 HTMLElement2_put_tagUrn,
1402 HTMLElement2_get_tagUrn,
1403 HTMLElement2_put_onbeforeeditfocus,
1404 HTMLElement2_get_onbeforeeditfocus,
1405 HTMLElement2_get_readyStateValue,
1406 HTMLElement2_getElementsByTagName,
1409 void HTMLElement2_Init(HTMLElement *This)
1411 This->lpHTMLElement2Vtbl = &HTMLElement2Vtbl;