ReactOS  0.4.14-dev-342-gdc047f9
vbscript_main.c File Reference
#include "initguid.h"
#include "vbscript.h"
#include "objsafe.h"
#include "mshtmhst.h"
#include "rpcproxy.h"
#include "vbscript_classes.h"
#include "vbsglobal.h"
#include "vbsregexp55.h"
#include "wine/debug.h"
Include dependency graph for vbscript_main.c:

Go to the source code of this file.

Macros

#define XDIID(iface)   &DIID_ ## iface,
 
#define MIN_BLOCK_SIZE   128
 
#define ARENA_FREE_FILLER   0xaa
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (vbscript)
 
 WINE_DECLARE_DEBUG_CHANNEL (heap)
 
 DEFINE_GUID (GUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
 
HRESULT get_typeinfo (tid_t tid, ITypeInfo **typeinfo)
 
static void release_typelib (void)
 
static DWORD block_size (DWORD block)
 
void heap_pool_init (heap_pool_t *heap)
 
voidheap_pool_alloc (heap_pool_t *heap, size_t size)
 
voidheap_pool_grow (heap_pool_t *heap, void *mem, DWORD size, DWORD inc)
 
void heap_pool_clear (heap_pool_t *heap)
 
void heap_pool_free (heap_pool_t *heap)
 
heap_pool_theap_pool_mark (heap_pool_t *heap)
 
static HRESULT WINAPI ClassFactory_QueryInterface (IClassFactory *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ClassFactory_AddRef (IClassFactory *iface)
 
static ULONG WINAPI ClassFactory_Release (IClassFactory *iface)
 
static HRESULT WINAPI ClassFactory_LockServer (IClassFactory *iface, BOOL fLock)
 
BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
HRESULT WINAPI DllCanUnloadNow (void)
 
HRESULT WINAPI DllRegisterServer (void)
 
HRESULT WINAPI DllUnregisterServer (void)
 

Variables

static HINSTANCE vbscript_hinstance
 
static ITypeLibtypelib
 
static ITypeInfotypeinfos [LAST_tid]
 
static REFIID tid_ids []
 
static const IClassFactoryVtbl VBScriptFactoryVtbl
 
static IClassFactory VBScriptFactory = { &VBScriptFactoryVtbl }
 
static const IClassFactoryVtbl VBScriptRegExpFactoryVtbl
 
static IClassFactory VBScriptRegExpFactory = { &VBScriptRegExpFactoryVtbl }
 

Macro Definition Documentation

◆ ARENA_FREE_FILLER

#define ARENA_FREE_FILLER   0xaa

Definition at line 99 of file vbscript_main.c.

◆ MIN_BLOCK_SIZE

#define MIN_BLOCK_SIZE   128

Definition at line 98 of file vbscript_main.c.

◆ XDIID

#define XDIID (   iface)    &DIID_ ## iface,

Function Documentation

◆ block_size()

static DWORD block_size ( DWORD  block)
inlinestatic

Definition at line 101 of file vbscript_main.c.

102 {
103  return MIN_BLOCK_SIZE << block;
104 }
static unsigned int block
Definition: xmlmemory.c:118
#define MIN_BLOCK_SIZE
Definition: vbscript_main.c:98

Referenced by heap_pool_alloc(), heap_pool_clear(), and heap_pool_grow().

◆ ClassFactory_AddRef()

static ULONG WINAPI ClassFactory_AddRef ( IClassFactory iface)
static

Definition at line 249 of file vbscript_main.c.

250 {
251  TRACE("(%p)\n", iface);
252  return 2;
253 }
#define TRACE(s)
Definition: solgame.cpp:4

◆ ClassFactory_LockServer()

static HRESULT WINAPI ClassFactory_LockServer ( IClassFactory iface,
BOOL  fLock 
)
static

Definition at line 261 of file vbscript_main.c.

262 {
263  TRACE("(%p)->(%x)\n", iface, fLock);
264  return S_OK;
265 }
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59

◆ ClassFactory_QueryInterface()

static HRESULT WINAPI ClassFactory_QueryInterface ( IClassFactory iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 228 of file vbscript_main.c.

229 {
230  *ppv = NULL;
231 
232  if(IsEqualGUID(&IID_IUnknown, riid)) {
233  TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv);
234  *ppv = iface;
235  }else if(IsEqualGUID(&IID_IClassFactory, riid)) {
236  TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv);
237  *ppv = iface;
238  }
239 
240  if(*ppv) {
241  IUnknown_AddRef((IUnknown*)*ppv);
242  return S_OK;
243  }
244 
245  FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv);
246  return E_NOINTERFACE;
247 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
const GUID IID_IClassFactory

◆ ClassFactory_Release()

static ULONG WINAPI ClassFactory_Release ( IClassFactory iface)
static

Definition at line 255 of file vbscript_main.c.

256 {
257  TRACE("(%p)\n", iface);
258  return 1;
259 }
#define TRACE(s)
Definition: solgame.cpp:4

◆ DEFINE_GUID()

DEFINE_GUID ( GUID_NULL  ,
,
,
,
,
,
,
,
,
,
,
 
)

◆ DllCanUnloadNow()

HRESULT WINAPI DllCanUnloadNow ( void  )

Definition at line 331 of file vbscript_main.c.

332 {
333  return S_FALSE;
334 }
#define S_FALSE
Definition: winerror.h:2357

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 314 of file vbscript_main.c.

315 {
316  if(IsEqualGUID(&CLSID_VBScript, rclsid)) {
317  TRACE("(CLSID_VBScript %s %p)\n", debugstr_guid(riid), ppv);
318  return IClassFactory_QueryInterface(&VBScriptFactory, riid, ppv);
319  }else if(IsEqualGUID(&CLSID_VBScriptRegExp, rclsid)) {
320  TRACE("(CLSID_VBScriptRegExp %s %p)\n", debugstr_guid(riid), ppv);
321  return IClassFactory_QueryInterface(&VBScriptRegExpFactory, riid, ppv);
322  }
323 
324  FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
326 }
static IClassFactory VBScriptRegExpFactory
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663
const CLSID CLSID_VBScript
#define FIXME(fmt,...)
Definition: debug.h:110
const CLSID CLSID_VBScriptRegExp
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static IClassFactory VBScriptFactory
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hInstDLL,
DWORD  fdwReason,
LPVOID  lpv 
)

