mshtml: Don't crash in QueryInterface if uri is NULL.
[wine] / dlls / msxml3 / msxml_private.h
1 /*
2  *    MSXML Class Factory
3  *
4  * Copyright 2005 Mike McCormack
5  *
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.
10  *
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.
15  *
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
19  */
20
21 #ifndef __MSXML_PRIVATE__
22 #define __MSXML_PRIVATE__
23
24 #ifdef HAVE_LIBXML2
25
26 #ifdef HAVE_LIBXML_PARSER_H
27 #include <libxml/parser.h>
28 #endif
29
30 /* constructors */
31 extern IUnknown         *create_domdoc( void );
32 extern IUnknown         *create_xmldoc( void );
33 extern IXMLDOMNode      *create_node( xmlNodePtr node );
34 extern IUnknown         *create_basic_node( xmlNodePtr node, IUnknown *pUnkOuter );
35 extern IUnknown         *create_element( xmlNodePtr element, IUnknown *pUnkOuter );
36 extern IUnknown         *create_attribute( xmlNodePtr attribute );
37 extern IUnknown         *create_text( xmlNodePtr text );
38 extern IUnknown         *create_comment( xmlNodePtr comment );
39 extern IXMLDOMNodeList  *create_nodelist( xmlNodePtr node );
40 extern IXMLDOMNamedNodeMap *create_nodemap( IXMLDOMNode *node );
41 extern IXMLDOMNodeList  *create_filtered_nodelist( xmlNodePtr, const xmlChar *, BOOL );
42
43 extern void attach_xmlnode( IXMLDOMNode *node, xmlNodePtr xmlnode );
44
45 /* data accessors */
46 xmlNodePtr xmlNodePtr_from_domnode( IXMLDOMNode *iface, xmlElementType type );
47
48 /* helpers */
49 extern xmlChar *xmlChar_from_wchar( LPWSTR str );
50 extern BSTR bstr_from_xmlChar( const xmlChar *buf );
51
52 extern LONG xmldoc_add_ref( xmlDocPtr doc );
53 extern LONG xmldoc_release( xmlDocPtr doc );
54 #endif
55
56 extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, BSTR srcText,
57                                              LONG line, LONG linepos, LONG filepos );
58 extern HRESULT DOMDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj );
59
60 #endif /* __MSXML_PRIVATE__ */