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