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