ReactOS 0.4.17-dev-357-ga8f14ff
vbscript.c File Reference
#include <assert.h>
#include "vbscript.h"
#include "objsafe.h"
#include "wine/debug.h"
Include dependency graph for vbscript.c:

Go to the source code of this file.

Classes

struct  VBScript
 
struct  VBScriptError
 
struct  AXSite
 

Macros

#define CTXARG_T   DWORD
 
#define IActiveScriptDebugVtbl   IActiveScriptDebug32Vtbl
 
#define IActiveScriptParseVtbl   IActiveScriptParse32Vtbl
 
#define IActiveScriptParseProcedure2Vtbl   IActiveScriptParseProcedure2_32Vtbl
 
#define SUPPORTED_OPTIONS   (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER)
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (vbscript)
 
static WCHARheap_pool_strdup (heap_pool_t *heap, const WCHAR *str)
 
static void change_state (VBScript *This, SCRIPTSTATE state)
 
static BOOL is_started (VBScript *This)
 
static HRESULT exec_global_code (script_ctx_t *ctx, vbscode_t *code, VARIANT *res)
 
static void exec_queued_code (script_ctx_t *ctx)
 
static HRESULT retrieve_named_item_disp (IActiveScriptSite *site, named_item_t *item)
 
named_item_tlookup_named_item (script_ctx_t *ctx, const WCHAR *name, unsigned flags)
 
static void release_named_item_script_obj (named_item_t *item)
 
void release_named_item (named_item_t *item)
 
static void release_script (script_ctx_t *ctx)
 
static void release_code_list (script_ctx_t *ctx)
 
static void release_named_item_list (script_ctx_t *ctx)
 
static void decrease_state (VBScript *This, SCRIPTSTATE state)
 
static struct vbcallervbcaller_from_IServiceProvider (IServiceProvider *iface)
 
