Nikolay Sivov : msxml3: Do not depend on libxml2 for XMLHTTP object.
Alexandre Julliard
julliard at winehq.org
Tue Aug 17 16:26:52 CDT 2021
Module: wine
Branch: master
Commit: 6d09e450154df3d6e17f76d0f431a8087e545e79
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6d09e450154df3d6e17f76d0f431a8087e545e79
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue Aug 17 16:18:53 2021 +0300
msxml3: Do not depend on libxml2 for XMLHTTP object.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msxml3/domdoc.c | 4 ++--
dlls/msxml3/factory.c | 4 ++--
dlls/msxml3/httprequest.c | 32 +++-----------------------------
dlls/msxml3/msxml_dispex.h | 3 +++
dlls/msxml3/msxml_private.h | 2 --
dlls/msxml3/schema.c | 4 ++--
dlls/msxml3/stylesheet.c | 2 +-
dlls/msxml3/xmlview.c | 4 ++--
8 files changed, 15 insertions(+), 40 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 61fbbf9f20b..10892d40757 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -3801,7 +3801,7 @@ HRESULT get_domdoc_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document)
return S_OK;
}
-HRESULT DOMDocument_create(MSXML_VERSION version, void **ppObj)
+HRESULT dom_document_create(MSXML_VERSION version, void **ppObj)
{
xmlDocPtr xmldoc;
HRESULT hr;
@@ -3842,7 +3842,7 @@ IUnknown* create_domdoc( xmlNodePtr document )
#else
-HRESULT DOMDocument_create(MSXML_VERSION version, void **ppObj)
+HRESULT dom_document_create(MSXML_VERSION version, void **ppObj)
{
MESSAGE("This program tried to use a DOMDocument object, but\n"
"libxml2 support was not present at compile time.\n");
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c
index 445cfbf730d..197f72cd13f 100644
--- a/dlls/msxml3/factory.c
+++ b/dlls/msxml3/factory.c
@@ -302,7 +302,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv )
IsEqualCLSID( rclsid, &CLSID_DOMDocument40 )|| /* Version dep. v 4.0 */
IsEqualCLSID( rclsid, &CLSID_DOMDocument60 )) /* Version dep. v 6.0 */
{
- return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create);
+ return DOMClassFactory_Create(rclsid, riid, ppv, dom_document_create);
}
else if( IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache ) ||
IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache26 ) ||
@@ -323,7 +323,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv )
IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument40 ) ||
IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument60 ))
{
- return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create);
+ return DOMClassFactory_Create(rclsid, riid, ppv, dom_document_create);
}
else if( IsEqualCLSID( rclsid, &CLSID_SAXXMLReader) ||
IsEqualCLSID( rclsid, &CLSID_SAXXMLReader30 ) ||
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index 20ec389739e..15a1f888ebd 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -22,14 +22,7 @@
#define COBJMACROS
#define NONAMELESSUNION
-#include "config.h"
-
#include <stdarg.h>
-#ifdef HAVE_LIBXML2
-# include <libxml/parser.h>
-# include <libxml/xmlerror.h>
-# include <libxml/encoding.h>
-#endif
#include "windef.h"
#include "winbase.h"
@@ -44,11 +37,10 @@
#include "docobj.h"
#include "shlwapi.h"
-#include "msxml_private.h"
+#include "msxml_dispex.h"
#include "wine/debug.h"
-
-#ifdef HAVE_LIBXML2
+#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
@@ -1238,7 +1230,7 @@ static HRESULT httprequest_get_responseXML(httprequest *This, IDispatch **body)
if (!body) return E_INVALIDARG;
if (This->state != READYSTATE_COMPLETE) return E_FAIL;
- hr = DOMDocument_create(MSXML_DEFAULT, (void**)&doc);
+ hr = dom_document_create(MSXML_DEFAULT, (void**)&doc);
if (hr != S_OK) return hr;
hr = httprequest_get_responseText(This, &str);
@@ -2151,21 +2143,3 @@ HRESULT ServerXMLHTTP_create(void **obj)
return S_OK;
}
-
-#else
-
-HRESULT XMLHTTPRequest_create(void **ppObj)
-{
- MESSAGE("This program tried to use a XMLHTTPRequest object, but\n"
- "libxml2 support was not present at compile time.\n");
- return E_NOTIMPL;
-}
-
-HRESULT ServerXMLHTTP_create(void **obj)
-{
- MESSAGE("This program tried to use a ServerXMLHTTP object, but\n"
- "libxml2 support was not present at compile time.\n");
- return E_NOTIMPL;
-}
-
-#endif
diff --git a/dlls/msxml3/msxml_dispex.h b/dlls/msxml3/msxml_dispex.h
index ec3860c2754..2f9c53144ef 100644
--- a/dlls/msxml3/msxml_dispex.h
+++ b/dlls/msxml3/msxml_dispex.h
@@ -144,4 +144,7 @@ static inline HRESULT return_bstrn(const WCHAR *value, int len, BSTR *p)
return S_OK;
}
+extern HRESULT dom_document_create(MSXML_VERSION class_version, void **document) DECLSPEC_HIDDEN;
+IUri *get_base_uri(IUnknown *site) DECLSPEC_HIDDEN;
+
#endif /* __MSXML_DISPEX__ */
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index 43c6de6454e..12ef1dcedf8 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -385,7 +385,6 @@ static inline HRESULT return_var_false(VARIANT_BOOL *p)
extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, BSTR srcText,
LONG line, LONG linepos, LONG filepos ) DECLSPEC_HIDDEN;
-extern HRESULT DOMDocument_create(MSXML_VERSION, void**) DECLSPEC_HIDDEN;
extern HRESULT SchemaCache_create(MSXML_VERSION, void**) DECLSPEC_HIDDEN;
extern HRESULT XMLDocument_create(void**) DECLSPEC_HIDDEN;
extern HRESULT SAXXMLReader_create(MSXML_VERSION, void**) DECLSPEC_HIDDEN;
@@ -404,7 +403,6 @@ HRESULT create_moniker_from_url(LPCWSTR, IMoniker**) DECLSPEC_HIDDEN;
HRESULT create_uri(IUri *base, const WCHAR *, IUri **) DECLSPEC_HIDDEN;
HRESULT bind_url(IMoniker*, HRESULT (*onDataAvailable)(void*,char*,DWORD), void*, bsc_t**) DECLSPEC_HIDDEN;
HRESULT detach_bsc(bsc_t*) DECLSPEC_HIDDEN;
-IUri *get_base_uri(IUnknown *) DECLSPEC_HIDDEN;
/* Error Codes - not defined anywhere in the public headers */
#define E_XML_ELEMENT_UNDECLARED 0xC00CE00D
diff --git a/dlls/msxml3/schema.c b/dlls/msxml3/schema.c
index e385b9b5635..26e54c8728c 100644
--- a/dlls/msxml3/schema.c
+++ b/dlls/msxml3/schema.c
@@ -942,7 +942,7 @@ static cache_entry* cache_entry_from_url(VARIANT url, xmlChar const* nsURI, MSXM
cache_entry* entry;
IXMLDOMDocument3* domdoc = NULL;
xmlDocPtr doc = NULL;
- HRESULT hr = DOMDocument_create(version, (void**)&domdoc);
+ HRESULT hr = dom_document_create(version, (void **)&domdoc);
VARIANT_BOOL b = VARIANT_FALSE;
CacheEntryType type = CacheEntryType_Invalid;
@@ -1266,7 +1266,7 @@ static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri
BSTR xml;
IXMLDOMNode_get_xml(domnode, &xml);
- DOMDocument_create(This->version, (void**)&domdoc);
+ dom_document_create(This->version, (void **)&domdoc);
IXMLDOMDocument_loadXML(domdoc, xml, &b);
SysFreeString(xml);
doc = xmlNodePtr_from_domnode((IXMLDOMNode*)domdoc, XML_DOCUMENT_NODE)->doc;
diff --git a/dlls/msxml3/stylesheet.c b/dlls/msxml3/stylesheet.c
index 9863ed7aa4b..3ff3aa0146e 100644
--- a/dlls/msxml3/stylesheet.c
+++ b/dlls/msxml3/stylesheet.c
@@ -404,7 +404,7 @@ static HRESULT WINAPI xslprocessor_put_input( IXSLProcessor *iface, VARIANT inpu
{
IXMLDOMDocument *doc;
- hr = DOMDocument_create(MSXML_DEFAULT, (void**)&doc);
+ hr = dom_document_create(MSXML_DEFAULT, (void **)&doc);
if (hr == S_OK)
{
VARIANT_BOOL b;
diff --git a/dlls/msxml3/xmlview.c b/dlls/msxml3/xmlview.c
index f1299ef957e..d7bc77b10f3 100644
--- a/dlls/msxml3/xmlview.c
+++ b/dlls/msxml3/xmlview.c
@@ -399,7 +399,7 @@ static inline HRESULT handle_xml_load(BindStatusCallback *This)
if(FAILED(hres))
return display_error_page(This);
- hres = DOMDocument_create(MSXML_DEFAULT, (void**)&xml);
+ hres = dom_document_create(MSXML_DEFAULT, (void **)&xml);
if(FAILED(hres))
return display_error_page(This);
@@ -475,7 +475,7 @@ static inline HRESULT handle_xml_load(BindStatusCallback *This)
return display_error_page(This);
}
- hres = DOMDocument_create(MSXML_DEFAULT, (void**)&xsl);
+ hres = dom_document_create(MSXML_DEFAULT, (void **)&xsl);
if(FAILED(hres)) {
VariantClear(&var);
IXMLDOMDocument3_Release(xml);
More information about the wine-cvs
mailing list