Nikolay Sivov : msxml3: Move IDispatchEx support definitions to a separate header.

Alexandre Julliard julliard at winehq.org
Mon Aug 16 18:07:24 CDT 2021


Module: wine
Branch: master
Commit: e78fba0e15be86d4f64505aaf836fb9cb93712c0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e78fba0e15be86d4f64505aaf836fb9cb93712c0

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Aug 16 11:52:19 2021 +0300

msxml3: Move IDispatchEx support definitions to a separate header.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/dispex.c        |  33 ++++---------
 dlls/msxml3/msxml_dispex.h  | 116 ++++++++++++++++++++++++++++++++++++++++++++
 dlls/msxml3/msxml_private.h |  86 +-------------------------------
 3 files changed, 127 insertions(+), 108 deletions(-)

diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c
index b1fb72847e7..2ee03241946 100644
--- a/dlls/msxml3/dispex.c
+++ b/dlls/msxml3/dispex.c
@@ -18,30 +18,16 @@
 
 #define COBJMACROS
 
-#include "config.h"
-
 #include <stdarg.h>
-#ifdef HAVE_LIBXML2
-# include <libxml/parser.h>
-# include <libxml/xmlerror.h>
-#endif
-
-#include "windef.h"
-#include "winbase.h"
-#include "winuser.h"
-#include "winnls.h"
-#include "ole2.h"
-#include "msxml6.h"
-#include "msxml6did.h"
-#include "wininet.h"
-#include "urlmon.h"
-#include "winreg.h"
-#include "shlwapi.h"
+
+#include "msxml2.h"
+#include "msxml2did.h"
+#include "dispex.h"
 
 #include "wine/debug.h"
-#include "wine/unicode.h"
+#include "wine/heap.h"
 
-#include "msxml_private.h"
+#include "msxml_dispex.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(msxml);
 
@@ -54,7 +40,6 @@ static CRITICAL_SECTION_DEBUG cs_dispex_static_data_dbg =
 };
 static CRITICAL_SECTION cs_dispex_static_data = { &cs_dispex_static_data_dbg, -1, 0, 0, 0, 0 };
 
