2 * Copyright 2005 Mike McCormack
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __MSXML_DISPEX__
20 #define __MSXML_DISPEX__
24 #include "wine/heap.h"
25 #include "wine/list.h"
41 IXMLDOMCDATASection_tid
,
46 IXMLDOMDocumentFragment_tid
,
47 IXMLDOMDocumentType_tid
,
49 IXMLDOMEntityReference_tid
,
50 IXMLDOMImplementation_tid
,
51 IXMLDOMNamedNodeMap_tid
,
54 IXMLDOMParseError2_tid
,
55 IXMLDOMProcessingInstruction_tid
,
56 IXMLDOMSchemaCollection_tid
,
57 IXMLDOMSchemaCollection2_tid
,
66 IVBSAXContentHandler_tid
,
67 IVBSAXDeclHandler_tid
,
69 IVBSAXEntityResolver_tid
,
70 IVBSAXErrorHandler_tid
,
71 IVBSAXLexicalHandler_tid
,
78 IVBMXNamespaceManager_tid
,
79 IServerXMLHTTPRequest_tid
,
83 extern HRESULT
get_typeinfo(tid_t tid
, ITypeInfo
**typeinfo
) DECLSPEC_HIDDEN
;
84 extern void release_typelib(void) DECLSPEC_HIDDEN
;
86 typedef struct dispex_data_t dispex_data_t
;
90 HRESULT (*get_dispid
)(IUnknown
*,BSTR
,DWORD
,DISPID
*);
91 HRESULT (*invoke
)(IUnknown
*,DISPID
,LCID
,WORD
,DISPPARAMS
*,VARIANT
*,EXCEPINFO
*);
92 } dispex_static_data_vtbl_t
;
96 const dispex_static_data_vtbl_t
*vtbl
;
99 const tid_t
* const iface_tids
;
100 } dispex_static_data_t
;
104 IDispatchEx IDispatchEx_iface
;
108 dispex_static_data_t
*data
;
111 void init_dispex(DispatchEx
*,IUnknown
*,dispex_static_data_t
*) DECLSPEC_HIDDEN
;
112 void release_dispex(DispatchEx
*) DECLSPEC_HIDDEN
;
113 BOOL
dispex_query_interface(DispatchEx
*,REFIID
,void**) DECLSPEC_HIDDEN
;
114 const IID
*get_riid_from_tid(enum tid_t tid
) DECLSPEC_HIDDEN
;
116 static inline HRESULT
return_bstr(const WCHAR
*value
, BSTR
*p
)
123 *p
= SysAllocString(value
);
125 return E_OUTOFMEMORY
;
133 static inline HRESULT
return_bstrn(const WCHAR
*value
, int len
, BSTR
*p
)
137 *p
= SysAllocStringLen(value
, len
);
139 return E_OUTOFMEMORY
;
147 extern HRESULT
dom_document_create(MSXML_VERSION class_version
, void **document
) DECLSPEC_HIDDEN
;
149 typedef struct bsc_t bsc_t
;
151 HRESULT
create_moniker_from_url(LPCWSTR
, IMoniker
**) DECLSPEC_HIDDEN
;
152 HRESULT
create_uri(IUri
*base
, const WCHAR
*, IUri
**) DECLSPEC_HIDDEN
;
153 HRESULT
bind_url(IMoniker
*, HRESULT (*onDataAvailable
)(void*,char*,DWORD
), void*, bsc_t
**) DECLSPEC_HIDDEN
;
154 HRESULT
detach_bsc(bsc_t
*) DECLSPEC_HIDDEN
;
155 IUri
*get_base_uri(IUnknown
*site
) DECLSPEC_HIDDEN
;
157 #endif /* __MSXML_DISPEX__ */