windres.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 854 行 · 第 1/2 页

H
854
字号
/* windres.h -- header file for windres program.   Copyright 1997, 1998, 2000 Free Software Foundation, Inc.   Written by Ian Lance Taylor, Cygnus Support.   This file is part of GNU Binutils.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program 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 General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA   02111-1307, USA.  */#include <ansidecl.h>/* This is the header file for the windres program.  It defines   structures and declares functions used within the program.  */#include "winduni.h"/* We represent resources internally as a tree, similar to the tree   used in the .rsrc section of a COFF file.  The root is a   res_directory structure.  */struct res_directory{  /* Resource flags.  According to the MS docs, this is currently     always zero.  */  unsigned long characteristics;  /* Time/date stamp.  */  unsigned long time;  /* Major version number.  */  unsigned short major;  /* Minor version number.  */  unsigned short minor;  /* Directory entries.  */  struct res_entry *entries;};/* A resource ID is stored in a res_id structure.  */struct res_id{  /* Non-zero if this entry has a name rather than an ID.  */  unsigned int named : 1;  union  {    /* If the named field is non-zero, this is the name.  */    struct    {      /* Length of the name.  */      int length;      /* Pointer to the name, which is a Unicode string.  */      unichar *name;    } n;    /* If the named field is zero, this is the ID.  */    unsigned long id;  } u;};/* Each entry in the tree is a res_entry structure.  We mix   directories and resources because in a COFF file all entries in a   directory are sorted together, whether the entries are   subdirectories or resources.  */struct res_entry{  /* Next entry.  */  struct res_entry *next;  /* Resource ID.  */  struct res_id id;  /* Non-zero if this entry is a subdirectory rather than a leaf.  */  unsigned int subdir : 1;  union  {    /* If the subdir field is non-zero, this is a pointer to the       subdirectory.  */    struct res_directory *dir;    /* If the subdir field is zero, this is a pointer to the resource       data.  */    struct res_resource *res;  } u;};/* Types of resources.  */enum res_type{  RES_TYPE_UNINITIALIZED,  RES_TYPE_ACCELERATOR,  RES_TYPE_BITMAP,  RES_TYPE_CURSOR,  RES_TYPE_GROUP_CURSOR,  RES_TYPE_DIALOG,  RES_TYPE_FONT,  RES_TYPE_FONTDIR,  RES_TYPE_ICON,  RES_TYPE_GROUP_ICON,  RES_TYPE_MENU,  RES_TYPE_MESSAGETABLE,  RES_TYPE_RCDATA,  RES_TYPE_STRINGTABLE,  RES_TYPE_USERDATA,  RES_TYPE_VERSIONINFO};/* A res file and a COFF file store information differently.  The   res_info structures holds data which in a res file is stored with   each resource, but in a COFF file is stored elsewhere.  */struct res_res_info{  /* Language.  In a COFF file, the third level of the directory is     keyed by the language, so the language of a resource is defined     by its location in the resource tree.  */  unsigned short language;  /* Characteristics of the resource.  Entirely user defined.  In a     COFF file, the res_directory structure has a characteristics     field, but I don't know if it's related to the one in the res     file.  */  unsigned long characteristics;  /* Version of the resource.  Entirely user defined.  In a COFF file,     the res_directory structure has a characteristics field, but I     don't know if it's related to the one in the res file.  */  unsigned long version;  /* Memory flags.  This is a combination of the MEMFLAG values     defined below.  Most of these values are historical, and are not     meaningful for win32.  I don't think there is any way to store     this information in a COFF file.  */  unsigned short memflags;};/* Each resource in a COFF file has some information which can does   not appear in a res file.  */struct res_coff_info{  /* The code page used for the data.  I don't really know what this     should be.  */  unsigned long codepage;  /* A resource entry in a COFF file has a reserved field, which we     record here when reading a COFF file.  When writing a COFF file,     we set this field to zero.  */  unsigned long reserved;};/* Resource data is stored in a res_resource structure.  */struct res_resource{  /* The type of resource.  */  enum res_type type;  /* The data for the resource.  */  union  {    struct    {      unsigned long length;      const unsigned char *data;    } data;    struct accelerator *acc;    struct cursor *cursor;    struct group_cursor *group_cursor;    struct dialog *dialog;    struct fontdir *fontdir;    struct group_icon *group_icon;    struct menu *menu;    struct rcdata_item *rcdata;    struct stringtable *stringtable;    struct rcdata_item *userdata;    struct versioninfo *versioninfo;  } u;  /* Information from a res file.  */  struct res_res_info res_info;  /* Information from a COFF file.  */  struct res_coff_info coff_info;};/* Memory flags in the memflags field of a struct res_resource.  */#define MEMFLAG_MOVEABLE	0x10#define MEMFLAG_PURE		0x20#define MEMFLAG_PRELOAD		0x40#define MEMFLAG_DISCARDABLE	0x1000/* Standard resource type codes.  These are used in the ID field of a   res_entry structure.  */#define RT_CURSOR		 1#define RT_BITMAP		 2#define RT_ICON			 3#define RT_MENU			 4#define RT_DIALOG		 5#define RT_STRING		 6#define RT_FONTDIR		 7#define RT_FONT			 8#define RT_ACCELERATOR		 9#define RT_RCDATA		10#define RT_MESSAGETABLE		11#define RT_GROUP_CURSOR		12#define RT_GROUP_ICON		14#define RT_VERSION		16#define RT_DLGINCLUDE		17#define RT_PLUGPLAY		19#define RT_VXD			20#define RT_ANICURSOR		21#define RT_ANIICON		22/* An accelerator resource is a linked list of these structures.  */struct accelerator{  /* Next accelerator.  */  struct accelerator *next;  /* Flags.  A combination of the ACC values defined below.  */  unsigned short flags;  /* Key value.  */  unsigned short key;  /* Resource ID.  */  unsigned short id;};/* Accelerator flags in the flags field of a struct accelerator.   These are the same values that appear in a res file.  I hope.  */#define ACC_VIRTKEY	0x01#define ACC_NOINVERT	0x02#define ACC_SHIFT	0x04#define ACC_CONTROL	0x08#define ACC_ALT		0x10#define ACC_LAST	0x80/* A cursor resource.  */struct cursor{  /* X coordinate of hotspot.  */  short xhotspot;  /* Y coordinate of hotspot.  */  short yhotspot;  /* Length of bitmap data.  */  unsigned long length;  /* Data.  */  const unsigned char *data;};/* A group_cursor resource is a list of group_cursor structures.  */struct group_cursor{  /* Next cursor in group.  */  struct group_cursor *next;  /* Width.  */  unsigned short width;  /* Height.  */  unsigned short height;  /* Planes.  */  unsigned short planes;  /* Bits per pixel.  */  unsigned short bits;  /* Number of bytes in cursor resource.  */  unsigned long bytes;  /* Index of cursor resource.  */  unsigned short index;};/* A dialog resource.  */struct dialog{  /* Basic window style.  */  unsigned long style;  /* Extended window style.  */  unsigned long exstyle;  /* X coordinate.  */  unsigned short x;  /* Y coordinate.  */  unsigned short y;  /* Width.  */  unsigned short width;  /* Height.  */  unsigned short height;  /* Menu name.  */  struct res_id menu;  /* Class name.  */  struct res_id class;  /* Caption.  */  unichar *caption;  /* Font point size.  */  unsigned short pointsize;  /* Font name.  */  unichar *font;  /* Extended information for a dialogex.  */  struct dialog_ex *ex;  /* Controls.  */  struct dialog_control *controls;};/* An extended dialog has additional information.  */struct dialog_ex{  /* Help ID.  */  unsigned long help;  /* Font weight.  */  unsigned short weight;  /* Whether the font is italic.  */  unsigned short italic;};/* Window style flags, from the winsup Defines.h header file.  These   can appear in the style field of a struct dialog or a struct   dialog_control.  */#define CW_USEDEFAULT	(0x80000000)#define WS_BORDER	(0x800000L)#define WS_CAPTION	(0xc00000L)#define WS_CHILD	(0x40000000L)#define WS_CHILDWINDOW	(0x40000000L)#define WS_CLIPCHILDREN	(0x2000000L)#define WS_CLIPSIBLINGS	(0x4000000L)#define WS_DISABLED	(0x8000000L)#define WS_DLGFRAME	(0x400000L)#define WS_GROUP	(0x20000L)#define WS_HSCROLL	(0x100000L)#define WS_ICONIC	(0x20000000L)#define WS_MAXIMIZE	(0x1000000L)#define WS_MAXIMIZEBOX	(0x10000L)#define WS_MINIMIZE	(0x20000000L)#define WS_MINIMIZEBOX	(0x20000L)#define WS_OVERLAPPED	(0L)#define WS_OVERLAPPEDWINDOW	(0xcf0000L)#define WS_POPUP	(0x80000000L)#define WS_POPUPWINDOW	(0x80880000L)#define WS_SIZEBOX	(0x40000L)#define WS_SYSMENU	(0x80000L)#define WS_TABSTOP	(0x10000L)#define WS_THICKFRAME	(0x40000L)#define WS_TILED	(0L)#define WS_TILEDWINDOW	(0xcf0000L)#define WS_VISIBLE	(0x10000000L)#define WS_VSCROLL	(0x200000L)#define MDIS_ALLCHILDSTYLES	(0x1)#define BS_3STATE	(0x5L)#define BS_AUTO3STATE	(0x6L)#define BS_AUTOCHECKBOX	(0x3L)#define BS_AUTORADIOBUTTON	(0x9L)#define BS_BITMAP	(0x80L)#define BS_BOTTOM	(0x800L)#define BS_CENTER	(0x300L)#define BS_CHECKBOX	(0x2L)#define BS_DEFPUSHBUTTON	(0x1L)#define BS_GROUPBOX	(0x7L)#define BS_ICON	(0x40L)#define BS_LEFT	(0x100L)#define BS_LEFTTEXT	(0x20L)#define BS_MULTILINE	(0x2000L)#define BS_NOTIFY	(0x4000L)#define BS_OWNERDRAW	(0xbL)#define BS_PUSHBOX	(0xcL)		/* FIXME!  What should this be?  */#define BS_PUSHBUTTON	(0L)#define BS_PUSHLIKE	(0x1000L)#define BS_RADIOBUTTON	(0x4L)#define BS_RIGHT	(0x200L)#define BS_RIGHTBUTTON	(0x20L)#define BS_TEXT	(0L)#define BS_TOP	(0x400L)#define BS_USERBUTTON	(0x8L)#define BS_VCENTER	(0xc00L)#define CBS_AUTOHSCROLL	(0x40L)#define CBS_DISABLENOSCROLL	(0x800L)#define CBS_DROPDOWN	(0x2L)#define CBS_DROPDOWNLIST	(0x3L)#define CBS_HASSTRINGS	(0x200L)#define CBS_LOWERCASE	(0x4000L)#define CBS_NOINTEGRALHEIGHT	(0x400L)#define CBS_OEMCONVERT	(0x80L)#define CBS_OWNERDRAWFIXED	(0x10L)#define CBS_OWNERDRAWVARIABLE	(0x20L)#define CBS_SIMPLE	(0x1L)#define CBS_SORT	(0x100L)#define CBS_UPPERCASE	(0x2000L)#define ES_AUTOHSCROLL	(0x80L)#define ES_AUTOVSCROLL	(0x40L)#define ES_CENTER	(0x1L)#define ES_LEFT	(0L)#define ES_LOWERCASE	(0x10L)#define ES_MULTILINE	(0x4L)#define ES_NOHIDESEL	(0x100L)#define ES_NUMBER	(0x2000L)#define ES_OEMCONVERT	(0x400L)#define ES_PASSWORD	(0x20L)#define ES_READONLY	(0x800L)#define ES_RIGHT	(0x2L)#define ES_UPPERCASE	(0x8L)#define ES_WANTRETURN	(0x1000L)#define LBS_DISABLENOSCROLL	(0x1000L)#define LBS_EXTENDEDSEL	(0x800L)#define LBS_HASSTRINGS	(0x40L)#define LBS_MULTICOLUMN	(0x200L)#define LBS_MULTIPLESEL	(0x8L)#define LBS_NODATA	(0x2000L)#define LBS_NOINTEGRALHEIGHT	(0x100L)#define LBS_NOREDRAW	(0x4L)#define LBS_NOSEL	(0x4000L)#define LBS_NOTIFY	(0x1L)#define LBS_OWNERDRAWFIXED	(0x10L)#define LBS_OWNERDRAWVARIABLE	(0x20L)#define LBS_SORT	(0x2L)#define LBS_STANDARD	(0xa00003L)#define LBS_USETABSTOPS	(0x80L)#define LBS_WANTKEYBOARDINPUT	(0x400L)#define SBS_BOTTOMALIGN	(0x4L)#define SBS_HORZ	(0L)#define SBS_LEFTALIGN	(0x2L)#define SBS_RIGHTALIGN	(0x4L)#define SBS_SIZEBOX	(0x8L)#define SBS_SIZEBOXBOTTOMRIGHTALIGN	(0x4L)#define SBS_SIZEBOXTOPLEFTALIGN	(0x2L)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?