1995-02-16 17:47:09 +01:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* Copyright Martin von Loewis, 1994
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* resource types */
|
|
|
|
enum rt {acc,bmp,cur,dlg,fnt,ico,men,rdt,str};
|
|
|
|
/* generic resource
|
|
|
|
Bytes can be inserted at arbitrary positions, the data field (res)
|
|
|
|
grows as required. As the dialog header contains the number of
|
|
|
|
controls, this number is generated in num_entries. If n_type if 0,
|
|
|
|
the resource name is i_name, and s_name otherwise. Top level
|
|
|
|
resources are linked via next. All gen_res objects are linked via
|
|
|
|
g_prev, g_next for debugging purposes. space is the length of res,
|
|
|
|
size is the used part of res.
|
|
|
|
As most bison rules are right recursive, new items are usually
|
|
|
|
inserted at the beginning
|
|
|
|
*/
|
|
|
|
typedef struct gen_res{
|
|
|
|
int size,space;
|
|
|
|
int num_entries;
|
|
|
|
enum rt type;
|
|
|
|
union{
|
|
|
|
int i_name;
|
|
|
|
char* s_name;
|
|
|
|
}n;
|
|
|
|
int n_type; /*0 - integer, 1 = string*/
|
|
|
|
struct gen_res *next;
|
|
|
|
struct gen_res *g_prev,*g_next;
|
|
|
|
unsigned char res[0];
|
|
|
|
} gen_res;
|
|
|
|
|
|
|
|
/* control/dialog style. or collects styles, and collects NOT styles */
|
|
|
|
typedef struct rc_style{
|
|
|
|
int and, or;
|
|
|
|
}rc_style;
|
|
|
|
|
|
|
|
/* create a new resource */
|
|
|
|
gen_res *new_res(void);
|
|
|
|
/* double the space of the resource */
|
|
|
|
gen_res* grow(gen_res*);
|
|
|
|
/* insert byte array at the beginning, increase count */
|
|
|
|
gen_res* insert_at_beginning(gen_res*,char*,int);
|
|
|
|
/* insert byte array at offset */
|
|
|
|
gen_res* insert_bytes(gen_res*,char*,int,int);
|
|
|
|
/* delete bytes at offset */
|
|
|
|
gen_res* delete_bytes(gen_res*,int,int);
|
|
|
|
/* create a new style */
|
|
|
|
rc_style* new_style(void);
|
|
|
|
/* convert \t to tab etc. */
|
|
|
|
char* parse_c_string(char*);
|
|
|
|
/* get the resources type, convert dlg to "DIALOG" and so on */
|
|
|
|
char* get_typename(gen_res*);
|
|
|
|
|
|
|
|
gen_res* add_accelerator(int,int,int,gen_res*);
|
|
|
|
gen_res* add_string_accelerator(char*,int,int,gen_res*);
|
|
|
|
gen_res* add_ascii_accelerator(int,int,int,gen_res*);
|
|
|
|
gen_res* add_vk_accelerator(int,int,int,gen_res*);
|
|
|
|
|
|
|
|
gen_res* new_dialog(void);
|
|
|
|
gen_res* dialog_style(rc_style*,gen_res*);
|
|
|
|
int dialog_get_menu(gen_res*);
|
|
|
|
int dialog_get_class(gen_res*);
|
|
|
|
int dialog_get_caption(gen_res*);
|
|
|
|
int dialog_get_fontsize(gen_res*);
|
|
|
|
gen_res* dialog_caption(char*,gen_res*);
|
|
|
|
gen_res* dialog_font(short,char*,gen_res*);
|
|
|
|
gen_res* dialog_class(char*,gen_res*);
|
|
|
|
gen_res* dialog_menu(char*,gen_res*);
|
|
|
|
gen_res* create_control_desc(int,int,int,int,int,rc_style*);
|
|
|
|
gen_res* label_control_desc(char*,gen_res*);
|
|
|
|
gen_res* create_generic_control(char*,int,char*,rc_style*,int,int,int,int);
|
|
|
|
gen_res* add_control(int,int,gen_res*,gen_res*);
|
|
|
|
gen_res* add_icon(char*,int,int,int,gen_res*,gen_res*);
|
|
|
|
gen_res* add_generic_control(gen_res*,gen_res*);
|
|
|
|
gen_res* make_dialog(gen_res*,int,int,int,int,gen_res*);
|
|
|
|
|
|
|
|
gen_res *hex_to_raw(char*,gen_res*);
|
Release 951003
Sun Oct 1 15:48:34 1995 Alexandre Julliard <julliard@sunsite.unc>
* [controls/menu.c]
Fixed GetMenuString() for non-string items.
* [debugger/*.c]
First attempt to check validity of pointers before memory
accesses. For now only segmented pointers are checked.
* [debugger/dbg.y] [memory/ldt.c]
Added possibility to dump only one segment with 'info segment'.
* [include/bitmaps/ocr_*]
Added all OEM cursors as XPM bitmaps.
* [include/cursoricon.h] [objects/cursoricon.c]
Rewrote all cursor and icon management to use the same memory
layout as Windows, and to factor common code between icons and
cursors. Implemented icon directory lookup to find the best
matching icon (i.e. the color one).
Implemented CopyCursor() and DumpIcon().
* [loader/module.c]
For disabled built-in modules, we now try to load the Windows DLL
first, and if this fails we fall back to using the built-in module
anyway.
* [memory/global.c]
Fixed GlobalHandle() to return the correct selector in the high
word even if we are passed a handle in the first place.
* [miscemu/instr.c]
Take into account the size of the operand and of the stack segment
when incrementing the stack pointer.
Avoid referencing FS_reg and GS_reg on *BSD.
* [objects/dib.c]
All DIB functions now accept a BITMAPCOREHEADER format bitmap.
Monochrome DIBs are created as monochrome bitmap iff they are
black and white.
* [objects/oembitmap.c]
Added support for OEM cursors, changed OBM_LoadIcon to use the new
icon memory layout.
* [rc/sysres_Fr.rc]
Added French [Fr] language support.
* [win32/environment.c]
Fixed GetCommandLineA() to use current PDB.
* [windows/event.c] [windows/winpos.c]
Simulate a mouse motion event upon SetWindowPos() to force the
cursor to be set correctly.
Sat Sep 30 17:49:32 Cameron Heide (heide@ee.ualberta.ca)
* [win32/*]
New Win32 kernel functions: GetACP, GetCPInfo,
GetEnvironmentVariableA, GetFileType, GetLastError, GetOEMCP,
GetStartupInfoA, GetTimeZoneInformation, SetEnvironmentVariable,
SetFilePointer, SetLastError, VirtualAlloc, VirtualFree,
WriteFile. Completed implementations of GetCommandLineA.
* [include/kernel32.h]
New file.
* [loader/main.c]
Call initialization function for Win32 data (doesn't currently do
anything).
* [misc/main.c]
Implemented GetEnvironmentVariableA, SetEnvironmentVariableA.
Sat Sep 30 00:26:56 1995 Niels de Carpentier <niels@cindy.et.tudelft.nl>
* [windows/winpos.c][miscemu/emulate.c][loader/module.c]
[misc/commdlg.c]
Misc. bug fixes
Fri Sep 29 16:16:13 1995 Jim Peterson <jspeter@birch.ee.vt.edu>
* [*/*]
For Winelib, explicit casts have been placed where warnings were
usually generated.
printf formats which give the format for printing a handle as
"%04x" or something similar have been changed to use the NPFMT
macro defined in include/wintypes.h. Some times, explicit casts
were also necessary.
Parameter, field, and variable declarations have been made more
exact, such as converting 'WORD wParam' to 'WPARAM wParam' or
'WORD hFont' to 'HFONT hFont'.
Any call of the form GetWindowWord(hwnd,GWW_HINSTANCE) has been
replaced with a call to WIN_GetWindowInstance(hwnd).
* [controls/combo.c]
Added WINELIB32 support in CLBoxGetCombo().
* [include/dialog.h]
Commented out the '#ifndef WINELIB' around the '#pragma pack(1)'.
winelib needs the packing as well (e.g. when accessing resources
like sysres_DIALOG_SHELL_ABOUT_MSGBOX).
* [include/windows.h]
Got rid of the F[a-k] macros, which were cluttering up the global
namespace.
* [include/windows.h] [windows/defwnd.c]
Added Win32 messages WM_CTLCOLOR*.
* [include/wintypes.h]
Put in preprocessor '#define WINELIB32' if appropriate and changed
the types of some typedefs (WPARAM, HANDLE) based on this.
* [loader/module.c] [toolkit/miscstubs.c]
Added #ifdef'd portion in LoadModule to handle loading a WINElib
module (already loaded, just init values). '#ifdef'ed out the
definition for GetWndProcEntry16 and added a new version to
toolkit/miscstubs.c.
* [misc/shell.c]
Adjusted the lengths of AppName and AppMisc from 512,512 to 128,906.
Same amount of total storage, but much more reasonable. Also, changed
calls to strcpy() in ShellAbout() to calls to strncpy() instead.
This was a difficult bug to track down, but the AppMisc field was
being initialized with the contributers text, which was much larger
than 512 characters.
* [toolkit/atom.c]
New file for atom-handling functions. Copied from memory/atom.c and
then heavily modified. Right now, it's just a linked list of atoms.
Consider it as a hash table with just one entry. It's easily changed
later.
* [toolkit/heap.c]
Commented out the heap functions with a "#ifdef WINELIB16" and put in
a Win32 version (which is basically a modified copy).
* [toolkit/sup.c] [toolkit/miscstubs.c]
Moved the stuff I put in toolkit/sup.c into toolkit/miscstubs.c and
added quite a few more stubs.
* [toolkit/winmain.c]
Rearranged startup code in _WinMain. I think this will work.
* [toolkit/Makefile.in]
Added targets for 'hello' and 'hello2' in case anyone cares to try
out the sample programs.
Wed Sep 27 23:13:43 1995 Anand Kumria <akumria@ozemail.com.au>
* [miscemu/int2f.c] [miscemu/vxd.c] [if1632/winprocs.spec]
First attempt at support for some VxDs. Comm, Shell and Pagefile.
Tue Sep 26 21:34:45 1995 Hans de Graaff <graaff@twi72.twi.tudelft.nl>
* [misc/dos_fs.c]
DOS_SimplifyPath: Also remove "/./" from path. (Happens when
starting applications like 'wine ./excel.exe')
Sat Sep 23 23:32:40 1995 Morten Welinder <terra@diku.dk>
* [configure.in]
Avoid relative path for wine.ini.
* [rc/sysres_Da.rc]
Support for Danish [Da] language.
* [misc/main.c] [miscemu/cpu.c]
Return the processor we're running on correctly.
* [miscemu/int2f.c]
Minor stuff in int 0x2f, function 0x16.
Sat Sep 23 1995 17:58:04 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [misc/shell.c] [misc/main.c]
Implement saving and loading of the registry database (needed for
OLE). Very experimental. Fixed ShellExecute().
* [miscemu/int21.c]
EEXIST is not a critical error condition for mkdir().
Fri Sep 22 01:33:34 1995 Alex Korobka <alex@phm6.pharm.sunysb.edu>
* [include/shell.h] [misc/shell.c]
Implemented 4 drag/drop functions with documented functionality.
* [multimedia/time.c]
"Fixed" MMSysTimeCallback kludge so Excel5 loads up without crashing.
* [*/*]
Added new files, more message definitions, structures, debug info,
etc. Rewrote message logging functions to produce output similar
to WinSight. Check out -debugmsg +message option.
* [misc/file.c]
Fixed GetDriveType return value.
* [windows/message.c]
Hooks are invoked in normal order.
* [miscemu/*]
Added some functions and interrupts.
* [misc/shell.c]
Implemented Drag... functions.
Thu Sep 21 23:50:12 1995 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [rc/sysres_Fi.rc] [rc/sysres.rc]
First attempt at Finnish [Fi] language support.
1995-10-03 18:06:08 +01:00
|
|
|
gen_res *int_to_raw(int,gen_res*);
|
|
|
|
gen_res *make_font(gen_res*);
|
|
|
|
gen_res *make_raw(gen_res*);
|
1995-02-16 17:47:09 +01:00
|
|
|
gen_res *make_bitmap(gen_res*);
|
|
|
|
gen_res *make_icon(gen_res*);
|
|
|
|
gen_res *make_cursor(gen_res*);
|
|
|
|
gen_res *load_file(char*);
|
|
|
|
|
|
|
|
gen_res *add_menuitem(char*,int,int,gen_res*);
|
|
|
|
gen_res *add_popup(char*,short,gen_res*,gen_res*);
|
|
|
|
gen_res *make_menu(gen_res*);
|
|
|
|
|
|
|
|
gen_res *add_resource(gen_res*,gen_res*);
|
|
|
|
|
Release 960309
Fri Mar 8 19:07:18 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [configure.in]
Quote '[' and ']' in the test program for the strength-reduce
bug. This should work much better...
* [files/file.c]
Augmented DOS_FILE structure. Most internal functions now return a
DOS_FILE* instead of a Unix handle.
Added a local file array to replace the PDB list upon startup, to
allow using file I/O functions before the first task is created.
Added FILE_SetDateTime() and FILE_Sync() functions.
* [loader/module.c]
Use the DOS file I/O functions in MODULE_LoadExeHeader().
* [objects/bitblt.c]
Use visible region instead of GC clip region to clip source
area. This fixes the card drawing bug in freecell.
* [objects/region.c]
Fixed CombineRgn() to allow src and dest regions to be the same.
Fri Mar 8 16:32:23 1996 Frans van Dorsselaer <dorssel@rulhm1.leidenuniv.nl>
* [controls/EDIT.TODO]
Updated so it reflects the current status.
* [controls/edit.c]
Implemented internal EDIT_WordBreakProc().
Implemented ES_READONLY.
Implemented WM_LBUTTONDBLCLK to select whole words.
Fixed a lot of types in the function definitions.
Wed Mar 6 19:55:00 1996 Alex Korobka <alex@phm30.pharm.sunysb.edu>
* [debugger/info.c]
Added "walk window" command to walk window list.
* [windows/mdi.c]
Added proper(?) WM_MDISETMENU message handling.
Wed Mar 6 09:27:12 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/callback.c][if1632/relay32.c]
RELAY32_CallWindowProcConvStruct: new function.
* [win32/struct32.c][win32/Makefile.in][win32/param.c][win32/user32.c]
struct32.c: new file. Moved all structure conversions into that file
PARAM32_POINT32to16,MSG16to32,USER32_RECT32to16:
renamed to STRUCT32_POINT32to16, ...
WIN32_POINT,WIN32_MSG,WIN32_RECT,WIN32_PAINTSTRUCT: renamed to
POINT32, ...
New conversion functions for NCCALCSIZE_PARAMS, WINDOWPOS,
CREATESTRUCT.
* [include/windows.h][misc/exec.c]
WINHELP, MULTIKEYHELP, HELPWININFO: new structures
WinHelp: Reimplemented. Thanks to Peter Balch
(100710.2566@compuserve.com) for his valuable research.
* [win32/winprocs.c]
WIN32_CallWindowProcTo16: new function, call in
USER32_DefWindowProcA,...
Mon Mar 4 23:22:40 1996 Jim Peterson <jspeter@birch.ee.vt.edu>
* [include/wintypes.h]
Added "#define __export".
* [objects/bitblt.c]
Put in a few hacks to make bitblt-ing work when upside-down and/or
mirrored. BITBLT_StretchImage should really be checked over
thoroughly.
* [programs/progman/main.c]
Added "#include <resource.h>" for definition of HAVE_WINE_CONSTRUCTOR.
* [rc/parser.h] [rc/parser.l] [rc/parser.y] [rc/winerc.c]
Eliminated shift/reduce conflict in style definition.
Added crude error message support: "stdin:%d: parse error before '%s'".
Implemented string table support to the best of my ability (it works
with LoadString() calls).
* [windows/nonclient.c]
Fixed bug in NC_DoSizeMove() that made system menu pop up when title
bar of non-iconized window was clicked (checked for iconization).
Mon Mar 04 20:55:19 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [if1632/lzexpand.spec] [if1632/relay.c]
[include/lzexpand.h][misc/lzexpand.c]
LZEXPAND.DLL added.
Sun Mar 03 18:10:22 1996 Albrecht Kleine <kleine@ak.sax.de>
* [windows/win.c]
Prevent usage of invalid HWNDs in WIN_EnumChildWin(),
this prevents too early termination of EnumChildWindows().
1996-03-09 17:12:43 +01:00
|
|
|
void add_str_tbl_elm(int,char*);
|
|
|
|
|
1995-02-16 17:47:09 +01:00
|
|
|
void create_output(gen_res*);
|
|
|
|
void set_out_file(char*);
|
|
|
|
|
|
|
|
#define CT_BUTTON 0x80
|
|
|
|
#define CT_EDIT 0x81
|
|
|
|
#define CT_STATIC 0x82
|
|
|
|
#define CT_LISTBOX 0x83
|
|
|
|
#define CT_SCROLLBAR 0x84
|
|
|
|
#define CT_COMBOBOX 0x85
|
|
|
|
|
|
|
|
extern int verbose;
|
|
|
|
|
|
|
|
#ifdef __sun__
|
|
|
|
#define strtoul strtol
|
|
|
|
#endif
|
|
|
|
|