-
 enum lib_version_t
 {
     LibXml = 0,
@@ -258,7 +243,7 @@ static int dispid_cmp(const void *p1, const void *p2)
 
 static int func_name_cmp(const void *p1, const void *p2)
 {
-    return strcmpiW((*(func_info_t* const*)p1)->name, (*(func_info_t* const*)p2)->name);
+    return lstrcmpiW((*(func_info_t* const*)p1)->name, (*(func_info_t* const*)p2)->name);
 }
 
 static dispex_data_t *preprocess_dispex_data(DispatchEx *This)
@@ -439,9 +424,9 @@ static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DW
     while(min <= max) {
         n = (min+max)/2;
 
-        c = strcmpiW(data->name_table[n]->name, bstrName);
+        c = lstrcmpiW(data->name_table[n]->name, bstrName);
         if(!c) {
-            if((grfdex & fdexNameCaseSensitive) && strcmpW(data->name_table[n]->name, bstrName))
+            if((grfdex & fdexNameCaseSensitive) && lstrcmpW(data->name_table[n]->name, bstrName))
                 break;
 
             *pid = data->name_table[n]->id;
diff --git a/dlls/msxml3/msxml_dispex.h b/dlls/msxml3/msxml_dispex.h
new file mode 100644
index 00000000000..c9dbc29ddc5
--- /dev/null
+++ b/dlls/msxml3/msxml_dispex.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2005 Mike McCormack
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __MSXML_DISPEX__
+#define __MSXML_DISPEX__
+
+#include "dispex.h"
+
+#include "wine/heap.h"
+#include "wine/list.h"
+
+typedef enum
+{
+    MSXML_DEFAULT = 0,
+    MSXML2        = 20,
+    MSXML26       = 26,
+    MSXML3        = 30,
+    MSXML4        = 40,
+    MSXML6        = 60
+} MSXML_VERSION;
+
+typedef enum tid_t
+{
+    NULL_tid,
+    IXMLDOMAttribute_tid,
+    IXMLDOMCDATASection_tid,
+    IXMLDOMComment_tid,
+    IXMLDOMDocument_tid,
+    IXMLDOMDocument2_tid,
+    IXMLDOMDocument3_tid,
+    IXMLDOMDocumentFragment_tid,
+    IXMLDOMDocumentType_tid,
+    IXMLDOMElement_tid,
+    IXMLDOMEntityReference_tid,
+    IXMLDOMImplementation_tid,
+    IXMLDOMNamedNodeMap_tid,
+    IXMLDOMNode_tid,
+    IXMLDOMNodeList_tid,
+    IXMLDOMParseError2_tid,
+    IXMLDOMProcessingInstruction_tid,
+    IXMLDOMSchemaCollection_tid,
+    IXMLDOMSchemaCollection2_tid,
+    IXMLDOMSelection_tid,
+    IXMLDOMText_tid,
+    IXMLElement_tid,
+    IXMLDocument_tid,
+    IXMLHTTPRequest_tid,
+    IXSLProcessor_tid,
+    IXSLTemplate_tid,
+    IVBSAXAttributes_tid,
+    IVBSAXContentHandler_tid,
+    IVBSAXDeclHandler_tid,
+    IVBSAXDTDHandler_tid,
+    IVBSAXEntityResolver_tid,
+    IVBSAXErrorHandler_tid,
+    IVBSAXLexicalHandler_tid,
+    IVBSAXLocator_tid,
+    IVBSAXXMLFilter_tid,
+    IVBSAXXMLReader_tid,
+    IMXAttributes_tid,
+    IMXReaderControl_tid,
+    IMXWriter_tid,
+    IVBMXNamespaceManager_tid,
+    IServerXMLHTTPRequest_tid,
+    LAST_tid
+} tid_t;
+
+extern HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo) DECLSPEC_HIDDEN;
+extern void release_typelib(void) DECLSPEC_HIDDEN;
+
+typedef struct dispex_data_t dispex_data_t;
+
+typedef struct
+{
+    HRESULT (*get_dispid)(IUnknown*,BSTR,DWORD,DISPID*);
+    HRESULT (*invoke)(IUnknown*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*);
+} dispex_static_data_vtbl_t;
+
+typedef struct
+{
+    const dispex_static_data_vtbl_t *vtbl;
+    const tid_t disp_tid;
+    dispex_data_t *data;
+    const tid_t* const iface_tids;
+} dispex_static_data_t;
+
+typedef struct
+{
+    IDispatchEx IDispatchEx_iface;
+
+    IUnknown *outer;
+
+    dispex_static_data_t *data;
+} DispatchEx;
+
+void init_dispex(DispatchEx*,IUnknown*,dispex_static_data_t*) DECLSPEC_HIDDEN;
+void release_dispex(DispatchEx*) DECLSPEC_HIDDEN;
+BOOL dispex_query_interface(DispatchEx*,REFIID,void**) DECLSPEC_HIDDEN;
+const IID *get_riid_from_tid(enum tid_t tid) DECLSPEC_HIDDEN;
+
+#endif /* __MSXML_DISPEX__ */
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index a59e00bf2b3..41e16e4406c 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -27,67 +27,15 @@
 #include "wine/heap.h"
 #include "wine/list.h"
 
+#include "msxml_dispex.h"
+
 #ifndef __WINE_CONFIG_H
 # error You must include config.h to use this header
 #endif
 
-typedef enum {
-    MSXML_DEFAULT = 0,
-    MSXML2        = 20,
-    MSXML26       = 26,
-    MSXML3        = 30,
-    MSXML4        = 40,
-    MSXML6        = 60
-} MSXML_VERSION;
-
 extern const CLSID * DOMDocument_version(MSXML_VERSION v) DECLSPEC_HIDDEN;
 extern const CLSID * SchemaCache_version(MSXML_VERSION v) DECLSPEC_HIDDEN;
 
-/* typelibs */
-typedef enum tid_t {
-    NULL_tid,
-    IXMLDOMAttribute_tid,
-    IXMLDOMCDATASection_tid,
-    IXMLDOMComment_tid,
-    IXMLDOMDocument_tid,
-    IXMLDOMDocument2_tid,
-    IXMLDOMDocument3_tid,
-    IXMLDOMDocumentFragment_tid,
-    IXMLDOMDocumentType_tid,
-    IXMLDOMElement_tid,
-    IXMLDOMEntityReference_tid,
-    IXMLDOMImplementation_tid,
-    IXMLDOMNamedNodeMap_tid,
-    IXMLDOMNode_tid,
-    IXMLDOMNodeList_tid,
-    IXMLDOMParseError2_tid,
-    IXMLDOMProcessingInstruction_tid,
-    IXMLDOMSchemaCollection_tid,
-    IXMLDOMSchemaCollection2_tid,
-    IXMLDOMSelection_tid,
-    IXMLDOMText_tid,
-    IXMLElement_tid,
-    IXMLDocument_tid,
-    IXMLHTTPRequest_tid,
-    IXSLProcessor_tid,
-    IXSLTemplate_tid,
-    IVBSAXAttributes_tid,
-    IVBSAXContentHandler_tid,
-    IVBSAXDeclHandler_tid,
-    IVBSAXDTDHandler_tid,
-    IVBSAXEntityResolver_tid,
-    IVBSAXErrorHandler_tid,
-    IVBSAXLexicalHandler_tid,
-    IVBSAXLocator_tid,
-    IVBSAXXMLFilter_tid,
-    IVBSAXXMLReader_tid,
-    IMXAttributes_tid,
-    IMXReaderControl_tid,
-    IMXWriter_tid,
-    IVBMXNamespaceManager_tid,
-    IServerXMLHTTPRequest_tid,
-    LAST_tid
-} tid_t;
 
 /* The XDR datatypes (urn:schemas-microsoft-com:datatypes)
  * These are actually valid for XSD schemas as well
@@ -134,38 +82,8 @@ typedef enum _XDR_DT {
     LAST_DT
 } XDR_DT;
 
-extern HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo) DECLSPEC_HIDDEN;
-extern void release_typelib(void) DECLSPEC_HIDDEN;
-
-typedef struct dispex_data_t dispex_data_t;
-
-typedef struct {
-    HRESULT (*get_dispid)(IUnknown*,BSTR,DWORD,DISPID*);
-    HRESULT (*invoke)(IUnknown*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*);
-} dispex_static_data_vtbl_t;
-
-typedef struct {
-    const dispex_static_data_vtbl_t *vtbl;
-    const tid_t disp_tid;
-    dispex_data_t *data;
-    const tid_t* const iface_tids;
-} dispex_static_data_t;
-
-typedef struct {
-    IDispatchEx IDispatchEx_iface;
-
-    IUnknown *outer;
-
-    dispex_static_data_t *data;
-} DispatchEx;
-
 extern HINSTANCE MSXML_hInstance DECLSPEC_HIDDEN;
 
-void init_dispex(DispatchEx*,IUnknown*,dispex_static_data_t*) DECLSPEC_HIDDEN;
-void release_dispex(DispatchEx*) DECLSPEC_HIDDEN;
-BOOL dispex_query_interface(DispatchEx*,REFIID,void**) DECLSPEC_HIDDEN;
-const IID *get_riid_from_tid(enum tid_t tid) DECLSPEC_HIDDEN;
-
 /* memory allocation functions */
 
 static inline void* __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t size)




More information about the wine-cvs mailing list