widl: Add support for function parameter flags to SLTG typelib generator.
[wine.git] / tools / wmc / wmctypes.h
blob12227f2d7aacd831780b0debb98421f62045f9a4
1 /*
2 * Main definitions and externals
4 * Copyright 2000 Bertho A. Stultiens (BS)
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.
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.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WMC_WMCTYPES_H
22 #define __WMC_WMCTYPES_H
24 #include <stdarg.h>
25 #include "windef.h"
26 #include "winbase.h"
29 * Tokenizer types
31 enum tok_enum {
32 tok_null = 0,
33 tok_keyword,
34 tok_severity,
35 tok_facility,
36 tok_language
39 struct token {
40 enum tok_enum type;
41 const WCHAR *name; /* Parsed name of token */
42 int token; /* Tokenvalue or language code */
43 int codepage;
44 const WCHAR *alias; /* Alias or filename */
45 int fixed; /* Cleared if token may change */
48 struct lan_cp {
49 int language;
50 int codepage;
53 struct cp_xlat {
54 int lan;
55 int cpin;
56 int cpout;
59 struct lanmsg {
60 int lan; /* Language code of message */
61 int cp; /* Codepage of message */
62 WCHAR *msg; /* Message text */
63 int len; /* Message length including trailing '\0' */
64 const char *file; /* File location for definition */
65 int line;
68 struct msg {
69 int id; /* Message ID */
70 unsigned realid; /* Combined message ID */
71 WCHAR *sym; /* Symbolic name */
72 int sev; /* Severity code */
73 int fac; /* Facility code */
74 struct lanmsg **msgs; /* Array message texts */
75 int nmsgs; /* Number of message texts in array */
76 int base; /* Base of number to print */
77 WCHAR *cast; /* Typecase to use */
80 enum node_type {
81 nd_msg,
82 nd_comment
85 struct node {
86 struct node *next;
87 struct node *prev;
88 enum node_type type;
89 union {
90 void *all;
91 WCHAR *comment;
92 struct msg *msg;
93 } u;
96 struct block {
97 unsigned idlo; /* Lowest ID in this set */
98 unsigned idhi; /* Highest ID in this set */
99 int size; /* Size of this set */
100 struct lanmsg **msgs; /* Array of messages in this set */
101 int nmsg; /* Number of array entries */
104 struct lan_blk {
105 struct lan_blk *next; /* Linkage for languages */
106 struct lan_blk *prev;
107 int lan; /* The language of this block */
108 int version; /* The resource version for auto-translated resources */
109 struct block *blks; /* Array of blocks for this language */
110 int nblk; /* Nr of blocks in array */
113 #endif