Definition at line 290 of file vbscript_main.c.

291 {
292  TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv);
293 
294  switch(fdwReason)
295  {
296  case DLL_WINE_PREATTACH:
297  return FALSE; /* prefer native version */
298  case DLL_PROCESS_ATTACH:
299  DisableThreadLibraryCalls(hInstDLL);
300  vbscript_hinstance = hInstDLL;
301  break;
302  case DLL_PROCESS_DETACH:
303  if (lpv) break;
304  release_typelib();
306  }
307 
308  return TRUE;
309 }
#define TRUE
Definition: types.h:120
static HINSTANCE vbscript_hinstance
Definition: vbscript_main.c:36
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
#define DLL_PROCESS_ATTACH
Definition: compat.h:120
static void release_typelib(void)
Definition: vbscript_main.c:83
#define DLL_PROCESS_DETACH
Definition: compat.h:119
#define TRACE(s)
Definition: solgame.cpp:4
void release_regexp_typelib(void)
Definition: vbregexp.c:1634

◆ DllRegisterServer()

HRESULT WINAPI DllRegisterServer ( void  )

Definition at line 339 of file vbscript_main.c.

340 {
341  TRACE("()\n");
343 }
HRESULT __wine_register_resources(HMODULE module) DECLSPEC_HIDDEN
Definition: register.c:98
static HINSTANCE vbscript_hinstance
Definition: vbscript_main.c:36
#define TRACE(s)
Definition: solgame.cpp:4

◆ DllUnregisterServer()

HRESULT WINAPI DllUnregisterServer ( void  )

Definition at line 348 of file vbscript_main.c.

349 {
350  TRACE("()\n");
352 }
static HINSTANCE vbscript_hinstance
Definition: vbscript_main.c:36
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT __wine_unregister_resources(HMODULE module) DECLSPEC_HIDDEN
Definition: register.c:110

◆ get_typeinfo()

HRESULT get_typeinfo ( tid_t  tid,
ITypeInfo **  typeinfo 
)

Definition at line 47 of file vbscript_main.c.

48 {
49  HRESULT hres;
50 
51  if (!typelib) {
52  ITypeLib *tl;
53 
54  static const WCHAR vbscript_dll1W[] = {'v','b','s','c','r','i','p','t','.','d','l','l','\\','1',0};
55 
56  hres = LoadTypeLib(vbscript_dll1W, &tl);
57  if(FAILED(hres)) {
58  ERR("LoadRegTypeLib failed: %08x\n", hres);
59  return hres;
60  }
61 
63  ITypeLib_Release(tl);
64  }
65 
66  if(!typeinfos[tid]) {
67  ITypeInfo *ti;
68 
69  hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
70  if(FAILED(hres)) {
71  ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
72  return hres;
73  }
74 
76  ITypeInfo_Release(ti);
77  }
78 
80  return S_OK;
81 }
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
Definition: typelib.c:461
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
static REFIID tid_ids[]
Definition: vbscript_main.c:41
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static ITypeInfo * typeinfos[LAST_tid]
Definition: vbscript_main.c:39
#define ERR(fmt,...)
Definition: debug.h:109
#define S_OK
Definition: intsafe.h:59
static ITypeLib * typelib
Definition: vbscript_main.c:38
static TfClientId tid

◆ heap_pool_alloc()

void* heap_pool_alloc ( heap_pool_t heap,
size_t  size 
)

Definition at line 112 of file vbscript_main.c.

113 {
114  struct list *list;
115  void *tmp;
116 
117  size = (size+3)&~3;
118 
119  if(!heap->block_cnt) {
120  if(!heap->blocks) {
121  heap->blocks = heap_alloc(sizeof(void*));
122  if(!heap->blocks)
123  return NULL;
124  }
125 
126  tmp = heap_alloc(block_size(0));
127  if(!tmp)
128  return NULL;
129 
130  heap->blocks[0] = tmp;
131  heap->block_cnt = 1;
132  }
133 
134  if(heap->offset + size <= block_size(heap->last_block)) {
135  tmp = ((BYTE*)heap->blocks[heap->last_block])+heap->offset;
136  heap->offset += size;
137  return tmp;
138  }
139 
140  if(size <= block_size(heap->last_block+1)) {
141  if(heap->last_block+1 == heap->block_cnt) {
142  tmp = heap_realloc(heap->blocks, (heap->block_cnt+1)*sizeof(void*));
143  if(!tmp)
144  return NULL;
145 
146  heap->blocks = tmp;
147  heap->blocks[heap->block_cnt] = heap_alloc(block_size(heap->block_cnt));
148  if(!heap->blocks[heap->block_cnt])
149  return NULL;
150 
151  heap->block_cnt++;
152  }
153 
154  heap->last_block++;
155  heap->offset = size;
156  return heap->blocks[heap->last_block];
157  }
158 
159  list = heap_alloc(size + sizeof(struct list));
160  if(!list)
161  return NULL;
162 
164  return list+1;
165 }
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
Definition: list.h:96
static void * heap_realloc(void *mem, size_t len)
Definition: appwiz.h:70
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
static DWORD block_size(DWORD block)
DWORD offset
Definition: jscript.h:64
struct list custom_blocks
Definition: jscript.h:66
unsigned char BYTE
Definition: mem.h:68
Definition: _list.h:228
void ** blocks
Definition: jscript.h:61
#define list
Definition: rosglue.h:35
DWORD last_block
Definition: jscript.h:63
DWORD block_cnt
Definition: jscript.h:62

Referenced by heap_pool_grow().

◆ heap_pool_clear()

void heap_pool_clear ( heap_pool_t heap)

Definition at line 183 of file vbscript_main.c.

184 {
185  struct list *tmp;
186 
187  if(!heap)
188  return;
189 
190  while((tmp = list_next(&heap->custom_blocks, &heap->custom_blocks))) {
191  list_remove(tmp);
192  heap_free(tmp);
193  }
194 
195  if(WARN_ON(heap)) {
196  DWORD i;
197 
198  for(i=0; i < heap->block_cnt; i++)
200  }
201 
202  heap->last_block = heap->offset = 0;
203  heap->mark = FALSE;
204 }
BOOL mark
Definition: jscript.h:65
#define WARN_ON(c)
Definition: module.h:255
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
#define ARENA_FREE_FILLER
Definition: vbscript_main.c:99
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
static DWORD block_size(DWORD block)
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD offset
Definition: jscript.h:64
struct list custom_blocks
Definition: jscript.h:66
Definition: _list.h:228
void ** blocks
Definition: jscript.h:61
DWORD last_block
Definition: jscript.h:63
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
Definition: list.h:115
#define memset(x, y, z)
Definition: compat.h:39
DWORD block_cnt
Definition: jscript.h:62
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by heap_pool_free(), RegExp2_Test(), RegExp_exec(), regexp_execute(), regexp_match(), regexp_match_next(), regexp_new(), regexp_string_match(), RegExp_test(), and script_parse().

◆ heap_pool_free()

void heap_pool_free ( heap_pool_t heap)

Definition at line 206 of file vbscript_main.c.

207 {
208  DWORD i;
209 
210  heap_pool_clear(heap);
211 
212  for(i=0; i < heap->block_cnt; i++)
213  heap_free(heap->blocks[i]);
214  heap_free(heap->blocks);
215 
216  heap_pool_init(heap);
217 }
void heap_pool_clear(heap_pool_t *heap)
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
void heap_pool_init(heap_pool_t *heap)
unsigned long DWORD
Definition: ntddk_ex.h:95
void ** blocks
Definition: jscript.h:61
DWORD block_cnt
Definition: jscript.h:62
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by compile_script(), parser_release(), RegExp2_Release(), release_bytecode(), release_exec(), release_script(), release_vbscode(), and script_release().

◆ heap_pool_grow()

void* heap_pool_grow ( heap_pool_t heap,
void mem,
DWORD  size,
DWORD  inc 
)

Definition at line 167 of file vbscript_main.c.

