blob: d1d0d6c6d49cd07978f1ff637561a2335283d526 [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef DO_NO_IMPORTS
import "oaidl.idl";
import "ocidl.idl";
import "IWebScriptObject.idl";
#endif
interface IWebScriptObject;
interface IDOMNodeList;
interface IDOMNamedNodeMap;
interface IDOMDocumentType;
interface IDOMElement;
interface IDOMDocumentFragment;
interface IDOMText;
interface IDOMComment;
interface IDOMCDATASection;
interface IDOMProcessingInstruction;
interface IDOMAttr;
interface IDOMEntityReference;
interface IDOMDocument;
interface IDOMCSSStyleDeclaration;
/*
@interface DOMObject : WebScriptObject <NSCopying>
*/
[
object,
oleautomation,
uuid(A27FA225-F34E-425d-88EB-A35BD105A527),
pointer_default(unique)
]
interface IDOMObject : IWebScriptObject
{
}
/*
@interface DOMImplementation : DOMObject
*/
[
object,
oleautomation,
uuid(6E48C25D-E542-4d1a-BC73-ACDC21E39C56),
pointer_default(unique)
]
interface IDOMImplementation : IDOMObject
{
/*
- (BOOL)hasFeature:(NSString *)feature :(NSString *)version;
*/
HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] BOOL* result);
/*
- (DOMDocumentType *)createDocumentType:(NSString *)qualifiedName :(NSString *)publicId :(NSString *)systemId;
*/
HRESULT createDocumentType([in] BSTR qualifiedName, [in] BSTR publicId, [in] BSTR systemId, [out, retval] IDOMDocumentType** result);
/*
- (DOMDocument *)createDocument:(NSString *)namespaceURI :(NSString *)qualifiedName :(DOMDocumentType *)doctype;
*/
HRESULT createDocument([in] BSTR namespaceURI, [in] BSTR qualifiedName, [in] IDOMDocumentType* doctype, [out, retval] IDOMDocument** result);
}
/*
@interface DOMNode : DOMObject <DOMEventTarget>
*/
[
object,
oleautomation,
uuid(3EEA3E20-72DA-4be7-954F-79B5A14AD726),
pointer_default(unique)
]
interface IDOMNode : IDOMObject
{
/*
- (NSString *)nodeName;
*/
HRESULT nodeName([out, retval] BSTR* result);
/*
- (NSString *)nodeValue;
*/
HRESULT nodeValue([out, retval] BSTR* result);
/*
- (void)setNodeValue:(NSString *)string;
*/
HRESULT setNodeValue([in] BSTR value);
/*
- (unsigned short)nodeType;
*/
HRESULT nodeType([out, retval] unsigned short* result);
/*
- (DOMNode *)parentNode;
*/
HRESULT parentNode([out, retval] IDOMNode** result);
/*
- (DOMNodeList *)childNodes;
*/
HRESULT childNodes([out, retval] IDOMNodeList** result);
/*
- (DOMNode *)firstChild;
*/
HRESULT firstChild([out, retval] IDOMNode** result);
/*
- (DOMNode *)lastChild;
*/
HRESULT lastChild([out, retval] IDOMNode** result);
/*
- (DOMNode *)previousSibling;
*/
HRESULT previousSibling([out, retval] IDOMNode** result);
/*
- (DOMNode *)nextSibling;
*/
HRESULT nextSibling([out, retval] IDOMNode** result);
/*
- (DOMNamedNodeMap *)attributes;
*/
HRESULT attributes([out, retval] IDOMNamedNodeMap** result);
/*
- (DOMDocument *)ownerDocument;
*/
HRESULT ownerDocument([out, retval] IDOMDocument** result);
/*
- (DOMNode *)insertBefore:(DOMNode *)newChild :(DOMNode *)refChild;
*/
HRESULT insertBefore([in] IDOMNode* newChild, [in] IDOMNode* refChild, [out, retval] IDOMNode** result);
/*
- (DOMNode *)replaceChild:(DOMNode *)newChild :(DOMNode *)oldChild;
*/
HRESULT replaceChild([in] IDOMNode* newChild, [in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
/*
- (DOMNode *)removeChild:(DOMNode *)oldChild;
*/
HRESULT removeChild([in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
/*
- (DOMNode *)appendChild:(DOMNode *)newChild;
*/
HRESULT appendChild([in] IDOMNode* oldChild, [out, retval] IDOMNode** result);
/*
- (BOOL)hasChildNodes;
*/
HRESULT hasChildNodes([out, retval] BOOL* result);
/*
- (DOMNode *)cloneNode:(BOOL)deep;
*/
HRESULT cloneNode([in] BOOL deep, [out, retval] IDOMNode** result);
/*
- (void)normalize;
*/
HRESULT normalize();
/*
- (BOOL)isSupported:(NSString *)feature :(NSString *)version;
*/
HRESULT isSupported([in] BSTR feature, [in] BSTR version, [out, retval] BOOL* result);
/*
- (NSString *)namespaceURI;
*/
HRESULT namespaceURI([out, retval] BSTR* result);
/*
- (NSString *)prefix;
*/
HRESULT prefix([out, retval] BSTR* result);
/*
- (void)setPrefix:(NSString *)prefix;
*/
HRESULT setPrefix([in] BSTR prefix);
/*
- (NSString *)localName;
*/
HRESULT localName([out, retval] BSTR* result);
/*
- (BOOL)hasAttributes;
*/
HRESULT hasAttributes([out, retval] BOOL* result);
/*
- (BOOL)isSameNode:(DOMNode *)other;
*/
HRESULT isSameNode([in] IDOMNode* other, [out, retval] BOOL* result);
/*
- (BOOL)isEqualNode:(DOMNode *)other;
*/
HRESULT isEqualNode([in] IDOMNode* other, [out, retval] BOOL* result);
/*
- (NSString *)textContent;
*/
HRESULT textContent([out, retval] BSTR* result);
/*
- (void)setTextContent:(NSString *)text;
*/
HRESULT setTextContent([in] BSTR text);
}
/*
@interface DOMNodeList : DOMObject
*/
[
object,
oleautomation,
uuid(10A05A96-CBD9-4493-83AD-FAFB952615CE),
pointer_default(unique)
]
interface IDOMNodeList : IDOMObject
{
/*
- (DOMNode *)item:(unsigned)index;
*/
HRESULT item([in] UINT index, [out, retval] IDOMNode** result);
/*
- (unsigned)length;
*/
HRESULT length([out, retval] UINT* result);
}
/*
@interface DOMNamedNodeMap : DOMObject
*/
[
object,
oleautomation,
uuid(E6CBF396-C9F9-431b-A8D6-BCB525067E9F),
pointer_default(unique)
]
interface IDOMNamedNodeMap : IDOMObject
{
/*
- (DOMNode *)getNamedItem:(NSString *)name;
*/
HRESULT getNamedItem([in] BSTR name, [out, retval] IDOMNode** result);
/*
- (DOMNode *)setNamedItem:(DOMNode *)arg;
*/
HRESULT setNamedItem([in] IDOMNode* arg, [out, retval] IDOMNode** result);
/*
- (DOMNode *)removeNamedItem:(NSString *)name;
*/
HRESULT removeNamedItem([in] BSTR name, [out, retval] IDOMNode** result);
/*
- (DOMNode *)item:(unsigned)index;
*/
HRESULT item([in] UINT index, [out, retval] IDOMNode** result);
/*
- (unsigned)length;
*/
HRESULT length([out, retval] UINT* result);
/*
- (DOMNode *)getNamedItemNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT getNamedItemNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNode** result);
/*
- (DOMNode *)setNamedItemNS:(DOMNode *)arg;
*/
HRESULT setNamedItemNS([in] IDOMNode* arg, [out, retval] IDOMNode** result);
/*
- (DOMNode *)removeNamedItemNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT removeNamedItemNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNode** result);
}
/*
@interface DOMDocument : IDOMNode
*/
[
object,
oleautomation,
uuid(A83C2C44-0BAC-45c7-8E17-6A49975D5CCA),
pointer_default(unique)
]
interface IDOMDocument : IDOMNode
{
/*
- (DOMDocumentType *)doctype;
*/
HRESULT doctype([out, retval] IDOMDocumentType** result);
/*
- (DOMImplementation *)implementation;
*/
HRESULT implementation([out, retval] IDOMImplementation** result);
/*
- (DOMElement *)documentElement;
*/
HRESULT documentElement([out, retval] IDOMElement** result);
/*
- (DOMElement *)createElement:(NSString *)tagName;
*/
HRESULT createElement([in] BSTR tagName, [out, retval] IDOMElement** result);
/*
- (DOMDocumentFragment *)createDocumentFragment;
*/
HRESULT createDocumentFragment([out, retval] IDOMDocumentFragment** result);
/*
- (DOMText *)createTextNode:(NSString *)data;
*/
HRESULT createTextNode([in] BSTR data, [out, retval] IDOMText** result);
/*
- (DOMComment *)createComment:(NSString *)data;
*/
HRESULT createComment([in] BSTR data, [out, retval] IDOMComment** result);
/*
- (DOMCDATASection *)createCDATASection:(NSString *)data;
*/
HRESULT createCDATASection([in] BSTR data, [out, retval] IDOMCDATASection** result);
/*
- (DOMProcessingInstruction *)createProcessingInstruction:(NSString *)target :(NSString *)data;
*/
HRESULT createProcessingInstruction([in] BSTR target, [in] BSTR data, [out, retval] IDOMProcessingInstruction** result);
/*
- (DOMAttr *)createAttribute:(NSString *)name;
*/
HRESULT createAttribute([in] BSTR name, [out, retval] IDOMAttr** result);
/*
- (DOMEntityReference *)createEntityReference:(NSString *)name;
*/
HRESULT createEntityReference([in] BSTR name, [out, retval] IDOMEntityReference** result);
/*
- (DOMNodeList *)getElementsByTagName:(NSString *)tagname;
*/
HRESULT getElementsByTagName([in] BSTR tagName, [out, retval] IDOMNodeList** result);
/*
- (DOMNode *)importNode:(DOMNode *)importedNode :(BOOL)deep;
*/
HRESULT importNode([in] IDOMNode* importedNode, [in] BOOL deep, [out, retval] IDOMNode** result);
/*
- (DOMElement *)createElementNS:(NSString *)namespaceURI :(NSString *)qualifiedName;
*/
HRESULT createElementNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [out, retval] IDOMElement** result);
/*
- (DOMAttr *)createAttributeNS:(NSString *)namespaceURI :(NSString *)qualifiedName;
*/
HRESULT createAttributeNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [out, retval] IDOMAttr** result);
/*
- (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT getElementsByTagNameNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNodeList** result);
/*
- (DOMElement *)getElementById:(NSString *)elementId;
*/
HRESULT getElementById([in] BSTR elementId, [out, retval] IDOMElement** result);
}
/*
@interface DOMCharacterData : IDOMNode
*/
[
object,
oleautomation,
uuid(F4DED047-FE61-461a-BDBD-BB87F79DB713),
pointer_default(unique)
]
interface IDOMCharacterData : IDOMNode
{
/*
- (NSString *)data;
*/
HRESULT data([out, retval] BSTR* result);
/*
- (void)setData:(NSString *)data;
*/
HRESULT setData([in] BSTR data);
/*
- (unsigned)length;
*/
HRESULT length([out, retval] UINT* result);
/*
- (NSString *)substringData:(unsigned)offset :(unsigned)count;
*/
HRESULT substringData([in] UINT offset, [in] UINT count, [out, retval] BSTR* result);
/*
- (void)appendData:(NSString *)arg;
*/
HRESULT appendData([in] BSTR arg);
/*
- (void)insertData:(unsigned)offset :(NSString *)arg;
*/
HRESULT insertData([in] UINT offset, [in] BSTR arg);
/*
- (void)deleteData:(unsigned)offset :(unsigned) count;
*/
HRESULT deleteData([in] UINT offset, [in] UINT count);
/*
- (void)replaceData:(unsigned)offset :(unsigned)count :(NSString *)arg;
*/
HRESULT replaceData([in] UINT offset, [in] UINT count, [in] BSTR arg);
}
/*
@interface DOMAttr : IDOMNode
*/
[
object,
oleautomation,
uuid(B587E098-8206-4b5a-A7DB-422F218571A0),
pointer_default(unique)
]
interface IDOMAttr : IDOMNode
{
/*
- (NSString *)name;
*/
HRESULT name([out, retval] BSTR* result);
/*
- (BOOL)specified;
*/
HRESULT specified([out, retval] BOOL* result);
/*
- (NSString *)value;
*/
HRESULT value([out, retval] BSTR* value);
/*
- (void)setValue:(NSString *)value;
*/
HRESULT setValue([in] BSTR value);
/*
- (DOMElement *)ownerElement;
*/
HRESULT ownerElement([out, retval] IDOMElement** result);
}
/*
@interface DOMElement : IDOMNode
*/
[
object,
oleautomation,
uuid(E053A35B-7775-4859-80EA-C35D02D145A2),
pointer_default(unique)
]
interface IDOMElement : IDOMNode
{
/*
- (NSString *)tagName;
*/
HRESULT tagName([out, retval] BSTR* result);
/*
- (NSString *)getAttribute:(NSString *)name;
*/
HRESULT getAttribute([in] BSTR name, [out, retval] BSTR* result);
/*
- (void)setAttribute:(NSString *)name :(NSString *)value;
*/
HRESULT setAttribute([in] BSTR name, [in] BSTR value);
/*
- (void)removeAttribute:(NSString *)name;
*/
HRESULT removeAttribute([in] BSTR name);
/*
- (DOMAttr *)getAttributeNode:(NSString *)name;
*/
HRESULT getAttributeNode([in] BSTR name, [out, retval] IDOMAttr** result);
/*
- (DOMAttr *)setAttributeNode:(DOMAttr *)newAttr;
*/
HRESULT setAttributeNode([in] IDOMAttr* newAttr, [out, retval] IDOMAttr** result);
/*
- (DOMAttr *)removeAttributeNode:(DOMAttr *)oldAttr;
*/
HRESULT removeAttributeNode([in] IDOMAttr* oldAttr, [out, retval] IDOMAttr** result);
/*
- (DOMNodeList *)getElementsByTagName:(NSString *)name;
*/
HRESULT getElementsByTagName([in] BSTR name, [out, retval] IDOMNodeList** result);
/*
- (NSString *)getAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT getAttributeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] BSTR* result);
/*
- (void)setAttributeNS:(NSString *)namespaceURI :(NSString *)qualifiedName :(NSString *)value;
*/
HRESULT setAttributeNS([in] BSTR namespaceURI, [in] BSTR qualifiedName, [in] BSTR value);
/*
- (void)removeAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT removeAttributeNS([in] BSTR namespaceURI, [in] BSTR localName);
/*
- (DOMAttr *)getAttributeNodeNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT getAttributeNodeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMAttr** result);
/*
- (DOMAttr *)setAttributeNodeNS:(DOMAttr *)newAttr;
*/
HRESULT setAttributeNodeNS([in] IDOMAttr* newAttr, [out, retval] IDOMAttr** result);
/*
- (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT getElementsByTagNameNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] IDOMNodeList** result);
/*
- (BOOL)hasAttribute:(NSString *)name;
*/
HRESULT hasAttribute([in] BSTR name, [out, retval] BOOL* result);
/*
- (BOOL)hasAttributeNS:(NSString *)namespaceURI :(NSString *)localName;
*/
HRESULT hasAttributeNS([in] BSTR namespaceURI, [in] BSTR localName, [out, retval] BOOL* result);
/*
- (void)focus;
*/
HRESULT focus();
/*
- (void)blur;
*/
HRESULT blur();
}
/*
@interface DOMElement (DOMElementExtensions)
*/
[
object,
oleautomation,
uuid(98E481F5-4405-4c2a-BF77-1CE95FE5F992),
pointer_default(unique)
]
interface IDOMElementExtensions : IUnknown
{
/*
- (int)offsetLeft;
*/
HRESULT offsetLeft([out, retval] int* result);
/*
- (int)offsetTop;
*/
HRESULT offsetTop([out, retval] int* result);
/*
- (int)offsetWidth;
*/
HRESULT offsetWidth([out, retval] int* result);
/*
- (int)offsetHeight;
*/
HRESULT offsetHeight([out, retval] int* result);
/*
- (DOMElement *)offsetParent;
*/
HRESULT offsetParent([out, retval] IDOMElement** result);
/*
- (int)clientWidth;
*/
HRESULT clientWidth([out, retval] int* result);
/*
- (int)clientHeight;
*/
HRESULT clientHeight([out, retval] int* result);
/*
- (int)scrollLeft;
*/
HRESULT scrollLeft([out, retval] int* result);
/*
- (void)setScrollLeft:(int)newScrollLeft;
*/
HRESULT setScrollLeft([in] int newScrollLeft);
/*
- (int)scrollTop;
*/
HRESULT scrollTop([out, retval] int* result);
/*
- (void)setScrollTop:(int)newScrollTop;
*/
HRESULT setScrollTop([in] int newScrollTop);
/*
- (int)scrollWidth;
*/
HRESULT scrollWidth([out, retval] int* result);
/*
- (int)scrollHeight;
*/
HRESULT scrollHeight([out, retval] int* result);
/*
- (void)scrollIntoView:(BOOL)alignWithTop;
*/
HRESULT scrollIntoView([in] BOOL alignWithTop);
/*
- (void)scrollIntoViewIfNeeded:(BOOL)centerIfNeeded;
*/
HRESULT scrollIntoViewIfNeeded([in] BOOL centerIfNeeded);
}
/*
@interface DOMText : DOMCharacterData
*/
[
object,
oleautomation,
uuid(74638F45-1AA0-4db5-958C-82066E00BD2B),
pointer_default(unique)
]
interface IDOMText : IDOMCharacterData
{
/*
- (DOMText *)splitText:(unsigned)offset;
*/
HRESULT splitText([in] UINT offset, [out, retval] IDOMText** result);
}
/*
@interface DOMComment : DOMCharacterData
*/
[
object,
oleautomation,
uuid(118002E8-847F-4b1a-968C-B25A6AC7B128),
pointer_default(unique)
]
interface IDOMComment : IDOMCharacterData
{
}
/*
@interface DOMCDATASection : DOMText
*/
[
object,
oleautomation,
uuid(31B506C1-45A3-4d72-815A-311B0A897E58),
pointer_default(unique)
]
interface IDOMCDATASection : IDOMText
{
}
/*
@interface DOMDocumentType : IDOMNode
*/
[
object,
oleautomation,
uuid(17FCE6EA-4164-4bd4-9DBF-0395FBF37FD3),
pointer_default(unique)
]
interface IDOMDocumentType : IDOMNode
{
/*
- (NSString *)name;
*/
HRESULT name([out, retval] BSTR* result);
/*
- (DOMNamedNodeMap *)entities;
*/
HRESULT entities([out, retval] IDOMNamedNodeMap** result);
/*
- (DOMNamedNodeMap *)notations;
*/
HRESULT notations([out, retval] IDOMNamedNodeMap** result);
/*
- (NSString *)publicId;
*/
HRESULT publicId([out, retval] BSTR* result);
/*
- (NSString *)systemId;
*/
HRESULT systemId([out, retval] BSTR* result);
/*
- (NSString *)internalSubset;
*/
HRESULT internalSubset([out, retval] BSTR* result);
}
/*
@interface DOMEntityReference : IDOMNode
*/
[
object,
oleautomation,
uuid(0593CE45-15B2-44af-BBD0-5A1654F8240E),
pointer_default(unique)
]
interface IDOMEntityReference : IDOMNode
{
}
/*
@interface DOMProcessingInstruction : IDOMNode
*/
[
object,
oleautomation,
uuid(D99D2F48-ABF3-426a-9339-54681E1AFCA9),
pointer_default(unique)
]
interface IDOMProcessingInstruction : IDOMNode
{
/*
- (NSString *)target;
*/
HRESULT target([out, retval] BSTR* result);
/*
- (NSString *)data;
*/
HRESULT data([out, retval] BSTR* result);
/*
- (void)setData:(NSString *)data;
*/
HRESULT setData([in] BSTR data);
}
/*
@interface DOMDocumentFragment : IDOMNode
*/
[
object,
oleautomation,
uuid(09D35665-8396-4868-949E-8AA2407A6E10),
pointer_default(unique)
]
interface IDOMDocumentFragment : IDOMNode
{
}