4 * Copyright 2005 Mike McCormack
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __MSXML_PRIVATE__
22 #define __MSXML_PRIVATE__
24 #ifndef __WINE_CONFIG_H
25 # error You must include config.h to use this header
30 #ifdef HAVE_LIBXML_PARSER_H
31 #include <libxml/parser.h>
35 extern IUnknown
*create_domdoc( void );
36 extern IUnknown
*create_xmldoc( void );
37 extern IXMLDOMNode
*create_node( xmlNodePtr node
);
38 extern IUnknown
*create_basic_node( xmlNodePtr node
, IUnknown
*pUnkOuter
);
39 extern IUnknown
*create_element( xmlNodePtr element
, IUnknown
*pUnkOuter
);
40 extern IUnknown
*create_attribute( xmlNodePtr attribute
);
41 extern IUnknown
*create_text( xmlNodePtr text
);
42 extern IUnknown
*create_pi( xmlNodePtr pi
);
43 extern IUnknown
*create_comment( xmlNodePtr comment
);
44 extern IUnknown
*create_cdata( xmlNodePtr text
);
45 extern IXMLDOMNodeList
*create_children_nodelist( xmlNodePtr
);
46 extern IXMLDOMNamedNodeMap
*create_nodemap( IXMLDOMNode
*node
);
47 extern IUnknown
*create_doc_Implementation();
48 extern IUnknown
*create_doc_fragment( xmlNodePtr fragment
);
49 extern IUnknown
*create_doc_entity_ref( xmlNodePtr entity
);
51 extern HRESULT
queryresult_create( xmlNodePtr
, LPWSTR
, IXMLDOMNodeList
** );
53 extern void attach_xmlnode( IXMLDOMNode
*node
, xmlNodePtr xmlnode
);
56 xmlNodePtr
xmlNodePtr_from_domnode( IXMLDOMNode
*iface
, xmlElementType type
);
59 extern xmlChar
*xmlChar_from_wchar( LPWSTR str
);
60 extern BSTR
bstr_from_xmlChar( const xmlChar
*buf
);
62 extern LONG
xmldoc_add_ref( xmlDocPtr doc
);
63 extern LONG
xmldoc_release( xmlDocPtr doc
);
65 extern HRESULT
XMLElement_create( IUnknown
*pUnkOuter
, xmlNodePtr node
, LPVOID
*ppObj
);
66 extern HRESULT
XMLElementCollection_create( IUnknown
*pUnkOuter
, xmlNodePtr node
, LPVOID
*ppObj
);
68 extern xmlDocPtr
parse_xml(char *ptr
, int len
);
70 /* IXMLDOMNode Internal Structure */
71 typedef struct _xmlnode
73 const struct IXMLDOMNodeVtbl
*lpVtbl
;
74 const struct IUnknownVtbl
*lpInternalUnkVtbl
;
80 static inline xmlnode
*impl_from_IXMLDOMNode( IXMLDOMNode
*iface
)
82 return (xmlnode
*)((char*)iface
- FIELD_OFFSET(xmlnode
, lpVtbl
));
87 extern IXMLDOMParseError
*create_parseError( LONG code
, BSTR url
, BSTR reason
, BSTR srcText
,
88 LONG line
, LONG linepos
, LONG filepos
);
89 extern HRESULT
DOMDocument_create( IUnknown
*pUnkOuter
, LPVOID
*ppObj
);
90 extern HRESULT
SchemaCache_create( IUnknown
*pUnkOuter
, LPVOID
*ppObj
);
91 extern HRESULT
XMLDocument_create( IUnknown
*pUnkOuter
, LPVOID
*ppObj
);
92 extern HRESULT
SAXXMLReader_create(IUnknown
*pUnkOuter
, LPVOID
*ppObj
);
97 IXMLDOMCDATASection_tid
,
100 IXMLDOMDocumentFragment_tid
,
102 IXMLDOMEntityReference_tid
,
103 IXMLDOMImplementation_tid
,
104 IXMLDOMNamedNodeMap_tid
,
107 IXMLDOMParseError_tid
,
108 IXMLDOMProcessingInstruction_tid
,
109 IXMLDOMSchemaCollection_tid
,
113 IVBSAXAttributes_tid
,
114 IVBSAXContentHandler_tid
,
115 IVBSAXDeclHandler_tid
,
116 IVBSAXDTDHandler_tid
,
117 IVBSAXEntityResolver_tid
,
118 IVBSAXErrorHandler_tid
,
119 IVBSAXLexicalHandler_tid
,
124 IMXReaderControl_tid
,
129 extern HRESULT
get_typeinfo(enum tid_t tid
, ITypeInfo
**typeinfo
);
130 extern ITypeLib
*get_msxml3_typelib( LPWSTR
*path
);
132 #endif /* __MSXML_PRIVATE__ */