~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/dlls/jscript/jscript.h

Version: ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Copyright 2008 Jacek Caban for CodeWeavers
  3  *
  4  * This library is free software; you can redistribute it and/or
  5  * modify it under the terms of the GNU Lesser General Public
  6  * License as published by the Free Software Foundation; either
  7  * version 2.1 of the License, or (at your option) any later version.
  8  *
  9  * This library is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  * Lesser General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU Lesser General Public
 15  * License along with this library; if not, write to the Free Software
 16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 
 19 #include <stdarg.h>
 20 #include <stdio.h>
 21 
 22 #define COBJMACROS
 23 
 24 #include "windef.h"
 25 #include "winbase.h"
 26 #include "winuser.h"
 27 #include "ole2.h"
 28 #include "dispex.h"
 29 #include "activscp.h"
 30 
 31 #include "wine/unicode.h"
 32 #include "wine/list.h"
 33 
 34 typedef struct _script_ctx_t script_ctx_t;
 35 typedef struct _exec_ctx_t exec_ctx_t;
 36 
 37 typedef struct {
 38     EXCEPINFO ei;
 39     VARIANT var;
 40 } jsexcept_t;
 41 
 42 typedef struct DispatchEx {
 43     const IDispatchExVtbl  *lpIDispatchExVtbl;
 44 
 45     LONG ref;
 46 
 47     script_ctx_t *ctx;
 48 } DispatchEx;
 49 
 50 #define _IDispatchEx_(x) ((IDispatchEx*) &(x)->lpIDispatchExVtbl)
 51 
 52 HRESULT create_dispex(script_ctx_t*,DispatchEx**);
 53 
 54 struct _script_ctx_t {
 55     LONG ref;
 56 
 57     SCRIPTSTATE state;
 58     exec_ctx_t *exec_ctx;
 59     LCID lcid;
 60 
 61     DispatchEx *script_disp;
 62 };
 63 
 64 void script_release(script_ctx_t*);
 65 
 66 static inline void script_addref(script_ctx_t *ctx)
 67 {
 68     ctx->ref++;
 69 }
 70 
 71 HRESULT WINAPI JScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**);
 72 
 73 typedef struct {
 74     void **blocks;
 75     DWORD block_cnt;
 76     DWORD last_block;
 77     DWORD offset;
 78     struct list custom_blocks;
 79 } jsheap_t;
 80 
 81 void jsheap_init(jsheap_t*);
 82 void *jsheap_alloc(jsheap_t*,DWORD);
 83 void jsheap_clear(jsheap_t*);
 84 void jsheap_free(jsheap_t*);
 85 
 86 extern LONG module_ref;
 87 
 88 static inline void lock_module(void)
 89 {
 90     InterlockedIncrement(&module_ref);
 91 }
 92 
 93 static inline void unlock_module(void)
 94 {
 95     InterlockedDecrement(&module_ref);
 96 }
 97 
 98 static inline void *heap_alloc(size_t len)
 99 {
100     return HeapAlloc(GetProcessHeap(), 0, len);
101 }
102 
103 static inline void *heap_alloc_zero(size_t len)
104 {
105     return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
106 }
107 
108 static inline void *heap_realloc(void *mem, size_t len)
109 {
110     return HeapReAlloc(GetProcessHeap(), 0, mem, len);
111 }
112 
113 static inline BOOL heap_free(void *mem)
114 {
115     return HeapFree(GetProcessHeap(), 0, mem);
116 }
117 
118 #define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl)))
119 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.