[PATCH 2/5] msxml3: Move IDispatchEx support definitions to a separate header.
Nikolay Sivov
nsivov at codeweavers.com
Mon Aug 16 03:52:19 CDT 2021
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/msxml3/dispex.c | 33 +++-------
dlls/msxml3/msxml_dispex.h | 116 ++++++++++++++++++++++++++++++++++++
dlls/msxml3/msxml_private.h | 86 +-------------------------
3 files changed, 127 insertions(+), 108 deletions(-)
create mode 100644 dlls/msxml3/msxml_dispex.h
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)
--
2.32.0
More information about the wine-devel
mailing list