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