user32: Move unpack_message call to User32CallWindowProc.
[wine.git] / dlls / msxml3 / msxml_dispex.h
blobb4eb02117bb89f67bcfbffda6d4965eda03a774d
1 /*
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__
22 #include "dispex.h"
24 #include "wine/heap.h"
25 #include "wine/list.h"
27 typedef enum
29 MSXML_DEFAULT = 0,
30 MSXML2 = 20,
31 MSXML26 = 26,
32 MSXML3 = 30,
33 MSXML4 = 40,
34 MSXML6 = 60
35 } MSXML_VERSION;
37 typedef enum tid_t
39 NULL_tid,
40 IXMLDOMAttribute_tid,
41 IXMLDOMCDATASection_tid,
42 IXMLDOMComment_tid,
43 IXMLDOMDocument_tid,
44 IXMLDOMDocument2_tid,
45 IXMLDOMDocument3_tid,
46 IXMLDOMDocumentFragment_tid,
47 IXMLDOMDocumentType_tid,
48 IXMLDOMElement_tid,
49 IXMLDOMEntityReference_tid,
50 IXMLDOMImplementation_tid,
51 IXMLDOMNamedNodeMap_tid,
52 IXMLDOMNode_tid,
53 IXMLDOMNodeList_tid,
54 IXMLDOMParseError2_tid,
55 IXMLDOMProcessingInstruction_tid,
56 IXMLDOMSchemaCollection_tid,
57 IXMLDOMSchemaCollection2_tid,
58 IXMLDOMSelection_tid,
59 IXMLDOMText_tid,
60 IXMLElement_tid,
61 IXMLDocument_tid,
62 IXMLHTTPRequest_tid,
63 IXSLProcessor_tid,
64 IXSLTemplate_tid,
65 IVBSAXAttributes_tid,
66 IVBSAXContentHandler_tid,
67 IVBSAXDeclHandler_tid,
68 IVBSAXDTDHandler_tid,
69 IVBSAXEntityResolver_tid,
70 IVBSAXErrorHandler_tid,
71 IVBSAXLexicalHandler_tid,
72 IVBSAXLocator_tid,
73 IVBSAXXMLFilter_tid,
74 IVBSAXXMLReader_tid,
75 IMXAttributes_tid,
76 IMXReaderControl_tid,
77 IMXWriter_tid,
78 IVBMXNamespaceManager_tid,
79 IServerXMLHTTPRequest_tid,
80 LAST_tid
81 } tid_t;
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;
88 typedef struct
90 HRESULT (*get_dispid)(IUnknown*,BSTR,DWORD,DISPID*);
91 HRESULT (*invoke)(IUnknown*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*);
92 } dispex_static_data_vtbl_t;
94 typedef struct
96 const dispex_static_data_vtbl_t *vtbl;
97 const tid_t disp_tid;
98 dispex_data_t *data;
99 const tid_t* const iface_tids;
100 } dispex_static_data_t;
102 typedef struct
104 IDispatchEx IDispatchEx_iface;
106 IUnknown *outer;
108 dispex_static_data_t *data;
109 } DispatchEx;
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)
118 if (!p)
119 return E_INVALIDARG;
121 if (value)
123 *p = SysAllocString(value);
124 if (!*p)
125 return E_OUTOFMEMORY;
127 else
128 *p = NULL;
130 return S_OK;
133 static inline HRESULT return_bstrn(const WCHAR *value, int len, BSTR *p)
135 if (value)
137 *p = SysAllocStringLen(value, len);
138 if (!*p)
139 return E_OUTOFMEMORY;
141 else
142 *p = NULL;
144 return S_OK;
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__ */