27static const GUID GUID_VBScriptTypeInfo = {0xc59c6b12,0xf6c1,0x11cf,{0x88,0x35,0x00,0xa0,0xc9,0x11,0xe8,0xb2}};
29#define DISPID_FUNCTION_MASK 0x20000000
30#define FDEX_VERSION_MASK 0xf0000000
34 return id <
This->desc->func_cnt;
41 for(
i = 0;
i <
This->desc->func_cnt;
i++) {
43 if(!search_private && !
This->desc->funcs[
i].is_public)
46 if(!
This->desc->funcs[
i].entries[invoke_type]
47 || (!search_private && !
This->desc->funcs[
i].entries[invoke_type]->is_public))
67 for(
i=0;
i <
This->desc->prop_cnt;
i++) {
68 if(!search_private && !
This->desc->props[
i].is_public)
72 *
id =
i +
This->desc->func_cnt;
85 for(
i=0;
i < dp->cNamedArgs;
i++) {
86 if(dp->rgdispidNamedArgs[
i] == DISPID_PROPERTYPUT)
89 if(
i == dp->cNamedArgs) {
90 WARN(
"no value to set\n");
127 WARN(
"called with arguments for non-array property\n");
133 WARN(
"failed to access array element\n");
152 FIXME(
"Arguments not supported\n");
198 FIXME(
"no invoke/getter\n");
231 FIXME(
"no letter/setter\n");
237 for(
i=1;
i < dp.cArgs;
i++) {
254 if(
id >=
This->desc->prop_cnt +
This->desc->func_cnt)
265 if(
This->terminator_ran)
269 if(!
This->desc->class_terminate_id)
285 for(
i=0;
i <
This->desc->array_cnt;
i++) {
286 if(
This->arrays[
i]) {
292 for(
i=0;
i <
This->desc->prop_cnt;
i++)
307 *
ppv = &
This->IDispatchEx_iface;
310 *
ppv = &
This->IDispatchEx_iface;
313 *
ppv = &
This->IDispatchEx_iface;
381 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
386 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
388 return IDispatchEx_InvokeEx(&
This->IDispatchEx_iface, dispIdMember,
lcid,
wFlags, pDispParams, pVarResult, pExcepInfo,
NULL);
397 grfdex &= ~FDEX_VERSION_MASK;
404 if(grfdex & ~(fdexNameEnsure|fdexNameCaseInsensitive|fdexNameCaseSensitive)) {
405 FIXME(
"unsupported flags %lx\n", grfdex);
419 TRACE(
"(%p)->(%lx %lx %x %p %p %p %p)\n",
This,
id,
lcid,
wFlags, pdp, pvarRes, pei, pspCaller);
427 prev_caller =
This->desc->ctx->vbcaller->caller;
428 This->desc->ctx->vbcaller->caller = pspCaller;
430 IServiceProvider_AddRef(pspCaller);
434 This->desc->ctx->vbcaller->caller = prev_caller;
436 IServiceProvider_Release(pspCaller);
457 FIXME(
"(%p)->(%lx %lx %p)\n",
This,
id, grfdexFetch, pgrfdex);
464 FIXME(
"(%p)->(%lx %p)\n",
This,
id, pbstrName);
522 if(
desc->array_cnt) {
527 for(
i=0;
i <
desc->array_cnt;
i++) {
528 if(!
desc->array_descs[
i].dim_cnt)
539 for(
i=0,
j=0;
i <
desc->prop_cnt;
i++) {
540 if(
desc->props[
i].is_array) {
653 for (
i = 0;
i <
This->num_funcs;
i++)
656 IDispatchEx_Release(&
This->disp->IDispatchEx_iface);
679 attr->cbSizeInstance = 4;
683 attr->cImplTypes = 1;
684 attr->cbSizeVft =
sizeof(IDispatchVtbl);
685 attr->cbAlignment = 4;
686 attr->wTypeFlags = TYPEFLAG_FDISPATCHABLE;
702 *ppTComp = &
This->ITypeComp_iface;
703 ITypeInfo_AddRef(iface);
725 desc->funckind = FUNC_DISPATCH;
726 desc->invkind = INVOKE_FUNC;
731 if (
func->arg_cnt)
desc->lprgelemdescParam = (ELEMDESC*)(
desc + 1);
732 for (
i = 0;
i <
func->arg_cnt;
i++)
753 desc->varkind = VAR_DISPATCH;
769 TRACE(
"(%p)->(%ld %p %u %p)\n",
This,
memid, rgBstrNames, cMaxNames, pcNames);
780 return ITypeInfo_GetNames(disp_typeinfo,
memid, rgBstrNames, cMaxNames, pcNames);
784 if (!cMaxNames)
return S_OK;
849 TRACE(
"(%p)->(%p %u %p)\n",
This, rgszNames, cNames, pMemId);
851 if (!rgszNames || !cNames || !pMemId)
return E_INVALIDARG;
856 for (
i = 0;
i <
This->num_funcs;
i++)
861 pMemId[0] =
This->funcs[
i].memid;
863 for (
j = 1;
j < cNames;
j++)
877 for (
i = 0;
i <
This->num_vars;
i++)
888 return ITypeInfo_GetIDsOfNames(disp_typeinfo, rgszNames, cNames, pMemId);
892 DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
900 pDispParams, pVarResult, pExcepInfo, puArgErr);
910 return ITypeInfo_Invoke(disp_typeinfo, pvInstance,
memid,
wFlags, pDispParams,
911 pVarResult, pExcepInfo, puArgErr);
918 pDispParams, pVarResult, pExcepInfo, puArgErr);
919 IDispatch_Release(disp);
925 BSTR *pBstrDocString,
DWORD *pdwHelpContext,
BSTR *pBstrHelpFile)
932 TRACE(
"(%p)->(%ld %p %p %p %p)\n",
This,
memid, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile);
934 if (pBstrDocString) *pBstrDocString =
NULL;
935 if (pdwHelpContext) *pdwHelpContext = 0;
936 if (pBstrHelpFile) *pBstrHelpFile =
NULL;
942 if (pBstrDocString &&
943 !(*pBstrDocString =
SysAllocString(
L"Visual Basic Scripting Type Info")))
958 return ITypeInfo_GetDocumentation(disp_typeinfo,
memid, pBstrName, pBstrDocString,
959 pdwHelpContext, pBstrHelpFile);
977 TRACE(
"(%p)->(%ld %d %p %p %p)\n",
This,
memid, invKind, pBstrDllName, pBstrName, pwOrdinal);
979 if (pBstrDllName) *pBstrDllName =
NULL;
980 if (pBstrName) *pBstrName =
NULL;
981 if (pwOrdinal) *pwOrdinal = 0;
988 return ITypeInfo_GetDllEntry(disp_typeinfo,
memid, invKind, pBstrDllName, pBstrName, pwOrdinal);
998 TRACE(
"(%p)->(%lx %p)\n",
This, hRefType, ppTInfo);
1002 if (hRefType & ~3)
return E_FAIL;
1011 ITypeInfo_AddRef(*ppTInfo);
1031 return ITypeInfo_AddressOfMember(disp_typeinfo,
memid, invKind,
ppv);
1063 return ITypeInfo_GetMops(disp_typeinfo,
memid, pBstrMops);
1134 return ITypeInfo_QueryInterface(&
This->ITypeInfo_iface,
riid,
ppv);
1140 return ITypeInfo_AddRef(&
This->ITypeInfo_iface);
1146 return ITypeInfo_Release(&
This->ITypeInfo_iface);
1150 ITypeInfo **ppTInfo, DESCKIND *pDescKind, BINDPTR *pBindPtr)
1160 wFlags, ppTInfo, pDescKind, pBindPtr);
1162 if (!
szName || !ppTInfo || !pDescKind || !pBindPtr)
1165 for (
i = 0;
i <
This->num_funcs;
i++)
1170 hr = ITypeInfo_GetFuncDesc(&
This->ITypeInfo_iface,
i, &pBindPtr->lpfuncdesc);
1173 *pDescKind = DESCKIND_FUNCDESC;
1174 *ppTInfo = &
This->ITypeInfo_iface;
1175 ITypeInfo_AddRef(*ppTInfo);
1179 for (
i = 0;
i <
This->num_vars;
i++)
1184 hr = ITypeInfo_GetVarDesc(&
This->ITypeInfo_iface,
i, &pBindPtr->lpvardesc);
1187 *pDescKind = DESCKIND_VARDESC;
1188 *ppTInfo = &
This->ITypeInfo_iface;
1189 ITypeInfo_AddRef(*ppTInfo);
1197 hr = ITypeInfo_GetTypeComp(disp_typeinfo, &disp_typecomp);
1200 hr = ITypeComp_Bind(disp_typecomp,
szName, lHashVal,
wFlags, ppTInfo, pDescKind, pBindPtr);
1201 ITypeComp_Release(disp_typecomp);
1215 if (!
szName || !ppTInfo || !ppTComp)
1222 hr = ITypeInfo_GetTypeComp(disp_typeinfo, &disp_typecomp);
1225 hr = ITypeComp_BindType(disp_typecomp,
szName, lHashVal, ppTInfo, ppTComp);
1226 ITypeComp_Release(disp_typecomp);
1249 *
ppv = &
This->IDispatchEx_iface;
1252 *
ppv = &
This->IDispatchEx_iface;
1255 *
ppv = &
This->IDispatchEx_iface;
1287 for (
i = 0;
i <
This->global_vars_cnt;
i++)
1324 for(
i = 0;
i <
This->global_funcs_cnt;
i++)
1325 if(
This->global_funcs[
i]->is_public)
1342 for(
j = 0,
i = 0;
i <
This->global_funcs_cnt;
i++)
1344 if(!
This->global_funcs[
i]->is_public)
continue;
1352 IDispatchEx_AddRef(&
This->IDispatchEx_iface);
1371 hres = IDispatchEx_GetDispID(&
This->IDispatchEx_iface, rgszNames[0], 0, rgDispId);
1377 for(
i = 1;
i < cNames;
i++)
1378 rgDispId[
i] = DISPID_UNKNOWN;
1391 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1393 return IDispatchEx_InvokeEx(&
This->IDispatchEx_iface, dispIdMember,
lcid,
wFlags,
1394 pDispParams, pVarResult, pExcepInfo,
NULL);
1407 for(
i = 0;
i <
This->global_vars_cnt;
i++) {
1414 for(
i = 0;
i <
This->global_funcs_cnt;
i++) {
1432 TRACE(
"(%p)->(%lx %lx %x %p %p %p %p)\n",
This,
id,
lcid,
wFlags, pdp, pvarRes, pei, pspCaller);
1437 prev_caller =
This->ctx->vbcaller->caller;
1438 This->ctx->vbcaller->caller = pspCaller;
1440 IServiceProvider_AddRef(pspCaller);
1444 id &= ~DISPID_FUNCTION_MASK;
1445 if (
id >
This->global_funcs_cnt) {
1464 if (
id >
This->global_vars_cnt) {
1469 if (
This->global_vars[
id - 1]->is_const)
1471 FIXME(
"const not supported\n");
1479 This->ctx->vbcaller->caller = prev_caller;
1481 IServiceProvider_Release(pspCaller);
1502 FIXME(
"(%p)->(%lx %lx %p)\n",
This,
id, grfdexFetch, pgrfdex);
1509 FIXME(
"(%p)->(%lx %p)\n",
This,
id, pbstrName);
1592 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
1594 TRACE(
"using IDispatch\n");
1595 return IDispatch_GetIDsOfNames(disp, &
IID_NULL, &
name, 1, 0,
id);
1598 hres = IDispatchEx_GetDispID(dispex,
name, fdexNameCaseInsensitive,
id);
1599 IDispatchEx_Release(dispex);
1603#define RPC_E_SERVER_UNAVAILABLE 0x800706ba
1670 if(!ei->bstrDescription)
1683 memset(&ei, 0,
sizeof(ei));
1691 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
1693 hres = IDispatchEx_InvokeEx(dispex,
id,
ctx->lcid,
flags, dp, retv, &ei, &
ctx->vbcaller->IServiceProvider_iface);
1694 IDispatchEx_Release(dispex);
1698 TRACE(
"using IDispatch\n");
1705 hres = SCRIPT_E_RECORDED;
1712 DISPPARAMS dp = {
NULL};
1729 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
1731 hres = IDispatchEx_InvokeEx(dispex,
id,
ctx->lcid,
flags, dp,
NULL, &ei, &
ctx->vbcaller->IServiceProvider_iface);
1732 IDispatchEx_Release(dispex);
1736 TRACE(
"using IDispatch\n");
1743 hres = SCRIPT_E_RECORDED;
#define InterlockedIncrement
#define InterlockedDecrement
#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)
static void list_init(struct list_entry *head)
struct __type_info type_info
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
#define VBSE_PATH_NOT_FOUND
#define VBSE_INVALID_DLL_FUNCTION_NAME
#define VBSE_OBJECT_VARIABLE_NOT_SET
#define VBSE_ILLEGAL_FUNC_CALL
#define VBS_UNKNOWN_RUNTIME_ERROR
#define VBSE_ARRAY_LOCKED
#define VBSE_PATH_FILE_ACCESS
#define VBSE_INVALID_TYPELIB_VARIABLE
#define VBSE_OLE_NO_PROP_OR_METHOD
#define VBSE_FUNC_ARITY_MISMATCH
#define VBSE_LOCALE_SETTING_NOT_SUPPORTED
#define VBSE_OLE_FILE_NOT_FOUND
#define VBSE_ACTION_NOT_SUPPORTED
#define VBSE_OUT_OF_BOUNDS
#define VBS_RUNTIME_ERROR
#define VBSE_FILE_NOT_FOUND
#define VBSE_PARAMETER_NOT_OPTIONAL
#define VBSE_CANT_CREATE_TMP_FILE
#define VBSE_OUT_OF_MEMORY
#define VBSE_TOO_MANY_FILES
#define VBSE_TYPE_MISMATCH
#define VBSE_OLE_NOT_SUPPORTED
#define VBSE_NAMED_ARGS_NOT_SUPPORTED
#define VBSE_NAMED_PARAM_NOT_FOUND
#define VBSE_FILE_ALREADY_EXISTS
#define VBSE_CANT_CREATE_OBJECT
#define VBSE_SERVER_NOT_FOUND
#define VBSE_PERMISSION_DENIED
static const char * debugstr_variant(const VARIANT *var)
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLboolean GLboolean GLboolean a
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
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 GLint GLint j
HRESULT exec_script(HTMLInnerWindow *, const WCHAR *, const WCHAR *, VARIANT *) DECLSPEC_HIDDEN
void clear_ei(EXCEPINFO *ei)
HRESULT array_access(SAFEARRAY *array, DISPPARAMS *dp, VARIANT **ret)
void release_dynamic_var(dynamic_var_t *var)
void heap_pool_init(heap_pool_t *)
void heap_pool_free(heap_pool_t *)
HRESULT get_dispatch_typeinfo(ITypeInfo **)
D3D11_SHADER_VARIABLE_DESC desc
static IDispatch * script_disp
static VARIANTARG static DISPID
_Out_ PULONG _Out_ PULONG pIndex
#define LOCALE_USER_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYPUT
#define DISPATCH_PROPERTYGET
#define DISPATCH_PROPERTYPUTREF
static const WCHAR szName[]
#define IsEqualGUID(rguid1, rguid2)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
static struct __wine_debug_functions funcs
IDispatchEx IDispatchEx_iface
const class_desc_t * desc
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HRESULT WINAPI VariantCopyInd(VARIANT *pvargDest, VARIANTARG *pvargSrc)
static HRESULT WINAPI ScriptDisp_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
static ULONG WINAPI ScriptDisp_AddRef(IDispatchEx *iface)
static ULONG WINAPI ScriptDisp_Release(IDispatchEx *iface)
static HRESULT WINAPI ScriptTypeInfo_GetContainingTypeLib(ITypeInfo *iface, ITypeLib **ppTLib, UINT *pIndex)
static vbdisp_t * unsafe_impl_from_IDispatch(IDispatch *iface)
static BOOL get_func_id(vbdisp_t *This, const WCHAR *name, vbdisp_invoke_type_t invoke_type, BOOL search_private, DISPID *id)
static void WINAPI ScriptTypeInfo_ReleaseVarDesc(ITypeInfo *iface, VARDESC *pVarDesc)
static const ITypeCompVtbl ScriptTypeCompVtbl
static function_t * get_func_from_memid(const ScriptTypeInfo *typeinfo, MEMBERID memid)
static HRESULT WINAPI ScriptDisp_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
static HRESULT WINAPI ScriptTypeInfo_GetImplTypeFlags(ITypeInfo *iface, UINT index, INT *pImplTypeFlags)
HRESULT create_vbdisp(const class_desc_t *desc, vbdisp_t **ret)
static HRESULT WINAPI ScriptTypeInfo_GetDocumentation(ITypeInfo *iface, MEMBERID memid, BSTR *pBstrName, BSTR *pBstrDocString, DWORD *pdwHelpContext, BSTR *pBstrHelpFile)
HRESULT get_disp_value(script_ctx_t *ctx, IDispatch *disp, VARIANT *v)
static BOOL is_func_id(vbdisp_t *This, DISPID id)
static HRESULT WINAPI ScriptTypeInfo_QueryInterface(ITypeInfo *iface, REFIID riid, void **ppv)
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 ScriptTypeInfo_GetVarDesc(ITypeInfo *iface, UINT index, VARDESC **ppVarDesc)
static HRESULT WINAPI ScriptDisp_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static HRESULT WINAPI ScriptTypeComp_QueryInterface(ITypeComp *iface, REFIID riid, void **ppv)
HRESULT disp_propput(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, DISPPARAMS *dp)
static HRESULT WINAPI ScriptDisp_GetIDsOfNames(IDispatchEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static ScriptTypeInfo * ScriptTypeInfo_from_ITypeComp(ITypeComp *iface)
static ULONG WINAPI ScriptTypeInfo_Release(ITypeInfo *iface)
static HRESULT WINAPI ScriptTypeInfo_Invoke(ITypeInfo *iface, PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
static HRESULT WINAPI ScriptTypeInfo_GetFuncDesc(ITypeInfo *iface, UINT index, FUNCDESC **ppFuncDesc)
static const GUID GUID_VBScriptTypeInfo
static HRESULT WINAPI ScriptTypeInfo_GetNames(ITypeInfo *iface, MEMBERID memid, BSTR *rgBstrNames, UINT cMaxNames, UINT *pcNames)
HRESULT vbdisp_get_id(vbdisp_t *This, BSTR name, vbdisp_invoke_type_t invoke_type, BOOL search_private, DISPID *id)
static void clean_props(vbdisp_t *This)
static HRESULT WINAPI ScriptDisp_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo)
static HRESULT WINAPI ScriptTypeInfo_GetTypeComp(ITypeInfo *iface, ITypeComp **ppTComp)
static HRESULT WINAPI ScriptDisp_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
static HRESULT WINAPI ScriptTypeInfo_AddressOfMember(ITypeInfo *iface, MEMBERID memid, INVOKEKIND invKind, PVOID *ppv)
HRESULT disp_get_id(IDispatch *disp, BSTR name, vbdisp_invoke_type_t invoke_type, BOOL search_private, DISPID *id)
static HRESULT WINAPI ScriptTypeComp_BindType(ITypeComp *iface, LPOLESTR szName, ULONG lHashVal, ITypeInfo **ppTInfo, ITypeComp **ppTComp)
HRESULT create_script_disp(script_ctx_t *ctx, ScriptDisp **ret)
static BOOL run_terminator(vbdisp_t *This)
static HRESULT WINAPI ScriptDisp_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
static ScriptDisp * ScriptDisp_from_IDispatchEx(IDispatchEx *iface)
static ULONG WINAPI ScriptTypeComp_Release(ITypeComp *iface)
static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static HRESULT invoke_variant_prop(script_ctx_t *ctx, VARIANT *v, WORD flags, DISPPARAMS *dp, VARIANT *res)
static HRESULT WINAPI ScriptTypeInfo_GetRefTypeInfo(ITypeInfo *iface, HREFTYPE hRefType, ITypeInfo **ppTInfo)
static ULONG WINAPI ScriptTypeInfo_AddRef(ITypeInfo *iface)
static vbdisp_t * impl_from_IDispatchEx(IDispatchEx *iface)
static ScriptTypeInfo * ScriptTypeInfo_from_ITypeInfo(ITypeInfo *iface)
static HRESULT WINAPI ScriptDisp_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ret)
static void WINAPI ScriptTypeInfo_ReleaseTypeAttr(ITypeInfo *iface, TYPEATTR *pTypeAttr)
static HRESULT WINAPI ScriptDisp_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
#define RPC_E_SERVER_UNAVAILABLE
static const ITypeInfoVtbl ScriptTypeInfoVtbl
static ULONG WINAPI DispatchEx_AddRef(IDispatchEx *iface)
static HRESULT WINAPI ScriptTypeInfo_GetTypeAttr(ITypeInfo *iface, TYPEATTR **ppTypeAttr)
static HRESULT WINAPI ScriptTypeInfo_GetDllEntry(ITypeInfo *iface, MEMBERID memid, INVOKEKIND invKind, BSTR *pBstrDllName, BSTR *pBstrName, WORD *pwOrdinal)
static HRESULT WINAPI ScriptDisp_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk)
static IDispatchExVtbl ScriptDispVtbl
static HRESULT WINAPI ScriptTypeComp_Bind(ITypeComp *iface, LPOLESTR szName, ULONG lHashVal, WORD wFlags, ITypeInfo **ppTInfo, DESCKIND *pDescKind, BINDPTR *pBindPtr)
static HRESULT WINAPI ScriptDisp_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static HRESULT get_propput_arg(script_ctx_t *ctx, const DISPPARAMS *dp, WORD flags, VARIANT *v, BOOL *is_owned)
void map_vbs_exception(EXCEPINFO *ei)
static HRESULT WINAPI ScriptDisp_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI ScriptTypeInfo_CreateInstance(ITypeInfo *iface, IUnknown *pUnkOuter, REFIID riid, PVOID *ppvObj)
static HRESULT WINAPI ScriptTypeInfo_GetIDsOfNames(ITypeInfo *iface, LPOLESTR *rgszNames, UINT cNames, MEMBERID *pMemId)
static HRESULT WINAPI ScriptTypeInfo_GetRefTypeOfImplType(ITypeInfo *iface, UINT index, HREFTYPE *pRefType)
HRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, DISPPARAMS *dp, VARIANT *retv)
static ULONG WINAPI ScriptTypeComp_AddRef(ITypeComp *iface)
static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI ScriptTypeInfo_GetMops(ITypeInfo *iface, MEMBERID memid, BSTR *pBstrMops)
#define DISPID_FUNCTION_MASK
static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static void WINAPI ScriptTypeInfo_ReleaseFuncDesc(ITypeInfo *iface, FUNCDESC *pFuncDesc)
static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo)
void collect_objects(script_ctx_t *ctx)
static HRESULT WINAPI ScriptDisp_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static IDispatchExVtbl DispatchExVtbl
static HRESULT invoke_vbdisp(vbdisp_t *This, DISPID id, DWORD flags, BOOL extern_caller, DISPPARAMS *params, VARIANT *res)
void release_vbscode(vbscode_t *code)
static void grab_vbscode(vbscode_t *code)
BSTR get_vbscript_string(int)
static unsigned arg_cnt(const DISPPARAMS *dp)
#define VBSCRIPT_MAJOR_VERSION
#define VBSCRIPT_MINOR_VERSION
#define MAKE_VBSERROR(code)
static const WCHAR props[]
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define REGDB_E_CLASSNOTREG
#define STG_E_SHAREVIOLATION
#define TYPE_E_CANTCREATETMPFILE
#define TYPE_E_BADMODULEKIND
#define DISP_E_PARAMNOTFOUND
#define DISP_E_NONAMEDARGS
#define DISP_E_ARRAYISLOCKED
#define STG_E_PATHNOTFOUND
#define TYPE_E_ELEMENTNOTFOUND
#define STG_E_TOOMANYOPENFILES
#define TYPE_E_DLLFUNCTIONNOTFOUND
#define STG_E_LOCKVIOLATION
#define STG_E_INVALIDNAME
#define HRESULT_FACILITY(hr)
#define DISP_E_UNKNOWNINTERFACE
#define DISP_E_BADVARTYPE
#define DISP_E_BADPARAMCOUNT
#define STG_E_DISKISWRITEPROTECTED
#define STG_E_FILEALREADYEXISTS
#define TYPE_E_TYPEMISMATCH
#define STG_E_FILENOTFOUND
#define DISP_E_NOTACOLLECTION
#define DISP_E_MEMBERNOTFOUND
#define STG_E_ACCESSDENIED
#define MK_E_CANTOPENFILE
#define DISP_E_UNKNOWNLCID
#define CO_E_SERVER_EXEC_FAILURE
#define MK_E_INVALIDEXTENSION
#define DISP_E_TYPEMISMATCH
#define STG_E_NOMOREFILES
#define DISP_E_PARAMNOTOPTIONAL
#define TYPE_E_OUTOFBOUNDS
#define DISP_E_UNKNOWNNAME
#define STG_E_INSUFFICIENTMEMORY