2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
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.
26 #ifndef DOMCoreClasses_H
27 #define DOMCoreClasses_H
30 #include "WebScriptObject.h"
41 class DOMObject : public WebScriptObject, public IDOMObject {
44 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
45 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return WebScriptObject::AddRef(); }
46 virtual ULONG STDMETHODCALLTYPE Release(void) { return WebScriptObject::Release(); }
49 virtual HRESULT STDMETHODCALLTYPE throwException(
50 /* [in] */ BSTR exceptionMessage,
51 /* [retval][out] */ BOOL* result) { return WebScriptObject::throwException(exceptionMessage, result); }
53 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
55 /* [size_is][in] */ const VARIANT args[ ],
57 /* [retval][out] */ VARIANT* result) { return WebScriptObject::callWebScriptMethod(name, args, cArgs, result); }
59 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
60 /* [in] */ BSTR script,
61 /* [retval][out] */ VARIANT* result) { return WebScriptObject::evaluateWebScript(script, result); }
63 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
64 /* [in] */ BSTR name) { return WebScriptObject::removeWebScriptKey(name); }
66 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
67 /* [retval][out] */ BSTR* stringRepresentation) { return WebScriptObject::stringRepresentation(stringRepresentation); }
69 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
70 /* [in] */ unsigned int index,
71 /* [retval][out] */ VARIANT* result) { return WebScriptObject::webScriptValueAtIndex(index, result); }
73 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
74 /* [in] */ unsigned int index,
75 /* [in] */ VARIANT val) { return WebScriptObject::setWebScriptValueAtIndex(index, val); }
77 virtual HRESULT STDMETHODCALLTYPE setException(
78 /* [in] */ BSTR description) { return WebScriptObject::setException(description); }
81 class DECLSPEC_UUID("062AEEE3-9E42-44DC-A8A9-236B216FE011") DOMNode : public DOMObject, public IDOMNode, public IDOMEventTarget {
83 DOMNode(WebCore::Node* n);
87 static IDOMNode* createInstance(WebCore::Node* n);
91 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
92 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
93 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
96 virtual HRESULT STDMETHODCALLTYPE throwException(
97 /* [in] */ BSTR exceptionMessage,
98 /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
100 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
101 /* [in] */ BSTR name,
102 /* [size_is][in] */ const VARIANT args[ ],
103 /* [in] */ int cArgs,
104 /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
106 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
107 /* [in] */ BSTR script,
108 /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
110 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
111 /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
113 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
114 /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
116 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
117 /* [in] */ unsigned int index,
118 /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
120 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
121 /* [in] */ unsigned int index,
122 /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
124 virtual HRESULT STDMETHODCALLTYPE setException(
125 /* [in] */ BSTR description) { return DOMObject::setException(description); }
128 virtual HRESULT STDMETHODCALLTYPE nodeName(
129 /* [retval][out] */ BSTR* result);
131 virtual HRESULT STDMETHODCALLTYPE nodeValue(
132 /* [retval][out] */ BSTR* result);
134 virtual HRESULT STDMETHODCALLTYPE setNodeValue(
135 /* [in] */ BSTR value);
137 virtual HRESULT STDMETHODCALLTYPE nodeType(
138 /* [retval][out] */ unsigned short* result);
140 virtual HRESULT STDMETHODCALLTYPE parentNode(
141 /* [retval][out] */ IDOMNode** result);
143 virtual HRESULT STDMETHODCALLTYPE childNodes(
144 /* [retval][out] */ IDOMNodeList** result);
146 virtual HRESULT STDMETHODCALLTYPE firstChild(
147 /* [retval][out] */ IDOMNode** result);
149 virtual HRESULT STDMETHODCALLTYPE lastChild(
150 /* [retval][out] */ IDOMNode** result);
152 virtual HRESULT STDMETHODCALLTYPE previousSibling(
153 /* [retval][out] */ IDOMNode** result);
155 virtual HRESULT STDMETHODCALLTYPE nextSibling(
156 /* [retval][out] */ IDOMNode** result);
158 virtual HRESULT STDMETHODCALLTYPE attributes(
159 /* [retval][out] */ IDOMNamedNodeMap** result);
161 virtual HRESULT STDMETHODCALLTYPE ownerDocument(
162 /* [retval][out] */ IDOMDocument** result);
164 virtual HRESULT STDMETHODCALLTYPE insertBefore(
165 /* [in] */ IDOMNode* newChild,
166 /* [in] */ IDOMNode* refChild,
167 /* [retval][out] */ IDOMNode** result);
169 virtual HRESULT STDMETHODCALLTYPE replaceChild(
170 /* [in] */ IDOMNode* newChild,
171 /* [in] */ IDOMNode* oldChild,
172 /* [retval][out] */ IDOMNode** result);
174 virtual HRESULT STDMETHODCALLTYPE removeChild(
175 /* [in] */ IDOMNode* oldChild,
176 /* [retval][out] */ IDOMNode** result);
178 virtual HRESULT STDMETHODCALLTYPE appendChild(
179 /* [in] */ IDOMNode* oldChild,
180 /* [retval][out] */ IDOMNode** result);
182 virtual HRESULT STDMETHODCALLTYPE hasChildNodes(
183 /* [retval][out] */ BOOL* result);
185 virtual HRESULT STDMETHODCALLTYPE cloneNode(
186 /* [in] */ BOOL deep,
187 /* [retval][out] */ IDOMNode** result);
189 virtual HRESULT STDMETHODCALLTYPE normalize( void);
191 virtual HRESULT STDMETHODCALLTYPE isSupported(
192 /* [in] */ BSTR feature,
193 /* [in] */ BSTR version,
194 /* [retval][out] */ BOOL* result);
196 virtual HRESULT STDMETHODCALLTYPE namespaceURI(
197 /* [retval][out] */ BSTR* result);
199 virtual HRESULT STDMETHODCALLTYPE prefix(
200 /* [retval][out] */ BSTR* result);
202 virtual HRESULT STDMETHODCALLTYPE setPrefix(
203 /* [in] */ BSTR prefix);
205 virtual HRESULT STDMETHODCALLTYPE localName(
206 /* [retval][out] */ BSTR* result);
208 virtual HRESULT STDMETHODCALLTYPE hasAttributes(
209 /* [retval][out] */ BOOL* result);
211 virtual HRESULT STDMETHODCALLTYPE isSameNode(
212 /* [in] */ IDOMNode* other,
213 /* [retval][out] */ BOOL* result);
215 virtual HRESULT STDMETHODCALLTYPE isEqualNode(
216 /* [in] */ IDOMNode* other,
217 /* [retval][out] */ BOOL* result);
219 virtual HRESULT STDMETHODCALLTYPE textContent(
220 /* [retval][out] */ BSTR* result);
222 virtual HRESULT STDMETHODCALLTYPE setTextContent(
223 /* [in] */ BSTR text);
226 virtual HRESULT STDMETHODCALLTYPE addEventListener(
227 /* [in] */ BSTR type,
228 /* [in] */ IDOMEventListener *listener,
229 /* [in] */ BOOL useCapture);
231 virtual HRESULT STDMETHODCALLTYPE removeEventListener(
232 /* [in] */ BSTR type,
233 /* [in] */ IDOMEventListener *listener,
234 /* [in] */ BOOL useCapture);
236 virtual HRESULT STDMETHODCALLTYPE dispatchEvent(
237 /* [in] */ IDOMEvent *evt,
238 /* [retval][out] */ BOOL* result);
241 WebCore::Node* node() const { return m_node; }
244 WebCore::Node* m_node;
247 class DOMNodeList : public DOMObject, public IDOMNodeList {
249 DOMNodeList(WebCore::NodeList* l);
253 static IDOMNodeList* createInstance(WebCore::NodeList* l);
257 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
258 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
259 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
262 virtual HRESULT STDMETHODCALLTYPE throwException(
263 /* [in] */ BSTR exceptionMessage,
264 /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
266 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
267 /* [in] */ BSTR name,
268 /* [size_is][in] */ const VARIANT args[ ],
269 /* [in] */ int cArgs,
270 /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
272 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
273 /* [in] */ BSTR script,
274 /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
276 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
277 /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
279 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
280 /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
282 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
283 /* [in] */ unsigned int index,
284 /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
286 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
287 /* [in] */ unsigned int index,
288 /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
290 virtual HRESULT STDMETHODCALLTYPE setException(
291 /* [in] */ BSTR description) { return DOMObject::setException(description); }
294 virtual HRESULT STDMETHODCALLTYPE item(
295 /* [in] */ UINT index,
296 /* [retval][out] */ IDOMNode** result);
298 virtual HRESULT STDMETHODCALLTYPE length(
299 /* [retval][out] */ UINT* result);
302 WebCore::NodeList* m_nodeList;
305 class DOMDocument : public DOMNode, public IDOMDocument, public IDOMViewCSS, public IDOMDocumentEvent {
307 DOMDocument(WebCore::Document* d);
311 static IDOMDocument* createInstance(WebCore::Document* d);
315 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
316 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMNode::AddRef(); }
317 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMNode::Release(); }
320 virtual HRESULT STDMETHODCALLTYPE throwException(
321 /* [in] */ BSTR exceptionMessage,
322 /* [retval][out] */ BOOL* result) { return DOMNode::throwException(exceptionMessage, result); }
324 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
325 /* [in] */ BSTR name,
326 /* [size_is][in] */ const VARIANT args[ ],
327 /* [in] */ int cArgs,
328 /* [retval][out] */ VARIANT* result) { return DOMNode::callWebScriptMethod(name, args, cArgs, result); }
330 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
331 /* [in] */ BSTR script,
332 /* [retval][out] */ VARIANT* result) { return DOMNode::evaluateWebScript(script, result); }
334 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
335 /* [in] */ BSTR name) { return DOMNode::removeWebScriptKey(name); }
337 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
338 /* [retval][out] */ BSTR* stringRepresentation) { return DOMNode::stringRepresentation(stringRepresentation); }
340 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
341 /* [in] */ unsigned int index,
342 /* [retval][out] */ VARIANT* result) { return DOMNode::webScriptValueAtIndex(index, result); }
344 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
345 /* [in] */ unsigned int index,
346 /* [in] */ VARIANT val) { return DOMNode::setWebScriptValueAtIndex(index, val); }
348 virtual HRESULT STDMETHODCALLTYPE setException(
349 /* [in] */ BSTR description) { return DOMNode::setException(description); }
352 virtual HRESULT STDMETHODCALLTYPE nodeName(
353 /* [retval][out] */ BSTR* result) { return DOMNode::nodeName(result); }
355 virtual HRESULT STDMETHODCALLTYPE nodeValue(
356 /* [retval][out] */ BSTR* result) { return DOMNode::nodeValue(result); }
358 virtual HRESULT STDMETHODCALLTYPE setNodeValue(
359 /* [in] */ BSTR value) { return DOMNode::setNodeValue(value); }
361 virtual HRESULT STDMETHODCALLTYPE nodeType(
362 /* [retval][out] */ unsigned short* result) { return DOMNode::nodeType(result); }
364 virtual HRESULT STDMETHODCALLTYPE parentNode(
365 /* [retval][out] */ IDOMNode** result) { return DOMNode::parentNode(result); }
367 virtual HRESULT STDMETHODCALLTYPE childNodes(
368 /* [retval][out] */ IDOMNodeList** result) { return DOMNode::childNodes(result); }
370 virtual HRESULT STDMETHODCALLTYPE firstChild(
371 /* [retval][out] */ IDOMNode** result) { return DOMNode::firstChild(result); }
373 virtual HRESULT STDMETHODCALLTYPE lastChild(
374 /* [retval][out] */ IDOMNode** result) { return DOMNode::lastChild(result); }
376 virtual HRESULT STDMETHODCALLTYPE previousSibling(
377 /* [retval][out] */ IDOMNode** result) { return DOMNode::previousSibling(result); }
379 virtual HRESULT STDMETHODCALLTYPE nextSibling(
380 /* [retval][out] */ IDOMNode** result) { return DOMNode::nextSibling(result); }
382 virtual HRESULT STDMETHODCALLTYPE attributes(
383 /* [retval][out] */ IDOMNamedNodeMap** result) { return DOMNode::attributes(result); }
385 virtual HRESULT STDMETHODCALLTYPE ownerDocument(
386 /* [retval][out] */ IDOMDocument** result) { return DOMNode::ownerDocument(result); }
388 virtual HRESULT STDMETHODCALLTYPE insertBefore(
389 /* [in] */ IDOMNode* newChild,
390 /* [in] */ IDOMNode* refChild,
391 /* [retval][out] */ IDOMNode** result) { return DOMNode::insertBefore(newChild, refChild, result); }
393 virtual HRESULT STDMETHODCALLTYPE replaceChild(
394 /* [in] */ IDOMNode* newChild,
395 /* [in] */ IDOMNode* oldChild,
396 /* [retval][out] */ IDOMNode** result) { return DOMNode::replaceChild(newChild, oldChild, result); }
398 virtual HRESULT STDMETHODCALLTYPE removeChild(
399 /* [in] */ IDOMNode* oldChild,
400 /* [retval][out] */ IDOMNode** result) { return DOMNode::removeChild(oldChild, result); }
402 virtual HRESULT STDMETHODCALLTYPE appendChild(
403 /* [in] */ IDOMNode* oldChild,
404 /* [retval][out] */ IDOMNode** result) { return DOMNode::appendChild(oldChild, result); }
406 virtual HRESULT STDMETHODCALLTYPE hasChildNodes(
407 /* [retval][out] */ BOOL* result) { return DOMNode::hasChildNodes(result); }
409 virtual HRESULT STDMETHODCALLTYPE cloneNode(
410 /* [in] */ BOOL deep,
411 /* [retval][out] */ IDOMNode** result) { return DOMNode::cloneNode(deep, result); }
413 virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMNode::normalize(); }
415 virtual HRESULT STDMETHODCALLTYPE isSupported(
416 /* [in] */ BSTR feature,
417 /* [in] */ BSTR version,
418 /* [retval][out] */ BOOL* result) { return DOMNode::isSupported(feature, version, result); }
420 virtual HRESULT STDMETHODCALLTYPE namespaceURI(
421 /* [retval][out] */ BSTR* result) { return DOMNode::namespaceURI(result); }
423 virtual HRESULT STDMETHODCALLTYPE prefix(
424 /* [retval][out] */ BSTR* result) { return DOMNode::prefix(result); }
426 virtual HRESULT STDMETHODCALLTYPE setPrefix(
427 /* [in] */ BSTR prefix) { return DOMNode::setPrefix(prefix); }
429 virtual HRESULT STDMETHODCALLTYPE localName(
430 /* [retval][out] */ BSTR* result) { return DOMNode::localName(result); }
432 virtual HRESULT STDMETHODCALLTYPE hasAttributes(
433 /* [retval][out] */ BOOL* result) { return DOMNode::hasAttributes(result); }
435 virtual HRESULT STDMETHODCALLTYPE isSameNode(
436 /* [in] */ IDOMNode* other,
437 /* [retval][out] */ BOOL* result) { return DOMNode::isSameNode(other, result); }
439 virtual HRESULT STDMETHODCALLTYPE isEqualNode(
440 /* [in] */ IDOMNode* other,
441 /* [retval][out] */ BOOL* result) { return DOMNode::isEqualNode(other, result); }
443 virtual HRESULT STDMETHODCALLTYPE textContent(
444 /* [retval][out] */ BSTR* result) { return DOMNode::textContent(result); }
446 virtual HRESULT STDMETHODCALLTYPE setTextContent(
447 /* [in] */ BSTR text) { return DOMNode::setTextContent(text); }
450 virtual HRESULT STDMETHODCALLTYPE doctype(
451 /* [retval][out] */ IDOMDocumentType** result);
453 virtual HRESULT STDMETHODCALLTYPE implementation(
454 /* [retval][out] */ IDOMImplementation** result);
456 virtual HRESULT STDMETHODCALLTYPE documentElement(
457 /* [retval][out] */ IDOMElement** result);
459 virtual HRESULT STDMETHODCALLTYPE createElement(
460 /* [in] */ BSTR tagName,
461 /* [retval][out] */ IDOMElement** result);
463 virtual HRESULT STDMETHODCALLTYPE createDocumentFragment(
464 /* [retval][out] */ IDOMDocumentFragment** result);
466 virtual HRESULT STDMETHODCALLTYPE createTextNode(
467 /* [in] */ BSTR data,
468 /* [retval][out] */ IDOMText** result);
470 virtual HRESULT STDMETHODCALLTYPE createComment(
471 /* [in] */ BSTR data,
472 /* [retval][out] */ IDOMComment** result);
474 virtual HRESULT STDMETHODCALLTYPE createCDATASection(
475 /* [in] */ BSTR data,
476 /* [retval][out] */ IDOMCDATASection** result);
478 virtual HRESULT STDMETHODCALLTYPE createProcessingInstruction(
479 /* [in] */ BSTR target,
480 /* [in] */ BSTR data,
481 /* [retval][out] */ IDOMProcessingInstruction** result);
483 virtual HRESULT STDMETHODCALLTYPE createAttribute(
484 /* [in] */ BSTR name,
485 /* [retval][out] */ IDOMAttr** result);
487 virtual HRESULT STDMETHODCALLTYPE createEntityReference(
488 /* [in] */ BSTR name,
489 /* [retval][out] */ IDOMEntityReference** result);
491 virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(
492 /* [in] */ BSTR tagName,
493 /* [retval][out] */ IDOMNodeList** result);
495 virtual HRESULT STDMETHODCALLTYPE importNode(
496 /* [in] */ IDOMNode* importedNode,
497 /* [in] */ BOOL deep,
498 /* [retval][out] */ IDOMNode** result);
500 virtual HRESULT STDMETHODCALLTYPE createElementNS(
501 /* [in] */ BSTR namespaceURI,
502 /* [in] */ BSTR qualifiedName,
503 /* [retval][out] */ IDOMElement** result);
505 virtual HRESULT STDMETHODCALLTYPE createAttributeNS(
506 /* [in] */ BSTR namespaceURI,
507 /* [in] */ BSTR qualifiedName,
508 /* [retval][out] */ IDOMAttr** result);
510 virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS(
511 /* [in] */ BSTR namespaceURI,
512 /* [in] */ BSTR localName,
513 /* [retval][out] */ IDOMNodeList** result);
515 virtual HRESULT STDMETHODCALLTYPE getElementById(
516 /* [in] */ BSTR elementId,
517 /* [retval][out] */ IDOMElement** result);
520 virtual HRESULT STDMETHODCALLTYPE getComputedStyle(
521 /* [in] */ IDOMElement* elt,
522 /* [in] */ BSTR pseudoElt,
523 /* [retval][out] */ IDOMCSSStyleDeclaration** result);
526 virtual HRESULT STDMETHODCALLTYPE createEvent(
527 /* [in] */ BSTR eventType,
528 /* [retval][out] */ IDOMEvent** result);
531 WebCore::Document* document() { return m_document; }
534 WebCore::Document* m_document;
537 class DOMWindow : public DOMObject, public IDOMWindow, public IDOMEventTarget {
539 DOMWindow(WebCore::DOMWindow*);
543 static IDOMWindow* createInstance(WebCore::DOMWindow*);
547 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
548 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); }
549 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); }
552 virtual HRESULT STDMETHODCALLTYPE throwException(
553 /* [in] */ BSTR exceptionMessage,
554 /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); }
556 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
557 /* [in] */ BSTR name,
558 /* [size_is][in] */ const VARIANT args[ ],
559 /* [in] */ int cArgs,
560 /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); }
562 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
563 /* [in] */ BSTR script,
564 /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); }
566 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
567 /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); }
569 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
570 /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); }
572 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
573 /* [in] */ unsigned int index,
574 /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); }
576 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
577 /* [in] */ unsigned int index,
578 /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); }
580 virtual HRESULT STDMETHODCALLTYPE setException(
581 /* [in] */ BSTR description) { return DOMObject::setException(description); }
583 virtual HRESULT STDMETHODCALLTYPE document(
584 /* [out, retval] */ IDOMDocument**);
586 virtual HRESULT STDMETHODCALLTYPE getComputedStyle(
587 /* [in] */ IDOMElement*,
590 virtual HRESULT STDMETHODCALLTYPE getMatchedCSSRules(
591 /* [in] */ IDOMElement*,
594 /* [out, retval] */ IDOMCSSRuleList**);
596 virtual HRESULT STDMETHODCALLTYPE devicePixelRatio(
597 /* [out, retval] */ double*);
599 virtual HRESULT STDMETHODCALLTYPE addEventListener(
601 /* [in] */ IDOMEventListener *,
604 virtual HRESULT STDMETHODCALLTYPE removeEventListener(
606 /* [in] */ IDOMEventListener *,
609 virtual HRESULT STDMETHODCALLTYPE dispatchEvent(
610 /* [in] */ IDOMEvent *,
611 /* [retval][out] */ BOOL *);
614 WebCore::DOMWindow* window() { return m_window; }
617 WebCore::DOMWindow* m_window;
622 class DOMElement : public DOMNode, public IDOMElement, public IDOMElementPrivate, public IDOMNodeExtensions, public IDOMElementCSSInlineStyle, public IDOMElementExtensions {
624 DOMElement(WebCore::Element* e);
628 static IDOMElement* createInstance(WebCore::Element* e);
631 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
632 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMNode::AddRef(); }
633 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMNode::Release(); }
636 virtual HRESULT STDMETHODCALLTYPE throwException(
637 /* [in] */ BSTR exceptionMessage,
638 /* [retval][out] */ BOOL* result) { return DOMNode::throwException(exceptionMessage, result); }
640 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(
641 /* [in] */ BSTR name,
642 /* [size_is][in] */ const VARIANT args[ ],
643 /* [in] */ int cArgs,
644 /* [retval][out] */ VARIANT* result) { return DOMNode::callWebScriptMethod(name, args, cArgs, result); }
646 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(
647 /* [in] */ BSTR script,
648 /* [retval][out] */ VARIANT* result) { return DOMNode::evaluateWebScript(script, result); }
650 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(
651 /* [in] */ BSTR name) { return DOMNode::removeWebScriptKey(name); }
653 virtual HRESULT STDMETHODCALLTYPE stringRepresentation(
654 /* [retval][out] */ BSTR* stringRepresentation) { return DOMNode::stringRepresentation(stringRepresentation); }
656 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(
657 /* [in] */ unsigned int index,
658 /* [retval][out] */ VARIANT* result) { return DOMNode::webScriptValueAtIndex(index, result); }
660 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(
661 /* [in] */ unsigned int index,
662 /* [in] */ VARIANT val) { return DOMNode::setWebScriptValueAtIndex(index, val); }
664 virtual HRESULT STDMETHODCALLTYPE setException(
665 /* [in] */ BSTR description) { return DOMNode::setException(description); }
668 virtual HRESULT STDMETHODCALLTYPE nodeName(
669 /* [retval][out] */ BSTR* result) { return DOMNode::nodeName(result); }
671 virtual HRESULT STDMETHODCALLTYPE nodeValue(
672 /* [retval][out] */ BSTR* result) { return DOMNode::nodeValue(result); }
674 virtual HRESULT STDMETHODCALLTYPE setNodeValue(
675 /* [in] */ BSTR value) { return DOMNode::setNodeValue(value); }
677 virtual HRESULT STDMETHODCALLTYPE nodeType(
678 /* [retval][out] */ unsigned short* result) { return DOMNode::nodeType(result); }
680 virtual HRESULT STDMETHODCALLTYPE parentNode(
681 /* [retval][out] */ IDOMNode** result) { return DOMNode::parentNode(result); }
683 virtual HRESULT STDMETHODCALLTYPE childNodes(
684 /* [retval][out] */ IDOMNodeList** result) { return DOMNode::childNodes(result); }
686 virtual HRESULT STDMETHODCALLTYPE firstChild(
687 /* [retval][out] */ IDOMNode** result) { return DOMNode::firstChild(result); }
689 virtual HRESULT STDMETHODCALLTYPE lastChild(
690 /* [retval][out] */ IDOMNode** result) { return DOMNode::lastChild(result); }
692 virtual HRESULT STDMETHODCALLTYPE previousSibling(
693 /* [retval][out] */ IDOMNode** result) { return DOMNode::previousSibling(result); }
695 virtual HRESULT STDMETHODCALLTYPE nextSibling(
696 /* [retval][out] */ IDOMNode** result) { return DOMNode::nextSibling(result); }
698 virtual HRESULT STDMETHODCALLTYPE attributes(
699 /* [retval][out] */ IDOMNamedNodeMap** result) { return DOMNode::attributes(result); }
701 virtual HRESULT STDMETHODCALLTYPE ownerDocument(
702 /* [retval][out] */ IDOMDocument** result) { return DOMNode::ownerDocument(result); }
704 virtual HRESULT STDMETHODCALLTYPE insertBefore(
705 /* [in] */ IDOMNode* newChild,
706 /* [in] */ IDOMNode* refChild,
707 /* [retval][out] */ IDOMNode** result) { return DOMNode::insertBefore(newChild, refChild, result); }
709 virtual HRESULT STDMETHODCALLTYPE replaceChild(
710 /* [in] */ IDOMNode* newChild,
711 /* [in] */ IDOMNode* oldChild,
712 /* [retval][out] */ IDOMNode** result) { return DOMNode::replaceChild(newChild, oldChild, result); }
714 virtual HRESULT STDMETHODCALLTYPE removeChild(
715 /* [in] */ IDOMNode* oldChild,
716 /* [retval][out] */ IDOMNode** result) { return DOMNode::removeChild(oldChild, result); }
718 virtual HRESULT STDMETHODCALLTYPE appendChild(
719 /* [in] */ IDOMNode* oldChild,
720 /* [retval][out] */ IDOMNode** result) { return DOMNode::appendChild(oldChild, result); }
722 virtual HRESULT STDMETHODCALLTYPE hasChildNodes(
723 /* [retval][out] */ BOOL* result) { return DOMNode::hasChildNodes(result); }
725 virtual HRESULT STDMETHODCALLTYPE cloneNode(
726 /* [in] */ BOOL deep,
727 /* [retval][out] */ IDOMNode** result) { return DOMNode::cloneNode(deep, result); }
729 virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMNode::normalize(); }
731 virtual HRESULT STDMETHODCALLTYPE isSupported(
732 /* [in] */ BSTR feature,
733 /* [in] */ BSTR version,
734 /* [retval][out] */ BOOL* result) { return DOMNode::isSupported(feature, version, result); }
736 virtual HRESULT STDMETHODCALLTYPE namespaceURI(
737 /* [retval][out] */ BSTR* result) { return DOMNode::namespaceURI(result); }
739 virtual HRESULT STDMETHODCALLTYPE prefix(
740 /* [retval][out] */ BSTR* result) { return DOMNode::prefix(result); }
742 virtual HRESULT STDMETHODCALLTYPE setPrefix(
743 /* [in] */ BSTR prefix) { return DOMNode::setPrefix(prefix); }
745 virtual HRESULT STDMETHODCALLTYPE localName(
746 /* [retval][out] */ BSTR* result) { return DOMNode::localName(result); }
748 virtual HRESULT STDMETHODCALLTYPE hasAttributes(
749 /* [retval][out] */ BOOL* result) { return DOMNode::hasAttributes(result); }
751 virtual HRESULT STDMETHODCALLTYPE isSameNode(
752 /* [in] */ IDOMNode* other,
753 /* [retval][out] */ BOOL* result) { return DOMNode::isSameNode(other, result); }
755 virtual HRESULT STDMETHODCALLTYPE isEqualNode(
756 /* [in] */ IDOMNode* other,
757 /* [retval][out] */ BOOL* result) { return DOMNode::isEqualNode(other, result); }
759 virtual HRESULT STDMETHODCALLTYPE textContent(
760 /* [retval][out] */ BSTR* result) { return DOMNode::textContent(result); }
762 virtual HRESULT STDMETHODCALLTYPE setTextContent(
763 /* [in] */ BSTR text) { return DOMNode::setTextContent(text); }
766 virtual HRESULT STDMETHODCALLTYPE tagName(
767 /* [retval][out] */ BSTR* result);
769 virtual HRESULT STDMETHODCALLTYPE getAttribute(
770 /* [in] */ BSTR name,
771 /* [retval][out] */ BSTR* result);
773 virtual HRESULT STDMETHODCALLTYPE setAttribute(
774 /* [in] */ BSTR name,
775 /* [in] */ BSTR value);
777 virtual HRESULT STDMETHODCALLTYPE removeAttribute(
778 /* [in] */ BSTR name);
780 virtual HRESULT STDMETHODCALLTYPE getAttributeNode(
781 /* [in] */ BSTR name,
782 /* [retval][out] */ IDOMAttr** result);
784 virtual HRESULT STDMETHODCALLTYPE setAttributeNode(
785 /* [in] */ IDOMAttr *newAttr,
786 /* [retval][out] */ IDOMAttr** result);
788 virtual HRESULT STDMETHODCALLTYPE removeAttributeNode(
789 /* [in] */ IDOMAttr *oldAttr,
790 /* [retval][out] */ IDOMAttr** result);
792 virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(
793 /* [in] */ BSTR name,
794 /* [retval][out] */ IDOMNodeList** result);
796 virtual HRESULT STDMETHODCALLTYPE getAttributeNS(
797 /* [in] */ BSTR namespaceURI,
798 /* [in] */ BSTR localName,
799 /* [retval][out] */ BSTR* result);
801 virtual HRESULT STDMETHODCALLTYPE setAttributeNS(
802 /* [in] */ BSTR namespaceURI,
803 /* [in] */ BSTR qualifiedName,
804 /* [in] */ BSTR value);
806 virtual HRESULT STDMETHODCALLTYPE removeAttributeNS(
807 /* [in] */ BSTR namespaceURI,
808 /* [in] */ BSTR localName);
810 virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS(
811 /* [in] */ BSTR namespaceURI,
812 /* [in] */ BSTR localName,
813 /* [retval][out] */ IDOMAttr** result);
815 virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS(
816 /* [in] */ IDOMAttr *newAttr,
817 /* [retval][out] */ IDOMAttr** result);
819 virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS(
820 /* [in] */ BSTR namespaceURI,
821 /* [in] */ BSTR localName,
822 /* [retval][out] */ IDOMNodeList** result);
824 virtual HRESULT STDMETHODCALLTYPE hasAttribute(
825 /* [in] */ BSTR name,
826 /* [retval][out] */ BOOL* result);
828 virtual HRESULT STDMETHODCALLTYPE hasAttributeNS(
829 /* [in] */ BSTR namespaceURI,
830 /* [in] */ BSTR localName,
831 /* [retval][out] */ BOOL* result);
833 virtual HRESULT STDMETHODCALLTYPE focus( void);
835 virtual HRESULT STDMETHODCALLTYPE blur( void);
837 // IDOMNodeExtensions
838 virtual HRESULT STDMETHODCALLTYPE boundingBox(
839 /* [retval][out] */ LPRECT rect);
841 virtual HRESULT STDMETHODCALLTYPE lineBoxRects(
842 /* [size_is][in] */ RECT* rects,
843 /* [in] */ int cRects);
845 // IDOMElementPrivate
846 virtual HRESULT STDMETHODCALLTYPE coreElement(
849 virtual HRESULT STDMETHODCALLTYPE isEqual(
850 /* [in] */ IDOMElement* other,
851 /* [retval][out] */ BOOL* result);
853 virtual HRESULT STDMETHODCALLTYPE isFocused(
854 /* [retval][out] */ BOOL* result);
856 virtual HRESULT STDMETHODCALLTYPE innerText(
857 /* [retval][out] */ BSTR* result);
859 virtual HRESULT STDMETHODCALLTYPE font(
860 WebFontDescription* webFontDescription);
862 virtual HRESULT STDMETHODCALLTYPE renderedImage(
863 /* [retval][out] */ HBITMAP* image);
865 virtual HRESULT STDMETHODCALLTYPE markerTextForListItem(
866 /* [retval][out] */ BSTR* markerText);
868 virtual HRESULT STDMETHODCALLTYPE shadowPseudoId(
869 /* [retval][out] */ BSTR* result);
871 // IDOMElementCSSInlineStyle
872 virtual HRESULT STDMETHODCALLTYPE style(
873 /* [retval][out] */ IDOMCSSStyleDeclaration** result);
875 // IDOMElementExtensions
876 virtual HRESULT STDMETHODCALLTYPE offsetLeft(
877 /* [retval][out] */ int* result);
879 virtual HRESULT STDMETHODCALLTYPE offsetTop(
880 /* [retval][out] */ int* result);
882 virtual HRESULT STDMETHODCALLTYPE offsetWidth(
883 /* [retval][out] */ int* result);
885 virtual HRESULT STDMETHODCALLTYPE offsetHeight(
886 /* [retval][out] */ int* result);
888 virtual HRESULT STDMETHODCALLTYPE offsetParent(
889 /* [retval][out] */ IDOMElement** result);
891 virtual HRESULT STDMETHODCALLTYPE clientWidth(
892 /* [retval][out] */ int* result);
894 virtual HRESULT STDMETHODCALLTYPE clientHeight(
895 /* [retval][out] */ int* result);
897 virtual HRESULT STDMETHODCALLTYPE scrollLeft(
898 /* [retval][out] */ int* result);
900 virtual HRESULT STDMETHODCALLTYPE setScrollLeft(
901 /* [in] */ int newScrollLeft);
903 virtual HRESULT STDMETHODCALLTYPE scrollTop(
904 /* [retval][out] */ int* result);
906 virtual HRESULT STDMETHODCALLTYPE setScrollTop(
907 /* [in] */ int newScrollTop);
909 virtual HRESULT STDMETHODCALLTYPE scrollWidth(
910 /* [retval][out] */ int* result);
912 virtual HRESULT STDMETHODCALLTYPE scrollHeight(
913 /* [retval][out] */ int* result);
915 virtual HRESULT STDMETHODCALLTYPE scrollIntoView(
916 /* [in] */ BOOL alignWithTop);
918 virtual HRESULT STDMETHODCALLTYPE scrollIntoViewIfNeeded(
919 /* [in] */ BOOL centerIfNeeded);
922 WebCore::Element* element() { return m_element; }
925 WebCore::Element* m_element;