41 0, 0, { (
DWORD_PTR)(__FILE__
": dispex_static_data") }
88 { &IID_IXMLDOMAttribute,
LibXml2 },
89 { &IID_IXMLDOMCDATASection,
LibXml2 },
90 { &IID_IXMLDOMComment,
LibXml2 },
91 { &IID_IXMLDOMDocument,
LibXml2 },
92 { &IID_IXMLDOMDocument2,
LibXml2 },
93 { &IID_IXMLDOMDocument3,
LibXml2 },
94 { &IID_IXMLDOMDocumentFragment,
LibXml2 },
95 { &IID_IXMLDOMDocumentType,
LibXml2 },
96 { &IID_IXMLDOMElement,
LibXml2 },
97 { &IID_IXMLDOMEntityReference,
LibXml2 },
98 { &IID_IXMLDOMImplementation,
LibXml2 },
99 { &IID_IXMLDOMNamedNodeMap,
LibXml2 },
101 { &IID_IXMLDOMNodeList,
LibXml2 },
102 { &IID_IXMLDOMParseError2,
LibXml2 },
103 { &IID_IXMLDOMProcessingInstruction,
LibXml2 },
104 { &IID_IXMLDOMSchemaCollection,
LibXml2 },
105 { &IID_IXMLDOMSchemaCollection2,
LibXml2 },
106 { &IID_IXMLDOMSelection,
LibXml2 },
108 { &IID_IXMLElement,
LibXml },
109 { &IID_IXMLDocument,
LibXml },
110 { &IID_IXMLHTTPRequest,
LibXml2 },
111 { &IID_IXSLProcessor,
LibXml2 },
112 { &IID_IXSLTemplate,
LibXml2 },
113 { &IID_IVBSAXAttributes,
LibXml2 },
114 { &IID_IVBSAXContentHandler,
LibXml2 },
115 { &IID_IVBSAXDeclHandler,
LibXml2 },
116 { &IID_IVBSAXDTDHandler,
LibXml2 },
117 { &IID_IVBSAXEntityResolver,
LibXml2 },
118 { &IID_IVBSAXErrorHandler,
LibXml2 },
119 { &IID_IVBSAXLexicalHandler,
LibXml2 },
120 { &IID_IVBSAXLocator,
LibXml2 },
121 { &IID_IVBSAXXMLFilter,
LibXml2 },
122 { &IID_IVBSAXXMLReader,
LibXml2 },
123 { &IID_IMXAttributes,
LibXml2 },
124 { &IID_IMXReaderControl,
LibXml2 },
126 { &IID_IVBMXNamespaceManager,
LibXml2 },
127 { &IID_IServerXMLHTTPRequest,
LibXml2 }
147 ERR(
"LoadRegTypeLib failed, hr %#lx.\n",
hres);
152 ITypeLib_Release(*tl);
178 ERR(
"GetTypeInfoOfGuid failed, hr %#lx.\n",
hres);
184 ITypeInfo_Release(ti);
225 if(
data->func_cnt &&
data->funcs[
data->func_cnt-1].id ==
id)
264 ERR(
"Could not get disp type info, hr %#lx.\n",
hres);
280 hres = ITypeInfo_GetFuncDesc(ti,
i++, &funcdesc);
285 ITypeInfo_ReleaseFuncDesc(ti, funcdesc);
288 ITypeInfo_Release(ti);
292 if(!
data->func_cnt) {
303 for(
i=0;
i <
data->func_cnt;
i++)
310 ITypeInfo_Release(dti);
317 return This->data->data;
321 if(!
This->data->data)
326 return This->data->data;
338 return IUnknown_QueryInterface(
This->outer,
riid,
ppv);
345 return IUnknown_AddRef(
This->outer);
352 return IUnknown_Release(
This->outer);
370 TRACE(
"%p, %u, %lx, %p.\n", iface, iTInfo,
lcid, ppTInfo);
382 TRACE(
"%p, %s, %p, %u, %lx, %p.\n", iface,
debugstr_guid(
riid), rgszNames, cNames,
385 for(
i=0;
i < cNames;
i++) {
386 hres = IDispatchEx_GetDispID(iface, rgszNames[
i], 0, rgDispId+
i);
396 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
398 TRACE(
"%p, %ld, %s, %lx, %x, %p, %p, %p, %p.\n", iface, dispIdMember,
debugstr_guid(
riid),
399 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
401 return IDispatchEx_InvokeEx(iface, dispIdMember,
lcid,
wFlags, pDispParams, pVarResult, pExcepInfo,
NULL);
412 if(grfdex & ~(fdexNameCaseSensitive|fdexNameEnsure|fdexNameImplicit))
413 FIXME(
"Unsupported grfdex %lx.\n", grfdex);
427 if((grfdex & fdexNameCaseSensitive) &&
wcscmp(
data->name_table[
n]->name, bstrName))
440 if(
This->data->vtbl &&
This->data->vtbl->get_dispid) {
443 hres =
This->data->vtbl->get_dispid(
This->outer, bstrName, grfdex,
pid);
487 TRACE(
"%p, %ld, %lx, %x, %p, %p, %p, %p.\n", iface,
id,
lcid,
wFlags, pdp, pvarRes, pei, pspCaller);
489 if(
This->data->vtbl &&
This->data->vtbl->invoke) {
494 if(
wFlags == DISPATCH_CONSTRUCT) {
495 FIXME(
"DISPATCH_CONSTRUCT not implemented\n");
509 if(
data->funcs[
n].id ==
id)
512 if(
data->funcs[
n].id <
id)
519 WARN(
"invalid id %lx.\n",
id);
525 ERR(
"Could not get type info, hr %#lx.\n",
hres);
531 ERR(
"Could not get interface, hr %#lx.\n",
hres);
532 ITypeInfo_Release(ti);
538 hres = ITypeInfo_Invoke(ti, unk,
id,
wFlags, pdp, pvarRes, pei, &argerr);
540 ITypeInfo_Release(ti);
541 IUnknown_Release(unk);
553 TRACE(
"%p, %ld.\n", iface,
id);
559 TRACE(
"%p, %ld, %lx, %p.\n", iface,
id, grfdexFetch, pgrfdex);
565 TRACE(
"%p, %ld, %p.\n", iface,
id, pbstrName);
571 TRACE(
"%p, %lx, %ld, %p.\n", iface, grfdex,
id,
pid);
577 TRACE(
"%p, %p.\n", iface, ppunk);
601 static const IID IID_UndocumentedScriptIface =
602 {0x719c3050,0xf9d3,0x11cf,{0xa4,0x93,0x00,0x40,0x05,0x23,0xa8,0xa0}};
603 static const IID IID_IDispatchJS =
604 {0x719c3050,0xf9d3,0x11cf,{0xa4,0x93,0x00,0x40,0x05,0x23,0xa8,0xa6}};
608 *
ppv = &
This->IDispatchEx_iface;
611 *
ppv = &
This->IDispatchEx_iface;
613 TRACE(
"(%p)->(IID_IDispatchJS %p) returning NULL\n",
This,
ppv);
616 TRACE(
"(%p)->(IID_UndocumentedScriptIface %p) returning NULL\n",
This,
ppv);
619 TRACE(
"IID_IObjectIdentity not supported returning NULL\n");
633 dispex->
outer = outer;
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP void __cdecl qsort(void *, size_t, size_t, int(__cdecl *)(const void *, const void *))
HRESULT WINAPI LoadRegTypeLib(REFGUID rguid, WORD wVerMajor, WORD wVerMinor, LCID lcid, ITypeLib **ppTLib)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define InterlockedCompareExchangePointer
static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface)
static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk)
static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
static jsdisp_t * impl_from_IDispatchEx(IDispatchEx *iface)
static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
static ULONG WINAPI DispatchEx_AddRef(IDispatchEx *iface)
static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo)
static IDispatchExVtbl DispatchExVtbl
static VARIANTARG static DISPID
static dispex_data_t * preprocess_dispex_data(DispatchEx *This)
static struct list dispex_data_list
static int func_name_cmp(const void *p1, const void *p2)
static CRITICAL_SECTION cs_dispex_static_data
static void add_func_info(dispex_data_t *data, DWORD *size, tid_t tid, const FUNCDESC *desc, ITypeInfo *dti)
static ITypeLib * typelib
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
static int dispid_cmp(const void *p1, const void *p2)
static CRITICAL_SECTION_DEBUG cs_dispex_static_data_dbg
void release_typelib(void)
static HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo)
static dispex_data_t * get_dispex_data(DispatchEx *This)
static ITypeInfo * typeinfos[LAST_tid]
#define DISPID_DOM_DOCUMENT_DOCUMENTELEMENT
#define DISPID_XMLDOM_DOCUMENT2_SCHEMAS
#define DISPID_MXXML_FILTER_ENTITYRESOLVER
#define DISPID_SAX_XMLREADER_ERRORHANDLER
#define DISPID_MXXML_FILTER_ERRORHANDLER
#define DISPID_SAX_XMLFILTER_PARENT
#define DISPID_SAX_XMLREADER_ENTITYRESOLVER
#define DISPID_XMLDOM_TEMPLATE_STYLESHEET
#define DISPID_XMLDOM_SELECTION_CONTEXT
#define DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR
#define DISPID_SAX_XMLREADER_DTDHANDLER
#define DISPID_MXXML_FILTER_DTDHANDLER
#define DISPID_MXXML_FILTER_CONTENTHANDLER
#define DISPID_SAX_XMLREADER_CONTENTHANDLER
static HRESULT get_typelib(unsigned lib, ITypeLib **tl)
const IID * get_riid_from_tid(tid_t tid)
static lib_id_t lib_ids[]
static unsigned get_libid_from_tid(tid_t tid)
static BOOL is_propputref_id(DISPID id)
#define LOCALE_SYSTEM_DEFAULT
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYPUT
#define DISPATCH_PROPERTYPUTREF
#define IsEqualGUID(rguid1, rguid2)
dispex_static_data_t * data
IDispatchEx IDispatchEx_iface
LIST_ENTRY ProcessLocksList
func_info_t ** name_table
#define CONTAINING_RECORD(address, type, field)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define DISP_E_UNKNOWNNAME