Commit ff8331ea authored by Alexandre Julliard's avatar Alexandre Julliard

Release 950918

Sun Sep 17 16:47:49 1995 Alexandre Julliard <julliard@sunsite.unc.edu> * [configure.in] [*/Makefile.in] [Make.rules.in] Cleaned up makefiles, added configuration option for Winelib, grouped common make rules in Make.rules.in. * [Configure] Renamed to 'Configure.old'; please use 'configure' instead. * [controls/menu.c] Fixed DestroyMenu() to avoid deleting the same menu twice. More fixes to WM_MENUSELECT, and added WM_INITMENU. * [if1632/relay.c] Fixed wrong register values displayed by RELAY_DebugCall32(). * [memory/local.c] Fixed LocalLock() and LocalUnlock() to increment/decrement the lock count for moveable blocks. * [misc/commdlg.c] [misc/shell.c] [rc/winerc.c] Modified the generated C file so that the resource information (size, etc.) is also exported. Modified common dialogs to use the new informations. * [misc/main.c] [ANNOUNCE] Update the list of contributors. Please let me know if I forgot someone. * [rc/sysres.rc] [rc/sysres_En.rc] Moved English resources to sysres_En.rc. Changed ids from numeric to symbolic for dialogs. * [windows/dialog.c] Modified template parsing to be able to pass segmented pointers to CreateWindow(). * [windows/win.c] CreateWindow() now takes segmented pointers for class and window names. Maxmimize or minimize the window upon creation if the WS_MAXIMIZE or WS_MINIMIZE bits are set. Thu Sep 14 17:19:57 1995 Paul Wilhelm <paul@paul.accessone.com> * [controls/scroll.c] Fixed scroll-bar bugs for non-client windows. Thu Sep 14 14:04:14 MET DST 1995 Jochen Hoenicke <Jochen.Hoenicke@arbi.Informatik.Uni-Oldenburg.de> * [include/cursor.h] [windows/cursor.c] Cursor is not mirrored any more and the hotspot is set right. Wed Sep 13 14:22:31 1995 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de> * [ole.h] Misc small fixes. Mon Sep 4 00:01:23 1995 Jon Tombs <jon@gte.esi.us.es> * [rc/sysres_Es.rc] First attempt at Spanish [Es] language support. Sun Sep 3 13:22:33 1995 Martin von Loewis <loewis@informatik.hu-berlin.de> * [include/alias.h][windows/alias.c][include/relay32.h] New files * [controls/widgets.c] WIDGETS_Init: register alias window procedures * [if1632/callback.c] CallWndProc: Call alias functions if necessary * [if1632/gdi32.spec] GetStockObject, TextOutA: new relays * [misc/user32.c][if1632/user32.spec][misc/Makefile.in][misc/Imakefile] user32.c: new file BeginPaint,CreateWindowExA,DefWindowProcA,DispatchMessage,EndPaint, GetMessageA,RegisterClassA,ShowWindow,UpdateWindow: new relays * [if1632/winprocs32.spec][loader/pe_image.c][loader/module.c] PE_Win32CallToStart: new function MODULE_CreateInstance: removed static attribute LoadModule: Try loading PE image on error 21 PE_LoadModule: new function PE_LoadImage: initialize pe_data with 0 * [include/dlls.h][include/peexe.h] moved pe_data and w_files to peexe.h * [misc/shell.c] ShellAbout: Register AboutWndProc aliases * [miscemu/int21.c] handle 0x440A and 0xDC * [miscemu/int2f.c] handle 0x84 * [objects/dib.c] CreateDIBitmap: complain if BITMAPINFOHEADER is of wrong size * [tools/build.c] include windows.h and relay32.h into generated Win32 relays, don't declare the implementation as int (*)(); limit in WIN32_builtin was off by one * [windows/caret.c] CARET_Initialize: new function, call on strategic places * [windows/messagebox.c] MessageBox: register message box proc aliases * [if1632/advapi32.spec][if1632/comdlg32.spec] New files * [if1632/Makefile.in][if1632/Imakefile][if1632/relay32.c] added new spec files RELAY32_GetBuiltinDLL: perform lookup case insensitive RELAY32_GetEntryPoint: start name search at 0 * [if1632/user.spec][if1632/kernel.spec][if1632/gdi.spec] Added stubs for new Win95 API Sat Sep 2 1995 Martin Roy * [misc/commdlg.c] In WM_INITDIALOG, current filter must reflect lpofn->nFilterIndex. When process IDOK button in FILEDLG_WMCommand(), lpofn->nFilterIndex should be updated to current selection. Thu Aug 31 15:00:00 1995 Ram'on Garc'ia <ramon@ie3.clubs.etsit.upm.es> * [loader/module.c] [loader/ne_image.c] Added support of self-loading modules.
parent b7258bef
This is release 950901 of Wine the MS Windows emulator. This is still a
This is release 950918 of Wine the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work.
Patches should be submitted to "wine-new@amscons.com". Please don't forget
to include a ChangeLog entry. I'll make a new release every other week.
WHAT'S NEW with Wine-950901: (see ChangeLog for details)
- Accesses to BIOS segment 0x40 are trapped and emulated.
- Multimedia improvements.
- IPC can now be disabled at compile-time.
- Documentation for the IPC code.
WHAT'S NEW with Wine-950918: (see ChangeLog for details)
- Support for self-loading modules.
- Win32 support should begin to work again.
- Cursor fixes.
- New configure script should be useable now.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
......@@ -18,11 +18,11 @@ Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites. The sources will be available
from the following locations:
sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950901.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950901.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950901.tar.gz
ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950901.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-950901.tar.gz
sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950918.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950918.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950918.tar.gz
ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950918.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-950918.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
......@@ -36,14 +36,17 @@ reading for new developers.
Wine is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Ross Biro, Erik Bos, Fons Botman, John Brezak,
Andrew Bulhak, John Burton, Paul Falstad, Olaf Flebbe, Peter Galbavy,
Cameron Heide, Jeffrey Hsu, Miguel de Icaza, Alexandre Julliard,
Ramon Garcia, Hans de Graaf, Charles M. Hannum, Cameron Heide,
Jochen Hoenicke, Jeffrey Hsu, Miguel de Icaza, Alexandre Julliard,
Jon Konrath, Scott A. Laird, Martin von Loewis, Kenneth MacDonald,
Peter MacDonald, William Magro, David Metcalfe, Michael Patra,
John Richardson, Johannes Ruscheinski, Thomas Sandford,
Constantine Sapuntzakis, Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey,
William Smith, Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs,
Linus Torvalds, Michael Veksler, Carl Williams, Karl Guenter Wuensch,
Eric Youngdale, and James Youngman.
Peter MacDonald, William Magro, Marcus Meissner, Graham Menhennitt,
David Metcalfe, Michael Patra, John Richardson, Johannes Ruscheinski,
Thomas Sandford, Constantine Sapuntzakis, Daniel Schepler,
Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey, William Smith,
Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs,
Linus Torvalds, Gregory Trubetskoy, Michael Veksler, Morten Welinder,
Jan Willamowius, Carl Williams, Karl Guenter Wuensch, Eric Youngdale,
and James Youngman.
--
Alexandre Julliard
......
----------------------------------------------------------------------
Sun Sep 17 16:47:49 1995 Alexandre Julliard <julliard@sunsite.unc.edu>
* [configure.in] [*/Makefile.in] [Make.rules.in]
Cleaned up makefiles, added configuration option for Winelib,
grouped common make rules in Make.rules.in.
* [Configure]
Renamed to 'Configure.old'; please use 'configure' instead.
* [controls/menu.c]
Fixed DestroyMenu() to avoid deleting the same menu twice.
More fixes to WM_MENUSELECT, and added WM_INITMENU.
* [if1632/relay.c]
Fixed wrong register values displayed by RELAY_DebugCall32().
* [memory/local.c]
Fixed LocalLock() and LocalUnlock() to increment/decrement the
lock count for moveable blocks.
* [misc/commdlg.c] [misc/shell.c] [rc/winerc.c]
Modified the generated C file so that the resource information
(size, etc.) is also exported.
Modified common dialogs to use the new informations.
* [misc/main.c] [ANNOUNCE]
Update the list of contributors. Please let me know if I forgot
someone.
* [rc/sysres.rc] [rc/sysres_En.rc]
Moved English resources to sysres_En.rc.
Changed ids from numeric to symbolic for dialogs.
* [windows/dialog.c]
Modified template parsing to be able to pass segmented pointers to
CreateWindow().
* [windows/win.c]
CreateWindow() now takes segmented pointers for class and window
names.
Maxmimize or minimize the window upon creation if the WS_MAXIMIZE
or WS_MINIMIZE bits are set.
Thu Sep 14 17:19:57 1995 Paul Wilhelm <paul@paul.accessone.com>
* [controls/scroll.c]
Fixed scroll-bar bugs for non-client windows.
Thu Sep 14 14:04:14 MET DST 1995 Jochen Hoenicke <Jochen.Hoenicke@arbi.Informatik.Uni-Oldenburg.de>
* [include/cursor.h] [windows/cursor.c]
Cursor is not mirrored any more and the hotspot is set right.
Wed Sep 13 14:22:31 1995 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [ole.h]
Misc small fixes.
Mon Sep 4 00:01:23 1995 Jon Tombs <jon@gte.esi.us.es>
* [rc/sysres_Es.rc]
First attempt at Spanish [Es] language support.
Sun Sep 3 13:22:33 1995 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [include/alias.h][windows/alias.c][include/relay32.h]
New files
* [controls/widgets.c]
WIDGETS_Init: register alias window procedures
* [if1632/callback.c]
CallWndProc: Call alias functions if necessary
* [if1632/gdi32.spec]
GetStockObject, TextOutA: new relays
* [misc/user32.c][if1632/user32.spec][misc/Makefile.in][misc/Imakefile]
user32.c: new file
BeginPaint,CreateWindowExA,DefWindowProcA,DispatchMessage,EndPaint,
GetMessageA,RegisterClassA,ShowWindow,UpdateWindow: new relays
* [if1632/winprocs32.spec][loader/pe_image.c][loader/module.c]
PE_Win32CallToStart: new function
MODULE_CreateInstance: removed static attribute
LoadModule: Try loading PE image on error 21
PE_LoadModule: new function
PE_LoadImage: initialize pe_data with 0
* [include/dlls.h][include/peexe.h]
moved pe_data and w_files to peexe.h
* [misc/shell.c]
ShellAbout: Register AboutWndProc aliases
* [miscemu/int21.c]
handle 0x440A and 0xDC
* [miscemu/int2f.c]
handle 0x84
* [objects/dib.c]
CreateDIBitmap: complain if BITMAPINFOHEADER is of wrong size
* [tools/build.c]
include windows.h and relay32.h into generated Win32 relays,
don't declare the implementation as int (*)();
limit in WIN32_builtin was off by one
* [windows/caret.c]
CARET_Initialize: new function, call on strategic places
* [windows/messagebox.c]
MessageBox: register message box proc aliases
* [if1632/advapi32.spec][if1632/comdlg32.spec]
New files
* [if1632/Makefile.in][if1632/Imakefile][if1632/relay32.c]
added new spec files
RELAY32_GetBuiltinDLL: perform lookup case insensitive
RELAY32_GetEntryPoint: start name search at 0
* [if1632/user.spec][if1632/kernel.spec][if1632/gdi.spec]
Added stubs for new Win95 API
Sat Sep 2 1995 Martin Roy
* [misc/commdlg.c]
In WM_INITDIALOG, current filter must reflect lpofn->nFilterIndex.
When process IDOK button in FILEDLG_WMCommand(),
lpofn->nFilterIndex should be updated to current selection.
Thu Aug 31 15:00:00 1995 Ram'on Garc'ia <ramon@ie3.clubs.etsit.upm.es>
* [loader/module.c] [loader/ne_image.c]
Added support of self-loading modules.
---------------------------------------------------------------------
Thu Aug 31 17:19:57 1995 Alexandre Julliard <julliard@sunsite.unc.edu>
* [Configure]
......
# Global rules shared by all makefiles
# The makefile must define at least TOPSRC and MODULE
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
LANG = @LANG@
X_CFLAGS = @X_CFLAGS@
YACC = @YACC@
LEX = @LEX@
LEXLIB = @LEXLIB@
DIVINCL = -I$(TOPSRC)/include
ALLCFLAGS = $(CFLAGS) $(DEFS) $(LANG) $(X_CFLAGS) $(DIVINCL) $(EXTRA_DEFS)
LDCOMBINE = ld -r
RM = rm -f
@SET_MAKE@
OBJS = $(C_SRCS:.c=.o) $(ASM_SRCS:.S=.o)
.c.o:
$(CC) -c $(ALLCFLAGS) -o $*.o $<
.S.o:
$(CC) -c -o $*.o $<
$(MODULE).o: $(OBJS)
$(LDCOMBINE) $(OBJS) -o $(MODULE).o
depend:: $(C_SRCS)
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(ALLCFLAGS) -MM $(C_SRCS) >> tmp_make
mv tmp_make Makefile
clean::
$(RM) *.o \#*\# *~ *.bak tmp_make
distclean:: clean
$(RM) Makefile
langclean::
dummy:
......@@ -3,78 +3,92 @@
# all (default): build wine
# clean: remove all intermediate files
# distclean: also remove all files created by configure
# countryclean: remove all files which have to be remade if
# langclean: remove all files which have to be remade if
# a different LANGuage is selected
# depend: create the dependencies
#
# Author: Michael Patra <micky@marie.physik.tu-berlin.de>
# <patra@itp1.physik.tu-berlin.de>
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
XPM_LIB = -lXpm
XLIB = -lXext -lX11
XDIR = -L@x_libraries@
LDLIBS = -lm
LD = @LD@
LANG = @LANG@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
LANG = @LANG@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
XPM_LIB = -lXpm
XLIB = @X_PRE_LIBS@ -lXext -lX11 @X_EXTRA_LIBS@
LDLIBS = -lm
AR = ar rc
RANLIB = @RANLIB@
RM = rm -f
@SET_MAKE@
COMMONSUBDIRS = controls rc ipc loader misc multimedia objects windows
MAIN_TARGET = @MAIN_TARGET@
EMUSUBDIRS = tools debugger if1632 memory miscemu
COMMONSUBDIRS = rc controls ipc loader misc multimedia objects windows
EMUSUBDIRS = tools debugger debugger/readline if1632 memory miscemu
LIBSUBDIRS = toolkit
COMMONOBJS = controls/controls.o ipc/ipc.o loader/loader.o misc/misc.o \
multimedia/multimedia.o objects/objects.o rc/rc.o \
ALLSUBDIRS = $(COMMONSUBDIRS) $(EMUSUBDIRS) $(LIBSUBDIRS)
COMMONOBJS = \
controls/controls.o \
ipc/ipc.o \
loader/loader.o \
misc/misc.o \
multimedia/multimedia.o \
objects/objects.o \
rc/rc.o \
windows/windows.o
EMUOBJS = debugger/debugger.o if1632/if1632.o memory/memory.o miscemu/miscemu.o
EMUOBJS = \
debugger/debugger.o \
debugger/readline/readline.o \
if1632/if1632.o \
memory/memory.o \
miscemu/miscemu.o
LIBOBJS = toolkit/toolkit.o
SUBDIRS = $(COMMONSUBDIRS) $(EMUSUBDIRS)
OBJS = $(COMMONOBJS) $(EMUOBJS)
all: wine wine.sym
all: $(MAIN_TARGET)
wine.sym: wine
wine: $(COMMONSUBDIRS) $(EMUSUBDIRS) dummy
$(CC) -o wine $(COMMONOBJS) $(EMUOBJS) $(LDOPTIONS) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LDLIBS)
nm wine | grep -v _compiled | sort >wine.sym
wine: $(SUBDIRS) dummy
$(CC) -o wine $(OBJS) $(LDOPTIONS) $(XDIR) $(XPM_LIB) $(XLIB) $(LDLIBS)
winelib.a: $(COMMONSUBDIRS) $(LIBSUBDIRS) dummy
$(RM) $@
$(AR) $@ $(COMMONOBJS) $(LIBOBJS)
$(RANLIB) $@
$(SUBDIRS): dummy
@cd $@; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)' 'LANG=$(LANG)'
$(ALLSUBDIRS): dummy
@cd $@; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LANG=$(LANG)'
depend:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) depend); done
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) depend); done
etags:
etags `find . -name '*.[chS]' -print`
clean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) clean); done
rm -f *.o \#*\# *~ *.bak wine wine.sym TAGS
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) clean); done
$(RM) *.o \#*\# *~ *.bak wine wine.sym winelib.a TAGS
distclean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) distclean); done
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) distclean); done
echo "/* autoconf.h generated automatically. Run Configure */" >autoconf.h
echo "#error You must run Configure before you can build the makefiles." >>autoconf.h
rm -f *.o \#*\# *~ *.bak wine wine.sym TAGS
rm -f config.* include/config.h Makefile
$(RM) *.o \#*\# *~ *.bak wine wine.sym winelib.a TAGS
$(RM) config.* include/config.h Make.rules Makefile
countryclean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) countryclean); done
rm -f wine wine.sym
langclean:
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) langclean); done
$(RM) wine wine.sym winelib.a
dummy:
......@@ -21,9 +21,9 @@ You also need to have libXpm installed on your system. The sources for
it are probably available on the ftp site where you got Wine. They can
also be found on ftp.x.org and all its mirror sites.
To build Wine, first do a "./Configure" and then a "make" (or "gmake"
if you're running *BSD). The executable "wine" will be built. "wine"
will load and run 16-bit Windows executables.
To build Wine, first do a "./configure" and then a "make depend; make".
The executable "wine" will be built. "wine" will load and run 16-bit
Windows executables.
To upgrade to a new release by using a patch file, first cd to the
top-level directory of the release (the one containing this README
......@@ -32,8 +32,8 @@ file). Then do a "make clean", and patch the release with:
gunzip -c patch-file | patch -p1
where "patch-file" is the name of the patch file (something like
Wine-yymmdd.diff.gz). You can then re-run "./Configure", and then
run "make".
Wine-yymmdd.diff.gz). You can then re-run "./configure", and then
run "make depend; make".
3. SETUP
......@@ -147,9 +147,10 @@ The best place to get help or to report bugs is the Usenet newsgroup
comp.emulators.ms-windows.wine. The Wine FAQ is posted there every
month.
If you add something, or fix a bug, please send a patch to
wine-new@amscons.com for inclusion in the next release.
If you add something, or fix a bug, please send a patch ('diff -u'
format preferred) to wine-new@amscons.com for inclusion in the next
release.
--
Alexandre Julliard
julliard@lamisun.epfl.ch
julliard@lrc.epfl.ch
.\" -*- nroff -*-
.TH WINE 1 "June 29, 1995" "Version 6/20/95" "Windows Emulation"
.TH WINE 1 "September 1, 1995" "Version 9/1/95" "Windows Emulation"
.SH NAME
wine \- run Windows 3.x programs under Linux
.SH SYNOPSIS
......@@ -23,7 +23,7 @@ has not been implemented.
See the files
.B README,
.B ChangeLog,
.B Configure,
.B configure,
and the
.B Makefile
contained in the source distribution
......@@ -45,8 +45,11 @@ was, or the sources may be FTP'd from ftp.x.org).
.SH INSTALLATION
To install
.B wine,
run "./Configure", which will ask for configuration information and
create the Makefiles, then run "make".
run "./configure", which will detect your specific setup and create
the Makefiles. You can run "./configure --help" to see the available
configuration options. Then do "make depend; make" to build the
.B wine
executable.
.SH OPTIONS
.TP
.I -depth n
......@@ -122,7 +125,7 @@ by placing all of them on the command line (such as: wine notepad clock).
expects a configuration file (/usr/local/etc/wine.conf),
which should conform to the following rules. The actual file name may
be specified during the execution of the
.B Configure
.B configure
script. Alternatively, you may have a
.I .winerc
file of this format in your home directory.
......@@ -259,28 +262,26 @@ Include=WM_COMMAND;
is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Ross Biro, Erik Bos, Fons Botman, John Brezak,
Andrew Bulhak, John Burton, Paul Falstad, Olaf Flebbe, Peter Galbavy,
Cameron Heide, Jeffrey Hsu, Miguel de Icaza, Alexandre Julliard,
Ramon Garcia, Hans de Graaf, Charles M. Hannum, Cameron Heide,
Jochen Hoenicke, Jeffrey Hsu, Miguel de Icaza, Alexandre Julliard,
Jon Konrath, Scott A. Laird, Martin von Loewis, Kenneth MacDonald,
Peter MacDonald, William Magro, David Metcalfe, Michael Patra,
John Richardson, Johannes Ruscheinski, Thomas Sandford,
Constantine Sapuntzakis, Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey,
William Smith, Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs,
Linus Torvalds, Michael Veksler, Carl Williams, Karl Guenter Wuensch,
Eric Youngdale, and James Youngman.
Peter MacDonald, William Magro, Marcus Meissner, Graham Menhennitt,
David Metcalfe, Michael Patra, John Richardson, Johannes Ruscheinski,
Thomas Sandford, Constantine Sapuntzakis, Daniel Schepler,
Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey, William Smith,
Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs,
Linus Torvalds, Gregory Trubetskoy, Michael Veksler, Morten Welinder,
Jan Willamowius, Carl Williams, Karl Guenter Wuensch, Eric Youngdale,
and James Youngman.
.PP
This man page is maintained by Mike Phillips (msphil@mail.wm.edu), so please
send all corrections, comments, flames, etc., to him.
This man page is maintained by Mike Phillips (msphil@facstaff.wm.edu), so
please send all corrections, comments, flames, etc., to him.
.SH BUGS
There are too many to count, much less list. Some are of note, however:
Any Windows program using Visual Basic (VBRUNxxx.DLL) will not run yet,
nor will any program depending on undocumented functions or on the
COMMDLG (any standard file open/save interface) unless you disable the
internal COMMDLG with the
.I -dll -commdlg
option. In addition, 16-color support is imperfect at best, and
icons sometimes display improperly on some systems. Certain
multi-language modules will not load properly. Progress is being made
regularly, however.
There are too many to count, much less list. Some bugs of note, however,
are that programs requiring VBRUNxxx.DLL are unreliable (with reports of
some working), OLE is not in place, the internal COMMDLG support is not yet
at 100% (although rapidly improving). Color support for other than 8bpp
(256 colors) is currently flaky.
.PP
Currently, no directories in the path can have upper-case letters in them
(ex. /msdos/driveC), as the conversions necessary to handle the msdos
......@@ -288,7 +289,7 @@ filename conventions currently cause them to be lost.
.PP
A partial list of applications known to work with
.B wine
include: sol, cruel, golf.exe, clock, notepad, charmap, and calc.
include: sol, cruel, golf, clock, notepad, charmap, calc, and wzip11.
The following URLs point to different success/testing lists:
.br
.I http://www.ifi.uio.no/~dash/wine/working-apps.html
......@@ -317,12 +318,9 @@ Main configuration file for wine.
.I ChangeLog
Changes in Wine, since the beginning (most recent changes first)
.TP
.I Configure
Shell script to automate compilation. Usually followed by make (or gmake
on *BSD systems) to compile wine; it can even build a sample
.B wine.conf
file
.I configure
Shell script to automatically generate Makefiles. Usually followed by make
(or gmake on *BSD systems) to compile wine.
.TP
.I Wine newsgroup
Subscribe to comp.emulators.ms-windows.wine
......@@ -8,38 +8,35 @@ AC_INIT(controls/edit.c)
test -z "$CFLAGS" && CFLAGS="-g -O2 -Wall" AC_SUBST(CFLAGS)
test -z "$LDFLAGS" && LDFLAGS=-g AC_SUBST(LDFLAGS)
dnl **** Command-line arguments ****
AC_ARG_WITH(library,
[ --with-library build Wine as a library instead of an emulator],
[AC_DEFINE(WINELIB) MAIN_TARGET="winelib.a"],[MAIN_TARGET="wine"])
AC_SUBST(MAIN_TARGET)
AC_ARG_WITH(language,
[ --with-language=LANG change the default language (LANG=En/De/No)],
[ --with-language=LANG change the default language (LANG=En/De/No/Es)],
[LANG="-ALANG\($withval\)"],
[LANG="-ALANG\(En\)"],)
AC_SUBST(LANG)
AC_ARG_WITH(ipc,
[ --with-ipc use inter-process communication for DDE],
[AC_DEFINE(CONFIG_IPC)])
AC_ARG_WITH(malloc-debug,
[ --with-malloc-debug enable malloc() debugging],
[AC_DEFINE(MALLOC_DEBUGGING)])
dnl **** Check for some programs ****
AC_PROG_MAKE_SET
AC_PROG_CC
AC_PATH_X
AC_PATH_XTRA
AC_PROG_YACC
AC_PROG_LEX
if test -n "$x_includes" ; then
x_includes="-I$x_includes"
fi
if test -n "$x_no" ; then
AXFILES='AXFILES='
fi
AC_SUBST(AXFILES)
AC_SUBST(x_includes)
AC_SUBST(x_libraries)
AC_SUBST(LIBOBJS)
LD=ld
LDCOMBINEFLAGS="-r"
AC_SUBST(LD)
AC_SUBST(LDCOMBINEFLAGS)
AC_PROG_RANLIB
AC_CHECK_FUNCS(tcgetattr)
AC_CHECK_HEADERS(stdlib.h)
......@@ -75,8 +72,12 @@ WINE_INI_GLOBAL="\"${TOP_SRCDIR}/wine.ini\""
fi
fi
AC_SUBST(WINE_INI_GLOBAL)
AC_DEFINE_UNQUOTED(WINE_INI_GLOBAL,$WINE_INI_GLOBAL)
MAKE_RULES=$TOP_SRCDIR/Make.rules
AC_SUBST_FILE(MAKE_RULES)
AC_OUTPUT(controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile Makefile autoconf.h)
AC_OUTPUT(Make.rules controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile toolkit/Makefile Makefile)
echo
echo "Configure finished. Do 'make depend; make' to compile Wine."
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
MODULE = controls
SRCS = button.c combo.c desktop.c edit.c listbox.c menu.c scroll.c \
static.c widgets.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
C_SRCS = \
button.c \
combo.c \
desktop.c \
edit.c \
listbox.c \
menu.c \
scroll.c \
static.c \
widgets.c
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -14,13 +14,14 @@
#include "windows.h"
#include "sysmetrics.h"
#include "combo.h"
#include "stackframe.h"
#include "user.h"
#include "win.h"
#include "stddebug.h"
#include "debug.h"
#include "graphics.h"
#include "listbox.h"
#include "dos_fs.h"
#include "stddebug.h"
#include "debug.h"
/*
* Note: Combos are probably implemented in a different way by Windows.
......@@ -127,7 +128,7 @@ static LONG CBCreate(HWND hwnd, WORD wParam, LONG lParam)
dprintf_combo(stddeb,"CBS_SIMPLE\n");
SetRectEmpty(&lphc->RectButton);
lphc->LBoxTop = lphl->StdItemHeight;
lphc->hWndEdit = CreateWindow(editName, "",
lphc->hWndEdit = CreateWindow(MAKE_SEGPTR(editName), (SEGPTR)0,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | SS_LEFT,
0, 0, rect.right, lphl->StdItemHeight,
hwnd, 1, GetWindowWord(hwnd,GWW_HINSTANCE), 0L);
......@@ -141,7 +142,7 @@ static LONG CBCreate(HWND hwnd, WORD wParam, LONG lParam)
SetWindowPos(hwnd, 0, 0, 0, rect.right - rect.left + 2*SYSMETRICS_CXBORDER,
lphl->StdItemHeight + 2*SYSMETRICS_CYBORDER,
SWP_NOMOVE | SWP_NOZORDER);
lphc->hWndEdit = CreateWindow(editName, "",
lphc->hWndEdit = CreateWindow(MAKE_SEGPTR(editName), (SEGPTR)0,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | SS_LEFT,
0, 0, lphc->RectButton.left, lphl->StdItemHeight,
hwnd, 1, GetWindowWord(hwnd,GWW_HINSTANCE), 0L);
......@@ -161,7 +162,7 @@ static LONG CBCreate(HWND hwnd, WORD wParam, LONG lParam)
/* FIXME: WinSight says these should be CHILD windows with the TOPMOST flag
* set. Wine doesn't support TOPMOST, and simply setting the WS_CHILD
* flag doesn't work. */
lphc->hWndLBox = CreateWindow(className, "",
lphc->hWndLBox = CreateWindow(MAKE_SEGPTR(className), (SEGPTR)0,
WS_POPUP | WS_BORDER | WS_VSCROLL,
lboxrect.left, lboxrect.top,
lboxrect.right - lboxrect.left,
......
......@@ -29,6 +29,7 @@
/* #define DEBUG_MENUSHORTCUT */
#include "debug.h"
#include "../rc/sysres.h"
/* Dimension of the menu bitmaps */
static WORD check_bitmap_width = 0, check_bitmap_height = 0;
......@@ -673,7 +674,7 @@ static BOOL MENU_ShowPopup(HWND hwndOwner, HMENU hmenu, WORD id, int x, int y)
{
WND *wndPtr = WIN_FindWndPtr( hwndOwner );
if (!wndPtr) return FALSE;
menu->hWnd = CreateWindow( (LPSTR)POPUPMENU_CLASS_ATOM, "",
menu->hWnd = CreateWindow( POPUPMENU_CLASS_ATOM, (SEGPTR)0,
WS_POPUP | WS_BORDER, x, y,
menu->Width + 2*SYSMETRICS_CXBORDER,
menu->Height + 2*SYSMETRICS_CYBORDER,
......@@ -732,18 +733,25 @@ static void MENU_SelectItem( HWND hwndOwner, HMENU hmenu, WORD wIndex )
if (lppop->FocusedItem != NO_SELECTED_ITEM)
{
if (lppop->FocusedItem == SYSMENU_SELECTED)
{
NC_DrawSysButton( lppop->hWnd, hdc, TRUE );
SendMessage( hwndOwner, WM_MENUSELECT,
GetSystemMenu( lppop->hWnd, FALSE ),
MAKELONG( lppop->wFlags | MF_MOUSESELECT, hmenu ) );
}
else
{
items[lppop->FocusedItem].item_flags |= MF_HILITE;
MENU_DrawMenuItem( lppop->hWnd, hdc, &items[lppop->FocusedItem], lppop->Height,
!(lppop->wFlags & MF_POPUP) );
dprintf_menu(stddeb,"Sending WM_MENUSELECT %04x %04x\n", items[lppop->FocusedItem].item_id,items[lppop->FocusedItem].item_flags);
SendMessage( hwndOwner, WM_MENUSELECT,
items[lppop->FocusedItem].item_id,
MAKELONG( items[lppop->FocusedItem].item_flags | MF_MOUSESELECT, hmenu));
}
}
else SendMessage( hwndOwner, WM_MENUSELECT, hmenu,
MAKELONG( lppop->wFlags | MF_MOUSESELECT, hmenu ) );
ReleaseDC( lppop->hWnd, hdc );
}
......@@ -1399,6 +1407,7 @@ void MENU_TrackMouseMenuBar( HWND hwnd, POINT pt )
{
WND *wndPtr = WIN_FindWndPtr( hwnd );
SendMessage( hwnd, WM_ENTERMENULOOP, 0, 0 );
SendMessage( hwnd, WM_INITMENU, wndPtr->wIDmenu, 0 );
MENU_TrackMenu( (HMENU)wndPtr->wIDmenu, TPM_LEFTALIGN | TPM_LEFTBUTTON,
pt.x, pt.y, hwnd, NULL );
SendMessage( hwnd, WM_EXITMENULOOP, 0, 0 );
......@@ -1415,6 +1424,7 @@ void MENU_TrackKbdMenuBar( HWND hwnd, WORD wParam )
WND *wndPtr = WIN_FindWndPtr( hwnd );
if (!wndPtr->wIDmenu) return;
SendMessage( hwnd, WM_ENTERMENULOOP, 0, 0 );
SendMessage( hwnd, WM_INITMENU, wndPtr->wIDmenu, 0 );
/* Select first selectable item */
MENU_SelectItem( hwnd, wndPtr->wIDmenu, NO_SELECTED_ITEM );
MENU_SelectNextItem( hwnd, (HMENU)wndPtr->wIDmenu );
......@@ -1425,7 +1435,7 @@ void MENU_TrackKbdMenuBar( HWND hwnd, WORD wParam )
/**********************************************************************
* TrackPopupMenu [USER.416]
* TrackPopupMenu (USER.416)
*/
BOOL TrackPopupMenu( HMENU hMenu, WORD wFlags, short x, short y,
short nReserved, HWND hWnd, LPRECT lpRect )
......@@ -1932,28 +1942,29 @@ HMENU CreateMenu()
*/
BOOL DestroyMenu(HMENU hMenu)
{
LPPOPUPMENU lppop;
dprintf_menu(stddeb,"DestroyMenu (%04X) !\n", hMenu);
if (hMenu == 0) return FALSE;
lppop = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu);
if (lppop == NULL) return FALSE;
if ((lppop->wFlags & MF_POPUP) && lppop->hWnd)
DestroyWindow( lppop->hWnd );
if (lppop->hItems)
{
int i;
MENUITEM *item = (MENUITEM *) USER_HEAP_LIN_ADDR( lppop->hItems );
for (i = lppop->nItems; i > 0; i--, item++)
{
if (item->item_flags & MF_POPUP)
DestroyMenu( item->item_id );
}
USER_HEAP_FREE( lppop->hItems );
}
USER_HEAP_FREE( hMenu );
dprintf_menu(stddeb,"DestroyMenu (%04X) // End !\n", hMenu);
return TRUE;
LPPOPUPMENU lppop;
dprintf_menu(stddeb,"DestroyMenu (%04X) !\n", hMenu);
if (hMenu == 0) return FALSE;
lppop = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu);
if (!lppop || (lppop->wMagic != MENU_MAGIC)) return FALSE;
lppop->wMagic = 0; /* Mark it as destroyed */
if ((lppop->wFlags & MF_POPUP) && lppop->hWnd)
DestroyWindow( lppop->hWnd );
if (lppop->hItems)
{
int i;
MENUITEM *item = (MENUITEM *) USER_HEAP_LIN_ADDR( lppop->hItems );
for (i = lppop->nItems; i > 0; i--, item++)
{
if (item->item_flags & MF_POPUP)
DestroyMenu( item->item_id );
}
USER_HEAP_FREE( lppop->hItems );
}
USER_HEAP_FREE( hMenu );
dprintf_menu(stddeb,"DestroyMenu (%04X) // End !\n", hMenu);
return TRUE;
}
/**********************************************************************
......@@ -2137,10 +2148,10 @@ HMENU CopySysMenu()
{
HMENU hMenu;
LPPOPUPMENU menu;
extern unsigned char sysres_MENU_SYSMENU[];
hMenu=LoadMenuIndirect(sysres_MENU_SYSMENU);
if(!hMenu){
hMenu = LoadMenuIndirect( sysres_MENU_SYSMENU.bytes );
if(!hMenu)
{
dprintf_menu(stddeb,"No SYSMENU\n");
return 0;
}
......
......@@ -593,12 +593,14 @@ void SCROLL_HandleScrollEvent( HWND hwnd, int nBar, WORD msg, POINT pt )
(hittest == trackHitTest), FALSE );
if (hittest == trackHitTest)
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_LINEUP, MAKELONG( 0, hwndCtl ));
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
break;
......@@ -609,12 +611,14 @@ void SCROLL_HandleScrollEvent( HWND hwnd, int nBar, WORD msg, POINT pt )
(hittest == trackHitTest), FALSE );
if (hittest == trackHitTest)
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_PAGEUP, MAKELONG( 0, hwndCtl ));
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
break;
......@@ -653,12 +657,14 @@ void SCROLL_HandleScrollEvent( HWND hwnd, int nBar, WORD msg, POINT pt )
FALSE, (hittest == trackHitTest) );
if (hittest == trackHitTest)
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_PAGEDOWN, MAKELONG( 0, hwndCtl ));
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
break;
......@@ -668,12 +674,14 @@ void SCROLL_HandleScrollEvent( HWND hwnd, int nBar, WORD msg, POINT pt )
FALSE, (hittest == trackHitTest) );
if (hittest == trackHitTest)
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
(FARPROC)0 );
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_LINEDOWN, MAKELONG( 0, hwndCtl ));
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
break;
......
......@@ -14,6 +14,8 @@
#include "user.h"
#include "selectors.h"
#include "stackframe.h"
#include "alias.h"
#include "relay32.h"
static WNDCLASS WIDGETS_BuiltinClasses[] =
{
......@@ -58,11 +60,20 @@ BOOL WIDGETS_Init(void)
for (i = 0; i < NB_BUILTIN_CLASSES; i++, class++)
{
DWORD WineProc,Win16Proc,Win32Proc;
/* currently, there is no way to get the 'real' pointer at run time */
WineProc=0;
Win16Proc = GetWndProcEntry16( (char *)class->lpfnWndProc );
Win32Proc = (DWORD)RELAY32_GetEntryPoint(
"WINPROCS32",(char *)class->lpfnWndProc, 0);
/* Register the alias so we don't pass Win16 pointers to Win32 apps */
ALIAS_RegisterAlias(WineProc,Win16Proc,Win32Proc);
strcpy( name, (char *)class->lpszClassName );
class->lpszClassName = MAKE_SEGPTR(name);
class->hCursor = LoadCursor( 0, IDC_ARROW );
class->hCursor = LoadCursor( 0, IDC_ARROW );
class->lpfnWndProc = GetWndProcEntry16( (char *)class->lpfnWndProc );
if (!RegisterClass( class )) return FALSE;
if (!RegisterClass( class )) return FALSE;
}
return TRUE;
}
CC = @CC@
CFLAGS = @CFLAGS@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
BISON = @YACC@
FLEX = @LEX@
DIVDEFS = -DUSE_READLINE
COMPILE = $(CC) $(CFLAGS) $(DIVINCL) $(DIVDEFS)
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
@SET_MAKE@
TOPSRC = @top_srcdir@
EXTRA_DEFS = -DUSE_READLINE
MODULE = debugger
MODULE = debugger
C_SRCS = \
break.c \
db_disasm.c \
hash.c \
info.c \
memory.c \
registers.c \
stack.c \
y.tab.c \
lex.yy.c
SRCS = break.c db_disasm.c hash.c info.c memory.c registers.c stack.c
all: $(MODULE).o
OBJS = $(SRCS:.c=.o) dbg.tab.o lex.yy.o
@MAKE_RULES@
all: $(MODULE).o dbg.tab.o lex.yy.o
y.tab.c y.tab.h: dbg.y
$(YACC) -d -t dbg.y
dbg.tab.c dbg.tab.h: dbg.y
$(BISON) -b dbg -d dbg.y
lex.yy.c: debug.l
$(LEX) -8 -I debug.l
lex.yy.c: debug.l dbg.tab.h
$(FLEX) -8 -I debug.l
.c.o:
$(COMPILE) -c -o $*.o $<
$(MODULE).o: $(OBJS) readline
$(LD) $(LDCOMBINEFLAGS) $(OBJS) readline/readline.o -o $(MODULE).o
readline: dummy
cd readline; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)'
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
(cd readline; $(MAKE) clean)
rm -f *.o \#*\# *~ *.bak tmp_make
rm -f dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h
distclean:
(cd readline; $(MAKE) distclean)
rm -f *.o \#*\# *~ *.bak dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h tmp_make Makefile
countryclean:
dbg.tab.o: dbg.tab.c
lex.yy.o: lex.yy.c
dummy:
clean::
rm -f y.tab.c y.tab.h lex.yy.c
### Dependencies:
......@@ -65,6 +65,7 @@ int yyerror(char *);
| ENABLE NUM '\n' { DEBUG_EnableBreakpoint( $2, TRUE ); }
| DISABLE NUM '\n' { DEBUG_EnableBreakpoint( $2, FALSE ); }
| BREAK '*' addr '\n' { DEBUG_AddBreakpoint( &$3 ); }
| BREAK symbol '\n' { DEBUG_AddBreakpoint( &$2 ); }
| BREAK '\n' { DBG_ADDR addr = { CS_reg(DEBUG_context),
EIP_reg(DEBUG_context) };
DEBUG_AddBreakpoint( &addr );
......@@ -140,7 +141,7 @@ void wine_debug( int signal, struct sigcontext_struct *regs )
char SymbolTableFile[256];
int instr_len = 0, newmode;
#ifdef YYDEBUG
yydebug = 1;
yydebug = 0;
#endif
yyin = stdin;
......
......@@ -10,7 +10,7 @@
#include <stdlib.h>
#include <string.h>
#include "debugger.h"
#include "dbg.tab.h"
#include "y.tab.h"
#ifdef USE_READLINE
#undef YY_INPUT
......
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
DIVDEFS = $(DEFS) -DHIDE -DANSI_ARROWS
TOPSRC = @top_srcdir@
EXTRA_DEFS = -DHIDE -DANSI_ARROWS
MODULE = readline
MODULE = readline
SRCS = editline.c sysunix.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(DIVDEFS) $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
C_SRCS = editline.c sysunix.c
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -43,6 +43,8 @@ DLLS16 = \
winprocs.spec \
winsock.spec
DLLS32 = \
advapi32.spec \
comdlg32.spec \
gdi32.spec \
kernel32.spec \
shell32.spec \
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
BUILD = $(TOPSRC)/tools/build
@SET_MAKE@
TOPSRC = @top_srcdir@
BUILD = $(TOPSRC)/tools/build
MODULE = if1632
SRCS = callback.c relay.c relay32.c
MODULE = if1632
DLLS16 = commdlg.spec compobj.spec ddeml.spec gdi.spec kernel.spec \
keyboard.spec mmsystem.spec mouse.spec ole2.spec ole2conv.spec \
......@@ -19,21 +9,23 @@ DLLS16 = commdlg.spec compobj.spec ddeml.spec gdi.spec kernel.spec \
shell.spec sound.spec storage.spec stress.spec system.spec \
toolhelp.spec user.spec win87em.spec winprocs.spec winsock.spec
DLLS32 = gdi32.spec kernel32.spec shell32.spec user32.spec winprocs32.spec
OBJS = $(SRCS:.c=.o) $(DLLS16:.spec=.o) $(DLLS32:.spec=.o) call16.o call32.o
DLLS32 = advapi32.spec comdlg32.spec gdi32.spec kernel32.spec shell32.spec user32.spec winprocs32.spec
SPEC16_FILES = $(DLLS16:.spec=.S)
SPEC32_FILES = $(DLLS32:.spec=.c)
.SUFFIXES: .spec
C_SRCS = \
$(SPEC32_FILES) \
callback.c \
relay.c \
relay32.c
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
ASM_SRCS = \
$(SPEC16_FILES) \
call16.S \
call32.S
.S.o:
$(CC) -c -o $*.o $<
.SUFFIXES: .spec
.spec.S:
$(BUILD) -spec16 $< > $*.S
......@@ -43,10 +35,12 @@ SPEC32_FILES = $(DLLS32:.spec=.c)
all: checkbuild $(MODULE).o
$(SPEC16_FILES) $(SPEC32_FILES): $(TOPSRC)/tools/build
@MAKE_RULES@
checkbuild:
cd $(TOPSRC)/tools; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)' build
$(SPEC16_FILES) $(SPEC32_FILES): $(BUILD)
$(BUILD) checkbuild:
cd $(TOPSRC)/tools; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LANG=$(LANG)' build
call16.S: $(TOPSRC)/include/callback.h $(BUILD)
$(BUILD) -call16 `cat $(TOPSRC)/include/callback.h | grep "extern.*CallTo16_" | sed 's/.*CallTo16_\(.*\)(.*/\1/' | sort | uniq` > call16.S
......@@ -54,23 +48,7 @@ call16.S: $(TOPSRC)/include/callback.h $(BUILD)
call32.S: $(SPEC16_FILES)
$(BUILD) -call32 `cat $(SPEC16_FILES) | grep CallTo32_ | sed 's/.*CallTo32_\(.*\)/\1/' | sort | uniq` > call32.S
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM $(SRCS) >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
rm -f $(DLLS16:.spec=.S) $(DLLS32:.spec=.c) call32.S call16.S
distclean: clean
rm -f Makefile
countryclean:
dummy:
clean::
rm -f $(SPEC16_FILES) $(SPEC32_FILES) call32.S call16.S
### Dependencies:
name advapi32
base 1
0000 stub AbortSystemShutdownA
0001 stub AbortSystemShutdownW
0002 stub AccessCheck
0003 stub AccessCheckAndAuditAlarmA
0004 stub AccessCheckAndAuditAlarmW
0005 stub AddAccessAllowedAce
0006 stub AddAccessDeniedAce
0007 stub AddAce
0008 stub AddAuditAccessAce
0009 stub AdjustTokenGroups
0010 stub AdjustTokenPrivileges
0011 stub AllocateAndInitializeSid
0012 stub AllocateLocallyUniqueId
0013 stub AreAllAccessesGranted
0014 stub AreAnyAccessesGranted
0015 stub BackupEventLogA
0016 stub BackupEventLogW
0017 stub ChangeServiceConfigA
0018 stub ChangeServiceConfigW
0019 stub ClearEventLogA
0020 stub ClearEventLogW
0021 stub CloseEventLog
0022 stub CloseServiceHandle
0023 stub ControlService
0024 stub CopySid
0025 stub CreatePrivateObjectSecurity
0026 stub CreateProcessAsUserA
0027 stub CreateProcessAsUserW
0028 stub CreateServiceA
0029 stub CreateServiceW
0030 stub DeleteAce
0031 stub DeleteService
0032 stub DeregisterEventSource
0033 stub DestroyPrivateObjectSecurity
0034 stub DuplicateToken
0035 stub EnumDependentServicesA
0036 stub EnumDependentServicesW
0037 stub EnumServicesStatusA
0038 stub EnumServicesStatusW
0039 stub EqualPrefixSid
0040 stub EqualSid
0041 stub FindFirstFreeAce
0042 stub FreeSid
0043 stub GetAce
0044 stub GetAclInformation
0045 stub GetFileSecurityA
0046 stub GetFileSecurityW
0047 stub GetKernelObjectSecurity
0048 stub GetLengthSid
0049 stub GetNumberOfEventLogRecords
0050 stub GetOldestEventLogRecord
0051 stub GetPrivateObjectSecurity
0052 stub GetSecurityDescriptorControl
0053 stub GetSecurityDescriptorDacl
0054 stub GetSecurityDescriptorGroup
0055 stub GetSecurityDescriptorLength
0056 stub GetSecurityDescriptorOwner
0057 stub GetSecurityDescriptorSacl
0058 stub GetServiceDisplayNameA
0059 stub GetServiceDisplayNameW
0060 stub GetServiceKeyNameA
0061 stub GetServiceKeyNameW
0062 stub GetSidIdentifierAuthority
0063 stub GetSidLengthRequired
0064 stub GetSidSubAuthority
0065 stub GetSidSubAuthorityCount
0066 stub GetTokenInformation
0067 stub GetUserNameA
0068 stub GetUserNameW
0069 stub ImpersonateLoggedOnUser
0070 stub ImpersonateNamedPipeClient
0071 stub ImpersonateSelf
0072 stub InitializeAcl
0073 stub InitializeSecurityDescriptor
0074 stub InitializeSid
0075 stub InitiateSystemShutdownA
0076 stub InitiateSystemShutdownW
0077 stub IsTextUnicode
0078 stub IsValidAcl
0079 stub IsValidSecurityDescriptor
0080 stub IsValidSid
0081 stub LockServiceDatabase
0082 stub LogonUserA
0083 stub LogonUserW
0084 stub LookupAccountNameA
0085 stub LookupAccountNameW
0086 stub LookupAccountSidA
0087 stub LookupAccountSidW
0088 stub LookupPrivilegeDisplayNameA
0089 stub LookupPrivilegeDisplayNameW
0090 stub LookupPrivilegeNameA
0091 stub LookupPrivilegeNameW
0092 stub LookupPrivilegeValueA
0093 stub LookupPrivilegeValueW
0094 stub MakeAbsoluteSD
0095 stub MakeSelfRelativeSD
0096 stub MapGenericMask
0097 stub NotifyBootConfigStatus
0098 stub NotifyChangeEventLog
0099 stub ObjectCloseAuditAlarmA
0100 stub ObjectCloseAuditAlarmW
0101 stub ObjectOpenAuditAlarmA
0102 stub ObjectOpenAuditAlarmW
0103 stub ObjectPrivilegeAuditAlarmA
0104 stub ObjectPrivilegeAuditAlarmW
0105 stub OpenBackupEventLogA
0106 stub OpenBackupEventLogW
0107 stub OpenEventLogA
0108 stub OpenEventLogW
0109 stub OpenProcessToken
0110 stub OpenSCManagerA
0111 stub OpenSCManagerW
0112 stub OpenServiceA
0113 stub OpenServiceW
0114 stub OpenThreadToken
0115 stub PrivilegeCheck
0116 stub PrivilegedServiceAuditAlarmA
0117 stub PrivilegedServiceAuditAlarmW
0118 stub QueryServiceConfigA
0119 stub QueryServiceConfigW
0120 stub QueryServiceLockStatusA
0121 stub QueryServiceLockStatusW
0122 stub QueryServiceObjectSecurity
0123 stub QueryServiceStatus
0124 stub ReadEventLogA
0125 stub ReadEventLogW
0126 stub RegCloseKey
0127 stub RegConnectRegistryA
0128 stub RegConnectRegistryW
0129 stub RegCreateKeyA
0130 stub RegCreateKeyExA
0131 stub RegCreateKeyExW
0132 stub RegCreateKeyW
0133 stub RegDeleteKeyA
0134 stub RegDeleteKeyW
0135 stub RegDeleteValueA
0136 stub RegDeleteValueW
0137 stub RegEnumKeyA
0138 stub RegEnumKeyExA
0139 stub RegEnumKeyExW
0140 stub RegEnumKeyW
0141 stub RegEnumValueA
0142 stub RegEnumValueW
0143 stub RegFlushKey
0144 stub RegGetKeySecurity
0145 stub RegLoadKeyA
0146 stub RegLoadKeyW
0147 stub RegNotifyChangeKeyValue
0148 stub RegOpenKeyA
0149 stub RegOpenKeyExA
0150 stub RegOpenKeyExW
0151 stub RegOpenKeyW
0152 stub RegQueryInfoKeyA
0153 stub RegQueryInfoKeyW
0154 stub RegQueryMultipleValuesA
0155 stub RegQueryMultipleValuesW
0156 stub RegQueryValueA
0157 stub RegQueryValueExA
0158 stub RegQueryValueExW
0159 stub RegQueryValueW
0160 stub RegRemapPreDefKey
0161 stub RegReplaceKeyA
0162 stub RegReplaceKeyW
0163 stub RegRestoreKeyA
0164 stub RegRestoreKeyW
0165 stub RegSaveKeyA
0166 stub RegSaveKeyW
0167 stub RegSetKeySecurity
0168 stub RegSetValueA
0169 stub RegSetValueExA
0170 stub RegSetValueExW
0171 stub RegSetValueW
0172 stub RegUnLoadKeyA
0173 stub RegUnLoadKeyW
0174 stub RegisterEventSourceA
0175 stub RegisterEventSourceW
0176 stub RegisterServiceCtrlHandlerA
0177 stub RegisterServiceCtrlHandlerW
0178 stub ReportEventA
0179 stub ReportEventW
0180 stub RevertToSelf
0181 stub SetAclInformation
0182 stub SetFileSecurityA
0183 stub SetFileSecurityW
0184 stub SetKernelObjectSecurity
0185 stub SetPrivateObjectSecurity
0186 stub SetSecurityDescriptorDacl
0187 stub SetSecurityDescriptorGroup
0188 stub SetSecurityDescriptorOwner
0189 stub SetSecurityDescriptorSacl
0190 stub SetServiceBits
0191 stub SetServiceObjectSecurity
0192 stub SetServiceStatus
0193 stub SetThreadToken
0194 stub SetTokenInformation
0195 stub StartServiceA
0196 stub StartServiceCtrlDispatcherA
0197 stub StartServiceCtrlDispatcherW
0198 stub StartServiceW
0199 stub UnlockServiceDatabase
......@@ -10,23 +10,35 @@ static char Copyright[] = "Copyright Robert J. Amstadt, 1993";
#include "callback.h"
#include "stackframe.h"
#include "win.h"
#include "alias.h"
#include "relay32.h"
#include "stddebug.h"
#include "debug.h"
/**********************************************************************
* CallWindowProc (USER.122)
*/
LONG CallWindowProc( WNDPROC func, HWND hwnd, WORD message,
WORD wParam, LONG lParam )
{
FUNCTIONALIAS *a;
WND *wndPtr = WIN_FindWndPtr( hwnd );
if (!wndPtr) return 0;
SpyMessage(hwnd, message, wParam, lParam);
return CallWndProc( (FARPROC)func, wndPtr->hInstance,
/* check if we have something better than 16 bit relays */
if(!ALIAS_UseAliases || !(a=ALIAS_LookupAlias((DWORD)func)) ||
(!a->wine && !a->win32))
return CallWndProc( (FARPROC)func, wndPtr->hInstance,
hwnd, message, wParam, lParam );
if(a->wine)
return ((LONG(*)(WORD,WORD,WORD,LONG))(a->wine))
(hwnd,message,wParam,lParam);
if(!a->win32)
fprintf(stderr,"Where is the Win32 callback?\n");
return RELAY32_CallWindowProc(a->win32,hwnd,message,wParam,lParam);
}
......
name comdlg32
base 1
0000 stub ArrowBtnWndProc
0001 stub ChooseColorA
0002 stub ChooseColorW
0003 stub ChooseFontA
0004 stub ChooseFontW
0005 stub CommDlgExtendedError
0006 stub FindTextA
0007 stub FindTextW
0008 stub GetFileTitleA
0009 stub GetFileTitleW
0010 stub GetOpenFileNameA
0011 stub GetOpenFileNameW
0012 stub GetSaveFileNameA
0013 stub GetSaveFileNameW
0014 stub LoadAlterBitmap
0015 stub PageSetupDlgA
0016 stub PageSetupDlgW
0017 stub PrintDlgA
0018 stub PrintDlgW
0019 stub ReplaceTextA
0020 stub ReplaceTextW
0021 stub WantArrows
0022 stub dwLBSubclass
0023 stub dwOKSubclass
......@@ -154,6 +154,7 @@ id 3
179 pascal16 GetDCState(word) GetDCState
180 pascal16 SetDCState(word word) SetDCState
181 pascal16 RectInRegionOld(word ptr) RectInRegion
188 stub GetTextExtentEx
190 stub SetDCHook
191 stub GetDCHook
192 stub SetHookFlags
......@@ -196,6 +197,17 @@ id 3
250 pascal16 Copy(ptr ptr word) Copy
253 stub DeleteSpoolPage
254 stub SpoolFile
267 stub StartDocPrintEra
268 stub StartPagePrinter
269 stub WritePrinter
270 stub EndPagePrinter
271 stub AbortPrinter
272 stub EndDocPrinter
274 stub ClosePrinter
280 stub GetRealDriverInfo
281 stub DrvSetPrinterData
282 stub DrvGetPrinterData
299 stub ENGINEGETCHARWIDTHEX
300 stub ENGINEENUMERATEFONT
301 stub ENGINEDELETEFONT
302 stub ENGINEREALIZEFONT
......@@ -211,6 +223,9 @@ id 3
312 stub ConvertOutLineFontFile
313 pascal16 GetRasterizerCaps(ptr word) GetRasterizerCaps
314 stub EngineExtTextOut
315 stub EngineRealizeFontExt
316 stub EngineGetCharWidthStr
317 stub EngineGetGlyphBmpExt
330 pascal16 EnumFontFamilies(word ptr segptr long) EnumFontFamilies
332 pascal16 GetKerningPairs(word word ptr) GetKerningPairs
345 pascal16 GetTextAlign(word) GetTextAlign
......@@ -223,6 +238,7 @@ id 3
352 stub GetPhysicalFontHandle
353 stub GetAspectRatioFilter
354 stub ShrinkGDIHeap
355 stub FTrapping0
360 pascal16 CreatePalette(ptr) CreatePalette
361 pascal16 GDISelectPalette(word word) GDISelectPalette
362 pascal16 GDIRealizePalette(word) GDIRealizePalette
......@@ -248,6 +264,7 @@ id 3
400 pascal16 FastWindowFrame(word long word word long) FastWindowFrame
401 stub GDIMOVEBITMAP
403 stub GDIINIT2
404 stub GetTTGlyphIndexMap
405 stub FINALGDIINIT
407 stub CREATEUSERBITMAP
409 stub CREATEUSERDISCARDABLEBITMAP
......@@ -296,4 +313,65 @@ id 3
ScaleViewportExtEx
485 pascal16 ScaleWindowExtEx(word s_word s_word s_word s_word ptr)
ScaleWindowExtEx
486 stub GETASPECTRATIOFILEREX
486 stub GETASPECTRATIOFILTEREX
489 stub CreateDIBSection
490 stub CloseEnhMetafile
491 stub CopyEnhMetafile
492 stub CreateEnhMetafile
493 stub DeleteEnhMetafile
495 stub GDIComment
496 stub GetEnhMetafile
497 stub GetEnhMetafileBits
498 stub GetEnhMetafileDescription
499 stub GetEnhMetafileHeader
501 stub GetEnhMetafilePaletteEntries
502 stub PolyBezier
503 stub PolyBezierTo
504 stub PlayEnhMetafileRecord
505 stub SetEnhMetafileBits
506 stub SetMetaRgn
508 stub ExtSelectClipRgn
511 stub AbortPath
512 stub BeginPath
513 stub CloseFigure
514 stub EndPath
515 stub FillPath
516 stub FlattenPath
517 stub GetPath
518 stub PathToRegion
519 stub SelectClipPath
520 stub StrokeAndFillPath
521 stub StrokePath
522 stub WidenPath
523 stub ExtCreatePen
524 stub GetArcDirection
525 stub SetArcDirection
526 stub GetMiterLimit
527 stub SetMiterLimit
528 stub GDIParametersInfo
529 stub CreateHalftonePalette
602 stub SetDIBColorTable
603 stub GetDIBColorTable
604 stub SetSolidBrush
605 stub SysDeleteObject
606 stub SetMagicColors
607 stub GetRegionData
608 stub ExtCreateRegion
609 stub GDIFreeResources
610 stub GDISignalProc32
611 stub GetRandomRgn
612 stub GetTextCharSet
613 stub EnumFontFamiliesEx
614 stub AddLpkToGDI
615 stub GetCharacterPlacement
616 stub GetFontLanguageInfo
650 stub BuildInverseTableDIB
701 stub GDITHKCONNECTIONDATALS
702 stub FT_GDIFTHKTHKCONNECTIONDATA
703 stub FDTHKCONNECTIONDATASL
704 stub ICMTHKCONNECTIONDATASL
820 stub ICMCreateTransform
821 stub ICMDeleteTransform
822 stub ICMTranslateRGB
823 stub ICMTranslateRGBs
824 stub ICMCheckCOlorsInGamut
......@@ -221,7 +221,7 @@ base 1
0217 stub GetRegionData
0218 stub GetRelAbs
0219 stub GetRgnBox
0220 stub GetStockObject
0220 stdcall GetStockObject(long) GetStockObject
0221 stub GetStretchBltMode
0222 stub GetSystemPaletteEntries
0223 stub GetSystemPaletteUse
......@@ -356,7 +356,7 @@ base 1
0352 stub StrokeAndFillPath
0353 stub StrokePath
0354 stub SwapBuffers
0355 stub TextOutA
0355 stdcall TextOutA(long long long ptr long) TextOut
0356 stub TextOutW
0357 stub UnloadNetworkFonts
0358 stub UnrealizeObject
......
......@@ -27,6 +27,7 @@ id 1
24 pascal16 UnlockSegment(word) UnlockSegment
25 pascal GlobalCompact(long) GlobalCompact
26 pascal16 GlobalFreeAll(word) GlobalFreeAll
27 stub GetModuleName
28 stub GlobalMasterHandle
29 pascal16 Yield() Yield
30 pascal16 WaitEvent(word) WaitEvent
......@@ -105,7 +106,7 @@ id 1
107 pascal SetErrorMode(word) SetErrorMode
108 stub SwitchStackTo
109 stub SwitchStackBack
110 stub PatchCodeHandle
110 pascal16 PatchCodeHandle(word) PatchCodeHandle
111 pascal GlobalWire(word) GlobalWire
112 pascal16 GlobalUnWire(word) GlobalUnWire
113 equate __AHSHIFT 3
......@@ -139,6 +140,14 @@ id 1
139 stub DoSignal
140 stub SetSigHandler
141 stub InitTask1
142 stub GetProfileSectionNames
143 stub GetPrivateProfileSectionNames
144 stub CreateDirectory
145 stub RemoveDirectory
146 stub DeleteFile
147 stub SetLastError
148 stub GetLastError
149 stub GetVersionEx
150 pascal16 DirectedYield(word) DirectedYield
151 stub WinOldApCall
152 pascal16 GetNumTasks() GetNumTasks
......@@ -196,6 +205,26 @@ id 1
205 stub CVWBreak
206 pascal16 AllocSelectorArray(word) AllocSelectorArray
207 return IsDBCSLeadByte 2 0
216 stub RegEnumKey
217 stub RegOpenKey
218 stub RegCreateKey
219 stub RegDeleteValue
220 stub RegCloseKey
221 stub RegSetValue
222 stub RegDeleteValue
223 stub RegEnumValue
224 stub RegQueryValue
225 stub RegQueryValueEx
226 stub RegSetValueEx
227 stub RegFlushKey
#228 K228
#229 K229
230 stub GlobalSmartPageLock
231 stub GlobalSmartPageUnlock
232 stub RegLoadKey
233 stub RegUnloadKey
234 stub RegSaveKey
235 stub InvalidateNlsCache
310 pascal16 LocalHandleDelta(word) LocalHandleDelta
311 stub GetSetKernelDosProc
314 stub DebugDefineSegment
......@@ -230,9 +259,35 @@ id 1
349 pascal16 _hread(word ptr long) _hread
350 pascal16 _hwrite(word ptr long) _hwrite
#351 BUNNY_351
352 stub lstrcatn
353 pascal lstrcpyn(segptr segptr word) lstrcpyn
354 stub GetAppCompatFlags
355 pascal16 GetWinDebugInfo(ptr word) GetWinDebugInfo
356 pascal16 SetWinDebugInfo(ptr) SetWinDebugInfo
360 stub OpenFileEx
#361 PIGLET_361
403 pascal16 FarSetOwner(word word) FarSetOwner
404 pascal16 FarGetOwner(word) FarGetOwner
406 stub WritePrivateProfileStruct
407 stub GetPrivateProfileStruct
411 stub GetCurrentDirectory
412 stub SetCurrentDirectory
413 stub FindFirstFile
414 stub FindNextFile
415 stub FindClose
416 stub WritePrivateProfileSection
417 stub WriteProfileSection
418 stub GetPrivateProfileSection
419 stub GetProfileSection
420 stub GetFileAttributes
421 stub SetFileAttributes
422 stub GetDiskFreeSpace
432 stub FileTimeToLocalFileTime
491 stub RegisterServiceProcess
513 stub LoadLibraryEx32W
514 stub FreeLibrary32W
515 stub GetProcAddress32W
516 stub GetVDMPointer32W
517 stub CallProc32W
518 stub CallProcEx32W
627 stub IsBadFlatReadWritePtr
......@@ -98,7 +98,8 @@ BOOL RELAY_Init(void)
/***********************************************************************
* RELAY_DebugCall32
*/
void RELAY_DebugCall32( int func_type, char *args )
void RELAY_DebugCall32( int func_type, char *args,
void *entry_point, int args32 )
{
STACK16FRAME *frame;
struct dll_table_s *table;
......@@ -154,7 +155,7 @@ void RELAY_DebugCall32( int func_type, char *args )
if (func_type == 2) /* register function */
{
struct sigcontext_struct *context = (struct sigcontext_struct *)args16;
struct sigcontext_struct *context = (struct sigcontext_struct *)&args32;
printf( " AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x ES=%04x EFL=%08lx\n",
AX_reg(context), BX_reg(context), CX_reg(context),
DX_reg(context), SI_reg(context), DI_reg(context),
......@@ -166,7 +167,7 @@ void RELAY_DebugCall32( int func_type, char *args )
/***********************************************************************
* RELAY_DebugReturn
*/
void RELAY_DebugReturn( int func_type, int ret_val )
void RELAY_DebugReturn( int func_type, int ret_val, int args32 )
{
STACK16FRAME *frame;
struct dll_table_s *table;
......@@ -192,6 +193,13 @@ void RELAY_DebugReturn( int func_type, int ret_val )
break;
case 2: /* regs */
printf( "retval=none ds=%04x\n", frame->ds );
{
struct sigcontext_struct *context = (struct sigcontext_struct *)&args32;
printf( " AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x ES=%04x EFL=%08lx\n",
AX_reg(context), BX_reg(context), CX_reg(context),
DX_reg(context), SI_reg(context), DI_reg(context),
ES_reg(context), EFL_reg(context) );
}
break;
}
}
......
......@@ -19,10 +19,21 @@
WIN32_builtin *WIN32_builtin_list;
/* Functions are in generated code */
void ADVAPI32_Init();
void COMDLG32_Init();
void GDI32_Init();
void KERNEL32_Init();
void SHELL32_Init();
void USER32_Init();
void WINPROCS32_Init();
int RELAY32_Init(void)
{
#ifndef WINELIB
/* Add a call for each DLL */
ADVAPI32_Init();
COMDLG32_Init();
GDI32_Init();
KERNEL32_Init();
SHELL32_Init();
......@@ -37,7 +48,7 @@ WIN32_builtin *RELAY32_GetBuiltinDLL(char *name)
{
WIN32_builtin *it;
for(it=WIN32_builtin_list;it;it=it->next)
if(strcmp(name,it->name)==0)
if(strcasecmp(name,it->name)==0)
return it;
return NULL;
}
......@@ -74,9 +85,10 @@ void *RELAY32_GetEntryPoint(char *dll_name, char *item, int hint)
strcmp(item,dll->functions[hint].name)==0)
return dll->functions[hint].definition;
/* hint is incorrect, search for name */
for(i=1;i<dll->size;i++)
if(strcmp(item,dll->functions[i].name)==0)
return dll->functions[i].definition;
for(i=0;i<dll->size;i++)
if (dll->functions[i].name && !strcmp(item,dll->functions[i].name))
return dll->functions[i].definition;
/* function at hint has no name (unimplemented) */
if(hint && hint<dll->size && !dll->functions[hint].name)
{
......
......@@ -39,7 +39,7 @@ id 2
38 pascal16 GetWindowTextLength(word) GetWindowTextLength
39 pascal16 BeginPaint(word ptr) BeginPaint
40 pascal16 EndPaint(word ptr) EndPaint
41 pascal16 CreateWindow(ptr ptr long s_word s_word s_word s_word
41 pascal16 CreateWindow(segptr segptr long s_word s_word s_word s_word
word word word segptr) CreateWindow
42 pascal16 ShowWindow(word word) ShowWindow
43 pascal16 CloseWindow(word) CloseWindow
......@@ -116,6 +116,7 @@ id 2
115 stub ReplyMessage
116 pascal16 PostAppMessage(word word word long) PostAppMessage
118 pascal16 RegisterWindowMessage(long) RegisterWindowMessage
117 stub WindowFromDC
119 pascal GetMessagePos() GetMessagePos
120 pascal GetMessageTime() GetMessageTime
121 pascal SetWindowsHook(s_word segptr) SetWindowsHook
......@@ -217,7 +218,7 @@ id 2
#216 USERSEEUSERDO
217 pascal16 LookupMenuHandle(word s_word) LookupMenuHandle
218 pascal16 DialogBoxIndirect(word word word segptr) DialogBoxIndirect
219 pascal16 CreateDialogIndirect(word ptr word segptr) CreateDialogIndirect
219 pascal16 CreateDialogIndirect(word segptr word segptr) CreateDialogIndirect
220 pascal16 LoadMenuIndirect(ptr) LoadMenuIndirect
221 pascal16 ScrollDC(word s_word s_word ptr ptr word ptr) ScrollDC
222 pascal16 GetKeyboardState(ptr) GetKeyboardState
......@@ -241,7 +242,7 @@ id 2
240 pascal16 DialogBoxIndirectParam(word word word segptr long)
DialogBoxIndirectParam
241 pascal16 CreateDialogParam(word segptr word segptr long) CreateDialogParam
242 pascal16 CreateDialogIndirectParam(word ptr word segptr long)
242 pascal16 CreateDialogIndirectParam(word segptr word segptr long)
CreateDialogIndirectParam
243 pascal GetDialogBaseUnits() GetDialogBaseUnits
244 pascal16 EqualRect(ptr ptr) EqualRect
......@@ -297,6 +298,7 @@ id 2
293 pascal CallNextHookEx(segptr s_word word long) CallNextHookEx
294 stub LockWindowUpdate
#299 MOUSE_EVENT
300 stub UnloadInstalledDrivers
#301 BOZOSLIVEHERE :-))
#306 BEAR306
308 pascal DefDlgProc(word word word long) DefDlgProc
......@@ -325,12 +327,31 @@ id 2
358 pascal16 IsMenu(word) IsMenu
359 pascal16 GetDCEx(word word long) GetDCEx
362 stub DCHook
368 stub CopyIcon
364 stub LookupIconIDFromDirectoryEx
368 pascal16 CopyIcon(word word) CopyIcon
369 stub CopyCursor
370 pascal16 GetWindowPlacement(word ptr) GetWindowPlacement
371 pascal16 SetWindowPlacement(word ptr) SetWindowPlacement
372 stub GetInternalIconHeader
373 pascal16 SubtractRect(ptr ptr ptr) SubtractRect
375 stub DrawTextEx
376 stub SetMessageExtraInfo
378 stub SetPropEx
379 stub GetPropEx
380 stub RemovePropEx
381 stub UsrMPR_ThunkData16
382 stub SetWindowContextHelpID
383 stub GetWindowContextHelpID
384 stub SetMenuContextHelpID
385 stub GetMenuContextHelpID
389 stub LoadImage
390 stub CopyImage
391 stub SignalProc32
394 stub DrawIconEx
395 stub GetIconInfo
397 stub RegisterClassEx
398 stub GetClassInfoEx
399 stub ChildWindowFromPointEx
400 stub FinalUserInit
402 pascal16 GetPriorityClipboardFormat(word ptr s_word)
GetPriorityClipboardFormat
......@@ -340,6 +361,7 @@ id 2
407 pascal16 CreateIcon(word word word byte byte ptr ptr) CreateIcon
408 pascal16 CreateCursorIconIndirect(word ptr ptr ptr)
CreateCursorIconIndirect
409 stub InitThreadInput
410 pascal16 InsertMenu(word word word word ptr) InsertMenu
411 pascal16 AppendMenu(word word word ptr) AppendMenu
412 pascal16 RemoveMenu(word word word) RemoveMenu
......@@ -355,6 +377,9 @@ id 2
421 pascal16 wvsprintf(ptr ptr ptr) wvsprintf
422 stub DlgDirSelectEx
423 stub DlgDirSelectComboBoxEx
427 stub FindWindowEx
428 stub TileWindows
429 stub CascadeWindows
430 pascal16 lstrcmp(ptr ptr) lstrcmp
431 pascal AnsiUpper(segptr) WIN16_AnsiUpper
432 pascal AnsiLower(segptr) WIN16_AnsiLower
......@@ -364,10 +389,16 @@ id 2
436 pascal16 IsCharLower(byte) IsCharLower
437 pascal16 AnsiUpperBuff(ptr word) AnsiUpperBuff
438 pascal16 AnsiLowerBuff(ptr word) AnsiLowerBuff
441 stub InsertMenuItem
443 stub GetMenuItemInfo
445 pascal DefFrameProc(word word word word long) DefFrameProc
446 stub SetMenuItemInfo
447 pascal DefMDIChildProc(word word word long) DefMDIChildProc
448 stub DrawAnimatedRects
449 stub DrawState
450 stub CreateIconFromResourceEx
451 pascal16 TranslateMDISysAccel(word ptr) TranslateMDISysAccel
452 pascal16 CreateWindowEx(long ptr ptr long s_word s_word s_word s_word
452 pascal16 CreateWindowEx(long segptr segptr long s_word s_word s_word s_word
word word word segptr) CreateWindowEx
454 pascal16 AdjustWindowRectEx(ptr long word long) AdjustWindowRectEx
455 stub GetIconId
......@@ -386,6 +417,11 @@ id 2
471 pascal16 lstrcmpi(ptr ptr) lstrcmpi
472 pascal AnsiNext(segptr) AnsiNext
473 pascal AnsiPrev(segptr segptr) AnsiPrev
475 stub SetScrollInfo
476 stub GetScrollInfo
477 stub GetKeyboardLayoutName
478 stub LoadKeyboardLayout
479 stub MenuItemFromPoint
480 stub GetUserLocalObjType
#481 HARDWARE_EVENT
482 pascal16 EnableScrollBar(word word word) EnableScrollBar
......@@ -424,3 +460,57 @@ id 2
530 pascal16 WNetGetDirectoryType(ptr ptr) WNetGetDirectoryType
531 pascal16 WNetDirectoryNotify(word ptr word) WNetDirectoryNotify
532 pascal16 WNetGetPropertyText(word word word ptr word) WNetGetPropertyText
533 stub WNetInitialize
534 stub WNetLogon
669 stub SetWindowRgn
600 stub GetShellWindow
601 stub DoHotkeyStuff
602 stub SetCheckCursorTimer
604 stub BroadcastSystemMessage
605 stub HackTaskMonitor
606 stub FormatMessage
608 stub GetForegroundWindow
609 stub SetForegroundWindow
610 stub DestroyIcon32
620 stub ChangeDisplaySettings
621 stub EnumDisplaySettings
640 stub MsgWaitForMultipleObjects
650 stub ActivateKeyboardLayout
651 stub GetKeyboardLayout
652 stub GetKeyboardLayoutList
654 stub UnloadKeyboardLayout
655 stub PostPostedMessages
656 stub DrawFrameControl
657 stub DrawCaptionTemp
658 stub DispatchInput
659 stub DrawEdge
660 stub DrawCaption
661 stub SetSysColorsTemp
662 stub DrawMenubarTemp
663 stub GetMenuDefaultItem
664 stub SetMenuDefaultItem
665 stub GetMenuItemRect
666 stub CheckMenuRadioItem
667 stub TrackPopupMenuEx
668 stub SetWindowRgn
669 stub GetWindowRgn
800 stub CHOOSEFONT_CALLBACK16
801 stub FINDREPLACE_CALLBACK16
802 stub OPENFILENAME_CALLBACK16
803 stub PRINTDLG_CALLBACK16
804 stub CHOOSECOLOR_CALLBACK16
819 stub PeekMessage32
820 stub GetMessage32
821 stub TranslateMessage32
821 stub IsDialogMessage32
822 stub DispatchMessage32
825 stub PostMessage32
826 stub PostThreadMessage32
827 stub MessageBoxIndirect
823 stub CallMsgFilter32
851 stub MsgThkConnectionDataLS
853 stub FT_USRFTHKTHKCONNECTIONDATA
854 stub FT__USRF2THKTHKCONNECTIONDATA
855 stub Usr32ThkConnectionDataSL
890 stub InstallIMT
891 stub UninstallIMT
......@@ -10,7 +10,7 @@ base 1
0006 stub ArrangeIconicWindows
0007 stub AttachThreadInput
0008 stub BeginDeferWindowPos
0009 stub BeginPaint
0009 stdcall BeginPaint(long ptr) USER32_BeginPaint
0010 stub BringWindowToTop
0011 stub BroadcastSystemMessage
0012 stub CalcChildScroll
......@@ -83,7 +83,8 @@ base 1
0079 stub CreateMDIWindowW
0080 stub CreateMenu
0081 stub CreatePopupMenu
0082 stub CreateWindowExA
0082 stdcall CreateWindowExA(long ptr ptr long long long long long
long long long ptr) USER32_CreateWindowExA
0083 stub CreateWindowExW
0084 stub CreateWindowStationA
0085 stub CreateWindowStationW
......@@ -126,7 +127,7 @@ base 1
0122 stub DefFrameProcW
0123 stub DefMDIChildProcA
0124 stub DefMDIChildProcW
0125 stub DefWindowProcA
0125 stdcall DefWindowProcA(long long long long) USER32_DefWindowProcA
0126 stub DefWindowProcW
0127 stub DeferWindowPos
0128 stub DeleteMenu
......@@ -141,7 +142,7 @@ base 1
0137 stub DialogBoxIndirectParamW
0138 stub DialogBoxParamA
0139 stub DialogBoxParamW
0140 stub DispatchMessageA
0140 stdcall DispatchMessageA(ptr) USER32_DispatchMessageA
0141 stub DispatchMessageW
0142 stub DlgDirListA
0143 stub DlgDirListComboBoxA
......@@ -176,7 +177,7 @@ base 1
0172 stub EndDeferWindowPos
0173 stub EndDialog
0174 stub EndMenu
0175 stub EndPaint
0175 stdcall EndPaint(long ptr) USER32_EndPaint
0176 stub EndTask
0177 stub EnumChildWindows
0178 stub EnumClipboardFormats
......@@ -270,7 +271,7 @@ base 1
0266 stub GetMenuState
0267 stub GetMenuStringA
0268 stub GetMenuStringW
0269 stub GetMessageA
0269 stdcall GetMessageA(ptr long long long) USER32_GetMessageA
0270 stub GetMessageExtraInfo
0271 stub GetMessagePos
0272 stub GetMessageTime
......@@ -427,7 +428,7 @@ base 1
0423 stub PtInRect
0424 stub QuerySendMessage
0425 stub RedrawWindow
0426 stub RegisterClassA
0426 stdcall RegisterClassA(ptr) USER32_RegisterClassA
0427 stub RegisterClassExA
0428 stub RegisterClassExW
0429 stub RegisterClassW
......@@ -534,7 +535,7 @@ base 1
0530 stub ShowOwnedPopups
0531 stub ShowScrollBar
0532 stub ShowStartGlass
0533 stub ShowWindow
0533 stdcall ShowWindow(long long) ShowWindow
0534 stub ShowWindowAsync
0535 stub SubtractRect
0536 stub SwapMouseButton
......@@ -567,7 +568,7 @@ base 1
0563 stub UnregisterClassW
0564 stub UnregisterHotKey
0565 stub UpdatePerUserSystemParameters
0566 stub UpdateWindow
0566 stdcall UpdateWindow(long) UpdateWindow
0567 stub UserClientDllInitialize
0568 stub UserRealizePalette
0569 stub UserRegisterWowHandlers
......
......@@ -26,6 +26,9 @@ id 24
23 pascal16 CARET_Callback(word word word long) CARET_Callback
24 pascal16 TASK_Reschedule() TASK_Reschedule
25 pascal MMSysTimeCallback(word word word long) MMSysTimeCallback
26 register Win32CallToStart() PE_Win32CallToStart
27 pascal EntryAddrProc(word word) MODULE_GetEntryPoint
28 pascal MyAlloc(word word word) MODULE_AllocateSegment
# Interrupt vectors 0-255 are ordinals 100-355
# The 'word' parameter are the flags pushed on the stack by the interrupt
......@@ -286,4 +289,3 @@ id 24
353 register INT_IntfdHandler(word) INT_DummyHandler
354 register INT_IntfeHandler(word) INT_DummyHandler
355 register INT_IntffHandler(word) INT_DummyHandler
/*
* structure definitions for aliases
*
* Copyright 1995 Martin von Loewis
*
*/
typedef struct _FUNCTIONALIAS{
DWORD wine;
DWORD win16;
DWORD win32;
} FUNCTIONALIAS;
extern int ALIAS_UseAliases;
typedef struct _ALIASHASH{
DWORD used;
int recno;
} ALIASHASH;
void ALIAS_RegisterAlias(DWORD,DWORD,DWORD);
FUNCTIONALIAS* ALIAS_LookupAlias(DWORD);
......@@ -22,8 +22,10 @@ extern int CallTo32_LargeStack( int (*func)(), int nbargs, ... );
/* func ds parameters */
extern WORD CallTo16_word_ ( FARPROC, WORD );
extern WORD CallTo16_word_ww ( FARPROC, WORD, WORD, WORD );
extern WORD CallTo16_word_wl ( FARPROC, WORD, WORD, LONG );
extern WORD CallTo16_word_ll ( FARPROC, WORD, LONG, LONG );
extern WORD CallTo16_word_www ( FARPROC, WORD, WORD, WORD, WORD );
extern WORD CallTo16_word_wwl ( FARPROC, WORD, WORD, WORD, LONG );
extern WORD CallTo16_word_wlw ( FARPROC, WORD, WORD, LONG, WORD );
extern LONG CallTo16_long_wwl ( FARPROC, WORD, WORD, WORD, LONG );
......
......@@ -17,24 +17,23 @@ typedef struct {
BYTE byBitsPix; /* bits per pixel */
} CURSORICONINFO, FAR *LPCURSORICONINFO;
typedef struct {
WORD cdReserved;
WORD cdType;
WORD cdCount;
} CURSORDIR;
typedef struct {
BYTE Width;
BYTE Reserved1;
BYTE Height;
BYTE Reserved2;
WORD curXHotspot;
WORD curYHotspot;
WORD Width;
WORD Height;
WORD Planes;
WORD BitCount;
DWORD curDIBSize;
DWORD curDIBOffset;
WORD curDIBOffset;
} CURSORDESCRIP;
typedef struct {
CURSORDESCRIP descriptor;
HBITMAP hBitmap;
Display *display;
Pixmap pixshape;
Pixmap pixmask;
Cursor xcursor;
typedef struct {
Cursor xcursor;
} CURSORALLOC;
extern void CURSOR_SetWinCursor( HWND hwnd, HCURSOR hcursor ); /* cursor.c */
......
......@@ -21,7 +21,7 @@ void ATOM_GlobalInit(void);
ATOM DDE_GlobalAddAtom( SEGPTR str );
ATOM DDE_GlobalDeleteAtom( ATOM atom );
ATOM DDE_GlobalFindAtom( SEGPTR str );
WORD DDE_GlobalGetAtomName( ATOM atom, LPSTR buffer, short count )
WORD DDE_GlobalGetAtomName( ATOM atom, LPSTR buffer, short count );
#endif /* CONFIG_IPC */
......
......@@ -11,11 +11,6 @@
extern BOOL DIALOG_Init(void);
extern HWND DIALOG_GetFirstTabItem( HWND hwndDlg );
extern int DialogBoxIndirectPtr(HINSTANCE hInst, LPCSTR dlgTemplate,
HWND owner, WNDPROC dlgProc);
extern int DialogBoxIndirectParamPtr(HINSTANCE hInst, LPCSTR dlgTemplate,
HWND owner, WNDPROC dlgProc,
LPARAM param);
#ifndef WINELIB
#pragma pack(1)
......@@ -67,12 +62,12 @@ typedef struct
/* Dialog template */
typedef struct
{
DLGTEMPLATEHEADER * header;
unsigned char * menuName;
LPSTR className;
LPSTR caption;
WORD pointSize;
LPSTR faceName;
DLGTEMPLATEHEADER header;
SEGPTR menuName;
SEGPTR className;
SEGPTR caption;
WORD pointSize;
SEGPTR faceName;
} DLGTEMPLATE;
#ifndef WINELIB
......
......@@ -12,32 +12,6 @@
#define MAX_NAME_LENGTH 64
struct pe_data {
struct pe_header_s *pe_header;
struct pe_segment_table *pe_seg;
struct PE_Import_Directory *pe_import;
struct PE_Export_Directory *pe_export;
struct PE_Resource_Directory *pe_resource;
int resource_offset; /* offset to resource typedirectory in file */
};
struct w_files
{
struct w_files * next;
char * name; /* Name, as it appears in the windows binaries */
char * filename; /* Actual name of the unix file that satisfies this */
int type; /* DLL or EXE */
int fd;
unsigned short hinstance;
HANDLE hModule;
int initialised;
struct mz_header_s *mz_header;
struct pe_data *pe;
};
extern struct w_files *wine_files;
#define DLL 0
#define EXE 1
......
......@@ -48,6 +48,7 @@ typedef struct
HANDLE nrname_handle; /* Handle to non-resident name table in memory */
WORD min_swap_area; /* Min. swap area size */
WORD expected_version; /* Expected Windows version */
WORD self_loading_sel; /* Selector used for self-loading apps. procs */
} NE_MODULE;
/* Loaded file info */
......@@ -71,7 +72,25 @@ typedef struct
WORD selector; /* Selector of segment in memory */
} SEGTABLEENTRY;
/* Self-loading modules contain this structure in their first segment */
typedef struct
{
WORD version; /* Must be 0xA0 */
WORD reserved;
FARPROC BootApp; /* startup procedure */
FARPROC LoadAppSeg; /* procedure to load a segment */
FARPROC reserved2;
FARPROC MyAlloc; /* memory allocation procedure,
* wine must write this field */
FARPROC EntryAddrProc;
FARPROC ExitProc; /* exit procedure */
WORD reserved3[4];
FARPROC SetOwner; /* Set Owner procedure, exported by wine */
} SELFLOADHEADER;
/* Parameters for LoadModule() */
typedef struct
{
HANDLE hEnvironment; /* Environment segment */
......
......@@ -4,9 +4,17 @@
typedef LPCSTR OLE_LPCSTR;
/* object types */
#define OT_LINK 1
#define OT_EMBEDDED 2
#define OT_STATIC 3
/* activate verbs */
#define OLEVERB_PRIMARY 0
typedef enum
{
OLE_OK=0, /* Yes Sir! */
OLE_OK,
OLE_WAIT_FOR_RELEASE,
OLE_BUSY,
OLE_ERROR_PROTECT_ONLY,
......@@ -65,28 +73,64 @@ typedef enum
OLE_WARN_DELETE_DATA = 1000
} OLESTATUS;
typedef enum{
typedef enum {
OLE_SERVER_MULTI,
OLE_SERVER_SINGLE
} OLE_SERVER_USE;
/* dunno if the values are correct, somebody please check */
typedef enum {
OLE_CHANGED,
OLE_SAVED,
OLE_CLOSED,
OLE_RENAMED,
OLE_QUERY_PAINT,
OLE_QUERY_RETRY,
OLE_RELEASE,
OLE_RENAMED,
OLE_SAVED
OLE_QUERY_RETRY
} OLE_NOTIFICATION;
typedef enum {
olerender_none,
olerender_draw,
olerender_format
} OLEOPT_RENDER;
typedef enum {
oleupdate_always,
oleupdate_onsave,
oleupdate_oncall,
oleupdate_onclose,
} OLEOPT_UPDATE;
typedef LONG LHSERVER;
typedef LONG LHSERVERDOC;
typedef LONG LHCLIENTDOC;
typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
typedef LONG OLEOPT_UPDATE;/* dunno about this type, please change/add */
typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;/* dunno about this type, please change/add */
typedef LONG *OLE_RELEASE_METHOD;/* dunno */
typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;
typedef enum {
OLE_NONE, /* none */
OLE_DELETE, /* delete object */
OLE_LNKPASTE, /* link paste */
OLE_EMBPASTE, /* paste(and update) */
OLE_SHOW,
OLE_RUN,
OLE_ACTIVATE,
OLE_UPDATE,
OLE_CLOSE,
OLE_RECONNECT,
OLE_SETUPDATEOPTIONS,
OLE_SERVERRUNLAUNCH, /* unlaunch (terminate?) server */
OLE_LOADFROMSTREAM, /* (auto reconnect) */
OLE_SETDATA, /* OleSetData */
OLE_REQUESTDATA, /* OleRequestData */
OLE_OTHER,
OLE_CREATE,
OLE_CREATEFROMTEMPLATE,
OLE_CREATELINKFROMFILE,
OLE_COPYFROMLNK,
OLE_CREATREFROMFILE,
OLE_CREATEINVISIBLE
} OLE_RELEASE_METHOD;
typedef struct _OLETARGETDEVICE {
UINT otdDeviceNameOffset;
......
......@@ -12,6 +12,7 @@ struct options
char * desktopGeometry; /* NULL when no desktop */
char * programName; /* To use when loading resources */
int usePrivateMap;
int useFixedMap;
int synchronous; /* X synchronous mode */
int backingstore; /* Use backing store */
short cmdShow;
......
#ifndef __WINE_PE_IMAGE_H
#define __WINE_PE_IMAGE_H
extern void *RELAY32_GetEntryPoint(char *dll_name, char *item, int hint);
#include "windows.h"
struct pe_data {
struct pe_header_s *pe_header;
struct pe_segment_table *pe_seg;
struct PE_Import_Directory *pe_import;
struct PE_Export_Directory *pe_export;
struct PE_Resource_Directory *pe_resource;
int resource_offset; /* offset to resource typedirectory in file */
};
struct w_files
{
struct w_files * next;
char * name; /* Name, as it appears in the windows binaries */
char * filename; /* Actual name of the unix file that satisfies this */
int type; /* DLL or EXE */
int fd;
unsigned short hinstance;
HANDLE hModule;
int initialised;
struct mz_header_s *mz_header;
struct pe_data *pe;
OFSTRUCT ofs;
};
extern int PE_unloadImage(struct w_files *wpnt);
extern int PE_StartProgram(struct w_files *wpnt);
extern void PE_InitDLL(struct w_files *wpnt);
......
/*
* Relay32 definitions
*
* Copyright 1995 Martin von Loewis
*/
void *RELAY32_GetEntryPoint(char *dll_name, char *item, int hint);
LONG RELAY32_CallWindowProc(WNDPROC,int,int,int,int);
typedef struct tagWNDCLASSA{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
DWORD hInstance;
DWORD hIcon;
DWORD hCursor;
DWORD hbrBackground;
char* lpszMenuName;
char* lpszClassName;
}WNDCLASSA;
struct WIN32_POINT{
LONG x;
LONG y;
};
struct WIN32_MSG{
DWORD hwnd;
DWORD message;
DWORD wParam;
DWORD lParam;
DWORD time;
struct WIN32_POINT pt;
};
struct WIN32_RECT{
LONG left;
LONG top;
LONG right;
LONG bottom;
};
struct WIN32_PAINTSTRUCT{
DWORD hdc;
DWORD fErase;
struct WIN32_RECT rcPaint;
DWORD fRestore;
DWORD fIncUpdate;
BYTE rgbReserved[32];
};
ATOM USER32_RegisterClassA(WNDCLASSA *);
LRESULT USER32_DefWindowProcA(DWORD hwnd,DWORD msg,DWORD wParam,DWORD lParam);
BOOL USER32_GetMessageA(struct WIN32_MSG* lpmsg,DWORD hwnd,DWORD min,DWORD max);
HDC USER32_BeginPaint(DWORD hwnd,struct WIN32_PAINTSTRUCT *lpps);
BOOL USER32_EndPaint(DWORD hwnd,struct WIN32_PAINTSTRUCT *lpps);
......@@ -98,8 +98,8 @@ typedef struct {
INT y;
INT x;
LONG style WINE_PACKED;
char * lpszName WINE_PACKED;
char * lpszClass WINE_PACKED;
SEGPTR lpszName WINE_PACKED;
SEGPTR lpszClass WINE_PACKED;
DWORD dwExStyle WINE_PACKED;
} CREATESTRUCT, *LPCREATESTRUCT;
......@@ -111,8 +111,8 @@ typedef struct
typedef struct
{
LPSTR szClass;
LPSTR szTitle;
SEGPTR szClass;
SEGPTR szTitle;
HANDLE hOwner;
INT x;
INT y;
......@@ -2427,6 +2427,7 @@ F(WORD,GetCaretBlinkTime)
F(WORD,GetCurrentPDB)
F(WORD,GetDoubleClickTime)
F(WORD,GetNumTasks)
F(WORD,GetTaskDS)
F(int,CountClipboardFormats)
F(int,GetKBCodePage)
F(int,GetThresholdStatus)
......@@ -2957,7 +2958,7 @@ Fd(HRGN,CreateEllipticRgn,short,a,short,b,short,c,short,d)
Fd(HRGN,CreatePolyPolygonRgn,LPPOINT,a,LPINT,b,short,c,short,d)
Fd(HRGN,CreateRectRgn,short,a,short,b,short,c,short,d)
Fd(HWND,CreateDialog,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d)
Fd(HWND,CreateDialogIndirect,HANDLE,a,LPCSTR,b,HWND,c,WNDPROC,d)
Fd(HWND,CreateDialogIndirect,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d)
Fd(INT,GetTempFileName,BYTE,a,LPCSTR,b,UINT,c,LPSTR,d)
Fd(LONG,DefDlgProc,HWND,a,WORD,b,WORD,c,LONG,d)
Fd(LONG,DefMDIChildProc,HWND,a,WORD,b,WORD,c,LONG,d)
......@@ -3004,7 +3005,7 @@ Fe(DWORD,GetTabbedTextExtent,HDC,a,LPSTR,b,int,c,int,d,LPINT,e)
Fe(DWORD,ScaleViewportExt,HDC,a,short,b,short,c,short,d,short,e)
Fe(DWORD,ScaleWindowExt,HDC,a,short,b,short,c,short,d,short,e)
Fe(HBITMAP,CreateBitmap,short,a,short,b,BYTE,c,BYTE,d,LPSTR,e)
Fe(HWND,CreateDialogIndirectParam,HANDLE,a,LPCSTR,b,HWND,c,WNDPROC,d,LPARAM,e)
Fe(HWND,CreateDialogIndirectParam,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d,LPARAM,e)
Fe(HWND,CreateDialogParam,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d,LPARAM,e)
Fe(LONG,CallWindowProc,WNDPROC,a,HWND,b,WORD,c,WORD,d,LONG,e)
Fe(LONG,DefFrameProc,HWND,a,HWND,b,WORD,c,WORD,d,LONG,e)
......@@ -3054,8 +3055,8 @@ Fi(BOOL,Chord,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,ySt
Fi(BOOL,GrayString,HDC,a,HBRUSH,b,FARPROC,gsprc,LPARAM,lParam,INT,cch,INT,x,INT,y,INT,cx,INT,cy)
Fi(BOOL,Pie,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd)
Fk(BOOL,StretchBlt,HDC,a,short,b,short,c,short,d,short,e,HDC,f,short,g,short,h,short,i,short,j,DWORD,k)
Fk(HWND,CreateWindow,LPSTR,a,LPSTR,b,DWORD,c,short,d,short,e,short,f,short,g,HWND,h,HMENU,i,HANDLE,j,SEGPTR,k)
Fl(HWND,CreateWindowEx,DWORD,a,LPSTR,b,LPSTR,c,DWORD,d,short,e,short,f,short,g,short,h,HWND,i,HMENU,j,HANDLE,k,SEGPTR,l)
Fk(HWND,CreateWindow,SEGPTR,a,SEGPTR,b,DWORD,c,short,d,short,e,short,f,short,g,HWND,h,HMENU,i,HANDLE,j,SEGPTR,k)
Fl(HWND,CreateWindowEx,DWORD,a,SEGPTR,b,SEGPTR,c,DWORD,d,short,e,short,f,short,g,short,h,HWND,i,HMENU,j,HANDLE,k,SEGPTR,l)
Fl(int,SetDIBitsToDevice,HDC,a,short,b,short,c,WORD,d,WORD,e,WORD,f,WORD,g,WORD,h,WORD,i,LPSTR,j,LPBITMAPINFO,k,WORD,l)
Fm(int,StretchDIBits,HDC,a,WORD,b,WORD,c,WORD,d,WORD,e,WORD,f,WORD,g,WORD,h,WORD,i,LPSTR,j,LPBITMAPINFO,k,WORD,l,DWORD,m)
Fn(HFONT,CreateFont,int,a,int,b,int,c,int,d,int,e,BYTE,f,BYTE,g,BYTE,h,BYTE,i,BYTE,j,BYTE,k,BYTE,l,BYTE,m,LPSTR,n)
......
......@@ -20,6 +20,7 @@ typedef struct
} DWP;
extern void WINPOS_FindIconPos( HWND hwnd );
extern HWND WINPOS_ChangeActiveWindow( HWND hwnd, BOOL mouseMsg );
extern LONG WINPOS_SendNCCalcSize( HWND hwnd, BOOL calcValidRect,
RECT *newWindowRect, RECT *oldWindowRect,
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
MODULE = ipc
SRCS = bit_array.c \
dde_atom.c \
dde_mem.c \
dde_proc.c \
generic_hash.c \
shm_block.c \
shm_fragment.c \
shm_main_blk.c \
shm_semaph.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
TOPSRC = @top_srcdir@
MODULE = ipc
C_SRCS = \
bit_array.c \
dde_atom.c \
dde_mem.c \
dde_proc.c \
generic_hash.c \
shm_block.c \
shm_fragment.c \
shm_main_blk.c \
shm_semaph.c
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
MODULE = loader
SRCS = main.c module.c ne_image.c ne_resource.c pe_image.c \
pe_resource.c signal.c resource.c task.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
TOPSRC = @top_srcdir@
MODULE = loader
C_SRCS = \
main.c \
module.c \
ne_image.c \
ne_resource.c \
pe_image.c \
pe_resource.c \
signal.c \
resource.c \
task.c
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -23,6 +23,7 @@
#include "stddebug.h"
#include "debug.h"
#include "callback.h"
static HMODULE hFirstModule = 0;
static HMODULE hCachedModule = 0; /* Module cached by MODULE_OpenFile */
......@@ -244,7 +245,43 @@ int MODULE_OpenFile( HMODULE hModule )
name, cachedfd );
return cachedfd;
}
/***********************************************************************
* MODULE_Ne2MemFlags
*/
/* This function translates NE segment flags to GlobalAlloc flags */
static WORD MODULE_Ne2MemFlags(WORD flags)
{
WORD memflags = 0;
#if 0
if (flags & NE_SEGFLAGS_DISCARDABLE)
memflags |= GMEM_DISCARDABLE;
if (flags & NE_SEGFLAGS_MOVEABLE ||
( ! (flags & NE_SEGFLAGS_DATA) &&
! (flags & NE_SEGFLAGS_LOADED) &&
! (flags & NE_SEGFLAGS_ALLOCATED)
)
)
memflags |= GMEM_MOVEABLE;
memflags |= GMEM_ZEROINIT;
#else
memflags = GMEM_ZEROINIT | GMEM_FIXED;
return memflags;
#endif
}
/***********************************************************************
* MODULE_AllocateSegment (WINPROCS.26)
*/
DWORD MODULE_AllocateSegment(WORD wFlags, WORD wSize, WORD wElem)
{
WORD size = wSize << wElem;
WORD hMem = GlobalAlloc( MODULE_Ne2MemFlags(wFlags), size);
WORD selector = HIWORD(GlobalLock(hMem));
return MAKELONG(hMem, selector);
}
/***********************************************************************
* MODULE_CreateSegments
......@@ -263,7 +300,7 @@ static BOOL MODULE_CreateSegments( HMODULE hModule )
if (i == pModule->ss) minsize += pModule->stack_size;
/* The DGROUP is allocated by MODULE_CreateInstance */
if (i == pModule->dgroup) continue;
pSegment->selector = GLOBAL_Alloc( GMEM_ZEROINIT | GMEM_FIXED,
pSegment->selector = GLOBAL_Alloc( MODULE_Ne2MemFlags(pSegment->flags),
minsize, hModule,
!(pSegment->flags & NE_SEGFLAGS_DATA),
FALSE,
......@@ -297,7 +334,7 @@ static HINSTANCE MODULE_GetInstance( HMODULE hModule )
/***********************************************************************
* MODULE_CreateInstance
*/
static HINSTANCE MODULE_CreateInstance( HMODULE hModule, LOADPARAMS *params )
HINSTANCE MODULE_CreateInstance( HMODULE hModule, LOADPARAMS *params )
{
SEGTABLEENTRY *pSegment;
NE_MODULE *pModule;
......@@ -848,6 +885,8 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
if ((hModule = MODULE_LoadExeHeader( fd, &ofs )) < 32)
{
if(hModule == 21)
return PE_LoadModule(fd,&ofs,paramBlock);
close( fd );
fprintf( stderr, "LoadModule: can't load '%s', error=%d\n",
name, hModule );
......@@ -908,7 +947,46 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
/* Load the segments */
for (i = 1; i <= pModule->seg_count; i++) NE_LoadSegment( hModule, i );
if (pModule->flags & NE_FFLAGS_SELFLOAD)
{
/* Handle self loading modules */
SEGTABLEENTRY * pSegTable = (SEGTABLEENTRY *) NE_SEG_TABLE(pModule);
SELFLOADHEADER *selfloadheader;
HMODULE hselfload = GetModuleHandle("WINPROCS");
WORD oldss, oldsp, saved_dgroup = pSegTable[pModule->dgroup - 1].selector;
fprintf (stderr, "Warning: %*.*s is a self-loading module\n"
"Support for self-loading modules is very experimental\n",
*((BYTE*)pModule + pModule->name_table),
*((BYTE*)pModule + pModule->name_table),
(char *)pModule + pModule->name_table + 1);
NE_LoadSegment( hModule, 1 );
selfloadheader = (SELFLOADHEADER *)
PTR_SEG_OFF_TO_LIN(pSegTable->selector, 0);
selfloadheader->EntryAddrProc =
MODULE_GetEntryPoint(hselfload,27);
selfloadheader->MyAlloc = MODULE_GetEntryPoint(hselfload,28);
selfloadheader->SetOwner = MODULE_GetEntryPoint(GetModuleHandle("KERNEL"),403);
pModule->self_loading_sel = GlobalHandleToSel(
GLOBAL_Alloc (GMEM_ZEROINIT,
0xFF00, hModule, FALSE, FALSE, FALSE)
);
oldss = IF1632_Saved16_ss;
oldsp = IF1632_Saved16_sp;
IF1632_Saved16_ss = pModule->self_loading_sel;
IF1632_Saved16_sp = 0xFF00;
CallTo16_word_ww (selfloadheader->BootApp,
pModule->self_loading_sel, hModule, fd);
/* some BootApp procs overwrite the selector of dgroup */
pSegTable[pModule->dgroup - 1].selector = saved_dgroup;
IF1632_Saved16_ss = oldss;
IF1632_Saved16_sp = oldsp;
for (i = 2; i <= pModule->seg_count; i++) NE_LoadSegment( hModule, i );
}
else
{
for (i = 1; i <= pModule->seg_count; i++)
NE_LoadSegment( hModule, i );
}
/* Fixup the functions prologs */
......
......@@ -59,7 +59,41 @@ BOOL NE_LoadSegment( HMODULE hModule, WORD segnum )
lseek( fd, pSeg->filepos << pModule->alignment, SEEK_SET );
size = pSeg->size ? pSeg->size : 0x10000;
mem = GlobalLock(pSeg->selector);
if (!(pSeg->flags & NE_SEGFLAGS_ITERATED))
if (pModule->flags & NE_FFLAGS_SELFLOAD && segnum > 1) {
/* Implement self loading segments */
SELFLOADHEADER *selfloadheader;
WORD oldss, oldsp, oldselector, newselector;
selfloadheader = (SELFLOADHEADER *)
PTR_SEG_OFF_TO_LIN(pSegTable->selector,0);
oldss = IF1632_Saved16_ss;
oldsp = IF1632_Saved16_sp;
oldselector = pSeg->selector;
IF1632_Saved16_ss = pModule->self_loading_sel;
IF1632_Saved16_sp = 0xFF00;
newselector = CallTo16_word_www(selfloadheader->LoadAppSeg,
pModule->self_loading_sel, hModule, fd, segnum);
if (newselector != oldselector) {
/* Self loaders like creating their own selectors;
* they love asking for trouble to Wine developers
*/
if (segnum == pModule->dgroup) {
memcpy(PTR_SEG_OFF_TO_LIN(oldselector,0),
PTR_SEG_OFF_TO_LIN(newselector,0),
pSeg->minsize ? pSeg->minsize : 0x10000);
FreeSelector(newselector);
pSeg->selector = oldselector;
fprintf(stderr, "A new selector was allocated for the dgroup segment\n"
"Old selector is %d, new one is %d", oldselector, newselector);
} else {
FreeSelector(pSeg->selector);
pSeg->selector = newselector;
}
}
IF1632_Saved16_ss = oldss;
IF1632_Saved16_sp = oldsp;
}
else if (!(pSeg->flags & NE_SEGFLAGS_ITERATED))
read(fd, mem, size);
else {
/*
......@@ -85,6 +119,7 @@ BOOL NE_LoadSegment( HMODULE hModule, WORD segnum )
free(buff);
}
pSeg->flags |= NE_SEGFLAGS_LOADED;
if (!(pSeg->flags & NE_SEGFLAGS_RELOC_DATA))
return TRUE; /* No relocation data, we are done */
......@@ -474,3 +509,15 @@ void NE_InitializeDLLs( HMODULE hModule )
}
NE_InitDLL( hModule );
}
/***********************************************************************
* NE_PatchCodeHandle
*
* Needed for self-loading modules.
*/
/* It does nothing */
void PatchCodeHandle(HANDLE hSel)
{
}
......@@ -18,6 +18,16 @@
#include "neexe.h"
#include "peexe.h"
#include "pe_image.h"
#include "relay32.h"
#include "module.h"
#include "alias.h"
#include "global.h"
#include "task.h"
#include "ldt.h"
#include "registers.h"
#include "stddebug.h"
#include "debug.h"
#define MAP_ANONYMOUS 0x20
......@@ -167,6 +177,7 @@ HINSTANCE PE_LoadImage(struct w_files *wpnt)
int i, result;
wpnt->pe = malloc(sizeof(struct pe_data));
memset(wpnt->pe,0,sizeof(struct pe_data));
wpnt->pe->pe_header = malloc(sizeof(struct pe_header_s));
/* read PE header */
......@@ -225,6 +236,124 @@ HINSTANCE PE_LoadImage(struct w_files *wpnt)
return (wpnt->hinstance);
}
HINSTANCE PE_LoadModule(int fd, OFSTRUCT *ofs, LOADPARAMS* params)
{
struct w_files *wpnt;
int size;
NE_MODULE *pModule;
LOADEDFILEINFO *pFileInfo;
SEGTABLEENTRY *pSegment;
char *pStr;
DWORD cts;
HMODULE hModule;
HINSTANCE hInstance;
ALIAS_UseAliases=1;
wpnt=malloc(sizeof(struct w_files));
wpnt->next=wine_files;
wine_files=wpnt;
wpnt->ofs=*ofs;
wpnt->fd=fd;
wpnt->type=0;
wpnt->hinstance=0;
wpnt->hModule=0;
wpnt->initialised=0;
lseek(fd,0,SEEK_SET);
wpnt->mz_header=malloc(sizeof(struct mz_header_s));
read(fd,wpnt->mz_header,sizeof(struct mz_header_s));
size=sizeof(NE_MODULE) +
/* loaded file info */
sizeof(LOADEDFILEINFO) + strlen(ofs->szPathName) +
/* segment table: DS,CS */
2 * sizeof(SEGTABLEENTRY) +
/* name table */
9 +
/* several empty tables */
8;
hModule = GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, size );
wpnt->hModule=hModule;
if (!hModule) return 11; /* invalid exe */
FarSetOwner( hModule, hModule );
pModule = GlobalLock(hModule);
/* Set all used entries */
pModule->magic=NE_SIGNATURE;
pModule->count=1;
pModule->next=0;
pModule->flags=0;
pModule->dgroup=1;
pModule->ss=1;
pModule->cs=2;
/* Who wants to LocalAlloc for a PE Module? */
pModule->heap_size=0x1000;
pModule->stack_size=0xF000;
pModule->seg_count=1;
pModule->modref_count=0;
pModule->nrname_size=0;
pModule->seg_table=sizeof(NE_MODULE)+
sizeof(LOADEDFILEINFO)+strlen(ofs->szPathName);
pModule->fileinfo=sizeof(NE_MODULE);
pModule->os_flags=NE_OSFLAGS_WINDOWS;
pModule->expected_version=0x30A;
pFileInfo=(LOADEDFILEINFO *)(pModule + 1);
pFileInfo->length = sizeof(LOADEDFILEINFO)+strlen(ofs->szPathName)-1;
strcpy(pFileInfo->filename,ofs->szPathName);
pSegment=(SEGTABLEENTRY*)((char*)pFileInfo+pFileInfo->length+1);
pModule->dgroup_entry=(int)pSegment-(int)pModule;
pSegment->size=0;
pSegment->flags=NE_SEGFLAGS_DATA;
pSegment->minsize=0x1000;
pSegment++;
cts=GetWndProcEntry16("Win32CallToStart");
pSegment->selector=cts>>16;
pModule->ip=cts & 0xFFFF;
pSegment++;
pStr=(char*)pSegment;
pModule->name_table=(int)pStr-(int)pModule;
strcpy(pStr,"\x08W32SXXXX");
pStr+=9;
/* All tables zero terminated */
pModule->res_table=pModule->import_table=pModule->entry_table=
(int)pStr-(int)pModule;
PE_LoadImage(wpnt);
pModule->heap_size=0x1000;
pModule->stack_size=0xE000;
/* CreateInstance allocates now 64KB */
hInstance=MODULE_CreateInstance(hModule);
wpnt->hinstance=hInstance;
TASK_CreateTask(hModule,hInstance,0,
params->hEnvironment,(LPSTR)PTR_SEG_TO_LIN(params->cmdLine),
*((WORD*)PTR_SEG_TO_LIN(params->showCmd)+1));
return hInstance;
}
void PE_Win32CallToStart(struct sigcontext_struct context)
{
int fs;
struct w_files *wpnt=wine_files;
fs=GlobalAlloc(GHND,0x10000);
fprintf(stddeb,"Going to start Win32 program\n");
InitTask(context);
USER_InitApp(wpnt->hModule);
__asm__ __volatile__("movw %w0,%%fs"::"r" (fs));
((void(*)())(load_addr+wpnt->pe->pe_header->opt_coff.AddressOfEntryPoint))();
}
int PE_UnloadImage(struct w_files *wpnt)
{
printf("PEunloadImage() called!\n");
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
TOPSRC = @top_srcdir@
MODULE = memory
MODULE = memory
SRCS = \
C_SRCS = \
atom.c \
global.c \
ldt.c \
local.c \
selector.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -825,8 +825,11 @@ WORD LOCAL_Lock( WORD ds, HLOCAL handle )
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
dprintf_local( stddeb, "LocalLock: %04x ", handle );
if (HANDLE_MOVEABLE(handle)) {
handle = *(WORD *)(ptr + handle);
if (HANDLE_MOVEABLE(handle))
{
LOCALHANDLEENTRY *pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
if (pEntry->lock < 255) pEntry->lock++;
handle = pEntry->addr;
}
dprintf_local( stddeb, "returning %04x\n", handle );
return handle;
......@@ -838,7 +841,18 @@ WORD LOCAL_Lock( WORD ds, HLOCAL handle )
*/
BOOL LOCAL_Unlock( WORD ds, HLOCAL handle )
{
return TRUE;
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
dprintf_local( stddeb, "LocalUnlock: %04x\n", handle );
if (HANDLE_MOVEABLE(handle))
{
LOCALHANDLEENTRY *pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
if (!pEntry->lock || (pEntry->lock == 255)) return FALSE;
/* For moveable block, return the new lock count */
/* (see _Windows_Internals_ p. 197) */
return --pEntry->lock;
}
else return FALSE;
}
......
......@@ -309,14 +309,14 @@ WORD SelectorAccessRights( WORD sel, WORD op, WORD val )
if (op == 0) /* get */
{
return 1 /* accessed */ |
(entry.read_only << 1) |
((entry.read_only == 0) << 1) |
(entry.type << 2) |
(entry.seg_32bit << 14) |
(entry.limit_in_pages << 15);
}
else /* set */
{
entry.read_only = val & 2;
entry.read_only = (val & 2 == 0);
entry.type = (val >> 2) & 3;
entry.seg_32bit = val & 0x4000;
entry.limit_in_pages = val & 0x8000;
......
......@@ -29,6 +29,7 @@ SRCS = \
spy.c \
stress.c \
user.c \
user32.c \
winsocket.c
OBJS = $(SRCS:.c=.o)
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include -I$(TOPSRC)
LD = @LD@
LANG = @LANG@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
@SET_MAKE@
MODULE = misc
SRCS = clipboard.c comm.c commdlg.c compobj.c dos_fs.c \
driver.c exec.c escape.c file.c keyboard.c kernel32.c lstr.c \
main.c ole2.c ole2disp.c ole2nls.c olecli.c olesvr.c network.c \
profile.c rect.c shell.c sound.c spy.c stress.c user.c \
TOPSRC = @top_srcdir@
MODULE = misc
C_SRCS = \
clipboard.c \
comm.c \
commdlg.c \
compobj.c \
dos_fs.c \
driver.c \
exec.c \
escape.c \
file.c \
keyboard.c \
kernel32.c \
lstr.c \
main.c \
ole2.c \
ole2disp.c \
ole2nls.c \
olecli.c \
olesvr.c \
network.c \
profile.c \
rect.c \
shell.c \
sound.c \
spy.c \
stress.c \
user.c \
user32.c \
winsocket.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) $(LANG) -o $*.o $<
all: checkrc $(MODULE).o
checkrc: dummy
cd $(TOPSRC)/rc; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)'
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
cd $(TOPSRC)/rc; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LANG=$(LANG)'
countryclean:
rm -f ole2nls.o shell.o commdlg.o
langclean::
$(RM) ole2nls.o
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -29,12 +29,16 @@
#include "windows.h"
#include "msdos.h"
#include "dos_fs.h"
#include "autoconf.h"
#include "comm.h"
#include "task.h"
#include "stddebug.h"
#include "debug.h"
#ifndef WINE_INI_GLOBAL
/* Get the WINE_INI_GLOBAL definition from autoconf.h */
#include "autoconf.h"
#endif
#define WINE_INI_USER "~/.winerc"
#define MAX_DOS_DRIVES 26
......
......@@ -276,18 +276,15 @@ INT OpenFile (LPSTR lpFileName, LPOFSTRUCT ofs, WORD wStyle)
*((WORD*)(&ofs->reserved[0]))=
((now->tm_year * 0x200) + (now->tm_mon * 0x20) + now->tm_mday);
if (action & OF_VERIFY)
return (verify_time != *((int*)ofs->reserved));
if (action & OF_EXIST)
return 0;
if ((handle = _lopen( ofs->szPathName, wStyle )) == -1)
{
ofs->nErrCode = 2; /* not found */
return -1;
}
if (action & OF_EXIST) close(handle);
return handle;
}
......
......@@ -28,17 +28,20 @@
#include "stddebug.h"
#include "debug.h"
const char people[] = "Wine is available thanks to the work of "\
"Bob Amstadt, Dag Asheim, Martin Ayotte, Ross Biro, Erik Bos, Fons Botman, "\
"John Brezak, Andrew Bulhak, John Burton, Paul Falstad, Olaf Flebbe, "\
"Peter Galbavy, Cameron Heide, Jeffrey Hsu, Miguel de Icaza, "\
"Alexandre Julliard, Jon Konrath, Scott A. Laird, Martin von Loewis, "\
"Kenneth MacDonald, Peter MacDonald, William Magro, David Metcalfe, "\
"Michael Patra, John Richardson, Johannes Ruscheinski, Thomas Sandford, "\
"Constantine Sapuntzakis, Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey, "\
"William Smith, Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs, "\
"Linus Torvalds, Michael Veksler, Carl Williams, Karl Guenter Wuensch, "\
"Eric Youngdale, and James Youngman.";
const char people[] = "Wine is available thanks to the work of "
"Bob Amstadt, Dag Asheim, Martin Ayotte, Ross Biro, Erik Bos, "
"Fons Botman, John Brezak, Andrew Bulhak, John Burton, Paul Falstad, "
"Olaf Flebbe, Peter Galbavy, Ramon Garcia, Hans de Graaf, "
"Charles M. Hannum, Cameron Heide, Jochen Hoenicke, Jeffrey Hsu, "
"Miguel de Icaza, Alexandre Julliard, Jon Konrath, Scott A. Laird, "
"Martin von Loewis, Kenneth MacDonald, Peter MacDonald, William Magro, "
"Marcus Meissner, Graham Menhennitt, David Metcalfe, Michael Patra, "
"John Richardson, Johannes Ruscheinski, Thomas Sandford, "
"Constantine Sapuntzakis, Daniel Schepler, Bernd Schmidt, "
"Yngvi Sigurjonsson, Rick Sladkey, William Smith, Erik Svendsen, "
"Goran Thyni, Jimmy Tirtawangsa, Jon Tombs, Linus Torvalds, "
"Gregory Trubetskoy, Michael Veksler, Morten Welinder, Jan Willamowius, "
"Carl Williams, Karl Guenter Wuensch, Eric Youngdale, and James Youngman.";
#define WINE_CLASS "Wine" /* Class name for resources */
......@@ -64,6 +67,7 @@ struct options Options =
NULL, /* desktopGeometry */
NULL, /* programName */
FALSE, /* usePrivateMap */
FALSE, /* useFixedMap */
FALSE, /* synchronous */
FALSE, /* backing store */
SW_SHOWNORMAL, /* cmdShow */
......@@ -84,6 +88,7 @@ static XrmOptionDescRec optionsTable[] =
{ "-ipc", ".ipc", XrmoptionNoArg, (caddr_t)"off"},
{ "-name", ".name", XrmoptionSepArg, (caddr_t)NULL },
{ "-privatemap", ".privatemap", XrmoptionNoArg, (caddr_t)"on" },
{ "-fixedmap", ".fixedmap", XrmoptionNoArg, (caddr_t)NULL },
{ "-synchronous", ".synchronous", XrmoptionNoArg, (caddr_t)"on" },
{ "-debug", ".debug", XrmoptionNoArg, (caddr_t)"on" },
{ "-debugmsg", ".debugmsg", XrmoptionSepArg, (caddr_t)NULL },
......@@ -106,6 +111,7 @@ static XrmOptionDescRec optionsTable[] =
" -debug Enter debugger before starting application\n" \
" -name name Set the application name\n" \
" -privatemap Use a private color map\n" \
" -fixedmap Use a \"standard\" color map\n" \
" -synchronous Turn on synchronous display mode\n" \
" -backingstore Turn on backing store\n" \
" -spy file Obsolete. Use -debugmsg +spy for Spy messages\n" \
......@@ -302,6 +308,8 @@ static void MAIN_ParseOptions( int *argc, char *argv[] )
Options.cmdShow = SW_SHOWMINIMIZED;
if (MAIN_GetResource( db, ".privatemap", &value ))
Options.usePrivateMap = TRUE;
if (MAIN_GetResource( db, ".fixedmap", &value ))
Options.useFixedMap = TRUE;
if (MAIN_GetResource( db, ".synchronous", &value ))
Options.synchronous = TRUE;
if (MAIN_GetResource( db, ".backingstore", &value ))
......
......@@ -215,7 +215,7 @@ int WNetBrowseDialog(HWND hParent,WORD nType,LPSTR szPath)
*/
UINT WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize)
{
printf("EMPTY STUB !!! WNetGetUser('%s', %p, %p);\n",
printf("EMPTY STUB !!! WNetGetUser(%p, %p, %p);\n",
lpLocalName, lpUserName, lpSize);
return WN_NET_ERROR;
}
......
......@@ -24,6 +24,8 @@ DWORD WINAPI GetUserDefaultLCID()
return 9;
#elif #LANG(De)
return 7;
#elif #LANG(Es)
return 7; /* Just a Guess :-) */
#elif #LANG(No)
return 0x14;
#else
......
......@@ -8,11 +8,13 @@
#include <ctype.h>
#include "windows.h"
#include "shell.h"
#include "global.h"
#include "neexe.h"
#include "selectors.h"
#include "alias.h"
#include "relay32.h"
#include "../rc/sysres.h"
#include "dlgs.h"
#include "dialog.h"
#include "stddebug.h"
#include "debug.h"
......@@ -477,23 +479,39 @@ INT AboutDlgProc(HWND hWnd, WORD msg, WORD wParam, LONG lParam)
*/
INT ShellAbout(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon)
{
if (szApp) {
strcpy(AppName, szApp);
} else {
*AppName = 0;
}
if (szOtherStuff) {
strcpy(AppMisc, szOtherStuff);
} else {
*AppMisc = 0;
}
if (!hIcon) {
hIcon = LoadIcon(0,MAKEINTRESOURCE(OIC_WINEICON));
}
return DialogBoxIndirectParamPtr(GetWindowWord(hWnd, GWW_HINSTANCE),
sysres_DIALOG_SHELL_ABOUT_MSGBOX,
hWnd, GetWndProcEntry16("AboutDlgProc"),
hIcon);
HANDLE handle;
BOOL bRet;
DWORD WineProc,Win16Proc,Win32Proc;
static int initialized=0;
if (szApp) strcpy(AppName, szApp);
else *AppName = 0;
if (szOtherStuff) strcpy(AppMisc, szOtherStuff);
else *AppMisc = 0;
if (!hIcon) hIcon = LoadIcon(0,MAKEINTRESOURCE(OIC_WINEICON));
if(!initialized)
{
WineProc=(DWORD)AboutDlgProc;
Win16Proc=(DWORD)GetWndProcEntry16("AboutDlgProc");
Win32Proc=(DWORD)RELAY32_GetEntryPoint("WINPROCS32","AboutDlgProc",0);
ALIAS_RegisterAlias(WineProc,Win16Proc,Win32Proc);
initialized=1;
}
handle = GLOBAL_CreateBlock( GMEM_FIXED,
sysres_DIALOG_SHELL_ABOUT_MSGBOX.bytes,
sysres_DIALOG_SHELL_ABOUT_MSGBOX.size,
GetCurrentPDB(), FALSE, FALSE,
TRUE, NULL );
if (!handle) return FALSE;
bRet = DialogBoxIndirectParam( GetWindowWord( hWnd, GWW_HINSTANCE ),
handle, hWnd,
GetWndProcEntry16("AboutDlgProc"), hIcon );
GLOBAL_FreeBlock( handle );
return bRet;
}
/*************************************************************************
......
/*
* Win32 user functions
*
* Copyright 1995 Martin von Loewis
*/
/* This file contains only wrappers to existing Wine functions or trivial
stubs. 'Real' implementations go into context specific files */
#include <unistd.h>
#include "windows.h"
#include "winerror.h"
#include "relay32.h"
#include "alias.h"
#include "stackframe.h"
/* Structure copy functions */
static void MSG16to32(MSG *msg16,struct WIN32_MSG *msg32)
{
msg32->hwnd=msg16->hwnd;
msg32->message=msg16->message;
msg32->wParam=msg16->wParam;
msg32->lParam=msg16->lParam;
msg32->time=msg16->time;
msg32->pt.x=msg16->pt.x;
msg32->pt.y=msg16->pt.y;
}
static void MSG32to16(struct WIN32_MSG *msg32,MSG *msg16)
{
msg16->hwnd=msg32->hwnd;
msg16->message=msg32->message;
msg16->wParam=msg32->wParam;
msg16->lParam=msg32->lParam;
msg16->time=msg32->time;
msg16->pt.x=msg32->pt.x;
msg16->pt.y=msg32->pt.y;
}
/***********************************************************************
* RegisterClassA (USER32.426)
*/
ATOM USER32_RegisterClassA(WNDCLASSA* wndclass)
{
WNDCLASS copy;
char *s1,*s2;
copy.style=wndclass->style;
ALIAS_RegisterAlias(0,0,wndclass->lpfnWndProc);
copy.lpfnWndProc=wndclass->lpfnWndProc;
copy.cbClsExtra=wndclass->cbClsExtra;
copy.cbWndExtra=wndclass->cbWndExtra;
copy.hInstance=wndclass->hInstance;
copy.hIcon=wndclass->hIcon;
copy.hCursor=wndclass->hCursor;
copy.hbrBackground=wndclass->hbrBackground;
if(wndclass->lpszMenuName)
{
s1=alloca(strlen(wndclass->lpszMenuName)+1);
strcpy(s1,wndclass->lpszMenuName);
copy.lpszMenuName=MAKE_SEGPTR(s1);
}else
copy.lpszMenuName=0;
if(wndclass->lpszClassName)
{
s2=alloca(strlen(wndclass->lpszClassName)+1);
strcpy(s2,wndclass->lpszClassName);
copy.lpszClassName=MAKE_SEGPTR(s2);
}
return RegisterClass(&copy);
}
/***********************************************************************
* DefWindowProcA (USER32.125)
*/
LRESULT USER32_DefWindowProcA(DWORD hwnd,DWORD msg,DWORD wParam,DWORD lParam)
{
/* some messages certainly need special casing. We come to that later */
return DefWindowProc(hwnd,msg,wParam,lParam);
}
/***********************************************************************
* GetMessageA (USER32.269)
*/
BOOL USER32_GetMessageA(struct WIN32_MSG* lpmsg,DWORD hwnd,DWORD min,DWORD max)
{
BOOL ret;
MSG msg;
ret=GetMessage(MAKE_SEGPTR(&msg),hwnd,min,max);
MSG16to32(&msg,lpmsg);
return ret;
}
/***********************************************************************
* BeginPaint (USER32.9)
*/
HDC USER32_BeginPaint(DWORD hwnd,struct WIN32_PAINTSTRUCT *lpps)
{
PAINTSTRUCT ps;
HDC ret;
ret=BeginPaint(hwnd,&ps);
lpps->hdc=ps.hdc;
lpps->fErase=ps.fErase;
lpps->rcPaint.top=ps.rcPaint.top;
lpps->rcPaint.left=ps.rcPaint.left;
lpps->rcPaint.right=ps.rcPaint.right;
lpps->rcPaint.bottom=ps.rcPaint.bottom;
lpps->fRestore=ps.fRestore;
lpps->fIncUpdate=ps.fIncUpdate;
return ret;
}
/***********************************************************************
* EndPaint (USER32.175)
*/
BOOL USER32_EndPaint(DWORD hwnd,struct WIN32_PAINTSTRUCT *lpps)
{
PAINTSTRUCT ps;
ps.hdc=lpps->hdc;
ps.fErase=lpps->fErase;
ps.rcPaint.top=lpps->rcPaint.top;
ps.rcPaint.left=lpps->rcPaint.left;
ps.rcPaint.right=lpps->rcPaint.right;
ps.rcPaint.bottom=lpps->rcPaint.bottom;
ps.fRestore=lpps->fRestore;
ps.fIncUpdate=lpps->fIncUpdate;
EndPaint(hwnd,&ps);
return TRUE;
}
/***********************************************************************
* DispatchMessageA (USER32.140)
*/
LONG USER32_DispatchMessageA(struct WIN32_MSG* lpmsg)
{
MSG msg;
LONG ret;
MSG32to16(lpmsg,&msg);
ret=DispatchMessage(&msg);
MSG16to32(&msg,lpmsg);
return ret;
}
/***********************************************************************
* CreateWindowExA (USER32.82)
*/
DWORD USER32_CreateWindowExA(long flags,char* class,char *title,
long style,int x,int y,int width,int height,DWORD parent,DWORD menu,
DWORD instance,DWORD param)
{
char *classbuf, *titlebuf;
/*Have to translate CW_USEDEFAULT */
if(x==0x80000000)x=CW_USEDEFAULT;
if(width==0x80000000)width=CW_USEDEFAULT;
classbuf = alloca( strlen(class)+1 );
strcpy( classbuf, class );
titlebuf = alloca( strlen(title)+1 );
strcpy( titlebuf, title );
return CreateWindowEx( flags, MAKE_SEGPTR(classbuf), MAKE_SEGPTR(titlebuf),
style,x,y,width,height,parent,menu,instance,param );
}
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
TOPSRC = @top_srcdir@
MODULE = miscemu
MODULE = miscemu
SRCS = \
C_SRCS = \
dosmem.c \
dpmi.c \
emulate.c \
......@@ -26,29 +18,8 @@ SRCS = \
interrupts.c \
ioports.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -7,6 +7,7 @@
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "windows.h"
#include "global.h"
#include "ldt.h"
......@@ -137,7 +138,7 @@ BOOL DOSMEM_Init(void)
static void DOSMEM_Alarm(void)
{
pBiosData->Ticks = INT1A_GetTicksSinceMidnight();
printf( "Ticks = %d\n", pBiosData->Ticks );
printf( "Ticks = %ld\n", pBiosData->Ticks );
/*
signal( SIGALRM, DOSMEM_Alarm );
alarm( 1 );
......
......@@ -303,8 +303,9 @@ static void ReadFile(struct sigcontext_struct *context)
return;
} else {
size = read(BX_reg(context), ptr, CX_reg(context));
dprintf_int(stddeb, "int21: read (%d, void *, 0x%x) = 0x%x\n",
BX_reg(context), CX_reg(context), size);
dprintf_int(stddeb,"int21: read(%d, %04x:%04x, 0x%x) = 0x%x\n",
BX_reg(context), DS_reg(context), DX_reg(context),
CX_reg(context), size );
if (size == -1) {
errno_to_doserr();
AX_reg(context) = ExtendedError;
......@@ -622,7 +623,7 @@ static void CloseFile(struct sigcontext_struct *context)
{
dprintf_int (stddeb, "int21: close (%d)\n", BX_reg(context));
if (close(BX_reg(context)) == -1)
if (_lclose( BX_reg(context) ))
{
errno_to_doserr();
AX_reg(context) = ExtendedError;
......@@ -1761,6 +1762,9 @@ void DOS3Call( struct sigcontext_struct context )
break;
}
break;
case 0xdc: /* CONNECTION SERVICES - GET CONNECTION NUMBER */
break;
case 0xea: /* NOVELL NETWARE - RETURN SHELL VERSION */
break;
......
......@@ -44,7 +44,7 @@ static void do_int2f_16(struct sigcontext_struct *context)
case 0x00: /* Windows enhanced mode installation check */
AX_reg(context) = Options.enhanced ? WINVERSION : 0;
break;
case 0x0a: /* Get Windows version and type */
AX_reg(context) = 0;
BX_reg(context) = (WINVERSION >> 8) | ((WINVERSION << 8) & 0xff00);
......@@ -54,6 +54,15 @@ static void do_int2f_16(struct sigcontext_struct *context)
case 0x80: /* Release time-slice */
break; /* nothing to do */
case 0x84: /* Get device API entry point */
fprintf(stderr,"Application attempted to access VxD %4X\n",
BX_reg(context));
fprintf(stderr,"This device is not known to Wine.");
fprintf(stderr,"Expect a failure now\n");
ES_reg(context)=0;
DI_reg(context)=0;
break;
case 0x86: /* DPMI detect mode */
AX_reg(context) = 0; /* Running under DPMI */
break;
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
TOPSRC = @top_srcdir@
MODULE = multimedia
MODULE = multimedia
SRCS = \
C_SRCS = \
audio.c \
joystick.c \
mcianim.c \
......@@ -20,29 +12,8 @@ SRCS = \
mmsystem.c \
time.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
dummy:
@MAKE_RULES@
### Dependencies:
......@@ -374,7 +374,7 @@ MCISTR_Open(_MCISTR_PROTO_) {
FLAG1("nostatic",MCI_ANIM_OPEN_NOSTATIC);
if (!STRCMP(keywords[i],"parent") && (i+1<nrofkeywords)) {
dwFlags |= MCI_ANIM_OPEN_PARENT;
sscanf(keywords[i+1],"%u",&(U.animopenParams.hWndParent));
sscanf(keywords[i+1],"%hu",&(U.animopenParams.hWndParent));
i+=2;
continue;
}
......@@ -406,7 +406,7 @@ MCISTR_Open(_MCISTR_PROTO_) {
/* looks just like anim, but without NOSTATIC */
if (!STRCMP(keywords[i],"parent") && (i+1<nrofkeywords)) {
dwFlags |= MCI_OVLY_OPEN_PARENT;
sscanf(keywords[i+1],"%d",&(U.ovlyopenParams.hWndParent));
sscanf(keywords[i+1],"%hd",&(U.ovlyopenParams.hWndParent));
i+=2;
continue;
}
......@@ -539,7 +539,7 @@ _MCISTR_determine_timeformat(LPCSTR dev,WORD wDevID,WORD uDevTyp,int *timef) {
static DWORD
MCISTR_Status(_MCISTR_PROTO_) {
MCI_STATUS_PARMS statusParams;
int type,i,res,timef;
int type = 0,i,res,timef;
statusParams.dwCallback = 0;
dwFlags |= MCI_STATUS_ITEM;
......@@ -1379,10 +1379,10 @@ MCISTR_Load(_MCISTR_PROTO_) {
case MCI_DEVTYPE_OVERLAY:
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
dwFlags |= MCI_OVLY_RECT;
sscanf(keywords[i+1],"%d",&(U.ovlyloadParams.rc.left));
sscanf(keywords[i+2],"%d",&(U.ovlyloadParams.rc.top));
sscanf(keywords[i+3],"%d",&(U.ovlyloadParams.rc.right));
sscanf(keywords[i+4],"%d",&(U.ovlyloadParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(U.ovlyloadParams.rc.left));
sscanf(keywords[i+2],"%hd",&(U.ovlyloadParams.rc.top));
sscanf(keywords[i+3],"%hd",&(U.ovlyloadParams.rc.right));
sscanf(keywords[i+4],"%hd",&(U.ovlyloadParams.rc.bottom));
memcpy(keywords+i,keywords+(i+5),nrofkeywords-(i+5));
continue;
}
......@@ -1431,10 +1431,10 @@ MCISTR_Save(_MCISTR_PROTO_) {
case MCI_DEVTYPE_OVERLAY:
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
dwFlags |= MCI_OVLY_RECT;
sscanf(keywords[i+1],"%d",&(U.ovlysaveParams.rc.left));
sscanf(keywords[i+2],"%d",&(U.ovlysaveParams.rc.top));
sscanf(keywords[i+3],"%d",&(U.ovlysaveParams.rc.right));
sscanf(keywords[i+4],"%d",&(U.ovlysaveParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(U.ovlysaveParams.rc.left));
sscanf(keywords[i+2],"%hd",&(U.ovlysaveParams.rc.top));
sscanf(keywords[i+3],"%hd",&(U.ovlysaveParams.rc.right));
sscanf(keywords[i+4],"%hd",&(U.ovlysaveParams.rc.bottom));
memcpy(keywords+i,keywords+(i+5),nrofkeywords-(i+5));
continue;
}
......@@ -1599,10 +1599,10 @@ MCISTR_Unfreeze(_MCISTR_PROTO_) {
return MCIERR_UNSUPPORTED_FUNCTION;
i=0;while (i<nrofkeywords) {
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
sscanf(keywords[i+1],"%ld",&(unfreezeParams.rc.left));
sscanf(keywords[i+2],"%ld",&(unfreezeParams.rc.top));
sscanf(keywords[i+3],"%ld",&(unfreezeParams.rc.right));
sscanf(keywords[i+4],"%ld",&(unfreezeParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(unfreezeParams.rc.left));
sscanf(keywords[i+2],"%hd",&(unfreezeParams.rc.top));
sscanf(keywords[i+3],"%hd",&(unfreezeParams.rc.right));
sscanf(keywords[i+4],"%hd",&(unfreezeParams.rc.bottom));
dwFlags |= MCI_OVLY_RECT;
i+=5;
continue;
......@@ -1624,10 +1624,10 @@ MCISTR_Freeze(_MCISTR_PROTO_) {
return MCIERR_UNSUPPORTED_FUNCTION;
i=0;while (i<nrofkeywords) {
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
sscanf(keywords[i+1],"%ld",&(freezeParams.rc.left));
sscanf(keywords[i+2],"%ld",&(freezeParams.rc.top));
sscanf(keywords[i+3],"%ld",&(freezeParams.rc.right));
sscanf(keywords[i+4],"%ld",&(freezeParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(freezeParams.rc.left));
sscanf(keywords[i+2],"%hd",&(freezeParams.rc.top));
sscanf(keywords[i+3],"%hd",&(freezeParams.rc.right));
sscanf(keywords[i+4],"%hd",&(freezeParams.rc.bottom));
dwFlags |= MCI_OVLY_RECT;
i+=5;
continue;
......@@ -1665,10 +1665,10 @@ MCISTR_Put(_MCISTR_PROTO_) {
FLAG1("source",MCI_ANIM_PUT_SOURCE);
FLAG1("destination",MCI_ANIM_PUT_DESTINATION);
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
sscanf(keywords[i+1],"%ld",&(U.animputParams.rc.left));
sscanf(keywords[i+2],"%ld",&(U.animputParams.rc.top));
sscanf(keywords[i+3],"%ld",&(U.animputParams.rc.right));
sscanf(keywords[i+4],"%ld",&(U.animputParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(U.animputParams.rc.left));
sscanf(keywords[i+2],"%hd",&(U.animputParams.rc.top));
sscanf(keywords[i+3],"%hd",&(U.animputParams.rc.right));
sscanf(keywords[i+4],"%hd",&(U.animputParams.rc.bottom));
dwFlags |= MCI_ANIM_RECT;
i+=5;
continue;
......@@ -1680,10 +1680,10 @@ MCISTR_Put(_MCISTR_PROTO_) {
FLAG1("video",MCI_OVLY_PUT_VIDEO);
FLAG1("frame",MCI_OVLY_PUT_FRAME);
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
sscanf(keywords[i+1],"%ld",&(U.ovlyputParams.rc.left));
sscanf(keywords[i+2],"%ld",&(U.ovlyputParams.rc.top));
sscanf(keywords[i+3],"%ld",&(U.ovlyputParams.rc.right));
sscanf(keywords[i+4],"%ld",&(U.ovlyputParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(U.ovlyputParams.rc.left));
sscanf(keywords[i+2],"%hd",&(U.ovlyputParams.rc.top));
sscanf(keywords[i+3],"%hd",&(U.ovlyputParams.rc.right));
sscanf(keywords[i+4],"%hd",&(U.ovlyputParams.rc.bottom));
dwFlags |= MCI_OVLY_RECT;
i+=5;
continue;
......@@ -1792,17 +1792,17 @@ MCISTR_Update(_MCISTR_PROTO_) {
i=0;
while (i<nrofkeywords) {
if (!STRCMP(keywords[i],"at") && (i+4<nrofkeywords)) {
sscanf(keywords[i+1],"%ld",&(updateParams.rc.left));
sscanf(keywords[i+2],"%ld",&(updateParams.rc.top));
sscanf(keywords[i+3],"%ld",&(updateParams.rc.right));
sscanf(keywords[i+4],"%ld",&(updateParams.rc.bottom));
sscanf(keywords[i+1],"%hd",&(updateParams.rc.left));
sscanf(keywords[i+2],"%hd",&(updateParams.rc.top));
sscanf(keywords[i+3],"%hd",&(updateParams.rc.right));
sscanf(keywords[i+4],"%hd",&(updateParams.rc.bottom));
dwFlags |= MCI_ANIM_RECT;
i+=5;
continue;
}
if (!STRCMP(keywords[i],"hdc") && (i+1<nrofkeywords)) {
dwFlags |= MCI_ANIM_UPDATE_HDC;
sscanf(keywords[i+1],"%d",&(updateParams.hDC));
sscanf(keywords[i+1],"%hd",&(updateParams.hDC));
i+=2;
continue;
}
......@@ -1891,7 +1891,7 @@ MCISTR_Window(_MCISTR_PROTO_) {
if (!STRCMP(keywords[i+1],"default"))
U.animwindowParams.hWnd = MCI_OVLY_WINDOW_DEFAULT;
else
sscanf(keywords[i+1],"%d",&(U.animwindowParams.hWnd));
sscanf(keywords[i+1],"%hd",&(U.animwindowParams.hWnd));
i+=2;
continue;
}
......@@ -1960,7 +1960,7 @@ MCISTR_Window(_MCISTR_PROTO_) {
if (!STRCMP(keywords[i+1],"default"))
U.ovlywindowParams.hWnd = MCI_OVLY_WINDOW_DEFAULT;
else
sscanf(keywords[i+1],"%d",&(U.ovlywindowParams.hWnd));
sscanf(keywords[i+1],"%hd",&(U.ovlywindowParams.hWnd));
i+=2;
continue;
}
......
......@@ -10,8 +10,10 @@
#include <stdlib.h>
#include <string.h>
#include "windows.h"
#include "win.h"
#include "ldt.h"
#include "callback.h"
#include "module.h"
#include "user.h"
#include "driver.h"
#include "mmsystem.h"
......@@ -27,6 +29,7 @@ typedef struct tagTIMERENTRY {
WORD wDelay;
WORD wResol;
FARPROC lpFunc;
HINSTANCE hInstance;
DWORD dwUser;
WORD wFlags;
WORD wTimerID;
......@@ -42,6 +45,7 @@ static LPTIMERENTRY lpTimerList = NULL;
*/
WORD MMSysTimeCallback(HWND hWnd, WORD wMsg, INT nID, DWORD dwTime)
{
FARPROC lpFunc;
LPTIMERENTRY lpTimer = lpTimerList;
mmSysTimeMS.u.ms += 33;
mmSysTimeSMPTE.u.smpte.frame++;
......@@ -51,8 +55,26 @@ WORD MMSysTimeCallback(HWND hWnd, WORD wMsg, INT nID, DWORD dwTime)
lpTimer->wCurTime = lpTimer->wDelay;
if (lpTimer->lpFunc != (FARPROC) NULL) {
dprintf_mmtime(stddeb, "MMSysTimeCallback // before CallBack16 !\n");
CallTimeFuncProc(lpTimer->lpFunc, lpTimer->wTimerID, 0,
lpTimer->dwUser, 0, 0);
dprintf_mmtime(stddeb, "MMSysTimeCallback // lpFunc=%08lx wTimerID=%04X dwUser=%08lX !\n",
lpTimer->lpFunc, lpTimer->wTimerID, lpTimer->dwUser);
dprintf_mmtime(stddeb, "MMSysTimeCallback // hInstance=%04X !\n", lpTimer->hInstance);
/*
lpFunc = MakeProcInstance(lpTimer->hInstance, lpTimer->lpFunc);
dprintf_mmtime(stddeb, "MMSysTimeCallback // MakeProcInstance(lpFunc)=%p %p !\n",
lpFunc, PTR_SEG_TO_LIN(lpFunc));
*/
lpFunc = MODULE_GetEntryPoint( lpTimer->hInstance,
MODULE_GetOrdinal(lpTimer->hInstance,"TimerCallBack" ));
dprintf_mmtime(stddeb, "MMSysTimeCallback // lpFunc=%08lx !\n", lpFunc);
CallTo16_word_wwlll(lpTimer->lpFunc,
lpTimer->hInstance, lpTimer->wTimerID,
0, lpTimer->dwUser, 0, 0);
/*
CallTimeFuncProc(lpTimer->lpFunc, lpTimer->wTimerID,
0, lpTimer->dwUser, 0, 0);
*/
dprintf_mmtime(stddeb, "MMSysTimeCallback // after CallBack16 !\n");
fflush(stdout);
}
......@@ -104,7 +126,7 @@ WORD timeSetEvent(WORD wDelay, WORD wResol, LPTIMECALLBACK lpFunc,
WORD wNewID = 0;
LPTIMERENTRY lpNewTimer;
LPTIMERENTRY lpTimer = lpTimerList;
dprintf_mmsys(stddeb, "timeSetEvent(%u, %u, %p, %08lX, %04X);\n",
dprintf_mmtime(stddeb, "timeSetEvent(%u, %u, %p, %08lX, %04X);\n",
wDelay, wResol, lpFunc, dwUser, wFlags);
if (!mmTimeStarted)
StartMMTime();
......@@ -130,6 +152,10 @@ WORD timeSetEvent(WORD wDelay, WORD wResol, LPTIMECALLBACK lpFunc,
lpNewTimer->wDelay = wDelay;
lpNewTimer->wResol = wResol;
lpNewTimer->lpFunc = (FARPROC) lpFunc;
lpNewTimer->hInstance = GetTaskDS();
dprintf_mmtime(stddeb, "timeSetEvent // hInstance=%04X !\n", lpNewTimer->hInstance);
dprintf_mmtime(stddeb, "timeSetEvent // PTR_SEG_TO_LIN(lpFunc)=%p !\n",
PTR_SEG_TO_LIN(lpFunc));
lpNewTimer->dwUser = dwUser;
lpNewTimer->wFlags = wFlags;
return lpNewTimer->wTimerID;
......
CC = @CC@
CFLAGS = @CFLAGS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
MODULE = objects
SRCS = bitblt.c bitmap.c brush.c clipping.c color.c dc.c dcvalues.c \
dib.c font.c gdiobj.c linedda.c metafile.c oembitmap.c palette.c \
pen.c region.c text.c
OBJS = $(SRCS:.c=.o)
.c.o:
$(CC) -c $(CFLAGS) $(XINCL) $(DIVINCL) -o $*.o $<
TOPSRC = @top_srcdir@
MODULE = objects
C_SRCS = \
bitblt.c \
bitmap.c \
brush.c \
clipping.c \
color.c \
dc.c \
dcvalues.c \
dib.c \
font.c \
gdiobj.c \
linedda.c \
metafile.c \
oembitmap.c \
palette.c \
pen.c \
region.c \
text.c
all: $(MODULE).o
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
depend:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
$(CC) $(DIVINCL) $(XINCL) -MM *.c >> tmp_make
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
countryclean:
@MAKE_RULES@
### Dependencies:
......@@ -12,9 +12,18 @@ static char Copyright[] = "Copyright Alexandre Julliard, 1993";
#include "options.h"
#include "gdi.h"
#include "color.h"
#include "palette.h"
Colormap COLOR_WinColormap = 0;
int COLOR_FixedMap = 0;
int COLOR_Redshift = 0;
int COLOR_Redmax = 0;
int COLOR_Greenshift = 0;
int COLOR_Greenmax = 0;
int COLOR_Blueshift = 0;
int COLOR_Bluemax = 0;
int COLOR_Graymax = 0;
/* System palette static colors */
......@@ -181,6 +190,23 @@ static HPALETTE COLOR_InitPalette(void)
return hpalette;
}
void
COLOR_Computeshifts(unsigned long maskbits, int *shift, int *max)
{
int i;
if(maskbits==0) {
*shift=0;
*max=0;
return;
}
for(i=0;!(maskbits&1);i++)
maskbits >>= 1;
*shift = i;
*max = maskbits;
}
/***********************************************************************
* COLOR_Init
......@@ -190,12 +216,13 @@ static HPALETTE COLOR_InitPalette(void)
HPALETTE COLOR_Init(void)
{
Visual * visual = DefaultVisual( display, DefaultScreen(display) );
switch(visual->class)
{
case GrayScale:
case PseudoColor:
case DirectColor:
COLOR_FixedMap = 0;
if (Options.usePrivateMap)
{
COLOR_WinColormap = XCreateColormap( display, rootWindow,
......@@ -214,11 +241,21 @@ HPALETTE COLOR_Init(void)
break;
}
}
COLOR_WinColormap = DefaultColormapOfScreen( screen );
break;
/* Fall through */
case StaticGray:
COLOR_WinColormap = DefaultColormapOfScreen( screen );
COLOR_FixedMap = 1;
COLOR_Graymax = (1<<screenDepth)-1;
break;
case StaticColor:
case TrueColor:
COLOR_WinColormap = DefaultColormapOfScreen( screen );
COLOR_FixedMap = 1;
COLOR_Computeshifts(visual->red_mask, &COLOR_Redshift, &COLOR_Redmax);
COLOR_Computeshifts(visual->green_mask, &COLOR_Greenshift, &COLOR_Greenmax);
COLOR_Computeshifts(visual->blue_mask, &COLOR_Blueshift, &COLOR_Bluemax);
break;
}
return COLOR_InitPalette();
......@@ -251,22 +288,84 @@ BOOL COLOR_IsSolid( COLORREF color )
* COLOR_ToPhysical
*
* Return the physical color closest to 'color'.
*
* ESW: This still needs a lot of work; in particular, what happens when
* we have really large (> 8 bit) DirectColor boards?
* But it should work better in 16 and 24 bit modes now.
* (At least it pays attention to the X server's description
* in TrueColor mode, instead of blindly passing through the
* color spec and swapping red to blue or losing blue and part of the
* green entirely, depending on what mode one is in!)
*
*/
int COLOR_ToPhysical( DC *dc, COLORREF color )
{
WORD index = 0;
WORD *mapping;
if (screenDepth > 8) return color;
/* if (screenDepth > 8) return color; */
if (dc && (dc->w.bitsPerPixel == 1) && ((color >> 24) == 0))
{
/* monochrome */
if (((color >> 16) & 0xff) +
((color >> 8) & 0xff) + (color & 0xff) > 255*3/2)
return 1; /* white */
else return 0; /* black */
}
switch(color >> 24)
if(COLOR_FixedMap) {
/* there is no colormap possible; we are going to have to compute
the pixel value from the visual information stored earlier */
unsigned long which = color >> 24;
unsigned long red, green, blue;
unsigned idx;
PALETTEOBJ * palPtr;
switch(which) {
case 0: /* RGB */
case 2: /* PALETTERGB -- needs some work, but why bother; we've got a REALLY LARGE number of colors...? */
default:
red = GetRValue(color);
green = GetGValue(color);
blue = GetBValue(color);
break;
case 1: /* PALETTEIDX -- hmm, get the real color from the stock palette */
palPtr = (PALETTEOBJ *) GDI_GetObjPtr( STOCK_DEFAULT_PALETTE, PALETTE_MAGIC);
idx = color & 0xffff;
if(idx >= palPtr->logpalette.palNumEntries) {
/* out of bounds */
red = green = blue = 0;
}
else {
red = palPtr->logpalette.palPalEntry[idx].peRed;
green = palPtr->logpalette.palPalEntry[idx].peGreen;
blue = palPtr->logpalette.palPalEntry[idx].peBlue;
}
}
if(COLOR_Graymax) {
/* grayscale only; return scaled value */
return ( (red * 30 + green * 69 + blue * 11) * COLOR_Graymax) / 25500;
}
else {
/* scale each individually and construct the TrueColor pixel value */
if(COLOR_Redmax != 255)
red = (red * COLOR_Redmax) / 255;
if(COLOR_Greenmax != 255)
green = (green * COLOR_Greenmax) / 255;
if(COLOR_Bluemax != 255)
blue = (blue * COLOR_Bluemax) / 255;
return (red << COLOR_Redshift) | (green << COLOR_Greenshift) | (blue << COLOR_Blueshift);
}
}
else switch(color >> 24)
{
case 0: /* RGB */
index = GetNearestPaletteIndex( STOCK_DEFAULT_PALETTE, color );
......@@ -338,7 +437,7 @@ COLORREF GetNearestColor( HDC hdc, COLORREF color )
WORD index;
DC *dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
if (!dc) return 0;
if (screenDepth > 8) return color;
if (screenDepth > 8) return color; /* FIXME */
index = (WORD)(COLOR_ToPhysical( dc, color & 0xffffff ) & 0xffff);
return PALETTEINDEX( index );
}
......
......@@ -680,6 +680,12 @@ HBITMAP CreateDIBitmap( HDC hdc, BITMAPINFOHEADER * header, DWORD init,
{
HBITMAP handle;
if(header->biSize!=sizeof(BITMAPINFOHEADER))
{
fprintf(stderr,"CreateDIBitmap: wrong size (%ld) for header\n",
header->biSize);
return 0;
}
handle = CreateCompatibleBitmap( hdc, header->biWidth, header->biHeight );
/* handle = CreateBitmap( header->biWidth, header->biHeight,
1, header->biBitCount, NULL );
......@@ -727,3 +733,11 @@ BOOL DrawIcon(HDC hDC, short x, short y, HICON hIcon)
SetBkColor( hDC, oldBg );
return TRUE;
}
/***********************************************************************
* CopyIcon (USER.368)
*/
BOOL CopyIcon(HANDLE handle, HICON hIcon)
{
printf("STUB !!! CopyIcon: %x %x\n",handle,hIcon);
return TRUE;
}
CC = @CC@
CFLAGS = @CFLAGS@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
BISON = @YACC@
FLEX = @LEX@
LANG = @LANG@
COMPILE = $(CC) $(CFLAGS) $(DIVINCL) $(LANG)
TOPSRC = @top_srcdir@
all: rc.o
MODULE = rc
C_SRCS = sysres.c
all: $(MODULE).o
@MAKE_RULES@
y.tab.c y.tab.h: parser.y
$(BISON) -d -t parser.y
$(YACC) -d -t parser.y
lex.yy.c: parser.l parser.h y.tab.h
$(FLEX) -8 -I parser.l
lex.yy.c: parser.l
$(LEX) -8 -I parser.l
winerc: lex.yy.o winerc.o y.tab.o
$(COMPILE) lex.yy.o winerc.o y.tab.o -o winerc
$(CC) $(ALLCFLAGS) lex.yy.o winerc.o y.tab.o -o winerc $(LEXLIB)
sysres.rct: sysres.rc
sysres.rct: sysres.rc sysres_En.rc sysres_Es.rc sysres_De.rc sysres_No.rc
echo "#include \"windows.h\"" >sysres.rct
echo WINDOWS_H_ENDS_HERE >>sysres.rct
cat sysres.rc >>sysres.rct
sysres.c sysres.h: sysres.rct winerc
$(COMPILE) -E -x c -P sysres.rct > sysres.tmp
cat sysres.tmp | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | ./winerc -o sysres -v -p sysres
rc.o: sysres.o
cp sysres.o rc.o
.c.o:
$(COMPILE) -c -o $*.o $<
clean:
rm -f *.o \#*\# *~ *.bak tmp_make
rm -f lex.yy.c sysres.tmp sysres.rct winerc y.tab.c y.tab.h sysres.c sysres.h
distclean: clean
rm -f Makefile
$(CC) $(ALLCFLAGS) -E -x c -P sysres.rct | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | ./winerc -o sysres -v -p sysres
countryclean:
clean::
$(RM) lex.yy.c sysres.rct winerc y.tab.c y.tab.h sysres.c sysres.h
depend: sysres.h
langclean::
$(RM) sysres.c sysres.h sysres.o
y.tab.o: y.tab.c
lex.yy.o: lex.yy.c
y.tab.o: y.tab.c y.tab.h parser.h
lex.yy.o: lex.yy.c y.tab.h parser.h
winerc.o: $(TOPSRC)/include/windows.h $(TOPSRC)/include/neexe.h parser.h y.tab.h
### Dependencies:
#if #LANG(En)
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "&Restore", 61728
MENUITEM "&Move", 61456
MENUITEM "&Size", 61440
MENUITEM "Mi&nimize", 61472
MENUITEM "Ma&ximize", 61488
MENUITEM SEPARATOR
MENUITEM "&Close\tAlt-F4", 61536
MENUITEM SEPARATOR
MENUITEM "&Switch to ...\tCtrl-Esc", 61744
MENUITEM SEPARATOR
MENUITEM "&About WINE ...", 61761
}
MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_SYSMODAL | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Cancel", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Abort", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Retry", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Ignore", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Yes", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 50, 44, 213, 179
STYLE DS_LOCALEDIT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "About %s"
FONT 10, "System"
{
DEFPUSHBUTTON "OK", 1, 86, 160, 40, 14
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE | WS_DISABLED, 4, 35, 205, 120
LTEXT "Text", 100, 11, 40, 190, 110, SS_NOPREFIX | WS_GROUP
ICON "", 1088, 185, 10, 18, 20
}
3 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Open"
FONT 8, "Helv"
{
LTEXT "File &Name:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directories:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "List Files of &Type:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "Dri&ves:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Open", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Help", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Read Only", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
4 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Save As ..."
FONT 8, "Helv"
{
LTEXT "File &Name:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directories:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "List Files of &Type:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "Dri&ves:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Save As", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Help", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Read Only", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
5 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print"
FONT 8, "Helv"
{
LTEXT "Printer:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Print Range", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&All", 1056, 16, 45, 60, 12
RADIOBUTTON "S&election", 1057, 16, 60, 60, 12
RADIOBUTTON "&Pages", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Print", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Setup", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&From:", 1090, 60, 80, 30, 9
LTEXT "&To:", 1091, 120, 80, 30, 9
LTEXT "Print &Quality:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Print to Fi&le", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Condensed", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
6 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print Setup"
FONT 8, "Helv"
{
GROUPBOX "Printer", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "&Default Printer", 1056, 16, 20, 80, 12
LTEXT "[none]", 1088, 35, 35, 120, 9
RADIOBUTTON "Specific &Printer", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Ok", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Setup", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientation", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "Po&rtrait", 1058, 50, 100, 40, 12
RADIOBUTTON "&Landscape", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Paper", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "Si&ze", 1089, 130, 95, 30, 9
LTEXT "&Source", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
7 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font"
FONT 8, "Helv"
{
LTEXT "Font:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
DEFPUSHBUTTON "Ok", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
8 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Color"
FONT 8, "Helv"
{
LTEXT "&Basic Colors:", 1088, 6, 6, 40, 9
LTEXT "&Custom Colors:", 1089, 6, 126, 40, 9
LTEXT "Color|Sol&id", 1090, 100, 146, 40, 9
LTEXT "&Hue:", 1091, 150, 126, 40, 9
LTEXT "&Sat:", 1092, 150, 146, 40, 9
LTEXT "&Lum:", 1093, 150, 166, 40, 9
LTEXT "&Red:", 1094, 150, 126, 40, 9
LTEXT "&Green:", 1095, 150, 146, 40, 9
LTEXT "Bl&ue:", 1096, 150, 166, 40, 9
DEFPUSHBUTTON "Ok", 1, 6, 182, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Add to Custom Colors", 1024, 120, 182, 100, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Delete Custom Colors", 1025, 6, 164, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 76, 182, 56, 14, WS_GROUP | WS_TABSTOP
}
9 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 84
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Find"
FONT 8, "Helv"
{
LTEXT "Fi&nd What:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
CHECKBOX "Match &Whole Word Only", 1040, 20, 30, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Match &Case", 1041, 20, 50, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Direction", 1072, 90, 40, 80, 40, BS_GROUPBOX
RADIOBUTTON "&Up", 1056, 100, 50, 50, 12
RADIOBUTTON "&Down", 1057, 150, 50, 50, 12
DEFPUSHBUTTON "&Find Next", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
10 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 114
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Replace"
FONT 8, "Helv"
{
LTEXT "Fi&nd What:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
LTEXT "Re&place With:", 1090, 6, 26, 40, 9
LTEXT "", 1091, 60, 26, 150, 9
CHECKBOX "Match &Whole Word Only", 1040, 20, 40, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Match &Case", 1041, 20, 60, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Find Next", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Replace", 1024, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Replace &All", 1025, 206, 44, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 64, 56, 14, WS_GROUP | WS_TABSTOP
}
#include "sysres_En.rc"
#elif #LANG(De)
#include "sysres_De.rc"
#elif #LANG(No)
#include "sysres_No.rc"
#elif #LANG(Es)
#include "sysres_Es.rc"
#else
#error LANG not set to an implemented language.
#endif
......@@ -27,19 +27,19 @@ BEGIN
PUSHBUTTON "&Nein", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 50, 44, 213, 179
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 50, 44, 223, 200
STYLE DS_LOCALEDIT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Info ber %s"
FONT 10, "System"
{
DEFPUSHBUTTON "OK", 1, 86, 160, 40, 14
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE | WS_DISABLED, 4, 35, 205, 120
LTEXT "Text", 100, 11, 40, 190, 110, SS_NOPREFIX | WS_GROUP
ICON "", 1088, 185, 10, 18, 20
DEFPUSHBUTTON "OK", 1, 91, 180, 40, 14
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE | WS_DISABLED, 4, 35, 215, 140
LTEXT "Text", 100, 11, 40, 200, 130, SS_NOPREFIX | WS_GROUP
ICON "", 1088, 195, 10, 18, 20
}
3 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "ffnen"
FONT 8, "Helv"
......@@ -61,7 +61,7 @@ FONT 8, "Helv"
}
4 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Speichern als ..."
FONT 8, "Helv"
......@@ -83,7 +83,7 @@ FONT 8, "Helv"
}
5 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Drucken"
FONT 8, "Helv"
......@@ -106,7 +106,7 @@ FONT 8, "Helv"
}
6 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Druckereinrichtung"
FONT 8, "Helv"
......@@ -132,7 +132,7 @@ FONT 8, "Helv"
}
7 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
CHOOSE_FONT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font"
FONT 8, "Helv"
......@@ -144,7 +144,7 @@ FONT 8, "Helv"
}
8 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200
CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Farbe"
FONT 8, "Helv"
......@@ -165,7 +165,7 @@ FONT 8, "Helv"
}
9 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 84
FIND_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 84
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Suchen"
FONT 8, "Helv"
......@@ -182,7 +182,7 @@ FONT 8, "Helv"
}
10 DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 114
REPLACE_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 114
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ersetzen"
FONT 8, "Helv"
......
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "&Restore", 61728
MENUITEM "&Move", 61456
MENUITEM "&Size", 61440
MENUITEM "Mi&nimize", 61472
MENUITEM "Ma&ximize", 61488
MENUITEM SEPARATOR
MENUITEM "&Close\tAlt-F4", 61536
MENUITEM SEPARATOR
MENUITEM "&Switch to ...\tCtrl-Esc", 61744
MENUITEM SEPARATOR
MENUITEM "&About WINE ...", 61761
}
MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_SYSMODAL | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Cancel", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Abort", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Retry", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Ignore", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Yes", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 50, 44, 223, 200
STYLE DS_LOCALEDIT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "About %s"
FONT 10, "System"
{
DEFPUSHBUTTON "OK", 1, 91, 180, 40, 14
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE | WS_DISABLED, 4, 35, 215, 140
LTEXT "Text", 100, 11, 40, 200, 130, SS_NOPREFIX | WS_GROUP
ICON "", 1088, 195, 10, 18, 20
}
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Open"
FONT 8, "Helv"
{
LTEXT "File &Name:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directories:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "List Files of &Type:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "Dri&ves:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Open", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Help", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Read Only", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Save As ..."
FONT 8, "Helv"
{
LTEXT "File &Name:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directories:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "List Files of &Type:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "Dri&ves:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Save As", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Help", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Read Only", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print"
FONT 8, "Helv"
{
LTEXT "Printer:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Print Range", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&All", 1056, 16, 45, 60, 12
RADIOBUTTON "S&election", 1057, 16, 60, 60, 12
RADIOBUTTON "&Pages", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Print", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Setup", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&From:", 1090, 60, 80, 30, 9
LTEXT "&To:", 1091, 120, 80, 30, 9
LTEXT "Print &Quality:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Print to Fi&le", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Condensed", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print Setup"
FONT 8, "Helv"
{
GROUPBOX "Printer", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "&Default Printer", 1056, 16, 20, 80, 12
LTEXT "[none]", 1088, 35, 35, 120, 9
RADIOBUTTON "Specific &Printer", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Ok", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Setup", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientation", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "Po&rtrait", 1058, 50, 100, 40, 12
RADIOBUTTON "&Landscape", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Paper", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "Si&ze", 1089, 130, 95, 30, 9
LTEXT "&Source", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
CHOOSE_FONT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font"
FONT 8, "Helv"
{
LTEXT "Font:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
DEFPUSHBUTTON "Ok", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Color"
FONT 8, "Helv"
{
LTEXT "&Basic Colors:", 1088, 6, 6, 40, 9
LTEXT "&Custom Colors:", 1089, 6, 126, 40, 9
LTEXT "Color|Sol&id", 1090, 100, 146, 40, 9
LTEXT "&Hue:", 1091, 150, 126, 40, 9
LTEXT "&Sat:", 1092, 150, 146, 40, 9
LTEXT "&Lum:", 1093, 150, 166, 40, 9
LTEXT "&Red:", 1094, 150, 126, 40, 9
LTEXT "&Green:", 1095, 150, 146, 40, 9
LTEXT "Bl&ue:", 1096, 150, 166, 40, 9
DEFPUSHBUTTON "Ok", 1, 6, 182, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Add to Custom Colors", 1024, 120, 182, 100, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Delete Custom Colors", 1025, 6, 164, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 76, 182, 56, 14, WS_GROUP | WS_TABSTOP
}
FIND_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 84
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Find"
FONT 8, "Helv"
{
LTEXT "Fi&nd What:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
CHECKBOX "Match &Whole Word Only", 1040, 20, 30, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Match &Case", 1041, 20, 50, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Direction", 1072, 90, 40, 80, 40, BS_GROUPBOX
RADIOBUTTON "&Up", 1056, 100, 50, 50, 12
RADIOBUTTON "&Down", 1057, 150, 50, 50, 12
DEFPUSHBUTTON "&Find Next", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
REPLACE_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 114
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Replace"
FONT 8, "Helv"
{
LTEXT "Fi&nd What:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
LTEXT "Re&place With:", 1090, 6, 26, 40, 9
LTEXT "", 1091, 60, 26, 150, 9
CHECKBOX "Match &Whole Word Only", 1040, 20, 40, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Match &Case", 1041, 20, 60, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Find Next", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Replace", 1024, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Replace &All", 1025, 206, 44, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancel", 2, 206, 64, 56, 14, WS_GROUP | WS_TABSTOP
}
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "&Restaurer", 61728
MENUITEM "&Mover", 61456
MENUITEM "&Tamao", 61440
MENUITEM "Mi&nimizar", 61472
MENUITEM "Ma&ximizar", 61488
MENUITEM SEPARATOR
MENUITEM "&Cerrar\tAlt-F4", 61536
MENUITEM SEPARATOR
MENUITEM "Cam&biar a ...\tCtrl-Esc", 61744
MENUITEM SEPARATOR
MENUITEM "&Acerca de WINE...", 61761
}
MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_SYSMODAL | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "&Aceptar", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Cancelar", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Abortar", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Reintentar", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Ignorar", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&S", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 50, 44, 223, 200
STYLE DS_LOCALEDIT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Acerca de %s"
FONT 10, "System"
{
DEFPUSHBUTTON "Aceptar", 1, 91, 180, 40, 14
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE | WS_DISABLED, 4, 35, 215, 140
LTEXT "Text", 100, 11, 40, 200, 130, SS_NOPREFIX | WS_GROUP
ICON "", 1088, 195, 10, 18, 20
}
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Abrir"
FONT 8, "Helv"
{
LTEXT "Nombre de &archivo:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directorios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Mostrar archivos de tipo:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "U&nidades:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Abrir", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&yuda", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Solo lectura", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "&Guardar como..."
FONT 8, "Helv"
{
LTEXT "Nombre de &archivo:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directorios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Mostrar archivos de tipo:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "U&nidades:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "&Guardar como", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&yuda", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Solo lectura", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Imprimir"
FONT 8, "Helv"
{
LTEXT "Impresora:", 1088, 6, 6, 40, 9
LTEXT "Campo de impresin", 1089, 60, 6, 150, 9
GROUPBOX "", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Todo", 1056, 16, 45, 60, 12
RADIOBUTTON "Selecc&in", 1057, 16, 60, 60, 12
RADIOBUTTON "&Paginas", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Imprimir", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Setup", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&Desde:", 1090, 60, 80, 30, 9
LTEXT "&Hasta:", 1091, 120, 80, 30, 9
LTEXT "Calidad de impre&sin:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Impri&mir en un archivo", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Condensed", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configuracin de impresin"
FONT 8, "Helv"
{
GROUPBOX "Impresora:", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "Pre&determinada del sistema", 1056, 16, 20, 80, 12
LTEXT "[none]", 1088, 35, 35, 120, 9
RADIOBUTTON "Impresora &especmfica:", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Aceptar", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientacin", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Vertical", 1058, 50, 100, 40, 12
RADIOBUTTON "&Horizontal", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Papel", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Tamao", 1089, 130, 95, 30, 9
LTEXT "O&rigen:", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
CHOOSE_FONT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Fuente"
FONT 8, "Helv"
{
LTEXT "Fuente:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
DEFPUSHBUTTON "Aceptar", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Color"
FONT 8, "Helv"
{
LTEXT "Colores &basicos:", 1088, 6, 6, 40, 9
LTEXT "Colores person&alizados:", 1089, 6, 126, 40, 9
LTEXT "Color|Sl&ido", 1090, 100, 146, 40, 9
LTEXT "&Hue:", 1091, 150, 126, 40, 9
LTEXT "&Sat:", 1092, 150, 146, 40, 9
LTEXT "&Lum:", 1093, 150, 166, 40, 9
LTEXT "&Rojo:", 1094, 150, 126, 40, 9
LTEXT "&Verde:", 1095, 150, 146, 40, 9
LTEXT "A&zul:", 1096, 150, 166, 40, 9
DEFPUSHBUTTON "Aceptar", 1, 6, 182, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Agregar a los &colores personalizados", 1024, 120, 182, 100, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Borrar colores personalizados", 1025, 6, 164, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 76, 182, 56, 14, WS_GROUP | WS_TABSTOP
}
FIND_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 84
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Buscar"
FONT 8, "Helv"
{
LTEXT "Buscar:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
CHECKBOX "&Comparar palabra entera solamente", 1040, 20, 30, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maysculas/minsculas", 1041, 20, 50, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
GROUPBOX "Direccin", 1072, 90, 40, 80, 40, BS_GROUPBOX
RADIOBUTTON "A&rriba", 1056, 100, 50, 50, 12
RADIOBUTTON "&Abajo", 1057, 150, 50, 50, 12
DEFPUSHBUTTON "Buscar &siguiente", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
}
REPLACE_TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 114
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "R&eemplazar"
FONT 8, "Helv"
{
LTEXT "Buscar:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
LTEXT "Re&place With:", 1090, 6, 26, 40, 9
LTEXT "", 1091, 60, 26, 150, 9
CHECKBOX "&Comparar palabra entera solamente", 1040, 20, 40, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maysculas/minsculas", 1041, 20, 60, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Reemplazar &siguiente", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Reemplazar", 1024, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Reemplazar &todo", 1025, 206, 44, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", 2, 206, 64, 56, 14, WS_GROUP | WS_TABSTOP
}
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment