mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 11:33:38 +00:00
msxml3: Move IDispatchEx support definitions to a separate header.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
37bba6e647
commit
e78fba0e15
|
@ -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;
|
||||
|
|
116
dlls/msxml3/msxml_dispex.h
Normal file
116
dlls/msxml3/msxml_dispex.h
Normal file
|
@ -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__ */
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue