widl.h 2.85 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/*
 * IDL Compiler
 *
 * Copyright 2002 Ove Kaaven
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * 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
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
 */

#ifndef __WIDL_WIDL_H
#define __WIDL_WIDL_H

#include "widltypes.h"

#include <time.h>

extern int debuglevel;
#define DEBUGLEVEL_NONE		0x0000
#define DEBUGLEVEL_CHAT		0x0001
#define DEBUGLEVEL_DUMP		0x0002
#define DEBUGLEVEL_TRACE	0x0004
#define DEBUGLEVEL_PPMSG	0x0008
#define DEBUGLEVEL_PPLEX	0x0010
#define DEBUGLEVEL_PPTRACE	0x0020

extern int pedantic;
38
extern int do_everything;
Huw Davies's avatar
Huw Davies committed
39 40 41
extern int do_header;
extern int do_typelib;
extern int do_proxies;
42 43
extern int do_client;
extern int do_server;
44
extern int do_regscript;
45
extern int do_idfile;
46
extern int do_dlldata;
47
extern int old_names;
48 49
extern int do_win32;
extern int do_win64;
50 51
extern int win32_packing;
extern int win64_packing;
52
extern int do_rt_extension;
53 54

extern char *input_name;
55
extern char *input_idl_name;
56
extern char *header_name;
57
extern char *header_token;
58
extern char *local_stubs_name;
59
extern char *typelib_name;
60
extern char *dlldata_name;
61
extern char *proxy_name;
62
extern char *proxy_token;
63 64 65 66
extern char *client_name;
extern char *client_token;
extern char *server_name;
extern char *server_token;
67 68
extern char *regscript_name;
extern char *regscript_token;
69 70
extern const char *prefix_client;
extern const char *prefix_server;
71
extern unsigned int pointer_size;
72 73 74 75 76
extern time_t now;

extern int line_number;
extern int char_number;

77 78 79 80 81 82
enum stub_mode
{
    MODE_Os,  /* inline stubs */
    MODE_Oi,  /* old-style interpreted stubs */
    MODE_Oif  /* new-style fully interpreted stubs */
};
83
extern enum stub_mode get_stub_mode(void);
84

85
extern void write_header(const statement_list_t *stmts);
86
extern void write_id_data(const statement_list_t *stmts);
87 88 89
extern void write_proxies(const statement_list_t *stmts);
extern void write_client(const statement_list_t *stmts);
extern void write_server(const statement_list_t *stmts);
90
extern void write_regscript(const statement_list_t *stmts);
91
extern void output_typelib_regscript( const typelib_t *typelib );
92
extern void write_local_stubs(const statement_list_t *stmts);
93
extern void write_dlldata(const statement_list_t *stmts);
94

95 96 97
extern void start_cplusplus_guard(FILE *fp);
extern void end_cplusplus_guard(FILE *fp);

98
#endif