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