|
1 /* |
|
2 * Copyright (C) 2006, 2007, 2008 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 DO_NO_IMPORTS |
|
27 import "oaidl.idl"; |
|
28 import "ocidl.idl"; |
|
29 import "DOMCore.idl"; |
|
30 import "DOMWindow.idl"; |
|
31 #endif |
|
32 |
|
33 interface IDOMEvent; |
|
34 interface IDOMEventException; |
|
35 interface IDOMEventTarget; |
|
36 interface IDOMKeyboardEvent; |
|
37 interface IDOMMouseEvent; |
|
38 interface IDOMMutationEvent; |
|
39 interface IDOMNode; |
|
40 interface IDOMOverflowEvent; |
|
41 interface IDOMUIEvent; |
|
42 interface IDOMWheelEvent; |
|
43 interface IDOMWindow; |
|
44 |
|
45 typedef long long DOMTimeStamp; |
|
46 |
|
47 [ |
|
48 object, |
|
49 oleautomation, |
|
50 uuid(7f8a0a96-f864-44fb-87fb-c5f03666e8e6), |
|
51 pointer_default(unique) |
|
52 ] |
|
53 interface IDOMEventListener : IDOMObject |
|
54 { |
|
55 //void handleEvent(in Event evt); |
|
56 HRESULT handleEvent([in] IDOMEvent* evt); |
|
57 } |
|
58 |
|
59 [ |
|
60 object, |
|
61 oleautomation, |
|
62 uuid(62343a9e-a779-4e91-818a-14fc178cf4c2), |
|
63 pointer_default(unique) |
|
64 ] |
|
65 interface IDOMEvent : IDOMObject |
|
66 { |
|
67 // DOM PhaseType |
|
68 const unsigned short DOMEVENT_CAPTURING_PHASE = 1; |
|
69 const unsigned short DOMEVENT_AT_TARGET = 2; |
|
70 const unsigned short DOMEVENT_BUBBLING_PHASE = 3; |
|
71 |
|
72 // Reverse-engineered from Netscape |
|
73 const unsigned short DOMEVENT_MOUSEDOWN = 1; |
|
74 const unsigned short DOMEVENT_MOUSEUP = 2; |
|
75 const unsigned short DOMEVENT_MOUSEOVER = 4; |
|
76 const unsigned short DOMEVENT_MOUSEOUT = 8; |
|
77 const unsigned short DOMEVENT_MOUSEMOVE = 16; |
|
78 const unsigned short DOMEVENT_MOUSEDRAG = 32; |
|
79 const unsigned short DOMEVENT_CLICK = 64; |
|
80 const unsigned short DOMEVENT_DBLCLICK = 128; |
|
81 const unsigned short DOMEVENT_KEYDOWN = 256; |
|
82 const unsigned short DOMEVENT_KEYUP = 512; |
|
83 const unsigned short DOMEVENT_KEYPRESS = 1024; |
|
84 const unsigned short DOMEVENT_DRAGDROP = 2048; |
|
85 const unsigned short DOMEVENT_FOCUS = 4096; |
|
86 const unsigned short DOMEVENT_BLUR = 8192; |
|
87 const unsigned short DOMEVENT_SELECT = 16384; |
|
88 const unsigned short DOMEVENT_CHANGE = 32768; |
|
89 |
|
90 //readonly attribute DOMString type; |
|
91 HRESULT type([out, retval] BSTR* result); |
|
92 |
|
93 //readonly attribute EventTarget target; |
|
94 HRESULT target([out, retval] IDOMEventTarget** result); |
|
95 |
|
96 //readonly attribute EventTarget currentTarget; |
|
97 HRESULT currentTarget([out, retval] IDOMEventTarget** result); |
|
98 |
|
99 //readonly attribute unsigned short eventPhase; |
|
100 HRESULT eventPhase([out, retval] unsigned short* result); |
|
101 |
|
102 //readonly attribute boolean bubbles; |
|
103 HRESULT bubbles([out, retval] BOOL* result); |
|
104 |
|
105 //readonly attribute boolean cancelable; |
|
106 HRESULT cancelable([out, retval] BOOL* result); |
|
107 |
|
108 //readonly attribute DOMTimeStamp timeStamp; |
|
109 HRESULT timeStamp([out, retval] DOMTimeStamp* result); |
|
110 |
|
111 //void stopPropagation(); |
|
112 HRESULT stopPropagation(); |
|
113 |
|
114 //void preventDefault(); |
|
115 HRESULT preventDefault(); |
|
116 |
|
117 //[OldStyleObjC] void initEvent(in DOMString eventTypeArg, |
|
118 // in boolean canBubbleArg, |
|
119 // in boolean cancelableArg); |
|
120 HRESULT initEvent([in] BSTR eventTypeArg, [in] BOOL canBubbleArg, [in] BOOL cancelableArg); |
|
121 } |
|
122 |
|
123 [ |
|
124 object, |
|
125 oleautomation, |
|
126 uuid(c7cf7d84-d755-40bc-b664-84bc79eff709), |
|
127 pointer_default(unique) |
|
128 ] |
|
129 interface IDOMEventTarget : IUnknown |
|
130 { |
|
131 //void addEventListener(in DOMString type, |
|
132 // in EventListener listener, |
|
133 // in boolean useCapture); |
|
134 HRESULT addEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture); |
|
135 |
|
136 //void removeEventListener(in DOMString type, |
|
137 // in EventListener listener, |
|
138 // in boolean useCapture); |
|
139 HRESULT removeEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture); |
|
140 |
|
141 //boolean dispatchEvent(in Event event) |
|
142 HRESULT dispatchEvent([in] IDOMEvent* event, [out, retval] BOOL* result); |
|
143 } |
|
144 |
|
145 [ |
|
146 object, |
|
147 oleautomation, |
|
148 uuid(55AAF192-68CD-409f-A551-89710DC7240A), |
|
149 pointer_default(unique) |
|
150 ] |
|
151 interface IDOMDocumentEvent : IUnknown |
|
152 { |
|
153 //Event createEvent(in DOMString eventType) |
|
154 // raises(DOMException); |
|
155 HRESULT createEvent([in] BSTR eventType, [out, retval] IDOMEvent** result); |
|
156 } |
|
157 |
|
158 [ |
|
159 object, |
|
160 oleautomation, |
|
161 uuid(76bc4e46-67df-40d3-89b0-a94dcc2ed507), |
|
162 pointer_default(unique) |
|
163 ] |
|
164 interface IDOMKeyboardEvent : IDOMUIEvent |
|
165 { |
|
166 // KeyLocationCode |
|
167 const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_STANDARD = 0x00; |
|
168 const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_LEFT = 0x01; |
|
169 const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_RIGHT = 0x02; |
|
170 const unsigned long DOMKEYBOARDEVENT_KEY_LOCATION_NUMPAD = 0x03; |
|
171 |
|
172 //readonly attribute DOMString keyIdentifier; |
|
173 HRESULT keyIdentifier([out, retval] BSTR* result); |
|
174 |
|
175 //readonly attribute unsigned long keyLocation; |
|
176 HRESULT keyLocation([out, retval] unsigned long* result); |
|
177 |
|
178 //readonly attribute boolean ctrlKey; |
|
179 HRESULT ctrlKey([out, retval] BOOL* result); |
|
180 |
|
181 //readonly attribute boolean shiftKey; |
|
182 HRESULT shiftKey([out, retval] BOOL* result); |
|
183 |
|
184 //readonly attribute boolean altKey; |
|
185 HRESULT altKey([out, retval] BOOL* result); |
|
186 |
|
187 //readonly attribute boolean metaKey; |
|
188 HRESULT metaKey([out, retval] BOOL* result); |
|
189 |
|
190 //readonly attribute boolean altGraphKey; |
|
191 HRESULT altGraphKey([out, retval] BOOL* result); |
|
192 |
|
193 //boolean getModifierState(in DOMString keyIdentifierArg); |
|
194 HRESULT getModifierState([in] BSTR keyIdentifierArg, [out, retval] BOOL* result); |
|
195 |
|
196 // FIXME: this does not match the version in the DOM spec. |
|
197 //void initKeyboardEvent(in AtomicString type, |
|
198 // in boolean canBubble, |
|
199 // in boolean cancelable, |
|
200 // in DOMWindow view, |
|
201 // in DOMString keyIdentifier, |
|
202 // in unsigned long keyLocation, |
|
203 // in boolean ctrlKey, |
|
204 // in boolean altKey, |
|
205 // in boolean shiftKey, |
|
206 // in boolean metaKey, |
|
207 // in boolean altGraphKey); |
|
208 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); |
|
209 |
|
210 // WebKit Extensions |
|
211 //readonly attribute long keyCode; |
|
212 //HRESULT keyCode([out, retval] long* result); |
|
213 |
|
214 //readonly attribute long charCode; |
|
215 //HRESULT charCode([out, retval] long* result); |
|
216 |
|
217 //void initKeyboardEvent(in AtomicString type, |
|
218 // in boolean canBubble, |
|
219 // in boolean cancelable, |
|
220 // in DOMWindow view, |
|
221 // in DOMString keyIdentifier, |
|
222 // in unsigned long keyLocation, |
|
223 // in boolean ctrlKey, |
|
224 // in boolean altKey, |
|
225 // in boolean shiftKey, |
|
226 // in boolean metaKey); |
|
227 } |
|
228 |
|
229 [ |
|
230 object, |
|
231 oleautomation, |
|
232 uuid(bdd97151-5f6a-4ba4-a902-9b008392eb54), |
|
233 pointer_default(unique) |
|
234 ] |
|
235 interface IDOMMouseEvent : IDOMUIEvent |
|
236 { |
|
237 //readonly attribute long screenX; |
|
238 HRESULT screenX([out, retval] long* result); |
|
239 |
|
240 //readonly attribute long screenY; |
|
241 HRESULT screenY([out, retval] long* result); |
|
242 |
|
243 //readonly attribute long clientX; |
|
244 HRESULT clientX([out, retval] long* result); |
|
245 |
|
246 //readonly attribute long clientY; |
|
247 HRESULT clientY([out, retval] long* result); |
|
248 |
|
249 //readonly attribute boolean ctrlKey; |
|
250 HRESULT ctrlKey([out, retval] BOOL* result); |
|
251 |
|
252 //readonly attribute boolean shiftKey; |
|
253 HRESULT shiftKey([out, retval] BOOL* result); |
|
254 |
|
255 //readonly attribute boolean altKey; |
|
256 HRESULT altKey([out, retval] BOOL* result); |
|
257 |
|
258 //readonly attribute boolean metaKey; |
|
259 HRESULT metaKey([out, retval] BOOL* result); |
|
260 |
|
261 //readonly attribute unsigned short button; |
|
262 HRESULT button([out, retval] unsigned short* result); |
|
263 |
|
264 //readonly attribute EventTarget relatedTarget; |
|
265 HRESULT relatedTarget([out, retval] IDOMEventTarget** result); |
|
266 |
|
267 //[OldStyleObjC] void initMouseEvent(in AtomicString type, |
|
268 // in boolean canBubble, |
|
269 // in boolean cancelable, |
|
270 // in DOMWindow view, |
|
271 // in long detail, |
|
272 // in long screenX, |
|
273 // in long screenY, |
|
274 // in long clientX, |
|
275 // in long clientY, |
|
276 // in boolean ctrlKey, |
|
277 // in boolean altKey, |
|
278 // in boolean shiftKey, |
|
279 // in boolean metaKey, |
|
280 // in unsigned short button, |
|
281 // in EventTarget relatedTarget); |
|
282 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); |
|
283 |
|
284 // extensions |
|
285 //readonly attribute long offsetX; |
|
286 HRESULT offsetX([out, retval] long* result); |
|
287 |
|
288 //readonly attribute long offsetY; |
|
289 HRESULT offsetY([out, retval] long* result); |
|
290 |
|
291 //readonly attribute long x; |
|
292 HRESULT x([out, retval] long* result); |
|
293 |
|
294 //readonly attribute long y; |
|
295 HRESULT y([out, retval] long* result); |
|
296 |
|
297 //readonly attribute Node fromElement; |
|
298 HRESULT fromElement([out, retval] IDOMNode** result); |
|
299 |
|
300 //readonly attribute Node toElement; |
|
301 HRESULT toElement([out, retval] IDOMNode** result); |
|
302 } |
|
303 |
|
304 [ |
|
305 object, |
|
306 oleautomation, |
|
307 uuid(6345d228-ea67-48ee-93c8-ff6e9c6356e9), |
|
308 pointer_default(unique) |
|
309 ] |
|
310 interface IDOMMutationEvent : IDOMEvent |
|
311 { |
|
312 // attrChangeType |
|
313 const unsigned short DOMMUTATIONEVENT_MODIFICATION = 1; |
|
314 const unsigned short DOMMUTATIONEVENT_ADDITION = 2; |
|
315 const unsigned short DOMMUTATIONEVENT_REMOVAL = 3; |
|
316 |
|
317 //readonly attribute Node relatedNode; |
|
318 HRESULT relatedNode([out, retval] IDOMNode** result); |
|
319 |
|
320 //readonly attribute DOMString prevValue; |
|
321 HRESULT prevValue([out, retval] BSTR* result); |
|
322 |
|
323 //readonly attribute DOMString newValue; |
|
324 HRESULT newValue([out, retval] BSTR* result); |
|
325 |
|
326 //readonly attribute DOMString attrName; |
|
327 HRESULT attrName([out, retval] BSTR* result); |
|
328 |
|
329 //readonly attribute unsigned short attrChange; |
|
330 HRESULT attrChange([out, retval] unsigned short* result); |
|
331 |
|
332 //[OldStyleObjC] void initMutationEvent(in AtomicString type, |
|
333 // in boolean canBubble, |
|
334 // in boolean cancelable, |
|
335 // in Node relatedNode, |
|
336 // in DOMString prevValue, |
|
337 // in DOMString newValue, |
|
338 // in DOMString attrName, |
|
339 // in unsigned short attrChange); |
|
340 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); |
|
341 } |
|
342 |
|
343 [ |
|
344 object, |
|
345 oleautomation, |
|
346 uuid(6048369e-e444-401b-950d-c9daef9384d2), |
|
347 pointer_default(unique) |
|
348 ] |
|
349 interface IDOMOverflowEvent : IDOMEvent |
|
350 { |
|
351 const unsigned short DOMOVERFLOWEVENT_HORIZONTAL = 0; |
|
352 const unsigned short DOMOVERFLOWEVENT_VERTICAL = 1; |
|
353 const unsigned short DOMOVERFLOWEVENT_BOTH = 2; |
|
354 |
|
355 //readonly attribute unsigned short orient; |
|
356 HRESULT orient([out, retval] unsigned short* result); |
|
357 |
|
358 //readonly attribute boolean horizontalOverflow; |
|
359 HRESULT horizontalOverflow([out, retval] BOOL* result); |
|
360 |
|
361 //readonly attribute boolean verticalOverflow; |
|
362 HRESULT verticalOverflow([out, retval] BOOL* result); |
|
363 } |
|
364 |
|
365 [ |
|
366 object, |
|
367 oleautomation, |
|
368 uuid(b928261d-7c9e-4156-af71-6f698bd97788), |
|
369 pointer_default(unique) |
|
370 ] |
|
371 interface IDOMUIEvent : IDOMEvent |
|
372 { |
|
373 //readonly attribute DOMWindow view; |
|
374 HRESULT view([out, retval] IDOMWindow** result); |
|
375 |
|
376 //readonly attribute long detail; |
|
377 HRESULT detail([out, retval] long* result); |
|
378 |
|
379 //[OldStyleObjC] void initUIEvent(in AtomicString type, |
|
380 // in boolean canBubble, |
|
381 // in boolean cancelable, |
|
382 // in DOMWindow view, |
|
383 // in long detail); |
|
384 HRESULT initUIEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] long detail); |
|
385 |
|
386 // extentsions |
|
387 //readonly attribute long keyCode; |
|
388 HRESULT keyCode([out, retval] long* result); |
|
389 |
|
390 //readonly attribute long charCode; |
|
391 HRESULT charCode([out, retval] long* result); |
|
392 |
|
393 //readonly attribute long layerX; |
|
394 HRESULT layerX([out, retval] long* result); |
|
395 |
|
396 //readonly attribute long layerY; |
|
397 HRESULT layerY([out, retval] long* result); |
|
398 |
|
399 //readonly attribute long pageX; |
|
400 HRESULT pageX([out, retval] long* result); |
|
401 |
|
402 //readonly attribute long pageY; |
|
403 HRESULT pageY([out, retval] long* result); |
|
404 |
|
405 //readonly attribute long which; |
|
406 HRESULT which([out, retval] long* result); |
|
407 } |
|
408 |
|
409 [ |
|
410 object, |
|
411 oleautomation, |
|
412 uuid(5404e6d9-a2bb-4c74-8070-ce9d2599bd00), |
|
413 pointer_default(unique) |
|
414 ] |
|
415 interface IDOMWheelEvent : IDOMUIEvent |
|
416 { |
|
417 //readonly attribute long screenX; |
|
418 HRESULT screenX([out, retval] long* result); |
|
419 |
|
420 //readonly attribute long screenY; |
|
421 HRESULT screenY([out, retval] long* result); |
|
422 |
|
423 //readonly attribute long clientX; |
|
424 HRESULT clientX([out, retval] long* result); |
|
425 |
|
426 //readonly attribute long clientY; |
|
427 HRESULT clientY([out, retval] long* result); |
|
428 |
|
429 //readonly attribute boolean ctrlKey; |
|
430 HRESULT ctrlKey([out, retval] BOOL* result); |
|
431 |
|
432 //readonly attribute boolean shiftKey; |
|
433 HRESULT shiftKey([out, retval] BOOL* result); |
|
434 |
|
435 //readonly attribute boolean altKey; |
|
436 HRESULT altKey([out, retval] BOOL* result); |
|
437 |
|
438 //readonly attribute boolean metaKey; |
|
439 HRESULT metaKey([out, retval] BOOL* result); |
|
440 |
|
441 //readonly attribute long wheelDelta; |
|
442 HRESULT wheelDelta([out, retval] long* result); |
|
443 |
|
444 //readonly attribute long wheelDeltaX; |
|
445 HRESULT wheelDeltaX([out, retval] long* result); |
|
446 |
|
447 //readonly attribute long wheelDeltaY; |
|
448 HRESULT wheelDeltaY([out, retval] long* result); |
|
449 |
|
450 // WebKit Extensions |
|
451 //readonly attribute long offsetX; |
|
452 HRESULT offsetX([out, retval] long* result); |
|
453 |
|
454 //readonly attribute long offsetY; |
|
455 HRESULT offsetY([out, retval] long* result); |
|
456 |
|
457 //readonly attribute long x; |
|
458 HRESULT x([out, retval] long* result); |
|
459 |
|
460 //readonly attribute long y; |
|
461 HRESULT y([out, retval] long* result); |
|
462 |
|
463 //readonly attribute boolean isHorizontal; |
|
464 HRESULT isHorizontal([out, retval] BOOL* result); |
|
465 |
|
466 //void initWheelEvent(in long wheelDeltaX, |
|
467 // in long wheelDeltaY, |
|
468 // in DOMWindow view, |
|
469 // in long screenX, |
|
470 // in long screenY, |
|
471 // in long clientX, |
|
472 // in long clientY, |
|
473 // in boolean ctrlKey, |
|
474 // in boolean altKey, |
|
475 // in boolean shiftKey, |
|
476 // in boolean metaKey); |
|
477 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); |
|
478 } |