vbscript: Added support for do..loop statement without an expression.
[wine] / dlls / vbscript / error.c
1 /*
2  * Copyright 2011 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 "vbscript.h"
20 #include "vbscript_defs.h"
21
22 #include "wine/debug.h"
23
24 WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
25
26 static HRESULT Err_Description(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
27 {
28     FIXME("\n");
29     return E_NOTIMPL;
30 }
31
32 static HRESULT Err_HelpContext(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
33 {
34     FIXME("\n");
35     return E_NOTIMPL;
36 }
37
38 static HRESULT Err_HelpFile(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
39 {
40     FIXME("\n");
41     return E_NOTIMPL;
42 }
43
44 static HRESULT Err_Number(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
45 {
46     FIXME("\n");
47     return E_NOTIMPL;
48 }
49
50 static HRESULT Err_Source(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
51 {
52     FIXME("\n");
53     return E_NOTIMPL;
54 }
55
56 static HRESULT Err_Clear(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
57 {
58     FIXME("\n");
59     return E_NOTIMPL;
60 }
61
62 static HRESULT Err_Raise(vbdisp_t *This, VARIANT *args, unsigned args_cnt, VARIANT *res)
63 {
64     FIXME("\n");
65     return E_NOTIMPL;
66 }
67
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},
76 };
77
78 HRESULT init_err(script_ctx_t *ctx)
79 {
80     HRESULT hres;
81
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;
85
86     hres = get_typeinfo(ErrObj_tid, &ctx->err_desc.typeinfo);
87     if(FAILED(hres))
88         return hres;
89
90     return create_vbdisp(&ctx->err_desc, &ctx->err_obj);
91 }