47#define SCRIPTLANGUAGEVERSION_HTML 0x400
52#define SCRIPTLANGUAGEVERSION_ES5 0x102
96#define PROPF_ARGMASK 0x00ff
97#define PROPF_METHOD 0x0100
98#define PROPF_CONSTR 0x0200
100#define PROPF_ENUMERABLE 0x0400
101#define PROPF_WRITABLE 0x0800
102#define PROPF_CONFIGURABLE 0x1000
103#define PROPF_ALL (PROPF_ENUMERABLE | PROPF_WRITABLE | PROPF_CONFIGURABLE)
105#define PROPF_VERSION_MASK 0x01ff0000
106#define PROPF_VERSION_SHIFT 16
107#define PROPF_HTML (SCRIPTLANGUAGEVERSION_HTML << PROPF_VERSION_SHIFT)
108#define PROPF_ES5 ((SCRIPTLANGUAGEVERSION_HTML|SCRIPTLANGUAGEVERSION_ES5) << PROPF_VERSION_SHIFT)
115#define DISPATCH_JSCRIPT_CALLEREXECSSOURCE 0x8000
116#define DISPATCH_JSCRIPT_INTERNAL_MASK DISPATCH_JSCRIPT_CALLEREXECSSOURCE
149#define VDISP_DISPEX 0x0001
150#define VDISP_JSDISP 0x0002
154 IDispatch_Release(vdisp->
u.
disp);
171 IDispatch_AddRef(vdisp->
u.
disp);
187 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
194 IDispatch_AddRef(disp);
195 vdisp->
u.
disp = disp;
315#define DEFAULT_FUNCTION_VALUE {NULL, Function_value,0, Function_get_value}
489#define REM_CHECK_GLOBAL 0x0001
490#define REM_RESET_INDEX 0x0002
491#define REM_NO_CTX_UPDATE 0x0004
492#define REM_ALLOC_RESULT 0x0008
493#define REM_NO_PARENS 0x0010
521 return ((
ctx->version & 0xff) << 28) |
flags;
524#define FACILITY_JSCRIPT 10
526#define MAKE_JSERROR(code) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_JSCRIPT, code)
528#define JS_E_TO_PRIMITIVE MAKE_JSERROR(IDS_TO_PRIMITIVE)
529#define JS_E_INVALIDARG MAKE_JSERROR(IDS_INVALID_CALL_ARG)
530#define JS_E_SUBSCRIPT_OUT_OF_RANGE MAKE_JSERROR(IDS_SUBSCRIPT_OUT_OF_RANGE)
531#define JS_E_OBJECT_REQUIRED MAKE_JSERROR(IDS_OBJECT_REQUIRED)
532#define JS_E_CANNOT_CREATE_OBJ MAKE_JSERROR(IDS_CREATE_OBJ_ERROR)
533#define JS_E_INVALID_PROPERTY MAKE_JSERROR(IDS_NO_PROPERTY)
534#define JS_E_INVALID_ACTION MAKE_JSERROR(IDS_UNSUPPORTED_ACTION)
535#define JS_E_MISSING_ARG MAKE_JSERROR(IDS_ARG_NOT_OPT)
536#define JS_E_SYNTAX MAKE_JSERROR(IDS_SYNTAX_ERROR)
537#define JS_E_MISSING_SEMICOLON MAKE_JSERROR(IDS_SEMICOLON)
538#define JS_E_MISSING_LBRACKET MAKE_JSERROR(IDS_LBRACKET)
539#define JS_E_MISSING_RBRACKET MAKE_JSERROR(IDS_RBRACKET)
540#define JS_E_EXPECTED_IDENTIFIER MAKE_JSERROR(IDS_EXPECTED_IDENTIFIER)
541#define JS_E_EXPECTED_ASSIGN MAKE_JSERROR(IDS_EXPECTED_ASSIGN)
542#define JS_E_INVALID_CHAR MAKE_JSERROR(IDS_INVALID_CHAR)
543#define JS_E_UNTERMINATED_STRING MAKE_JSERROR(IDS_UNTERMINATED_STR)
544#define JS_E_MISPLACED_RETURN MAKE_JSERROR(IDS_MISPLACED_RETURN)
545#define JS_E_INVALID_BREAK MAKE_JSERROR(IDS_INVALID_BREAK)
546#define JS_E_INVALID_CONTINUE MAKE_JSERROR(IDS_INVALID_CONTINUE)
547#define JS_E_LABEL_REDEFINED MAKE_JSERROR(IDS_LABEL_REDEFINED)
548#define JS_E_LABEL_NOT_FOUND MAKE_JSERROR(IDS_LABEL_NOT_FOUND)
549#define JS_E_EXPECTED_CCEND MAKE_JSERROR(IDS_EXPECTED_CCEND)
550#define JS_E_DISABLED_CC MAKE_JSERROR(IDS_DISABLED_CC)
551#define JS_E_EXPECTED_AT MAKE_JSERROR(IDS_EXPECTED_AT)
552#define JS_E_FUNCTION_EXPECTED MAKE_JSERROR(IDS_NOT_FUNC)
553#define JS_E_DATE_EXPECTED MAKE_JSERROR(IDS_NOT_DATE)
554#define JS_E_NUMBER_EXPECTED MAKE_JSERROR(IDS_NOT_NUM)
555#define JS_E_OBJECT_EXPECTED MAKE_JSERROR(IDS_OBJECT_EXPECTED)
556#define JS_E_ILLEGAL_ASSIGN MAKE_JSERROR(IDS_ILLEGAL_ASSIGN)
557#define JS_E_UNDEFINED_VARIABLE MAKE_JSERROR(IDS_UNDEFINED)
558#define JS_E_BOOLEAN_EXPECTED MAKE_JSERROR(IDS_NOT_BOOL)
559#define JS_E_VBARRAY_EXPECTED MAKE_JSERROR(IDS_NOT_VBARRAY)
560#define JS_E_INVALID_DELETE MAKE_JSERROR(IDS_INVALID_DELETE)
561#define JS_E_JSCRIPT_EXPECTED MAKE_JSERROR(IDS_JSCRIPT_EXPECTED)
562#define JS_E_ENUMERATOR_EXPECTED MAKE_JSERROR(IDS_NOT_ENUMERATOR)
563#define JS_E_REGEXP_SYNTAX MAKE_JSERROR(IDS_REGEXP_SYNTAX_ERROR)
564#define JS_E_INVALID_URI_CODING MAKE_JSERROR(IDS_URI_INVALID_CODING)
565#define JS_E_INVALID_URI_CHAR MAKE_JSERROR(IDS_URI_INVALID_CHAR)
566#define JS_E_FRACTION_DIGITS_OUT_OF_RANGE MAKE_JSERROR(IDS_FRACTION_DIGITS_OUT_OF_RANGE)
567#define JS_E_PRECISION_OUT_OF_RANGE MAKE_JSERROR(IDS_PRECISION_OUT_OF_RANGE)
568#define JS_E_INVALID_LENGTH MAKE_JSERROR(IDS_INVALID_LENGTH)
569#define JS_E_ARRAY_EXPECTED MAKE_JSERROR(IDS_ARRAY_EXPECTED)
570#define JS_E_NONCONFIGURABLE_REDEFINED MAKE_JSERROR(IDS_NONCONFIGURABLE_REDEFINED)
571#define JS_E_NONWRITABLE_MODIFIED MAKE_JSERROR(IDS_NONWRITABLE_MODIFIED)
572#define JS_E_PROP_DESC_MISMATCH MAKE_JSERROR(IDS_PROP_DESC_MISMATCH)
573#define JS_E_INVALID_WRITABLE_PROP_DESC MAKE_JSERROR(IDS_INVALID_WRITABLE_PROP_DESC)
enum tagSCRIPTSTATE SCRIPTSTATE
static void * heap_alloc(size_t len)
#define InterlockedIncrement
#define InterlockedDecrement
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 * u
void * heap_pool_alloc(heap_pool_t *, DWORD) __WINE_ALLOC_SIZE(2) DECLSPEC_HIDDEN
HRESULT throw_regexp_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT jsdisp_get_id(jsdisp_t *, const WCHAR *, DWORD, DISPID *) DECLSPEC_HIDDEN
HRESULT jsdisp_next_prop(jsdisp_t *, DISPID, BOOL, DISPID *) DECLSPEC_HIDDEN
HRESULT create_number(script_ctx_t *, double, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT init_dispex(jsdisp_t *, script_ctx_t *, const builtin_info_t *, jsdisp_t *) DECLSPEC_HIDDEN
static BOOL is_vclass(vdisp_t *vdisp, jsclass_t class)
HRESULT(* builtin_invoke_t)(script_ctx_t *, vdisp_t *, WORD, unsigned, jsval_t *, jsval_t *)
HRESULT create_string(script_ctx_t *, jsstr_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT create_object(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT jsdisp_call_name(jsdisp_t *, const WCHAR *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT create_dispex(script_ctx_t *, const builtin_info_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT create_jscript_object(BOOL, REFIID, void **) DECLSPEC_HIDDEN
HRESULT disp_call_value(script_ctx_t *, IDispatch *, IDispatch *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
void heap_pool_clear(heap_pool_t *) DECLSPEC_HIDDEN
HRESULT create_regexp_var(script_ctx_t *, jsval_t, jsval_t *, jsdisp_t **) DECLSPEC_HIDDEN
void jsdisp_free(jsdisp_t *) DECLSPEC_HIDDEN
HRESULT init_global(script_ctx_t *) DECLSPEC_HIDDEN
void heap_pool_free(heap_pool_t *) DECLSPEC_HIDDEN
HRESULT throw_type_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT create_array_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
unsigned array_get_length(jsdisp_t *) DECLSPEC_HIDDEN
static void set_disp(vdisp_t *vdisp, IDispatch *disp)
HRESULT JSGlobal_eval(script_ctx_t *, vdisp_t *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT create_object_prototype(script_ctx_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT jsdisp_get_own_property(jsdisp_t *, const WCHAR *, BOOL, property_desc_t *) DECLSPEC_HIDDEN
HRESULT Function_value(script_ctx_t *, vdisp_t *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT create_number_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
heap_pool_t * heap_pool_mark(heap_pool_t *) DECLSPEC_HIDDEN
HRESULT jsdisp_define_data_property(jsdisp_t *, const WCHAR *, unsigned, jsval_t) DECLSPEC_HIDDEN
HRESULT to_object(script_ctx_t *, jsval_t, IDispatch **) DECLSPEC_HIDDEN
jsdisp_t * iface_to_jsdisp(IDispatch *) DECLSPEC_HIDDEN
HRESULT throw_range_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT jsval_strict_equal(jsval_t, jsval_t, BOOL *) DECLSPEC_HIDDEN
HRESULT throw_eval_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
static void lock_module(void)
IUnknown * create_ax_site(script_ctx_t *) DECLSPEC_HIDDEN
HRESULT create_bool(script_ctx_t *, BOOL, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT(* builtin_setter_t)(script_ctx_t *, jsdisp_t *, jsval_t)
static void jsdisp_release(jsdisp_t *jsdisp)
struct named_item_t named_item_t
HRESULT create_array(script_ctx_t *, DWORD, jsdisp_t **) DECLSPEC_HIDDEN
jsdisp_t * to_jsdisp(IDispatch *) DECLSPEC_HIDDEN
HRESULT jsdisp_propput(jsdisp_t *, const WCHAR *, DWORD, jsval_t) DECLSPEC_HIDDEN
HRESULT disp_propput(script_ctx_t *, IDispatch *, DISPID, jsval_t) DECLSPEC_HIDDEN
HRESULT disp_delete(IDispatch *, DISPID, BOOL *) DECLSPEC_HIDDEN
HRESULT(* builtin_getter_t)(script_ctx_t *, jsdisp_t *, jsval_t *)
static LPWSTR heap_strdupW(LPCWSTR str)
static void set_jsdisp(vdisp_t *vdisp, jsdisp_t *jsdisp)
HRESULT create_date_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT to_primitive(script_ctx_t *, jsval_t, jsval_t *, hint_t) DECLSPEC_HIDDEN
HRESULT to_number(script_ctx_t *, jsval_t, double *) DECLSPEC_HIDDEN
HRESULT create_vbarray_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
void * heap_pool_grow(heap_pool_t *, void *, DWORD, DWORD) DECLSPEC_HIDDEN
HRESULT jsdisp_propget_name(jsdisp_t *, LPCWSTR, jsval_t *) DECLSPEC_HIDDEN
HRESULT to_int32(script_ctx_t *, jsval_t, INT *) DECLSPEC_HIDDEN
static BOOL is_jsdisp(vdisp_t *vdisp)
static void script_addref(script_ctx_t *ctx)
HRESULT regexp_match_next(script_ctx_t *, jsdisp_t *, DWORD, jsstr_t *, struct match_state_t **) DECLSPEC_HIDDEN
static void unlock_module(void)
void clear_ei(script_ctx_t *) DECLSPEC_HIDDEN
static BOOL is_int32(double d)
HRESULT create_object_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT decode_source(WCHAR *) DECLSPEC_HIDDEN
HRESULT create_vbarray(script_ctx_t *, SAFEARRAY *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT jsdisp_delete_idx(jsdisp_t *, DWORD) DECLSPEC_HIDDEN
HRESULT throw_generic_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT init_function_constr(script_ctx_t *, jsdisp_t *) DECLSPEC_HIDDEN
HRESULT to_integer(script_ctx_t *, jsval_t, double *) DECLSPEC_HIDDEN
HRESULT init_error_constr(script_ctx_t *, jsdisp_t *) DECLSPEC_HIDDEN
static void vdisp_release(vdisp_t *vdisp)
HRESULT create_math(script_ctx_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT parse_regexp_flags(const WCHAR *, DWORD, DWORD *) DECLSPEC_HIDDEN
HRESULT throw_uri_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
static BOOL is_dispex(vdisp_t *vdisp)
HRESULT create_builtin_constructor(script_ctx_t *, builtin_invoke_t, const WCHAR *, const builtin_info_t *, DWORD, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT jsdisp_call(jsdisp_t *, DISPID, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT Function_get_value(script_ctx_t *, jsdisp_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT create_enumerator_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT create_json(script_ctx_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT to_uint32(script_ctx_t *, jsval_t, UINT32 *) DECLSPEC_HIDDEN
HRESULT create_builtin_function(script_ctx_t *, builtin_invoke_t, const WCHAR *, const builtin_info_t *, DWORD, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
static IDispatch * to_disp(jsdisp_t *jsdisp)
HRESULT create_bool_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT disp_propget(script_ctx_t *, IDispatch *, DISPID, jsval_t *) DECLSPEC_HIDDEN
static DWORD make_grfdex(script_ctx_t *ctx, DWORD flags)
HRESULT double_to_string(double, jsstr_t **) DECLSPEC_HIDDEN
BOOL is_finite(double) DECLSPEC_HIDDEN
static BOOL is_jscript_error(HRESULT hres)
void script_release(script_ctx_t *) DECLSPEC_HIDDEN
void heap_pool_init(heap_pool_t *) DECLSPEC_HIDDEN
HRESULT jsdisp_define_property(jsdisp_t *, const WCHAR *, property_desc_t *) DECLSPEC_HIDDEN
HRESULT throw_reference_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT jsdisp_propget(jsdisp_t *, DISPID, jsval_t *) DECLSPEC_HIDDEN
HRESULT init_dispex_from_constr(jsdisp_t *, script_ctx_t *, const builtin_info_t *, jsdisp_t *) DECLSPEC_HIDDEN
HINSTANCE jscript_hinstance DECLSPEC_HIDDEN
HRESULT create_jscaller(script_ctx_t *) DECLSPEC_HIDDEN
HRESULT disp_delete_name(script_ctx_t *, IDispatch *, jsstr_t *, BOOL *) DECLSPEC_HIDDEN
HRESULT throw_syntax_error(script_ctx_t *, HRESULT, const WCHAR *) DECLSPEC_HIDDEN
HRESULT jsdisp_propput_name(jsdisp_t *, const WCHAR *, jsval_t) DECLSPEC_HIDDEN
HRESULT to_string(script_ctx_t *, jsval_t, jsstr_t **) DECLSPEC_HIDDEN
HRESULT jsdisp_propput_idx(jsdisp_t *, DWORD, jsval_t) DECLSPEC_HIDDEN
jsdisp_t * as_jsdisp(IDispatch *) DECLSPEC_HIDDEN
static jsdisp_t * get_jsdisp(vdisp_t *vdisp)
void release_cc(cc_ctx_t *) DECLSPEC_HIDDEN
HRESULT disp_call(script_ctx_t *, IDispatch *, DISPID, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT create_regexp_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT regexp_string_match(script_ctx_t *, jsdisp_t *, jsstr_t *, jsval_t *) DECLSPEC_HIDDEN
HRESULT Function_invoke(jsdisp_t *, IDispatch *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
const char * debugstr_jsval(const jsval_t) DECLSPEC_HIDDEN
HRESULT create_string_constr(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
static jsdisp_t * jsdisp_addref(jsdisp_t *jsdisp)
HRESULT builtin_set_const(script_ctx_t *, jsdisp_t *, jsval_t) DECLSPEC_HIDDEN
BOOL bool_obj_value(jsdisp_t *) DECLSPEC_HIDDEN
HRESULT to_boolean(jsval_t, BOOL *) DECLSPEC_HIDDEN
HRESULT to_flat_string(script_ctx_t *, jsval_t, jsstr_t **, const WCHAR **) DECLSPEC_HIDDEN
HRESULT create_regexp(script_ctx_t *, jsstr_t *, DWORD, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT variant_change_type(script_ctx_t *, VARIANT *, VARIANT *, VARTYPE) DECLSPEC_HIDDEN
HRESULT create_activex_constr(script_ctx_t *, jsdisp_t **) DECLSPEC_HIDDEN
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
HRESULT jsdisp_get_idx(jsdisp_t *, DWORD, jsval_t *) DECLSPEC_HIDDEN
HRESULT jsdisp_call_value(jsdisp_t *, IDispatch *, WORD, unsigned, jsval_t *, jsval_t *) DECLSPEC_HIDDEN
HINSTANCE jscript_hinstance
#define memcpy(s1, s2, n)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static unsigned(__cdecl *hash_bstr)(bstr_t s)
static VARIANTARG static DISPID
IServiceProvider IServiceProvider_iface
IActiveScript * active_script
jsdisp_t * syntax_error_constr
jsdisp_t * regexp_error_constr
jsdisp_t * range_error_constr
match_result_t match_parens[9]
struct _call_frame_t * call_ctx
jsdisp_t * function_constr
jsdisp_t * vbarray_constr
jsdisp_t * type_error_constr
jsdisp_t * enumerator_constr
jsdisp_t * uri_error_constr
named_item_t * named_items
jsdisp_t * reference_error_constr
jsdisp_t * eval_error_constr
IInternetHostSecurityManager * secmgr
const builtin_prop_t * props
builtin_prop_t value_prop
IDispatchEx IDispatchEx_iface
const builtin_info_t * builtin_info
struct named_item_t * next
#define HRESULT_FACILITY(hr)
#define __WINE_ALLOC_SIZE(x)