|
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 DOMCoreClasses_H |
|
27 #define DOMCoreClasses_H |
|
28 |
|
29 #include "WebKit.h" |
|
30 #include "WebScriptObject.h" |
|
31 |
|
32 namespace WebCore { |
|
33 class Element; |
|
34 class Document; |
|
35 class Node; |
|
36 class NodeList; |
|
37 } |
|
38 |
|
39 |
|
40 class DOMObject : public WebScriptObject, public IDOMObject { |
|
41 public: |
|
42 // IUnknown |
|
43 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
|
44 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return WebScriptObject::AddRef(); } |
|
45 virtual ULONG STDMETHODCALLTYPE Release(void) { return WebScriptObject::Release(); } |
|
46 |
|
47 // IWebScriptObject |
|
48 virtual HRESULT STDMETHODCALLTYPE throwException( |
|
49 /* [in] */ BSTR exceptionMessage, |
|
50 /* [retval][out] */ BOOL* result) { return WebScriptObject::throwException(exceptionMessage, result); } |
|
51 |
|
52 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( |
|
53 /* [in] */ BSTR name, |
|
54 /* [size_is][in] */ const VARIANT args[ ], |
|
55 /* [in] */ int cArgs, |
|
56 /* [retval][out] */ VARIANT* result) { return WebScriptObject::callWebScriptMethod(name, args, cArgs, result); } |
|
57 |
|
58 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( |
|
59 /* [in] */ BSTR script, |
|
60 /* [retval][out] */ VARIANT* result) { return WebScriptObject::evaluateWebScript(script, result); } |
|
61 |
|
62 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( |
|
63 /* [in] */ BSTR name) { return WebScriptObject::removeWebScriptKey(name); } |
|
64 |
|
65 virtual HRESULT STDMETHODCALLTYPE stringRepresentation( |
|
66 /* [retval][out] */ BSTR* stringRepresentation) { return WebScriptObject::stringRepresentation(stringRepresentation); } |
|
67 |
|
68 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( |
|
69 /* [in] */ unsigned int index, |
|
70 /* [retval][out] */ VARIANT* result) { return WebScriptObject::webScriptValueAtIndex(index, result); } |
|
71 |
|
72 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( |
|
73 /* [in] */ unsigned int index, |
|
74 /* [in] */ VARIANT val) { return WebScriptObject::setWebScriptValueAtIndex(index, val); } |
|
75 |
|
76 virtual HRESULT STDMETHODCALLTYPE setException( |
|
77 /* [in] */ BSTR description) { return WebScriptObject::setException(description); } |
|
78 }; |
|
79 |
|
80 class DECLSPEC_UUID("062AEEE3-9E42-44DC-A8A9-236B216FE011") DOMNode : public DOMObject, public IDOMNode, public IDOMEventTarget { |
|
81 protected: |
|
82 DOMNode(WebCore::Node* n); |
|
83 ~DOMNode(); |
|
84 |
|
85 public: |
|
86 static IDOMNode* createInstance(WebCore::Node* n); |
|
87 |
|
88 public: |
|
89 // IUnknown |
|
90 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
|
91 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); } |
|
92 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); } |
|
93 |
|
94 // IWebScriptObject |
|
95 virtual HRESULT STDMETHODCALLTYPE throwException( |
|
96 /* [in] */ BSTR exceptionMessage, |
|
97 /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); } |
|
98 |
|
99 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( |
|
100 /* [in] */ BSTR name, |
|
101 /* [size_is][in] */ const VARIANT args[ ], |
|
102 /* [in] */ int cArgs, |
|
103 /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); } |
|
104 |
|
105 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( |
|
106 /* [in] */ BSTR script, |
|
107 /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); } |
|
108 |
|
109 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( |
|
110 /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); } |
|
111 |
|
112 virtual HRESULT STDMETHODCALLTYPE stringRepresentation( |
|
113 /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); } |
|
114 |
|
115 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( |
|
116 /* [in] */ unsigned int index, |
|
117 /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); } |
|
118 |
|
119 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( |
|
120 /* [in] */ unsigned int index, |
|
121 /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); } |
|
122 |
|
123 virtual HRESULT STDMETHODCALLTYPE setException( |
|
124 /* [in] */ BSTR description) { return DOMObject::setException(description); } |
|
125 |
|
126 // IDOMNode |
|
127 virtual HRESULT STDMETHODCALLTYPE nodeName( |
|
128 /* [retval][out] */ BSTR* result); |
|
129 |
|
130 virtual HRESULT STDMETHODCALLTYPE nodeValue( |
|
131 /* [retval][out] */ BSTR* result); |
|
132 |
|
133 virtual HRESULT STDMETHODCALLTYPE setNodeValue( |
|
134 /* [in] */ BSTR value); |
|
135 |
|
136 virtual HRESULT STDMETHODCALLTYPE nodeType( |
|
137 /* [retval][out] */ unsigned short* result); |
|
138 |
|
139 virtual HRESULT STDMETHODCALLTYPE parentNode( |
|
140 /* [retval][out] */ IDOMNode** result); |
|
141 |
|
142 virtual HRESULT STDMETHODCALLTYPE childNodes( |
|
143 /* [retval][out] */ IDOMNodeList** result); |
|
144 |
|
145 virtual HRESULT STDMETHODCALLTYPE firstChild( |
|
146 /* [retval][out] */ IDOMNode** result); |
|
147 |
|
148 virtual HRESULT STDMETHODCALLTYPE lastChild( |
|
149 /* [retval][out] */ IDOMNode** result); |
|
150 |
|
151 virtual HRESULT STDMETHODCALLTYPE previousSibling( |
|
152 /* [retval][out] */ IDOMNode** result); |
|
153 |
|
154 virtual HRESULT STDMETHODCALLTYPE nextSibling( |
|
155 /* [retval][out] */ IDOMNode** result); |
|
156 |
|
157 virtual HRESULT STDMETHODCALLTYPE attributes( |
|
158 /* [retval][out] */ IDOMNamedNodeMap** result); |
|
159 |
|
160 virtual HRESULT STDMETHODCALLTYPE ownerDocument( |
|
161 /* [retval][out] */ IDOMDocument** result); |
|
162 |
|
163 virtual HRESULT STDMETHODCALLTYPE insertBefore( |
|
164 /* [in] */ IDOMNode* newChild, |
|
165 /* [in] */ IDOMNode* refChild, |
|
166 /* [retval][out] */ IDOMNode** result); |
|
167 |
|
168 virtual HRESULT STDMETHODCALLTYPE replaceChild( |
|
169 /* [in] */ IDOMNode* newChild, |
|
170 /* [in] */ IDOMNode* oldChild, |
|
171 /* [retval][out] */ IDOMNode** result); |
|
172 |
|
173 virtual HRESULT STDMETHODCALLTYPE removeChild( |
|
174 /* [in] */ IDOMNode* oldChild, |
|
175 /* [retval][out] */ IDOMNode** result); |
|
176 |
|
177 virtual HRESULT STDMETHODCALLTYPE appendChild( |
|
178 /* [in] */ IDOMNode* oldChild, |
|
179 /* [retval][out] */ IDOMNode** result); |
|
180 |
|
181 virtual HRESULT STDMETHODCALLTYPE hasChildNodes( |
|
182 /* [retval][out] */ BOOL* result); |
|
183 |
|
184 virtual HRESULT STDMETHODCALLTYPE cloneNode( |
|
185 /* [in] */ BOOL deep, |
|
186 /* [retval][out] */ IDOMNode** result); |
|
187 |
|
188 virtual HRESULT STDMETHODCALLTYPE normalize( void); |
|
189 |
|
190 virtual HRESULT STDMETHODCALLTYPE isSupported( |
|
191 /* [in] */ BSTR feature, |
|
192 /* [in] */ BSTR version, |
|
193 /* [retval][out] */ BOOL* result); |
|
194 |
|
195 virtual HRESULT STDMETHODCALLTYPE namespaceURI( |
|
196 /* [retval][out] */ BSTR* result); |
|
197 |
|
198 virtual HRESULT STDMETHODCALLTYPE prefix( |
|
199 /* [retval][out] */ BSTR* result); |
|
200 |
|
201 virtual HRESULT STDMETHODCALLTYPE setPrefix( |
|
202 /* [in] */ BSTR prefix); |
|
203 |
|
204 virtual HRESULT STDMETHODCALLTYPE localName( |
|
205 /* [retval][out] */ BSTR* result); |
|
206 |
|
207 virtual HRESULT STDMETHODCALLTYPE hasAttributes( |
|
208 /* [retval][out] */ BOOL* result); |
|
209 |
|
210 virtual HRESULT STDMETHODCALLTYPE isSameNode( |
|
211 /* [in] */ IDOMNode* other, |
|
212 /* [retval][out] */ BOOL* result); |
|
213 |
|
214 virtual HRESULT STDMETHODCALLTYPE isEqualNode( |
|
215 /* [in] */ IDOMNode* other, |
|
216 /* [retval][out] */ BOOL* result); |
|
217 |
|
218 virtual HRESULT STDMETHODCALLTYPE textContent( |
|
219 /* [retval][out] */ BSTR* result); |
|
220 |
|
221 virtual HRESULT STDMETHODCALLTYPE setTextContent( |
|
222 /* [in] */ BSTR text); |
|
223 |
|
224 // IDOMEventTarget |
|
225 virtual HRESULT STDMETHODCALLTYPE addEventListener( |
|
226 /* [in] */ BSTR type, |
|
227 /* [in] */ IDOMEventListener *listener, |
|
228 /* [in] */ BOOL useCapture); |
|
229 |
|
230 virtual HRESULT STDMETHODCALLTYPE removeEventListener( |
|
231 /* [in] */ BSTR type, |
|
232 /* [in] */ IDOMEventListener *listener, |
|
233 /* [in] */ BOOL useCapture); |
|
234 |
|
235 virtual HRESULT STDMETHODCALLTYPE dispatchEvent( |
|
236 /* [in] */ IDOMEvent *evt, |
|
237 /* [retval][out] */ BOOL* result); |
|
238 |
|
239 // DOMNode |
|
240 WebCore::Node* node() const { return m_node; } |
|
241 |
|
242 protected: |
|
243 WebCore::Node* m_node; |
|
244 }; |
|
245 |
|
246 class DOMNodeList : public DOMObject, public IDOMNodeList { |
|
247 protected: |
|
248 DOMNodeList(WebCore::NodeList* l); |
|
249 ~DOMNodeList(); |
|
250 |
|
251 public: |
|
252 static IDOMNodeList* createInstance(WebCore::NodeList* l); |
|
253 |
|
254 public: |
|
255 // IUnknown |
|
256 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
|
257 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMObject::AddRef(); } |
|
258 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMObject::Release(); } |
|
259 |
|
260 // IWebScriptObject |
|
261 virtual HRESULT STDMETHODCALLTYPE throwException( |
|
262 /* [in] */ BSTR exceptionMessage, |
|
263 /* [retval][out] */ BOOL* result) { return DOMObject::throwException(exceptionMessage, result); } |
|
264 |
|
265 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( |
|
266 /* [in] */ BSTR name, |
|
267 /* [size_is][in] */ const VARIANT args[ ], |
|
268 /* [in] */ int cArgs, |
|
269 /* [retval][out] */ VARIANT* result) { return DOMObject::callWebScriptMethod(name, args, cArgs, result); } |
|
270 |
|
271 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( |
|
272 /* [in] */ BSTR script, |
|
273 /* [retval][out] */ VARIANT* result) { return DOMObject::evaluateWebScript(script, result); } |
|
274 |
|
275 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( |
|
276 /* [in] */ BSTR name) { return DOMObject::removeWebScriptKey(name); } |
|
277 |
|
278 virtual HRESULT STDMETHODCALLTYPE stringRepresentation( |
|
279 /* [retval][out] */ BSTR* stringRepresentation) { return DOMObject::stringRepresentation(stringRepresentation); } |
|
280 |
|
281 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( |
|
282 /* [in] */ unsigned int index, |
|
283 /* [retval][out] */ VARIANT* result) { return DOMObject::webScriptValueAtIndex(index, result); } |
|
284 |
|
285 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( |
|
286 /* [in] */ unsigned int index, |
|
287 /* [in] */ VARIANT val) { return DOMObject::setWebScriptValueAtIndex(index, val); } |
|
288 |
|
289 virtual HRESULT STDMETHODCALLTYPE setException( |
|
290 /* [in] */ BSTR description) { return DOMObject::setException(description); } |
|
291 |
|
292 // IDOMNodeList |
|
293 virtual HRESULT STDMETHODCALLTYPE item( |
|
294 /* [in] */ UINT index, |
|
295 /* [retval][out] */ IDOMNode** result); |
|
296 |
|
297 virtual HRESULT STDMETHODCALLTYPE length( |
|
298 /* [retval][out] */ UINT* result); |
|
299 |
|
300 protected: |
|
301 WebCore::NodeList* m_nodeList; |
|
302 }; |
|
303 |
|
304 class DOMDocument : public DOMNode, public IDOMDocument, public IDOMViewCSS, public IDOMDocumentEvent { |
|
305 protected: |
|
306 DOMDocument(WebCore::Document* d); |
|
307 ~DOMDocument(); |
|
308 |
|
309 public: |
|
310 static IDOMDocument* createInstance(WebCore::Document* d); |
|
311 |
|
312 public: |
|
313 // IUnknown |
|
314 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
|
315 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMNode::AddRef(); } |
|
316 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMNode::Release(); } |
|
317 |
|
318 // IWebScriptObject |
|
319 virtual HRESULT STDMETHODCALLTYPE throwException( |
|
320 /* [in] */ BSTR exceptionMessage, |
|
321 /* [retval][out] */ BOOL* result) { return DOMNode::throwException(exceptionMessage, result); } |
|
322 |
|
323 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( |
|
324 /* [in] */ BSTR name, |
|
325 /* [size_is][in] */ const VARIANT args[ ], |
|
326 /* [in] */ int cArgs, |
|
327 /* [retval][out] */ VARIANT* result) { return DOMNode::callWebScriptMethod(name, args, cArgs, result); } |
|
328 |
|
329 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( |
|
330 /* [in] */ BSTR script, |
|
331 /* [retval][out] */ VARIANT* result) { return DOMNode::evaluateWebScript(script, result); } |
|
332 |
|
333 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( |
|
334 /* [in] */ BSTR name) { return DOMNode::removeWebScriptKey(name); } |
|
335 |
|
336 virtual HRESULT STDMETHODCALLTYPE stringRepresentation( |
|
337 /* [retval][out] */ BSTR* stringRepresentation) { return DOMNode::stringRepresentation(stringRepresentation); } |
|
338 |
|
339 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( |
|
340 /* [in] */ unsigned int index, |
|
341 /* [retval][out] */ VARIANT* result) { return DOMNode::webScriptValueAtIndex(index, result); } |
|
342 |
|
343 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( |
|
344 /* [in] */ unsigned int index, |
|
345 /* [in] */ VARIANT val) { return DOMNode::setWebScriptValueAtIndex(index, val); } |
|
346 |
|
347 virtual HRESULT STDMETHODCALLTYPE setException( |
|
348 /* [in] */ BSTR description) { return DOMNode::setException(description); } |
|
349 |
|
350 // IDOMNode |
|
351 virtual HRESULT STDMETHODCALLTYPE nodeName( |
|
352 /* [retval][out] */ BSTR* result) { return DOMNode::nodeName(result); } |
|
353 |
|
354 virtual HRESULT STDMETHODCALLTYPE nodeValue( |
|
355 /* [retval][out] */ BSTR* result) { return DOMNode::nodeValue(result); } |
|
356 |
|
357 virtual HRESULT STDMETHODCALLTYPE setNodeValue( |
|
358 /* [in] */ BSTR value) { return DOMNode::setNodeValue(value); } |
|
359 |
|
360 virtual HRESULT STDMETHODCALLTYPE nodeType( |
|
361 /* [retval][out] */ unsigned short* result) { return DOMNode::nodeType(result); } |
|
362 |
|
363 virtual HRESULT STDMETHODCALLTYPE parentNode( |
|
364 /* [retval][out] */ IDOMNode** result) { return DOMNode::parentNode(result); } |
|
365 |
|
366 virtual HRESULT STDMETHODCALLTYPE childNodes( |
|
367 /* [retval][out] */ IDOMNodeList** result) { return DOMNode::childNodes(result); } |
|
368 |
|
369 virtual HRESULT STDMETHODCALLTYPE firstChild( |
|
370 /* [retval][out] */ IDOMNode** result) { return DOMNode::firstChild(result); } |
|
371 |
|
372 virtual HRESULT STDMETHODCALLTYPE lastChild( |
|
373 /* [retval][out] */ IDOMNode** result) { return DOMNode::lastChild(result); } |
|
374 |
|
375 virtual HRESULT STDMETHODCALLTYPE previousSibling( |
|
376 /* [retval][out] */ IDOMNode** result) { return DOMNode::previousSibling(result); } |
|
377 |
|
378 virtual HRESULT STDMETHODCALLTYPE nextSibling( |
|
379 /* [retval][out] */ IDOMNode** result) { return DOMNode::nextSibling(result); } |
|
380 |
|
381 virtual HRESULT STDMETHODCALLTYPE attributes( |
|
382 /* [retval][out] */ IDOMNamedNodeMap** result) { return DOMNode::attributes(result); } |
|
383 |
|
384 virtual HRESULT STDMETHODCALLTYPE ownerDocument( |
|
385 /* [retval][out] */ IDOMDocument** result) { return DOMNode::ownerDocument(result); } |
|
386 |
|
387 virtual HRESULT STDMETHODCALLTYPE insertBefore( |
|
388 /* [in] */ IDOMNode* newChild, |
|
389 /* [in] */ IDOMNode* refChild, |
|
390 /* [retval][out] */ IDOMNode** result) { return DOMNode::insertBefore(newChild, refChild, result); } |
|
391 |
|
392 virtual HRESULT STDMETHODCALLTYPE replaceChild( |
|
393 /* [in] */ IDOMNode* newChild, |
|
394 /* [in] */ IDOMNode* oldChild, |
|
395 /* [retval][out] */ IDOMNode** result) { return DOMNode::replaceChild(newChild, oldChild, result); } |
|
396 |
|
397 virtual HRESULT STDMETHODCALLTYPE removeChild( |
|
398 /* [in] */ IDOMNode* oldChild, |
|
399 /* [retval][out] */ IDOMNode** result) { return DOMNode::removeChild(oldChild, result); } |
|
400 |
|
401 virtual HRESULT STDMETHODCALLTYPE appendChild( |
|
402 /* [in] */ IDOMNode* oldChild, |
|
403 /* [retval][out] */ IDOMNode** result) { return DOMNode::appendChild(oldChild, result); } |
|
404 |
|
405 virtual HRESULT STDMETHODCALLTYPE hasChildNodes( |
|
406 /* [retval][out] */ BOOL* result) { return DOMNode::hasChildNodes(result); } |
|
407 |
|
408 virtual HRESULT STDMETHODCALLTYPE cloneNode( |
|
409 /* [in] */ BOOL deep, |
|
410 /* [retval][out] */ IDOMNode** result) { return DOMNode::cloneNode(deep, result); } |
|
411 |
|
412 virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMNode::normalize(); } |
|
413 |
|
414 virtual HRESULT STDMETHODCALLTYPE isSupported( |
|
415 /* [in] */ BSTR feature, |
|
416 /* [in] */ BSTR version, |
|
417 /* [retval][out] */ BOOL* result) { return DOMNode::isSupported(feature, version, result); } |
|
418 |
|
419 virtual HRESULT STDMETHODCALLTYPE namespaceURI( |
|
420 /* [retval][out] */ BSTR* result) { return DOMNode::namespaceURI(result); } |
|
421 |
|
422 virtual HRESULT STDMETHODCALLTYPE prefix( |
|
423 /* [retval][out] */ BSTR* result) { return DOMNode::prefix(result); } |
|
424 |
|
425 virtual HRESULT STDMETHODCALLTYPE setPrefix( |
|
426 /* [in] */ BSTR prefix) { return DOMNode::setPrefix(prefix); } |
|
427 |
|
428 virtual HRESULT STDMETHODCALLTYPE localName( |
|
429 /* [retval][out] */ BSTR* result) { return DOMNode::localName(result); } |
|
430 |
|
431 virtual HRESULT STDMETHODCALLTYPE hasAttributes( |
|
432 /* [retval][out] */ BOOL* result) { return DOMNode::hasAttributes(result); } |
|
433 |
|
434 virtual HRESULT STDMETHODCALLTYPE isSameNode( |
|
435 /* [in] */ IDOMNode* other, |
|
436 /* [retval][out] */ BOOL* result) { return DOMNode::isSameNode(other, result); } |
|
437 |
|
438 virtual HRESULT STDMETHODCALLTYPE isEqualNode( |
|
439 /* [in] */ IDOMNode* other, |
|
440 /* [retval][out] */ BOOL* result) { return DOMNode::isEqualNode(other, result); } |
|
441 |
|
442 virtual HRESULT STDMETHODCALLTYPE textContent( |
|
443 /* [retval][out] */ BSTR* result) { return DOMNode::textContent(result); } |
|
444 |
|
445 virtual HRESULT STDMETHODCALLTYPE setTextContent( |
|
446 /* [in] */ BSTR text) { return DOMNode::setTextContent(text); } |
|
447 |
|
448 // IDOMDocument |
|
449 virtual HRESULT STDMETHODCALLTYPE doctype( |
|
450 /* [retval][out] */ IDOMDocumentType** result); |
|
451 |
|
452 virtual HRESULT STDMETHODCALLTYPE implementation( |
|
453 /* [retval][out] */ IDOMImplementation** result); |
|
454 |
|
455 virtual HRESULT STDMETHODCALLTYPE documentElement( |
|
456 /* [retval][out] */ IDOMElement** result); |
|
457 |
|
458 virtual HRESULT STDMETHODCALLTYPE createElement( |
|
459 /* [in] */ BSTR tagName, |
|
460 /* [retval][out] */ IDOMElement** result); |
|
461 |
|
462 virtual HRESULT STDMETHODCALLTYPE createDocumentFragment( |
|
463 /* [retval][out] */ IDOMDocumentFragment** result); |
|
464 |
|
465 virtual HRESULT STDMETHODCALLTYPE createTextNode( |
|
466 /* [in] */ BSTR data, |
|
467 /* [retval][out] */ IDOMText** result); |
|
468 |
|
469 virtual HRESULT STDMETHODCALLTYPE createComment( |
|
470 /* [in] */ BSTR data, |
|
471 /* [retval][out] */ IDOMComment** result); |
|
472 |
|
473 virtual HRESULT STDMETHODCALLTYPE createCDATASection( |
|
474 /* [in] */ BSTR data, |
|
475 /* [retval][out] */ IDOMCDATASection** result); |
|
476 |
|
477 virtual HRESULT STDMETHODCALLTYPE createProcessingInstruction( |
|
478 /* [in] */ BSTR target, |
|
479 /* [in] */ BSTR data, |
|
480 /* [retval][out] */ IDOMProcessingInstruction** result); |
|
481 |
|
482 virtual HRESULT STDMETHODCALLTYPE createAttribute( |
|
483 /* [in] */ BSTR name, |
|
484 /* [retval][out] */ IDOMAttr** result); |
|
485 |
|
486 virtual HRESULT STDMETHODCALLTYPE createEntityReference( |
|
487 /* [in] */ BSTR name, |
|
488 /* [retval][out] */ IDOMEntityReference** result); |
|
489 |
|
490 virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( |
|
491 /* [in] */ BSTR tagName, |
|
492 /* [retval][out] */ IDOMNodeList** result); |
|
493 |
|
494 virtual HRESULT STDMETHODCALLTYPE importNode( |
|
495 /* [in] */ IDOMNode* importedNode, |
|
496 /* [in] */ BOOL deep, |
|
497 /* [retval][out] */ IDOMNode** result); |
|
498 |
|
499 virtual HRESULT STDMETHODCALLTYPE createElementNS( |
|
500 /* [in] */ BSTR namespaceURI, |
|
501 /* [in] */ BSTR qualifiedName, |
|
502 /* [retval][out] */ IDOMElement** result); |
|
503 |
|
504 virtual HRESULT STDMETHODCALLTYPE createAttributeNS( |
|
505 /* [in] */ BSTR namespaceURI, |
|
506 /* [in] */ BSTR qualifiedName, |
|
507 /* [retval][out] */ IDOMAttr** result); |
|
508 |
|
509 virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( |
|
510 /* [in] */ BSTR namespaceURI, |
|
511 /* [in] */ BSTR localName, |
|
512 /* [retval][out] */ IDOMNodeList** result); |
|
513 |
|
514 virtual HRESULT STDMETHODCALLTYPE getElementById( |
|
515 /* [in] */ BSTR elementId, |
|
516 /* [retval][out] */ IDOMElement** result); |
|
517 |
|
518 // IDOMViewCSS |
|
519 virtual HRESULT STDMETHODCALLTYPE getComputedStyle( |
|
520 /* [in] */ IDOMElement* elt, |
|
521 /* [in] */ BSTR pseudoElt, |
|
522 /* [retval][out] */ IDOMCSSStyleDeclaration** result); |
|
523 |
|
524 // IDOMDocumentEvent |
|
525 virtual HRESULT STDMETHODCALLTYPE createEvent( |
|
526 /* [in] */ BSTR eventType, |
|
527 /* [retval][out] */ IDOMEvent** result); |
|
528 |
|
529 // DOMDocument |
|
530 WebCore::Document* document() { return m_document; } |
|
531 |
|
532 protected: |
|
533 WebCore::Document* m_document; |
|
534 }; |
|
535 |
|
536 class DOMElement : public DOMNode, public IDOMElement, public IDOMElementPrivate, public IDOMNodeExtensions, public IDOMElementCSSInlineStyle, public IDOMElementExtensions { |
|
537 protected: |
|
538 DOMElement(WebCore::Element* e); |
|
539 ~DOMElement(); |
|
540 |
|
541 public: |
|
542 static IDOMElement* createInstance(WebCore::Element* e); |
|
543 |
|
544 // IUnknown |
|
545 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
|
546 virtual ULONG STDMETHODCALLTYPE AddRef(void) { return DOMNode::AddRef(); } |
|
547 virtual ULONG STDMETHODCALLTYPE Release(void) { return DOMNode::Release(); } |
|
548 |
|
549 // IWebScriptObject |
|
550 virtual HRESULT STDMETHODCALLTYPE throwException( |
|
551 /* [in] */ BSTR exceptionMessage, |
|
552 /* [retval][out] */ BOOL* result) { return DOMNode::throwException(exceptionMessage, result); } |
|
553 |
|
554 virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod( |
|
555 /* [in] */ BSTR name, |
|
556 /* [size_is][in] */ const VARIANT args[ ], |
|
557 /* [in] */ int cArgs, |
|
558 /* [retval][out] */ VARIANT* result) { return DOMNode::callWebScriptMethod(name, args, cArgs, result); } |
|
559 |
|
560 virtual HRESULT STDMETHODCALLTYPE evaluateWebScript( |
|
561 /* [in] */ BSTR script, |
|
562 /* [retval][out] */ VARIANT* result) { return DOMNode::evaluateWebScript(script, result); } |
|
563 |
|
564 virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey( |
|
565 /* [in] */ BSTR name) { return DOMNode::removeWebScriptKey(name); } |
|
566 |
|
567 virtual HRESULT STDMETHODCALLTYPE stringRepresentation( |
|
568 /* [retval][out] */ BSTR* stringRepresentation) { return DOMNode::stringRepresentation(stringRepresentation); } |
|
569 |
|
570 virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex( |
|
571 /* [in] */ unsigned int index, |
|
572 /* [retval][out] */ VARIANT* result) { return DOMNode::webScriptValueAtIndex(index, result); } |
|
573 |
|
574 virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex( |
|
575 /* [in] */ unsigned int index, |
|
576 /* [in] */ VARIANT val) { return DOMNode::setWebScriptValueAtIndex(index, val); } |
|
577 |
|
578 virtual HRESULT STDMETHODCALLTYPE setException( |
|
579 /* [in] */ BSTR description) { return DOMNode::setException(description); } |
|
580 |
|
581 // IDOMNode |
|
582 virtual HRESULT STDMETHODCALLTYPE nodeName( |
|
583 /* [retval][out] */ BSTR* result) { return DOMNode::nodeName(result); } |
|
584 |
|
585 virtual HRESULT STDMETHODCALLTYPE nodeValue( |
|
586 /* [retval][out] */ BSTR* result) { return DOMNode::nodeValue(result); } |
|
587 |
|
588 virtual HRESULT STDMETHODCALLTYPE setNodeValue( |
|
589 /* [in] */ BSTR value) { return DOMNode::setNodeValue(value); } |
|
590 |
|
591 virtual HRESULT STDMETHODCALLTYPE nodeType( |
|
592 /* [retval][out] */ unsigned short* result) { return DOMNode::nodeType(result); } |
|
593 |
|
594 virtual HRESULT STDMETHODCALLTYPE parentNode( |
|
595 /* [retval][out] */ IDOMNode** result) { return DOMNode::parentNode(result); } |
|
596 |
|
597 virtual HRESULT STDMETHODCALLTYPE childNodes( |
|
598 /* [retval][out] */ IDOMNodeList** result) { return DOMNode::childNodes(result); } |
|
599 |
|
600 virtual HRESULT STDMETHODCALLTYPE firstChild( |
|
601 /* [retval][out] */ IDOMNode** result) { return DOMNode::firstChild(result); } |
|
602 |
|
603 virtual HRESULT STDMETHODCALLTYPE lastChild( |
|
604 /* [retval][out] */ IDOMNode** result) { return DOMNode::lastChild(result); } |
|
605 |
|
606 virtual HRESULT STDMETHODCALLTYPE previousSibling( |
|
607 /* [retval][out] */ IDOMNode** result) { return DOMNode::previousSibling(result); } |
|
608 |
|
609 virtual HRESULT STDMETHODCALLTYPE nextSibling( |
|
610 /* [retval][out] */ IDOMNode** result) { return DOMNode::nextSibling(result); } |
|
611 |
|
612 virtual HRESULT STDMETHODCALLTYPE attributes( |
|
613 /* [retval][out] */ IDOMNamedNodeMap** result) { return DOMNode::attributes(result); } |
|
614 |
|
615 virtual HRESULT STDMETHODCALLTYPE ownerDocument( |
|
616 /* [retval][out] */ IDOMDocument** result) { return DOMNode::ownerDocument(result); } |
|
617 |
|
618 virtual HRESULT STDMETHODCALLTYPE insertBefore( |
|
619 /* [in] */ IDOMNode* newChild, |
|
620 /* [in] */ IDOMNode* refChild, |
|
621 /* [retval][out] */ IDOMNode** result) { return DOMNode::insertBefore(newChild, refChild, result); } |
|
622 |
|
623 virtual HRESULT STDMETHODCALLTYPE replaceChild( |
|
624 /* [in] */ IDOMNode* newChild, |
|
625 /* [in] */ IDOMNode* oldChild, |
|
626 /* [retval][out] */ IDOMNode** result) { return DOMNode::replaceChild(newChild, oldChild, result); } |
|
627 |
|
628 virtual HRESULT STDMETHODCALLTYPE removeChild( |
|
629 /* [in] */ IDOMNode* oldChild, |
|
630 /* [retval][out] */ IDOMNode** result) { return DOMNode::removeChild(oldChild, result); } |
|
631 |
|
632 virtual HRESULT STDMETHODCALLTYPE appendChild( |
|
633 /* [in] */ IDOMNode* oldChild, |
|
634 /* [retval][out] */ IDOMNode** result) { return DOMNode::appendChild(oldChild, result); } |
|
635 |
|
636 virtual HRESULT STDMETHODCALLTYPE hasChildNodes( |
|
637 /* [retval][out] */ BOOL* result) { return DOMNode::hasChildNodes(result); } |
|
638 |
|
639 virtual HRESULT STDMETHODCALLTYPE cloneNode( |
|
640 /* [in] */ BOOL deep, |
|
641 /* [retval][out] */ IDOMNode** result) { return DOMNode::cloneNode(deep, result); } |
|
642 |
|
643 virtual HRESULT STDMETHODCALLTYPE normalize( void) { return DOMNode::normalize(); } |
|
644 |
|
645 virtual HRESULT STDMETHODCALLTYPE isSupported( |
|
646 /* [in] */ BSTR feature, |
|
647 /* [in] */ BSTR version, |
|
648 /* [retval][out] */ BOOL* result) { return DOMNode::isSupported(feature, version, result); } |
|
649 |
|
650 virtual HRESULT STDMETHODCALLTYPE namespaceURI( |
|
651 /* [retval][out] */ BSTR* result) { return DOMNode::namespaceURI(result); } |
|
652 |
|
653 virtual HRESULT STDMETHODCALLTYPE prefix( |
|
654 /* [retval][out] */ BSTR* result) { return DOMNode::prefix(result); } |
|
655 |
|
656 virtual HRESULT STDMETHODCALLTYPE setPrefix( |
|
657 /* [in] */ BSTR prefix) { return DOMNode::setPrefix(prefix); } |
|
658 |
|
659 virtual HRESULT STDMETHODCALLTYPE localName( |
|
660 /* [retval][out] */ BSTR* result) { return DOMNode::localName(result); } |
|
661 |
|
662 virtual HRESULT STDMETHODCALLTYPE hasAttributes( |
|
663 /* [retval][out] */ BOOL* result) { return DOMNode::hasAttributes(result); } |
|
664 |
|
665 virtual HRESULT STDMETHODCALLTYPE isSameNode( |
|
666 /* [in] */ IDOMNode* other, |
|
667 /* [retval][out] */ BOOL* result) { return DOMNode::isSameNode(other, result); } |
|
668 |
|
669 virtual HRESULT STDMETHODCALLTYPE isEqualNode( |
|
670 /* [in] */ IDOMNode* other, |
|
671 /* [retval][out] */ BOOL* result) { return DOMNode::isEqualNode(other, result); } |
|
672 |
|
673 virtual HRESULT STDMETHODCALLTYPE textContent( |
|
674 /* [retval][out] */ BSTR* result) { return DOMNode::textContent(result); } |
|
675 |
|
676 virtual HRESULT STDMETHODCALLTYPE setTextContent( |
|
677 /* [in] */ BSTR text) { return DOMNode::setTextContent(text); } |
|
678 |
|
679 // IDOMElement |
|
680 virtual HRESULT STDMETHODCALLTYPE tagName( |
|
681 /* [retval][out] */ BSTR* result); |
|
682 |
|
683 virtual HRESULT STDMETHODCALLTYPE getAttribute( |
|
684 /* [in] */ BSTR name, |
|
685 /* [retval][out] */ BSTR* result); |
|
686 |
|
687 virtual HRESULT STDMETHODCALLTYPE setAttribute( |
|
688 /* [in] */ BSTR name, |
|
689 /* [in] */ BSTR value); |
|
690 |
|
691 virtual HRESULT STDMETHODCALLTYPE removeAttribute( |
|
692 /* [in] */ BSTR name); |
|
693 |
|
694 virtual HRESULT STDMETHODCALLTYPE getAttributeNode( |
|
695 /* [in] */ BSTR name, |
|
696 /* [retval][out] */ IDOMAttr** result); |
|
697 |
|
698 virtual HRESULT STDMETHODCALLTYPE setAttributeNode( |
|
699 /* [in] */ IDOMAttr *newAttr, |
|
700 /* [retval][out] */ IDOMAttr** result); |
|
701 |
|
702 virtual HRESULT STDMETHODCALLTYPE removeAttributeNode( |
|
703 /* [in] */ IDOMAttr *oldAttr, |
|
704 /* [retval][out] */ IDOMAttr** result); |
|
705 |
|
706 virtual HRESULT STDMETHODCALLTYPE getElementsByTagName( |
|
707 /* [in] */ BSTR name, |
|
708 /* [retval][out] */ IDOMNodeList** result); |
|
709 |
|
710 virtual HRESULT STDMETHODCALLTYPE getAttributeNS( |
|
711 /* [in] */ BSTR namespaceURI, |
|
712 /* [in] */ BSTR localName, |
|
713 /* [retval][out] */ BSTR* result); |
|
714 |
|
715 virtual HRESULT STDMETHODCALLTYPE setAttributeNS( |
|
716 /* [in] */ BSTR namespaceURI, |
|
717 /* [in] */ BSTR qualifiedName, |
|
718 /* [in] */ BSTR value); |
|
719 |
|
720 virtual HRESULT STDMETHODCALLTYPE removeAttributeNS( |
|
721 /* [in] */ BSTR namespaceURI, |
|
722 /* [in] */ BSTR localName); |
|
723 |
|
724 virtual HRESULT STDMETHODCALLTYPE getAttributeNodeNS( |
|
725 /* [in] */ BSTR namespaceURI, |
|
726 /* [in] */ BSTR localName, |
|
727 /* [retval][out] */ IDOMAttr** result); |
|
728 |
|
729 virtual HRESULT STDMETHODCALLTYPE setAttributeNodeNS( |
|
730 /* [in] */ IDOMAttr *newAttr, |
|
731 /* [retval][out] */ IDOMAttr** result); |
|
732 |
|
733 virtual HRESULT STDMETHODCALLTYPE getElementsByTagNameNS( |
|
734 /* [in] */ BSTR namespaceURI, |
|
735 /* [in] */ BSTR localName, |
|
736 /* [retval][out] */ IDOMNodeList** result); |
|
737 |
|
738 virtual HRESULT STDMETHODCALLTYPE hasAttribute( |
|
739 /* [in] */ BSTR name, |
|
740 /* [retval][out] */ BOOL* result); |
|
741 |
|
742 virtual HRESULT STDMETHODCALLTYPE hasAttributeNS( |
|
743 /* [in] */ BSTR namespaceURI, |
|
744 /* [in] */ BSTR localName, |
|
745 /* [retval][out] */ BOOL* result); |
|
746 |
|
747 virtual HRESULT STDMETHODCALLTYPE focus( void); |
|
748 |
|
749 virtual HRESULT STDMETHODCALLTYPE blur( void); |
|
750 |
|
751 // IDOMNodeExtensions |
|
752 virtual HRESULT STDMETHODCALLTYPE boundingBox( |
|
753 /* [retval][out] */ LPRECT rect); |
|
754 |
|
755 virtual HRESULT STDMETHODCALLTYPE lineBoxRects( |
|
756 /* [size_is][in] */ RECT* rects, |
|
757 /* [in] */ int cRects); |
|
758 |
|
759 // IDOMElementPrivate |
|
760 virtual HRESULT STDMETHODCALLTYPE coreElement( |
|
761 void** element); |
|
762 |
|
763 virtual HRESULT STDMETHODCALLTYPE isEqual( |
|
764 /* [in] */ IDOMElement* other, |
|
765 /* [retval][out] */ BOOL* result); |
|
766 |
|
767 virtual HRESULT STDMETHODCALLTYPE isFocused( |
|
768 /* [retval][out] */ BOOL* result); |
|
769 |
|
770 virtual HRESULT STDMETHODCALLTYPE innerText( |
|
771 /* [retval][out] */ BSTR* result); |
|
772 |
|
773 virtual HRESULT STDMETHODCALLTYPE font( |
|
774 WebFontDescription* webFontDescription); |
|
775 |
|
776 virtual HRESULT STDMETHODCALLTYPE renderedImage( |
|
777 /* [retval][out] */ HBITMAP* image); |
|
778 |
|
779 virtual HRESULT STDMETHODCALLTYPE markerTextForListItem( |
|
780 /* [retval][out] */ BSTR* markerText); |
|
781 |
|
782 // IDOMElementCSSInlineStyle |
|
783 virtual HRESULT STDMETHODCALLTYPE style( |
|
784 /* [retval][out] */ IDOMCSSStyleDeclaration** result); |
|
785 |
|
786 // IDOMElementExtensions |
|
787 virtual HRESULT STDMETHODCALLTYPE offsetLeft( |
|
788 /* [retval][out] */ int* result); |
|
789 |
|
790 virtual HRESULT STDMETHODCALLTYPE offsetTop( |
|
791 /* [retval][out] */ int* result); |
|
792 |
|
793 virtual HRESULT STDMETHODCALLTYPE offsetWidth( |
|
794 /* [retval][out] */ int* result); |
|
795 |
|
796 virtual HRESULT STDMETHODCALLTYPE offsetHeight( |
|
797 /* [retval][out] */ int* result); |
|
798 |
|
799 virtual HRESULT STDMETHODCALLTYPE offsetParent( |
|
800 /* [retval][out] */ IDOMElement** result); |
|
801 |
|
802 virtual HRESULT STDMETHODCALLTYPE clientWidth( |
|
803 /* [retval][out] */ int* result); |
|
804 |
|
805 virtual HRESULT STDMETHODCALLTYPE clientHeight( |
|
806 /* [retval][out] */ int* result); |
|
807 |
|
808 virtual HRESULT STDMETHODCALLTYPE scrollLeft( |
|
809 /* [retval][out] */ int* result); |
|
810 |
|
811 virtual HRESULT STDMETHODCALLTYPE setScrollLeft( |
|
812 /* [in] */ int newScrollLeft); |
|
813 |
|
814 virtual HRESULT STDMETHODCALLTYPE scrollTop( |
|
815 /* [retval][out] */ int* result); |
|
816 |
|
817 virtual HRESULT STDMETHODCALLTYPE setScrollTop( |
|
818 /* [in] */ int newScrollTop); |
|
819 |
|
820 virtual HRESULT STDMETHODCALLTYPE scrollWidth( |
|
821 /* [retval][out] */ int* result); |
|
822 |
|
823 virtual HRESULT STDMETHODCALLTYPE scrollHeight( |
|
824 /* [retval][out] */ int* result); |
|
825 |
|
826 virtual HRESULT STDMETHODCALLTYPE scrollIntoView( |
|
827 /* [in] */ BOOL alignWithTop); |
|
828 |
|
829 virtual HRESULT STDMETHODCALLTYPE scrollIntoViewIfNeeded( |
|
830 /* [in] */ BOOL centerIfNeeded); |
|
831 |
|
832 // DOMElement |
|
833 WebCore::Element* element() { return m_element; } |
|
834 |
|
835 protected: |
|
836 WebCore::Element* m_element; |
|
837 }; |
|
838 |
|
839 #endif |