windres.h revision 1.7 1 1.1 christos /* windres.h -- header file for windres program.
2 1.7 christos Copyright (C) 1997-2020 Free Software Foundation, Inc.
3 1.1 christos Written by Ian Lance Taylor, Cygnus Support.
4 1.1 christos Rewritten by Kai Tietz, Onevision.
5 1.1 christos
6 1.1 christos This file is part of GNU Binutils.
7 1.1 christos
8 1.1 christos This program is free software; you can redistribute it and/or modify
9 1.1 christos it under the terms of the GNU General Public License as published by
10 1.1 christos the Free Software Foundation; either version 3 of the License, or
11 1.1 christos (at your option) any later version.
12 1.1 christos
13 1.1 christos This program is distributed in the hope that it will be useful,
14 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
15 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 1.1 christos GNU General Public License for more details.
17 1.1 christos
18 1.1 christos You should have received a copy of the GNU General Public License
19 1.1 christos along with this program; if not, write to the Free Software
20 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
21 1.1 christos 02110-1301, USA. */
22 1.1 christos
23 1.1 christos #include "ansidecl.h"
24 1.1 christos
25 1.1 christos /* This is the header file for the windres program. It defines
26 1.1 christos structures and declares functions used within the program. */
27 1.1 christos
28 1.1 christos #include "winduni.h"
29 1.1 christos #include "windint.h"
30 1.1 christos
31 1.1 christos extern int verbose;
32 1.1 christos
33 1.1 christos /* Function declarations. */
34 1.1 christos
35 1.1 christos extern rc_res_directory *read_rc_file (const char *, const char *, const char *, int, int);
36 1.1 christos extern rc_res_directory *read_res_file (const char *);
37 1.1 christos extern rc_res_directory *read_coff_rsrc (const char *, const char *);
38 1.1 christos extern void write_rc_file (const char *, const rc_res_directory *);
39 1.1 christos extern void write_res_file (const char *, const rc_res_directory *);
40 1.1 christos extern void write_coff_file (const char *, const char *, const rc_res_directory *);
41 1.1 christos
42 1.1 christos extern rc_res_resource *bin_to_res (windres_bfd *, rc_res_id, const bfd_byte *,
43 1.1 christos rc_uint_type);
44 1.1 christos extern rc_uint_type res_to_bin (windres_bfd *, rc_uint_type, const rc_res_resource *);
45 1.1 christos
46 1.1 christos extern FILE *open_file_search (const char *, const char *, const char *, char **);
47 1.1 christos
48 1.1 christos extern void *res_alloc (rc_uint_type);
49 1.1 christos extern void *reswr_alloc (rc_uint_type);
50 1.1 christos
51 1.1 christos /* Resource ID handling. */
52 1.1 christos
53 1.1 christos extern int res_id_cmp (rc_res_id, rc_res_id);
54 1.1 christos extern void res_id_print (FILE *, rc_res_id, int);
55 1.1 christos extern void res_ids_print (FILE *, int, const rc_res_id *);
56 1.1 christos extern void res_string_to_id (rc_res_id *, const char *);
57 1.1 christos extern void res_unistring_to_id (rc_res_id *, const unichar *);
58 1.1 christos
59 1.1 christos /* Manipulation of the resource tree. */
60 1.1 christos
61 1.1 christos extern rc_res_resource *define_resource (rc_res_directory **, int, const rc_res_id *,
62 1.1 christos int);
63 1.1 christos extern rc_res_resource *define_standard_resource (rc_res_directory **, int, rc_res_id,
64 1.1 christos rc_uint_type, int);
65 1.1 christos
66 1.1 christos extern int extended_dialog (const rc_dialog *);
67 1.1 christos extern int extended_menu (const rc_menu *);
68 1.1 christos
69 1.1 christos /* Communication between the rc file support and the parser and lexer. */
70 1.1 christos
71 1.1 christos extern int yydebug;
72 1.1 christos extern char *rc_filename;
73 1.1 christos extern int rc_lineno;
74 1.1 christos
75 1.1 christos extern int yyparse (void);
76 1.1 christos extern int yylex (void);
77 1.1 christos extern void yyerror (const char *);
78 1.1 christos extern void rcparse_warning (const char *);
79 1.1 christos extern void rcparse_set_language (int);
80 1.1 christos extern void rcparse_discard_strings (void);
81 1.1 christos extern void rcparse_rcdata (void);
82 1.1 christos extern void rcparse_normal (void);
83 1.1 christos
84 1.1 christos extern void define_accelerator (rc_res_id, const rc_res_res_info *, rc_accelerator *);
85 1.1 christos extern void define_bitmap (rc_res_id, const rc_res_res_info *, const char *);
86 1.1 christos extern void define_cursor (rc_res_id, const rc_res_res_info *, const char *);
87 1.1 christos extern void define_dialog (rc_res_id, const rc_res_res_info *, const rc_dialog *);
88 1.1 christos extern rc_dialog_control *define_control (const rc_res_id, rc_uint_type, rc_uint_type,
89 1.1 christos rc_uint_type, rc_uint_type, rc_uint_type,
90 1.1 christos const rc_res_id, rc_uint_type, rc_uint_type);
91 1.1 christos extern rc_dialog_control *define_icon_control (rc_res_id, rc_uint_type, rc_uint_type,
92 1.1 christos rc_uint_type, rc_uint_type, rc_uint_type,
93 1.1 christos rc_uint_type, rc_rcdata_item *,
94 1.1 christos rc_dialog_ex *);
95 1.1 christos extern void define_font (rc_res_id, const rc_res_res_info *, const char *);
96 1.1 christos extern void define_icon (rc_res_id, const rc_res_res_info *, const char *);
97 1.1 christos extern void define_menu (rc_res_id, const rc_res_res_info *, rc_menuitem *);
98 1.1 christos extern rc_menuitem *define_menuitem (const unichar *, rc_uint_type, rc_uint_type,
99 1.1 christos rc_uint_type, rc_uint_type, rc_menuitem *);
100 1.1 christos extern void define_messagetable (rc_res_id, const rc_res_res_info *, const char *);
101 1.1 christos extern void define_rcdata (rc_res_id, const rc_res_res_info *, rc_rcdata_item *);
102 1.1 christos extern void define_rcdata_file (rc_res_id, const rc_res_res_info *, const char *);
103 1.1 christos extern rc_rcdata_item *define_rcdata_string (const char *, rc_uint_type);
104 1.1 christos extern rc_rcdata_item *define_rcdata_unistring (const unichar *, rc_uint_type);
105 1.1 christos extern rc_rcdata_item *define_rcdata_number (rc_uint_type, int);
106 1.1 christos extern void define_stringtable (const rc_res_res_info *, rc_uint_type, const unichar *, int);
107 1.1 christos extern void define_user_data (rc_res_id, rc_res_id, const rc_res_res_info *, rc_rcdata_item *);
108 1.1 christos extern void define_toolbar (rc_res_id, rc_res_res_info *, rc_uint_type ,rc_uint_type ,rc_toolbar_item *);
109 1.1 christos extern void define_user_file (rc_res_id, rc_res_id, const rc_res_res_info *, const char *);
110 1.1 christos extern void define_versioninfo (rc_res_id, rc_uint_type, rc_fixed_versioninfo *, rc_ver_info *);
111 1.1 christos extern rc_ver_info *append_ver_stringfileinfo (rc_ver_info *, rc_ver_stringtable *);
112 1.1 christos extern rc_ver_stringtable *append_ver_stringtable (rc_ver_stringtable *, const char *, rc_ver_stringinfo *);
113 1.1 christos extern rc_ver_info *append_ver_varfileinfo (rc_ver_info *, const unichar *, rc_ver_varinfo *);
114 1.1 christos extern rc_ver_stringinfo *append_verval (rc_ver_stringinfo *, const unichar *, const unichar *);
115 1.1 christos extern rc_ver_varinfo *append_vertrans (rc_ver_varinfo *, rc_uint_type, rc_uint_type);
116 1.1 christos
117 1.1 christos extern bfd *windres_open_as_binary (const char *, int);
118 1.1 christos extern void windres_add_include_dir (const char *);
119 1.1 christos
120 1.1 christos extern int wr_printcomment (FILE *, const char *, ...);
121 1.1 christos extern int wr_print (FILE *, const char *, ...);
122 1.1 christos #define wr_print_flush(FP) wr_print ((FP),NULL)
123