Home | History | Annotate | Download | only in win
      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 DOMEventsClasses_H
     27 #define DOMEventsClasses_H
     28 
     29 #include "WebKit.h"
     30 #include "DOMCoreClasses.h"
     31 
     32 #include <wtf/PassRefPtr.h>
     33 #include <wtf/RefPtr.h>
     34 
     35 // {AC3D1BC3-4976-4431-8A19-4812C5EFE39C}
     36 DEFINE_GUID(IID_DOMEvent, 0xac3d1bc3, 0x4976, 0x4431, 0x8a, 0x19, 0x48, 0x12, 0xc5, 0xef, 0xe3, 0x9c);
     37 
     38 namespace WebCore {
     39     class Event;
     40 }
     41 
     42 class DOMUIEvent;
     43 
     44 class DOMEventListener : public DOMObject, public IDOMEventListener
     45 {
     46 public:
     47     // IUnknown
     48     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
     49     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
     50     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
     51 
     52     // IWebScriptObject
     53     virtual HRESULT STDMETHODCALLTYPE throwException(
     54         /* [in] */ BSTR exceptionMessage,
     55         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
     56 
     57     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
     58         /* [in] */ BSTR name,
     59         /* [size_is][in] */ const VARIANT args[  ],
     60         /* [in] */ int cArgs,
     61         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
     62 
     63     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
     64         /* [in] */ BSTR script,
     65         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
     66 
     67     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
     68         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
     69 
     70     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
     71         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
     72 
     73     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
     74         /* [in] */ unsigned int index,
     75         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
     76 
     77     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
     78         /* [in] */ unsigned int index,
     79         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
     80 
     81     virtual HRESULT STDMETHODCALLTYPE setException(
     82         /* [in] */ BSTR description) { return DOMObject::setException(description); }
     83 
     84     // IDOMEventListener
     85     virtual HRESULT STDMETHODCALLTYPE handleEvent(
     86         /* [in] */ IDOMEvent* evt);
     87 };
     88 
     89 class DOMEvent : public DOMObject, public IDOMEvent
     90 {
     91 public:
     92     static IDOMEvent* createInstance(PassRefPtr<WebCore::Event> e);
     93 protected:
     94     DOMEvent(PassRefPtr<WebCore::Event> e);
     95     ~DOMEvent();
     96 
     97 public:
     98     // IUnknown
     99     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    100     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
    101     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
    102 
    103     // IWebScriptObject
    104     virtual HRESULT STDMETHODCALLTYPE throwException(
    105         /* [in] */ BSTR exceptionMessage,
    106         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    107 
    108     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    109         /* [in] */ BSTR name,
    110         /* [size_is][in] */ const VARIANT args[  ],
    111         /* [in] */ int cArgs,
    112         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    113 
    114     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    115         /* [in] */ BSTR script,
    116         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    117 
    118     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    119         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    120 
    121     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    122         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    123 
    124     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    125         /* [in] */ unsigned int index,
    126         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    127 
    128     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    129         /* [in] */ unsigned int index,
    130         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    131 
    132     virtual HRESULT STDMETHODCALLTYPE setException(
    133         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    134 
    135     // IDOMEvent
    136     virtual HRESULT STDMETHODCALLTYPE type(
    137         /* [retval][out] */ BSTR* result);
    138 
    139     virtual HRESULT STDMETHODCALLTYPE target(
    140         /* [retval][out] */ IDOMEventTarget** result);
    141 
    142     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    143         /* [retval][out] */ IDOMEventTarget** result);
    144 
    145     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    146         /* [retval][out] */ unsigned short* result);
    147 
    148     virtual HRESULT STDMETHODCALLTYPE bubbles(
    149         /* [retval][out] */ BOOL* result);
    150 
    151     virtual HRESULT STDMETHODCALLTYPE cancelable(
    152         /* [retval][out] */ BOOL* result);
    153 
    154     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    155         /* [retval][out] */ DOMTimeStamp* result);
    156 
    157     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void);
    158 
    159     virtual HRESULT STDMETHODCALLTYPE preventDefault( void);
    160 
    161     virtual HRESULT STDMETHODCALLTYPE initEvent(
    162         /* [in] */ BSTR eventTypeArg,
    163         /* [in] */ BOOL canBubbleArg,
    164         /* [in] */ BOOL cancelableArg);
    165 
    166     // DOMEvent methods
    167     WebCore::Event* coreEvent() { return m_event.get(); }
    168 
    169 protected:
    170     RefPtr<WebCore::Event> m_event;
    171 };
    172 
    173 class DOMUIEvent : public DOMEvent, public IDOMUIEvent
    174 {
    175 public:
    176     DOMUIEvent(PassRefPtr<WebCore::Event> e) : DOMEvent(e) {}
    177 
    178     // IUnknown
    179     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    180     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMEvent::AddRef(); }
    181     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMEvent::Release(); }
    182 
    183     // IWebScriptObject
    184     virtual HRESULT STDMETHODCALLTYPE throwException(
    185         /* [in] */ BSTR exceptionMessage,
    186         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    187 
    188     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    189         /* [in] */ BSTR name,
    190         /* [size_is][in] */ const VARIANT args[  ],
    191         /* [in] */ int cArgs,
    192         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    193 
    194     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    195         /* [in] */ BSTR script,
    196         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    197 
    198     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    199         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    200 
    201     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    202         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    203 
    204     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    205         /* [in] */ unsigned int index,
    206         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    207 
    208     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    209         /* [in] */ unsigned int index,
    210         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    211 
    212     virtual HRESULT STDMETHODCALLTYPE setException(
    213         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    214 
    215     // IDOMEvent
    216     virtual HRESULT STDMETHODCALLTYPE type(
    217         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    218 
    219     virtual HRESULT STDMETHODCALLTYPE target(
    220         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    221 
    222     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    223         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    224 
    225     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    226         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    227 
    228     virtual HRESULT STDMETHODCALLTYPE bubbles(
    229         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    230 
    231     virtual HRESULT STDMETHODCALLTYPE cancelable(
    232         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    233 
    234     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    235         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    236 
    237     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    238 
    239     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    240 
    241     virtual HRESULT STDMETHODCALLTYPE initEvent(
    242         /* [in] */ BSTR eventTypeArg,
    243         /* [in] */ BOOL canBubbleArg,
    244         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    245 
    246     // IDOMUIEvent
    247     virtual HRESULT STDMETHODCALLTYPE view(
    248         /* [retval][out] */ IDOMWindow** result);
    249 
    250     virtual HRESULT STDMETHODCALLTYPE detail(
    251         /* [retval][out] */ long* result);
    252 
    253     virtual HRESULT STDMETHODCALLTYPE initUIEvent(
    254         /* [in] */ BSTR type,
    255         /* [in] */ BOOL canBubble,
    256         /* [in] */ BOOL cancelable,
    257         /* [in] */ IDOMWindow* view,
    258         /* [in] */ long detail);
    259 
    260     virtual HRESULT STDMETHODCALLTYPE keyCode(
    261         /* [retval][out] */ long* result);
    262 
    263     virtual HRESULT STDMETHODCALLTYPE charCode(
    264         /* [retval][out] */ long* result);
    265 
    266     virtual HRESULT STDMETHODCALLTYPE layerX(
    267         /* [retval][out] */ long* result);
    268 
    269     virtual HRESULT STDMETHODCALLTYPE layerY(
    270         /* [retval][out] */ long* result);
    271 
    272     virtual HRESULT STDMETHODCALLTYPE pageX(
    273         /* [retval][out] */ long* result);
    274 
    275     virtual HRESULT STDMETHODCALLTYPE pageY(
    276         /* [retval][out] */ long* result);
    277 
    278     virtual HRESULT STDMETHODCALLTYPE which(
    279         /* [retval][out] */ long* result);
    280 };
    281 
    282 class DOMKeyboardEvent : public DOMUIEvent, public IDOMKeyboardEvent
    283 {
    284 public:
    285     DOMKeyboardEvent(PassRefPtr<WebCore::Event> e) : DOMUIEvent(e) { }
    286 
    287     // IUnknown
    288     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    289     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMUIEvent::AddRef(); }
    290     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMUIEvent::Release(); }
    291 
    292     // IWebScriptObject
    293     virtual HRESULT STDMETHODCALLTYPE throwException(
    294         /* [in] */ BSTR exceptionMessage,
    295         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    296 
    297     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    298         /* [in] */ BSTR name,
    299         /* [size_is][in] */ const VARIANT args[  ],
    300         /* [in] */ int cArgs,
    301         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    302 
    303     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    304         /* [in] */ BSTR script,
    305         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    306 
    307     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    308         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    309 
    310     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    311         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    312 
    313     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    314         /* [in] */ unsigned int index,
    315         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    316 
    317     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    318         /* [in] */ unsigned int index,
    319         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    320 
    321     virtual HRESULT STDMETHODCALLTYPE setException(
    322         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    323 
    324     // IDOMEvent
    325     virtual HRESULT STDMETHODCALLTYPE type(
    326         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    327 
    328     virtual HRESULT STDMETHODCALLTYPE target(
    329         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    330 
    331     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    332         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    333 
    334     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    335         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    336 
    337     virtual HRESULT STDMETHODCALLTYPE bubbles(
    338         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    339 
    340     virtual HRESULT STDMETHODCALLTYPE cancelable(
    341         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    342 
    343     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    344         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    345 
    346     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    347 
    348     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    349 
    350     virtual HRESULT STDMETHODCALLTYPE initEvent(
    351         /* [in] */ BSTR eventTypeArg,
    352         /* [in] */ BOOL canBubbleArg,
    353         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    354 
    355     // IDOMUIEvent
    356     virtual HRESULT STDMETHODCALLTYPE view(
    357         /* [retval][out] */ IDOMWindow** result) { return DOMUIEvent::view(result); }
    358 
    359     virtual HRESULT STDMETHODCALLTYPE detail(
    360         /* [retval][out] */ long* result) { return DOMUIEvent::detail(result); }
    361 
    362     virtual HRESULT STDMETHODCALLTYPE initUIEvent(
    363         /* [in] */ BSTR type,
    364         /* [in] */ BOOL canBubble,
    365         /* [in] */ BOOL cancelable,
    366         /* [in] */ IDOMWindow* view,
    367         /* [in] */ long detail) { return DOMUIEvent::initUIEvent(type, canBubble, cancelable, view, detail); }
    368 
    369     virtual HRESULT STDMETHODCALLTYPE keyCode(
    370         /* [retval][out] */ long* result) { return DOMUIEvent::keyCode(result); }
    371 
    372     virtual HRESULT STDMETHODCALLTYPE charCode(
    373         /* [retval][out] */ long* result) { return DOMUIEvent::charCode(result); }
    374 
    375     virtual HRESULT STDMETHODCALLTYPE layerX(
    376         /* [retval][out] */ long* result) { return DOMUIEvent::layerX(result); }
    377 
    378     virtual HRESULT STDMETHODCALLTYPE layerY(
    379         /* [retval][out] */ long* result) { return DOMUIEvent::layerY(result); }
    380 
    381     virtual HRESULT STDMETHODCALLTYPE pageX(
    382         /* [retval][out] */ long* result) { return DOMUIEvent::pageX(result); }
    383 
    384     virtual HRESULT STDMETHODCALLTYPE pageY(
    385         /* [retval][out] */ long* result) { return DOMUIEvent::pageY(result); }
    386 
    387     virtual HRESULT STDMETHODCALLTYPE which(
    388         /* [retval][out] */ long* result) { return DOMUIEvent::which(result); }
    389 
    390     // IDOMKeyboardEvent
    391     virtual HRESULT STDMETHODCALLTYPE keyIdentifier(
    392         /* [retval][out] */ BSTR* result);
    393 
    394     virtual HRESULT STDMETHODCALLTYPE keyLocation(
    395         /* [retval][out] */ unsigned long* result);
    396 
    397     virtual HRESULT STDMETHODCALLTYPE ctrlKey(
    398         /* [retval][out] */ BOOL* result);
    399 
    400     virtual HRESULT STDMETHODCALLTYPE shiftKey(
    401         /* [retval][out] */ BOOL* result);
    402 
    403     virtual HRESULT STDMETHODCALLTYPE altKey(
    404         /* [retval][out] */ BOOL* result);
    405 
    406     virtual HRESULT STDMETHODCALLTYPE metaKey(
    407         /* [retval][out] */ BOOL* result);
    408 
    409     virtual HRESULT STDMETHODCALLTYPE altGraphKey(
    410         /* [retval][out] */ BOOL* result);
    411 
    412     virtual HRESULT STDMETHODCALLTYPE getModifierState(
    413         /* [in] */ BSTR keyIdentifierArg,
    414         /* [retval][out] */ BOOL* result);
    415 
    416     virtual HRESULT STDMETHODCALLTYPE initKeyboardEvent(
    417         /* [in] */ BSTR type,
    418         /* [in] */ BOOL canBubble,
    419         /* [in] */ BOOL cancelable,
    420         /* [in] */ IDOMWindow* view,
    421         /* [in] */ BSTR keyIdentifier,
    422         /* [in] */ unsigned long keyLocation,
    423         /* [in] */ BOOL ctrlKey,
    424         /* [in] */ BOOL altKey,
    425         /* [in] */ BOOL shiftKey,
    426         /* [in] */ BOOL metaKey,
    427         /* [in] */ BOOL graphKey);
    428 };
    429 
    430 class DOMMouseEvent : public DOMUIEvent, public IDOMMouseEvent
    431 {
    432 public:
    433     DOMMouseEvent(PassRefPtr<WebCore::Event> e) : DOMUIEvent(e) { }
    434 
    435     // IUnknown
    436     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    437     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMUIEvent::AddRef(); }
    438     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMUIEvent::Release(); }
    439 
    440     // IWebScriptObject
    441     virtual HRESULT STDMETHODCALLTYPE throwException(
    442         /* [in] */ BSTR exceptionMessage,
    443         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    444 
    445     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    446         /* [in] */ BSTR name,
    447         /* [size_is][in] */ const VARIANT args[  ],
    448         /* [in] */ int cArgs,
    449         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    450 
    451     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    452         /* [in] */ BSTR script,
    453         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    454 
    455     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    456         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    457 
    458     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    459         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    460 
    461     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    462         /* [in] */ unsigned int index,
    463         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    464 
    465     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    466         /* [in] */ unsigned int index,
    467         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    468 
    469     virtual HRESULT STDMETHODCALLTYPE setException(
    470         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    471 
    472     // IDOMEvent
    473     virtual HRESULT STDMETHODCALLTYPE type(
    474         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    475 
    476     virtual HRESULT STDMETHODCALLTYPE target(
    477         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    478 
    479     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    480         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    481 
    482     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    483         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    484 
    485     virtual HRESULT STDMETHODCALLTYPE bubbles(
    486         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    487 
    488     virtual HRESULT STDMETHODCALLTYPE cancelable(
    489         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    490 
    491     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    492         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    493 
    494     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    495 
    496     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    497 
    498     virtual HRESULT STDMETHODCALLTYPE initEvent(
    499         /* [in] */ BSTR eventTypeArg,
    500         /* [in] */ BOOL canBubbleArg,
    501         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    502 
    503     // IDOMUIEvent
    504     virtual HRESULT STDMETHODCALLTYPE view(
    505         /* [retval][out] */ IDOMWindow** result) { return DOMUIEvent::view(result); }
    506 
    507     virtual HRESULT STDMETHODCALLTYPE detail(
    508         /* [retval][out] */ long* result) { return DOMUIEvent::detail(result); }
    509 
    510     virtual HRESULT STDMETHODCALLTYPE initUIEvent(
    511         /* [in] */ BSTR type,
    512         /* [in] */ BOOL canBubble,
    513         /* [in] */ BOOL cancelable,
    514         /* [in] */ IDOMWindow* view,
    515         /* [in] */ long detail) { return DOMUIEvent::initUIEvent(type, canBubble, cancelable, view, detail); }
    516 
    517     virtual HRESULT STDMETHODCALLTYPE keyCode(
    518         /* [retval][out] */ long* result) { return DOMUIEvent::keyCode(result); }
    519 
    520     virtual HRESULT STDMETHODCALLTYPE charCode(
    521         /* [retval][out] */ long* result) { return DOMUIEvent::charCode(result); }
    522 
    523     virtual HRESULT STDMETHODCALLTYPE layerX(
    524         /* [retval][out] */ long* result) { return DOMUIEvent::layerX(result); }
    525 
    526     virtual HRESULT STDMETHODCALLTYPE layerY(
    527         /* [retval][out] */ long* result) { return DOMUIEvent::layerY(result); }
    528 
    529     virtual HRESULT STDMETHODCALLTYPE pageX(
    530         /* [retval][out] */ long* result) { return DOMUIEvent::pageX(result); }
    531 
    532     virtual HRESULT STDMETHODCALLTYPE pageY(
    533         /* [retval][out] */ long* result) { return DOMUIEvent::pageY(result); }
    534 
    535     virtual HRESULT STDMETHODCALLTYPE which(
    536         /* [retval][out] */ long* result) { return DOMUIEvent::which(result); }
    537 
    538     // IDOMMouseEvent
    539     virtual HRESULT STDMETHODCALLTYPE screenX(
    540         /* [retval][out] */ long* result);
    541 
    542     virtual HRESULT STDMETHODCALLTYPE screenY(
    543         /* [retval][out] */ long* result);
    544 
    545     virtual HRESULT STDMETHODCALLTYPE clientX(
    546         /* [retval][out] */ long* result);
    547 
    548     virtual HRESULT STDMETHODCALLTYPE clientY(
    549         /* [retval][out] */ long* result);
    550 
    551     virtual HRESULT STDMETHODCALLTYPE ctrlKey(
    552         /* [retval][out] */ BOOL* result);
    553 
    554     virtual HRESULT STDMETHODCALLTYPE shiftKey(
    555         /* [retval][out] */ BOOL* result);
    556 
    557     virtual HRESULT STDMETHODCALLTYPE altKey(
    558         /* [retval][out] */ BOOL* result);
    559 
    560     virtual HRESULT STDMETHODCALLTYPE metaKey(
    561         /* [retval][out] */ BOOL* result);
    562 
    563     virtual HRESULT STDMETHODCALLTYPE button(
    564         /* [retval][out] */ unsigned short* result);
    565 
    566     virtual HRESULT STDMETHODCALLTYPE relatedTarget(
    567         /* [retval][out] */ IDOMEventTarget** result);
    568 
    569     virtual HRESULT STDMETHODCALLTYPE initMouseEvent(
    570         /* [in] */ BSTR type,
    571         /* [in] */ BOOL canBubble,
    572         /* [in] */ BOOL cancelable,
    573         /* [in] */ IDOMWindow* view,
    574         /* [in] */ long detail,
    575         /* [in] */ long screenX,
    576         /* [in] */ long screenY,
    577         /* [in] */ long clientX,
    578         /* [in] */ long clientY,
    579         /* [in] */ BOOL ctrlKey,
    580         /* [in] */ BOOL altKey,
    581         /* [in] */ BOOL shiftKey,
    582         /* [in] */ BOOL metaKey,
    583         /* [in] */ unsigned short button,
    584         /* [in] */ IDOMEventTarget* relatedTarget);
    585 
    586     virtual HRESULT STDMETHODCALLTYPE offsetX(
    587         /* [retval][out] */ long* result);
    588 
    589     virtual HRESULT STDMETHODCALLTYPE offsetY(
    590         /* [retval][out] */ long* result);
    591 
    592     virtual HRESULT STDMETHODCALLTYPE x(
    593         /* [retval][out] */ long* result);
    594 
    595     virtual HRESULT STDMETHODCALLTYPE y(
    596         /* [retval][out] */ long* result);
    597 
    598     virtual HRESULT STDMETHODCALLTYPE fromElement(
    599         /* [retval][out] */ IDOMNode** result);
    600 
    601     virtual HRESULT STDMETHODCALLTYPE toElement(
    602         /* [retval][out] */ IDOMNode** result);
    603 };
    604 
    605 class DOMMutationEvent : public DOMEvent, public IDOMMutationEvent
    606 {
    607 public:
    608     DOMMutationEvent(PassRefPtr<WebCore::Event> e) : DOMEvent(e) { }
    609 
    610     // IUnknown
    611     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    612     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMEvent::AddRef(); }
    613     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMEvent::Release(); }
    614 
    615     // IWebScriptObject
    616     virtual HRESULT STDMETHODCALLTYPE throwException(
    617         /* [in] */ BSTR exceptionMessage,
    618         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    619 
    620     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    621         /* [in] */ BSTR name,
    622         /* [size_is][in] */ const VARIANT args[  ],
    623         /* [in] */ int cArgs,
    624         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    625 
    626     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    627         /* [in] */ BSTR script,
    628         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    629 
    630     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    631         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    632 
    633     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    634         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    635 
    636     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    637         /* [in] */ unsigned int index,
    638         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    639 
    640     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    641         /* [in] */ unsigned int index,
    642         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    643 
    644     virtual HRESULT STDMETHODCALLTYPE setException(
    645         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    646 
    647     // IDOMEvent
    648     virtual HRESULT STDMETHODCALLTYPE type(
    649         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    650 
    651     virtual HRESULT STDMETHODCALLTYPE target(
    652         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    653 
    654     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    655         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    656 
    657     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    658         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    659 
    660     virtual HRESULT STDMETHODCALLTYPE bubbles(
    661         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    662 
    663     virtual HRESULT STDMETHODCALLTYPE cancelable(
    664         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    665 
    666     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    667         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    668 
    669     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    670 
    671     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    672 
    673     virtual HRESULT STDMETHODCALLTYPE initEvent(
    674         /* [in] */ BSTR eventTypeArg,
    675         /* [in] */ BOOL canBubbleArg,
    676         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    677 
    678     // IDOMMutationEvent
    679     virtual HRESULT STDMETHODCALLTYPE relatedNode(
    680         /* [retval][out] */ IDOMNode** result);
    681 
    682     virtual HRESULT STDMETHODCALLTYPE prevValue(
    683         /* [retval][out] */ BSTR* result);
    684 
    685     virtual HRESULT STDMETHODCALLTYPE newValue(
    686         /* [retval][out] */ BSTR* result);
    687 
    688     virtual HRESULT STDMETHODCALLTYPE attrName(
    689         /* [retval][out] */ BSTR* result);
    690 
    691     virtual HRESULT STDMETHODCALLTYPE attrChange(
    692         /* [retval][out] */ unsigned short* result);
    693 
    694     virtual HRESULT STDMETHODCALLTYPE initMutationEvent(
    695         /* [in] */ BSTR type,
    696         /* [in] */ BOOL canBubble,
    697         /* [in] */ BOOL cancelable,
    698         /* [in] */ IDOMNode* relatedNode,
    699         /* [in] */ BSTR prevValue,
    700         /* [in] */ BSTR newValue,
    701         /* [in] */ BSTR attrName,
    702         /* [in] */ unsigned short attrChange);
    703 };
    704 
    705 class DOMOverflowEvent : public DOMEvent, public IDOMOverflowEvent
    706 {
    707 public:
    708     DOMOverflowEvent(PassRefPtr<WebCore::Event> e) : DOMEvent(e) { }
    709 
    710     // IUnknown
    711     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    712     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMEvent::AddRef(); }
    713     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMEvent::Release(); }
    714 
    715     // IWebScriptObject
    716     virtual HRESULT STDMETHODCALLTYPE throwException(
    717         /* [in] */ BSTR exceptionMessage,
    718         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    719 
    720     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    721         /* [in] */ BSTR name,
    722         /* [size_is][in] */ const VARIANT args[  ],
    723         /* [in] */ int cArgs,
    724         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    725 
    726     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    727         /* [in] */ BSTR script,
    728         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    729 
    730     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    731         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    732 
    733     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    734         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    735 
    736     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    737         /* [in] */ unsigned int index,
    738         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    739 
    740     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    741         /* [in] */ unsigned int index,
    742         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    743 
    744     virtual HRESULT STDMETHODCALLTYPE setException(
    745         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    746 
    747     // IDOMEvent
    748     virtual HRESULT STDMETHODCALLTYPE type(
    749         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    750 
    751     virtual HRESULT STDMETHODCALLTYPE target(
    752         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    753 
    754     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    755         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    756 
    757     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    758         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    759 
    760     virtual HRESULT STDMETHODCALLTYPE bubbles(
    761         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    762 
    763     virtual HRESULT STDMETHODCALLTYPE cancelable(
    764         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    765 
    766     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    767         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    768 
    769     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    770 
    771     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    772 
    773     virtual HRESULT STDMETHODCALLTYPE initEvent(
    774         /* [in] */ BSTR eventTypeArg,
    775         /* [in] */ BOOL canBubbleArg,
    776         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    777 
    778     // IDOMOverflowEvent
    779     virtual HRESULT STDMETHODCALLTYPE orient(
    780         /* [retval][out] */ unsigned short* result);
    781 
    782     virtual HRESULT STDMETHODCALLTYPE horizontalOverflow(
    783         /* [retval][out] */ BOOL* result);
    784 
    785     virtual HRESULT STDMETHODCALLTYPE verticalOverflow(
    786         /* [retval][out] */ BOOL* result);
    787 };
    788 
    789 class DOMWheelEvent : public DOMUIEvent, public IDOMWheelEvent
    790 {
    791 public:
    792     DOMWheelEvent(PassRefPtr<WebCore::Event> e) : DOMUIEvent(e) { }
    793 
    794     // IUnknown
    795     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
    796     virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMUIEvent::AddRef(); }
    797     virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMUIEvent::Release(); }
    798 
    799     // IWebScriptObject
    800     virtual HRESULT STDMETHODCALLTYPE throwException(
    801         /* [in] */ BSTR exceptionMessage,
    802         /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
    803 
    804     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
    805         /* [in] */ BSTR name,
    806         /* [size_is][in] */ const VARIANT args[  ],
    807         /* [in] */ int cArgs,
    808         /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
    809 
    810     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
    811         /* [in] */ BSTR script,
    812         /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
    813 
    814     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
    815         /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
    816 
    817     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
    818         /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
    819 
    820     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
    821         /* [in] */ unsigned int index,
    822         /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
    823 
    824     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
    825         /* [in] */ unsigned int index,
    826         /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
    827 
    828     virtual HRESULT STDMETHODCALLTYPE setException(
    829         /* [in] */ BSTR description) { return DOMObject::setException(description); }
    830 
    831     // IDOMEvent
    832     virtual HRESULT STDMETHODCALLTYPE type(
    833         /* [retval][out] */ BSTR* result) { return DOMEvent::type(result); }
    834 
    835     virtual HRESULT STDMETHODCALLTYPE target(
    836         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::target(result); }
    837 
    838     virtual HRESULT STDMETHODCALLTYPE currentTarget(
    839         /* [retval][out] */ IDOMEventTarget** result) { return DOMEvent::currentTarget(result); }
    840 
    841     virtual HRESULT STDMETHODCALLTYPE eventPhase(
    842         /* [retval][out] */ unsigned short* result) { return DOMEvent::eventPhase(result); }
    843 
    844     virtual HRESULT STDMETHODCALLTYPE bubbles(
    845         /* [retval][out] */ BOOL* result) { return DOMEvent::bubbles(result); }
    846 
    847     virtual HRESULT STDMETHODCALLTYPE cancelable(
    848         /* [retval][out] */ BOOL* result) { return DOMEvent::cancelable(result); }
    849 
    850     virtual HRESULT STDMETHODCALLTYPE timeStamp(
    851         /* [retval][out] */ DOMTimeStamp* result) { return DOMEvent::timeStamp(result); }
    852 
    853     virtual HRESULT STDMETHODCALLTYPE stopPropagation( void) { return DOMEvent::stopPropagation(); }
    854 
    855     virtual HRESULT STDMETHODCALLTYPE preventDefault( void) { return DOMEvent::preventDefault(); }
    856 
    857     virtual HRESULT STDMETHODCALLTYPE initEvent(
    858         /* [in] */ BSTR eventTypeArg,
    859         /* [in] */ BOOL canBubbleArg,
    860         /* [in] */ BOOL cancelableArg) { return DOMEvent::initEvent(eventTypeArg, canBubbleArg, cancelableArg); }
    861 
    862     // IDOMUIEvent
    863     virtual HRESULT STDMETHODCALLTYPE view(
    864         /* [retval][out] */ IDOMWindow** result) { return DOMUIEvent::view(result); }
    865 
    866     virtual HRESULT STDMETHODCALLTYPE detail(
    867         /* [retval][out] */ long* result) { return DOMUIEvent::detail(result); }
    868 
    869     virtual HRESULT STDMETHODCALLTYPE initUIEvent(
    870         /* [in] */ BSTR type,
    871         /* [in] */ BOOL canBubble,
    872         /* [in] */ BOOL cancelable,
    873         /* [in] */ IDOMWindow* view,
    874         /* [in] */ long detail) { return DOMUIEvent::initUIEvent(type, canBubble, cancelable, view, detail); }
    875 
    876     virtual HRESULT STDMETHODCALLTYPE keyCode(
    877         /* [retval][out] */ long* result) { return DOMUIEvent::keyCode(result); }
    878 
    879     virtual HRESULT STDMETHODCALLTYPE charCode(
    880         /* [retval][out] */ long* result) { return DOMUIEvent::charCode(result); }
    881 
    882     virtual HRESULT STDMETHODCALLTYPE layerX(
    883         /* [retval][out] */ long* result) { return DOMUIEvent::layerX(result); }
    884 
    885     virtual HRESULT STDMETHODCALLTYPE layerY(
    886         /* [retval][out] */ long* result) { return DOMUIEvent::layerY(result); }
    887 
    888     virtual HRESULT STDMETHODCALLTYPE pageX(
    889         /* [retval][out] */ long* result) { return DOMUIEvent::pageX(result); }
    890 
    891     virtual HRESULT STDMETHODCALLTYPE pageY(
    892         /* [retval][out] */ long* result) { return DOMUIEvent::pageY(result); }
    893 
    894     virtual HRESULT STDMETHODCALLTYPE which(
    895         /* [retval][out] */ long* result) { return DOMUIEvent::which(result); }
    896 
    897     // IDOMWheelEvent
    898     virtual HRESULT STDMETHODCALLTYPE screenX(
    899         /* [retval][out] */ long* result);
    900 
    901     virtual HRESULT STDMETHODCALLTYPE screenY(
    902         /* [retval][out] */ long* result);
    903 
    904     virtual HRESULT STDMETHODCALLTYPE clientX(
    905         /* [retval][out] */ long* result);
    906 
    907     virtual HRESULT STDMETHODCALLTYPE clientY(
    908         /* [retval][out] */ long* result);
    909 
    910     virtual HRESULT STDMETHODCALLTYPE ctrlKey(
    911         /* [retval][out] */ BOOL* result);
    912 
    913     virtual HRESULT STDMETHODCALLTYPE shiftKey(
    914         /* [retval][out] */ BOOL* result);
    915 
    916     virtual HRESULT STDMETHODCALLTYPE altKey(
    917         /* [retval][out] */ BOOL* result);
    918 
    919     virtual HRESULT STDMETHODCALLTYPE metaKey(
    920         /* [retval][out] */ BOOL* result);
    921 
    922     virtual HRESULT STDMETHODCALLTYPE wheelDelta(
    923         /* [retval][out] */ long* result);
    924 
    925     virtual HRESULT STDMETHODCALLTYPE wheelDeltaX(
    926         /* [retval][out] */ long* result);
    927 
    928     virtual HRESULT STDMETHODCALLTYPE wheelDeltaY(
    929         /* [retval][out] */ long* result);
    930 
    931     virtual HRESULT STDMETHODCALLTYPE offsetX(
    932         /* [retval][out] */ long* result);
    933 
    934     virtual HRESULT STDMETHODCALLTYPE offsetY(
    935         /* [retval][out] */ long* result);
    936 
    937     virtual HRESULT STDMETHODCALLTYPE x(
    938         /* [retval][out] */ long* result);
    939 
    940     virtual HRESULT STDMETHODCALLTYPE y(
    941         /* [retval][out] */ long* result);
    942 
    943     virtual HRESULT STDMETHODCALLTYPE isHorizontal(
    944         /* [retval][out] */ BOOL* result);
    945 
    946     virtual HRESULT STDMETHODCALLTYPE initWheelEvent(
    947         /* [in] */ long wheelDeltaX,
    948         /* [in] */ long wheelDeltaY,
    949         /* [in] */ IDOMWindow* view,
    950         /* [in] */ long screenX,
    951         /* [in] */ long screenY,
    952         /* [in] */ long clientX,
    953         /* [in] */ long clientY,
    954         /* [in] */ BOOL ctrlKey,
    955         /* [in] */ BOOL altKey,
    956         /* [in] */ BOOL shiftKey,
    957         /* [in] */ BOOL metaKey);
    958 };
    959 
    960 #endif
    961