168 {
169  void *ret;
170 
171  if(mem == (BYTE*)heap->blocks[heap->last_block] + heap->offset-size
172  && heap->offset+inc < block_size(heap->last_block)) {
173  heap->offset += inc;
174  return mem;
175  }
176 
177  ret = heap_pool_alloc(heap, size+inc);
178  if(ret) /* FIXME: avoid copying for custom blocks */
179  memcpy(ret, mem, size);
180  return ret;
181 }
void * heap_pool_alloc(heap_pool_t *heap, size_t size)
GLsizeiptr size
Definition: glext.h:5919
static DWORD block_size(DWORD block)
int ret
DWORD offset
Definition: jscript.h:64
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
unsigned char BYTE
Definition: mem.h:68
void ** blocks
Definition: jscript.h:61
DWORD last_block
Definition: jscript.h:63
Definition: mem.c:156

Referenced by PushBackTrackState(), and ReallocStateStack().

◆ heap_pool_init()

void heap_pool_init ( heap_pool_t heap)

Definition at line 106 of file vbscript_main.c.

107 {
108  memset(heap, 0, sizeof(*heap));
109  list_init(&heap->custom_blocks);
110 }
struct list custom_blocks
Definition: jscript.h:66
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
#define memset(x, y, z)
Definition: compat.h:39

Referenced by alloc_vbscode(), compile_script(), create_regexp(), exec_script(), heap_pool_free(), init_code(), JScriptParse_InitNew(), parse_script(), release_script(), script_parse(), and VBScriptParse_InitNew().

◆ heap_pool_mark()

heap_pool_t* heap_pool_mark ( heap_pool_t heap)

Definition at line 219 of file vbscript_main.c.

220 {
221  if(heap->mark)
222  return NULL;
223 
224  heap->mark = TRUE;
225  return heap;
226 }
#define TRUE
Definition: types.h:120
BOOL mark
Definition: jscript.h:65
smooth NULL
Definition: ftsmooth.c:416

Referenced by RegExp2_Test(), RegExp_exec(), regexp_execute(), regexp_match(), regexp_match_next(), regexp_new(), regexp_string_match(), RegExp_test(), and script_parse().

◆ release_typelib()

static void release_typelib ( void  )
static

Definition at line 83 of file vbscript_main.c.

84 {
85  unsigned i;
86 
87  if(!typelib)
88  return;
89 
90  for(i = 0; i < ARRAY_SIZE(typeinfos); i++) {
91  if(typeinfos[i])
92  ITypeInfo_Release(typeinfos[i]);
93  }
94 
95  ITypeLib_Release(typelib);
96 }
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
static ITypeInfo * typeinfos[LAST_tid]
Definition: vbscript_main.c:39
static ITypeLib * typelib
Definition: vbscript_main.c:38
#define ARRAY_SIZE(a)
Definition: main.h:24

Referenced by DllMain().

◆ WINE_DECLARE_DEBUG_CHANNEL()

WINE_DECLARE_DEBUG_CHANNEL ( heap  )

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( vbscript  )

Variable Documentation

◆ tid_ids

REFIID tid_ids[]
static
Initial value:
= {
#define XDIID(iface)
}
#define TID_LIST
Definition: ieframe.h:306

Definition at line 41 of file vbscript_main.c.

Referenced by get_typeinfo().

◆ typeinfos

ITypeInfo* typeinfos[LAST_tid]
static

Definition at line 39 of file vbscript_main.c.

Referenced by get_typeinfo(), and release_typelib().

◆ typelib

ITypeLib* typelib
static

Definition at line 38 of file vbscript_main.c.

Referenced by get_typeinfo(), and release_typelib().

◆ vbscript_hinstance

HINSTANCE vbscript_hinstance
static

Definition at line 36 of file vbscript_main.c.

Referenced by DllMain(), DllRegisterServer(), and DllUnregisterServer().

◆ VBScriptFactory

IClassFactory VBScriptFactory = { &VBScriptFactoryVtbl }
static

Definition at line 275 of file vbscript_main.c.

Referenced by DllGetClassObject().

◆ VBScriptFactoryVtbl

const IClassFactoryVtbl VBScriptFactoryVtbl
static
Initial value:
= {
}
HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
Definition: vbscript.c:861
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)

Definition at line 267 of file vbscript_main.c.

◆ VBScriptRegExpFactory

IClassFactory VBScriptRegExpFactory = { &VBScriptRegExpFactoryVtbl }
static

Definition at line 285 of file vbscript_main.c.

Referenced by DllGetClassObject().

◆ VBScriptRegExpFactoryVtbl

const IClassFactoryVtbl VBScriptRegExpFactoryVtbl
static
Initial value:
= {
}
HRESULT WINAPI VBScriptRegExpFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
Definition: vbregexp.c:1618
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)

Definition at line 277 of file vbscript_main.c.