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