31#define CTXARG_T DWORDLONG
32#define IActiveScriptDebugVtbl IActiveScriptDebug64Vtbl
33#define IActiveScriptParseVtbl IActiveScriptParse64Vtbl
34#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_64Vtbl
39#define IActiveScriptDebugVtbl IActiveScriptDebug32Vtbl
40#define IActiveScriptParseVtbl IActiveScriptParse32Vtbl
41#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_32Vtbl
84 IActiveScriptSite_OnStateChange(
This->ctx->site,
state);
103 if(
code->named_item) {
104 if(!
code->named_item->script_obj) {
108 obj =
code->named_item->script_obj;
111 cnt =
obj->global_vars_cnt +
code->main_code.var_cnt;
112 if (
cnt >
obj->global_vars_size)
114 if (
obj->global_vars)
115 new_vars =
realloc(
obj->global_vars,
cnt *
sizeof(*new_vars));
117 new_vars =
malloc(
cnt *
sizeof(*new_vars));
120 obj->global_vars = new_vars;
121 obj->global_vars_size =
cnt;
124 cnt =
obj->global_funcs_cnt;
125 for (func_iter =
code->funcs; func_iter; func_iter = func_iter->
next)
127 if (
cnt >
obj->global_funcs_size)
129 if (
obj->global_funcs)
130 new_funcs =
realloc(
obj->global_funcs,
cnt *
sizeof(*new_funcs));
132 new_funcs =
malloc(
cnt *
sizeof(*new_funcs));
135 obj->global_funcs = new_funcs;
136 obj->global_funcs_size =
cnt;
139 for (
i = 0;
i <
code->main_code.var_cnt;
i++)
151 obj->global_vars[
obj->global_vars_cnt +
i] =
var;
154 obj->global_vars_cnt +=
code->main_code.var_cnt;
156 for (func_iter =
code->funcs; func_iter; func_iter = func_iter->
next)
158 for (
i = 0;
i <
obj->global_funcs_cnt;
i++)
163 obj->global_funcs[
i] = func_iter;
167 if (
i ==
obj->global_funcs_cnt)
168 obj->global_funcs[
obj->global_funcs_cnt++] = func_iter;
183 class->next =
obj->classes;
185 code->last_class =
class;
190 prev_caller =
ctx->vbcaller->caller;
193 ctx->vbcaller->caller = prev_caller;
212 hres = IActiveScriptSite_GetItemInfo(
site,
item->name, SCRIPTINFO_IUNKNOWN, &unk,
NULL);
214 WARN(
"GetItemInfo failed: %08lx\n",
hres);
219 IUnknown_Release(unk);
221 WARN(
"object does not implement IDispatch\n");
235 if(!
item->script_obj && !(
item->flags & SCRIPTITEM_GLOBALMEMBERS)) {
240 if(!
item->disp && (
flags || !(
item->flags & SCRIPTITEM_CODEONLY))) {
254 if(!
item->script_obj)
return;
257 IDispatchEx_Release(&
item->script_obj->IDispatchEx_iface);
263 if(--
item->ref)
return;
279 if(
code->is_persistent)
296 IDispatch_Release(
item->disp);
300 if(!(
item->flags & SCRIPTITEM_ISPERSISTENT))
308 IInternetHostSecurityManager_Release(
ctx->secmgr);
313 IActiveScriptSite_Release(
ctx->site);
317 if(
ctx->script_obj) {
347 switch(
This->state) {
385 *
ppv = &
This->IServiceProvider_iface;
424 if(
IsEqualGUID(guidService, &IID_IActiveScriptSite)) {
425 TRACE(
"(%p)->(IID_IActiveScriptSite)\n",
This);
427 return IActiveScriptSite_QueryInterface(
This->ctx->site,
riid,
ppv);
477 *
ppv = &
This->IActiveScriptError_iface;
479 TRACE(
"(%p)->(IID_IActiveScriptError %p)\n",
This,
ppv);
480 *
ppv = &
This->IActiveScriptError_iface;
531 TRACE(
"(%p)->(%p %p %p)\n",
This, source_context,
line, character);
534 *source_context =
This->cookie;
538 *character =
This->character;
576 for(nl =
p =
code->source; p < code->
source + loc;
p++) {
577 if(*
p !=
'\n')
continue;
581 error->character =
code->source + loc - nl;
583 hres = IActiveScriptSite_OnScriptError(
ctx->site, &
error->IActiveScriptError_iface);
584 IActiveScriptError_Release(&
error->IActiveScriptError_iface);
599 *
ppv = &
This->IActiveScript_iface;
602 *
ppv = &
This->IActiveScript_iface;
604 TRACE(
"(%p)->(IID_IActiveScriptDebug %p)\n",
This,
ppv);
605 *
ppv = &
This->IActiveScriptDebug_iface;
607 TRACE(
"(%p)->(IID_IActiveScriptParse %p)\n",
This,
ppv);
608 *
ppv = &
This->IActiveScriptParse_iface;
610 TRACE(
"(%p)->(IID_IActiveScriptParseProcedure2 %p)\n",
This,
ppv);
611 *
ppv = &
This->IActiveScriptParseProcedure2_iface;
614 *
ppv = &
This->IObjectSafety_iface;
640 TRACE(
"(%p) ref=%ld\n", iface,
ref);
645 IServiceProvider_Release(&
This->ctx->vbcaller->IServiceProvider_iface);
681 item->flags &= ~SCRIPTITEM_CODEONLY;
689 IActiveScriptSite_AddRef(
This->ctx->site);
691 IActiveScriptSite_GetLCID(
This->ctx->site, &
lcid);
694 sizeof(
This->ctx->codepage)/
sizeof(
WCHAR));
695 if (!
This->ctx->codepage)
698 if(
This->is_initialized)
746 FIXME(
"unimplemented SCRIPTSTATE_DISCONNECTED\n");
749 FIXME(
"unimplemented state %d\n",
ss);
769 *pssState =
This->state;
798 if(
dwFlags & SCRIPTITEM_GLOBALMEMBERS) {
801 hres = IActiveScriptSite_GetItemInfo(
This->ctx->site, pstrName, SCRIPTINFO_IUNKNOWN, &unk,
NULL);
803 WARN(
"GetItemInfo failed: %08lx\n",
hres);
808 IUnknown_Release(unk);
810 WARN(
"object does not implement IDispatch\n");
818 IDispatch_Release(disp);
829 IDispatch_Release(disp);
861 script_obj =
This->ctx->script_obj;
865 if(
item->script_obj) script_obj =
item->script_obj;
869 IDispatch_AddRef(*ppdisp);
939 return IActiveScript_QueryInterface(&
This->IActiveScript_iface,
riid,
ppv);
945 return IActiveScript_AddRef(&
This->IActiveScript_iface);
951 return IActiveScript_Release(&
This->IActiveScript_iface);
997 return IActiveScript_QueryInterface(&
This->IActiveScript_iface,
riid,
ppv);
1003 return IActiveScript_AddRef(&
This->IActiveScript_iface);
1009 return IActiveScript_Release(&
This->IActiveScript_iface);
1018 if(
This->is_initialized)
1028 LPCOLESTR pstrDefaultName, LPCOLESTR pstrCode, LPCOLESTR pstrItemName,
1029 LPCOLESTR pstrSubItemName, LPCOLESTR pstrEventName, LPCOLESTR pstrDelimiter,
1031 BSTR *pbstrName, EXCEPINFO *pexcepinfo)
1037 ulStartingLineNumber,
dwFlags, pbstrName, pexcepinfo);
1042 LPCOLESTR pstrCode, LPCOLESTR pstrItemName,
IUnknown *punkContext,
1043 LPCOLESTR pstrDelimiter,
CTXARG_T dwSourceContextCookie,
ULONG ulStartingLine,
1087 return IActiveScript_QueryInterface(&
This->IActiveScript_iface,
riid,
ppv);
1093 return IActiveScript_AddRef(&
This->IActiveScript_iface);
1099 return IActiveScript_Release(&
This->IActiveScript_iface);
1103 LPCOLESTR pstrCode, LPCOLESTR pstrFormalParams, LPCOLESTR pstrProcedureName,
1104 LPCOLESTR pstrItemName,
IUnknown *punkContext, LPCOLESTR pstrDelimiter,
1147 return IActiveScript_QueryInterface(&
This->IActiveScript_iface,
riid,
ppv);
1153 return IActiveScript_AddRef(&
This->IActiveScript_iface);
1159 return IActiveScript_Release(&
This->IActiveScript_iface);
1162#define SUPPORTED_OPTIONS (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER)
1165 DWORD *pdwSupportedOptions,
DWORD *pdwEnabledOptions)
1171 if(!pdwSupportedOptions || !pdwEnabledOptions)
1175 *pdwEnabledOptions =
This->ctx->safeopt;
1180 DWORD dwOptionSetMask,
DWORD dwEnabledOptions)
1189 This->ctx->safeopt = (dwEnabledOptions & dwOptionSetMask) | (
This->ctx->safeopt & ~dwOptionSetMask) | INTERFACE_USES_DISPEX;
1237 ctx->safeopt = INTERFACE_USES_DISPEX;
1244 IActiveScript_Release(&
ret->IActiveScript_iface);
1248 hres = IActiveScript_QueryInterface(&
ret->IActiveScript_iface,
riid,
ppv);
1249 IActiveScript_Release(&
ret->IActiveScript_iface);
1272 *
ppv = &
This->IServiceProvider_iface;
1275 *
ppv = &
This->IServiceProvider_iface;
1316 return IServiceProvider_QueryService(
This->sp, guidService,
riid,
ppv);
1332 hres = IActiveScriptSite_QueryInterface(
ctx->site, &IID_IServiceProvider, (
void**)&
sp);
1334 ERR(
"Could not get IServiceProvider iface: %08lx\n",
hres);
1340 IServiceProvider_Release(
sp);
enum tagSCRIPTTHREADSTATE SCRIPTTHREADSTATE
@ SCRIPTSTATE_INITIALIZED
@ SCRIPTSTATE_DISCONNECTED
@ SCRIPTSTATE_UNINITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
#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)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
LCID WINAPI GetUserDefaultLCID(void)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
static wchar_t * wcsdup(const wchar_t *str)
static HRESULT WINAPI VBScriptError_QueryInterface(IActiveScriptError *iface, REFIID riid, void **ppv)
static void release_named_item_script_obj(named_item_t *item)
static HRESULT WINAPI VBScriptDebug_GetScriptletTextAttributes(IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
static HRESULT WINAPI VBScriptParseProcedure_ParseProcedureText(IActiveScriptParseProcedure2 *iface, LPCOLESTR pstrCode, LPCOLESTR pstrFormalParams, LPCOLESTR pstrProcedureName, LPCOLESTR pstrItemName, IUnknown *punkContext, LPCOLESTR pstrDelimiter, CTXARG_T dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, IDispatch **ppdisp)
static ULONG WINAPI vbcaller_Release(IServiceProvider *iface)
static HRESULT WINAPI VBScript_Clone(IActiveScript *iface, IActiveScript **ppscript)
static ULONG WINAPI VBScriptDebug_AddRef(IActiveScriptDebug *iface)
static HRESULT WINAPI VBScriptParse_ParseScriptText(IActiveScriptParse *iface, LPCOLESTR pstrCode, LPCOLESTR pstrItemName, IUnknown *punkContext, LPCOLESTR pstrDelimiter, CTXARG_T dwSourceContextCookie, ULONG ulStartingLine, DWORD dwFlags, VARIANT *pvarResult, EXCEPINFO *pexcepinfo)
static HRESULT WINAPI VBScriptSafety_QueryInterface(IObjectSafety *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VBScriptDebug_EnumCodeContextsOfPosition(IActiveScriptDebug *iface, CTXARG_T source, ULONG offset, ULONG len, IEnumDebugCodeContexts **ret)
static HRESULT WINAPI VBScriptError_GetExceptionInfo(IActiveScriptError *iface, EXCEPINFO *excepinfo)
static HRESULT WINAPI VBScript_GetCurrentScriptThreadID(IActiveScript *iface, SCRIPTTHREADID *pstridThread)
static HRESULT WINAPI VBScript_SetScriptState(IActiveScript *iface, SCRIPTSTATE ss)
static void exec_queued_code(script_ctx_t *ctx)
#define SUPPORTED_OPTIONS
static HRESULT WINAPI VBScript_GetScriptState(IActiveScript *iface, SCRIPTSTATE *pssState)
static HRESULT exec_global_code(script_ctx_t *ctx, vbscode_t *code, VARIANT *res)
static HRESULT WINAPI VBScriptDebug_QueryInterface(IActiveScriptDebug *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VBScriptSafety_GetInterfaceSafetyOptions(IObjectSafety *iface, REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions)
static ULONG WINAPI VBScriptParse_Release(IActiveScriptParse *iface)
void release_named_item(named_item_t *item)
static HRESULT WINAPI VBScriptError_GetSourceLineText(IActiveScriptError *iface, BSTR *source)
static HRESULT WINAPI VBScript_QueryInterface(IActiveScript *iface, REFIID riid, void **ppv)
#define IActiveScriptParseProcedure2Vtbl
static ULONG WINAPI VBScriptParseProcedure_AddRef(IActiveScriptParseProcedure2 *iface)
static HRESULT WINAPI VBScript_SetScriptSite(IActiveScript *iface, IActiveScriptSite *pass)
static const IActiveScriptParseProcedure2Vtbl VBScriptParseProcedureVtbl
static HRESULT WINAPI VBScript_GetScriptSite(IActiveScript *iface, REFIID riid, void **ppvObject)
static const IActiveScriptDebugVtbl VBScriptDebugVtbl
static ULONG WINAPI VBScriptError_AddRef(IActiveScriptError *iface)
static HRESULT WINAPI VBScript_InterruptScriptThread(IActiveScript *iface, SCRIPTTHREADID stidThread, const EXCEPINFO *pexcepinfo, DWORD dwFlags)
static HRESULT WINAPI VBScript_Close(IActiveScript *iface)
static HRESULT WINAPI VBScript_GetScriptThreadState(IActiveScript *iface, SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState)
static void release_code_list(script_ctx_t *ctx)
static ULONG WINAPI AXSite_Release(IServiceProvider *iface)
static HRESULT WINAPI VBScript_GetScriptDispatch(IActiveScript *iface, LPCOLESTR pstrItemName, IDispatch **ppdisp)
static IServiceProviderVtbl AXSiteVtbl
static HRESULT WINAPI vbcaller_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
#define IActiveScriptDebugVtbl
#define IActiveScriptParseVtbl
static HRESULT WINAPI VBScriptDebug_GetScriptTextAttributes(IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
static HRESULT WINAPI VBScriptParse_QueryInterface(IActiveScriptParse *iface, REFIID riid, void **ppv)
IUnknown * create_ax_site(script_ctx_t *ctx)
static const IObjectSafetyVtbl VBScriptSafetyVtbl
static ULONG WINAPI vbcaller_AddRef(IServiceProvider *iface)
static ULONG WINAPI VBScriptDebug_Release(IActiveScriptDebug *iface)
static void decrease_state(VBScript *This, SCRIPTSTATE state)
static AXSite * impl_from_IServiceProvider(IServiceProvider *iface)
static HRESULT WINAPI VBScript_AddNamedItem(IActiveScript *iface, LPCOLESTR pstrName, DWORD dwFlags)
static VBScript * impl_from_IActiveScriptParse(IActiveScriptParse *iface)
static WCHAR * heap_pool_strdup(heap_pool_t *heap, const WCHAR *str)
static ULONG WINAPI VBScriptParseProcedure_Release(IActiveScriptParseProcedure2 *iface)
static ULONG WINAPI VBScriptSafety_Release(IObjectSafety *iface)
static HRESULT WINAPI VBScriptParse_AddScriptlet(IActiveScriptParse *iface, LPCOLESTR pstrDefaultName, LPCOLESTR pstrCode, LPCOLESTR pstrItemName, LPCOLESTR pstrSubItemName, LPCOLESTR pstrEventName, LPCOLESTR pstrDelimiter, CTXARG_T dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, BSTR *pbstrName, EXCEPINFO *pexcepinfo)
static ULONG WINAPI AXSite_AddRef(IServiceProvider *iface)
static ULONG WINAPI VBScriptSafety_AddRef(IObjectSafety *iface)
static struct vbcaller * create_vbcaller(void)
static HRESULT WINAPI VBScriptParse_InitNew(IActiveScriptParse *iface)
static HRESULT WINAPI VBScript_AddTypeLib(IActiveScript *iface, REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags)
static HRESULT WINAPI VBScriptParseProcedure_QueryInterface(IActiveScriptParseProcedure2 *iface, REFIID riid, void **ppv)
static const IActiveScriptParseVtbl VBScriptParseVtbl
static BOOL is_started(VBScript *This)
static VBScript * impl_from_IActiveScriptParseProcedure2(IActiveScriptParseProcedure2 *iface)
static ULONG WINAPI VBScript_Release(IActiveScript *iface)
static ULONG WINAPI VBScriptParse_AddRef(IActiveScriptParse *iface)
static VBScript * impl_from_IActiveScript(IActiveScript *iface)
static struct vbcaller * vbcaller_from_IServiceProvider(IServiceProvider *iface)
static void release_named_item_list(script_ctx_t *ctx)
static HRESULT retrieve_named_item_disp(IActiveScriptSite *site, named_item_t *item)
static HRESULT WINAPI VBScript_GetScriptThreadID(IActiveScript *iface, DWORD dwWin32ThreadId, SCRIPTTHREADID *pstidThread)
static ULONG WINAPI VBScript_AddRef(IActiveScript *iface)
static VBScript * impl_from_IActiveScriptDebug(IActiveScriptDebug *iface)
static void change_state(VBScript *This, SCRIPTSTATE state)
static ULONG WINAPI VBScriptError_Release(IActiveScriptError *iface)
static HRESULT WINAPI VBScriptSafety_SetInterfaceSafetyOptions(IObjectSafety *iface, REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions)
static HRESULT WINAPI AXSite_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static const IServiceProviderVtbl ServiceProviderVtbl
HRESULT report_script_error(script_ctx_t *ctx, const vbscode_t *code, unsigned loc)
static HRESULT WINAPI VBScriptError_GetSourcePosition(IActiveScriptError *iface, DWORD *source_context, ULONG *line, LONG *character)
static const IActiveScriptVtbl VBScriptVtbl
static const IActiveScriptErrorVtbl VBScriptErrorVtbl
static HRESULT WINAPI AXSite_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static void release_script(script_ctx_t *ctx)
static HRESULT WINAPI vbcaller_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
static VBScriptError * impl_from_IActiveScriptError(IActiveScriptError *iface)
named_item_t * lookup_named_item(script_ctx_t *ctx, const WCHAR *name, unsigned flags)
static VBScript * impl_from_IObjectSafety(IObjectSafety *iface)
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
HRESULT exec_script(HTMLInnerWindow *, const WCHAR *, const WCHAR *, VARIANT *) DECLSPEC_HIDDEN
#define InterlockedCompareExchange
void clear_ei(EXCEPINFO *ei)
HRESULT compile_script(script_ctx_t *ctx, const WCHAR *code, UINT64 source_context, unsigned start_line, const WCHAR *args, const WCHAR *delimiter, BOOL from_eval, BOOL use_decode, named_item_t *named_item, bytecode_t **ret)
HRESULT init_global(script_ctx_t *ctx)
#define SP_CALLER_UNINITIALIZED
void * heap_pool_alloc(heap_pool_t *, DWORD) __WINE_ALLOC_SIZE(2)
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static IActiveScriptSite * site
static EXCEPINFO excepinfo
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define LOCALE_USER_DEFAULT
#define DEFAULT_UNREACHABLE
BSTR WINAPI SysAllocString(LPCOLESTR str)
#define IsEqualGUID(rguid1, rguid2)
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
IDispatchEx IDispatchEx_iface
IActiveScriptError IActiveScriptError_iface
IActiveScriptParseProcedure2 IActiveScriptParseProcedure2_iface
IActiveScriptDebug IActiveScriptDebug_iface
IActiveScriptParse IActiveScriptParse_iface
IActiveScript IActiveScript_iface
IObjectSafety IObjectSafety_iface
IDispatchEx IDispatchEx_iface
IServiceProvider IServiceProvider_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT create_vbdisp(const class_desc_t *desc, vbdisp_t **ret)
HRESULT create_script_disp(script_ctx_t *ctx, ScriptDisp **ret)
HRESULT compile_procedure(script_ctx_t *script, const WCHAR *src, const WCHAR *item_name, const WCHAR *delimiter, DWORD_PTR cookie, unsigned start_line, DWORD flags, class_desc_t **ret)
void release_vbscode(vbscode_t *code)
void detach_global_objects(script_ctx_t *ctx)
DWORD WINAPI GetCurrentThreadId(void)
#define LOCALE_IDEFAULTANSICODEPAGE