WebKit/win/DOMHTMLClasses.h
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     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);
       
    50     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
       
    51     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
       
    52 
       
    53     // IWebScriptObject
       
    54     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
    55         /* [in] */ BSTR exceptionMessage,
       
    56         /* [retval][out] */ BOOL *result) { return DOMObject::throwException(exceptionMessage, result); }
       
    57     
       
    58     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
       
    59         /* [in] */ BSTR name,
       
    60         /* [size_is][in] */ const VARIANT args[  ],
       
    61         /* [in] */ int cArgs,
       
    62         /* [retval][out] */ VARIANT *result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
       
    63     
       
    64     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
    65         /* [in] */ BSTR script,
       
    66         /* [retval][out] */ VARIANT *result) { return DOMObject::evaluateWebScript(script, result); }
       
    67     
       
    68     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
    69         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
       
    70     
       
    71     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
    72         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
       
    73     
       
    74     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
    75         /* [in] */ unsigned int index,
       
    76         /* [retval][out] */ VARIANT *result) { return DOMObject::webScriptValueAtIndex(index, result); }
       
    77     
       
    78     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
    79         /* [in] */ unsigned int index,
       
    80         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
       
    81     
       
    82     virtual HRESULT STDMETHODCALLTYPE setException( 
       
    83         /* [in] */ BSTR description) { return DOMObject::setException(description); }
       
    84 
       
    85     // IDOMHTMLCollection
       
    86     virtual HRESULT STDMETHODCALLTYPE length( 
       
    87         /* [retval][out] */ UINT *result);
       
    88     
       
    89     virtual HRESULT STDMETHODCALLTYPE item( 
       
    90         /* [in] */ UINT index,
       
    91         /* [retval][out] */ IDOMNode **node);
       
    92     
       
    93     virtual HRESULT STDMETHODCALLTYPE namedItem( 
       
    94         /* [in] */ BSTR name,
       
    95         /* [retval][out] */ IDOMNode **node);
       
    96 
       
    97 protected:
       
    98     RefPtr<WebCore::HTMLCollection> m_collection;
       
    99 };
       
   100 
       
   101 class DOMHTMLOptionsCollection : public DOMObject, public IDOMHTMLOptionsCollection
       
   102 {
       
   103 public:
       
   104     static IDOMHTMLOptionsCollection* createInstance(WebCore::HTMLOptionsCollection*);
       
   105 
       
   106     // IUnknown
       
   107     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
   108     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
       
   109     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
       
   110 
       
   111     // IWebScriptObject
       
   112     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
   113         /* [in] */ BSTR exceptionMessage,
       
   114         /* [retval][out] */ BOOL *result) { return DOMObject::throwException(exceptionMessage, result); }
       
   115     
       
   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     
       
   122     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
   123         /* [in] */ BSTR script,
       
   124         /* [retval][out] */ VARIANT *result) { return DOMObject::evaluateWebScript(script, result); }
       
   125     
       
   126     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
   127         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
       
   128     
       
   129     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
   130         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
       
   131     
       
   132     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
   133         /* [in] */ unsigned int index,
       
   134         /* [retval][out] */ VARIANT *result) { return DOMObject::webScriptValueAtIndex(index, result); }
       
   135     
       
   136     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
   137         /* [in] */ unsigned int index,
       
   138         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
       
   139     
       
   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:
       
   169     DOMHTMLDocument(WebCore::Document* d) : DOMDocument(d) {}
       
   170 
       
   171     // IUnknown
       
   172     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
   173     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMDocument::AddRef(); }
       
   174     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMDocument::Release(); }
       
   175 
       
   176     // IWebScriptObject
       
   177     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
   178         /* [in] */ BSTR exceptionMessage,
       
   179         /* [retval][out] */ BOOL *result) { return DOMDocument::throwException(exceptionMessage, result); }
       
   180     
       
   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     
       
   187     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
   188         /* [in] */ BSTR script,
       
   189         /* [retval][out] */ VARIANT *result) { return DOMDocument::evaluateWebScript(script, result); }
       
   190     
       
   191     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
   192         /* [in] */ BSTR name) { return DOMDocument::removeWebScriptKey(name); }
       
   193     
       
   194     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
   195         /* [retval][out] */ BSTR* stringRepresentation) { return DOMDocument::stringRepresentation(stringRepresentation); }
       
   196     
       
   197     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
   198         /* [in] */ unsigned int index,
       
   199         /* [retval][out] */ VARIANT *result) { return DOMDocument::webScriptValueAtIndex(index, result); }
       
   200     
       
   201     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
   202         /* [in] */ unsigned int index,
       
   203         /* [in] */ VARIANT val) { return DOMDocument::setWebScriptValueAtIndex(index, val); }
       
   204     
       
   205     virtual HRESULT STDMETHODCALLTYPE setException( 
       
   206         /* [in] */ BSTR description) { return DOMDocument::setException(description); }
       
   207 
       
   208     // IDOMNode
       
   209     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
   210         /* [retval][out] */ BSTR *result) { return DOMDocument::nodeName(result); }
       
   211     
       
   212     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
   213         /* [retval][out] */ BSTR *result) { return DOMDocument::nodeValue(result); }
       
   214     
       
   215     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
   216         /* [in] */ BSTR value) { return setNodeValue(value); }
       
   217     
       
   218     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
   219         /* [retval][out] */ unsigned short *result) { return DOMDocument::nodeType(result); }
       
   220     
       
   221     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
   222         /* [retval][out] */ IDOMNode **result) { return DOMDocument::parentNode(result); }
       
   223     
       
   224     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
   225         /* [retval][out] */ IDOMNodeList **result) { return DOMDocument::childNodes(result); }
       
   226     
       
   227     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
   228         /* [retval][out] */ IDOMNode **result) { return DOMDocument::firstChild(result); }
       
   229     
       
   230     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
   231         /* [retval][out] */ IDOMNode **result) { return DOMDocument::lastChild(result); }
       
   232     
       
   233     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
   234         /* [retval][out] */ IDOMNode **result) { return DOMDocument::previousSibling(result); }
       
   235     
       
   236     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
   237         /* [retval][out] */ IDOMNode **result) { return DOMDocument::nextSibling(result); }
       
   238     
       
   239     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
   240         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMDocument::attributes(result); }
       
   241     
       
   242     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
   243         /* [retval][out] */ IDOMDocument **result) { return DOMDocument::ownerDocument(result); }
       
   244     
       
   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     
       
   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     
       
   255     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
   256         /* [in] */ IDOMNode *oldChild,
       
   257         /* [retval][out] */ IDOMNode **result) { return DOMDocument::removeChild(oldChild, result); }
       
   258     
       
   259     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
   260         /* [in] */ IDOMNode *oldChild,
       
   261         /* [retval][out] */ IDOMNode **result) { return DOMDocument::appendChild(oldChild, result); }
       
   262     
       
   263     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
   264         /* [retval][out] */ BOOL *result) { return DOMDocument::hasChildNodes(result); }
       
   265     
       
   266     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
   267         /* [in] */ BOOL deep,
       
   268         /* [retval][out] */ IDOMNode **result) { return DOMDocument::cloneNode(deep, result); }
       
   269     
       
   270     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMDocument::normalize(); }
       
   271     
       
   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     
       
   277     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
   278         /* [retval][out] */ BSTR *result) { return DOMDocument::namespaceURI(result); }
       
   279     
       
   280     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
   281         /* [retval][out] */ BSTR *result) { return DOMDocument::prefix(result); }
       
   282     
       
   283     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
   284         /* [in] */ BSTR prefix) { return DOMDocument::setPrefix(prefix); }
       
   285     
       
   286     virtual HRESULT STDMETHODCALLTYPE localName( 
       
   287         /* [retval][out] */ BSTR *result) { return DOMDocument::localName(result); }
       
   288     
       
   289     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
   290         /* [retval][out] */ BOOL *result) { return DOMDocument::hasAttributes(result); }
       
   291 
       
   292     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
   293         /* [in] */ IDOMNode* other,
       
   294         /* [retval][out] */ BOOL* result) { return DOMDocument::isSameNode(other, result); }
       
   295     
       
   296     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
   297         /* [in] */ IDOMNode* other,
       
   298         /* [retval][out] */ BOOL* result) { return DOMDocument::isEqualNode(other, result); }
       
   299     
       
   300     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
   301         /* [retval][out] */ BSTR* result) { return DOMDocument::textContent(result); }
       
   302     
       
   303     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
   304         /* [in] */ BSTR text) { return DOMDocument::setTextContent(text); }
       
   305     
       
   306     // IDOMDocument
       
   307     virtual HRESULT STDMETHODCALLTYPE doctype( 
       
   308         /* [retval][out] */ IDOMDocumentType **result) { return DOMDocument::doctype(result); }
       
   309     
       
   310     virtual HRESULT STDMETHODCALLTYPE implementation( 
       
   311         /* [retval][out] */ IDOMImplementation **result) { return DOMDocument::implementation(result); }
       
   312     
       
   313     virtual HRESULT STDMETHODCALLTYPE documentElement( 
       
   314         /* [retval][out] */ IDOMElement **result) { return DOMDocument::documentElement(result); }
       
   315     
       
   316     virtual HRESULT STDMETHODCALLTYPE createElement( 
       
   317         /* [in] */ BSTR tagName,
       
   318         /* [retval][out] */ IDOMElement **result) { return DOMDocument::createElement(tagName, result); }
       
   319     
       
   320     virtual HRESULT STDMETHODCALLTYPE createDocumentFragment( 
       
   321         /* [retval][out] */ IDOMDocumentFragment **result) { return DOMDocument::createDocumentFragment(result); }
       
   322     
       
   323     virtual HRESULT STDMETHODCALLTYPE createTextNode( 
       
   324         /* [in] */ BSTR data,
       
   325         /* [retval][out] */ IDOMText **result) { return DOMDocument::createTextNode(data, result); }
       
   326     
       
   327     virtual HRESULT STDMETHODCALLTYPE createComment( 
       
   328         /* [in] */ BSTR data,
       
   329         /* [retval][out] */ IDOMComment **result) { return DOMDocument::createComment(data, result); }
       
   330     
       
   331     virtual HRESULT STDMETHODCALLTYPE createCDATASection( 
       
   332         /* [in] */ BSTR data,
       
   333         /* [retval][out] */ IDOMCDATASection **result) { return DOMDocument::createCDATASection(data, result); }
       
   334     
       
   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     
       
   340     virtual HRESULT STDMETHODCALLTYPE createAttribute( 
       
   341         /* [in] */ BSTR name,
       
   342         /* [retval][out] */ IDOMAttr **result) { return DOMDocument::createAttribute(name, result); }
       
   343     
       
   344     virtual HRESULT STDMETHODCALLTYPE createEntityReference( 
       
   345         /* [in] */ BSTR name,
       
   346         /* [retval][out] */ IDOMEntityReference **result) { return DOMDocument::createEntityReference(name, result); }
       
   347     
       
   348     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
   349         /* [in] */ BSTR tagName,
       
   350         /* [retval][out] */ IDOMNodeList **result) { return DOMDocument::getElementsByTagName(tagName, result); }
       
   351     
       
   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     
       
   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     
       
   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     
       
   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     
       
   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:
       
   443     DOMHTMLElement(WebCore::Element* e) : DOMElement(e) {}
       
   444 
       
   445     // IUnknown
       
   446     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
   447     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMElement::AddRef(); }
       
   448     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMElement::Release(); }
       
   449 
       
   450     // IWebScriptObject
       
   451     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
   452         /* [in] */ BSTR exceptionMessage,
       
   453         /* [retval][out] */ BOOL *result) { return DOMElement::throwException(exceptionMessage, result); }
       
   454     
       
   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     
       
   461     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
   462         /* [in] */ BSTR script,
       
   463         /* [retval][out] */ VARIANT *result) { return DOMElement::evaluateWebScript(script, result); }
       
   464     
       
   465     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
   466         /* [in] */ BSTR name) { return DOMElement::removeWebScriptKey(name); }
       
   467     
       
   468     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
   469         /* [retval][out] */ BSTR* stringRepresentation) { return DOMElement::stringRepresentation(stringRepresentation); }
       
   470     
       
   471     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
   472         /* [in] */ unsigned int index,
       
   473         /* [retval][out] */ VARIANT *result) { return DOMElement::webScriptValueAtIndex(index, result); }
       
   474     
       
   475     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
   476         /* [in] */ unsigned int index,
       
   477         /* [in] */ VARIANT val) { return DOMElement::setWebScriptValueAtIndex(index, val); }
       
   478     
       
   479     virtual HRESULT STDMETHODCALLTYPE setException( 
       
   480         /* [in] */ BSTR description) { return DOMElement::setException(description); }
       
   481 
       
   482     // IDOMNode
       
   483     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
   484         /* [retval][out] */ BSTR *result) { return DOMElement::nodeName(result); }
       
   485     
       
   486     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
   487         /* [retval][out] */ BSTR *result) { return DOMElement::nodeValue(result); }
       
   488     
       
   489     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
   490         /* [in] */ BSTR value) { return DOMElement::setNodeValue(value); }
       
   491     
       
   492     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
   493         /* [retval][out] */ unsigned short *result) { return DOMElement::nodeType(result); }
       
   494     
       
   495     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
   496         /* [retval][out] */ IDOMNode **result) { return DOMElement::parentNode(result); }
       
   497     
       
   498     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
   499         /* [retval][out] */ IDOMNodeList **result) { return DOMElement::childNodes(result); }
       
   500     
       
   501     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
   502         /* [retval][out] */ IDOMNode **result) { return DOMElement::firstChild(result); }
       
   503     
       
   504     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
   505         /* [retval][out] */ IDOMNode **result) { return DOMElement::lastChild(result); }
       
   506     
       
   507     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
   508         /* [retval][out] */ IDOMNode **result) { return DOMElement::previousSibling(result); }
       
   509     
       
   510     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
   511         /* [retval][out] */ IDOMNode **result) { return DOMElement::nextSibling(result); }
       
   512     
       
   513     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
   514         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMElement::attributes(result); }
       
   515     
       
   516     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
   517         /* [retval][out] */ IDOMDocument **result) { return DOMElement::ownerDocument(result); }
       
   518     
       
   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     
       
   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     
       
   529     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
   530         /* [in] */ IDOMNode *oldChild,
       
   531         /* [retval][out] */ IDOMNode **result) { return DOMElement::removeChild(oldChild, result); }
       
   532     
       
   533     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
   534         /* [in] */ IDOMNode *oldChild,
       
   535         /* [retval][out] */ IDOMNode **result) { return DOMElement::appendChild(oldChild, result); }
       
   536     
       
   537     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
   538         /* [retval][out] */ BOOL *result) { return DOMElement::hasChildNodes(result); }
       
   539     
       
   540     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
   541         /* [in] */ BOOL deep,
       
   542         /* [retval][out] */ IDOMNode **result) { return DOMElement::cloneNode(deep, result); }
       
   543     
       
   544     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMElement::normalize(); }
       
   545     
       
   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     
       
   551     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
   552         /* [retval][out] */ BSTR *result) { return DOMElement::namespaceURI(result); }
       
   553     
       
   554     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
   555         /* [retval][out] */ BSTR *result) { return DOMElement::prefix(result); }
       
   556     
       
   557     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
   558         /* [in] */ BSTR prefix) { return DOMElement::setPrefix(prefix); }
       
   559     
       
   560     virtual HRESULT STDMETHODCALLTYPE localName( 
       
   561         /* [retval][out] */ BSTR *result) { return DOMElement::localName(result); }
       
   562     
       
   563     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
   564         /* [retval][out] */ BOOL *result) { return DOMElement::hasAttributes(result); }
       
   565 
       
   566     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
   567         /* [in] */ IDOMNode* other,
       
   568         /* [retval][out] */ BOOL* result) { return DOMElement::isSameNode(other, result); }
       
   569     
       
   570     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
   571         /* [in] */ IDOMNode* other,
       
   572         /* [retval][out] */ BOOL* result) { return DOMElement::isEqualNode(other, result); }
       
   573     
       
   574     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
   575         /* [retval][out] */ BSTR* result) { return DOMElement::textContent(result); }
       
   576     
       
   577     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
   578         /* [in] */ BSTR text) { return DOMElement::setTextContent(text); }
       
   579     
       
   580     // IDOMElement
       
   581     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
   582         /* [retval][out] */ BSTR *result) { return DOMElement::tagName(result); }
       
   583     
       
   584     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
   585         /* [in] */ BSTR name,
       
   586         /* [retval][out] */ BSTR *result) { return DOMElement::getAttribute(name, result); }
       
   587     
       
   588     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
   589         /* [in] */ BSTR name,
       
   590         /* [in] */ BSTR value) { return DOMElement::setAttribute(name, value); }
       
   591     
       
   592     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
   593         /* [in] */ BSTR name) { return DOMElement::removeAttribute(name); }
       
   594     
       
   595     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
   596         /* [in] */ BSTR name,
       
   597         /* [retval][out] */ IDOMAttr **result) { return DOMElement::getAttributeNode(name, result); }
       
   598     
       
   599     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
   600         /* [in] */ IDOMAttr *newAttr,
       
   601         /* [retval][out] */ IDOMAttr **result) { return DOMElement::setAttributeNode(newAttr, result); }
       
   602     
       
   603     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
   604         /* [in] */ IDOMAttr *oldAttr,
       
   605         /* [retval][out] */ IDOMAttr **result) { return DOMElement::removeAttributeNode(oldAttr, result); }
       
   606     
       
   607     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
   608         /* [in] */ BSTR name,
       
   609         /* [retval][out] */ IDOMNodeList **result) { return DOMElement::getElementsByTagName(name, result); }
       
   610     
       
   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     
       
   616     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
   617         /* [in] */ BSTR namespaceURI,
       
   618         /* [in] */ BSTR qualifiedName,
       
   619         /* [in] */ BSTR value) { return DOMElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
   620     
       
   621     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
   622         /* [in] */ BSTR namespaceURI,
       
   623         /* [in] */ BSTR localName) { return DOMElement::removeAttributeNS(namespaceURI, localName); }
       
   624     
       
   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     
       
   630     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
   631         /* [in] */ IDOMAttr *newAttr,
       
   632         /* [retval][out] */ IDOMAttr **result) { return DOMElement::setAttributeNodeNS(newAttr, result); }
       
   633     
       
   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     
       
   639     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
   640         /* [in] */ BSTR name,
       
   641         /* [retval][out] */ BOOL *result) { return DOMElement::hasAttribute(name, result); }
       
   642     
       
   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 
       
   648     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMElement::focus(); }
       
   649     
       
   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:
       
   702     DOMHTMLFormElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
   703 
       
   704     // IUnknown
       
   705     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
   706     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
   707     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
   708 
       
   709     // IWebScriptObject
       
   710     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
   711         /* [in] */ BSTR exceptionMessage,
       
   712         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
   713     
       
   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     
       
   720     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
   721         /* [in] */ BSTR script,
       
   722         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
   723     
       
   724     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
   725         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
   726     
       
   727     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
   728         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
   729     
       
   730     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
   731         /* [in] */ unsigned int index,
       
   732         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
   733     
       
   734     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
   735         /* [in] */ unsigned int index,
       
   736         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
   737     
       
   738     virtual HRESULT STDMETHODCALLTYPE setException( 
       
   739         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
   740 
       
   741     // IDOMNode
       
   742     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
   743         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
   744     
       
   745     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
   746         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
   747     
       
   748     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
   749         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
   750     
       
   751     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
   752         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
   753     
       
   754     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
   755         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
   756     
       
   757     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
   758         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
   759     
       
   760     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
   761         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
   762     
       
   763     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
   764         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
   765     
       
   766     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
   767         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
   768     
       
   769     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
   770         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
   771     
       
   772     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
   773         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
   774     
       
   775     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
   776         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
   777     
       
   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     
       
   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     
       
   788     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
   789         /* [in] */ IDOMNode *oldChild,
       
   790         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
   791     
       
   792     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
   793         /* [in] */ IDOMNode *oldChild,
       
   794         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
   795     
       
   796     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
   797         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
   798     
       
   799     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
   800         /* [in] */ BOOL deep,
       
   801         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
   802     
       
   803     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
   804     
       
   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     
       
   810     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
   811         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
   812     
       
   813     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
   814         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
   815     
       
   816     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
   817         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
   818     
       
   819     virtual HRESULT STDMETHODCALLTYPE localName( 
       
   820         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
   821     
       
   822     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
   823         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
   824 
       
   825     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
   826         /* [in] */ IDOMNode* other,
       
   827         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
   828     
       
   829     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
   830         /* [in] */ IDOMNode* other,
       
   831         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
   832     
       
   833     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
   834         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
   835     
       
   836     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
   837         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
   838     
       
   839     // IDOMElement
       
   840     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
   841         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
   842     
       
   843     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
   844         /* [in] */ BSTR name,
       
   845         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
   846     
       
   847     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
   848         /* [in] */ BSTR name,
       
   849         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
   850     
       
   851     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
   852         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
   853     
       
   854     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
   855         /* [in] */ BSTR name,
       
   856         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
   857     
       
   858     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
   859         /* [in] */ IDOMAttr *newAttr,
       
   860         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
   861     
       
   862     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
   863         /* [in] */ IDOMAttr *oldAttr,
       
   864         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
   865     
       
   866     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
   867         /* [in] */ BSTR name,
       
   868         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
   869     
       
   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     
       
   875     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
   876         /* [in] */ BSTR namespaceURI,
       
   877         /* [in] */ BSTR qualifiedName,
       
   878         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
   879     
       
   880     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
   881         /* [in] */ BSTR namespaceURI,
       
   882         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
   883     
       
   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     
       
   889     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
   890         /* [in] */ IDOMAttr *newAttr,
       
   891         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
   892     
       
   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     
       
   898     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
   899         /* [in] */ BSTR name,
       
   900         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
   901     
       
   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 
       
   907     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
   908     
       
   909     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
   910 
       
   911     // IDOMHTMLElement
       
   912     virtual HRESULT STDMETHODCALLTYPE idName( 
       
   913         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
   914     
       
   915     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
   916         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
   917     
       
   918     virtual HRESULT STDMETHODCALLTYPE title( 
       
   919         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
   920     
       
   921     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
   922         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
   923     
       
   924     virtual HRESULT STDMETHODCALLTYPE lang( 
       
   925         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
   926     
       
   927     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
   928         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
   929     
       
   930     virtual HRESULT STDMETHODCALLTYPE dir( 
       
   931         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
   932     
       
   933     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
   934         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
   935     
       
   936     virtual HRESULT STDMETHODCALLTYPE className( 
       
   937         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
   938     
       
   939     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
   940         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
   941 
       
   942     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
   943         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
   944         
       
   945     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
   946         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
   947         
       
   948     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
   949         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
   950         
       
   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:
       
  1007     DOMHTMLSelectElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
  1008 
       
  1009     // IUnknown
       
  1010     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
  1011     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
  1012     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
  1013 
       
  1014     // IWebScriptObject
       
  1015     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
  1016         /* [in] */ BSTR exceptionMessage,
       
  1017         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
  1018     
       
  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     
       
  1025     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
  1026         /* [in] */ BSTR script,
       
  1027         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
  1028     
       
  1029     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
  1030         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
  1031     
       
  1032     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
  1033         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
  1034     
       
  1035     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
  1036         /* [in] */ unsigned int index,
       
  1037         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
  1038     
       
  1039     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
  1040         /* [in] */ unsigned int index,
       
  1041         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
  1042     
       
  1043     virtual HRESULT STDMETHODCALLTYPE setException( 
       
  1044         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
  1045 
       
  1046     // IDOMNode
       
  1047     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
  1048         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
  1049     
       
  1050     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
  1051         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
  1052     
       
  1053     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
  1054         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
  1055     
       
  1056     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
  1057         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
  1058     
       
  1059     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
  1060         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
  1061     
       
  1062     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
  1063         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
  1064     
       
  1065     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
  1066         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
  1067     
       
  1068     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
  1069         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
  1070     
       
  1071     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
  1072         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
  1073     
       
  1074     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
  1075         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
  1076     
       
  1077     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
  1078         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
  1079     
       
  1080     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
  1081         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
  1082     
       
  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     
       
  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     
       
  1093     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
  1094         /* [in] */ IDOMNode *oldChild,
       
  1095         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
  1096     
       
  1097     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
  1098         /* [in] */ IDOMNode *oldChild,
       
  1099         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
  1100     
       
  1101     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
  1102         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
  1103     
       
  1104     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
  1105         /* [in] */ BOOL deep,
       
  1106         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
  1107     
       
  1108     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
  1109     
       
  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     
       
  1115     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
  1116         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
  1117     
       
  1118     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
  1119         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
  1120     
       
  1121     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
  1122         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
  1123     
       
  1124     virtual HRESULT STDMETHODCALLTYPE localName( 
       
  1125         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
  1126     
       
  1127     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
  1128         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
  1129 
       
  1130     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
  1131         /* [in] */ IDOMNode* other,
       
  1132         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
  1133     
       
  1134     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
  1135         /* [in] */ IDOMNode* other,
       
  1136         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
  1137     
       
  1138     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
  1139         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
  1140     
       
  1141     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
  1142         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
  1143     
       
  1144     // IDOMElement
       
  1145     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
  1146         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
  1147     
       
  1148     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
  1149         /* [in] */ BSTR name,
       
  1150         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
  1151     
       
  1152     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
  1153         /* [in] */ BSTR name,
       
  1154         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
  1155     
       
  1156     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
  1157         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
  1158     
       
  1159     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
  1160         /* [in] */ BSTR name,
       
  1161         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
  1162     
       
  1163     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
  1164         /* [in] */ IDOMAttr *newAttr,
       
  1165         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
  1166     
       
  1167     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
  1168         /* [in] */ IDOMAttr *oldAttr,
       
  1169         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
  1170     
       
  1171     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
  1172         /* [in] */ BSTR name,
       
  1173         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
  1174     
       
  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     
       
  1180     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
  1181         /* [in] */ BSTR namespaceURI,
       
  1182         /* [in] */ BSTR qualifiedName,
       
  1183         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
  1184     
       
  1185     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
  1186         /* [in] */ BSTR namespaceURI,
       
  1187         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
  1188     
       
  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     
       
  1194     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
  1195         /* [in] */ IDOMAttr *newAttr,
       
  1196         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
  1197     
       
  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     
       
  1203     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
  1204         /* [in] */ BSTR name,
       
  1205         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
  1206     
       
  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 
       
  1212     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
  1213     
       
  1214     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
  1215 
       
  1216     // IDOMHTMLElement
       
  1217     virtual HRESULT STDMETHODCALLTYPE idName( 
       
  1218         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
  1219     
       
  1220     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
  1221         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
  1222     
       
  1223     virtual HRESULT STDMETHODCALLTYPE title( 
       
  1224         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
  1225     
       
  1226     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
  1227         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
  1228     
       
  1229     virtual HRESULT STDMETHODCALLTYPE lang( 
       
  1230         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
  1231     
       
  1232     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
  1233         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
  1234     
       
  1235     virtual HRESULT STDMETHODCALLTYPE dir( 
       
  1236         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
  1237     
       
  1238     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
  1239         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
  1240     
       
  1241     virtual HRESULT STDMETHODCALLTYPE className( 
       
  1242         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
  1243     
       
  1244     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
  1245         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
  1246 
       
  1247     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
  1248         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
  1249         
       
  1250     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
  1251         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
  1252         
       
  1253     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
  1254         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
  1255         
       
  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:
       
  1331     DOMHTMLOptionElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
  1332 
       
  1333     // IUnknown
       
  1334     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
  1335     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
  1336     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
  1337 
       
  1338     // IWebScriptObject
       
  1339     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
  1340         /* [in] */ BSTR exceptionMessage,
       
  1341         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
  1342     
       
  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     
       
  1349     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
  1350         /* [in] */ BSTR script,
       
  1351         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
  1352     
       
  1353     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
  1354         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
  1355     
       
  1356     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
  1357         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
  1358     
       
  1359     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
  1360         /* [in] */ unsigned int index,
       
  1361         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
  1362     
       
  1363     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
  1364         /* [in] */ unsigned int index,
       
  1365         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
  1366     
       
  1367     virtual HRESULT STDMETHODCALLTYPE setException( 
       
  1368         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
  1369 
       
  1370     // IDOMNode
       
  1371     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
  1372         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
  1373     
       
  1374     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
  1375         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
  1376     
       
  1377     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
  1378         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
  1379     
       
  1380     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
  1381         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
  1382     
       
  1383     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
  1384         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
  1385     
       
  1386     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
  1387         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
  1388     
       
  1389     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
  1390         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
  1391     
       
  1392     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
  1393         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
  1394     
       
  1395     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
  1396         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
  1397     
       
  1398     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
  1399         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
  1400     
       
  1401     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
  1402         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
  1403     
       
  1404     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
  1405         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
  1406     
       
  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     
       
  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     
       
  1417     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
  1418         /* [in] */ IDOMNode *oldChild,
       
  1419         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
  1420     
       
  1421     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
  1422         /* [in] */ IDOMNode *oldChild,
       
  1423         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
  1424     
       
  1425     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
  1426         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
  1427     
       
  1428     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
  1429         /* [in] */ BOOL deep,
       
  1430         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
  1431     
       
  1432     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
  1433     
       
  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     
       
  1439     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
  1440         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
  1441     
       
  1442     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
  1443         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
  1444     
       
  1445     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
  1446         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
  1447     
       
  1448     virtual HRESULT STDMETHODCALLTYPE localName( 
       
  1449         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
  1450     
       
  1451     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
  1452         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
  1453 
       
  1454     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
  1455         /* [in] */ IDOMNode* other,
       
  1456         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
  1457     
       
  1458     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
  1459         /* [in] */ IDOMNode* other,
       
  1460         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
  1461     
       
  1462     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
  1463         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
  1464     
       
  1465     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
  1466         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
  1467     
       
  1468     // IDOMElement
       
  1469     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
  1470         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
  1471     
       
  1472     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
  1473         /* [in] */ BSTR name,
       
  1474         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
  1475     
       
  1476     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
  1477         /* [in] */ BSTR name,
       
  1478         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
  1479     
       
  1480     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
  1481         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
  1482     
       
  1483     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
  1484         /* [in] */ BSTR name,
       
  1485         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
  1486     
       
  1487     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
  1488         /* [in] */ IDOMAttr *newAttr,
       
  1489         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
  1490     
       
  1491     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
  1492         /* [in] */ IDOMAttr *oldAttr,
       
  1493         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
  1494     
       
  1495     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
  1496         /* [in] */ BSTR name,
       
  1497         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
  1498     
       
  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     
       
  1504     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
  1505         /* [in] */ BSTR namespaceURI,
       
  1506         /* [in] */ BSTR qualifiedName,
       
  1507         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
  1508     
       
  1509     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
  1510         /* [in] */ BSTR namespaceURI,
       
  1511         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
  1512     
       
  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     
       
  1518     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
  1519         /* [in] */ IDOMAttr *newAttr,
       
  1520         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
  1521     
       
  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     
       
  1527     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
  1528         /* [in] */ BSTR name,
       
  1529         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
  1530     
       
  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 
       
  1536     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
  1537     
       
  1538     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
  1539 
       
  1540     // IDOMHTMLElement
       
  1541     virtual HRESULT STDMETHODCALLTYPE idName( 
       
  1542         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
  1543     
       
  1544     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
  1545         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
  1546     
       
  1547     virtual HRESULT STDMETHODCALLTYPE title( 
       
  1548         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
  1549     
       
  1550     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
  1551         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
  1552     
       
  1553     virtual HRESULT STDMETHODCALLTYPE lang( 
       
  1554         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
  1555     
       
  1556     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
  1557         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
  1558     
       
  1559     virtual HRESULT STDMETHODCALLTYPE dir( 
       
  1560         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
  1561     
       
  1562     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
  1563         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
  1564     
       
  1565     virtual HRESULT STDMETHODCALLTYPE className( 
       
  1566         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
  1567     
       
  1568     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
  1569         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
  1570 
       
  1571     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
  1572         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
  1573         
       
  1574     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
  1575         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
  1576         
       
  1577     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
  1578         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
  1579         
       
  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:
       
  1629     DOMHTMLInputElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
  1630 
       
  1631     // IUnknown
       
  1632     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
  1633     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
  1634     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
  1635 
       
  1636     // IWebScriptObject
       
  1637     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
  1638         /* [in] */ BSTR exceptionMessage,
       
  1639         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
  1640     
       
  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     
       
  1647     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
  1648         /* [in] */ BSTR script,
       
  1649         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
  1650     
       
  1651     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
  1652         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
  1653     
       
  1654     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
  1655         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
  1656     
       
  1657     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
  1658         /* [in] */ unsigned int index,
       
  1659         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
  1660     
       
  1661     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
  1662         /* [in] */ unsigned int index,
       
  1663         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
  1664     
       
  1665     virtual HRESULT STDMETHODCALLTYPE setException( 
       
  1666         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
  1667 
       
  1668     // IDOMNode
       
  1669     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
  1670         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
  1671     
       
  1672     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
  1673         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
  1674     
       
  1675     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
  1676         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
  1677     
       
  1678     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
  1679         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
  1680     
       
  1681     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
  1682         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
  1683     
       
  1684     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
  1685         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
  1686     
       
  1687     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
  1688         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
  1689     
       
  1690     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
  1691         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
  1692     
       
  1693     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
  1694         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
  1695     
       
  1696     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
  1697         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
  1698     
       
  1699     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
  1700         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
  1701     
       
  1702     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
  1703         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
  1704     
       
  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     
       
  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     
       
  1715     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
  1716         /* [in] */ IDOMNode *oldChild,
       
  1717         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
  1718     
       
  1719     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
  1720         /* [in] */ IDOMNode *oldChild,
       
  1721         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
  1722     
       
  1723     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
  1724         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
  1725     
       
  1726     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
  1727         /* [in] */ BOOL deep,
       
  1728         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
  1729     
       
  1730     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
  1731     
       
  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     
       
  1737     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
  1738         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
  1739     
       
  1740     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
  1741         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
  1742     
       
  1743     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
  1744         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
  1745     
       
  1746     virtual HRESULT STDMETHODCALLTYPE localName( 
       
  1747         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
  1748     
       
  1749     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
  1750         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
  1751 
       
  1752     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
  1753         /* [in] */ IDOMNode* other,
       
  1754         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
  1755     
       
  1756     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
  1757         /* [in] */ IDOMNode* other,
       
  1758         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
  1759     
       
  1760     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
  1761         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
  1762     
       
  1763     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
  1764         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
  1765     
       
  1766     // IDOMElement
       
  1767     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
  1768         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
  1769     
       
  1770     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
  1771         /* [in] */ BSTR name,
       
  1772         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
  1773     
       
  1774     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
  1775         /* [in] */ BSTR name,
       
  1776         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
  1777     
       
  1778     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
  1779         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
  1780     
       
  1781     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
  1782         /* [in] */ BSTR name,
       
  1783         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
  1784     
       
  1785     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
  1786         /* [in] */ IDOMAttr *newAttr,
       
  1787         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
  1788     
       
  1789     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
  1790         /* [in] */ IDOMAttr *oldAttr,
       
  1791         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
  1792     
       
  1793     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
  1794         /* [in] */ BSTR name,
       
  1795         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
  1796     
       
  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     
       
  1802     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
  1803         /* [in] */ BSTR namespaceURI,
       
  1804         /* [in] */ BSTR qualifiedName,
       
  1805         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
  1806     
       
  1807     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
  1808         /* [in] */ BSTR namespaceURI,
       
  1809         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
  1810     
       
  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     
       
  1816     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
  1817         /* [in] */ IDOMAttr *newAttr,
       
  1818         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
  1819     
       
  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     
       
  1825     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
  1826         /* [in] */ BSTR name,
       
  1827         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
  1828     
       
  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 
       
  1834     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
  1835     
       
  1836     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
  1837 
       
  1838     // IDOMHTMLElement
       
  1839     virtual HRESULT STDMETHODCALLTYPE idName( 
       
  1840         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
  1841     
       
  1842     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
  1843         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
  1844     
       
  1845     virtual HRESULT STDMETHODCALLTYPE title( 
       
  1846         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
  1847     
       
  1848     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
  1849         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
  1850     
       
  1851     virtual HRESULT STDMETHODCALLTYPE lang( 
       
  1852         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
  1853     
       
  1854     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
  1855         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
  1856     
       
  1857     virtual HRESULT STDMETHODCALLTYPE dir( 
       
  1858         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
  1859     
       
  1860     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
  1861         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
  1862     
       
  1863     virtual HRESULT STDMETHODCALLTYPE className( 
       
  1864         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
  1865     
       
  1866     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
  1867         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
  1868 
       
  1869     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
  1870         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
  1871         
       
  1872     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
  1873         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
  1874         
       
  1875     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
  1876         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
  1877         
       
  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:
       
  2039     DOMHTMLTextAreaElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
  2040 
       
  2041     // IUnknown
       
  2042     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
  2043     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
  2044     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
  2045 
       
  2046     // IWebScriptObject
       
  2047     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
  2048         /* [in] */ BSTR exceptionMessage,
       
  2049         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
  2050     
       
  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     
       
  2057     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
  2058         /* [in] */ BSTR script,
       
  2059         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
  2060     
       
  2061     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
  2062         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
  2063     
       
  2064     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
  2065         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
  2066     
       
  2067     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
  2068         /* [in] */ unsigned int index,
       
  2069         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
  2070     
       
  2071     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
  2072         /* [in] */ unsigned int index,
       
  2073         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
  2074     
       
  2075     virtual HRESULT STDMETHODCALLTYPE setException( 
       
  2076         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
  2077 
       
  2078     // IDOMNode
       
  2079     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
  2080         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
  2081     
       
  2082     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
  2083         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
  2084     
       
  2085     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
  2086         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
  2087     
       
  2088     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
  2089         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
  2090     
       
  2091     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
  2092         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
  2093     
       
  2094     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
  2095         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
  2096     
       
  2097     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
  2098         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
  2099     
       
  2100     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
  2101         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
  2102     
       
  2103     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
  2104         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
  2105     
       
  2106     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
  2107         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
  2108     
       
  2109     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
  2110         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
  2111     
       
  2112     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
  2113         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
  2114     
       
  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     
       
  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     
       
  2125     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
  2126         /* [in] */ IDOMNode *oldChild,
       
  2127         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
  2128     
       
  2129     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
  2130         /* [in] */ IDOMNode *oldChild,
       
  2131         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
  2132     
       
  2133     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
  2134         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
  2135     
       
  2136     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
  2137         /* [in] */ BOOL deep,
       
  2138         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
  2139     
       
  2140     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
  2141     
       
  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     
       
  2147     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
  2148         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
  2149     
       
  2150     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
  2151         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
  2152     
       
  2153     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
  2154         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
  2155     
       
  2156     virtual HRESULT STDMETHODCALLTYPE localName( 
       
  2157         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
  2158     
       
  2159     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
  2160         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
  2161 
       
  2162     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
  2163         /* [in] */ IDOMNode* other,
       
  2164         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
  2165     
       
  2166     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
  2167         /* [in] */ IDOMNode* other,
       
  2168         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
  2169     
       
  2170     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
  2171         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
  2172     
       
  2173     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
  2174         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
  2175     
       
  2176     // IDOMElement
       
  2177     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
  2178         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
  2179     
       
  2180     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
  2181         /* [in] */ BSTR name,
       
  2182         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
  2183     
       
  2184     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
  2185         /* [in] */ BSTR name,
       
  2186         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
  2187     
       
  2188     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
  2189         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
  2190     
       
  2191     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
  2192         /* [in] */ BSTR name,
       
  2193         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
  2194     
       
  2195     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
  2196         /* [in] */ IDOMAttr *newAttr,
       
  2197         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
  2198     
       
  2199     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
  2200         /* [in] */ IDOMAttr *oldAttr,
       
  2201         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
  2202     
       
  2203     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
  2204         /* [in] */ BSTR name,
       
  2205         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
  2206     
       
  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     
       
  2212     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
  2213         /* [in] */ BSTR namespaceURI,
       
  2214         /* [in] */ BSTR qualifiedName,
       
  2215         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
  2216     
       
  2217     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
  2218         /* [in] */ BSTR namespaceURI,
       
  2219         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
  2220     
       
  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     
       
  2226     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
  2227         /* [in] */ IDOMAttr *newAttr,
       
  2228         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
  2229     
       
  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     
       
  2235     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
  2236         /* [in] */ BSTR name,
       
  2237         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
  2238     
       
  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 
       
  2244     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
  2245     
       
  2246     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
  2247 
       
  2248     // IDOMHTMLElement
       
  2249     virtual HRESULT STDMETHODCALLTYPE idName( 
       
  2250         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
  2251     
       
  2252     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
  2253         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
  2254     
       
  2255     virtual HRESULT STDMETHODCALLTYPE title( 
       
  2256         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
  2257     
       
  2258     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
  2259         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
  2260     
       
  2261     virtual HRESULT STDMETHODCALLTYPE lang( 
       
  2262         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
  2263     
       
  2264     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
  2265         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
  2266     
       
  2267     virtual HRESULT STDMETHODCALLTYPE dir( 
       
  2268         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
  2269     
       
  2270     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
  2271         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
  2272     
       
  2273     virtual HRESULT STDMETHODCALLTYPE className( 
       
  2274         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
  2275     
       
  2276     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
  2277         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
  2278 
       
  2279     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
  2280         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
  2281         
       
  2282     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
  2283         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
  2284         
       
  2285     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
  2286         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
  2287         
       
  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 class DOMHTMLIFrameElement : public DOMHTMLElement, public IDOMHTMLIFrameElement
       
  2360 {
       
  2361 protected:
       
  2362     DOMHTMLIFrameElement();
       
  2363 public:
       
  2364     DOMHTMLIFrameElement(WebCore::Element* e) : DOMHTMLElement(e) {}
       
  2365 
       
  2366     // IUnknown
       
  2367     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
       
  2368     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMHTMLElement::AddRef(); }
       
  2369     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMHTMLElement::Release(); }
       
  2370 
       
  2371     // IWebScriptObject
       
  2372     virtual HRESULT STDMETHODCALLTYPE throwException( 
       
  2373         /* [in] */ BSTR exceptionMessage,
       
  2374         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::throwException(exceptionMessage, result); }
       
  2375     
       
  2376     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( 
       
  2377         /* [in] */ BSTR name,
       
  2378         /* [size_is][in] */ const VARIANT args[  ],
       
  2379         /* [in] */ int cArgs,
       
  2380         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::callWebScriptMethod(name, args, cArgs, result); }
       
  2381     
       
  2382     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( 
       
  2383         /* [in] */ BSTR script,
       
  2384         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::evaluateWebScript(script, result); }
       
  2385     
       
  2386     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( 
       
  2387         /* [in] */ BSTR name) { return DOMHTMLElement::removeWebScriptKey(name); }
       
  2388     
       
  2389     virtual HRESULT STDMETHODCALLTYPE stringRepresentation( 
       
  2390         /* [retval][out] */ BSTR* stringRepresentation) { return DOMHTMLElement::stringRepresentation(stringRepresentation); }
       
  2391     
       
  2392     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( 
       
  2393         /* [in] */ unsigned int index,
       
  2394         /* [retval][out] */ VARIANT *result) { return DOMHTMLElement::webScriptValueAtIndex(index, result); }
       
  2395     
       
  2396     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( 
       
  2397         /* [in] */ unsigned int index,
       
  2398         /* [in] */ VARIANT val) { return DOMHTMLElement::setWebScriptValueAtIndex(index, val); }
       
  2399     
       
  2400     virtual HRESULT STDMETHODCALLTYPE setException( 
       
  2401         /* [in] */ BSTR description) { return DOMHTMLElement::setException(description); }
       
  2402 
       
  2403     // IDOMNode
       
  2404     virtual HRESULT STDMETHODCALLTYPE nodeName( 
       
  2405         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeName(result); }
       
  2406     
       
  2407     virtual HRESULT STDMETHODCALLTYPE nodeValue( 
       
  2408         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::nodeValue(result); }
       
  2409     
       
  2410     virtual HRESULT STDMETHODCALLTYPE setNodeValue( 
       
  2411         /* [in] */ BSTR value) { return DOMHTMLElement::setNodeValue(value); }
       
  2412     
       
  2413     virtual HRESULT STDMETHODCALLTYPE nodeType( 
       
  2414         /* [retval][out] */ unsigned short *result) { return DOMHTMLElement::nodeType(result); }
       
  2415     
       
  2416     virtual HRESULT STDMETHODCALLTYPE parentNode( 
       
  2417         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::parentNode(result); }
       
  2418     
       
  2419     virtual HRESULT STDMETHODCALLTYPE childNodes( 
       
  2420         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::childNodes(result); }
       
  2421     
       
  2422     virtual HRESULT STDMETHODCALLTYPE firstChild( 
       
  2423         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::firstChild(result); }
       
  2424     
       
  2425     virtual HRESULT STDMETHODCALLTYPE lastChild( 
       
  2426         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::lastChild(result); }
       
  2427     
       
  2428     virtual HRESULT STDMETHODCALLTYPE previousSibling( 
       
  2429         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::previousSibling(result); }
       
  2430     
       
  2431     virtual HRESULT STDMETHODCALLTYPE nextSibling( 
       
  2432         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::nextSibling(result); }
       
  2433     
       
  2434     virtual HRESULT STDMETHODCALLTYPE attributes( 
       
  2435         /* [retval][out] */ IDOMNamedNodeMap **result) { return DOMHTMLElement::attributes(result); }
       
  2436     
       
  2437     virtual HRESULT STDMETHODCALLTYPE ownerDocument( 
       
  2438         /* [retval][out] */ IDOMDocument **result) { return DOMHTMLElement::ownerDocument(result); }
       
  2439     
       
  2440     virtual HRESULT STDMETHODCALLTYPE insertBefore( 
       
  2441         /* [in] */ IDOMNode *newChild,
       
  2442         /* [in] */ IDOMNode *refChild,
       
  2443         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::insertBefore(newChild, refChild, result); }
       
  2444     
       
  2445     virtual HRESULT STDMETHODCALLTYPE replaceChild( 
       
  2446         /* [in] */ IDOMNode *newChild,
       
  2447         /* [in] */ IDOMNode *oldChild,
       
  2448         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::replaceChild(newChild, oldChild, result); }
       
  2449     
       
  2450     virtual HRESULT STDMETHODCALLTYPE removeChild( 
       
  2451         /* [in] */ IDOMNode *oldChild,
       
  2452         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::removeChild(oldChild, result); }
       
  2453     
       
  2454     virtual HRESULT STDMETHODCALLTYPE appendChild( 
       
  2455         /* [in] */ IDOMNode *oldChild,
       
  2456         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::appendChild(oldChild, result); }
       
  2457     
       
  2458     virtual HRESULT STDMETHODCALLTYPE hasChildNodes( 
       
  2459         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasChildNodes(result); }
       
  2460     
       
  2461     virtual HRESULT STDMETHODCALLTYPE cloneNode( 
       
  2462         /* [in] */ BOOL deep,
       
  2463         /* [retval][out] */ IDOMNode **result) { return DOMHTMLElement::cloneNode(deep, result); }
       
  2464     
       
  2465     virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMHTMLElement::normalize(); }
       
  2466     
       
  2467     virtual HRESULT STDMETHODCALLTYPE isSupported( 
       
  2468         /* [in] */ BSTR feature,
       
  2469         /* [in] */ BSTR version,
       
  2470         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::isSupported(feature, version, result); }
       
  2471     
       
  2472     virtual HRESULT STDMETHODCALLTYPE namespaceURI( 
       
  2473         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::namespaceURI(result); }
       
  2474     
       
  2475     virtual HRESULT STDMETHODCALLTYPE prefix( 
       
  2476         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::prefix(result); }
       
  2477     
       
  2478     virtual HRESULT STDMETHODCALLTYPE setPrefix( 
       
  2479         /* [in] */ BSTR prefix) { return DOMHTMLElement::setPrefix(prefix); }
       
  2480     
       
  2481     virtual HRESULT STDMETHODCALLTYPE localName( 
       
  2482         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::localName(result); }
       
  2483     
       
  2484     virtual HRESULT STDMETHODCALLTYPE hasAttributes( 
       
  2485         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributes(result); }
       
  2486 
       
  2487     virtual HRESULT STDMETHODCALLTYPE isSameNode( 
       
  2488         /* [in] */ IDOMNode* other,
       
  2489         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isSameNode(other, result); }
       
  2490     
       
  2491     virtual HRESULT STDMETHODCALLTYPE isEqualNode( 
       
  2492         /* [in] */ IDOMNode* other,
       
  2493         /* [retval][out] */ BOOL* result) { return DOMHTMLElement::isEqualNode(other, result); }
       
  2494     
       
  2495     virtual HRESULT STDMETHODCALLTYPE textContent( 
       
  2496         /* [retval][out] */ BSTR* result) { return DOMHTMLElement::textContent(result); }
       
  2497     
       
  2498     virtual HRESULT STDMETHODCALLTYPE setTextContent( 
       
  2499         /* [in] */ BSTR text) { return DOMHTMLElement::setTextContent(text); }
       
  2500     
       
  2501     // IDOMElement
       
  2502     virtual HRESULT STDMETHODCALLTYPE tagName( 
       
  2503         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::tagName(result); }
       
  2504     
       
  2505     virtual HRESULT STDMETHODCALLTYPE getAttribute( 
       
  2506         /* [in] */ BSTR name,
       
  2507         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttribute(name, result); }
       
  2508     
       
  2509     virtual HRESULT STDMETHODCALLTYPE setAttribute( 
       
  2510         /* [in] */ BSTR name,
       
  2511         /* [in] */ BSTR value) { return DOMHTMLElement::setAttribute(name, value); }
       
  2512     
       
  2513     virtual HRESULT STDMETHODCALLTYPE removeAttribute( 
       
  2514         /* [in] */ BSTR name) { return DOMHTMLElement::removeAttribute(name); }
       
  2515     
       
  2516     virtual HRESULT STDMETHODCALLTYPE getAttributeNode( 
       
  2517         /* [in] */ BSTR name,
       
  2518         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNode(name, result); }
       
  2519     
       
  2520     virtual HRESULT STDMETHODCALLTYPE setAttributeNode( 
       
  2521         /* [in] */ IDOMAttr *newAttr,
       
  2522         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNode(newAttr, result); }
       
  2523     
       
  2524     virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( 
       
  2525         /* [in] */ IDOMAttr *oldAttr,
       
  2526         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::removeAttributeNode(oldAttr, result); }
       
  2527     
       
  2528     virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( 
       
  2529         /* [in] */ BSTR name,
       
  2530         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagName(name, result); }
       
  2531     
       
  2532     virtual HRESULT STDMETHODCALLTYPE getAttributeNS( 
       
  2533         /* [in] */ BSTR namespaceURI,
       
  2534         /* [in] */ BSTR localName,
       
  2535         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::getAttributeNS(namespaceURI, localName, result); }
       
  2536     
       
  2537     virtual HRESULT STDMETHODCALLTYPE setAttributeNS( 
       
  2538         /* [in] */ BSTR namespaceURI,
       
  2539         /* [in] */ BSTR qualifiedName,
       
  2540         /* [in] */ BSTR value) { return DOMHTMLElement::setAttributeNS(namespaceURI, qualifiedName, value); }
       
  2541     
       
  2542     virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( 
       
  2543         /* [in] */ BSTR namespaceURI,
       
  2544         /* [in] */ BSTR localName) { return DOMHTMLElement::removeAttributeNS(namespaceURI, localName); }
       
  2545     
       
  2546     virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( 
       
  2547         /* [in] */ BSTR namespaceURI,
       
  2548         /* [in] */ BSTR localName,
       
  2549         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::getAttributeNodeNS(namespaceURI, localName, result); }
       
  2550     
       
  2551     virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( 
       
  2552         /* [in] */ IDOMAttr *newAttr,
       
  2553         /* [retval][out] */ IDOMAttr **result) { return DOMHTMLElement::setAttributeNodeNS(newAttr, result); }
       
  2554     
       
  2555     virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( 
       
  2556         /* [in] */ BSTR namespaceURI,
       
  2557         /* [in] */ BSTR localName,
       
  2558         /* [retval][out] */ IDOMNodeList **result) { return DOMHTMLElement::getElementsByTagNameNS(namespaceURI, localName, result); }
       
  2559     
       
  2560     virtual HRESULT STDMETHODCALLTYPE hasAttribute( 
       
  2561         /* [in] */ BSTR name,
       
  2562         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttribute(name, result); }
       
  2563     
       
  2564     virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( 
       
  2565         /* [in] */ BSTR namespaceURI,
       
  2566         /* [in] */ BSTR localName,
       
  2567         /* [retval][out] */ BOOL *result) { return DOMHTMLElement::hasAttributeNS(namespaceURI, localName, result); }
       
  2568 
       
  2569     virtual HRESULT STDMETHODCALLTYPE focus( void) { return DOMHTMLElement::focus(); }
       
  2570     
       
  2571     virtual HRESULT STDMETHODCALLTYPE blur( void) { return DOMHTMLElement::blur(); }
       
  2572 
       
  2573     // IDOMHTMLElement
       
  2574     virtual HRESULT STDMETHODCALLTYPE idName( 
       
  2575         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::idName(result); }
       
  2576     
       
  2577     virtual HRESULT STDMETHODCALLTYPE setIdName( 
       
  2578         /* [in] */ BSTR idName) { return DOMHTMLElement::setIdName(idName); }
       
  2579     
       
  2580     virtual HRESULT STDMETHODCALLTYPE title( 
       
  2581         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::title(result); }
       
  2582     
       
  2583     virtual HRESULT STDMETHODCALLTYPE setTitle( 
       
  2584         /* [in] */ BSTR title) { return DOMHTMLElement::setTitle(title); }
       
  2585     
       
  2586     virtual HRESULT STDMETHODCALLTYPE lang( 
       
  2587         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::lang(result); }
       
  2588     
       
  2589     virtual HRESULT STDMETHODCALLTYPE setLang( 
       
  2590         /* [in] */ BSTR lang) { return DOMHTMLElement::setLang(lang); }
       
  2591     
       
  2592     virtual HRESULT STDMETHODCALLTYPE dir( 
       
  2593         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::dir(result); }
       
  2594     
       
  2595     virtual HRESULT STDMETHODCALLTYPE setDir( 
       
  2596         /* [in] */ BSTR dir) { return DOMHTMLElement::setDir(dir); }
       
  2597     
       
  2598     virtual HRESULT STDMETHODCALLTYPE className( 
       
  2599         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::className(result); }
       
  2600     
       
  2601     virtual HRESULT STDMETHODCALLTYPE setClassName( 
       
  2602         /* [in] */ BSTR className) { return DOMHTMLElement::setClassName(className); }
       
  2603 
       
  2604     virtual HRESULT STDMETHODCALLTYPE innerHTML( 
       
  2605         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerHTML(result); }
       
  2606         
       
  2607     virtual HRESULT STDMETHODCALLTYPE setInnerHTML( 
       
  2608         /* [in] */ BSTR html) { return DOMHTMLElement::setInnerHTML(html); }
       
  2609         
       
  2610     virtual HRESULT STDMETHODCALLTYPE innerText( 
       
  2611         /* [retval][out] */ BSTR *result) { return DOMHTMLElement::innerText(result); }
       
  2612         
       
  2613     virtual HRESULT STDMETHODCALLTYPE setInnerText( 
       
  2614         /* [in] */ BSTR text) { return DOMHTMLElement::setInnerText(text); }
       
  2615 
       
  2616     // IDOMHTMLIFrameElement
       
  2617     virtual HRESULT STDMETHODCALLTYPE contentFrame( 
       
  2618         /* [retval][out] */ IWebFrame **result);
       
  2619 };
       
  2620 
       
  2621 #endif