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