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#include "config.h" 27#include "WebKitDLL.h" 28#include <initguid.h> 29#include "DOMEventsClasses.h" 30 31#include <WebCore/COMPtr.h> 32#include <WebCore/DOMWindow.h> 33#include <WebCore/Event.h> 34#include <WebCore/EventNames.h> 35#include <WebCore/KeyboardEvent.h> 36#include <WebCore/MouseEvent.h> 37#include <WebCore/ScriptExecutionContext.h> 38 39// DOMEventListener ----------------------------------------------------------- 40 41HRESULT STDMETHODCALLTYPE DOMEventListener::QueryInterface(const IID &riid, void** ppvObject) 42{ 43 *ppvObject = 0; 44 if (IsEqualGUID(riid, IID_IDOMEventListener)) 45 *ppvObject = static_cast<IDOMEventListener*>(this); 46 else 47 return DOMObject::QueryInterface(riid, ppvObject); 48 49 AddRef(); 50 return S_OK; 51} 52 53HRESULT STDMETHODCALLTYPE DOMEventListener::handleEvent( 54 /* [in] */ IDOMEvent* /*evt*/) 55{ 56 return E_NOTIMPL; 57} 58 59WebEventListener::WebEventListener(IDOMEventListener* i) 60 : EventListener(CPPEventListenerType) 61 , m_iDOMEventListener(i) 62{ 63 m_iDOMEventListener->AddRef(); 64} 65 66WebEventListener::~WebEventListener() 67{ 68 m_iDOMEventListener->Release(); 69} 70 71bool WebEventListener::operator==(const WebCore::EventListener& other) 72{ 73 return (other.type() == CPPEventListenerType 74 && reinterpret_cast<const WebEventListener*>(&other)->m_iDOMEventListener == m_iDOMEventListener); 75} 76 77void WebEventListener::handleEvent(WebCore::ScriptExecutionContext* s, WebCore::Event* e) 78{ 79 RefPtr<WebCore::Event> ePtr(e); 80 COMPtr<IDOMEvent> domEvent = DOMEvent::createInstance(ePtr); 81 m_iDOMEventListener->handleEvent(domEvent.get()); 82} 83 84PassRefPtr<WebEventListener> WebEventListener::create(IDOMEventListener* d) 85{ 86 return adoptRef(new WebEventListener(d)); 87} 88 89// DOMEvent ------------------------------------------------------------------- 90 91DOMEvent::DOMEvent(PassRefPtr<WebCore::Event> e) 92: m_event(0) 93{ 94 m_event = e; 95} 96 97DOMEvent::~DOMEvent() 98{ 99} 100 101IDOMEvent* DOMEvent::createInstance(PassRefPtr<WebCore::Event> e) 102{ 103 if (!e) 104 return 0; 105 106 HRESULT hr; 107 IDOMEvent* domEvent = 0; 108 109 if (e->isKeyboardEvent()) { 110 DOMKeyboardEvent* newEvent = new DOMKeyboardEvent(e); 111 hr = newEvent->QueryInterface(IID_IDOMKeyboardEvent, (void**)&domEvent); 112 } else if (e->isMouseEvent()) { 113 DOMMouseEvent* newEvent = new DOMMouseEvent(e); 114 hr = newEvent->QueryInterface(IID_IDOMMouseEvent, (void**)&domEvent); 115 } else if (e->hasInterface(WebCore::eventNames().interfaceForMutationEvent)) { 116 DOMMutationEvent* newEvent = new DOMMutationEvent(e); 117 hr = newEvent->QueryInterface(IID_IDOMMutationEvent, (void**)&domEvent); 118 } else if (e->hasInterface(WebCore::eventNames().interfaceForOverflowEvent)) { 119 DOMOverflowEvent* newEvent = new DOMOverflowEvent(e); 120 hr = newEvent->QueryInterface(IID_IDOMOverflowEvent, (void**)&domEvent); 121 } else if (e->hasInterface(WebCore::eventNames().interfaceForWheelEvent)) { 122 DOMWheelEvent* newEvent = new DOMWheelEvent(e); 123 hr = newEvent->QueryInterface(IID_IDOMWheelEvent, (void**)&domEvent); 124 } else if (e->isUIEvent()) { 125 DOMUIEvent* newEvent = new DOMUIEvent(e); 126 hr = newEvent->QueryInterface(IID_IDOMUIEvent, (void**)&domEvent); 127 } else { 128 DOMEvent* newEvent = new DOMEvent(e); 129 hr = newEvent->QueryInterface(IID_IDOMEvent, (void**)&domEvent); 130 } 131 132 if (FAILED(hr)) 133 return 0; 134 135 return domEvent; 136} 137 138HRESULT STDMETHODCALLTYPE DOMEvent::QueryInterface(const IID &riid, void** ppvObject) 139{ 140 *ppvObject = 0; 141 if (IsEqualGUID(riid, IID_DOMEvent)) 142 *ppvObject = this; 143 else if (IsEqualGUID(riid, IID_IDOMEvent)) 144 *ppvObject = static_cast<IDOMEvent*>(this); 145 else 146 return DOMObject::QueryInterface(riid, ppvObject); 147 148 AddRef(); 149 return S_OK; 150} 151 152HRESULT STDMETHODCALLTYPE DOMEvent::type( 153 /* [retval][out] */ BSTR* /*result*/) 154{ 155 return E_NOTIMPL; 156} 157 158HRESULT STDMETHODCALLTYPE DOMEvent::target( 159 /* [retval][out] */ IDOMEventTarget** /*result*/) 160{ 161 return E_NOTIMPL; 162} 163 164HRESULT STDMETHODCALLTYPE DOMEvent::currentTarget( 165 /* [retval][out] */ IDOMEventTarget** /*result*/) 166{ 167 return E_NOTIMPL; 168} 169 170HRESULT STDMETHODCALLTYPE DOMEvent::eventPhase( 171 /* [retval][out] */ unsigned short* /*result*/) 172{ 173 return E_NOTIMPL; 174} 175 176HRESULT STDMETHODCALLTYPE DOMEvent::bubbles( 177 /* [retval][out] */ BOOL* /*result*/) 178{ 179 return E_NOTIMPL; 180} 181 182HRESULT STDMETHODCALLTYPE DOMEvent::cancelable( 183 /* [retval][out] */ BOOL* /*result*/) 184{ 185 return E_NOTIMPL; 186} 187 188HRESULT STDMETHODCALLTYPE DOMEvent::timeStamp( 189 /* [retval][out] */ DOMTimeStamp* /*result*/) 190{ 191 return E_NOTIMPL; 192} 193 194HRESULT STDMETHODCALLTYPE DOMEvent::stopPropagation( void) 195{ 196 return E_NOTIMPL; 197} 198 199HRESULT STDMETHODCALLTYPE DOMEvent::preventDefault( void) 200{ 201 return E_NOTIMPL; 202} 203 204HRESULT STDMETHODCALLTYPE DOMEvent::initEvent( 205 /* [in] */ BSTR /*eventTypeArg*/, 206 /* [in] */ BOOL /*canBubbleArg*/, 207 /* [in] */ BOOL /*cancelableArg*/) 208{ 209 return E_NOTIMPL; 210} 211 212// DOMUIEvent ----------------------------------------------------------------- 213 214HRESULT STDMETHODCALLTYPE DOMUIEvent::QueryInterface(REFIID riid, void** ppvObject) 215{ 216 *ppvObject = 0; 217 if (IsEqualGUID(riid, IID_IDOMUIEvent)) 218 *ppvObject = static_cast<IDOMUIEvent*>(this); 219 else 220 return DOMEvent::QueryInterface(riid, ppvObject); 221 222 AddRef(); 223 return S_OK; 224} 225 226HRESULT STDMETHODCALLTYPE DOMUIEvent::view( 227 /* [retval][out] */ IDOMWindow** /*result*/) 228{ 229 return E_NOTIMPL; 230} 231 232HRESULT STDMETHODCALLTYPE DOMUIEvent::detail( 233 /* [retval][out] */ long* /*result*/) 234{ 235 return E_NOTIMPL; 236} 237 238HRESULT STDMETHODCALLTYPE DOMUIEvent::initUIEvent( 239 /* [in] */ BSTR /*type*/, 240 /* [in] */ BOOL /*canBubble*/, 241 /* [in] */ BOOL /*cancelable*/, 242 /* [in] */ IDOMWindow* /*view*/, 243 /* [in] */ long /*detail*/) 244{ 245 return E_NOTIMPL; 246} 247 248HRESULT STDMETHODCALLTYPE DOMUIEvent::keyCode( 249 /* [retval][out] */ long* /*result*/) 250{ 251 return E_NOTIMPL; 252} 253 254HRESULT STDMETHODCALLTYPE DOMUIEvent::charCode( 255 /* [retval][out] */ long* /*result*/) 256{ 257 return E_NOTIMPL; 258} 259 260HRESULT STDMETHODCALLTYPE DOMUIEvent::unused1( 261 /* [retval][out] */ long* /*result*/) 262{ 263 return E_NOTIMPL; 264} 265 266HRESULT STDMETHODCALLTYPE DOMUIEvent::unused2( 267 /* [retval][out] */ long* /*result*/) 268{ 269 return E_NOTIMPL; 270} 271 272HRESULT STDMETHODCALLTYPE DOMUIEvent::pageX( 273 /* [retval][out] */ long* /*result*/) 274{ 275 return E_NOTIMPL; 276} 277 278HRESULT STDMETHODCALLTYPE DOMUIEvent::pageY( 279 /* [retval][out] */ long* /*result*/) 280{ 281 return E_NOTIMPL; 282} 283 284HRESULT STDMETHODCALLTYPE DOMUIEvent::which( 285 /* [retval][out] */ long* /*result*/) 286{ 287 return E_NOTIMPL; 288} 289 290// DOMKeyboardEvent ----------------------------------------------------------- 291 292HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::QueryInterface(REFIID riid, void** ppvObject) 293{ 294 *ppvObject = 0; 295 if (IsEqualGUID(riid, IID_IDOMKeyboardEvent)) 296 *ppvObject = static_cast<IDOMKeyboardEvent*>(this); 297 else 298 return DOMUIEvent::QueryInterface(riid, ppvObject); 299 300 AddRef(); 301 return S_OK; 302} 303 304HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::keyIdentifier( 305 /* [retval][out] */ BSTR* /*result*/) 306{ 307 return E_NOTIMPL; 308} 309 310HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::keyLocation( 311 /* [retval][out] */ unsigned long* /*result*/) 312{ 313 return E_NOTIMPL; 314} 315 316HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::ctrlKey( 317 /* [retval][out] */ BOOL* result) 318{ 319 *result = FALSE; 320 if (!m_event || !m_event->isKeyboardEvent()) 321 return E_FAIL; 322 WebCore::KeyboardEvent* keyEvent = static_cast<WebCore::KeyboardEvent*>(m_event.get()); 323 324 *result = keyEvent->ctrlKey() ? TRUE : FALSE; 325 return S_OK; 326} 327 328HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::shiftKey( 329 /* [retval][out] */ BOOL* result) 330{ 331 *result = FALSE; 332 if (!m_event || !m_event->isKeyboardEvent()) 333 return E_FAIL; 334 WebCore::KeyboardEvent* keyEvent = static_cast<WebCore::KeyboardEvent*>(m_event.get()); 335 336 *result = keyEvent->shiftKey() ? TRUE : FALSE; 337 return S_OK; 338} 339 340HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::altKey( 341 /* [retval][out] */ BOOL* result) 342{ 343 *result = FALSE; 344 if (!m_event || !m_event->isKeyboardEvent()) 345 return E_FAIL; 346 WebCore::KeyboardEvent* keyEvent = static_cast<WebCore::KeyboardEvent*>(m_event.get()); 347 348 *result = keyEvent->altKey() ? TRUE : FALSE; 349 return S_OK; 350} 351 352HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::metaKey( 353 /* [retval][out] */ BOOL* result) 354{ 355 *result = FALSE; 356 if (!m_event || !m_event->isKeyboardEvent()) 357 return E_FAIL; 358 WebCore::KeyboardEvent* keyEvent = static_cast<WebCore::KeyboardEvent*>(m_event.get()); 359 360 *result = keyEvent->metaKey() ? TRUE : FALSE; 361 return S_OK; 362} 363 364HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::altGraphKey( 365 /* [retval][out] */ BOOL* result) 366{ 367 *result = FALSE; 368 if (!m_event || !m_event->isKeyboardEvent()) 369 return E_FAIL; 370 WebCore::KeyboardEvent* keyEvent = static_cast<WebCore::KeyboardEvent*>(m_event.get()); 371 372 *result = keyEvent->altGraphKey() ? TRUE : FALSE; 373 return S_OK; 374} 375 376HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::getModifierState( 377 /* [in] */ BSTR /*keyIdentifierArg*/, 378 /* [retval][out] */ BOOL* /*result*/) 379{ 380 return E_NOTIMPL; 381} 382 383HRESULT STDMETHODCALLTYPE DOMKeyboardEvent::initKeyboardEvent( 384 /* [in] */ BSTR /*type*/, 385 /* [in] */ BOOL /*canBubble*/, 386 /* [in] */ BOOL /*cancelable*/, 387 /* [in] */ IDOMWindow* /*view*/, 388 /* [in] */ BSTR /*keyIdentifier*/, 389 /* [in] */ unsigned long /*keyLocation*/, 390 /* [in] */ BOOL /*ctrlKey*/, 391 /* [in] */ BOOL /*altKey*/, 392 /* [in] */ BOOL /*shiftKey*/, 393 /* [in] */ BOOL /*metaKey*/, 394 /* [in] */ BOOL /*graphKey*/) 395{ 396 return E_NOTIMPL; 397} 398 399// DOMMouseEvent -------------------------------------------------------------- 400 401HRESULT STDMETHODCALLTYPE DOMMouseEvent::QueryInterface(REFIID riid, void** ppvObject) 402{ 403 *ppvObject = 0; 404 if (IsEqualGUID(riid, IID_IDOMMouseEvent)) 405 *ppvObject = static_cast<IDOMMouseEvent*>(this); 406 else 407 return DOMUIEvent::QueryInterface(riid, ppvObject); 408 409 AddRef(); 410 return S_OK; 411} 412 413HRESULT STDMETHODCALLTYPE DOMMouseEvent::screenX( 414 /* [retval][out] */ long* /*result*/) 415{ 416 return E_NOTIMPL; 417} 418 419HRESULT STDMETHODCALLTYPE DOMMouseEvent::screenY( 420 /* [retval][out] */ long* /*result*/) 421{ 422 return E_NOTIMPL; 423} 424 425HRESULT STDMETHODCALLTYPE DOMMouseEvent::clientX( 426 /* [retval][out] */ long* /*result*/) 427{ 428 return E_NOTIMPL; 429} 430 431HRESULT STDMETHODCALLTYPE DOMMouseEvent::clientY( 432 /* [retval][out] */ long* /*result*/) 433{ 434 return E_NOTIMPL; 435} 436 437HRESULT STDMETHODCALLTYPE DOMMouseEvent::ctrlKey( 438 /* [retval][out] */ BOOL* result) 439{ 440 *result = FALSE; 441 if (!m_event || !m_event->isMouseEvent()) 442 return E_FAIL; 443 WebCore::MouseEvent* mouseEvent = static_cast<WebCore::MouseEvent*>(m_event.get()); 444 445 *result = mouseEvent->ctrlKey() ? TRUE : FALSE; 446 return S_OK; 447} 448 449HRESULT STDMETHODCALLTYPE DOMMouseEvent::shiftKey( 450 /* [retval][out] */ BOOL* result) 451{ 452 *result = FALSE; 453 if (!m_event || !m_event->isMouseEvent()) 454 return E_FAIL; 455 WebCore::MouseEvent* mouseEvent = static_cast<WebCore::MouseEvent*>(m_event.get()); 456 457 *result = mouseEvent->shiftKey() ? TRUE : FALSE; 458 return S_OK; 459} 460 461HRESULT STDMETHODCALLTYPE DOMMouseEvent::altKey( 462 /* [retval][out] */ BOOL* result) 463{ 464 *result = FALSE; 465 if (!m_event || !m_event->isMouseEvent()) 466 return E_FAIL; 467 WebCore::MouseEvent* mouseEvent = static_cast<WebCore::MouseEvent*>(m_event.get()); 468 469 *result = mouseEvent->altKey() ? TRUE : FALSE; 470 return S_OK; 471} 472 473HRESULT STDMETHODCALLTYPE DOMMouseEvent::metaKey( 474 /* [retval][out] */ BOOL* result) 475{ 476 *result = FALSE; 477 if (!m_event || !m_event->isMouseEvent()) 478 return E_FAIL; 479 WebCore::MouseEvent* mouseEvent = static_cast<WebCore::MouseEvent*>(m_event.get()); 480 481 *result = mouseEvent->metaKey() ? TRUE : FALSE; 482 return S_OK; 483} 484 485HRESULT STDMETHODCALLTYPE DOMMouseEvent::button( 486 /* [retval][out] */ unsigned short* /*result*/) 487{ 488 return E_NOTIMPL; 489} 490 491HRESULT STDMETHODCALLTYPE DOMMouseEvent::relatedTarget( 492 /* [retval][out] */ IDOMEventTarget** /*result*/) 493{ 494 return E_NOTIMPL; 495} 496 497HRESULT STDMETHODCALLTYPE DOMMouseEvent::initMouseEvent( 498 /* [in] */ BSTR /*type*/, 499 /* [in] */ BOOL /*canBubble*/, 500 /* [in] */ BOOL /*cancelable*/, 501 /* [in] */ IDOMWindow* /*view*/, 502 /* [in] */ long /*detail*/, 503 /* [in] */ long /*screenX*/, 504 /* [in] */ long /*screenY*/, 505 /* [in] */ long /*clientX*/, 506 /* [in] */ long /*clientY*/, 507 /* [in] */ BOOL /*ctrlKey*/, 508 /* [in] */ BOOL /*altKey*/, 509 /* [in] */ BOOL /*shiftKey*/, 510 /* [in] */ BOOL /*metaKey*/, 511 /* [in] */ unsigned short /*button*/, 512 /* [in] */ IDOMEventTarget* /*relatedTarget*/) 513{ 514 return E_NOTIMPL; 515} 516 517HRESULT STDMETHODCALLTYPE DOMMouseEvent::offsetX( 518 /* [retval][out] */ long* /*result*/) 519{ 520 return E_NOTIMPL; 521} 522 523HRESULT STDMETHODCALLTYPE DOMMouseEvent::offsetY( 524 /* [retval][out] */ long* /*result*/) 525{ 526 return E_NOTIMPL; 527} 528 529HRESULT STDMETHODCALLTYPE DOMMouseEvent::x( 530 /* [retval][out] */ long* /*result*/) 531{ 532 return E_NOTIMPL; 533} 534 535HRESULT STDMETHODCALLTYPE DOMMouseEvent::y( 536 /* [retval][out] */ long* /*result*/) 537{ 538 return E_NOTIMPL; 539} 540 541HRESULT STDMETHODCALLTYPE DOMMouseEvent::fromElement( 542 /* [retval][out] */ IDOMNode** /*result*/) 543{ 544 return E_NOTIMPL; 545} 546 547HRESULT STDMETHODCALLTYPE DOMMouseEvent::toElement( 548 /* [retval][out] */ IDOMNode** /*result*/) 549{ 550 return E_NOTIMPL; 551} 552 553// DOMMutationEvent ----------------------------------------------------------- 554 555HRESULT STDMETHODCALLTYPE DOMMutationEvent::QueryInterface(REFIID riid, void** ppvObject) 556{ 557 *ppvObject = 0; 558 if (IsEqualGUID(riid, IID_IDOMMutationEvent)) 559 *ppvObject = static_cast<IDOMMutationEvent*>(this); 560 else 561 return DOMEvent::QueryInterface(riid, ppvObject); 562 563 AddRef(); 564 return S_OK; 565} 566 567HRESULT STDMETHODCALLTYPE DOMMutationEvent::relatedNode( 568 /* [retval][out] */ IDOMNode** /*result*/) 569{ 570 return E_NOTIMPL; 571} 572 573HRESULT STDMETHODCALLTYPE DOMMutationEvent::prevValue( 574 /* [retval][out] */ BSTR* /*result*/) 575{ 576 return E_NOTIMPL; 577} 578 579HRESULT STDMETHODCALLTYPE DOMMutationEvent::newValue( 580 /* [retval][out] */ BSTR* /*result*/) 581{ 582 return E_NOTIMPL; 583} 584 585HRESULT STDMETHODCALLTYPE DOMMutationEvent::attrName( 586 /* [retval][out] */ BSTR* /*result*/) 587{ 588 return E_NOTIMPL; 589} 590 591HRESULT STDMETHODCALLTYPE DOMMutationEvent::attrChange( 592 /* [retval][out] */ unsigned short* /*result*/) 593{ 594 return E_NOTIMPL; 595} 596 597HRESULT STDMETHODCALLTYPE DOMMutationEvent::initMutationEvent( 598 /* [in] */ BSTR /*type*/, 599 /* [in] */ BOOL /*canBubble*/, 600 /* [in] */ BOOL /*cancelable*/, 601 /* [in] */ IDOMNode* /*relatedNode*/, 602 /* [in] */ BSTR /*prevValue*/, 603 /* [in] */ BSTR /*newValue*/, 604 /* [in] */ BSTR /*attrName*/, 605 /* [in] */ unsigned short /*attrChange*/) 606{ 607 return E_NOTIMPL; 608} 609 610// DOMOverflowEvent ----------------------------------------------------------- 611 612HRESULT STDMETHODCALLTYPE DOMOverflowEvent::QueryInterface(REFIID riid, void** ppvObject) 613{ 614 *ppvObject = 0; 615 if (IsEqualGUID(riid, IID_IDOMOverflowEvent)) 616 *ppvObject = static_cast<IDOMOverflowEvent*>(this); 617 else 618 return DOMEvent::QueryInterface(riid, ppvObject); 619 620 AddRef(); 621 return S_OK; 622} 623 624HRESULT STDMETHODCALLTYPE DOMOverflowEvent::orient( 625 /* [retval][out] */ unsigned short* /*result*/) 626{ 627 return E_NOTIMPL; 628} 629 630HRESULT STDMETHODCALLTYPE DOMOverflowEvent::horizontalOverflow( 631 /* [retval][out] */ BOOL* /*result*/) 632{ 633 return E_NOTIMPL; 634} 635 636HRESULT STDMETHODCALLTYPE DOMOverflowEvent::verticalOverflow( 637 /* [retval][out] */ BOOL* /*result*/) 638{ 639 return E_NOTIMPL; 640} 641 642// DOMWheelEvent -------------------------------------------------------------- 643 644HRESULT STDMETHODCALLTYPE DOMWheelEvent::QueryInterface(REFIID riid, void** ppvObject) 645{ 646 *ppvObject = 0; 647 if (IsEqualGUID(riid, IID_IDOMWheelEvent)) 648 *ppvObject = static_cast<IDOMWheelEvent*>(this); 649 else 650 return DOMUIEvent::QueryInterface(riid, ppvObject); 651 652 AddRef(); 653 return S_OK; 654} 655 656HRESULT STDMETHODCALLTYPE DOMWheelEvent::screenX( 657 /* [retval][out] */ long* /*result*/) 658{ 659 return E_NOTIMPL; 660} 661 662HRESULT STDMETHODCALLTYPE DOMWheelEvent::screenY( 663 /* [retval][out] */ long* /*result*/) 664{ 665 return E_NOTIMPL; 666} 667 668HRESULT STDMETHODCALLTYPE DOMWheelEvent::clientX( 669 /* [retval][out] */ long* /*result*/) 670{ 671 return E_NOTIMPL; 672} 673 674HRESULT STDMETHODCALLTYPE DOMWheelEvent::clientY( 675 /* [retval][out] */ long* /*result*/) 676{ 677 return E_NOTIMPL; 678} 679 680HRESULT STDMETHODCALLTYPE DOMWheelEvent::ctrlKey( 681 /* [retval][out] */ BOOL* /*result*/) 682{ 683 return E_NOTIMPL; 684} 685 686HRESULT STDMETHODCALLTYPE DOMWheelEvent::shiftKey( 687 /* [retval][out] */ BOOL* /*result*/) 688{ 689 return E_NOTIMPL; 690} 691 692HRESULT STDMETHODCALLTYPE DOMWheelEvent::altKey( 693 /* [retval][out] */ BOOL* /*result*/) 694{ 695 return E_NOTIMPL; 696} 697 698HRESULT STDMETHODCALLTYPE DOMWheelEvent::metaKey( 699 /* [retval][out] */ BOOL* /*result*/) 700{ 701 return E_NOTIMPL; 702} 703 704HRESULT STDMETHODCALLTYPE DOMWheelEvent::wheelDelta( 705 /* [retval][out] */ long* /*result*/) 706{ 707 return E_NOTIMPL; 708} 709 710HRESULT STDMETHODCALLTYPE DOMWheelEvent::wheelDeltaX( 711 /* [retval][out] */ long* /*result*/) 712{ 713 return E_NOTIMPL; 714} 715 716HRESULT STDMETHODCALLTYPE DOMWheelEvent::wheelDeltaY( 717 /* [retval][out] */ long* /*result*/) 718{ 719 return E_NOTIMPL; 720} 721 722HRESULT STDMETHODCALLTYPE DOMWheelEvent::offsetX( 723 /* [retval][out] */ long* /*result*/) 724{ 725 return E_NOTIMPL; 726} 727 728HRESULT STDMETHODCALLTYPE DOMWheelEvent::offsetY( 729 /* [retval][out] */ long* /*result*/) 730{ 731 return E_NOTIMPL; 732} 733 734HRESULT STDMETHODCALLTYPE DOMWheelEvent::x( 735 /* [retval][out] */ long* /*result*/) 736{ 737 return E_NOTIMPL; 738} 739 740HRESULT STDMETHODCALLTYPE DOMWheelEvent::y( 741 /* [retval][out] */ long* /*result*/) 742{ 743 return E_NOTIMPL; 744} 745 746HRESULT STDMETHODCALLTYPE DOMWheelEvent::isHorizontal( 747 /* [retval][out] */ BOOL* /*result*/) 748{ 749 return E_NOTIMPL; 750} 751 752HRESULT STDMETHODCALLTYPE DOMWheelEvent::initWheelEvent( 753 /* [in] */ long /*wheelDeltaX*/, 754 /* [in] */ long /*wheelDeltaY*/, 755 /* [in] */ IDOMWindow* /*view*/, 756 /* [in] */ long /*screenX*/, 757 /* [in] */ long /*screenY*/, 758 /* [in] */ long /*clientX*/, 759 /* [in] */ long /*clientY*/, 760 /* [in] */ BOOL /*ctrlKey*/, 761 /* [in] */ BOOL /*altKey*/, 762 /* [in] */ BOOL /*shiftKey*/, 763 /* [in] */ BOOL /*metaKey*/) 764{ 765 return E_NOTIMPL; 766} 767