From 6d09e450154df3d6e17f76d0f431a8087e545e79 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 17 Aug 2021 16:18:53 +0300 Subject: [PATCH] msxml3: Do not depend on libxml2 for XMLHTTP object. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- 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 -#ifdef HAVE_LIBXML2 -# include -# include -# include -#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);