static HRESULT WINAPI vbcaller_QueryInterface (IServiceProvider *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI vbcaller_AddRef (IServiceProvider *iface)
 
static ULONG WINAPI vbcaller_Release (IServiceProvider *iface)
 
static HRESULT WINAPI vbcaller_QueryService (IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
 
static struct vbcallercreate_vbcaller (void)
 
static VBScriptErrorimpl_from_IActiveScriptError (IActiveScriptError *iface)
 
static HRESULT WINAPI VBScriptError_QueryInterface (IActiveScriptError *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScriptError_AddRef (IActiveScriptError *iface)
 
static ULONG WINAPI VBScriptError_Release (IActiveScriptError *iface)
 
static HRESULT WINAPI VBScriptError_GetExceptionInfo (IActiveScriptError *iface, EXCEPINFO *excepinfo)
 
static HRESULT WINAPI VBScriptError_GetSourcePosition (IActiveScriptError *iface, DWORD *source_context, ULONG *line, LONG *character)
 
static HRESULT WINAPI VBScriptError_GetSourceLineText (IActiveScriptError *iface, BSTR *source)
 
HRESULT report_script_error (script_ctx_t *ctx, const vbscode_t *code, unsigned loc)
 
static VBScriptimpl_from_IActiveScript (IActiveScript *iface)
 
static HRESULT WINAPI VBScript_QueryInterface (IActiveScript *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScript_AddRef (IActiveScript *iface)
 
static ULONG WINAPI VBScript_Release (IActiveScript *iface)
 
static HRESULT WINAPI VBScript_SetScriptSite (IActiveScript *iface, IActiveScriptSite *pass)
 
static HRESULT WINAPI VBScript_GetScriptSite (IActiveScript *iface, REFIID riid, void **ppvObject)
 
static HRESULT WINAPI VBScript_SetScriptState (IActiveScript *iface, SCRIPTSTATE ss)
 
static HRESULT WINAPI VBScript_GetScriptState (IActiveScript *iface, SCRIPTSTATE *pssState)
 
static HRESULT WINAPI VBScript_Close (IActiveScript *iface)
 
static HRESULT WINAPI VBScript_AddNamedItem (IActiveScript *iface, LPCOLESTR pstrName, DWORD dwFlags)
 
static HRESULT WINAPI VBScript_AddTypeLib (IActiveScript *iface, REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags)
 
static HRESULT WINAPI VBScript_GetScriptDispatch (IActiveScript *iface, LPCOLESTR pstrItemName, IDispatch **ppdisp)
 
static HRESULT WINAPI VBScript_GetCurrentScriptThreadID (IActiveScript *iface, SCRIPTTHREADID *pstridThread)
 
static HRESULT WINAPI VBScript_GetScriptThreadID (IActiveScript *iface, DWORD dwWin32ThreadId, SCRIPTTHREADID *pstidThread)
 
static HRESULT WINAPI VBScript_GetScriptThreadState (IActiveScript *iface, SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState)
 
static HRESULT WINAPI VBScript_InterruptScriptThread (IActiveScript *iface, SCRIPTTHREADID stidThread, const EXCEPINFO *pexcepinfo, DWORD dwFlags)
 
static HRESULT WINAPI VBScript_Clone (IActiveScript *iface, IActiveScript **ppscript)
 
static VBScriptimpl_from_IActiveScriptDebug (IActiveScriptDebug *iface)
 
static HRESULT WINAPI VBScriptDebug_QueryInterface (IActiveScriptDebug *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScriptDebug_AddRef (IActiveScriptDebug *iface)
 
static ULONG WINAPI VBScriptDebug_Release (IActiveScriptDebug *iface)
 
static HRESULT WINAPI VBScriptDebug_GetScriptTextAttributes (IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
 
static HRESULT WINAPI VBScriptDebug_GetScriptletTextAttributes (IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
 
static HRESULT WINAPI VBScriptDebug_EnumCodeContextsOfPosition (IActiveScriptDebug *iface, CTXARG_T source, ULONG offset, ULONG len, IEnumDebugCodeContexts **ret)
 
static VBScriptimpl_from_IActiveScriptParse (IActiveScriptParse *iface)
 
static HRESULT WINAPI VBScriptParse_QueryInterface (IActiveScriptParse *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScriptParse_AddRef (IActiveScriptParse *iface)
 
static ULONG WINAPI VBScriptParse_Release (IActiveScriptParse *iface)
 
static HRESULT WINAPI VBScriptParse_InitNew (IActiveScriptParse *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 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 VBScriptimpl_from_IActiveScriptParseProcedure2 (IActiveScriptParseProcedure2 *iface)
 
static HRESULT WINAPI VBScriptParseProcedure_QueryInterface (IActiveScriptParseProcedure2 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScriptParseProcedure_AddRef (IActiveScriptParseProcedure2 *iface)
 
static ULONG WINAPI VBScriptParseProcedure_Release (IActiveScriptParseProcedure2 *iface)
 
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 VBScriptimpl_from_IObjectSafety (IObjectSafety *iface)
 
static HRESULT WINAPI VBScriptSafety_QueryInterface (IObjectSafety *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI VBScriptSafety_AddRef (IObjectSafety *iface)
 
static ULONG WINAPI VBScriptSafety_Release (IObjectSafety *iface)
 
static HRESULT WINAPI VBScriptSafety_GetInterfaceSafetyOptions (IObjectSafety *iface, REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions)
 
static HRESULT WINAPI VBScriptSafety_SetInterfaceSafetyOptions (IObjectSafety *iface, REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions)
 
HRESULT WINAPI VBScriptFactory_CreateInstance (IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
 
static AXSiteimpl_from_IServiceProvider (IServiceProvider *iface)
 
static HRESULT WINAPI AXSite_QueryInterface (IServiceProvider *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI AXSite_AddRef (IServiceProvider *iface)
 
static ULONG WINAPI AXSite_Release (IServiceProvider *iface)
 
static HRESULT WINAPI AXSite_QueryService (IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
 
IUnknowncreate_ax_site (script_ctx_t *ctx)
 

Variables

static const IServiceProviderVtbl ServiceProviderVtbl
 
static const IActiveScriptErrorVtbl VBScriptErrorVtbl
 
static const IActiveScriptVtbl VBScriptVtbl
 
static const IActiveScriptDebugVtbl VBScriptDebugVtbl
 
static const IActiveScriptParseVtbl VBScriptParseVtbl
 
static const IActiveScriptParseProcedure2Vtbl VBScriptParseProcedureVtbl
 
static const IObjectSafetyVtbl VBScriptSafetyVtbl
 
static IServiceProviderVtbl AXSiteVtbl
 

Macro Definition Documentation

◆ CTXARG_T

#define CTXARG_T   DWORD

Definition at line 38 of file vbscript.c.

◆ IActiveScriptDebugVtbl

#define IActiveScriptDebugVtbl   IActiveScriptDebug32Vtbl

Definition at line 39 of file vbscript.c.

◆ IActiveScriptParseProcedure2Vtbl

#define IActiveScriptParseProcedure2Vtbl   IActiveScriptParseProcedure2_32Vtbl

Definition at line 41 of file vbscript.c.

◆ IActiveScriptParseVtbl

#define IActiveScriptParseVtbl   IActiveScriptParse32Vtbl

Definition at line 40 of file vbscript.c.

◆ SUPPORTED_OPTIONS

#define SUPPORTED_OPTIONS   (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER)

Definition at line 1162 of file vbscript.c.

Function Documentation

◆ AXSite_AddRef()

static ULONG WINAPI AXSite_AddRef ( IServiceProvider iface)
static

Definition at line 1286 of file vbscript.c.

1287{
1290
1291 TRACE("(%p) ref=%ld\n", This, ref);
1292
1293 return ref;
1294}
#define InterlockedIncrement
Definition: armddk.h:53
static AXSite * impl_from_IServiceProvider(IServiceProvider *iface)
Definition: vbscript.c:1261
long LONG
Definition: pedump.c:60
#define TRACE(s)
Definition: solgame.cpp:4
Definition: send.c:48

◆ AXSite_QueryInterface()

static HRESULT WINAPI AXSite_QueryInterface ( IServiceProvider iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1266 of file vbscript.c.

1267{
1269
1271 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
1272 *ppv = &This->IServiceProvider_iface;
1273 }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
1274 TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
1275 *ppv = &This->IServiceProvider_iface;
1276 }else {
1277 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
1278 *ppv = NULL;
1279 return E_NOINTERFACE;
1280 }
1281
1282 IUnknown_AddRef((IUnknown*)*ppv);
1283 return S_OK;
1284}
const GUID IID_IUnknown
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ AXSite_QueryService()

static HRESULT WINAPI AXSite_QueryService ( IServiceProvider iface,
REFGUID  guidService,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1309 of file vbscript.c.

1311{
1313
1314 TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
1315
1316 return IServiceProvider_QueryService(This->sp, guidService, riid, ppv);
1317}

◆ AXSite_Release()

static ULONG WINAPI AXSite_Release ( IServiceProvider iface)
static

Definition at line 1296 of file vbscript.c.

1297{
1300
1301 TRACE("(%p) ref=%ld\n", This, ref);
1302
1303 if(!ref)
1304 free(This);
1305
1306 return ref;
1307}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

◆ change_state()

static void change_state ( VBScript This,
SCRIPTSTATE  state 
)
static

Definition at line 77 of file vbscript.c.

78{
79 if(This->state == state)
80 return;
81
82 This->state = state;
83 if(This->ctx->site)
84 IActiveScriptSite_OnStateChange(This->ctx->site, state);
85}
static int state
Definition: maze.c:121

Referenced by decrease_state(), VBScript_SetScriptSite(), VBScript_SetScriptState(), and VBScriptParse_InitNew().

◆ create_ax_site()

IUnknown * create_ax_site ( script_ctx_t ctx)

Definition at line 1326 of file vbscript.c.

1327{
1329 AXSite *ret;
1330 HRESULT hres;
1331
1332 hres = IActiveScriptSite_QueryInterface(ctx->site, &IID_IServiceProvider, (void**)&sp);
1333 if(FAILED(hres)) {
1334 ERR("Could not get IServiceProvider iface: %08lx\n", hres);
1335 return NULL;
1336 }
1337
1338 ret = malloc(sizeof(*ret));
1339 if(!ret) {
1340 IServiceProvider_Release(sp);
1341 return NULL;
1342 }
1343
1344 ret->IServiceProvider_iface.lpVtbl = &AXSiteVtbl;
1345 ret->ref = 1;
1346 ret->sp = sp;
1347
1348 return (IUnknown*)&ret->IServiceProvider_iface;
1349}
#define ERR(fmt,...)
Definition: precomp.h:57
#define malloc
Definition: debug_ros.c:4
static IServiceProviderVtbl AXSiteVtbl
Definition: vbscript.c:1319
return ret
Definition: mutex.c:146
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT hres
Definition: protocol.c:465
static const WCHAR sp[]
Definition: suminfo.c:287

◆ create_vbcaller()

static struct vbcaller * create_vbcaller ( void  )
static

Definition at line 453 of file vbscript.c.

454{
455 struct vbcaller *ret;
456
457 ret = malloc(sizeof(*ret));
458 if(ret) {
459 ret->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
460 ret->ref = 1;
462 }
463 return ret;
464}
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: vbscript.c:446
#define SP_CALLER_UNINITIALIZED
Definition: jscript.h:349

Referenced by VBScriptFactory_CreateInstance().

◆ decrease_state()

static void decrease_state ( VBScript This,
SCRIPTSTATE  state 
)
static

Definition at line 345 of file vbscript.c.

346{
347 switch(This->state) {
351 return;
352 /* FALLTHROUGH */
356 /* FALLTHROUGH */
361 break;
362 release_script(This->ctx);
363 This->thread_id = 0;
367 }
368 break;
370 break;
372 }
373}
@ SCRIPTSTATE_INITIALIZED
Definition: activscp.idl:62
@ SCRIPTSTATE_DISCONNECTED
Definition: activscp.idl:60
@ SCRIPTSTATE_STARTED
Definition: activscp.idl:58
@ SCRIPTSTATE_UNINITIALIZED
Definition: activscp.idl:57
@ SCRIPTSTATE_CLOSED
Definition: activscp.idl:61
@ SCRIPTSTATE_CONNECTED
Definition: activscp.idl:59
static void release_code_list(script_ctx_t *ctx)
Definition: vbscript.c:326
static void release_named_item_list(script_ctx_t *ctx)
Definition: vbscript.c:336
static void change_state(VBScript *This, SCRIPTSTATE state)
Definition: vbscript.c:77
static void release_script(script_ctx_t *ctx)
Definition: vbscript.c:269
#define DEFAULT_UNREACHABLE

Referenced by VBScript_Close(), VBScript_Release(), and VBScript_SetScriptState().

◆ exec_global_code()

static HRESULT exec_global_code ( script_ctx_t ctx,
vbscode_t code,
VARIANT res 
)
static

Definition at line 94 of file vbscript.c.

95{
96 ScriptDisp *obj = ctx->script_obj;
97 function_t *func_iter, **new_funcs;
98 dynamic_var_t *var, **new_vars;
99 IServiceProvider *prev_caller;
100 size_t cnt, i;
102
103 if(code->named_item) {
104 if(!code->named_item->script_obj) {
105 hres = create_script_disp(ctx, &code->named_item->script_obj);
106 if(FAILED(hres)) return hres;
107 }
108 obj = code->named_item->script_obj;
109 }
110
111 cnt = obj->global_vars_cnt + code->main_code.var_cnt;
112 if (cnt > obj->global_vars_size)
113 {
114 if (obj->global_vars)
115 new_vars = realloc(obj->global_vars, cnt * sizeof(*new_vars));
116 else
117 new_vars = malloc(cnt * sizeof(*new_vars));
118 if (!new_vars)
119 return E_OUTOFMEMORY;
120 obj->global_vars = new_vars;
121 obj->global_vars_size = cnt;
122 }
123
124 cnt = obj->global_funcs_cnt;
125 for (func_iter = code->funcs; func_iter; func_iter = func_iter->next)
126 cnt++;
127 if (cnt > obj->global_funcs_size)
128 {
129 if (obj->global_funcs)
130 new_funcs = realloc(obj->global_funcs, cnt * sizeof(*new_funcs));
131 else
132 new_funcs = malloc(cnt * sizeof(*new_funcs));
133 if (!new_funcs)
134 return E_OUTOFMEMORY;
135 obj->global_funcs = new_funcs;
136 obj->global_funcs_size = cnt;
137 }
138
139 for (i = 0; i < code->main_code.var_cnt; i++)
140 {
141 if (!(var = heap_pool_alloc(&obj->heap, sizeof(*var))))
142 return E_OUTOFMEMORY;
143
144 var->name = heap_pool_strdup(&obj->heap, code->main_code.vars[i].name);
145 if (!var->name)
146 return E_OUTOFMEMORY;
147 V_VT(&var->v) = VT_EMPTY;
148 var->is_const = FALSE;
149 var->array = NULL;
150
151 obj->global_vars[obj->global_vars_cnt + i] = var;
152 }
153
154 obj->global_vars_cnt += code->main_code.var_cnt;
155
156 for (func_iter = code->funcs; func_iter; func_iter = func_iter->next)
157 {
158 for (i = 0; i < obj->global_funcs_cnt; i++)
159 {
160 if (!wcsicmp(obj->global_funcs[i]->name, func_iter->name))
161 {
162 /* global function already exists, replace it */
163 obj->global_funcs[i] = func_iter;
164 break;
165 }
166 }
167 if (i == obj->global_funcs_cnt)
168 obj->global_funcs[obj->global_funcs_cnt++] = func_iter;
169 }
170
171 if (code->classes)
172 {
173 class_desc_t *class = code->classes;
174
175 while (1)
176 {
177 class->ctx = ctx;
178 if (!class->next)
179 break;
180 class = class->next;
181 }
182
183 class->next = obj->classes;
184 obj->classes = code->classes;
185 code->last_class = class;
186 }
187
188 code->pending_exec = FALSE;
189
190 prev_caller = ctx->vbcaller->caller;
191 ctx->vbcaller->caller = SP_CALLER_UNINITIALIZED;
192 hres = exec_script(ctx, TRUE, &code->main_code, NULL, NULL, res);
193 ctx->vbcaller->caller = prev_caller;
194 return hres;
195}
const WCHAR * class
Definition: main.c:68
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define realloc
Definition: debug_ros.c:6
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
@ VT_EMPTY
Definition: compat.h:2295
#define wcsicmp
Definition: compat.h:15
static WCHAR * heap_pool_strdup(heap_pool_t *heap, const WCHAR *str)
Definition: vbscript.c:69
GLuint res
Definition: glext.h:9613
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
Definition: glfuncs.h:248
HRESULT exec_script(HTMLInnerWindow *, const WCHAR *, const WCHAR *, VARIANT *) DECLSPEC_HIDDEN
Definition: script.c:1245
void * heap_pool_alloc(heap_pool_t *, DWORD) __WINE_ALLOC_SIZE(2)
Definition: jsutils.c:72
const char * var
Definition: shader.c:5666
#define V_VT(A)
Definition: oleauto.h:211
static unsigned __int64 next
Definition: rand_nt.c:6
const WCHAR * name
Definition: vbscript.h:346
function_t * next
Definition: vbscript.h:356
Definition: inflate.c:139
HRESULT create_script_disp(script_ctx_t *ctx, ScriptDisp **ret)
Definition: vbdisp.c:1545
_In_ size_t cnt
Definition: wcstombs.cpp:43

Referenced by exec_queued_code(), and VBScriptParse_ParseScriptText().

◆ exec_queued_code()

static void exec_queued_code ( script_ctx_t ctx)
static

Definition at line 197 of file vbscript.c.

198{
199 vbscode_t *iter;
200
201 LIST_FOR_EACH_ENTRY(iter, &ctx->code_list, vbscode_t, entry) {
202 if(iter->pending_exec)
203 exec_global_code(ctx, iter, NULL);
204 }
205}
static HRESULT exec_global_code(script_ctx_t *ctx, vbscode_t *code, VARIANT *res)
Definition: vbscript.c:94
uint32_t entry
Definition: isohybrid.c:63
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
BOOL pending_exec
Definition: vbscript.h:369

Referenced by VBScript_SetScriptState().

◆ heap_pool_strdup()

static WCHAR * heap_pool_strdup ( heap_pool_t heap,
const WCHAR str 
)
inlinestatic

Definition at line 69 of file vbscript.c.

70{
71 size_t size = (lstrlenW(str) + 1) * sizeof(WCHAR);
73 if (ret) memcpy(ret, str, size);
74 return ret;
75}
#define lstrlenW
Definition: compat.h:750
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
short WCHAR
Definition: pedump.c:58
const WCHAR * str
Definition: heap.c:86

Referenced by exec_global_code().

◆ impl_from_IActiveScript()

◆ impl_from_IActiveScriptDebug()

static VBScript * impl_from_IActiveScriptDebug ( IActiveScriptDebug *  iface)
inlinestatic

◆ impl_from_IActiveScriptError()

static VBScriptError * impl_from_IActiveScriptError ( IActiveScriptError iface)
inlinestatic

◆ impl_from_IActiveScriptParse()

static VBScript * impl_from_IActiveScriptParse ( IActiveScriptParse *  iface)
inlinestatic

◆ impl_from_IActiveScriptParseProcedure2()

static VBScript * impl_from_IActiveScriptParseProcedure2 ( IActiveScriptParseProcedure2 *  iface)
inlinestatic

Definition at line 1079 of file vbscript.c.

1080{
1081 return CONTAINING_RECORD(iface, VBScript, IActiveScriptParseProcedure2_iface);
1082}

Referenced by VBScriptParseProcedure_AddRef(), VBScriptParseProcedure_ParseProcedureText(), VBScriptParseProcedure_QueryInterface(), and VBScriptParseProcedure_Release().

◆ impl_from_IObjectSafety()

static VBScript * impl_from_IObjectSafety ( IObjectSafety iface)
inlinestatic

◆ impl_from_IServiceProvider()

static AXSite * impl_from_IServiceProvider ( IServiceProvider iface)
inlinestatic

Definition at line 1261 of file vbscript.c.

1262{
1263 return CONTAINING_RECORD(iface, AXSite, IServiceProvider_iface);
1264}

Referenced by AXSite_AddRef(), AXSite_QueryInterface(), AXSite_QueryService(), and AXSite_Release().

◆ is_started()

static BOOL is_started ( VBScript This)
inlinestatic

Definition at line 87 of file vbscript.c.

88{
89 return This->state == SCRIPTSTATE_STARTED
90 || This->state == SCRIPTSTATE_CONNECTED
91 || This->state == SCRIPTSTATE_DISCONNECTED;
92}

Referenced by VBScriptParse_ParseScriptText().

◆ lookup_named_item()

named_item_t * lookup_named_item ( script_ctx_t ctx,
const WCHAR name,
unsigned  flags 
)

Definition at line 228 of file vbscript.c.

229{
232
233 LIST_FOR_EACH_ENTRY(item, &ctx->named_items, named_item_t, entry) {
234 if((item->flags & flags) == flags && !wcsicmp(item->name, name)) {
235 if(!item->script_obj && !(item->flags & SCRIPTITEM_GLOBALMEMBERS)) {
236 hres = create_script_disp(ctx, &item->script_obj);
237 if(FAILED(hres)) return NULL;
238 }
239
240 if(!item->disp && (flags || !(item->flags & SCRIPTITEM_CODEONLY))) {
242 if(FAILED(hres)) continue;
243 }
244
245 return item;
246 }
247 }
248
249 return NULL;
250}
static HRESULT retrieve_named_item_disp(IActiveScriptSite *site, named_item_t *item)
Definition: vbscript.c:207
GLbitfield flags
Definition: glext.h:7161
Definition: name.c:39

Referenced by VBScript_GetScriptDispatch().

◆ release_code_list()

static void release_code_list ( script_ctx_t ctx)
static

Definition at line 326 of file vbscript.c.

327{
328 while(!list_empty(&ctx->code_list)) {
329 vbscode_t *iter = LIST_ENTRY(list_head(&ctx->code_list), vbscode_t, entry);
330
331 list_remove(&iter->entry);
332 release_vbscode(iter);
333 }
334}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
static int list_empty(struct list_entry *head)
Definition: list.h:58
struct list entry
Definition: vbscript.h:383
Definition: list.h:15
#define LIST_ENTRY(type)
Definition: queue.h:175
void release_vbscode(vbscode_t *code)
Definition: compile.c:1915

Referenced by decrease_state().

◆ release_named_item()

void release_named_item ( named_item_t item)

Definition at line 261 of file vbscript.c.

262{
263 if(--item->ref) return;
264
265 free(item->name);
266 free(item);
267}

Referenced by release_named_item_list(), and release_script().

◆ release_named_item_list()

static void release_named_item_list ( script_ctx_t ctx)
static

Definition at line 336 of file vbscript.c.

337{
338 while(!list_empty(&ctx->named_items)) {
339 named_item_t *iter = LIST_ENTRY(list_head(&ctx->named_items), named_item_t, entry);
340 list_remove(&iter->entry);
341 release_named_item(iter);
342 }
343}
void release_named_item(named_item_t *item)
Definition: vbscript.c:261
struct list entry
Definition: jscript.h:156

Referenced by decrease_state().

◆ release_named_item_script_obj()

static void release_named_item_script_obj ( named_item_t item)
static

Definition at line 252 of file vbscript.c.

253{
254 if(!item->script_obj) return;
255
256 item->script_obj->ctx = NULL;
257 IDispatchEx_Release(&item->script_obj->IDispatchEx_iface);
258 item->script_obj = NULL;
259}

Referenced by release_script().

◆ release_script()

static void release_script ( script_ctx_t ctx)
static

Definition at line 269 of file vbscript.c.

270{
271 named_item_t *item, *item_next;
272 vbscode_t *code, *code_next;
273
275 clear_ei(&ctx->ei);
276
277 LIST_FOR_EACH_ENTRY_SAFE(code, code_next, &ctx->code_list, vbscode_t, entry)
278 {
279 if(code->is_persistent)
280 {
281 code->pending_exec = TRUE;
282 if(code->last_class) code->last_class->next = NULL;
283 if(code->named_item) release_named_item_script_obj(code->named_item);
284 }
285 else
286 {
287 list_remove(&code->entry);
289 }
290 }
291
292 LIST_FOR_EACH_ENTRY_SAFE(item, item_next, &ctx->named_items, named_item_t, entry)
293 {
294 if(item->disp)
295 {
296 IDispatch_Release(item->disp);
297 item->disp = NULL;
298 }
300 if(!(item->flags & SCRIPTITEM_ISPERSISTENT))
301 {
302 list_remove(&item->entry);
304 }
305 }
306
307 if(ctx->secmgr) {
308 IInternetHostSecurityManager_Release(ctx->secmgr);
309 ctx->secmgr = NULL;
310 }
311
312 if(ctx->site) {
313 IActiveScriptSite_Release(ctx->site);
314 ctx->site = NULL;
315 }
316
317 if(ctx->script_obj) {
318 ScriptDisp *script_obj = ctx->script_obj;
319
320 ctx->script_obj = NULL;
321 script_obj->ctx = NULL;
322 IDispatchEx_Release(&script_obj->IDispatchEx_iface);
323 }
324}
static BOOL CALLBACK collect_objects(LPCDIDEVICEOBJECTINSTANCEW lpddo, LPVOID pvRef)
Definition: config.c:57
static void release_named_item_script_obj(named_item_t *item)
Definition: vbscript.c:252
void clear_ei(EXCEPINFO *ei)
Definition: interp.c:288
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
script_ctx_t * ctx
Definition: vbscript.h:138
IDispatchEx IDispatchEx_iface
Definition: vbscript.h:125

Referenced by decrease_state().

◆ report_script_error()

HRESULT report_script_error ( script_ctx_t ctx,
const vbscode_t code,
unsigned  loc 
)

Definition at line 558 of file vbscript.c.

559{
561 const WCHAR *p, *nl;
563
564 if(!(error = malloc(sizeof(*error))))
565 return E_OUTOFMEMORY;
566 error->IActiveScriptError_iface.lpVtbl = &VBScriptErrorVtbl;
567
568 error->ref = 1;
569 error->ei = ctx->ei;
570 memset(&ctx->ei, 0, sizeof(ctx->ei));
571 result = error->ei.scode;
572
573 p = code->source;
574 error->cookie = code->cookie;
575 error->line = code->start_line;
576 for(nl = p = code->source; p < code->source + loc; p++) {
577 if(*p != '\n') continue;
578 error->line++;
579 nl = p + 1;
580 }
581 error->character = code->source + loc - nl;
582
583 hres = IActiveScriptSite_OnScriptError(ctx->site, &error->IActiveScriptError_iface);
584 IActiveScriptError_Release(&error->IActiveScriptError_iface);
585 return hres == S_OK ? SCRIPT_E_REPORTED : result;
586}
static const IActiveScriptErrorVtbl VBScriptErrorVtbl
Definition: vbscript.c:549
GLuint64EXT * result
Definition: glext.h:11304
GLfloat GLfloat p
Definition: glext.h:8902
#define error(str)
Definition: mkdosfs.c:1605
#define memset(x, y, z)
Definition: compat.h:39

Referenced by compile_error(), and exec_script().

◆ retrieve_named_item_disp()

static HRESULT retrieve_named_item_disp ( IActiveScriptSite site,
named_item_t item 
)
static

Definition at line 207 of file vbscript.c.

208{
209 IUnknown *unk;
211
212 hres = IActiveScriptSite_GetItemInfo(site, item->name, SCRIPTINFO_IUNKNOWN, &unk, NULL);
213 if(FAILED(hres)) {
214 WARN("GetItemInfo failed: %08lx\n", hres);
215 return hres;
216 }
217
218 hres = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)&item->disp);
219 IUnknown_Release(unk);
220 if(FAILED(hres)) {
221 WARN("object does not implement IDispatch\n");
222 return hres;
223 }
224
225 return S_OK;
226}
#define WARN(fmt,...)
Definition: precomp.h:61
static IActiveScriptSite * site
Definition: script.c:149
const GUID IID_IDispatch

Referenced by lookup_named_item(), and VBScript_SetScriptSite().

◆ vbcaller_AddRef()

static ULONG WINAPI vbcaller_AddRef ( IServiceProvider iface)
static

Definition at line 396 of file vbscript.c.

397{
400
401 TRACE("(%p) ref=%ld\n", This, ref);
402
403 return ref;
404}
static struct vbcaller * vbcaller_from_IServiceProvider(IServiceProvider *iface)
Definition: vbscript.c:375
LONG ref
Definition: vbscript.h:190

◆ vbcaller_from_IServiceProvider()

static struct vbcaller * vbcaller_from_IServiceProvider ( IServiceProvider iface)
inlinestatic

Definition at line 375 of file vbscript.c.

376{
377 return CONTAINING_RECORD(iface, struct vbcaller, IServiceProvider_iface);
378}

Referenced by vbcaller_AddRef(), vbcaller_QueryInterface(), vbcaller_QueryService(), and vbcaller_Release().

◆ vbcaller_QueryInterface()

static HRESULT WINAPI vbcaller_QueryInterface ( IServiceProvider iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 380 of file vbscript.c.

381{
383
384 if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IServiceProvider, riid)) {
385 *ppv = &This->IServiceProvider_iface;
386 }else {
387 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
388 *ppv = NULL;
389 return E_NOINTERFACE;
390 }
391
392 IUnknown_AddRef((IUnknown*)*ppv);
393 return S_OK;
394}

◆ vbcaller_QueryService()

static HRESULT WINAPI vbcaller_QueryService ( IServiceProvider iface,
REFGUID  guidService,
REFIID  riid,
void **  ppv 
)
static

Definition at line 419 of file vbscript.c.

421{
423
424 if(IsEqualGUID(guidService, &IID_IActiveScriptSite)) {
425 TRACE("(%p)->(IID_IActiveScriptSite)\n", This);
426 if(This->ctx->site)
427 return IActiveScriptSite_QueryInterface(This->ctx->site, riid, ppv);
428 *ppv = NULL;
429 return E_NOINTERFACE;
430 }
431
432 if(IsEqualGUID(guidService, &SID_GetCaller)) {
433 TRACE("(%p)->(SID_GetCaller)\n", This);
434 *ppv = NULL;
435 if(!This->caller)
436 return S_OK;
437 return (This->caller == SP_CALLER_UNINITIALIZED) ? E_NOINTERFACE : IServiceProvider_QueryInterface(This->caller, riid, ppv);
438 }
439
440 FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
441
442 *ppv = NULL;
443 return E_NOINTERFACE;
444}
#define FIXME(fmt,...)
Definition: precomp.h:53

◆ vbcaller_Release()

static ULONG WINAPI vbcaller_Release ( IServiceProvider iface)
static

Definition at line 406 of file vbscript.c.

407{
410
411 TRACE("(%p) ref=%ld\n", This, ref);
412
413 if(!ref)
414 free(This);
415
416 return ref;
417}

◆ VBScript_AddNamedItem()

static HRESULT WINAPI VBScript_AddNamedItem ( IActiveScript iface,
LPCOLESTR  pstrName,
DWORD  dwFlags 
)
static

Definition at line 786 of file vbscript.c.

787{
790 IDispatch *disp = NULL;
792
793 TRACE("(%p)->(%s %lx)\n", This, debugstr_w(pstrName), dwFlags);
794
795 if(This->thread_id != GetCurrentThreadId() || !This->ctx->site)
796 return E_UNEXPECTED;
797
798 if(dwFlags & SCRIPTITEM_GLOBALMEMBERS) {
799 IUnknown *unk;
800
801 hres = IActiveScriptSite_GetItemInfo(This->ctx->site, pstrName, SCRIPTINFO_IUNKNOWN, &unk, NULL);
802 if(FAILED(hres)) {
803 WARN("GetItemInfo failed: %08lx\n", hres);
804 return hres;
805 }
806
807 hres = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)&disp);
808 IUnknown_Release(unk);
809 if(FAILED(hres)) {
810 WARN("object does not implement IDispatch\n");
811 return hres;
812 }
813 }
814
815 item = malloc(sizeof(*item));
816 if(!item) {
817 if(disp)
818 IDispatch_Release(disp);
819 return E_OUTOFMEMORY;
820 }
821
822 item->ref = 1;
823 item->disp = disp;
824 item->flags = dwFlags;
825 item->script_obj = NULL;
826 item->name = wcsdup(pstrName);
827 if(!item->name) {
828 if(disp)
829 IDispatch_Release(disp);
830 free(item);
831 return E_OUTOFMEMORY;
832 }
833
834 list_add_tail(&This->ctx->named_items, &item->entry);
835 return S_OK;
836}
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
static wchar_t * wcsdup(const wchar_t *str)
Definition: string.h:94
static VBScript * impl_from_IActiveScript(IActiveScript *iface)
Definition: vbscript.c:588
#define debugstr_w
Definition: kernel32.h:32
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
DWORD WINAPI GetCurrentThreadId(void)
Definition: thread.c:459
#define E_UNEXPECTED
Definition: winerror.h:3528

◆ VBScript_AddRef()

static ULONG WINAPI VBScript_AddRef ( IActiveScript iface)
static

Definition at line 625 of file vbscript.c.

626{
629
630 TRACE("(%p) ref=%ld\n", This, ref);
631
632 return ref;
633}

◆ VBScript_AddTypeLib()

static HRESULT WINAPI VBScript_AddTypeLib ( IActiveScript iface,
REFGUID  rguidTypeLib,
DWORD  dwMajor,
DWORD  dwMinor,
DWORD  dwFlags 
)
static

Definition at line 838 of file vbscript.c.

840{
842 FIXME("(%p)->(%s %ld %ld %ld)\n", This, debugstr_guid(rguidTypeLib), dwMajor, dwMinor, dwFlags);
843 return E_NOTIMPL;
844}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ VBScript_Clone()

static HRESULT WINAPI VBScript_Clone ( IActiveScript iface,
IActiveScript **  ppscript 
)
static

Definition at line 905 of file vbscript.c.

906{
908 FIXME("(%p)->()\n", This);
909 return E_NOTIMPL;
910}

◆ VBScript_Close()

static HRESULT WINAPI VBScript_Close ( IActiveScript iface)
static

Definition at line 773 of file vbscript.c.

774{
776
777 TRACE("(%p)->()\n", This);
778
779 if(This->thread_id && This->thread_id != GetCurrentThreadId())
780 return E_UNEXPECTED;
781
783 return S_OK;
784}
static void decrease_state(VBScript *This, SCRIPTSTATE state)
Definition: vbscript.c:345

◆ VBScript_GetCurrentScriptThreadID()

static HRESULT WINAPI VBScript_GetCurrentScriptThreadID ( IActiveScript iface,
SCRIPTTHREADID pstridThread 
)
static

Definition at line 873 of file vbscript.c.

875{
877 FIXME("(%p)->()\n", This);
878 return E_NOTIMPL;
879}

◆ VBScript_GetScriptDispatch()

static HRESULT WINAPI VBScript_GetScriptDispatch ( IActiveScript iface,
LPCOLESTR  pstrItemName,
IDispatch **  ppdisp 
)
static

Definition at line 846 of file vbscript.c.

847{
849 ScriptDisp *script_obj;
850
851 TRACE("(%p)->(%s %p)\n", This, debugstr_w(pstrItemName), ppdisp);
852
853 if(!ppdisp)
854 return E_POINTER;
855
856 if(This->thread_id != GetCurrentThreadId() || !This->ctx->script_obj) {
857 *ppdisp = NULL;
858 return E_UNEXPECTED;
859 }
860
861 script_obj = This->ctx->script_obj;
862 if(pstrItemName) {
863 named_item_t *item = lookup_named_item(This->ctx, pstrItemName, 0);
864 if(!item) return E_INVALIDARG;
865 if(item->script_obj) script_obj = item->script_obj;
866 }
867
868 *ppdisp = (IDispatch*)&script_obj->IDispatchEx_iface;
869 IDispatch_AddRef(*ppdisp);
870 return S_OK;
871}
#define E_INVALIDARG
Definition: ddrawi.h:101
named_item_t * lookup_named_item(script_ctx_t *ctx, const WCHAR *name, unsigned flags)
Definition: vbscript.c:228
#define E_POINTER
Definition: winerror.h:3480

◆ VBScript_GetScriptSite()

static HRESULT WINAPI VBScript_GetScriptSite ( IActiveScript iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 703 of file vbscript.c.

705{
707 FIXME("(%p)->()\n", This);
708 return E_NOTIMPL;
709}

◆ VBScript_GetScriptState()

static HRESULT WINAPI VBScript_GetScriptState ( IActiveScript iface,
SCRIPTSTATE pssState 
)
static

Definition at line 757 of file vbscript.c.

758{
760
761 TRACE("(%p)->(%p)\n", This, pssState);
762
763 if(!pssState)
764 return E_POINTER;
765
766 if(This->thread_id && This->thread_id != GetCurrentThreadId())
767 return E_UNEXPECTED;
768
769 *pssState = This->state;
770 return S_OK;
771}

◆ VBScript_GetScriptThreadID()

static HRESULT WINAPI VBScript_GetScriptThreadID ( IActiveScript iface,
DWORD  dwWin32ThreadId,
SCRIPTTHREADID pstidThread 
)
static

Definition at line 881 of file vbscript.c.

883{
885 FIXME("(%p)->()\n", This);
886 return E_NOTIMPL;
887}

◆ VBScript_GetScriptThreadState()

static HRESULT WINAPI VBScript_GetScriptThreadState ( IActiveScript iface,
SCRIPTTHREADID  stidThread,
SCRIPTTHREADSTATE pstsState 
)
static

Definition at line 889 of file vbscript.c.

891{
893 FIXME("(%p)->()\n", This);
894 return E_NOTIMPL;
895}

◆ VBScript_InterruptScriptThread()

static HRESULT WINAPI VBScript_InterruptScriptThread ( IActiveScript iface,
SCRIPTTHREADID  stidThread,
const EXCEPINFO *  pexcepinfo,
DWORD  dwFlags 
)
static

Definition at line 897 of file vbscript.c.

899{
901 FIXME("(%p)->()\n", This);
902 return E_NOTIMPL;
903}

◆ VBScript_QueryInterface()

static HRESULT WINAPI VBScript_QueryInterface ( IActiveScript iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 593 of file vbscript.c.

594{
596
598 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
599 *ppv = &This->IActiveScript_iface;
600 }else if(IsEqualGUID(riid, &IID_IActiveScript)) {
601 TRACE("(%p)->(IID_IActiveScript %p)\n", This, ppv);
602 *ppv = &This->IActiveScript_iface;
603 }else if(IsEqualGUID(riid, &IID_IActiveScriptDebug)) {
604 TRACE("(%p)->(IID_IActiveScriptDebug %p)\n", This, ppv);
605 *ppv = &This->IActiveScriptDebug_iface;
606 }else if(IsEqualGUID(riid, &IID_IActiveScriptParse)) {
607 TRACE("(%p)->(IID_IActiveScriptParse %p)\n", This, ppv);
608 *ppv = &This->IActiveScriptParse_iface;
609 }else if(IsEqualGUID(riid, &IID_IActiveScriptParseProcedure2)) {
610 TRACE("(%p)->(IID_IActiveScriptParseProcedure2 %p)\n", This, ppv);
611 *ppv = &This->IActiveScriptParseProcedure2_iface;
612 }else if(IsEqualGUID(riid, &IID_IObjectSafety)) {
613 TRACE("(%p)->(IID_IObjectSafety %p)\n", This, ppv);
614 *ppv = &This->IObjectSafety_iface;
615 }else {
616 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
617 *ppv = NULL;
618 return E_NOINTERFACE;
619 }
620
621 IUnknown_AddRef((IUnknown*)*ppv);
622 return S_OK;
623}

◆ VBScript_Release()

static ULONG WINAPI VBScript_Release ( IActiveScript iface)
static

Definition at line 635 of file vbscript.c.

636{
639
640 TRACE("(%p) ref=%ld\n", iface, ref);
641
642 if(!ref) {
645 IServiceProvider_Release(&This->ctx->vbcaller->IServiceProvider_iface);
646 free(This->ctx);
647 free(This);
648 }
649
650 return ref;
651}
void detach_global_objects(script_ctx_t *ctx)
Definition: global.c:3602

◆ VBScript_SetScriptSite()

static HRESULT WINAPI VBScript_SetScriptSite ( IActiveScript iface,
IActiveScriptSite pass 
)
static

Definition at line 653 of file vbscript.c.

654{
659
660 TRACE("(%p)->(%p)\n", This, pass);
661
662 if(!pass)
663 return E_POINTER;
664
665 if(This->ctx->site)
666 return E_UNEXPECTED;
667
669 return E_UNEXPECTED;
670
671 /* Retrieve new dispatches for persistent named items */
672 LIST_FOR_EACH_ENTRY(item, &This->ctx->named_items, named_item_t, entry)
673 {
674 if(!item->disp)
675 {
677 if(FAILED(hres)) return hres;
678 }
679
680 /* For some reason, CODEONLY flag is lost in re-initialized scripts */
681 item->flags &= ~SCRIPTITEM_CODEONLY;
682 }
683
684 hres = create_script_disp(This->ctx, &This->ctx->script_obj);
685 if(FAILED(hres))
686 return hres;
687
688 This->ctx->site = pass;
689 IActiveScriptSite_AddRef(This->ctx->site);
690
691 IActiveScriptSite_GetLCID(This->ctx->site, &lcid);
692 This->ctx->lcid = IsValidLocale(lcid, 0) ? lcid : GetUserDefaultLCID();
693 GetLocaleInfoW(lcid, LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER, (WCHAR *)&This->ctx->codepage,
694 sizeof(This->ctx->codepage)/sizeof(WCHAR));
695 if (!This->ctx->codepage)
696 This->ctx->codepage = CP_UTF8;
697
698 if(This->is_initialized)
700 return S_OK;
701}
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
Definition: locale.c:2925
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1216
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
Definition: locale.c:1675
LCID lcid
Definition: locale.c:5660
#define InterlockedCompareExchange
Definition: interlocked.h:119
#define LOCALE_USER_DEFAULT
DWORD LCID
Definition: nls.h:13
#define CP_UTF8
Definition: nls.h:20
pass
Definition: typegen.h:25
#define LOCALE_IDEFAULTANSICODEPAGE
Definition: winnls.h:48

◆ VBScript_SetScriptState()

static HRESULT WINAPI VBScript_SetScriptState ( IActiveScript iface,
SCRIPTSTATE  ss 
)
static

Definition at line 711 of file vbscript.c.

712{
714
715 TRACE("(%p)->(%d)\n", This, ss);
716
717 if(This->thread_id && GetCurrentThreadId() != This->thread_id)
718 return E_UNEXPECTED;
719
721 if(This->state == SCRIPTSTATE_CLOSED)
722 return E_UNEXPECTED;
723
725 return S_OK;
726 }
727
728 if(!This->is_initialized || (!This->ctx->site && ss != SCRIPTSTATE_CLOSED))
729 return E_UNEXPECTED;
730
731 switch(ss) {
733 case SCRIPTSTATE_CONNECTED: /* FIXME */
734 if(This->state == SCRIPTSTATE_CLOSED)
735 return E_UNEXPECTED;
736
738 break;
741 return S_OK;
744 return S_OK;
746 FIXME("unimplemented SCRIPTSTATE_DISCONNECTED\n");
747 return S_OK;
748 default:
749 FIXME("unimplemented state %d\n", ss);
750 return E_NOTIMPL;
751 }
752
754 return S_OK;
755}
static void exec_queued_code(script_ctx_t *ctx)
Definition: vbscript.c:197
#define ss
Definition: i386-dis.c:441

◆ VBScriptDebug_AddRef()

static ULONG WINAPI VBScriptDebug_AddRef ( IActiveScriptDebug *  iface)
static

Definition at line 942 of file vbscript.c.

943{
945 return IActiveScript_AddRef(&This->IActiveScript_iface);
946}
static VBScript * impl_from_IActiveScriptDebug(IActiveScriptDebug *iface)
Definition: vbscript.c:931

◆ VBScriptDebug_EnumCodeContextsOfPosition()

static HRESULT WINAPI VBScriptDebug_EnumCodeContextsOfPosition ( IActiveScriptDebug *  iface,
CTXARG_T  source,
ULONG  offset,
ULONG  len,
IEnumDebugCodeContexts **  ret 
)
static

Definition at line 972 of file vbscript.c.

974{
976 FIXME("(%p)->(%s %lu %lu %p)\n", This, wine_dbgstr_longlong(source), offset, len, ret);
977 return E_NOTIMPL;
978}
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
GLintptr offset
Definition: glext.h:5920
GLenum GLsizei len
Definition: glext.h:6722

◆ VBScriptDebug_GetScriptletTextAttributes()

static HRESULT WINAPI VBScriptDebug_GetScriptletTextAttributes ( IActiveScriptDebug *  iface,
LPCOLESTR  code,
ULONG  len,
LPCOLESTR  delimiter,
DWORD  flags,
SOURCE_TEXT_ATTR attr 
)
static

Definition at line 963 of file vbscript.c.

965{
967 FIXME("(%p)->(%s %lu %s %#lx %p)\n", This, debugstr_w(code), len,
969 return E_NOTIMPL;
970}
const char * delimiter
Definition: string.c:1779
Definition: cookie.c:202

◆ VBScriptDebug_GetScriptTextAttributes()

static HRESULT WINAPI VBScriptDebug_GetScriptTextAttributes ( IActiveScriptDebug *  iface,
LPCOLESTR  code,
ULONG  len,
LPCOLESTR  delimiter,
DWORD  flags,
SOURCE_TEXT_ATTR attr 
)
static

Definition at line 954 of file vbscript.c.

956{
958 FIXME("(%p)->(%s %lu %s %#lx %p)\n", This, debugstr_w(code), len,
960 return E_NOTIMPL;
961}

◆ VBScriptDebug_QueryInterface()

static HRESULT WINAPI VBScriptDebug_QueryInterface ( IActiveScriptDebug *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 936 of file vbscript.c.

937{
939 return IActiveScript_QueryInterface(&This->IActiveScript_iface, riid, ppv);
940}

◆ VBScriptDebug_Release()

static ULONG WINAPI VBScriptDebug_Release ( IActiveScriptDebug *  iface)
static

Definition at line 948 of file vbscript.c.

949{
951 return IActiveScript_Release(&This->IActiveScript_iface);
952}

◆ VBScriptError_AddRef()

static ULONG WINAPI VBScriptError_AddRef ( IActiveScriptError iface)
static

Definition at line 491 of file vbscript.c.

492{
495
496 TRACE("(%p) ref=%ld\n", This, ref);
497
498 return ref;
499}
static VBScriptError * impl_from_IActiveScriptError(IActiveScriptError *iface)
Definition: vbscript.c:466

◆ VBScriptError_GetExceptionInfo()

static HRESULT WINAPI VBScriptError_GetExceptionInfo ( IActiveScriptError iface,
EXCEPINFO *  excepinfo 
)
static

Definition at line 514 of file vbscript.c.

515{
517
518 TRACE("(%p)->(%p)\n", This, excepinfo);
519
520 *excepinfo = This->ei;
521 excepinfo->bstrSource = SysAllocString(This->ei.bstrSource);
522 excepinfo->bstrDescription = SysAllocString(This->ei.bstrDescription);
523 excepinfo->bstrHelpFile = SysAllocString(This->ei.bstrHelpFile);
524 return S_OK;
525}
static EXCEPINFO excepinfo
Definition: automation.c:47
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238

◆ VBScriptError_GetSourceLineText()

static HRESULT WINAPI VBScriptError_GetSourceLineText ( IActiveScriptError iface,
BSTR source 
)
static

Definition at line 542 of file vbscript.c.

543{
545 FIXME("(%p)->(%p)\n", This, source);
546 return E_NOTIMPL;
547}

◆ VBScriptError_GetSourcePosition()

static HRESULT WINAPI VBScriptError_GetSourcePosition ( IActiveScriptError iface,
DWORD source_context,
ULONG line,
LONG character 
)
static

Definition at line 527 of file vbscript.c.

528{
530
531 TRACE("(%p)->(%p %p %p)\n", This, source_context, line, character);
532
533 if(source_context)
534 *source_context = This->cookie;
535 if(line)
536 *line = This->line;
537 if(character)
538 *character = This->character;
539 return S_OK;
540}
Definition: parser.c:49

◆ VBScriptError_QueryInterface()

static HRESULT WINAPI VBScriptError_QueryInterface ( IActiveScriptError iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 471 of file vbscript.c.

472{
474
476 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
477 *ppv = &This->IActiveScriptError_iface;
478 }else if(IsEqualGUID(riid, &IID_IActiveScriptError)) {
479 TRACE("(%p)->(IID_IActiveScriptError %p)\n", This, ppv);
480 *ppv = &This->IActiveScriptError_iface;
481 }else {
482 FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
483 *ppv = NULL;
484 return E_NOINTERFACE;
485 }
486
487 IUnknown_AddRef((IUnknown*)*ppv);
488 return S_OK;
489}

◆ VBScriptError_Release()

static ULONG WINAPI VBScriptError_Release ( IActiveScriptError iface)
static

Definition at line 501 of file vbscript.c.

502{
505
506 TRACE("(%p) ref=%ld\n", This, ref);
507
508 if(!ref)
509 free(This);
510
511 return ref;
512}

◆ VBScriptFactory_CreateInstance()

HRESULT WINAPI VBScriptFactory_CreateInstance ( IClassFactory iface,
IUnknown pUnkOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 1201 of file vbscript.c.

1202{
1203 struct vbcaller *vbcaller;
1205 VBScript *ret;
1206 HRESULT hres;
1207
1208 TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
1209
1210 ret = calloc(1, sizeof(*ret));
1211 if(!ret)
1212 return E_OUTOFMEMORY;
1213
1214 if(!(vbcaller = create_vbcaller())) {
1215 free(ret);
1216 return E_OUTOFMEMORY;
1217 }
1218
1219 ret->IActiveScript_iface.lpVtbl = &VBScriptVtbl;
1220 ret->IActiveScriptDebug_iface.lpVtbl = &VBScriptDebugVtbl;
1221 ret->IActiveScriptParse_iface.lpVtbl = &VBScriptParseVtbl;
1222 ret->IActiveScriptParseProcedure2_iface.lpVtbl = &VBScriptParseProcedureVtbl;
1223 ret->IObjectSafety_iface.lpVtbl = &VBScriptSafetyVtbl;
1224
1225 ret->ref = 1;
1227
1228 ctx = ret->ctx = calloc(1, sizeof(*ctx));
1229 if(!ctx) {
1230 IServiceProvider_Release(&vbcaller->IServiceProvider_iface);
1231 free(ret);
1232 return E_OUTOFMEMORY;
1233 }
1234
1235 vbcaller->ctx = ctx;
1236 ctx->vbcaller = vbcaller;
1237 ctx->safeopt = INTERFACE_USES_DISPEX;
1238 list_init(&ctx->objects);
1239 list_init(&ctx->code_list);
1240 list_init(&ctx->named_items);
1241
1242 hres = init_global(ctx);
1243 if(FAILED(hres)) {
1244 IActiveScript_Release(&ret->IActiveScript_iface);
1245 return hres;
1246 }
1247
1248 hres = IActiveScript_QueryInterface(&ret->IActiveScript_iface, riid, ppv);
1249 IActiveScript_Release(&ret->IActiveScript_iface);
1250 return hres;
1251}
static void list_init(struct list_entry *head)
Definition: list.h:51
static const IActiveScriptParseProcedure2Vtbl VBScriptParseProcedureVtbl
Definition: vbscript.c:1132
static const IActiveScriptDebugVtbl VBScriptDebugVtbl
Definition: vbscript.c:980
static const IObjectSafetyVtbl VBScriptSafetyVtbl
Definition: vbscript.c:1193
static struct vbcaller * create_vbcaller(void)
Definition: vbscript.c:453
static const IActiveScriptParseVtbl VBScriptParseVtbl
Definition: vbscript.c:1070
static const IActiveScriptVtbl VBScriptVtbl
Definition: vbscript.c:912
HRESULT init_global(script_ctx_t *ctx)
Definition: global.c:1091
#define calloc
Definition: rosglue.h:14
IServiceProvider IServiceProvider_iface
Definition: vbscript.h:188
script_ctx_t * ctx
Definition: vbscript.h:192

◆ VBScriptParse_AddRef()

static ULONG WINAPI VBScriptParse_AddRef ( IActiveScriptParse *  iface)
static

Definition at line 1000 of file vbscript.c.

1001{
1003 return IActiveScript_AddRef(&This->IActiveScript_iface);
1004}
static VBScript * impl_from_IActiveScriptParse(IActiveScriptParse *iface)
Definition: vbscript.c:989

◆ VBScriptParse_AddScriptlet()

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

Definition at line 1027 of file vbscript.c.

1032{
1034 FIXME("(%p)->(%s %s %s %s %s %s %s %lu %lx %p %p)\n", This, debugstr_w(pstrDefaultName),
1035 debugstr_w(pstrCode), debugstr_w(pstrItemName), debugstr_w(pstrSubItemName),
1036 debugstr_w(pstrEventName), debugstr_w(pstrDelimiter), wine_dbgstr_longlong(dwSourceContextCookie),
1037 ulStartingLineNumber, dwFlags, pbstrName, pexcepinfo);
1038 return E_NOTIMPL;
1039}

◆ VBScriptParse_InitNew()

static HRESULT WINAPI VBScriptParse_InitNew ( IActiveScriptParse *  iface)
static

Definition at line 1012 of file vbscript.c.

1013{
1015
1016 TRACE("(%p)\n", This);
1017
1018 if(This->is_initialized)
1019 return E_UNEXPECTED;
1020 This->is_initialized = TRUE;
1021
1022 if(This->ctx->site)
1024 return S_OK;
1025}

◆ VBScriptParse_ParseScriptText()

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

Definition at line 1041 of file vbscript.c.

1045{
1047 vbscode_t *code;
1048 HRESULT hres;
1049
1050 TRACE("(%p)->(%s %s %p %s %s %lu %lx %p %p)\n", This, debugstr_w(pstrCode),
1051 debugstr_w(pstrItemName), punkContext, debugstr_w(pstrDelimiter),
1052 wine_dbgstr_longlong(dwSourceContextCookie), ulStartingLine, dwFlags, pvarResult, pexcepinfo);
1053
1054 if(This->thread_id != GetCurrentThreadId() || This->state == SCRIPTSTATE_CLOSED)
1055 return E_UNEXPECTED;
1056
1057 hres = compile_script(This->ctx, pstrCode, pstrItemName, pstrDelimiter, dwSourceContextCookie,
1058 ulStartingLine, dwFlags, &code);
1059 if(FAILED(hres))
1060 return hres;
1061
1062 if(!(dwFlags & SCRIPTTEXT_ISEXPRESSION) && !is_started(This)) {
1063 code->pending_exec = TRUE;
1064 return S_OK;
1065 }
1066
1067 return exec_global_code(This->ctx, code, pvarResult);
1068}
static BOOL is_started(VBScript *This)
Definition: vbscript.c:87
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)
Definition: compile.c:2725

◆ VBScriptParse_QueryInterface()

static HRESULT WINAPI VBScriptParse_QueryInterface ( IActiveScriptParse *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 994 of file vbscript.c.

995{
997 return IActiveScript_QueryInterface(&This->IActiveScript_iface, riid, ppv);
998}

◆ VBScriptParse_Release()

static ULONG WINAPI VBScriptParse_Release ( IActiveScriptParse *  iface)
static

Definition at line 1006 of file vbscript.c.

1007{
1009 return IActiveScript_Release(&This->IActiveScript_iface);
1010}

◆ VBScriptParseProcedure_AddRef()

static ULONG WINAPI VBScriptParseProcedure_AddRef ( IActiveScriptParseProcedure2 *  iface)
static

Definition at line 1090 of file vbscript.c.

1091{
1093 return IActiveScript_AddRef(&This->IActiveScript_iface);
1094}
static VBScript * impl_from_IActiveScriptParseProcedure2(IActiveScriptParseProcedure2 *iface)
Definition: vbscript.c:1079

◆ VBScriptParseProcedure_ParseProcedureText()

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

Definition at line 1102 of file vbscript.c.

1106{
1109 vbdisp_t *vbdisp;
1110 HRESULT hres;
1111
1112 TRACE("(%p)->(%s %s %s %s %p %s %s %lu %lx %p)\n", This, debugstr_w(pstrCode), debugstr_w(pstrFormalParams),
1113 debugstr_w(pstrProcedureName), debugstr_w(pstrItemName), punkContext, debugstr_w(pstrDelimiter),
1114 wine_dbgstr_longlong(dwSourceContextCookie), ulStartingLineNumber, dwFlags, ppdisp);
1115
1116 if(This->thread_id != GetCurrentThreadId() || This->state == SCRIPTSTATE_CLOSED)
1117 return E_UNEXPECTED;
1118
1119 hres = compile_procedure(This->ctx, pstrCode, pstrItemName, pstrDelimiter, dwSourceContextCookie,
1120 ulStartingLineNumber, dwFlags, &desc);
1121 if(FAILED(hres))
1122 return hres;
1123
1124 hres = create_vbdisp(desc, &vbdisp);
1125 if(FAILED(hres))
1126 return hres;
1127
1128 *ppdisp = (IDispatch*)&vbdisp->IDispatchEx_iface;
1129 return S_OK;
1130}
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1204
IDispatchEx IDispatchEx_iface
Definition: vbscript.h:105
HRESULT create_vbdisp(const class_desc_t *desc, vbdisp_t **ret)
Definition: vbdisp.c:507
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)
Definition: compile.c:2078

◆ VBScriptParseProcedure_QueryInterface()

static HRESULT WINAPI VBScriptParseProcedure_QueryInterface ( IActiveScriptParseProcedure2 *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1084 of file vbscript.c.

1085{
1087 return IActiveScript_QueryInterface(&This->IActiveScript_iface, riid, ppv);
1088}

◆ VBScriptParseProcedure_Release()

static ULONG WINAPI VBScriptParseProcedure_Release ( IActiveScriptParseProcedure2 *  iface)
static

Definition at line 1096 of file vbscript.c.

1097{
1099 return IActiveScript_Release(&This->IActiveScript_iface);
1100}

◆ VBScriptSafety_AddRef()

static ULONG WINAPI VBScriptSafety_AddRef ( IObjectSafety iface)
static

Definition at line 1150 of file vbscript.c.

1151{
1153 return IActiveScript_AddRef(&This->IActiveScript_iface);
1154}
static VBScript * impl_from_IObjectSafety(IObjectSafety *iface)
Definition: vbscript.c:1139

◆ VBScriptSafety_GetInterfaceSafetyOptions()

static HRESULT WINAPI VBScriptSafety_GetInterfaceSafetyOptions ( IObjectSafety iface,
REFIID  riid,
DWORD pdwSupportedOptions,
DWORD pdwEnabledOptions 
)
static

Definition at line 1164 of file vbscript.c.

1166{
1168
1169 TRACE("(%p)->(%s %p %p)\n", This, debugstr_guid(riid), pdwSupportedOptions, pdwEnabledOptions);
1170
1171 if(!pdwSupportedOptions || !pdwEnabledOptions)
1172 return E_POINTER;
1173
1174 *pdwSupportedOptions = SUPPORTED_OPTIONS;
1175 *pdwEnabledOptions = This->ctx->safeopt;
1176 return S_OK;
1177}
#define SUPPORTED_OPTIONS
Definition: vbscript.c:1162

◆ VBScriptSafety_QueryInterface()

static HRESULT WINAPI VBScriptSafety_QueryInterface ( IObjectSafety iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1144 of file vbscript.c.

1145{
1147 return IActiveScript_QueryInterface(&This->IActiveScript_iface, riid, ppv);
1148}

◆ VBScriptSafety_Release()

static ULONG WINAPI VBScriptSafety_Release ( IObjectSafety iface)
static

Definition at line 1156 of file vbscript.c.

1157{
1159 return IActiveScript_Release(&This->IActiveScript_iface);
1160}

◆ VBScriptSafety_SetInterfaceSafetyOptions()

static HRESULT WINAPI VBScriptSafety_SetInterfaceSafetyOptions ( IObjectSafety iface,
REFIID  riid,
DWORD  dwOptionSetMask,
DWORD  dwEnabledOptions 
)
static

Definition at line 1179 of file vbscript.c.

1181{
1183
1184 TRACE("(%p)->(%s %lx %lx)\n", This, debugstr_guid(riid), dwOptionSetMask, dwEnabledOptions);
1185
1186 if(dwOptionSetMask & ~SUPPORTED_OPTIONS)
1187 return E_FAIL;
1188
1189 This->ctx->safeopt = (dwEnabledOptions & dwOptionSetMask) | (This->ctx->safeopt & ~dwOptionSetMask) | INTERFACE_USES_DISPEX;
1190 return S_OK;
1191}
#define E_FAIL
Definition: ddrawi.h:102

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( vbscript  )

Variable Documentation

◆ AXSiteVtbl

IServiceProviderVtbl AXSiteVtbl
static
Initial value:
= {
}
static ULONG WINAPI AXSite_Release(IServiceProvider *iface)
Definition: vbscript.c:1296
static ULONG WINAPI AXSite_AddRef(IServiceProvider *iface)
Definition: vbscript.c:1286
static HRESULT WINAPI AXSite_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
Definition: vbscript.c:1266
static HRESULT WINAPI AXSite_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: vbscript.c:1309

Definition at line 1319 of file vbscript.c.

Referenced by create_ax_site().

◆ ServiceProviderVtbl

const IServiceProviderVtbl ServiceProviderVtbl
static
Initial value:
= {
}
static ULONG WINAPI vbcaller_Release(IServiceProvider *iface)
Definition: vbscript.c:406
static HRESULT WINAPI vbcaller_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: vbscript.c:419
static ULONG WINAPI vbcaller_AddRef(IServiceProvider *iface)
Definition: vbscript.c:396
static HRESULT WINAPI vbcaller_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
Definition: vbscript.c:380

Definition at line 446 of file vbscript.c.

Referenced by create_vbcaller().

◆ VBScriptDebugVtbl

const IActiveScriptDebugVtbl VBScriptDebugVtbl
static
Initial value:
= {
}
static HRESULT WINAPI VBScriptDebug_GetScriptletTextAttributes(IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
Definition: vbscript.c:963
static ULONG WINAPI VBScriptDebug_AddRef(IActiveScriptDebug *iface)
Definition: vbscript.c:942
static HRESULT WINAPI VBScriptDebug_EnumCodeContextsOfPosition(IActiveScriptDebug *iface, CTXARG_T source, ULONG offset, ULONG len, IEnumDebugCodeContexts **ret)
Definition: vbscript.c:972
static HRESULT WINAPI VBScriptDebug_QueryInterface(IActiveScriptDebug *iface, REFIID riid, void **ppv)
Definition: vbscript.c:936
static HRESULT WINAPI VBScriptDebug_GetScriptTextAttributes(IActiveScriptDebug *iface, LPCOLESTR code, ULONG len, LPCOLESTR delimiter, DWORD flags, SOURCE_TEXT_ATTR *attr)
Definition: vbscript.c:954
static ULONG WINAPI VBScriptDebug_Release(IActiveScriptDebug *iface)
Definition: vbscript.c:948

Definition at line 980 of file vbscript.c.

Referenced by VBScriptFactory_CreateInstance().

◆ VBScriptErrorVtbl

const IActiveScriptErrorVtbl VBScriptErrorVtbl
static
Initial value:
= {
}
static HRESULT WINAPI VBScriptError_QueryInterface(IActiveScriptError *iface, REFIID riid, void **ppv)
Definition: vbscript.c:471
static HRESULT WINAPI VBScriptError_GetExceptionInfo(IActiveScriptError *iface, EXCEPINFO *excepinfo)
Definition: vbscript.c:514
static HRESULT WINAPI VBScriptError_GetSourceLineText(IActiveScriptError *iface, BSTR *source)
Definition: vbscript.c:542
static ULONG WINAPI VBScriptError_AddRef(IActiveScriptError *iface)
Definition: vbscript.c:491
static ULONG WINAPI VBScriptError_Release(IActiveScriptError *iface)
Definition: vbscript.c:501
static HRESULT WINAPI VBScriptError_GetSourcePosition(IActiveScriptError *iface, DWORD *source_context, ULONG *line, LONG *character)
Definition: vbscript.c:527

Definition at line 549 of file vbscript.c.

Referenced by report_script_error().

◆ VBScriptParseProcedureVtbl

const IActiveScriptParseProcedure2Vtbl VBScriptParseProcedureVtbl
static
Initial value:
= {
}
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)
Definition: vbscript.c:1102
static ULONG WINAPI VBScriptParseProcedure_AddRef(IActiveScriptParseProcedure2 *iface)
Definition: vbscript.c:1090
static ULONG WINAPI VBScriptParseProcedure_Release(IActiveScriptParseProcedure2 *iface)
Definition: vbscript.c:1096
static HRESULT WINAPI VBScriptParseProcedure_QueryInterface(IActiveScriptParseProcedure2 *iface, REFIID riid, void **ppv)
Definition: vbscript.c:1084

Definition at line 1132 of file vbscript.c.

Referenced by VBScriptFactory_CreateInstance().

◆ VBScriptParseVtbl

const IActiveScriptParseVtbl VBScriptParseVtbl
static
Initial value:
= {
}
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)
Definition: vbscript.c:1041
static ULONG WINAPI VBScriptParse_Release(IActiveScriptParse *iface)
Definition: vbscript.c:1006
static HRESULT WINAPI VBScriptParse_QueryInterface(IActiveScriptParse *iface, REFIID riid, void **ppv)
Definition: vbscript.c:994
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)
Definition: vbscript.c:1027
static HRESULT WINAPI VBScriptParse_InitNew(IActiveScriptParse *iface)
Definition: vbscript.c:1012
static ULONG WINAPI VBScriptParse_AddRef(IActiveScriptParse *iface)
Definition: vbscript.c:1000

Definition at line 1070 of file vbscript.c.

Referenced by VBScriptFactory_CreateInstance().

◆ VBScriptSafetyVtbl

const IObjectSafetyVtbl VBScriptSafetyVtbl
static
Initial value:
= {
}
static HRESULT WINAPI VBScriptSafety_QueryInterface(IObjectSafety *iface, REFIID riid, void **ppv)
Definition: vbscript.c:1144
static HRESULT WINAPI VBScriptSafety_GetInterfaceSafetyOptions(IObjectSafety *iface, REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions)
Definition: vbscript.c:1164
static ULONG WINAPI VBScriptSafety_Release(IObjectSafety *iface)
Definition: vbscript.c:1156
static ULONG WINAPI VBScriptSafety_AddRef(IObjectSafety *iface)
Definition: vbscript.c:1150
static HRESULT WINAPI VBScriptSafety_SetInterfaceSafetyOptions(IObjectSafety *iface, REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions)
Definition: vbscript.c:1179

Definition at line 1193 of file vbscript.c.

Referenced by VBScriptFactory_CreateInstance().

◆ VBScriptVtbl

const IActiveScriptVtbl VBScriptVtbl
static
Initial value:
= {
}
static HRESULT WINAPI VBScript_Clone(IActiveScript *iface, IActiveScript **ppscript)
Definition: vbscript.c:905
static HRESULT WINAPI VBScript_GetCurrentScriptThreadID(IActiveScript *iface, SCRIPTTHREADID *pstridThread)
Definition: vbscript.c:873
static HRESULT WINAPI VBScript_SetScriptState(IActiveScript *iface, SCRIPTSTATE ss)
Definition: vbscript.c:711
static HRESULT WINAPI VBScript_GetScriptState(IActiveScript *iface, SCRIPTSTATE *pssState)
Definition: vbscript.c:757
static HRESULT WINAPI VBScript_QueryInterface(IActiveScript *iface, REFIID riid, void **ppv)
Definition: vbscript.c:593
static HRESULT WINAPI VBScript_SetScriptSite(IActiveScript *iface, IActiveScriptSite *pass)
Definition: vbscript.c:653
static HRESULT WINAPI VBScript_GetScriptSite(IActiveScript *iface, REFIID riid, void **ppvObject)
Definition: vbscript.c:703
static HRESULT WINAPI VBScript_InterruptScriptThread(IActiveScript *iface, SCRIPTTHREADID stidThread, const EXCEPINFO *pexcepinfo, DWORD dwFlags)
Definition: vbscript.c:897
static HRESULT WINAPI VBScript_Close(IActiveScript *iface)
Definition: vbscript.c:773
static HRESULT WINAPI VBScript_GetScriptThreadState(IActiveScript *iface, SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState)
Definition: vbscript.c:889
static HRESULT WINAPI VBScript_GetScriptDispatch(IActiveScript *iface, LPCOLESTR pstrItemName, IDispatch **ppdisp)
Definition: vbscript.c:846
static HRESULT WINAPI VBScript_AddNamedItem(IActiveScript *iface, LPCOLESTR pstrName, DWORD dwFlags)
Definition: vbscript.c:786
static HRESULT WINAPI VBScript_AddTypeLib(IActiveScript *iface, REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags)
Definition: vbscript.c:838
static ULONG WINAPI VBScript_Release(IActiveScript *iface)
Definition: vbscript.c:635
static HRESULT WINAPI VBScript_GetScriptThreadID(IActiveScript *iface, DWORD dwWin32ThreadId, SCRIPTTHREADID *pstidThread)
Definition: vbscript.c:881
static ULONG WINAPI VBScript_AddRef(IActiveScript *iface)
Definition: vbscript.c:625

Definition at line 912 of file vbscript.c.

Referenced by VBScriptFactory_CreateInstance().