2 * Copyright 2011 Jacek Caban for CodeWeavers
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.
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.
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
20 #include "vbscript_defs.h"
22 #include "wine/debug.h"
24 WINE_DEFAULT_DEBUG_CHANNEL(vbscript
);
26 static HRESULT
Err_Description(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
32 static HRESULT
Err_HelpContext(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
38 static HRESULT
Err_HelpFile(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
44 static HRESULT
Err_Number(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
50 static HRESULT
Err_Source(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
56 static HRESULT
Err_Clear(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
62 static HRESULT
Err_Raise(vbdisp_t
*This
, VARIANT
*args
, unsigned args_cnt
, VARIANT
*res
)
68 static const builtin_prop_t err_props
[] = {
69 {DISPID_ERR_DESCRIPTION
, Err_Description
, BP_GETPUT
},
70 {DISPID_ERR_HELPCONTEXT
, Err_HelpContext
, BP_GETPUT
},
71 {DISPID_ERR_HELPFILE
, Err_HelpFile
, BP_GETPUT
},
72 {DISPID_ERR_NUMBER
, Err_Number
, BP_GETPUT
},
73 {DISPID_ERR_SOURCE
, Err_Source
, BP_GETPUT
},
74 {DISPID_ERR_CLEAR
, Err_Clear
},
75 {DISPID_ERR_RAISE
, Err_Raise
, 0, 5},
78 HRESULT
init_err(script_ctx_t
*ctx
)
82 ctx
->err_desc
.ctx
= ctx
;
83 ctx
->err_desc
.builtin_prop_cnt
= sizeof(err_props
)/sizeof(*err_props
);
84 ctx
->err_desc
.builtin_props
= err_props
;
86 hres
= get_typeinfo(ErrObj_tid
, &ctx
->err_desc
.typeinfo
);
90 return create_vbdisp(&ctx
->err_desc
, &ctx
->err_obj
);