xref: /netbsd-src/external/gpl3/binutils.old/dist/binutils/windres.h (revision e992f068c547fd6e84b3f104dc2340adcc955732)
175fd0b74Schristos /* windres.h -- header file for windres program.
2*e992f068Schristos    Copyright (C) 1997-2022 Free Software Foundation, Inc.
375fd0b74Schristos    Written by Ian Lance Taylor, Cygnus Support.
475fd0b74Schristos    Rewritten by Kai Tietz, Onevision.
575fd0b74Schristos 
675fd0b74Schristos    This file is part of GNU Binutils.
775fd0b74Schristos 
875fd0b74Schristos    This program is free software; you can redistribute it and/or modify
975fd0b74Schristos    it under the terms of the GNU General Public License as published by
1075fd0b74Schristos    the Free Software Foundation; either version 3 of the License, or
1175fd0b74Schristos    (at your option) any later version.
1275fd0b74Schristos 
1375fd0b74Schristos    This program is distributed in the hope that it will be useful,
1475fd0b74Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
1575fd0b74Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1675fd0b74Schristos    GNU General Public License for more details.
1775fd0b74Schristos 
1875fd0b74Schristos    You should have received a copy of the GNU General Public License
1975fd0b74Schristos    along with this program; if not, write to the Free Software
2075fd0b74Schristos    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
2175fd0b74Schristos    02110-1301, USA.  */
2275fd0b74Schristos 
2375fd0b74Schristos #include "ansidecl.h"
2475fd0b74Schristos 
2575fd0b74Schristos /* This is the header file for the windres program.  It defines
2675fd0b74Schristos    structures and declares functions used within the program.  */
2775fd0b74Schristos 
2875fd0b74Schristos #include "winduni.h"
2975fd0b74Schristos #include "windint.h"
3075fd0b74Schristos 
3175fd0b74Schristos extern int verbose;
3275fd0b74Schristos 
3375fd0b74Schristos /* Function declarations.  */
3475fd0b74Schristos 
3575fd0b74Schristos extern rc_res_directory *read_rc_file (const char *, const char *, const char *, int, int);
3675fd0b74Schristos extern rc_res_directory *read_res_file (const char *);
3775fd0b74Schristos extern rc_res_directory *read_coff_rsrc (const char *, const char *);
3875fd0b74Schristos extern void write_rc_file (const char *, const rc_res_directory *);
3975fd0b74Schristos extern void write_res_file (const char *, const rc_res_directory *);
4075fd0b74Schristos extern void write_coff_file (const char *, const char *, const rc_res_directory *);
4175fd0b74Schristos 
4275fd0b74Schristos extern rc_res_resource *bin_to_res (windres_bfd *, rc_res_id, const bfd_byte *,
4375fd0b74Schristos 				    rc_uint_type);
4475fd0b74Schristos extern rc_uint_type res_to_bin (windres_bfd *, rc_uint_type, const rc_res_resource *);
4575fd0b74Schristos 
4675fd0b74Schristos extern FILE *open_file_search (const char *, const char *, const char *, char **);
4775fd0b74Schristos 
4875fd0b74Schristos extern void *res_alloc (rc_uint_type);
4975fd0b74Schristos extern void *reswr_alloc (rc_uint_type);
5075fd0b74Schristos 
5175fd0b74Schristos /* Resource ID handling.  */
5275fd0b74Schristos 
5375fd0b74Schristos extern int res_id_cmp (rc_res_id, rc_res_id);
5475fd0b74Schristos extern void res_id_print (FILE *, rc_res_id, int);
5575fd0b74Schristos extern void res_ids_print (FILE *, int, const rc_res_id *);
5675fd0b74Schristos extern void res_string_to_id (rc_res_id *, const char *);
5775fd0b74Schristos extern void res_unistring_to_id (rc_res_id *, const unichar *);
5875fd0b74Schristos 
5975fd0b74Schristos /* Manipulation of the resource tree.  */
6075fd0b74Schristos 
6175fd0b74Schristos extern rc_res_resource *define_resource (rc_res_directory **, int, const rc_res_id *,
6275fd0b74Schristos 					 int);
6375fd0b74Schristos extern rc_res_resource *define_standard_resource (rc_res_directory **, int, rc_res_id,
6475fd0b74Schristos 						  rc_uint_type, int);
6575fd0b74Schristos 
6675fd0b74Schristos extern int extended_dialog (const rc_dialog *);
6775fd0b74Schristos extern int extended_menu (const rc_menu *);
6875fd0b74Schristos 
6975fd0b74Schristos /* Communication between the rc file support and the parser and lexer.  */
7075fd0b74Schristos 
7175fd0b74Schristos extern int yydebug;
7275fd0b74Schristos extern char *rc_filename;
7375fd0b74Schristos extern int rc_lineno;
7475fd0b74Schristos 
7575fd0b74Schristos extern int yyparse (void);
7675fd0b74Schristos extern int yylex (void);
7775fd0b74Schristos extern void yyerror (const char *);
7875fd0b74Schristos extern void rcparse_warning (const char *);
7975fd0b74Schristos extern void rcparse_set_language (int);
8075fd0b74Schristos extern void rcparse_discard_strings (void);
8175fd0b74Schristos extern void rcparse_rcdata (void);
8275fd0b74Schristos extern void rcparse_normal (void);
8375fd0b74Schristos 
8475fd0b74Schristos extern void define_accelerator (rc_res_id, const rc_res_res_info *, rc_accelerator *);
8575fd0b74Schristos extern void define_bitmap (rc_res_id, const rc_res_res_info *, const char *);
8675fd0b74Schristos extern void define_cursor (rc_res_id, const rc_res_res_info *, const char *);
8775fd0b74Schristos extern void define_dialog (rc_res_id, const rc_res_res_info *, const rc_dialog *);
8875fd0b74Schristos extern rc_dialog_control *define_control (const rc_res_id, rc_uint_type, rc_uint_type,
8975fd0b74Schristos 					  rc_uint_type, rc_uint_type, rc_uint_type,
9075fd0b74Schristos 					  const rc_res_id, rc_uint_type, rc_uint_type);
9175fd0b74Schristos extern rc_dialog_control *define_icon_control (rc_res_id, rc_uint_type, rc_uint_type,
9275fd0b74Schristos 					       rc_uint_type, rc_uint_type, rc_uint_type,
9375fd0b74Schristos 					       rc_uint_type, rc_rcdata_item *,
9475fd0b74Schristos 					       rc_dialog_ex *);
9575fd0b74Schristos extern void define_font (rc_res_id, const rc_res_res_info *, const char *);
9675fd0b74Schristos extern void define_icon (rc_res_id, const rc_res_res_info *, const char *);
9775fd0b74Schristos extern void define_menu (rc_res_id, const rc_res_res_info *, rc_menuitem *);
9875fd0b74Schristos extern rc_menuitem *define_menuitem (const unichar *, rc_uint_type, rc_uint_type,
9975fd0b74Schristos 				     rc_uint_type, rc_uint_type, rc_menuitem *);
10075fd0b74Schristos extern void define_messagetable (rc_res_id, const rc_res_res_info *, const char *);
10175fd0b74Schristos extern void define_rcdata (rc_res_id, const rc_res_res_info *, rc_rcdata_item *);
10275fd0b74Schristos extern void define_rcdata_file  (rc_res_id, const rc_res_res_info *, const char *);
10375fd0b74Schristos extern rc_rcdata_item *define_rcdata_string (const char *, rc_uint_type);
10475fd0b74Schristos extern rc_rcdata_item *define_rcdata_unistring (const unichar *, rc_uint_type);
10575fd0b74Schristos extern rc_rcdata_item *define_rcdata_number (rc_uint_type, int);
10675fd0b74Schristos extern void define_stringtable (const rc_res_res_info *, rc_uint_type, const unichar *, int);
10775fd0b74Schristos extern void define_user_data (rc_res_id, rc_res_id, const rc_res_res_info *, rc_rcdata_item *);
10875fd0b74Schristos extern void define_toolbar (rc_res_id, rc_res_res_info *, rc_uint_type ,rc_uint_type ,rc_toolbar_item *);
10975fd0b74Schristos extern void define_user_file (rc_res_id, rc_res_id, const rc_res_res_info *, const char *);
11075fd0b74Schristos extern void define_versioninfo (rc_res_id, rc_uint_type, rc_fixed_versioninfo *, rc_ver_info *);
11175fd0b74Schristos extern rc_ver_info *append_ver_stringfileinfo (rc_ver_info *, rc_ver_stringtable *);
11275fd0b74Schristos extern rc_ver_stringtable *append_ver_stringtable (rc_ver_stringtable *, const char *, rc_ver_stringinfo *);
11375fd0b74Schristos extern rc_ver_info *append_ver_varfileinfo (rc_ver_info *, const unichar *, rc_ver_varinfo *);
11475fd0b74Schristos extern rc_ver_stringinfo *append_verval (rc_ver_stringinfo *, const unichar *, const unichar *);
11575fd0b74Schristos extern rc_ver_varinfo *append_vertrans (rc_ver_varinfo *, rc_uint_type, rc_uint_type);
11675fd0b74Schristos 
11775fd0b74Schristos extern bfd *windres_open_as_binary (const char *, int);
11875fd0b74Schristos extern void windres_add_include_dir (const char *);
11975fd0b74Schristos 
12075fd0b74Schristos extern int wr_printcomment (FILE *, const char *, ...);
12175fd0b74Schristos extern int wr_print (FILE *, const char *, ...);
12275fd0b74Schristos #define wr_print_flush(FP)  wr_print ((FP),NULL)
123