/* * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef DO_NO_IMPORTS import "oaidl.idl"; import "ocidl.idl"; import "DOMCore.idl"; import "DOMWindow.idl"; #endif interface IDOMEvent; interface IDOMEventException; interface IDOMEventTarget; interface IDOMKeyboardEvent; interface IDOMMouseEvent; interface IDOMMutationEvent; interface IDOMNode; interface IDOMOverflowEvent; interface IDOMUIEvent; interface IDOMWheelEvent; interface IDOMWindow; typedef long long DOMTimeStamp; [ object, oleautomation, uuid(7f8a0a96-f864-44fb-87fb-c5f03666e8e6), pointer_default(unique) ] interface IDOMEventListener : IDOMObject { //void handleEvent(in Event evt); HRESULT handleEvent([in] IDOMEvent* evt); } [ object, oleautomation, uuid(62343a9e-a779-4e91-818a-14fc178cf4c2), pointer_default(unique) ] interface IDOMEvent : IDOMObject { // DOM PhaseType const unsigned short DOMEVENT_CAPTURING_PHASE = 1; const unsigned short DOMEVENT_AT_TARGET = 2; const unsigned short DOMEVENT_BUBBLING_PHASE = 3; // Reverse-engineered from Netscape const unsigned short DOMEVENT_MOUSEDOWN = 1; const unsigned short DOMEVENT_MOUSEUP = 2; const unsigned short DOMEVENT_MOUSEOVER = 4; const unsigned short DOMEVENT_MOUSEOUT = 8; const unsigned short DOMEVENT_MOUSEMOVE = 16; const unsigned short DOMEVENT_MOUSEDRAG = 32; const unsigned short DOMEVENT_CLICK = 64; const unsigned short DOMEVENT_DBLCLICK = 128; const unsigned short DOMEVENT_KEYDOWN = 256; const unsigned short DOMEVENT_KEYUP = 512; const unsigned short DOMEVENT_KEYPRESS = 1024; const unsigned short DOMEVENT_DRAGDROP = 2048; const unsigned short DOMEVENT_FOCUS = 4096; const unsigned short DOMEVENT_BLUR = 8192; const unsigned short DOMEVENT_SELECT = 16384; const unsigned short DOMEVENT_CHANGE = 32768; //readonly attribute DOMString type; HRESULT type([out, retval] BSTR* result); //readonly attribute EventTarget target; HRESULT target([out, retval] IDOMEventTarget** result); //readonly attribute EventTarget currentTarget; HRESULT currentTarget([out, retval] IDOMEventTarget** result); //readonly attribute unsigned short eventPhase; HRESULT eventPhase([out, retval] unsigned short* result); //readonly attribute boolean bubbles; HRESULT bubbles([out, retval] BOOL* result); //readonly attribute boolean cancelable; HRESULT cancelable([out, retval] BOOL* result); //readonly attribute DOMTimeStamp timeStamp; HRESULT timeStamp([out, retval] DOMTimeStamp* result); //void stopPropagation(); HRESULT stopPropagation(); //void preventDefault(); HRESULT preventDefault(); //[OldStyleObjC] void initEvent(in DOMString eventTypeArg, // in boolean canBubbleArg, // in boolean cancelableArg); HRESULT initEvent([in] BSTR eventTypeArg, [in] BOOL canBubbleArg, [in] BOOL cancelableArg); } [ object, oleautomation, uuid(c7cf7d84-d755-40bc-b664-84bc79eff709), pointer_default(unique) ] interface IDOMEventTarget : IUnknown { //void addEventListener(in DOMString type, // in EventListener listener, // in boolean useCapture); HRESULT addEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture); //void removeEventListener(in DOMString type, // in EventListener listener, // in boolean useCapture); HRESULT removeEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture); //boolean dispatchEvent(in Event event) HRESULT dispatchEvent([in] IDOMEvent* event, [out, retval] BOOL* result); } [ object, oleautomation, uuid(55AAF192-68CD-409f-A551-89710DC7240A), pointer_default(unique) ] interface IDOMDocumentEvent : IUnknown { //Event createEvent(in DOMString eventType) // raises(DOMException); HRESULT createEvent([in] BSTR eventType, [out, retval] IDOMEvent** result); } [ object, oleautomation, uuid(76bc4e46-67df-40d3-89b0-a94dcc2ed507), pointer_default(unique) ] interface IDOMKeyboardEvent : IDOMUIEvent { // KeyLocationCode const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_STANDARD = 0x00; const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_LEFT = 0x01; const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_RIGHT = 0x02; const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_NUMPAD = 0x03; //readonly attribute DOMString keyIdentifier; HRESULT keyIdentifier([out, retval] BSTR* result); //readonly attribute unsigned long keyLocation; HRESULT keyLocation([out, retval] unsigned long* result); //readonly attribute boolean ctrlKey; HRESULT ctrlKey([out, retval] BOOL* result); //readonly attribute boolean shiftKey; HRESULT shiftKey([out, retval] BOOL* result); //readonly attribute boolean altKey; HRESULT altKey([out, retval] BOOL* result); //readonly attribute boolean metaKey; HRESULT metaKey([out, retval] BOOL* result); //readonly attribute boolean altGraphKey; HRESULT altGraphKey([out, retval] BOOL* result); //boolean getModifierState(in DOMString keyIdentifierArg); HRESULT getModifierState([in] BSTR keyIdentifierArg, [out, retval] BOOL* result); // FIXME: this does not match the version in the DOM spec. //void initKeyboardEvent(in AtomicString type, // in boolean canBubble, // in boolean cancelable, // in DOMWindow view, // in DOMString keyIdentifier, // in unsigned long keyLocation, // in boolean ctrlKey, // in boolean altKey, // in boolean shiftKey, // in boolean metaKey, // in boolean altGraphKey); HRESULT initKeyboardEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] BSTR keyIdentifier, [in] unsigned long keyLocation, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey, [in] BOOL graphKey); // WebKit Extensions //readonly attribute long keyCode; //HRESULT keyCode([out, retval] long* result); //readonly attribute long charCode; //HRESULT charCode([out, retval] long* result); //void initKeyboardEvent(in AtomicString type, // in boolean canBubble, // in boolean cancelable, // in DOMWindow view, // in DOMString keyIdentifier, // in unsigned long keyLocation, // in boolean ctrlKey, // in boolean altKey, // in boolean shiftKey, // in boolean metaKey); } [ object, oleautomation, uuid(bdd97151-5f6a-4ba4-a902-9b008392eb54), pointer_default(unique) ] interface IDOMMouseEvent : IDOMUIEvent { //readonly attribute long screenX; HRESULT screenX([out, retval] long* result); //readonly attribute long screenY; HRESULT screenY([out, retval] long* result); //readonly attribute long clientX; HRESULT clientX([out, retval] long* result); //readonly attribute long clientY; HRESULT clientY([out, retval] long* result); //readonly attribute boolean ctrlKey; HRESULT ctrlKey([out, retval] BOOL* result); //readonly attribute boolean shiftKey; HRESULT shiftKey([out, retval] BOOL* result); //readonly attribute boolean altKey; HRESULT altKey([out, retval] BOOL* result); //readonly attribute boolean metaKey; HRESULT metaKey([out, retval] BOOL* result); //readonly attribute unsigned short button; HRESULT button([out, retval] unsigned short* result); //readonly attribute EventTarget relatedTarget; HRESULT relatedTarget([out, retval] IDOMEventTarget** result); //[OldStyleObjC] void initMouseEvent(in AtomicString type, // in boolean canBubble, // in boolean cancelable, // in DOMWindow view, // in long detail, // in long screenX, // in long screenY, // in long clientX, // in long clientY, // in boolean ctrlKey, // in boolean altKey, // in boolean shiftKey, // in boolean metaKey, // in unsigned short button, // in EventTarget relatedTarget); HRESULT initMouseEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] long detail, [in] long screenX, [in] long screenY, [in] long clientX, [in] long clientY, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey, [in] unsigned short button, [in] IDOMEventTarget* relatedTarget); // extensions //readonly attribute long offsetX; HRESULT offsetX([out, retval] long* result); //readonly attribute long offsetY; HRESULT offsetY([out, retval] long* result); //readonly attribute long x; HRESULT x([out, retval] long* result); //readonly attribute long y; HRESULT y([out, retval] long* result); //readonly attribute Node fromElement; HRESULT fromElement([out, retval] IDOMNode** result); //readonly attribute Node toElement; HRESULT toElement([out, retval] IDOMNode** result); } [ object, oleautomation, uuid(6345d228-ea67-48ee-93c8-ff6e9c6356e9), pointer_default(unique) ] interface IDOMMutationEvent : IDOMEvent { // attrChangeType const unsigned short DOMMUTATIONEVENT_MODIFICATION = 1; const unsigned short DOMMUTATIONEVENT_ADDITION = 2; const unsigned short DOMMUTATIONEVENT_REMOVAL = 3; //readonly attribute Node relatedNode; HRESULT relatedNode([out, retval] IDOMNode** result); //readonly attribute DOMString prevValue; HRESULT prevValue([out, retval] BSTR* result); //readonly attribute DOMString newValue; HRESULT newValue([out, retval] BSTR* result); //readonly attribute DOMString attrName; HRESULT attrName([out, retval] BSTR* result); //readonly attribute unsigned short attrChange; HRESULT attrChange([out, retval] unsigned short* result); //[OldStyleObjC] void initMutationEvent(in AtomicString type, // in boolean canBubble, // in boolean cancelable, // in Node relatedNode, // in DOMString prevValue, // in DOMString newValue, // in DOMString attrName, // in unsigned short attrChange); HRESULT initMutationEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMNode* relatedNode, [in] BSTR prevValue, [in] BSTR newValue, [in] BSTR attrName, [in] unsigned short attrChange); } [ object, oleautomation, uuid(6048369e-e444-401b-950d-c9daef9384d2), pointer_default(unique) ] interface IDOMOverflowEvent : IDOMEvent { const unsigned short DOMOVERFLOWEVENT_HORIZONTAL = 0; const unsigned short DOMOVERFLOWEVENT_VERTICAL = 1; const unsigned short DOMOVERFLOWEVENT_BOTH = 2; //readonly attribute unsigned short orient; HRESULT orient([out, retval] unsigned short* result); //readonly attribute boolean horizontalOverflow; HRESULT horizontalOverflow([out, retval] BOOL* result); //readonly attribute boolean verticalOverflow; HRESULT verticalOverflow([out, retval] BOOL* result); } [ object, oleautomation, uuid(b928261d-7c9e-4156-af71-6f698bd97788), pointer_default(unique) ] interface IDOMUIEvent : IDOMEvent { //readonly attribute DOMWindow view; HRESULT view([out, retval] IDOMWindow** result); //readonly attribute long detail; HRESULT detail([out, retval] long* result); //[OldStyleObjC] void initUIEvent(in AtomicString type, // in boolean canBubble, // in boolean cancelable, // in DOMWindow view, // in long detail); HRESULT initUIEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] long detail); // extentsions //readonly attribute long keyCode; HRESULT keyCode([out, retval] long* result); //readonly attribute long charCode; HRESULT charCode([out, retval] long* result); //readonly attribute long layerX; HRESULT layerX([out, retval] long* result); //readonly attribute long layerY; HRESULT layerY([out, retval] long* result); //readonly attribute long pageX; HRESULT pageX([out, retval] long* result); //readonly attribute long pageY; HRESULT pageY([out, retval] long* result); //readonly attribute long which; HRESULT which([out, retval] long* result); } [ object, oleautomation, uuid(5404e6d9-a2bb-4c74-8070-ce9d2599bd00), pointer_default(unique) ] interface IDOMWheelEvent : IDOMUIEvent { //readonly attribute long screenX; HRESULT screenX([out, retval] long* result); //readonly attribute long screenY; HRESULT screenY([out, retval] long* result); //readonly attribute long clientX; HRESULT clientX([out, retval] long* result); //readonly attribute long clientY; HRESULT clientY([out, retval] long* result); //readonly attribute boolean ctrlKey; HRESULT ctrlKey([out, retval] BOOL* result); //readonly attribute boolean shiftKey; HRESULT shiftKey([out, retval] BOOL* result); //readonly attribute boolean altKey; HRESULT altKey([out, retval] BOOL* result); //readonly attribute boolean metaKey; HRESULT metaKey([out, retval] BOOL* result); //readonly attribute long wheelDelta; HRESULT wheelDelta([out, retval] long* result); //readonly attribute long wheelDeltaX; HRESULT wheelDeltaX([out, retval] long* result); //readonly attribute long wheelDeltaY; HRESULT wheelDeltaY([out, retval] long* result); // WebKit Extensions //readonly attribute long offsetX; HRESULT offsetX([out, retval] long* result); //readonly attribute long offsetY; HRESULT offsetY([out, retval] long* result); //readonly attribute long x; HRESULT x([out, retval] long* result); //readonly attribute long y; HRESULT y([out, retval] long* result); //readonly attribute boolean isHorizontal; HRESULT isHorizontal([out, retval] BOOL* result); //void initWheelEvent(in long wheelDeltaX, // in long wheelDeltaY, // in DOMWindow view, // in long screenX, // in long screenY, // in long clientX, // in long clientY, // in boolean ctrlKey, // in boolean altKey, // in boolean shiftKey, // in boolean metaKey); HRESULT initWheelEvent([in] long wheelDeltaX, [in] long wheelDeltaY, [in] IDOMWindow* view, [in] long screenX, [in] long screenY, [in] long clientX, [in] long clientY, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey); }