user32: Added tests for CharUpper and CharLower.
[wine] / tools / widl / typelib.h
1 /*
2  * IDL Compiler
3  *
4  * Copyright 2004 Ove Kaaven
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WIDL_TYPELIB_H
22 #define __WIDL_TYPELIB_H
23
24 extern int in_typelib;
25 extern void start_typelib(char *name, attr_t *attrs);
26 extern void end_typelib(void);
27 extern void add_interface(type_t *iface);
28 extern void add_coclass(class_t *cls);
29 extern void add_module(type_t *module);
30 extern void add_struct(type_t *structure);
31 extern void add_enum(type_t *enumeration);
32 extern void add_typedef(type_t *tdef, var_t *name);
33 extern void add_importlib(const char *name);
34
35 /* Copied from wtypes.h. Not included directly because that would create a
36  * circular dependency (after all, wtypes.h is generated by widl...) */
37
38 enum VARENUM {
39     VT_EMPTY = 0,
40     VT_NULL = 1,
41     VT_I2 = 2,
42     VT_I4 = 3,
43     VT_R4 = 4,
44     VT_R8 = 5,
45     VT_CY = 6,
46     VT_DATE = 7,
47     VT_BSTR = 8,
48     VT_DISPATCH = 9,
49     VT_ERROR = 10,
50     VT_BOOL = 11,
51     VT_VARIANT = 12,
52     VT_UNKNOWN = 13,
53     VT_DECIMAL = 14,
54     VT_I1 = 16,
55     VT_UI1 = 17,
56     VT_UI2 = 18,
57     VT_UI4 = 19,
58     VT_I8 = 20,
59     VT_UI8 = 21,
60     VT_INT = 22,
61     VT_UINT = 23,
62     VT_VOID = 24,
63     VT_HRESULT = 25,
64     VT_PTR = 26,
65     VT_SAFEARRAY = 27,
66     VT_CARRAY = 28,
67     VT_USERDEFINED = 29,
68     VT_LPSTR = 30,
69     VT_LPWSTR = 31,
70     VT_RECORD = 36,
71     VT_FILETIME = 64,
72     VT_BLOB = 65,
73     VT_STREAM = 66,
74     VT_STORAGE = 67,
75     VT_STREAMED_OBJECT = 68,
76     VT_STORED_OBJECT = 69,
77     VT_BLOB_OBJECT = 70,
78     VT_CF = 71,
79     VT_CLSID = 72,
80     VT_BSTR_BLOB = 0xfff,
81     VT_VECTOR = 0x1000,
82     VT_ARRAY = 0x2000,
83     VT_BYREF = 0x4000,
84     VT_RESERVED = 0x8000,
85     VT_ILLEGAL = 0xffff,
86     VT_ILLEGALMASKED = 0xfff,
87     VT_TYPEMASK = 0xfff
88 };
89 extern unsigned short get_type_vt(type_t *t);
90 extern unsigned short get_var_vt(var_t *v);
91
92 extern int create_msft_typelib(typelib_t *typelib);
93 #endif