• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
27import "oaidl.idl";
28import "ocidl.idl";
29import "IWebScriptObject.idl";
30#endif
31
32interface IWebScriptObject;
33interface IDOMNodeList;
34interface IDOMNamedNodeMap;
35interface IDOMDocumentType;
36interface IDOMElement;
37interface IDOMDocumentFragment;
38interface IDOMText;
39interface IDOMComment;
40interface IDOMCDATASection;
41interface IDOMProcessingInstruction;
42interface IDOMAttr;
43interface IDOMEntityReference;
44interface IDOMDocument;
45interface IDOMCSSStyleDeclaration;
46/*
47    @interface DOMObject : WebScriptObject <NSCopying>
48*/
49[
50    object,
51    oleautomation,
52    uuid(A27FA225-F34E-425d-88EB-A35BD105A527),
53    pointer_default(unique)
54]
55interface IDOMObject : IWebScriptObject
56{
57}
58
59/*
60    @interface DOMImplementation : DOMObject
61*/
62[
63    object,
64    oleautomation,
65    uuid(6E48C25D-E542-4d1a-BC73-ACDC21E39C56),
66    pointer_default(unique)
67]
68interface IDOMImplementation : IDOMObject
69{
70    /*
71        - (BOOL)hasFeature:(NSString *)feature :(NSString *)version;
72    */
73    HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] BOOL* result);
74
75    /*
76        - (DOMDocumentType *)createDocumentType:(NSString *)qualifiedName :(NSString *)publicId :(NSString *)systemId;
77    */
78    HRESULT createDocumentType([in] BSTR qualifiedName, [in] BSTR publicId, [in] BSTR systemId, [out, retval] IDOMDocumentType** result);
79
80    /*
81        - (DOMDocument *)createDocument:(NSString *)namespaceURI :(NSString *)qualifiedName :(DOMDocumentType *)doctype;
82    */
83    HRESULT createDocument([in] BSTR namespaceURI, [in] BSTR qualifiedName, [in] IDOMDocumentType* doctype, [out, retval] IDOMDocument** result);
84}
85
86/*
87    @interface DOMNode : DOMObject <DOMEventTarget>
88*/
89[
90    object,
91    oleautomation,
92    uuid(3EEA3E20-72DA-4be7-954F-79B5A14AD726),
93    pointer_default(unique)
94]
95interface IDOMNode : IDOMObject
96{
97    /*
98        - (NSString *)nodeName;
99    */
100    HRESULT nodeName([out, retval] BSTR* result);
101
102    /*
103        - (NSString *)nodeValue;
104    */
105    HRESULT nodeValue([out, retval] BSTR* result);
106
107    /*
108        - (void)setNodeValue:(NSString *)string;
109    */
110    HRESULT setNodeValue([in] BSTR value);
111
112    /*
113        - (unsigned short)nodeType;
114    */
115    HRESULT nodeType([out, retval] unsigned short* result);
116
117    /*
118        - (DOMNode *)parentNode;
119    */
120    HRESULT parentNode([out, retval] IDOMNode** result);
121
122    /*
123        - (DOMNodeList *)childNodes;
124    */
125    HRESULT childNodes([out, retval] IDOMNodeList** result);
126
127    /*
128        - (DOMNode *)firstChild;
129    */
130    HRESULT firstChild([out, retval] IDOMNode** result);
131
132    /*
133        - (DOMNode *)lastChild;
134    */
135    HRESULT lastChild([out, retval] IDOMNode** result);
136
137    /*
138        - (DOMNode *)previousSibling;
139    */
140    HRESULT previousSibling([out, retval] IDOMNode** result);
141
142    /*
143        - (DOMNode *)nextSibling;
144    */
145    HRESULT nextSibling([out, retval] IDOMNode** result);
146
147    /*
148        - (DOMNamedNodeMap *)attributes;
149    */
150    HRESULT attributes([out, retval] IDOMNamedNodeMap** result);
151
152    /*
153        - (DOMDocument *)ownerDocument;
154    */
155    HRESULT ownerDocument([out, retval] IDOMDocument** result);
156
157    /*
158        - (DOMNode *)insertBefore:(DOMNode *)newChild :(DOMNode *)refChild;
159    */
160    HRESULT insertBefore([in] IDOMNode* newChild, [in] IDOMNode* refChild, [out, retval] IDOMNode** result);
161
162    /*
163        - (DOMNode *)replaceChild:(DOMNode *)newChild :(DOMNode *)oldChild;
164    */
165    HRESULT replaceChild([in] IDOMNode* newChild, [in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
166
167    /*
168        - (DOMNode *)removeChild:(DOMNode *)oldChild;
169    */
170    HRESULT removeChild([in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
171
172    /*
173        - (DOMNode *)appendChild:(DOMNode *)newChild;
174    */
175    HRESULT appendChild([in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
176
177    /*
178        - (BOOL)hasChildNodes;
179    */
180    HRESULT hasChildNodes([out, retval] BOOL* result);
181
182    /*
183        - (DOMNode *)cloneNode:(BOOL)deep;
184    */
185    HRESULT cloneNode([in] BOOL deep, [out, retval] IDOMNode** result);
186
187    /*
188        - (void)normalize;
189    */
190    HRESULT normalize();
191
192    /*
193        - (BOOL)isSupported:(NSString *)feature :(NSString *)version;
194    */
195    HRESULT isSupported([in] BSTR feature, [in] BSTR version, [out, retval] BOOL* result);
196
197    /*
198        - (NSString *)namespaceURI;
199    */
200    HRESULT namespaceURI([out, retval] BSTR* result);
201
202    /*
203        - (NSString *)prefix;
204    */
205    HRESULT prefix([out, retval] BSTR* result);
206
207    /*
208        - (void)setPrefix:(NSString *)prefix;
209    */
210    HRESULT setPrefix([in] BSTR prefix);
211
212    /*
213        - (NSString *)localName;
214    */
215    HRESULT localName([out, retval] BSTR* result);
216
217    /*
218        - (BOOL)hasAttributes;
219    */
220    HRESULT hasAttributes([out, retval] BOOL* result);
221
222    /*
223        - (BOOL)isSameNode:(DOMNode *)other;
224    */
225    HRESULT isSameNode([in] IDOMNode* other, [out, retval] BOOL* result);
226
227    /*
228        - (BOOL)isEqualNode:(DOMNode *)other;
229    */
230    HRESULT isEqualNode([in] IDOMNode* other, [out, retval] BOOL* result);
231
232    /*
233        - (NSString *)textContent;
234    */
235    HRESULT textContent([out, retval] BSTR* result);
236
237    /*
238        - (void)setTextContent:(NSString *)text;
239    */
240    HRESULT setTextContent([in] BSTR text);
241}
242
243/*
244    @interface DOMNodeList : DOMObject
245*/
246[
247    object,
248    oleautomation,
249    uuid(10A05A96-CBD9-4493-83AD-FAFB952615CE),
250    pointer_default(unique)
251]
252interface IDOMNodeList : IDOMObject
253{
254    /*
255        - (DOMNode *)item:(unsigned)index;
256    */
257    HRESULT item([in] UINT index, [out, retval] IDOMNode** result);
258
259    /*
260        - (unsigned)length;
261    */
262    HRESULT length([out, retval] UINT* result);
263}
264
265/*
266    @interface DOMNamedNodeMap : DOMObject
267*/
268[
269    object,
270    oleautomation,
271    uuid(E6CBF396-C9F9-431b-A8D6-BCB525067E9F),
272    pointer_default(unique)
273]
274interface IDOMNamedNodeMap : IDOMObject
275{
276    /*
277        - (DOMNode *)getNamedItem:(NSString *)name;
278    */
279    HRESULT getNamedItem([in] BSTR name, [out, retval] IDOMNode** result);
280
281    /*
282        - (DOMNode *)setNamedItem:(DOMNode *)arg;
283    */
284    HRESULT setNamedItem([in] IDOMNode* arg, [out, retval] IDOMNode** result);
285
286    /*
287        - (DOMNode *)removeNamedItem:(NSString *)name;
288    */
289    HRESULT removeNamedItem([in] BSTR name, [out, retval] IDOMNode** result);
290
291    /*
292        - (DOMNode *)item:(unsigned)index;
293    */
294    HRESULT item([in] UINT index, [out, retval] IDOMNode** result);
295
296    /*
297        - (unsigned)length;
298    */
299    HRESULT length([out, retval] UINT* result);
300
301    /*
302        - (DOMNode *)getNamedItemNS:(NSString *)namespaceURI :(NSString *)localName;
303    */
304    HRESULT getNamedItemNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNode** result);
305
306    /*
307        - (DOMNode *)setNamedItemNS:(DOMNode *)arg;
308    */
309    HRESULT setNamedItemNS([in] IDOMNode* arg, [out, retval] IDOMNode** result);
310
311    /*
312        - (DOMNode *)removeNamedItemNS:(NSString *)namespaceURI :(NSString *)localName;
313    */
314    HRESULT removeNamedItemNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNode** result);
315}
316
317/*
318    @interface DOMDocument : IDOMNode
319*/
320[
321    object,
322    oleautomation,
323    uuid(A83C2C44-0BAC-45c7-8E17-6A49975D5CCA),
324    pointer_default(unique)
325]
326interface IDOMDocument : IDOMNode
327{
328    /*
329        - (DOMDocumentType *)doctype;
330    */
331    HRESULT doctype([out, retval] IDOMDocumentType** result);
332
333    /*
334        - (DOMImplementation *)implementation;
335    */
336    HRESULT implementation([out, retval] IDOMImplementation** result);
337
338    /*
339        - (DOMElement *)documentElement;
340    */
341    HRESULT documentElement([out, retval] IDOMElement** result);
342
343    /*
344        - (DOMElement *)createElement:(NSString *)tagName;
345    */
346    HRESULT createElement([in] BSTR tagName, [out, retval] IDOMElement** result);
347
348    /*
349        - (DOMDocumentFragment *)createDocumentFragment;
350    */
351    HRESULT createDocumentFragment([out, retval] IDOMDocumentFragment** result);
352
353    /*
354        - (DOMText *)createTextNode:(NSString *)data;
355    */
356    HRESULT createTextNode([in] BSTR data, [out, retval] IDOMText** result);
357
358    /*
359        - (DOMComment *)createComment:(NSString *)data;
360    */
361    HRESULT createComment([in] BSTR data, [out, retval] IDOMComment** result);
362
363    /*
364        - (DOMCDATASection *)createCDATASection:(NSString *)data;
365    */
366    HRESULT createCDATASection([in] BSTR data, [out, retval] IDOMCDATASection** result);
367
368    /*
369        - (DOMProcessingInstruction *)createProcessingInstruction:(NSString *)target :(NSString *)data;
370    */
371    HRESULT createProcessingInstruction([in] BSTR target, [in] BSTR data, [out, retval] IDOMProcessingInstruction** result);
372
373    /*
374        - (DOMAttr *)createAttribute:(NSString *)name;
375    */
376    HRESULT createAttribute([in] BSTR name, [out, retval] IDOMAttr** result);
377
378    /*
379        - (DOMEntityReference *)createEntityReference:(NSString *)name;
380    */
381    HRESULT createEntityReference([in] BSTR name, [out, retval] IDOMEntityReference** result);
382
383    /*
384        - (DOMNodeList *)getElementsByTagName:(NSString *)tagname;
385    */
386    HRESULT getElementsByTagName([in] BSTR tagName, [out, retval] IDOMNodeList** result);
387
388    /*
389        - (DOMNode *)importNode:(DOMNode *)importedNode :(BOOL)deep;
390    */
391    HRESULT importNode([in] IDOMNode* importedNode, [in] BOOL deep, [out, retval] IDOMNode** result);
392
393    /*
394        - (DOMElement *)createElementNS:(NSString *)namespaceURI :(NSString *)qualifiedName;
395    */
396    HRESULT createElementNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [out, retval] IDOMElement** result);
397
398    /*
399        - (DOMAttr *)createAttributeNS:(NSString *)namespaceURI :(NSString *)qualifiedName;
400    */
401    HRESULT createAttributeNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [out, retval] IDOMAttr** result);
402
403    /*
404        - (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI :(NSString *)localName;
405    */
406    HRESULT getElementsByTagNameNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNodeList** result);
407
408    /*
409        - (DOMElement *)getElementById:(NSString *)elementId;
410    */
411    HRESULT getElementById([in] BSTR elementId, [out, retval] IDOMElement** result);
412}
413
414/*
415    @interface DOMCharacterData : IDOMNode
416*/
417[
418    object,
419    oleautomation,
420    uuid(F4DED047-FE61-461a-BDBD-BB87F79DB713),
421    pointer_default(unique)
422]
423interface IDOMCharacterData : IDOMNode
424{
425    /*
426        - (NSString *)data;
427    */
428    HRESULT data([out, retval] BSTR* result);
429
430    /*
431        - (void)setData:(NSString *)data;
432    */
433    HRESULT setData([in] BSTR data);
434
435    /*
436        - (unsigned)length;
437    */
438    HRESULT length([out, retval] UINT* result);
439
440    /*
441        - (NSString *)substringData:(unsigned)offset :(unsigned)count;
442    */
443    HRESULT substringData([in] UINT offset, [in] UINT count, [out, retval] BSTR* result);
444
445    /*
446        - (void)appendData:(NSString *)arg;
447    */
448    HRESULT appendData([in] BSTR arg);
449
450    /*
451        - (void)insertData:(unsigned)offset :(NSString *)arg;
452    */
453    HRESULT insertData([in] UINT offset, [in] BSTR arg);
454
455    /*
456        - (void)deleteData:(unsigned)offset :(unsigned) count;
457    */
458    HRESULT deleteData([in] UINT offset, [in] UINT count);
459
460    /*
461        - (void)replaceData:(unsigned)offset :(unsigned)count :(NSString *)arg;
462    */
463    HRESULT replaceData([in] UINT offset, [in] UINT count, [in] BSTR arg);
464}
465
466/*
467    @interface DOMAttr : IDOMNode
468*/
469[
470    object,
471    oleautomation,
472    uuid(B587E098-8206-4b5a-A7DB-422F218571A0),
473    pointer_default(unique)
474]
475interface IDOMAttr : IDOMNode
476{
477    /*
478        - (NSString *)name;
479    */
480    HRESULT name([out, retval] BSTR* result);
481
482    /*
483        - (BOOL)specified;
484    */
485    HRESULT specified([out, retval] BOOL* result);
486
487    /*
488        - (NSString *)value;
489    */
490    HRESULT value([out, retval] BSTR* value);
491
492    /*
493        - (void)setValue:(NSString *)value;
494    */
495    HRESULT setValue([in] BSTR value);
496
497    /*
498        - (DOMElement *)ownerElement;
499    */
500    HRESULT ownerElement([out, retval] IDOMElement** result);
501}
502
503/*
504    @interface DOMElement : IDOMNode
505*/
506[
507    object,
508    oleautomation,
509    uuid(E053A35B-7775-4859-80EA-C35D02D145A2),
510    pointer_default(unique)
511]
512interface IDOMElement : IDOMNode
513{
514    /*
515        - (NSString *)tagName;
516    */
517    HRESULT tagName([out, retval] BSTR* result);
518
519    /*
520        - (NSString *)getAttribute:(NSString *)name;
521    */
522    HRESULT getAttribute([in] BSTR name, [out, retval] BSTR* result);
523
524    /*
525        - (void)setAttribute:(NSString *)name :(NSString *)value;
526    */
527    HRESULT setAttribute([in] BSTR name, [in] BSTR value);
528
529    /*
530        - (void)removeAttribute:(NSString *)name;
531    */
532    HRESULT removeAttribute([in] BSTR name);
533
534    /*
535        - (DOMAttr *)getAttributeNode:(NSString *)name;
536    */
537    HRESULT getAttributeNode([in] BSTR name, [out, retval] IDOMAttr** result);
538
539    /*
540        - (DOMAttr *)setAttributeNode:(DOMAttr *)newAttr;
541    */
542    HRESULT setAttributeNode([in] IDOMAttr* newAttr, [out, retval] IDOMAttr** result);
543
544    /*
545        - (DOMAttr *)removeAttributeNode:(DOMAttr *)oldAttr;
546    */
547    HRESULT removeAttributeNode([in] IDOMAttr* oldAttr, [out, retval] IDOMAttr** result);
548
549    /*
550        - (DOMNodeList *)getElementsByTagName:(NSString *)name;
551    */
552    HRESULT getElementsByTagName([in] BSTR name, [out, retval] IDOMNodeList** result);
553
554    /*
555        - (NSString *)getAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
556    */
557    HRESULT getAttributeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] BSTR* result);
558
559    /*
560        - (void)setAttributeNS:(NSString *)namespaceURI :(NSString *)qualifiedName :(NSString *)value;
561    */
562    HRESULT setAttributeNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [in] BSTR value);
563
564    /*
565        - (void)removeAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
566    */
567    HRESULT removeAttributeNS([in] BSTR namespaceURI, [in] BSTR localName);
568
569    /*
570        - (DOMAttr *)getAttributeNodeNS:(NSString *)namespaceURI :(NSString *)localName;
571    */
572    HRESULT getAttributeNodeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMAttr** result);
573
574    /*
575        - (DOMAttr *)setAttributeNodeNS:(DOMAttr *)newAttr;
576    */
577    HRESULT setAttributeNodeNS([in] IDOMAttr* newAttr, [out, retval] IDOMAttr** result);
578
579    /*
580        - (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI :(NSString *)localName;
581    */
582    HRESULT getElementsByTagNameNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNodeList** result);
583
584    /*
585        - (BOOL)hasAttribute:(NSString *)name;
586    */
587    HRESULT hasAttribute([in] BSTR name, [out, retval] BOOL* result);
588
589    /*
590        - (BOOL)hasAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
591    */
592    HRESULT hasAttributeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] BOOL* result);
593
594    /*
595        - (void)focus;
596    */
597    HRESULT focus();
598
599    /*
600        - (void)blur;
601    */
602    HRESULT blur();
603}
604
605/*
606    @interface DOMElement (DOMElementExtensions)
607*/
608[
609    object,
610    oleautomation,
611    uuid(98E481F5-4405-4c2a-BF77-1CE95FE5F992),
612    pointer_default(unique)
613]
614interface IDOMElementExtensions : IUnknown
615{
616    /*
617        - (int)offsetLeft;
618    */
619    HRESULT offsetLeft([out, retval] int* result);
620
621    /*
622        - (int)offsetTop;
623    */
624    HRESULT offsetTop([out, retval] int* result);
625
626    /*
627        - (int)offsetWidth;
628    */
629    HRESULT offsetWidth([out, retval] int* result);
630
631    /*
632        - (int)offsetHeight;
633    */
634    HRESULT offsetHeight([out, retval] int* result);
635
636    /*
637        - (DOMElement *)offsetParent;
638    */
639    HRESULT offsetParent([out, retval] IDOMElement** result);
640
641    /*
642        - (int)clientWidth;
643    */
644    HRESULT clientWidth([out, retval] int* result);
645
646    /*
647        - (int)clientHeight;
648    */
649    HRESULT clientHeight([out, retval] int* result);
650
651    /*
652        - (int)scrollLeft;
653    */
654    HRESULT scrollLeft([out, retval] int* result);
655
656    /*
657        - (void)setScrollLeft:(int)newScrollLeft;
658    */
659    HRESULT setScrollLeft([in] int newScrollLeft);
660
661    /*
662        - (int)scrollTop;
663    */
664    HRESULT scrollTop([out, retval] int* result);
665
666    /*
667        - (void)setScrollTop:(int)newScrollTop;
668    */
669    HRESULT setScrollTop([in] int newScrollTop);
670
671    /*
672        - (int)scrollWidth;
673    */
674    HRESULT scrollWidth([out, retval] int* result);
675
676    /*
677        - (int)scrollHeight;
678    */
679    HRESULT scrollHeight([out, retval] int* result);
680
681    /*
682        - (void)scrollIntoView:(BOOL)alignWithTop;
683    */
684    HRESULT scrollIntoView([in] BOOL alignWithTop);
685
686    /*
687        - (void)scrollIntoViewIfNeeded:(BOOL)centerIfNeeded;
688    */
689    HRESULT scrollIntoViewIfNeeded([in] BOOL centerIfNeeded);
690}
691
692/*
693    @interface DOMText : DOMCharacterData
694*/
695[
696    object,
697    oleautomation,
698    uuid(74638F45-1AA0-4db5-958C-82066E00BD2B),
699    pointer_default(unique)
700]
701interface IDOMText : IDOMCharacterData
702{
703    /*
704        - (DOMText *)splitText:(unsigned)offset;
705    */
706    HRESULT splitText([in] UINT offset, [out, retval] IDOMText** result);
707}
708
709/*
710    @interface DOMComment : DOMCharacterData
711*/
712[
713    object,
714    oleautomation,
715    uuid(118002E8-847F-4b1a-968C-B25A6AC7B128),
716    pointer_default(unique)
717]
718interface IDOMComment : IDOMCharacterData
719{
720}
721
722/*
723    @interface DOMCDATASection : DOMText
724*/
725[
726    object,
727    oleautomation,
728    uuid(31B506C1-45A3-4d72-815A-311B0A897E58),
729    pointer_default(unique)
730]
731interface IDOMCDATASection : IDOMText
732{
733}
734
735/*
736    @interface DOMDocumentType : IDOMNode
737*/
738[
739    object,
740    oleautomation,
741    uuid(17FCE6EA-4164-4bd4-9DBF-0395FBF37FD3),
742    pointer_default(unique)
743]
744interface IDOMDocumentType : IDOMNode
745{
746    /*
747        - (NSString *)name;
748    */
749    HRESULT name([out, retval] BSTR* result);
750
751    /*
752        - (DOMNamedNodeMap *)entities;
753    */
754    HRESULT entities([out, retval] IDOMNamedNodeMap** result);
755
756    /*
757        - (DOMNamedNodeMap *)notations;
758    */
759    HRESULT notations([out, retval] IDOMNamedNodeMap** result);
760
761    /*
762        - (NSString *)publicId;
763    */
764    HRESULT publicId([out, retval] BSTR* result);
765
766    /*
767        - (NSString *)systemId;
768    */
769    HRESULT systemId([out, retval] BSTR* result);
770
771    /*
772        - (NSString *)internalSubset;
773    */
774    HRESULT internalSubset([out, retval] BSTR* result);
775}
776
777/*
778    @interface DOMEntityReference : IDOMNode
779*/
780[
781    object,
782    oleautomation,
783    uuid(0593CE45-15B2-44af-BBD0-5A1654F8240E),
784    pointer_default(unique)
785]
786interface IDOMEntityReference : IDOMNode
787{
788}
789
790/*
791    @interface DOMProcessingInstruction : IDOMNode
792*/
793[
794    object,
795    oleautomation,
796    uuid(D99D2F48-ABF3-426a-9339-54681E1AFCA9),
797    pointer_default(unique)
798]
799interface IDOMProcessingInstruction : IDOMNode
800{
801    /*
802        - (NSString *)target;
803    */
804    HRESULT target([out, retval] BSTR* result);
805
806    /*
807        - (NSString *)data;
808    */
809    HRESULT data([out, retval] BSTR* result);
810
811    /*
812        - (void)setData:(NSString *)data;
813    */
814    HRESULT setData([in] BSTR data);
815}
816
817/*
818    @interface DOMDocumentFragment : IDOMNode
819*/
820[
821    object,
822    oleautomation,
823    uuid(09D35665-8396-4868-949E-8AA2407A6E10),
824    pointer_default(unique)
825]
826interface IDOMDocumentFragment : IDOMNode
827{
828}
829