2007-07-27 Ada Chan <adachan@apple.com>
[WebKit-https.git] / WebKit / win / DOMHTMLClasses.h
1 /*
2  * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #ifndef DOMHTMLClasses_H
27 #define DOMHTMLClasses_H
28
29 #include "DOMHTML.h"
30 #include "DOMPrivate.h"
31 #include "DOMCoreClasses.h"
32 #include "WebScriptObject.h"
33
34 #include <WTF/RefPtr.h>
35
36 namespace WebCore {
37     class HTMLCollection;
38 }
39
40 class DOMHTMLCollection : public DOMObject, public IDOMHTMLCollection
41 {
42 protected:
43     DOMHTMLCollection(WebCore::HTMLCollection* c);
44
45 public:
46     static IDOMHTMLCollection* createInstance(WebCore::HTMLCollection*);
47
48     // IUnknown
49     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
50     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
51     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
52
53     // IWebScriptObject
54     virtual HRESULT STDMETHODCALLTYPE throwException( 
55         /* [in] */ BSTR exceptionMessage,
56         /* [retval][out] */ BOOL *result) { return DOMObject::throwException(exceptionMessage, result); }
57     
58     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
59         /* [in] */ BSTR name,
60         /* [size_is][in] */ const VARIANT args[  ],
61         /* [in] */ int cArgs,
62         /* [retval][out] */ VARIANT *result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
63     
64     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
65         /* [in] */ BSTR script,
66         /* [retval][out] */ VARIANT *result) { return DOMObject::evaluateWebScript(script, result); }
67     
68     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
69         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
70     
71     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
72         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
73     
74     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
75         /* [in] */ unsigned int index,
76         /* [retval][out] */ VARIANT *result) { return DOMObject::webScriptValueAtIndex(index, result); }
77     
78     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
79         /* [in] */ unsigned int index,
80         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
81     
82     virtual HRESULT STDMETHODCALLTYPE setException( 
83         /* [in] */ BSTR description) { return DOMObject::setException(description); }
84
85     // IDOMHTMLCollection
86     virtual HRESULT STDMETHODCALLTYPE length( 
87         /* [retval][out] */ UINT *result);
88     
89     virtual HRESULT STDMETHODCALLTYPE item( 
90         /* [in] */ UINT index,
91         /* [retval][out] */ IDOMNode **node);
92     
93     virtual HRESULT STDMETHODCALLTYPE namedItem( 
94         /* [in] */ BSTR name,
95         /* [retval][out] */ IDOMNode **node);
96
97 protected:
98     RefPtr<WebCore::HTMLCollection> m_collection;
99 };
100
101 class DOMHTMLOptionsCollection : public DOMObject, public IDOMHTMLOptionsCollection
102 {
103     // IUnknown
104     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
105     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
106     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
107
108     // IWebScriptObject
109     virtual HRESULT STDMETHODCALLTYPE throwException( 
110         /* [in] */ BSTR exceptionMessage,
111         /* [retval][out] */ BOOL *result) { return DOMObject::throwException(exceptionMessage, result); }
112     
113     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
114         /* [in] */ BSTR name,
115         /* [size_is][in] */ const VARIANT args[  ],
116         /* [in] */ int cArgs,
117         /* [retval][out] */ VARIANT *result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
118     
119     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
120         /* [in] */ BSTR script,
121         /* [retval][out] */ VARIANT *result) { return DOMObject::evaluateWebScript(script, result); }
122     
123     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
124         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
125     
126     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
127         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
128     
129     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
130         /* [in] */ unsigned int index,
131         /* [retval][out] */ VARIANT *result) { return DOMObject::webScriptValueAtIndex(index, result); }
132     
133     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
134         /* [in] */ unsigned int index,
135         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
136     
137     virtual HRESULT STDMETHODCALLTYPE setException( 
138         /* [in] */ BSTR description) { return DOMObject::setException(description); }
139
140     // IDOMHTMLOptionsCollection
141     virtual HRESULT STDMETHODCALLTYPE length( 
142         /* [retval][out] */ unsigned int *result);
143     
144     virtual HRESULT STDMETHODCALLTYPE setLength( 
145         /* [in] */ unsigned int length);
146     
147     virtual HRESULT STDMETHODCALLTYPE item( 
148         /* [in] */ unsigned int index,
149         /* [retval][out] */ IDOMNode **result);
150     
151     virtual HRESULT STDMETHODCALLTYPE namedItem( 
152         /* [in] */ BSTR name,
153         /* [retval][out] */ IDOMNode *result);
154 };
155
156 class DOMHTMLDocument : public DOMDocument, public IDOMHTMLDocument
157 {
158 protected:
159     DOMHTMLDocument();
160 public:
161     DOMHTMLDocument(WebCore::Document* d) : DOMDocument(d) {}
162
163     // IUnknown
164     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
165     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMDocument::AddRef(); }
166     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMDocument::Release(); }
167
168     // IWebScriptObject
169     virtual HRESULT STDMETHODCALLTYPE throwException( 
170         /* [in] */ BSTR exceptionMessage,
171         /* [retval][out] */ BOOL *result) { return DOMDocument::throwException(exceptionMessage, result); }
172     
173     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
174         /* [in] */ BSTR name,
175         /* [size_is][in] */ const VARIANT args[  ],
176         /* [in] */ int cArgs,
177         /* [retval][out] */ VARIANT *result) { return DOMDocument::callWebScriptMethod(name, args, cArgs, result); }
178     
179     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
180         /* [in] */ BSTR script,
181         /* [retval][out] */ VARIANT *result) { return DOMDocument::evaluateWebScript(script, result); }
182     
183     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
184         /* [in] */ BSTR name) { return DOMDocument::removeWebScriptKey(name); }
185     
186     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
187         /* [retval][out] */ BSTR* stringRepresentation) { return DOMDocument::stringRepresentation(stringRepresentation); }
188     
189     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
190         /* [in] */ unsigned int index,
191         /* [retval][out] */ VARIANT *result) { return DOMDocument::webScriptValueAtIndex(index, result); }
192     
193     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
194         /* [in] */ unsigned int index,
195         /* [in] */ VARIANT val) { return DOMDocument::setWebScriptValueAtIndex(index, val); }
196     
197     virtual HRESULT STDMETHODCALLTYPE setException( 
198         /* [in] */ BSTR description) { return DOMDocument::setException(description); }
199
200     // IDOMNode
201     virtual HRESULT STDMETHODCALLTYPE nodeName( 
202         /* [retval][out] */ BSTR *result) { return DOMDocument::nodeName(result); }
203     
204     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
205         /* [retval][out] */ BSTR *result) { return DOMDocument::nodeValue(result); }
206     
207     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
208         /* [in] */ BSTR value) { return setNodeValue(value); }
209     
210     virtual HRESULT STDMETHODCALLTYPE nodeType( 
211         /* [retval][out] */ unsigned short *result) { return DOMDocument::nodeType(result); }
212     
213     virtual HRESULT STDMETHODCALLTYPE parentNode( 
214         /* [retval][out] */ IDOMNode **result) { return DOMDocument::parentNode(result); }
215     
216     virtual HRESULT STDMETHODCALLTYPE childNodes( 
217         /* [retval][out] */ IDOMNodeList **result) { return DOMDocument::childNodes(result); }
218     
219     virtual HRESULT STDMETHODCALLTYPE firstChild( 
220         /* [retval][out] */ IDOMNode **result) { return DOMDocument::firstChild(result); }
221     
222     virtual HRESULT STDMETHODCALLTYPE lastChild( 
223         /* [retval][out] */ IDOMNode **result) { return DOMDocument::lastChild(result); }
224     
225     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
226         /* [retval][out] */ IDOMNode **result) { return DOMDocument::previousSibling(result); }
227     
228     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
229         /* [retval][out] */ IDOMNode **result) { return DOMDocument::nextSibling(result); }
230     
231     virtual HRESULT STDMETHODCALLTYPE attributes( 
232         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMDocument::attributes(result); }
233     
234     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
235         /* [retval][out] */ IDOMDocument **result) { return DOMDocument::ownerDocument(result); }
236     
237     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
238         /* [in] */ IDOMNode *newChild,
239         /* [in] */ IDOMNode *refChild,
240         /* [retval][out] */ IDOMNode **result) { return DOMDocument::insertBefore(newChild, refChild, result); }
241     
242     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
243         /* [in] */ IDOMNode *newChild,
244         /* [in] */ IDOMNode *oldChild,
245         /* [retval][out] */ IDOMNode **result) { return DOMDocument::replaceChild(newChild, oldChild, result); }
246     
247     virtual HRESULT STDMETHODCALLTYPE removeChild( 
248         /* [in] */ IDOMNode *oldChild,
249         /* [retval][out] */ IDOMNode **result) { return DOMDocument::removeChild(oldChild, result); }
250     
251     virtual HRESULT STDMETHODCALLTYPE appendChild( 
252         /* [in] */ IDOMNode *oldChild,
253         /* [retval][out] */ IDOMNode **result) { return DOMDocument::appendChild(oldChild, result); }
254     
255     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
256         /* [retval][out] */ BOOL *result) { return DOMDocument::hasChildNodes(result); }
257     
258     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
259         /* [in] */ BOOL deep,
260         /* [retval][out] */ IDOMNode **result) { return DOMDocument::cloneNode(deep, result); }
261     
262     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMDocument::normalize(); }
263     
264     virtual HRESULT STDMETHODCALLTYPE isSupported( 
265         /* [in] */ BSTR feature,
266         /* [in] */ BSTR version,
267         /* [retval][out] */ BOOL *result) { return DOMDocument::isSupported(feature, version, result); }
268     
269     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
270         /* [retval][out] */ BSTR *result) { return DOMDocument::namespaceURI(result); }
271     
272     virtual HRESULT STDMETHODCALLTYPE prefix( 
273         /* [retval][out] */ BSTR *result) { return DOMDocument::prefix(result); }
274     
275     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
276         /* [in] */ BSTR prefix) { return DOMDocument::setPrefix(prefix); }
277     
278     virtual HRESULT STDMETHODCALLTYPE localName( 
279         /* [retval][out] */ BSTR *result) { return DOMDocument::localName(result); }
280     
281     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
282         /* [retval][out] */ BOOL *result) { return DOMDocument::hasAttributes(result); }
283
284     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
285         /* [in] */ IDOMNode* other,
286         /* [retval][out] */ BOOL* result) { return DOMDocument::isSameNode(other, result); }
287     
288     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
289         /* [in] */ IDOMNode* other,
290         /* [retval][out] */ BOOL* result) { return DOMDocument::isEqualNode(other, result); }
291     
292     virtual HRESULT STDMETHODCALLTYPE textContent( 
293         /* [retval][out] */ BSTR* result) { return DOMDocument::textContent(result); }
294     
295     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
296         /* [in] */ BSTR text) { return DOMDocument::setTextContent(text); }
297     
298     // IDOMDocument
299     virtual HRESULT STDMETHODCALLTYPE doctype( 
300         /* [retval][out] */ IDOMDocumentType **result) { return DOMDocument::doctype(result); }
301     
302     virtual HRESULT STDMETHODCALLTYPE implementation( 
303         /* [retval][out] */ IDOMImplementation **result) { return DOMDocument::implementation(result); }
304     
305     virtual HRESULT STDMETHODCALLTYPE documentElement( 
306         /* [retval][out] */ IDOMElement **result) { return DOMDocument::documentElement(result); }
307     
308     virtual HRESULT STDMETHODCALLTYPE createElement( 
309         /* [in] */ BSTR tagName,
310         /* [retval][out] */ IDOMElement **result) { return DOMDocument::createElement(tagName, result); }
311     
312     virtual HRESULT STDMETHODCALLTYPE createDocumentFragment( 
313         /* [retval][out] */ IDOMDocumentFragment **result) { return DOMDocument::createDocumentFragment(result); }
314     
315     virtual HRESULT STDMETHODCALLTYPE createTextNode( 
316         /* [in] */ BSTR data,
317         /* [retval][out] */ IDOMText **result) { return DOMDocument::createTextNode(data, result); }
318     
319     virtual HRESULT STDMETHODCALLTYPE createComment( 
320         /* [in] */ BSTR data,
321         /* [retval][out] */ IDOMComment **result) { return DOMDocument::createComment(data, result); }
322     
323     virtual HRESULT STDMETHODCALLTYPE createCDATASection( 
324         /* [in] */ BSTR data,
325         /* [retval][out] */ IDOMCDATASection **result) { return DOMDocument::createCDATASection(data, result); }
326     
327     virtual HRESULT STDMETHODCALLTYPE createProcessingInstruction( 
328         /* [in] */ BSTR target,
329         /* [in] */ BSTR data,
330         /* [retval][out] */ IDOMProcessingInstruction **result) { return DOMDocument::createProcessingInstruction(target, data, result); }
331     
332     virtual HRESULT STDMETHODCALLTYPE createAttribute( 
333         /* [in] */ BSTR name,
334         /* [retval][out] */ IDOMAttr **result) { return DOMDocument::createAttribute(name, result); }
335     
336     virtual HRESULT STDMETHODCALLTYPE createEntityReference( 
337         /* [in] */ BSTR name,
338         /* [retval][out] */ IDOMEntityReference **result) { return DOMDocument::createEntityReference(name, result); }
339     
340     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
341         /* [in] */ BSTR tagName,
342         /* [retval][out] */ IDOMNodeList **result) { return DOMDocument::getElementsByTagName(tagName, result); }
343     
344     virtual HRESULT STDMETHODCALLTYPE importNode( 
345         /* [in] */ IDOMNode *importedNode,
346         /* [in] */ BOOL deep,
347         /* [retval][out] */ IDOMNode **result) { return DOMDocument::importNode(importedNode, deep, result); }
348     
349     virtual HRESULT STDMETHODCALLTYPE createElementNS( 
350         /* [in] */ BSTR namespaceURI,
351         /* [in] */ BSTR qualifiedName,
352         /* [retval][out] */ IDOMElement **result) { return DOMDocument::createElementNS(namespaceURI, qualifiedName, result); }
353     
354     virtual HRESULT STDMETHODCALLTYPE createAttributeNS( 
355         /* [in] */ BSTR namespaceURI,
356         /* [in] */ BSTR qualifiedName,
357         /* [retval][out] */ IDOMAttr **result) { return DOMDocument::createAttributeNS(namespaceURI, qualifiedName, result); }
358     
359     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
360         /* [in] */ BSTR namespaceURI,
361         /* [in] */ BSTR localName,
362         /* [retval][out] */ IDOMNodeList **result) { return DOMDocument::getElementsByTagNameNS(namespaceURI, localName, result); }
363     
364     virtual HRESULT STDMETHODCALLTYPE getElementById( 
365         /* [in] */ BSTR elementId,
366         /* [retval][out] */ IDOMElement **result) { return DOMDocument::getElementById(elementId, result); }
367
368     // IDOMHTMLDocument
369     virtual HRESULT STDMETHODCALLTYPE title( 
370         /* [retval][out] */ BSTR *result);
371     
372     virtual HRESULT STDMETHODCALLTYPE setTitle( 
373         /* [in] */ BSTR title);
374     
375     virtual HRESULT STDMETHODCALLTYPE referrer( 
376         /* [retval][out] */ BSTR *result);
377     
378     virtual HRESULT STDMETHODCALLTYPE domain( 
379         /* [retval][out] */ BSTR *result);
380     
381     virtual HRESULT STDMETHODCALLTYPE URL( 
382         /* [retval][out] */ BSTR *result);
383     
384     virtual HRESULT STDMETHODCALLTYPE body( 
385         /* [retval][out] */ IDOMHTMLElement **bodyElement);
386     
387     virtual HRESULT STDMETHODCALLTYPE setBody( 
388         /* [in] */ IDOMHTMLElement *body);
389     
390     virtual HRESULT STDMETHODCALLTYPE images( 
391         /* [retval][out] */ IDOMHTMLCollection **collection);
392     
393     virtual HRESULT STDMETHODCALLTYPE applets( 
394         /* [retval][out] */ IDOMHTMLCollection **collection);
395     
396     virtual HRESULT STDMETHODCALLTYPE links( 
397         /* [retval][out] */ IDOMHTMLCollection **collection);
398     
399     virtual HRESULT STDMETHODCALLTYPE forms( 
400         /* [retval][out] */ IDOMHTMLCollection **collection);
401     
402     virtual HRESULT STDMETHODCALLTYPE anchors( 
403         /* [retval][out] */ IDOMHTMLCollection **collection);
404     
405     virtual HRESULT STDMETHODCALLTYPE cookie( 
406         /* [retval][out] */ BSTR *result);
407     
408     virtual HRESULT STDMETHODCALLTYPE setCookie( 
409         /* [in] */ BSTR cookie);
410     
411     virtual HRESULT STDMETHODCALLTYPE open( void);
412     
413     virtual HRESULT STDMETHODCALLTYPE close( void);
414     
415     virtual HRESULT STDMETHODCALLTYPE write( 
416         /* [in] */ BSTR text);
417     
418     virtual HRESULT STDMETHODCALLTYPE writeln( 
419         /* [in] */ BSTR text);
420     
421     virtual HRESULT STDMETHODCALLTYPE getElementById_( 
422         /* [in] */ BSTR elementId,
423         /* [retval][out] */ IDOMElement **element);
424     
425     virtual HRESULT STDMETHODCALLTYPE getElementsByName( 
426         /* [in] */ BSTR elementName,
427         /* [retval][out] */ IDOMNodeList **nodeList);
428 };
429
430 class DOMHTMLElement : public DOMElement, public IDOMHTMLElement
431 {
432 protected:
433     DOMHTMLElement();
434 public:
435     DOMHTMLElement(WebCore::Element* e) : DOMElement(e) {}
436
437     // IUnknown
438     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
439     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMElement::AddRef(); }
440     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMElement::Release(); }
441
442     // IWebScriptObject
443     virtual HRESULT STDMETHODCALLTYPE throwException( 
444         /* [in] */ BSTR exceptionMessage,
445         /* [retval][out] */ BOOL *result) { return DOMElement::throwException(exceptionMessage, result); }
446     
447     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
448         /* [in] */ BSTR name,
449         /* [size_is][in] */ const VARIANT args[  ],
450         /* [in] */ int cArgs,
451         /* [retval][out] */ VARIANT *result) { return DOMElement::callWebScriptMethod(name, args, cArgs, result); }
452     
453     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
454         /* [in] */ BSTR script,
455         /* [retval][out] */ VARIANT *result) { return DOMElement::evaluateWebScript(script, result); }
456     
457     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
458         /* [in] */ BSTR name) { return DOMElement::removeWebScriptKey(name); }
459     
460     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
461         /* [retval][out] */ BSTR* stringRepresentation) { return DOMElement::stringRepresentation(stringRepresentation); }
462     
463     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
464         /* [in] */ unsigned int index,
465         /* [retval][out] */ VARIANT *result) { return DOMElement::webScriptValueAtIndex(index, result); }
466     
467     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
468         /* [in] */ unsigned int index,
469         /* [in] */ VARIANT val) { return DOMElement::setWebScriptValueAtIndex(index, val); }
470     
471     virtual HRESULT STDMETHODCALLTYPE setException( 
472         /* [in] */ BSTR description) { return DOMElement::setException(description); }
473
474     // IDOMNode
475     virtual HRESULT STDMETHODCALLTYPE nodeName( 
476         /* [retval][out] */ BSTR *result) { return DOMElement::nodeName(result); }
477     
478     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
479         /* [retval][out] */ BSTR *result) { return DOMElement::nodeValue(result); }
480     
481     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
482         /* [in] */ BSTR value) { return DOMElement::setNodeValue(value); }
483     
484     virtual HRESULT STDMETHODCALLTYPE nodeType( 
485         /* [retval][out] */ unsigned short *result) { return DOMElement::nodeType(result); }
486     
487     virtual HRESULT STDMETHODCALLTYPE parentNode( 
488         /* [retval][out] */ IDOMNode **result) { return DOMElement::parentNode(result); }
489     
490     virtual HRESULT STDMETHODCALLTYPE childNodes( 
491         /* [retval][out] */ IDOMNodeList **result) { return DOMElement::childNodes(result); }
492     
493     virtual HRESULT STDMETHODCALLTYPE firstChild( 
494         /* [retval][out] */ IDOMNode **result) { return DOMElement::firstChild(result); }
495     
496     virtual HRESULT STDMETHODCALLTYPE lastChild( 
497         /* [retval][out] */ IDOMNode **result) { return DOMElement::lastChild(result); }
498     
499     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
500         /* [retval][out] */ IDOMNode **result) { return DOMElement::previousSibling(result); }
501     
502     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
503         /* [retval][out] */ IDOMNode **result) { return DOMElement::nextSibling(result); }
504     
505     virtual HRESULT STDMETHODCALLTYPE attributes( 
506         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMElement::attributes(result); }
507     
508     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
509         /* [retval][out] */ IDOMDocument **result) { return DOMElement::ownerDocument(result); }
510     
511     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
512         /* [in] */ IDOMNode *newChild,
513         /* [in] */ IDOMNode *refChild,
514         /* [retval][out] */ IDOMNode **result) { return DOMElement::insertBefore(newChild, refChild, result); }
515     
516     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
517         /* [in] */ IDOMNode *newChild,
518         /* [in] */ IDOMNode *oldChild,
519         /* [retval][out] */ IDOMNode **result) { return DOMElement::replaceChild(newChild, oldChild, result); }
520     
521     virtual HRESULT STDMETHODCALLTYPE removeChild( 
522         /* [in] */ IDOMNode *oldChild,
523         /* [retval][out] */ IDOMNode **result) { return DOMElement::removeChild(oldChild, result); }
524     
525     virtual HRESULT STDMETHODCALLTYPE appendChild( 
526         /* [in] */ IDOMNode *oldChild,
527         /* [retval][out] */ IDOMNode **result) { return DOMElement::appendChild(oldChild, result); }
528     
529     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
530         /* [retval][out] */ BOOL *result) { return DOMElement::hasChildNodes(result); }
531     
532     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
533         /* [in] */ BOOL deep,
534         /* [retval][out] */ IDOMNode **result) { return DOMElement::cloneNode(deep, result); }
535     
536     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMElement::normalize(); }
537     
538     virtual HRESULT STDMETHODCALLTYPE isSupported( 
539         /* [in] */ BSTR feature,
540         /* [in] */ BSTR version,
541         /* [retval][out] */ BOOL *result) { return DOMElement::isSupported(feature, version, result); }
542     
543     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
544         /* [retval][out] */ BSTR *result) { return DOMElement::namespaceURI(result); }
545     
546     virtual HRESULT STDMETHODCALLTYPE prefix( 
547         /* [retval][out] */ BSTR *result) { return DOMElement::prefix(result); }
548     
549     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
550         /* [in] */ BSTR prefix) { return DOMElement::setPrefix(prefix); }
551     
552     virtual HRESULT STDMETHODCALLTYPE localName( 
553         /* [retval][out] */ BSTR *result) { return DOMElement::localName(result); }
554     
555     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
556         /* [retval][out] */ BOOL *result) { return DOMElement::hasAttributes(result); }
557
558     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
559         /* [in] */ IDOMNode* other,
560         /* [retval][out] */ BOOL* result) { return DOMElement::isSameNode(other, result); }
561     
562     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
563         /* [in] */ IDOMNode* other,
564         /* [retval][out] */ BOOL* result) { return DOMElement::isEqualNode(other, result); }
565     
566     virtual HRESULT STDMETHODCALLTYPE textContent( 
567         /* [retval][out] */ BSTR* result) { return DOMElement::textContent(result); }
568     
569     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
570         /* [in] */ BSTR text) { return DOMElement::setTextContent(text); }
571     
572     // IDOMElement
573     virtual HRESULT STDMETHODCALLTYPE tagName( 
574         /* [retval][out] */ BSTR *result) { return DOMElement::tagName(result); }
575     
576     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
577         /* [in] */ BSTR name,
578         /* [retval][out] */ BSTR *result) { return DOMElement::getAttribute(name, result); }
579     
580     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
581         /* [in] */ BSTR name,
582         /* [in] */ BSTR value) { return DOMElement::setAttribute(name, value); }
583     
584     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
585         /* [in] */ BSTR name) { return DOMElement::removeAttribute(name); }
586     
587     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
588         /* [in] */ BSTR name,
589         /* [retval][out] */ IDOMAttr **result) { return DOMElement::getAttributeNode(name, result); }
590     
591     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
592         /* [in] */ IDOMAttr *newAttr,
593         /* [retval][out] */ IDOMAttr **result) { return DOMElement::setAttributeNode(newAttr, result); }
594     
595     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
596         /* [in] */ IDOMAttr *oldAttr,
597         /* [retval][out] */ IDOMAttr **result) { return DOMElement::removeAttributeNode(oldAttr, result); }
598     
599     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
600         /* [in] */ BSTR name,
601         /* [retval][out] */ IDOMNodeList **result) { return DOMElement::getElementsByTagName(name, result); }
602     
603     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
604         /* [in] */ BSTR namespaceURI,
605         /* [in] */ BSTR localName,
606         /* [retval][out] */ BSTR *result) { return DOMElement::getAttributeNS(namespaceURI, localName, result); }
607     
608     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
609         /* [in] */ BSTR namespaceURI,
610         /* [in] */ BSTR qualifiedName,
611         /* [in] */ BSTR value) { return DOMElement::setAttributeNS(namespaceURI, qualifiedName, value); }
612     
613     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
614         /* [in] */ BSTR namespaceURI,
615         /* [in] */ BSTR localName) { return DOMElement::removeAttributeNS(namespaceURI, localName); }
616     
617     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
618         /* [in] */ BSTR namespaceURI,
619         /* [in] */ BSTR localName,
620         /* [retval][out] */ IDOMAttr **result) { return DOMElement::getAttributeNodeNS(namespaceURI, localName, result); }
621     
622     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
623         /* [in] */ IDOMAttr *newAttr,
624         /* [retval][out] */ IDOMAttr **result) { return DOMElement::setAttributeNodeNS(newAttr, result); }
625     
626     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
627         /* [in] */ BSTR namespaceURI,
628         /* [in] */ BSTR localName,
629         /* [retval][out] */ IDOMNodeList **result) { return DOMElement::getElementsByTagNameNS(namespaceURI, localName, result); }
630     
631     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
632         /* [in] */ BSTR name,
633         /* [retval][out] */ BOOL *result) { return DOMElement::hasAttribute(name, result); }
634     
635     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
636         /* [in] */ BSTR namespaceURI,
637         /* [in] */ BSTR localName,
638         /* [retval][out] */ BOOL *result) { return DOMElement::hasAttributeNS(namespaceURI, localName, result); }
639
640     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMElement::focus(); }
641     
642     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMElement::blur(); }
643
644     // IDOMHTMLElement
645     virtual HRESULT STDMETHODCALLTYPE idName( 
646         /* [retval][out] */ BSTR *result);
647     
648     virtual HRESULT STDMETHODCALLTYPE setIdName( 
649         /* [in] */ BSTR idName);
650     
651     virtual HRESULT STDMETHODCALLTYPE title( 
652         /* [retval][out] */ BSTR *result);
653     
654     virtual HRESULT STDMETHODCALLTYPE setTitle( 
655         /* [in] */ BSTR title);
656     
657     virtual HRESULT STDMETHODCALLTYPE lang( 
658         /* [retval][out] */ BSTR *result);
659     
660     virtual HRESULT STDMETHODCALLTYPE setLang( 
661         /* [in] */ BSTR lang);
662     
663     virtual HRESULT STDMETHODCALLTYPE dir( 
664         /* [retval][out] */ BSTR *result);
665     
666     virtual HRESULT STDMETHODCALLTYPE setDir( 
667         /* [in] */ BSTR dir);
668     
669     virtual HRESULT STDMETHODCALLTYPE className( 
670         /* [retval][out] */ BSTR *result);
671     
672     virtual HRESULT STDMETHODCALLTYPE setClassName( 
673         /* [in] */ BSTR className);
674
675     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
676         /* [retval][out] */ BSTR *result);
677         
678     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
679         /* [in] */ BSTR html);
680         
681     virtual HRESULT STDMETHODCALLTYPE innerText( 
682         /* [retval][out] */ BSTR *result);
683         
684     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
685         /* [in] */ BSTR text);        
686
687 };
688
689 class DOMHTMLFormElement : public DOMHTMLElement, public IDOMHTMLFormElement
690 {
691 protected:
692     DOMHTMLFormElement();
693 public:
694     DOMHTMLFormElement(WebCore::Element* e) : DOMHTMLElement(e) {}
695
696     // IUnknown
697     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
698     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
699     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
700
701     // IWebScriptObject
702     virtual HRESULT STDMETHODCALLTYPE throwException( 
703         /* [in] */ BSTR exceptionMessage,
704         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
705     
706     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
707         /* [in] */ BSTR name,
708         /* [size_is][in] */ const VARIANT args[  ],
709         /* [in] */ int cArgs,
710         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
711     
712     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
713         /* [in] */ BSTR script,
714         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
715     
716     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
717         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
718     
719     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
720         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
721     
722     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
723         /* [in] */ unsigned int index,
724         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
725     
726     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
727         /* [in] */ unsigned int index,
728         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
729     
730     virtual HRESULT STDMETHODCALLTYPE setException( 
731         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
732
733     // IDOMNode
734     virtual HRESULT STDMETHODCALLTYPE nodeName( 
735         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
736     
737     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
738         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
739     
740     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
741         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
742     
743     virtual HRESULT STDMETHODCALLTYPE nodeType( 
744         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
745     
746     virtual HRESULT STDMETHODCALLTYPE parentNode( 
747         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
748     
749     virtual HRESULT STDMETHODCALLTYPE childNodes( 
750         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
751     
752     virtual HRESULT STDMETHODCALLTYPE firstChild( 
753         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
754     
755     virtual HRESULT STDMETHODCALLTYPE lastChild( 
756         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
757     
758     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
759         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
760     
761     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
762         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
763     
764     virtual HRESULT STDMETHODCALLTYPE attributes( 
765         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
766     
767     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
768         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
769     
770     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
771         /* [in] */ IDOMNode *newChild,
772         /* [in] */ IDOMNode *refChild,
773         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
774     
775     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
776         /* [in] */ IDOMNode *newChild,
777         /* [in] */ IDOMNode *oldChild,
778         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
779     
780     virtual HRESULT STDMETHODCALLTYPE removeChild( 
781         /* [in] */ IDOMNode *oldChild,
782         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
783     
784     virtual HRESULT STDMETHODCALLTYPE appendChild( 
785         /* [in] */ IDOMNode *oldChild,
786         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
787     
788     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
789         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
790     
791     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
792         /* [in] */ BOOL deep,
793         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
794     
795     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
796     
797     virtual HRESULT STDMETHODCALLTYPE isSupported( 
798         /* [in] */ BSTR feature,
799         /* [in] */ BSTR version,
800         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
801     
802     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
803         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
804     
805     virtual HRESULT STDMETHODCALLTYPE prefix( 
806         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
807     
808     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
809         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
810     
811     virtual HRESULT STDMETHODCALLTYPE localName( 
812         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
813     
814     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
815         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
816
817     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
818         /* [in] */ IDOMNode* other,
819         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
820     
821     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
822         /* [in] */ IDOMNode* other,
823         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
824     
825     virtual HRESULT STDMETHODCALLTYPE textContent( 
826         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
827     
828     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
829         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
830     
831     // IDOMElement
832     virtual HRESULT STDMETHODCALLTYPE tagName( 
833         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
834     
835     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
836         /* [in] */ BSTR name,
837         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
838     
839     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
840         /* [in] */ BSTR name,
841         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
842     
843     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
844         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
845     
846     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
847         /* [in] */ BSTR name,
848         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
849     
850     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
851         /* [in] */ IDOMAttr *newAttr,
852         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
853     
854     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
855         /* [in] */ IDOMAttr *oldAttr,
856         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
857     
858     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
859         /* [in] */ BSTR name,
860         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
861     
862     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
863         /* [in] */ BSTR namespaceURI,
864         /* [in] */ BSTR localName,
865         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
866     
867     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
868         /* [in] */ BSTR namespaceURI,
869         /* [in] */ BSTR qualifiedName,
870         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
871     
872     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
873         /* [in] */ BSTR namespaceURI,
874         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
875     
876     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
877         /* [in] */ BSTR namespaceURI,
878         /* [in] */ BSTR localName,
879         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
880     
881     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
882         /* [in] */ IDOMAttr *newAttr,
883         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
884     
885     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
886         /* [in] */ BSTR namespaceURI,
887         /* [in] */ BSTR localName,
888         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
889     
890     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
891         /* [in] */ BSTR name,
892         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
893     
894     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
895         /* [in] */ BSTR namespaceURI,
896         /* [in] */ BSTR localName,
897         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
898
899     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
900     
901     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
902
903     // IDOMHTMLElement
904     virtual HRESULT STDMETHODCALLTYPE idName( 
905         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
906     
907     virtual HRESULT STDMETHODCALLTYPE setIdName( 
908         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
909     
910     virtual HRESULT STDMETHODCALLTYPE title( 
911         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
912     
913     virtual HRESULT STDMETHODCALLTYPE setTitle( 
914         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
915     
916     virtual HRESULT STDMETHODCALLTYPE lang( 
917         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
918     
919     virtual HRESULT STDMETHODCALLTYPE setLang( 
920         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
921     
922     virtual HRESULT STDMETHODCALLTYPE dir( 
923         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
924     
925     virtual HRESULT STDMETHODCALLTYPE setDir( 
926         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
927     
928     virtual HRESULT STDMETHODCALLTYPE className( 
929         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
930     
931     virtual HRESULT STDMETHODCALLTYPE setClassName( 
932         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
933
934     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
935         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
936         
937     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
938         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
939         
940     virtual HRESULT STDMETHODCALLTYPE innerText( 
941         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
942         
943     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
944         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
945
946     // IDOMHTMLFormElement
947     virtual HRESULT STDMETHODCALLTYPE elements( 
948         /* [retval][out] */ IDOMHTMLCollection **result);
949     
950     virtual HRESULT STDMETHODCALLTYPE length( 
951         /* [retval][out] */ int *result);
952     
953     virtual HRESULT STDMETHODCALLTYPE name( 
954         /* [retval][out] */ BSTR *result);
955     
956     virtual HRESULT STDMETHODCALLTYPE setName( 
957         /* [in] */ BSTR name);
958     
959     virtual HRESULT STDMETHODCALLTYPE acceptCharset( 
960         /* [retval][out] */ BSTR *result);
961     
962     virtual HRESULT STDMETHODCALLTYPE setAcceptCharset( 
963         /* [in] */ BSTR acceptCharset);
964     
965     virtual HRESULT STDMETHODCALLTYPE action( 
966         /* [retval][out] */ BSTR *result);
967     
968     virtual HRESULT STDMETHODCALLTYPE setAction( 
969         /* [in] */ BSTR action);
970     
971     virtual HRESULT STDMETHODCALLTYPE encType( 
972         /* [retval][out] */ BSTR *result);
973     
974     virtual HRESULT STDMETHODCALLTYPE setEnctype( 
975         /* [retval][out] */ BSTR *encType);
976     
977     virtual HRESULT STDMETHODCALLTYPE method( 
978         /* [retval][out] */ BSTR *method);
979     
980     virtual HRESULT STDMETHODCALLTYPE setMethod( 
981         /* [in] */ BSTR method);
982     
983     virtual HRESULT STDMETHODCALLTYPE target( 
984         /* [retval][out] */ BSTR *result);
985     
986     virtual HRESULT STDMETHODCALLTYPE setTarget( 
987         /* [in] */ BSTR target);
988     
989     virtual HRESULT STDMETHODCALLTYPE submit( void);
990     
991     virtual HRESULT STDMETHODCALLTYPE reset( void);
992 };
993
994 class DOMHTMLSelectElement : public DOMHTMLElement, public IDOMHTMLSelectElement, public IFormsAutoFillTransitionSelect
995 {
996 protected:
997     DOMHTMLSelectElement();
998 public:
999     DOMHTMLSelectElement(WebCore::Element* e) : DOMHTMLElement(e) {}
1000
1001     // IUnknown
1002     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
1003     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
1004     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
1005
1006     // IWebScriptObject
1007     virtual HRESULT STDMETHODCALLTYPE throwException( 
1008         /* [in] */ BSTR exceptionMessage,
1009         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
1010     
1011     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
1012         /* [in] */ BSTR name,
1013         /* [size_is][in] */ const VARIANT args[  ],
1014         /* [in] */ int cArgs,
1015         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
1016     
1017     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
1018         /* [in] */ BSTR script,
1019         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
1020     
1021     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
1022         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
1023     
1024     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
1025         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
1026     
1027     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
1028         /* [in] */ unsigned int index,
1029         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
1030     
1031     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
1032         /* [in] */ unsigned int index,
1033         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
1034     
1035     virtual HRESULT STDMETHODCALLTYPE setException( 
1036         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
1037
1038     // IDOMNode
1039     virtual HRESULT STDMETHODCALLTYPE nodeName( 
1040         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
1041     
1042     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
1043         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
1044     
1045     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
1046         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
1047     
1048     virtual HRESULT STDMETHODCALLTYPE nodeType( 
1049         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
1050     
1051     virtual HRESULT STDMETHODCALLTYPE parentNode( 
1052         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
1053     
1054     virtual HRESULT STDMETHODCALLTYPE childNodes( 
1055         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
1056     
1057     virtual HRESULT STDMETHODCALLTYPE firstChild( 
1058         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
1059     
1060     virtual HRESULT STDMETHODCALLTYPE lastChild( 
1061         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
1062     
1063     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
1064         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
1065     
1066     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
1067         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
1068     
1069     virtual HRESULT STDMETHODCALLTYPE attributes( 
1070         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
1071     
1072     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
1073         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
1074     
1075     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
1076         /* [in] */ IDOMNode *newChild,
1077         /* [in] */ IDOMNode *refChild,
1078         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
1079     
1080     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
1081         /* [in] */ IDOMNode *newChild,
1082         /* [in] */ IDOMNode *oldChild,
1083         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
1084     
1085     virtual HRESULT STDMETHODCALLTYPE removeChild( 
1086         /* [in] */ IDOMNode *oldChild,
1087         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
1088     
1089     virtual HRESULT STDMETHODCALLTYPE appendChild( 
1090         /* [in] */ IDOMNode *oldChild,
1091         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
1092     
1093     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
1094         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
1095     
1096     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
1097         /* [in] */ BOOL deep,
1098         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
1099     
1100     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
1101     
1102     virtual HRESULT STDMETHODCALLTYPE isSupported( 
1103         /* [in] */ BSTR feature,
1104         /* [in] */ BSTR version,
1105         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
1106     
1107     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
1108         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
1109     
1110     virtual HRESULT STDMETHODCALLTYPE prefix( 
1111         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
1112     
1113     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
1114         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
1115     
1116     virtual HRESULT STDMETHODCALLTYPE localName( 
1117         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
1118     
1119     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
1120         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
1121
1122     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
1123         /* [in] */ IDOMNode* other,
1124         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
1125     
1126     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
1127         /* [in] */ IDOMNode* other,
1128         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
1129     
1130     virtual HRESULT STDMETHODCALLTYPE textContent( 
1131         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
1132     
1133     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
1134         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
1135     
1136     // IDOMElement
1137     virtual HRESULT STDMETHODCALLTYPE tagName( 
1138         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
1139     
1140     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
1141         /* [in] */ BSTR name,
1142         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
1143     
1144     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
1145         /* [in] */ BSTR name,
1146         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
1147     
1148     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
1149         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
1150     
1151     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
1152         /* [in] */ BSTR name,
1153         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
1154     
1155     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
1156         /* [in] */ IDOMAttr *newAttr,
1157         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
1158     
1159     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
1160         /* [in] */ IDOMAttr *oldAttr,
1161         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
1162     
1163     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
1164         /* [in] */ BSTR name,
1165         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
1166     
1167     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
1168         /* [in] */ BSTR namespaceURI,
1169         /* [in] */ BSTR localName,
1170         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
1171     
1172     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
1173         /* [in] */ BSTR namespaceURI,
1174         /* [in] */ BSTR qualifiedName,
1175         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
1176     
1177     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
1178         /* [in] */ BSTR namespaceURI,
1179         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
1180     
1181     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
1182         /* [in] */ BSTR namespaceURI,
1183         /* [in] */ BSTR localName,
1184         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
1185     
1186     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
1187         /* [in] */ IDOMAttr *newAttr,
1188         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
1189     
1190     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
1191         /* [in] */ BSTR namespaceURI,
1192         /* [in] */ BSTR localName,
1193         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
1194     
1195     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
1196         /* [in] */ BSTR name,
1197         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
1198     
1199     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
1200         /* [in] */ BSTR namespaceURI,
1201         /* [in] */ BSTR localName,
1202         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
1203
1204     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
1205     
1206     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
1207
1208     // IDOMHTMLElement
1209     virtual HRESULT STDMETHODCALLTYPE idName( 
1210         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
1211     
1212     virtual HRESULT STDMETHODCALLTYPE setIdName( 
1213         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
1214     
1215     virtual HRESULT STDMETHODCALLTYPE title( 
1216         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
1217     
1218     virtual HRESULT STDMETHODCALLTYPE setTitle( 
1219         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
1220     
1221     virtual HRESULT STDMETHODCALLTYPE lang( 
1222         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
1223     
1224     virtual HRESULT STDMETHODCALLTYPE setLang( 
1225         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
1226     
1227     virtual HRESULT STDMETHODCALLTYPE dir( 
1228         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
1229     
1230     virtual HRESULT STDMETHODCALLTYPE setDir( 
1231         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
1232     
1233     virtual HRESULT STDMETHODCALLTYPE className( 
1234         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
1235     
1236     virtual HRESULT STDMETHODCALLTYPE setClassName( 
1237         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
1238
1239     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
1240         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
1241         
1242     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
1243         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
1244         
1245     virtual HRESULT STDMETHODCALLTYPE innerText( 
1246         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
1247         
1248     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
1249         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
1250
1251     // IDOMHTMLSelectElement
1252     virtual HRESULT STDMETHODCALLTYPE type( 
1253         /* [retval][out] */ BSTR *result);
1254     
1255     virtual HRESULT STDMETHODCALLTYPE selectedIndex( 
1256         /* [retval][out] */ int *result);
1257     
1258     virtual HRESULT STDMETHODCALLTYPE setSelectedIndx( 
1259         /* [in] */ int selectedIndex);
1260     
1261     virtual HRESULT STDMETHODCALLTYPE value( 
1262         /* [retval][out] */ BSTR *result);
1263     
1264     virtual HRESULT STDMETHODCALLTYPE setValue( 
1265         /* [in] */ BSTR value);
1266     
1267     virtual HRESULT STDMETHODCALLTYPE length( 
1268         /* [retval][out] */ int *result);
1269     
1270     virtual HRESULT STDMETHODCALLTYPE form( 
1271         /* [retval][out] */ IDOMHTMLFormElement **result);
1272     
1273     virtual HRESULT STDMETHODCALLTYPE options( 
1274         /* [retval][out] */ IDOMHTMLOptionsCollection **result);
1275     
1276     virtual HRESULT STDMETHODCALLTYPE disabled( 
1277         /* [retval][out] */ BOOL *result);
1278     
1279     virtual HRESULT STDMETHODCALLTYPE setDisabled( 
1280         /* [in] */ BOOL disabled);
1281     
1282     virtual HRESULT STDMETHODCALLTYPE multiple( 
1283         /* [retval][out] */ BOOL *result);
1284     
1285     virtual HRESULT STDMETHODCALLTYPE setMultiple( 
1286         /* [in] */ BOOL multiple);
1287     
1288     virtual HRESULT STDMETHODCALLTYPE name( 
1289         /* [retval][out] */ BSTR *result);
1290     
1291     virtual HRESULT STDMETHODCALLTYPE setName( 
1292         /* [in] */ BSTR name);
1293     
1294     virtual HRESULT STDMETHODCALLTYPE size( 
1295         /* [retval][out] */ int *size);
1296     
1297     virtual HRESULT STDMETHODCALLTYPE setSize( 
1298         /* [in] */ int size);
1299     
1300     virtual HRESULT STDMETHODCALLTYPE tabIndex( 
1301         /* [retval][out] */ int *result);
1302     
1303     virtual HRESULT STDMETHODCALLTYPE setTabIndex( 
1304         /* [in] */ int tabIndex);
1305     
1306     virtual HRESULT STDMETHODCALLTYPE add( 
1307         /* [in] */ IDOMHTMLElement *element,
1308         /* [in] */ IDOMHTMLElement *before);
1309     
1310     virtual HRESULT STDMETHODCALLTYPE remove( 
1311         /* [in] */ int index);
1312     
1313     // IFormsAutoFillTransitionSelect
1314     virtual HRESULT STDMETHODCALLTYPE activateItemAtIndex( 
1315         /* [in] */ int index);
1316 };
1317
1318 class DOMHTMLOptionElement : public DOMHTMLElement, public IDOMHTMLOptionElement
1319 {
1320 protected:
1321     DOMHTMLOptionElement();
1322 public:
1323     DOMHTMLOptionElement(WebCore::Element* e) : DOMHTMLElement(e) {}
1324
1325     // IUnknown
1326     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
1327     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
1328     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
1329
1330     // IWebScriptObject
1331     virtual HRESULT STDMETHODCALLTYPE throwException( 
1332         /* [in] */ BSTR exceptionMessage,
1333         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
1334     
1335     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
1336         /* [in] */ BSTR name,
1337         /* [size_is][in] */ const VARIANT args[  ],
1338         /* [in] */ int cArgs,
1339         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
1340     
1341     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
1342         /* [in] */ BSTR script,
1343         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
1344     
1345     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
1346         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
1347     
1348     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
1349         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
1350     
1351     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
1352         /* [in] */ unsigned int index,
1353         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
1354     
1355     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
1356         /* [in] */ unsigned int index,
1357         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
1358     
1359     virtual HRESULT STDMETHODCALLTYPE setException( 
1360         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
1361
1362     // IDOMNode
1363     virtual HRESULT STDMETHODCALLTYPE nodeName( 
1364         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
1365     
1366     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
1367         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
1368     
1369     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
1370         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
1371     
1372     virtual HRESULT STDMETHODCALLTYPE nodeType( 
1373         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
1374     
1375     virtual HRESULT STDMETHODCALLTYPE parentNode( 
1376         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
1377     
1378     virtual HRESULT STDMETHODCALLTYPE childNodes( 
1379         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
1380     
1381     virtual HRESULT STDMETHODCALLTYPE firstChild( 
1382         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
1383     
1384     virtual HRESULT STDMETHODCALLTYPE lastChild( 
1385         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
1386     
1387     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
1388         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
1389     
1390     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
1391         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
1392     
1393     virtual HRESULT STDMETHODCALLTYPE attributes( 
1394         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
1395     
1396     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
1397         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
1398     
1399     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
1400         /* [in] */ IDOMNode *newChild,
1401         /* [in] */ IDOMNode *refChild,
1402         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
1403     
1404     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
1405         /* [in] */ IDOMNode *newChild,
1406         /* [in] */ IDOMNode *oldChild,
1407         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
1408     
1409     virtual HRESULT STDMETHODCALLTYPE removeChild( 
1410         /* [in] */ IDOMNode *oldChild,
1411         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
1412     
1413     virtual HRESULT STDMETHODCALLTYPE appendChild( 
1414         /* [in] */ IDOMNode *oldChild,
1415         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
1416     
1417     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
1418         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
1419     
1420     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
1421         /* [in] */ BOOL deep,
1422         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
1423     
1424     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
1425     
1426     virtual HRESULT STDMETHODCALLTYPE isSupported( 
1427         /* [in] */ BSTR feature,
1428         /* [in] */ BSTR version,
1429         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
1430     
1431     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
1432         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
1433     
1434     virtual HRESULT STDMETHODCALLTYPE prefix( 
1435         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
1436     
1437     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
1438         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
1439     
1440     virtual HRESULT STDMETHODCALLTYPE localName( 
1441         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
1442     
1443     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
1444         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
1445
1446     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
1447         /* [in] */ IDOMNode* other,
1448         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
1449     
1450     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
1451         /* [in] */ IDOMNode* other,
1452         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
1453     
1454     virtual HRESULT STDMETHODCALLTYPE textContent( 
1455         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
1456     
1457     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
1458         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
1459     
1460     // IDOMElement
1461     virtual HRESULT STDMETHODCALLTYPE tagName( 
1462         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
1463     
1464     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
1465         /* [in] */ BSTR name,
1466         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
1467     
1468     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
1469         /* [in] */ BSTR name,
1470         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
1471     
1472     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
1473         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
1474     
1475     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
1476         /* [in] */ BSTR name,
1477         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
1478     
1479     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
1480         /* [in] */ IDOMAttr *newAttr,
1481         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
1482     
1483     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
1484         /* [in] */ IDOMAttr *oldAttr,
1485         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
1486     
1487     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
1488         /* [in] */ BSTR name,
1489         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
1490     
1491     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
1492         /* [in] */ BSTR namespaceURI,
1493         /* [in] */ BSTR localName,
1494         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
1495     
1496     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
1497         /* [in] */ BSTR namespaceURI,
1498         /* [in] */ BSTR qualifiedName,
1499         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
1500     
1501     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
1502         /* [in] */ BSTR namespaceURI,
1503         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
1504     
1505     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
1506         /* [in] */ BSTR namespaceURI,
1507         /* [in] */ BSTR localName,
1508         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
1509     
1510     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
1511         /* [in] */ IDOMAttr *newAttr,
1512         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
1513     
1514     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
1515         /* [in] */ BSTR namespaceURI,
1516         /* [in] */ BSTR localName,
1517         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
1518     
1519     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
1520         /* [in] */ BSTR name,
1521         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
1522     
1523     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
1524         /* [in] */ BSTR namespaceURI,
1525         /* [in] */ BSTR localName,
1526         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
1527
1528     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
1529     
1530     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
1531
1532     // IDOMHTMLElement
1533     virtual HRESULT STDMETHODCALLTYPE idName( 
1534         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
1535     
1536     virtual HRESULT STDMETHODCALLTYPE setIdName( 
1537         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
1538     
1539     virtual HRESULT STDMETHODCALLTYPE title( 
1540         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
1541     
1542     virtual HRESULT STDMETHODCALLTYPE setTitle( 
1543         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
1544     
1545     virtual HRESULT STDMETHODCALLTYPE lang( 
1546         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
1547     
1548     virtual HRESULT STDMETHODCALLTYPE setLang( 
1549         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
1550     
1551     virtual HRESULT STDMETHODCALLTYPE dir( 
1552         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
1553     
1554     virtual HRESULT STDMETHODCALLTYPE setDir( 
1555         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
1556     
1557     virtual HRESULT STDMETHODCALLTYPE className( 
1558         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
1559     
1560     virtual HRESULT STDMETHODCALLTYPE setClassName( 
1561         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
1562
1563     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
1564         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
1565         
1566     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
1567         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
1568         
1569     virtual HRESULT STDMETHODCALLTYPE innerText( 
1570         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
1571         
1572     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
1573         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
1574
1575     // IDOMHTMLOptionElement
1576     virtual HRESULT STDMETHODCALLTYPE form( 
1577         /* [retval][out] */ IDOMHTMLFormElement **result);
1578     
1579     virtual HRESULT STDMETHODCALLTYPE defaultSelected( 
1580         /* [retval][out] */ BOOL *result);
1581     
1582     virtual HRESULT STDMETHODCALLTYPE setDefaultSelected( 
1583         /* [in] */ BOOL defaultSelected);
1584     
1585     virtual HRESULT STDMETHODCALLTYPE text( 
1586         /* [retval][out] */ BSTR *result);
1587     
1588     virtual HRESULT STDMETHODCALLTYPE index( 
1589         /* [retval][out] */ int *result);
1590     
1591     virtual HRESULT STDMETHODCALLTYPE disabled( 
1592         /* [retval][out] */ BOOL *result);
1593     
1594     virtual HRESULT STDMETHODCALLTYPE setDisabled( 
1595         /* [in] */ BOOL disabled);
1596     
1597     virtual HRESULT STDMETHODCALLTYPE label( 
1598         /* [retval][out] */ BSTR *result);
1599     
1600     virtual HRESULT STDMETHODCALLTYPE setLabel( 
1601         /* [in] */ BSTR label);
1602     
1603     virtual HRESULT STDMETHODCALLTYPE selected( 
1604         /* [retval][out] */ BOOL *result);
1605     
1606     virtual HRESULT STDMETHODCALLTYPE setSelected( 
1607         /* [in] */ BOOL selected);
1608     
1609     virtual HRESULT STDMETHODCALLTYPE value( 
1610         /* [retval][out] */ BSTR *result);
1611     
1612     virtual HRESULT STDMETHODCALLTYPE setValue( 
1613         /* [in] */ BSTR value);
1614 };
1615
1616 class DOMHTMLInputElement : public DOMHTMLElement, public IDOMHTMLInputElement, public IFormsAutoFillTransition, public IFormPromptAdditions
1617 {
1618 protected:
1619     DOMHTMLInputElement();
1620 public:
1621     DOMHTMLInputElement(WebCore::Element* e) : DOMHTMLElement(e) {}
1622
1623     // IUnknown
1624     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
1625     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
1626     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
1627
1628     // IWebScriptObject
1629     virtual HRESULT STDMETHODCALLTYPE throwException( 
1630         /* [in] */ BSTR exceptionMessage,
1631         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
1632     
1633     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
1634         /* [in] */ BSTR name,
1635         /* [size_is][in] */ const VARIANT args[  ],
1636         /* [in] */ int cArgs,
1637         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
1638     
1639     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
1640         /* [in] */ BSTR script,
1641         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
1642     
1643     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
1644         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
1645     
1646     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
1647         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
1648     
1649     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
1650         /* [in] */ unsigned int index,
1651         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
1652     
1653     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
1654         /* [in] */ unsigned int index,
1655         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
1656     
1657     virtual HRESULT STDMETHODCALLTYPE setException( 
1658         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
1659
1660     // IDOMNode
1661     virtual HRESULT STDMETHODCALLTYPE nodeName( 
1662         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
1663     
1664     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
1665         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
1666     
1667     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
1668         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
1669     
1670     virtual HRESULT STDMETHODCALLTYPE nodeType( 
1671         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
1672     
1673     virtual HRESULT STDMETHODCALLTYPE parentNode( 
1674         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
1675     
1676     virtual HRESULT STDMETHODCALLTYPE childNodes( 
1677         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
1678     
1679     virtual HRESULT STDMETHODCALLTYPE firstChild( 
1680         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
1681     
1682     virtual HRESULT STDMETHODCALLTYPE lastChild( 
1683         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
1684     
1685     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
1686         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
1687     
1688     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
1689         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
1690     
1691     virtual HRESULT STDMETHODCALLTYPE attributes( 
1692         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
1693     
1694     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
1695         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
1696     
1697     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
1698         /* [in] */ IDOMNode *newChild,
1699         /* [in] */ IDOMNode *refChild,
1700         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
1701     
1702     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
1703         /* [in] */ IDOMNode *newChild,
1704         /* [in] */ IDOMNode *oldChild,
1705         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
1706     
1707     virtual HRESULT STDMETHODCALLTYPE removeChild( 
1708         /* [in] */ IDOMNode *oldChild,
1709         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
1710     
1711     virtual HRESULT STDMETHODCALLTYPE appendChild( 
1712         /* [in] */ IDOMNode *oldChild,
1713         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
1714     
1715     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
1716         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
1717     
1718     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
1719         /* [in] */ BOOL deep,
1720         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
1721     
1722     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
1723     
1724     virtual HRESULT STDMETHODCALLTYPE isSupported( 
1725         /* [in] */ BSTR feature,
1726         /* [in] */ BSTR version,
1727         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
1728     
1729     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
1730         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
1731     
1732     virtual HRESULT STDMETHODCALLTYPE prefix( 
1733         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
1734     
1735     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
1736         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
1737     
1738     virtual HRESULT STDMETHODCALLTYPE localName( 
1739         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
1740     
1741     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
1742         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
1743
1744     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
1745         /* [in] */ IDOMNode* other,
1746         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
1747     
1748     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
1749         /* [in] */ IDOMNode* other,
1750         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
1751     
1752     virtual HRESULT STDMETHODCALLTYPE textContent( 
1753         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
1754     
1755     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
1756         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
1757     
1758     // IDOMElement
1759     virtual HRESULT STDMETHODCALLTYPE tagName( 
1760         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
1761     
1762     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
1763         /* [in] */ BSTR name,
1764         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
1765     
1766     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
1767         /* [in] */ BSTR name,
1768         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
1769     
1770     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
1771         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
1772     
1773     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
1774         /* [in] */ BSTR name,
1775         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
1776     
1777     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
1778         /* [in] */ IDOMAttr *newAttr,
1779         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
1780     
1781     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
1782         /* [in] */ IDOMAttr *oldAttr,
1783         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
1784     
1785     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
1786         /* [in] */ BSTR name,
1787         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
1788     
1789     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
1790         /* [in] */ BSTR namespaceURI,
1791         /* [in] */ BSTR localName,
1792         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
1793     
1794     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
1795         /* [in] */ BSTR namespaceURI,
1796         /* [in] */ BSTR qualifiedName,
1797         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
1798     
1799     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
1800         /* [in] */ BSTR namespaceURI,
1801         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
1802     
1803     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
1804         /* [in] */ BSTR namespaceURI,
1805         /* [in] */ BSTR localName,
1806         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
1807     
1808     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
1809         /* [in] */ IDOMAttr *newAttr,
1810         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
1811     
1812     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
1813         /* [in] */ BSTR namespaceURI,
1814         /* [in] */ BSTR localName,
1815         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
1816     
1817     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
1818         /* [in] */ BSTR name,
1819         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
1820     
1821     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
1822         /* [in] */ BSTR namespaceURI,
1823         /* [in] */ BSTR localName,
1824         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
1825
1826     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
1827     
1828     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
1829
1830     // IDOMHTMLElement
1831     virtual HRESULT STDMETHODCALLTYPE idName( 
1832         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
1833     
1834     virtual HRESULT STDMETHODCALLTYPE setIdName( 
1835         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
1836     
1837     virtual HRESULT STDMETHODCALLTYPE title( 
1838         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
1839     
1840     virtual HRESULT STDMETHODCALLTYPE setTitle( 
1841         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
1842     
1843     virtual HRESULT STDMETHODCALLTYPE lang( 
1844         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
1845     
1846     virtual HRESULT STDMETHODCALLTYPE setLang( 
1847         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
1848     
1849     virtual HRESULT STDMETHODCALLTYPE dir( 
1850         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
1851     
1852     virtual HRESULT STDMETHODCALLTYPE setDir( 
1853         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
1854     
1855     virtual HRESULT STDMETHODCALLTYPE className( 
1856         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
1857     
1858     virtual HRESULT STDMETHODCALLTYPE setClassName( 
1859         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
1860
1861     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
1862         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
1863         
1864     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
1865         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
1866         
1867     virtual HRESULT STDMETHODCALLTYPE innerText( 
1868         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
1869         
1870     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
1871         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
1872
1873     // IDOMHTMLInputElement
1874     virtual HRESULT STDMETHODCALLTYPE defaultValue( 
1875         /* [retval][out] */ BSTR *result);
1876     
1877     virtual HRESULT STDMETHODCALLTYPE setDefaultValue( 
1878         /* [in] */ BSTR val);
1879     
1880     virtual HRESULT STDMETHODCALLTYPE defaultChecked( 
1881         /* [retval][out] */ BOOL *result);
1882     
1883     virtual HRESULT STDMETHODCALLTYPE setDefaultChecked( 
1884         /* [in] */ BSTR checked);
1885     
1886     virtual HRESULT STDMETHODCALLTYPE form( 
1887         /* [retval][out] */ IDOMHTMLElement **result);
1888     
1889     virtual HRESULT STDMETHODCALLTYPE accept( 
1890         /* [retval][out] */ BSTR *result);
1891     
1892     virtual HRESULT STDMETHODCALLTYPE setAccept( 
1893         /* [in] */ BSTR accept);
1894     
1895     virtual HRESULT STDMETHODCALLTYPE accessKey( 
1896         /* [retval][out] */ BSTR *result);
1897     
1898     virtual HRESULT STDMETHODCALLTYPE setAccessKey( 
1899         /* [in] */ BSTR key);
1900     
1901     virtual HRESULT STDMETHODCALLTYPE align( 
1902         /* [retval][out] */ BSTR *result);
1903     
1904     virtual HRESULT STDMETHODCALLTYPE setAlign( 
1905         /* [in] */ BSTR align);
1906     
1907     virtual HRESULT STDMETHODCALLTYPE alt( 
1908         /* [retval][out] */ BSTR *result);
1909     
1910     virtual HRESULT STDMETHODCALLTYPE setAlt( 
1911         /* [in] */ BSTR alt);
1912     
1913     virtual HRESULT STDMETHODCALLTYPE checked( 
1914         /* [retval][out] */ BOOL *result);
1915     
1916     virtual HRESULT STDMETHODCALLTYPE setChecked( 
1917         /* [in] */ BOOL checked);
1918     
1919     virtual HRESULT STDMETHODCALLTYPE disabled( 
1920         /* [retval][out] */ BOOL *result);
1921     
1922     virtual HRESULT STDMETHODCALLTYPE setDisabled( 
1923         /* [in] */ BOOL disabled);
1924     
1925     virtual HRESULT STDMETHODCALLTYPE maxLength( 
1926         /* [retval][out] */ int *result);
1927     
1928     virtual HRESULT STDMETHODCALLTYPE setMaxLength( 
1929         /* [in] */ int maxLength);
1930     
1931     virtual HRESULT STDMETHODCALLTYPE name( 
1932         /* [retval][out] */ BSTR *name);
1933     
1934     virtual HRESULT STDMETHODCALLTYPE setName( 
1935         /* [in] */ BSTR name);
1936     
1937     virtual HRESULT STDMETHODCALLTYPE readOnly( 
1938         /* [retval][out] */ BOOL *result);
1939     
1940     virtual HRESULT STDMETHODCALLTYPE setReadOnly( 
1941         /* [in] */ BOOL readOnly);
1942     
1943     virtual HRESULT STDMETHODCALLTYPE size( 
1944         /* [retval][out] */ unsigned int *result);
1945     
1946     virtual HRESULT STDMETHODCALLTYPE setSize( 
1947         /* [in] */ unsigned int size);
1948     
1949     virtual HRESULT STDMETHODCALLTYPE src( 
1950         /* [retval][out] */ BSTR *result);
1951     
1952     virtual HRESULT STDMETHODCALLTYPE setSrc( 
1953         /* [in] */ BSTR src);
1954     
1955     virtual HRESULT STDMETHODCALLTYPE tabIndex( 
1956         /* [retval][out] */ int *result);
1957     
1958     virtual HRESULT STDMETHODCALLTYPE setTabIndex( 
1959         /* [in] */ int tabIndex);
1960     
1961     virtual HRESULT STDMETHODCALLTYPE type( 
1962         /* [retval][out] */ BSTR *result);
1963     
1964     virtual HRESULT STDMETHODCALLTYPE setType( 
1965         /* [in] */ BSTR type);
1966     
1967     virtual HRESULT STDMETHODCALLTYPE useMap( 
1968         /* [retval][out] */ BSTR *result);
1969     
1970     virtual HRESULT STDMETHODCALLTYPE setUseMap( 
1971         /* [in] */ BSTR useMap);
1972     
1973     virtual HRESULT STDMETHODCALLTYPE value( 
1974         /* [retval][out] */ BSTR *result);
1975     
1976     virtual HRESULT STDMETHODCALLTYPE setValue( 
1977         /* [in] */ BSTR value);
1978         
1979     virtual HRESULT STDMETHODCALLTYPE select( void);
1980     
1981     virtual HRESULT STDMETHODCALLTYPE click( void);
1982
1983     virtual HRESULT STDMETHODCALLTYPE setSelectionStart( 
1984         /* [in] */ long start);
1985     
1986     virtual HRESULT STDMETHODCALLTYPE selectionStart( 
1987         /* [retval][out] */ long *start);
1988     
1989     virtual HRESULT STDMETHODCALLTYPE setSelectionEnd( 
1990         /* [in] */ long end);
1991     
1992     virtual HRESULT STDMETHODCALLTYPE selectionEnd( 
1993         /* [retval][out] */ long *end);
1994
1995     // IFormsAutoFillTransition
1996     virtual HRESULT STDMETHODCALLTYPE isTextField(
1997         /* [retval][out] */ BOOL *result);
1998     
1999     virtual HRESULT STDMETHODCALLTYPE rectOnScreen( 
2000         /* [retval][out] */ LPRECT rect);
2001     
2002     virtual HRESULT STDMETHODCALLTYPE replaceCharactersInRange( 
2003         /* [in] */ int startTarget,
2004         /* [in] */ int endTarget,
2005         /* [in] */ BSTR replacementString,
2006         /* [in] */ int index);
2007     
2008     virtual HRESULT STDMETHODCALLTYPE selectedRange( 
2009         /* [out] */ int *start,
2010         /* [out] */ int *end);
2011     
2012     virtual HRESULT STDMETHODCALLTYPE setAutofilled( 
2013         /* [in] */ BOOL filled);
2014
2015     // IFormPromptAdditions
2016     virtual HRESULT STDMETHODCALLTYPE isUserEdited( 
2017         /* [retval][out] */ BOOL *result);
2018 };
2019
2020 class DOMHTMLTextAreaElement : public DOMHTMLElement, public IDOMHTMLTextAreaElement, public IFormPromptAdditions
2021 {
2022 protected:
2023     DOMHTMLTextAreaElement();
2024 public:
2025     DOMHTMLTextAreaElement(WebCore::Element* e) : DOMHTMLElement(e) {}
2026
2027     // IUnknown
2028     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
2029     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
2030     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
2031
2032     // IWebScriptObject
2033     virtual HRESULT STDMETHODCALLTYPE throwException( 
2034         /* [in] */ BSTR exceptionMessage,
2035         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
2036     
2037     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
2038         /* [in] */ BSTR name,
2039         /* [size_is][in] */ const VARIANT args[  ],
2040         /* [in] */ int cArgs,
2041         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
2042     
2043     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
2044         /* [in] */ BSTR script,
2045         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
2046     
2047     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
2048         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
2049     
2050     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
2051         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
2052     
2053     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
2054         /* [in] */ unsigned int index,
2055         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
2056     
2057     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
2058         /* [in] */ unsigned int index,
2059         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
2060     
2061     virtual HRESULT STDMETHODCALLTYPE setException( 
2062         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
2063
2064     // IDOMNode
2065     virtual HRESULT STDMETHODCALLTYPE nodeName( 
2066         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
2067     
2068     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
2069         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
2070     
2071     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
2072         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
2073     
2074     virtual HRESULT STDMETHODCALLTYPE nodeType( 
2075         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
2076     
2077     virtual HRESULT STDMETHODCALLTYPE parentNode( 
2078         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
2079     
2080     virtual HRESULT STDMETHODCALLTYPE childNodes( 
2081         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
2082     
2083     virtual HRESULT STDMETHODCALLTYPE firstChild( 
2084         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
2085     
2086     virtual HRESULT STDMETHODCALLTYPE lastChild( 
2087         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
2088     
2089     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
2090         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
2091     
2092     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
2093         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
2094     
2095     virtual HRESULT STDMETHODCALLTYPE attributes( 
2096         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
2097     
2098     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
2099         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
2100     
2101     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
2102         /* [in] */ IDOMNode *newChild,
2103         /* [in] */ IDOMNode *refChild,
2104         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
2105     
2106     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
2107         /* [in] */ IDOMNode *newChild,
2108         /* [in] */ IDOMNode *oldChild,
2109         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
2110     
2111     virtual HRESULT STDMETHODCALLTYPE removeChild( 
2112         /* [in] */ IDOMNode *oldChild,
2113         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
2114     
2115     virtual HRESULT STDMETHODCALLTYPE appendChild( 
2116         /* [in] */ IDOMNode *oldChild,
2117         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
2118     
2119     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
2120         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
2121     
2122     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
2123         /* [in] */ BOOL deep,
2124         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
2125     
2126     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
2127     
2128     virtual HRESULT STDMETHODCALLTYPE isSupported( 
2129         /* [in] */ BSTR feature,
2130         /* [in] */ BSTR version,
2131         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
2132     
2133     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
2134         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
2135     
2136     virtual HRESULT STDMETHODCALLTYPE prefix( 
2137         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
2138     
2139     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
2140         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
2141     
2142     virtual HRESULT STDMETHODCALLTYPE localName( 
2143         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
2144     
2145     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
2146         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
2147
2148     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
2149         /* [in] */ IDOMNode* other,
2150         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
2151     
2152     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
2153         /* [in] */ IDOMNode* other,
2154         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
2155     
2156     virtual HRESULT STDMETHODCALLTYPE textContent( 
2157         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
2158     
2159     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
2160         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
2161     
2162     // IDOMElement
2163     virtual HRESULT STDMETHODCALLTYPE tagName( 
2164         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
2165     
2166     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
2167         /* [in] */ BSTR name,
2168         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
2169     
2170     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
2171         /* [in] */ BSTR name,
2172         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
2173     
2174     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
2175         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
2176     
2177     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
2178         /* [in] */ BSTR name,
2179         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
2180     
2181     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
2182         /* [in] */ IDOMAttr *newAttr,
2183         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
2184     
2185     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
2186         /* [in] */ IDOMAttr *oldAttr,
2187         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
2188     
2189     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
2190         /* [in] */ BSTR name,
2191         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
2192     
2193     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
2194         /* [in] */ BSTR namespaceURI,
2195         /* [in] */ BSTR localName,
2196         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
2197     
2198     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
2199         /* [in] */ BSTR namespaceURI,
2200         /* [in] */ BSTR qualifiedName,
2201         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
2202     
2203     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
2204         /* [in] */ BSTR namespaceURI,
2205         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
2206     
2207     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
2208         /* [in] */ BSTR namespaceURI,
2209         /* [in] */ BSTR localName,
2210         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
2211     
2212     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
2213         /* [in] */ IDOMAttr *newAttr,
2214         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
2215     
2216     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
2217         /* [in] */ BSTR namespaceURI,
2218         /* [in] */ BSTR localName,
2219         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
2220     
2221     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
2222         /* [in] */ BSTR name,
2223         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
2224     
2225     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
2226         /* [in] */ BSTR namespaceURI,
2227         /* [in] */ BSTR localName,
2228         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
2229
2230     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
2231     
2232     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
2233
2234     // IDOMHTMLElement
2235     virtual HRESULT STDMETHODCALLTYPE idName( 
2236         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
2237     
2238     virtual HRESULT STDMETHODCALLTYPE setIdName( 
2239         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
2240     
2241     virtual HRESULT STDMETHODCALLTYPE title( 
2242         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
2243     
2244     virtual HRESULT STDMETHODCALLTYPE setTitle( 
2245         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
2246     
2247     virtual HRESULT STDMETHODCALLTYPE lang( 
2248         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
2249     
2250     virtual HRESULT STDMETHODCALLTYPE setLang( 
2251         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
2252     
2253     virtual HRESULT STDMETHODCALLTYPE dir( 
2254         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
2255     
2256     virtual HRESULT STDMETHODCALLTYPE setDir( 
2257         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
2258     
2259     virtual HRESULT STDMETHODCALLTYPE className( 
2260         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
2261     
2262     virtual HRESULT STDMETHODCALLTYPE setClassName( 
2263         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
2264
2265     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
2266         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
2267         
2268     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
2269         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
2270         
2271     virtual HRESULT STDMETHODCALLTYPE innerText( 
2272         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
2273         
2274     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
2275         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
2276
2277     // IDOMHTMLTextArea
2278     virtual HRESULT STDMETHODCALLTYPE defaultValue( 
2279         /* [retval][out] */ BSTR *result);
2280     
2281     virtual HRESULT STDMETHODCALLTYPE setDefaultValue( 
2282         /* [in] */ BSTR val);
2283     
2284     virtual HRESULT STDMETHODCALLTYPE form( 
2285         /* [retval][out] */ IDOMHTMLElement **result);
2286     
2287     virtual HRESULT STDMETHODCALLTYPE accessKey( 
2288         /* [retval][out] */ BSTR *result);
2289     
2290     virtual HRESULT STDMETHODCALLTYPE setAccessKey( 
2291         /* [in] */ BSTR key);
2292     
2293     virtual HRESULT STDMETHODCALLTYPE cols( 
2294         /* [retval][out] */ int *result);
2295     
2296     virtual HRESULT STDMETHODCALLTYPE setCols( 
2297         /* [in] */ int cols);
2298     
2299     virtual HRESULT STDMETHODCALLTYPE disabled( 
2300         /* [retval][out] */ BOOL *result);
2301     
2302     virtual HRESULT STDMETHODCALLTYPE setDisabled( 
2303         /* [in] */ BOOL disabled);
2304     
2305     virtual HRESULT STDMETHODCALLTYPE name( 
2306         /* [retval][out] */ BSTR *name);
2307     
2308     virtual HRESULT STDMETHODCALLTYPE setName( 
2309         /* [in] */ BSTR name);
2310     
2311     virtual HRESULT STDMETHODCALLTYPE readOnly( 
2312         /* [retval][out] */ BOOL *result);
2313     
2314     virtual HRESULT STDMETHODCALLTYPE setReadOnly( 
2315         /* [in] */ BOOL readOnly);
2316     
2317     virtual HRESULT STDMETHODCALLTYPE rows( 
2318         /* [retval][out] */ int *result);
2319     
2320     virtual HRESULT STDMETHODCALLTYPE setRows( 
2321         /* [in] */ int rows);
2322     
2323     virtual HRESULT STDMETHODCALLTYPE tabIndex( 
2324         /* [retval][out] */ int *result);
2325     
2326     virtual HRESULT STDMETHODCALLTYPE setTabIndex( 
2327         /* [in] */ int tabIndex);
2328     
2329     virtual HRESULT STDMETHODCALLTYPE type( 
2330         /* [retval][out] */ BSTR *result);
2331     
2332     virtual HRESULT STDMETHODCALLTYPE value( 
2333         /* [retval][out] */ BSTR *result);
2334     
2335     virtual HRESULT STDMETHODCALLTYPE setValue( 
2336         /* [in] */ BSTR value);
2337         
2338     virtual HRESULT STDMETHODCALLTYPE select( void);
2339
2340     // IFormPromptAdditions
2341     virtual HRESULT STDMETHODCALLTYPE isUserEdited( 
2342         /* [retval][out] */ BOOL *result);
2343 };
2344
2345 #endif