Release 980601
Sun May 31 13:40:13 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [if1632/signal.c] Added display of exception name. * [loader/task.c] Yet another attempt at fixing SwitchStackTo/SwitchStackBack. * [memory/selector.c] [relay32/builtin32.c] [tools/build.c] [win32/kernel32.c] Generate an assembly stub for Win32 register functions to make their names available at link time. * [programs/*/Makefile.in] Added hacks to support old resource compiler. Fri May 29 16:27:14 1998 Marcus Meissner <marcus@jet.franken.de> * [tools/testrun] Merge of my testscripts at home into one single perl program (tested with perl5). Works only on Linux due to 'ps' and 'ipcs' magic. * [controls/menu.c] Added some DefaultMenuItem stubs. * [debugger/stabs.c] Fixed stabs loading, now supports (int,int) typeinfo format used by gcc-2.8 and egcs-1. If it still crashes, please mail me. * [if1632/][relay32/] Added msvideo.dll (stubs only) Replaced some ptr by str for stringcases Added some new stubs (VxDCall, FindCloseNotif....) * [misc/network.c] Some argument fixes. * [misc/registry.c][misc/cpu.c] Registry initialization partially rewritten and enhanced. * [scheduler/*.c] Some additions so we don't do kill(0,SIGUSR1) (kill processgroup instead of targeted thread) Added SetThreadContext. Thu May 28 23:59:59 1998 Bertho Stultiens <bertho@akhphd.au.dk> * [tools/wrc/*] New resource compiler version 1.0.0 (28-May-1998) * [Make.rules.in] [Makefile.in] Changed and added rc rules to point to tools/wrc/wrc. * [configure.in] [include/config.h.in] Added check for function 'stricmp'. * [include/resource.h] Commented out the old resource structure to catch references. It also includes wrc_rsc.h. * [include/wrc_rsc.h] New file. Definitions for the resources generated with wrc. * [include/windows.h] Added #ifdef RC_INVOKED to exclude stdarg.h. Added SS_NOTIFY flag. * [include/winnls.h] Added SUBLANG_* definitions and corrected some defaults. * [loader/libres.c] Changed the sysres load functions to support wrc generated resources. * [resource/sysres_*.rc] Added #include <windows.h> * [resource/sysres.c] Changed declarations to match wrc's output * [resource/Makefile.in] Changed rules to work with wrc. * [tools/makedep.c] Changed generation of .rc file dependencies to .s target. Thu May 28 22:28:39 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [files/file.c][include/windows.c][relay32/kernel32.spec] Implemented GetFileAttributesEx32A/W. * [misc/imagelist.h][include/commctrl.h][relay32/comctl32.spec] Added ImageList_Read and ImageList_Write stubs. Added ImageList_AddIcon function. Added ImageList_LoadImage. It is the same as ImageList_LoadImage32A. * [controls/header.c] Fixed bitmap drawing bug. Added full bitmap support. * [include/commctrl.h] Added missing header macros. * [controls/toolbar.c][include/toolbar.h][include/commctrl.h] [controls/commctrl.c] [relay32/comctl32.spec] First implementation of toolbar control. Implemented CreateToolbar, CreateToolbarEx and CreateMappedBitmap. * [controls/progress.c][controls/status.c] Some code cleanup. * [controls/commctrl.c][include/commctrl.h][relay32/comctl32.spec] Removed CreateStatusWindow16 and DrawStatusText16. CreateStatusWindow is the same as CreateStatusWindow32A. DrawStatusText is the same as DrawStatusText32A. Thu May 28 16:01:28 1998 Matthew J. Francis <asbel@dial.pipex.com> * [objects/bitmap.c] [objects/bitmap.h] [objects/oembitmap.c] [objects/dc.c] [graphics/x11drv/bitblt.c] Added partial implementation of CreateDIBSection, with great thanks to Ulrich Weigand <weigand@informatik.uni-erlangen.de> for contributing the bulk of the patch. Wed May 27 19:04:31 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de> * [win32/kernel32.c] [if1632/thunk.c] [include/flatthunk.h] ThunkConnect16 and related functions moved to emulator. * [loader/ne/segment.c] Call DllEntryPoint with correct arguments. * [relay32/builtin32.c] Bugfix: Relay debugging did not work for multiple processes. * [controls/menu.c] Bugfix: dwItemData was not set for MF_OWNERDRAW menus. * [if1632/relay.c] [relay32/relay386.c] Relay messages converted to use DPRINTF. * [controls/desktop.c] [relay32/user32.spec] Implemented PaintDesktop. * [files/profile.c] [if1632/kernel.spec] [misc/network.c] [misc/printdrv.c] [relay32/winspool.spec] [win32/ordinals.c] [relay32/kernel32.spec] Some stubs added. * [relay32/mpr.spec] All ordinals were off by one. Tue May 26 13:32:57 1998 Bill Hawes <whawes@star.net> * [misc/lstr.c] [include/casemap.h] [tools/unimap.pl] Added Unicode case conversion routines towupper/towlower, with mapping tables casemap.h created by tools/unimap.pl. * [misc/ntdll.c] [include/winnls.h] [relay32/ntdll.spec] [relay32/advapi.spec] Minimal implementation of IsTextUnicode, just enough to get NT4 notepad to open ascii/unicode files. * [Make.rules.in] [resources/sysres_En.rc] Added include file dlgs.h for building resource files, so that resources can refer to defined values (e.g. pshHelp). * [misc/crtdll.c] [relay32/crtdll.spec] Use towupper/towlower for 32W case conversions. * [memory/string.c] Use towupper for 32W case conversions. * [ole/ole2nls.c] Use towupper for 32W case conversions; fix mem leak; minor cleanup * [controls/edit.c] Added soft break flag to edit state. Print unknown action values for WM_VSCROLL (action 190 occurs when running NT4 notepad.) Mon May 25 22:42:40 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [files/file.c] Care for a pathological case in SetFilePointer. * [graphics/x11drv/xfont.c] Handle longer Font names in LFD_ComposeLFD and try to catch errors. * [loader/pe_image.c] Unload Dummymodule when PE_LoadLibraryEx32A fails with PE_LoadImage (makes Encarta 98 installer proceed). * [misc/registry.c] Move a check for a special case in RegCreateKeyEx32W after the check for existence. Tue May 25 20:18:26 1998 Matthew Becker <mbecker@glasscity.net> * [misc/ntdll.c] Added some stubs, just guessing at the size of their param lists. * [misc/registry.c] Added stubs for RegUnLoadKey, RegSetKeySecurity, RegSaveKey, RegRestoreKey, and RegReplaceKey * [programs/regtest/regtest.c] Updated registry testing program. Sun May 24 18:11:40 1998 Alex Priem <alexp@sci.kun.nl> * [file/profile.c] Added flag 'return_values' to PROFILE_GetSection. Sun May 24 13:41:10 1998 James Juran <jrj120@psu.edu> * [misc/shell.c] [files/directory.c] Documentation/debugging info additions. * [*/*.c] [include/*.h] Moved many extern function definitions to appropriate header files. Cleaned up a few compile warnings. If #include "debug.h" is present, removed #include <stdio.h>. debug.h includes stdio.h, so it is not necessary to include both. * [graphics/*.c] [if1632/signal.c] [ipc/*.c] [scheduler/*.c] [win32/*.c] [windows/*.c] Final patch to convert fprintf statements to new debugging interface. Some fprintfs are still left, especially in the debugger/ directory. However, IMHO, it's not worth the effort to change the rest. Fri May 22 21:58:35 1998 Morten Welinder <terra@diku.dk> * [windows/keyboard.c] Correct handling of keys "`-=[]\;',./". Fri May 22 12:06:00 1998 Per Lindstrm <pelinstr@algonet.se> * [include/windows.h] [relay32/kernel32.spec] [win32/console.c] Added stub for ReadConsoleOutputCharacter32A. Thu May 21 16:45:48 1998 Pascal Cuoq <pcuoq@ens-lyon.fr> * [ole/ole2nls.c] Began better implementation of LCMapString32A. Not very well tested yet, and still need improvements. * [controls/scroll.c] Documented functions. Wed May 20 21:37:56 1998 Peter Hunnisett <hunnise@nortel.ca> * [include/windows.h][misc/main.c] Change SystemParameterInfo to support SPI_GETHIGHCONTRAST. Also include some missing SPI_ definitions. * [include/dsound.h][multimedia/dsound.c][relay32/dplayx.spec] Added stubs for DirectPlayLobbyCreate[AW]. Not sure if these should go into a new files dplayx.c? Anyone care? * [include/winnls.h] Added two missing flags for the CompareString32 functions.
This commit is contained in:
parent
dadf78ffa9
commit
a845b88ead
17
ANNOUNCE
17
ANNOUNCE
|
@ -1,13 +1,14 @@
|
|||
This is release 980517 of Wine, the MS Windows emulator. This is still a
|
||||
This is release 980601 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 correctly.
|
||||
|
||||
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
|
||||
forget to include a ChangeLog entry.
|
||||
|
||||
WHAT'S NEW with Wine-980517: (see ChangeLog for details)
|
||||
- Lots of common controls improvements.
|
||||
- Better thunking support.
|
||||
WHAT'S NEW with Wine-980601: (see ChangeLog for details)
|
||||
- New resource compiler.
|
||||
- Toolbar control.
|
||||
- Partial implementation of CreateDIBSection.
|
||||
- Lots of bug fixes.
|
||||
|
||||
See the README file in the distribution for installation instructions.
|
||||
|
@ -16,10 +17,10 @@ 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:
|
||||
|
||||
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-980517.tar.gz
|
||||
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-980517.tar.gz
|
||||
ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/Wine-980517.tar.gz
|
||||
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-980517.tar.gz
|
||||
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-980601.tar.gz
|
||||
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-980601.tar.gz
|
||||
ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/Wine-980601.tar.gz
|
||||
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-980601.tar.gz
|
||||
|
||||
It should also be available from any site that mirrors tsx-11 or sunsite.
|
||||
|
||||
|
|
4
AUTHORS
4
AUTHORS
|
@ -23,6 +23,7 @@ John Burton,
|
|||
Niels de Carpentier,
|
||||
Gordon Chaffee,
|
||||
Jimen Ching,
|
||||
Pascal Cuoq,
|
||||
David A. Cuthbert,
|
||||
Huw D. M. Davies,
|
||||
Roman Dolejsi,
|
||||
|
@ -34,6 +35,7 @@ David Faure,
|
|||
Claus Fischer,
|
||||
Olaf Flebbe,
|
||||
Chad Fraleigh,
|
||||
Matthew Francis,
|
||||
Peter Galbavy,
|
||||
Ramon Garcia,
|
||||
Matthew Ghio,
|
||||
|
@ -42,6 +44,7 @@ Hans de Graaff,
|
|||
Charles M. Hannum,
|
||||
Adrian Harvey,
|
||||
John Harvey,
|
||||
Bill Hawes,
|
||||
Cameron Heide,
|
||||
Jochen Hoenicke,
|
||||
Onno Hovers,
|
||||
|
@ -123,6 +126,7 @@ Sven Verdoolaege,
|
|||
Ronan Waide,
|
||||
Eric Warnke,
|
||||
Manfred Weichel,
|
||||
Ulrich Weigand,
|
||||
Morten Welinder,
|
||||
Len White,
|
||||
Lawson Whitney,
|
||||
|
|
264
ChangeLog
264
ChangeLog
|
@ -1,3 +1,267 @@
|
|||
----------------------------------------------------------------------
|
||||
Sun May 31 13:40:13 1998 Alexandre Julliard <julliard@lrc.epfl.ch>
|
||||
|
||||
* [if1632/signal.c]
|
||||
Added display of exception name.
|
||||
|
||||
* [loader/task.c]
|
||||
Yet another attempt at fixing SwitchStackTo/SwitchStackBack.
|
||||
|
||||
* [memory/selector.c] [relay32/builtin32.c] [tools/build.c]
|
||||
[win32/kernel32.c]
|
||||
Generate an assembly stub for Win32 register functions to make
|
||||
their names available at link time.
|
||||
|
||||
* [programs/*/Makefile.in]
|
||||
Added hacks to support old resource compiler.
|
||||
|
||||
Fri May 29 16:27:14 1998 Marcus Meissner <marcus@jet.franken.de>
|
||||
|
||||
* [tools/testrun]
|
||||
Merge of my testscripts at home into one single perl program
|
||||
(tested with perl5). Works only on Linux due to 'ps' and 'ipcs'
|
||||
magic.
|
||||
|
||||
* [controls/menu.c]
|
||||
Added some DefaultMenuItem stubs.
|
||||
|
||||
* [debugger/stabs.c]
|
||||
Fixed stabs loading, now supports (int,int) typeinfo format used
|
||||
by gcc-2.8 and egcs-1. If it still crashes, please mail me.
|
||||
|
||||
* [if1632/][relay32/]
|
||||
Added msvideo.dll (stubs only)
|
||||
Replaced some ptr by str for stringcases
|
||||
Added some new stubs (VxDCall, FindCloseNotif....)
|
||||
|
||||
* [misc/network.c]
|
||||
Some argument fixes.
|
||||
|
||||
* [misc/registry.c][misc/cpu.c]
|
||||
Registry initialization partially rewritten and enhanced.
|
||||
|
||||
* [scheduler/*.c]
|
||||
Some additions so we don't do kill(0,SIGUSR1) (kill processgroup
|
||||
instead of targeted thread)
|
||||
Added SetThreadContext.
|
||||
|
||||
Thu May 28 23:59:59 1998 Bertho Stultiens <bertho@akhphd.au.dk>
|
||||
|
||||
* [tools/wrc/*]
|
||||
New resource compiler version 1.0.0 (28-May-1998)
|
||||
|
||||
* [Make.rules.in] [Makefile.in]
|
||||
Changed and added rc rules to point to tools/wrc/wrc.
|
||||
|
||||
* [configure.in] [include/config.h.in]
|
||||
Added check for function 'stricmp'.
|
||||
|
||||
* [include/resource.h]
|
||||
Commented out the old resource structure to catch references.
|
||||
It also includes wrc_rsc.h.
|
||||
|
||||
* [include/wrc_rsc.h]
|
||||
New file. Definitions for the resources generated with wrc.
|
||||
|
||||
* [include/windows.h]
|
||||
Added #ifdef RC_INVOKED to exclude stdarg.h.
|
||||
Added SS_NOTIFY flag.
|
||||
|
||||
* [include/winnls.h]
|
||||
Added SUBLANG_* definitions and corrected some defaults.
|
||||
|
||||
* [loader/libres.c]
|
||||
Changed the sysres load functions to support wrc generated
|
||||
resources.
|
||||
|
||||
* [resource/sysres_*.rc]
|
||||
Added #include <windows.h>
|
||||
|
||||
* [resource/sysres.c]
|
||||
Changed declarations to match wrc's output
|
||||
|
||||
* [resource/Makefile.in]
|
||||
Changed rules to work with wrc.
|
||||
|
||||
* [tools/makedep.c]
|
||||
Changed generation of .rc file dependencies to .s target.
|
||||
|
||||
Thu May 28 22:28:39 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de>
|
||||
|
||||
* [files/file.c][include/windows.c][relay32/kernel32.spec]
|
||||
Implemented GetFileAttributesEx32A/W.
|
||||
|
||||
* [misc/imagelist.h][include/commctrl.h][relay32/comctl32.spec]
|
||||
Added ImageList_Read and ImageList_Write stubs.
|
||||
Added ImageList_AddIcon function.
|
||||
Added ImageList_LoadImage. It is the same as ImageList_LoadImage32A.
|
||||
|
||||
* [controls/header.c]
|
||||
Fixed bitmap drawing bug.
|
||||
Added full bitmap support.
|
||||
|
||||
* [include/commctrl.h]
|
||||
Added missing header macros.
|
||||
|
||||
* [controls/toolbar.c][include/toolbar.h][include/commctrl.h]
|
||||
[controls/commctrl.c] [relay32/comctl32.spec]
|
||||
First implementation of toolbar control.
|
||||
Implemented CreateToolbar, CreateToolbarEx and CreateMappedBitmap.
|
||||
|
||||
* [controls/progress.c][controls/status.c]
|
||||
Some code cleanup.
|
||||
|
||||
* [controls/commctrl.c][include/commctrl.h][relay32/comctl32.spec]
|
||||
Removed CreateStatusWindow16 and DrawStatusText16.
|
||||
CreateStatusWindow is the same as CreateStatusWindow32A.
|
||||
DrawStatusText is the same as DrawStatusText32A.
|
||||
|
||||
Thu May 28 16:01:28 1998 Matthew J. Francis <asbel@dial.pipex.com>
|
||||
|
||||
* [objects/bitmap.c] [objects/bitmap.h] [objects/oembitmap.c]
|
||||
[objects/dc.c] [graphics/x11drv/bitblt.c]
|
||||
Added partial implementation of CreateDIBSection, with great thanks
|
||||
to Ulrich Weigand <weigand@informatik.uni-erlangen.de> for
|
||||
contributing the bulk of the patch.
|
||||
|
||||
Wed May 27 19:04:31 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
|
||||
|
||||
* [win32/kernel32.c] [if1632/thunk.c] [include/flatthunk.h]
|
||||
ThunkConnect16 and related functions moved to emulator.
|
||||
|
||||
* [loader/ne/segment.c]
|
||||
Call DllEntryPoint with correct arguments.
|
||||
|
||||
* [relay32/builtin32.c]
|
||||
Bugfix: Relay debugging did not work for multiple processes.
|
||||
|
||||
* [controls/menu.c]
|
||||
Bugfix: dwItemData was not set for MF_OWNERDRAW menus.
|
||||
|
||||
* [if1632/relay.c] [relay32/relay386.c]
|
||||
Relay messages converted to use DPRINTF.
|
||||
|
||||
* [controls/desktop.c] [relay32/user32.spec]
|
||||
Implemented PaintDesktop.
|
||||
|
||||
* [files/profile.c] [if1632/kernel.spec] [misc/network.c]
|
||||
[misc/printdrv.c] [relay32/winspool.spec]
|
||||
[win32/ordinals.c] [relay32/kernel32.spec]
|
||||
Some stubs added.
|
||||
|
||||
* [relay32/mpr.spec]
|
||||
All ordinals were off by one.
|
||||
|
||||
Tue May 26 13:32:57 1998 Bill Hawes <whawes@star.net>
|
||||
|
||||
* [misc/lstr.c] [include/casemap.h] [tools/unimap.pl]
|
||||
Added Unicode case conversion routines towupper/towlower,
|
||||
with mapping tables casemap.h created by tools/unimap.pl.
|
||||
|
||||
* [misc/ntdll.c] [include/winnls.h] [relay32/ntdll.spec]
|
||||
[relay32/advapi.spec]
|
||||
Minimal implementation of IsTextUnicode, just enough to get
|
||||
NT4 notepad to open ascii/unicode files.
|
||||
|
||||
* [Make.rules.in] [resources/sysres_En.rc]
|
||||
Added include file dlgs.h for building resource files, so that
|
||||
resources can refer to defined values (e.g. pshHelp).
|
||||
|
||||
* [misc/crtdll.c] [relay32/crtdll.spec]
|
||||
Use towupper/towlower for 32W case conversions.
|
||||
|
||||
* [memory/string.c]
|
||||
Use towupper for 32W case conversions.
|
||||
|
||||
* [ole/ole2nls.c]
|
||||
Use towupper for 32W case conversions; fix mem leak; minor cleanup
|
||||
|
||||
* [controls/edit.c]
|
||||
Added soft break flag to edit state. Print unknown action values
|
||||
for WM_VSCROLL (action 190 occurs when running NT4 notepad.)
|
||||
|
||||
Mon May 25 22:42:40 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
|
||||
|
||||
* [files/file.c]
|
||||
Care for a pathological case in SetFilePointer.
|
||||
|
||||
* [graphics/x11drv/xfont.c]
|
||||
Handle longer Font names in LFD_ComposeLFD and try to catch errors.
|
||||
|
||||
* [loader/pe_image.c]
|
||||
Unload Dummymodule when PE_LoadLibraryEx32A fails with
|
||||
PE_LoadImage (makes Encarta 98 installer proceed).
|
||||
|
||||
* [misc/registry.c]
|
||||
Move a check for a special case in RegCreateKeyEx32W after the
|
||||
check for existence.
|
||||
|
||||
Tue May 25 20:18:26 1998 Matthew Becker <mbecker@glasscity.net>
|
||||
|
||||
* [misc/ntdll.c]
|
||||
Added some stubs, just guessing at the size of their param lists.
|
||||
|
||||
* [misc/registry.c]
|
||||
Added stubs for RegUnLoadKey, RegSetKeySecurity, RegSaveKey,
|
||||
RegRestoreKey, and RegReplaceKey
|
||||
|
||||
* [programs/regtest/regtest.c]
|
||||
Updated registry testing program.
|
||||
|
||||
Sun May 24 18:11:40 1998 Alex Priem <alexp@sci.kun.nl>
|
||||
|
||||
* [file/profile.c]
|
||||
Added flag 'return_values' to PROFILE_GetSection.
|
||||
|
||||
Sun May 24 13:41:10 1998 James Juran <jrj120@psu.edu>
|
||||
|
||||
* [misc/shell.c] [files/directory.c]
|
||||
Documentation/debugging info additions.
|
||||
|
||||
* [*/*.c] [include/*.h]
|
||||
Moved many extern function definitions to appropriate header files.
|
||||
Cleaned up a few compile warnings.
|
||||
If #include "debug.h" is present, removed #include <stdio.h>.
|
||||
debug.h includes stdio.h, so it is not necessary to include both.
|
||||
|
||||
* [graphics/*.c] [if1632/signal.c] [ipc/*.c] [scheduler/*.c]
|
||||
[win32/*.c] [windows/*.c]
|
||||
Final patch to convert fprintf statements to new debugging interface.
|
||||
Some fprintfs are still left, especially in the debugger/ directory.
|
||||
However, IMHO, it's not worth the effort to change the rest.
|
||||
|
||||
Fri May 22 21:58:35 1998 Morten Welinder <terra@diku.dk>
|
||||
|
||||
* [windows/keyboard.c]
|
||||
Correct handling of keys "`-=[]\;',./".
|
||||
|
||||
Fri May 22 12:06:00 1998 Per Lindström <pelinstr@algonet.se>
|
||||
|
||||
* [include/windows.h] [relay32/kernel32.spec] [win32/console.c]
|
||||
Added stub for ReadConsoleOutputCharacter32A.
|
||||
|
||||
Thu May 21 16:45:48 1998 Pascal Cuoq <pcuoq@ens-lyon.fr>
|
||||
|
||||
* [ole/ole2nls.c]
|
||||
Began better implementation of LCMapString32A.
|
||||
Not very well tested yet, and still need improvements.
|
||||
|
||||
* [controls/scroll.c]
|
||||
Documented functions.
|
||||
|
||||
Wed May 20 21:37:56 1998 Peter Hunnisett <hunnise@nortel.ca>
|
||||
|
||||
* [include/windows.h][misc/main.c]
|
||||
Change SystemParameterInfo to support SPI_GETHIGHCONTRAST. Also
|
||||
include some missing SPI_ definitions.
|
||||
|
||||
* [include/dsound.h][multimedia/dsound.c][relay32/dplayx.spec]
|
||||
Added stubs for DirectPlayLobbyCreate[AW]. Not sure if these
|
||||
should go into a new files dplayx.c? Anyone care?
|
||||
|
||||
* [include/winnls.h]
|
||||
Added two missing flags for the CompareString32 functions.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Sun May 17 16:23:56 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
# RC_SRCS : resource source files (optional)
|
||||
# EXTRA_SRCS : extra source files for make depend (optional)
|
||||
# EXTRA_OBJS : extra object files (optional)
|
||||
# WRCEXTRA : extra wrc flags (e.g. '-p _SysRes') (optional)
|
||||
|
||||
# First some useful definitions
|
||||
|
||||
|
@ -42,6 +43,8 @@ LINTFLAGS = +posixlib +gnuextensions +trytorecover
|
|||
BUILD = $(TOPOBJDIR)/tools/build@PROGEXT@
|
||||
MAKEDEP = $(TOPOBJDIR)/tools/makedep@PROGEXT@
|
||||
WINERC = $(TOPOBJDIR)/rc/winerc@PROGEXT@
|
||||
WRC = $(TOPOBJDIR)/tools/wrc/wrc@PROGEXT@
|
||||
WRCFLAGS = -t -c
|
||||
WINESTUB = $(TOPOBJDIR)/library/winestub.o
|
||||
SUBMAKE = $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'OPTIONS=$(OPTIONS)'
|
||||
@SET_MAKE@
|
||||
|
@ -65,7 +68,7 @@ OBJS = $(C_SRCS:.c=.o) $(GEN_ASM_SRCS:.s=.o) $(ASM_SRCS:.S=.o) \
|
|||
|
||||
# Implicit rules
|
||||
|
||||
.SUFFIXES: .rc
|
||||
.SUFFIXES: .rc .res
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(ALLCFLAGS) -o $*.o $<
|
||||
|
@ -76,26 +79,46 @@ OBJS = $(C_SRCS:.c=.o) $(GEN_ASM_SRCS:.s=.o) $(ASM_SRCS:.S=.o) \
|
|||
.S.o:
|
||||
$(CC) -c -o $*.o $<
|
||||
|
||||
.rc.c:
|
||||
echo "#include \"windows.h\"" >$*-tmp.c
|
||||
echo WINDOWS_H_ENDS_HERE >>$*-tmp.c
|
||||
cat $< >>$*-tmp.c
|
||||
$(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P $*-tmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
|
||||
$(RM) $*-tmp.c
|
||||
.rc.s:
|
||||
$(WRC) $(WRCFLAGS) $(WRCEXTRA) $(DIVINCL) $<
|
||||
|
||||
.rc.h:
|
||||
echo "#include \"windows.h\"" >$*-tmp.c
|
||||
echo WINDOWS_H_ENDS_HERE >>$*-tmp.c
|
||||
cat $< >>$*-tmp.c
|
||||
$(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P $*-tmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
|
||||
$(RM) $*-tmp.c
|
||||
$(WRC) $(WRCFLAGS) $(WRCEXTRA) $(DIVINCL) -nh $<
|
||||
|
||||
.rc.res:
|
||||
$(WRC) $(WRCFLAGS) $(WRCEXTRA) $(DIVINCL) -r $<
|
||||
|
||||
.res.s:
|
||||
$(WRC) $(WRCFLAGS) $(WRCEXTRA) -b $<
|
||||
|
||||
.res.h:
|
||||
$(WRC) $(WRCFLAGS) $(WRCEXTRA) -bnh $<
|
||||
|
||||
# Obsolete
|
||||
#.rc.c:
|
||||
# echo "#include \"windows.h\"" >$*-tmp.c
|
||||
# echo WINDOWS_H_ENDS_HERE >>$*-tmp.c
|
||||
# cat $< >>$*-tmp.c
|
||||
# $(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P $*-tmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
|
||||
# $(RM) $*-tmp.c
|
||||
#
|
||||
#.rc.h:
|
||||
# echo "#include \"windows.h\"" >$*-tmp.c
|
||||
# echo WINDOWS_H_ENDS_HERE >>$*-tmp.c
|
||||
# cat $< >>$*-tmp.c
|
||||
# $(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P $*-tmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
|
||||
# $(RM) $*-tmp.c
|
||||
#
|
||||
|
||||
|
||||
# Rule to rebuild resource compiler
|
||||
# Rule to rebuild the resource compiler
|
||||
|
||||
$(WINERC) check_winerc:
|
||||
cd $(TOPOBJDIR)/rc; $(SUBMAKE) winerc@PROGEXT@
|
||||
|
||||
$(WRC) check_wrc:
|
||||
cd $(TOPOBJDIR)/tools/wrc; $(SUBMAKE) wrc@PROGEXT@
|
||||
|
||||
# Rule to rebuild the 'makedep' program
|
||||
|
||||
$(MAKEDEP) check_makedep:
|
||||
|
@ -132,7 +155,7 @@ depend:: $(MAKEDEP) $(C_SRCS) $(RC_SRCS) $(EXTRA_SRCS)
|
|||
$(MAKEDEP) $(DIVINCL) -C$(SRCDIR) $(C_SRCS) $(RC_SRCS) $(EXTRA_SRCS)
|
||||
|
||||
clean::
|
||||
$(RM) *.o \#*\# *~ *% *.bak *.orig *.rej *.flc *-tmp.c y.tab.c y.tab.h lex.yy.c core $(GEN_ASM_SRCS) $(RC_SRCS:.rc=.c) $(RC_SRCS:.rc=.h) $(PROGRAMS)
|
||||
$(RM) *.o \#*\# *~ *% *.bak *.orig *.rej *.flc *-tmp.c y.tab.c y.tab.h lex.yy.c core $(GEN_ASM_SRCS) $(RC_SRCS:.rc=.s) $(RC_SRCS:.rc=.h) $(PROGRAMS)
|
||||
|
||||
dummy:
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ MODULE = none
|
|||
LIBSUBDIRS = \
|
||||
rc \
|
||||
tools \
|
||||
tools/wrc \
|
||||
controls \
|
||||
files \
|
||||
graphics \
|
||||
|
|
|
@ -2407,7 +2407,7 @@ EOF
|
|||
fi
|
||||
|
||||
|
||||
for ac_func in clone getpagesize memmove sigaltstack strerror tcgetattr timegm usleep wait4 waitpid
|
||||
for ac_func in clone getpagesize memmove sigaltstack strerror stricmp tcgetattr timegm usleep wait4 waitpid
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:2414: checking for $ac_func" >&5
|
||||
|
@ -3291,6 +3291,7 @@ relay32/Makefile
|
|||
resources/Makefile
|
||||
scheduler/Makefile
|
||||
tools/Makefile
|
||||
tools/wrc/Makefile
|
||||
tsx11/Makefile
|
||||
win32/Makefile
|
||||
windows/Makefile include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
|
||||
|
@ -3422,6 +3423,7 @@ relay32/Makefile
|
|||
resources/Makefile
|
||||
scheduler/Makefile
|
||||
tools/Makefile
|
||||
tools/wrc/Makefile
|
||||
tsx11/Makefile
|
||||
win32/Makefile
|
||||
windows/Makefile "}
|
||||
|
|
|
@ -214,7 +214,7 @@ fi
|
|||
|
||||
dnl **** Check for functions and header files ****
|
||||
|
||||
AC_CHECK_FUNCS(clone getpagesize memmove sigaltstack strerror tcgetattr timegm usleep wait4 waitpid)
|
||||
AC_CHECK_FUNCS(clone getpagesize memmove sigaltstack strerror stricmp tcgetattr timegm usleep wait4 waitpid)
|
||||
AC_CHECK_HEADERS(wctype.h sys/syscall.h syscall.h sys/param.h sys/vfs.h sys/mount.h sys/statfs.h float.h linux/cdrom.h sys/cdio.h sys/filio.h)
|
||||
AC_HEADER_STAT()
|
||||
AC_C_CONST()
|
||||
|
@ -449,6 +449,7 @@ relay32/Makefile
|
|||
resources/Makefile
|
||||
scheduler/Makefile
|
||||
tools/Makefile
|
||||
tools/wrc/Makefile
|
||||
tsx11/Makefile
|
||||
win32/Makefile
|
||||
windows/Makefile ])
|
||||
|
|
|
@ -19,6 +19,7 @@ C_SRCS = \
|
|||
scroll.c \
|
||||
static.c \
|
||||
status.c \
|
||||
toolbar.c \
|
||||
uitools.c \
|
||||
updown.c \
|
||||
widgets.c
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
* FIXME: roll up in Netscape 3.01.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windows.h"
|
||||
|
|
|
@ -11,12 +11,13 @@
|
|||
#include "header.h"
|
||||
#include "progress.h"
|
||||
#include "status.h"
|
||||
#include "toolbar.h"
|
||||
#include "updown.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DrawStatusText32A (COMCTL32.5)
|
||||
* DrawStatusText32A [COMCTL32.5][COMCTL32.27]
|
||||
*/
|
||||
void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text,
|
||||
UINT32 style )
|
||||
|
@ -55,22 +56,7 @@ void WINAPI DrawStatusText32W( HDC32 hdc, LPRECT32 lprc, LPCWSTR text,
|
|||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DrawStatusText16 (COMCTL32.27)
|
||||
*/
|
||||
void WINAPI DrawStatusText16( HDC16 hdc, LPRECT16 lprc, LPCSTR text,
|
||||
UINT16 style )
|
||||
{
|
||||
if(!lprc)
|
||||
DrawStatusText32A((HDC32)hdc, 0, text, (UINT32)style);
|
||||
else{
|
||||
RECT32 rect32;
|
||||
CONV_RECT16TO32( lprc, &rect32 );
|
||||
DrawStatusText32A((HDC32)hdc, &rect32, text, (UINT32)style);
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CreateStatusWindow32A (COMCTL32.6)
|
||||
* CreateStatusWindow32A [COMCTL32.6][COMCTL32.21]
|
||||
*/
|
||||
HWND32 WINAPI CreateStatusWindow32A( INT32 style, LPCSTR text, HWND32 parent,
|
||||
UINT32 wid )
|
||||
|
@ -81,18 +67,6 @@ HWND32 WINAPI CreateStatusWindow32A( INT32 style, LPCSTR text, HWND32 parent,
|
|||
parent, wid, 0, 0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CreateStatusWindow16 (COMCTL32.21)
|
||||
*/
|
||||
HWND16 WINAPI CreateStatusWindow16( INT16 style, LPCSTR text, HWND16 parent,
|
||||
UINT16 wid )
|
||||
{
|
||||
return CreateWindow16(STATUSCLASSNAME16, text, style,
|
||||
CW_USEDEFAULT16, CW_USEDEFAULT16,
|
||||
CW_USEDEFAULT16, CW_USEDEFAULT16,
|
||||
parent, wid, 0, 0);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CreateStatusWindow32W (COMCTL32.22)
|
||||
*/
|
||||
|
@ -177,7 +151,7 @@ InitCommonControlsEx (LPINITCOMMONCONTROLSEX lpInitCtrls)
|
|||
break;
|
||||
|
||||
case ICC_BAR_CLASSES:
|
||||
TRACE (commctrl, "No toolbar class implemented!\n");
|
||||
TOOLBAR_Register ();
|
||||
STATUS_Register ();
|
||||
TRACE (commctrl, "No trackbar class implemented!\n");
|
||||
TRACE (commctrl, "No tooltip class implemented!\n");
|
||||
|
@ -208,6 +182,7 @@ InitCommonControlsEx (LPINITCOMMONCONTROLSEX lpInitCtrls)
|
|||
TRACE (commctrl, "No month calendar class implemented!\n");
|
||||
TRACE (commctrl, "No date picker class implemented!\n");
|
||||
TRACE (commctrl, "No time picker class implemented!\n");
|
||||
UPDOWN_Register ();
|
||||
break;
|
||||
|
||||
case ICC_USEREX_CLASSES:
|
||||
|
@ -288,3 +263,81 @@ MenuHelp (UINT32 uMsg, WPARAM32 wParam, LPARAM lParam, HMENU32 hMainMenu,
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateToolbarEx [COMCTL32.32]
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
HWND32 WINAPI
|
||||
CreateToolbarEx (HWND32 hwnd, DWORD style, UINT32 wID, INT32 nBitmaps,
|
||||
HINSTANCE32 hBMInst, UINT32 wBMID, LPCTBBUTTON lpButtons,
|
||||
INT32 iNumButtons, INT32 dxButton, INT32 dyButton,
|
||||
INT32 dxBitmap, INT32 dyBitmap, UINT32 uStructSize)
|
||||
{
|
||||
HWND32 hwndTB =
|
||||
CreateWindowEx32A(0, TOOLBARCLASSNAME32A, "", style, 0, 0, 0, 0,
|
||||
hwnd, (HMENU32)wID, 0, NULL);
|
||||
if(hwndTB) {
|
||||
TBADDBITMAP tbab;
|
||||
|
||||
SendMessage32A (hwndTB, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
|
||||
|
||||
/* set bitmap and button size */
|
||||
|
||||
/* add bitmaps */
|
||||
tbab.hInst = hBMInst;
|
||||
tbab.nID = wBMID;
|
||||
SendMessage32A (hwndTB, TB_ADDBITMAP,
|
||||
(WPARAM32)nBitmaps, (LPARAM)&tbab);
|
||||
|
||||
/* add buttons */
|
||||
SendMessage32A (hwndTB, TB_ADDBUTTONS32A,
|
||||
(WPARAM32)iNumButtons, (LPARAM)&lpButtons);
|
||||
}
|
||||
|
||||
return (hwndTB);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateMappedBitmap [COMCTL32.8]
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
HBITMAP32 WINAPI
|
||||
CreateMappedBitmap (HINSTANCE32 hInstance, INT32 idBitmap, UINT32 wFlags,
|
||||
LPCOLORMAP lpColorMap, INT32 iNumMaps)
|
||||
{
|
||||
HBITMAP32 hbm;
|
||||
|
||||
FIXME (commctrl, "semi-stub!\n");
|
||||
|
||||
hbm = LoadBitmap32A (hInstance, MAKEINTRESOURCE32A(idBitmap));
|
||||
|
||||
return hbm;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateToolbar [COMCTL32.7]
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
HWND32 WINAPI
|
||||
CreateToolbar (HWND32 hwnd, DWORD style, UINT32 wID, INT32 nBitmaps,
|
||||
HINSTANCE32 hBMInst, UINT32 wBMID,
|
||||
LPCOLDTBBUTTON lpButtons,INT32 iNumButtons)
|
||||
{
|
||||
return CreateToolbarEx (hwnd, style | CCS_NODIVIDER, wID, nBitmaps,
|
||||
hBMInst, wBMID, (LPCTBBUTTON)lpButtons,
|
||||
iNumButtons, 0, 0, 0, 0, sizeof (OLDTBBUTTON));
|
||||
}
|
||||
|
||||
|
|
|
@ -166,6 +166,18 @@ LRESULT WINAPI DesktopWndProc( HWND32 hwnd, UINT32 message,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* PaintDesktop (USER32.415)
|
||||
*
|
||||
*/
|
||||
BOOL32 WINAPI PaintDesktop(HDC32 hdc)
|
||||
{
|
||||
HWND32 hwnd = GetDesktopWindow32();
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
DESKTOPINFO *infoPtr = (DESKTOPINFO *)wndPtr->wExtra;
|
||||
|
||||
return DESKTOP_DoEraseBkgnd( hwnd, hdc, infoPtr );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetDeskPattern (USER.279)
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
* please read EDIT.TODO (and update it when you change things)
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "windows.h"
|
||||
#include "winnt.h"
|
||||
#include "win.h"
|
||||
|
@ -41,6 +40,7 @@
|
|||
#define EF_HSCROLL_HACK 0x0040 /* we already have informed the user of the hacked handler */
|
||||
#define EF_AFTER_WRAP 0x0080 /* the caret is displayed after the last character of a
|
||||
wrapped line, instead of in front of the next character */
|
||||
#define EF_USE_SOFTBRK 0x0100 /* Enable soft breaks in text. */
|
||||
|
||||
typedef BOOL32 *LPBOOL32;
|
||||
|
||||
|
@ -1948,10 +1948,15 @@ static LRESULT EDIT_EM_CharFromPos(WND *wnd, EDITSTATE *es, INT32 x, INT32 y)
|
|||
*
|
||||
* EM_FMTLINES
|
||||
*
|
||||
* Enable or disable soft breaks.
|
||||
*/
|
||||
static BOOL32 EDIT_EM_FmtLines(WND *wnd, EDITSTATE *es, BOOL32 add_eol)
|
||||
{
|
||||
FIXME(edit, "message not implemented\n");
|
||||
es->flags &= ~EF_USE_SOFTBRK;
|
||||
if (add_eol) {
|
||||
es->flags |= EF_USE_SOFTBRK;
|
||||
FIXME(edit, "soft break enabled, not implemented\n");
|
||||
}
|
||||
return add_eol;
|
||||
}
|
||||
|
||||
|
@ -1965,7 +1970,7 @@ static BOOL32 EDIT_EM_FmtLines(WND *wnd, EDITSTATE *es, BOOL32 add_eol)
|
|||
* However, with this message a 32 bit application requests
|
||||
* a handle to 32 bit moveable local heap memory, where it expects
|
||||
* to find the text.
|
||||
* It's a pitty that from this moment on we have to use this
|
||||
* It's a pity that from this moment on we have to use this
|
||||
* local heap, because applications may rely on the handle
|
||||
* in the future.
|
||||
*
|
||||
|
@ -3896,7 +3901,8 @@ static LRESULT EDIT_WM_VScroll(WND *wnd, EDITSTATE *es, INT32 action, INT32 pos,
|
|||
break;
|
||||
|
||||
default:
|
||||
ERR(edit, "undocumented WM_VSCROLL parameter, please report\n");
|
||||
ERR(edit, "undocumented WM_VSCROLL action %d, please report\n",
|
||||
action);
|
||||
return 0;
|
||||
}
|
||||
if (dy)
|
||||
|
|
|
@ -4,15 +4,20 @@
|
|||
* Copyright 1998 Eric Kohl
|
||||
*
|
||||
* TODO:
|
||||
* - Bitmap support (partially).
|
||||
* - Imagelist support (partially).
|
||||
* - Hottrack support (partially).
|
||||
* - Control specific cursors (over dividers).
|
||||
* - Callback items.
|
||||
* - Owner draw support.
|
||||
* - Order list support.
|
||||
* - Control specific cursors (over dividers).
|
||||
* - Hottrack support (partially).
|
||||
* - Custom draw support (including Notifications).
|
||||
* - Drag and Drop support (including Notifications).
|
||||
* - Unicode support.
|
||||
*
|
||||
* FIXME:
|
||||
* - Replace DrawText32A by DrawTextEx32A(...|DT_ENDELLIPSIS) in
|
||||
* HEADER_DrawItem.
|
||||
* - Little flaw when drawing a bitmap on the right side of the text.
|
||||
*/
|
||||
|
||||
#include "windows.h"
|
||||
|
@ -29,10 +34,6 @@
|
|||
#define VERT_BORDER 4
|
||||
#define DIVIDER_WIDTH 10
|
||||
|
||||
#define UNKNOWN_PARAM(msg, wParam, lParam) WARN(header, \
|
||||
"Unknown parameter(s) for message " #msg \
|
||||
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
|
||||
|
||||
#define HEADER_GetInfoPtr(wndPtr) ((HEADER_INFO *)wndPtr->wExtra[0])
|
||||
|
||||
|
||||
|
@ -76,6 +77,8 @@ HEADER_DrawItem (WND *wndPtr, HDC32 hdc, HEADER_ITEM *phdi, BOOL32 bHotTrack)
|
|||
HDC32 hdcBitmap;
|
||||
INT32 yD, yS, cx, cy, rx, ry;
|
||||
|
||||
GetObject32A (phdi->hbm, sizeof(BITMAP32), (LPVOID)&bmp);
|
||||
|
||||
ry = r.bottom - r.top;
|
||||
rx = r.right - r.left;
|
||||
|
||||
|
@ -98,7 +101,6 @@ HEADER_DrawItem (WND *wndPtr, HDC32 hdc, HEADER_ITEM *phdi, BOOL32 bHotTrack)
|
|||
cx = rx - 6;
|
||||
}
|
||||
|
||||
GetObject32A (phdi->hbm, sizeof(BITMAP32), (LPVOID)&bmp);
|
||||
hdcBitmap = CreateCompatibleDC32 (hdc);
|
||||
SelectObject32 (hdcBitmap, phdi->hbm);
|
||||
BitBlt32 (hdc, r.left + 3, yD, cx, cy, hdcBitmap, 0, yS, SRCCOPY);
|
||||
|
@ -107,24 +109,63 @@ HEADER_DrawItem (WND *wndPtr, HDC32 hdc, HEADER_ITEM *phdi, BOOL32 bHotTrack)
|
|||
r.left += (bmp.bmWidth + 3);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
if ((phdi->fmt & HDF_BITMAP_ON_RIGHT) && (phdi->hbm)) {
|
||||
BITMAP32 bmp;
|
||||
HDC32 hdcBitmap;
|
||||
INT32 xD, yD, yS, cx, cy, rx, ry, tx;
|
||||
RECT32 textRect;
|
||||
|
||||
GetObject32A (phdi->hbm, sizeof(BITMAP32), (LPVOID)&bmp);
|
||||
|
||||
textRect = r;
|
||||
DrawText32A(hdc, phdi->pszText, lstrlen32A(phdi->pszText),
|
||||
&textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT);
|
||||
tx = textRect.right - textRect.left;
|
||||
ry = r.bottom - r.top;
|
||||
rx = r.right - r.left;
|
||||
|
||||
if (ry >= bmp.bmHeight) {
|
||||
cy = bmp.bmHeight;
|
||||
yD = r.top + (ry - bmp.bmHeight) / 2;
|
||||
yS = 0;
|
||||
}
|
||||
else {
|
||||
cy = ry;
|
||||
yD = r.top;
|
||||
yS = (bmp.bmHeight - ry) / 2;
|
||||
|
||||
}
|
||||
|
||||
if (r.left + tx + bmp.bmWidth + 9 <= r.right) {
|
||||
cx = bmp.bmWidth;
|
||||
xD = r.left + tx + 6;
|
||||
}
|
||||
else {
|
||||
if (rx >= bmp.bmWidth + 6) {
|
||||
cx = bmp.bmWidth;
|
||||
xD = r.right - bmp.bmWidth - 3;
|
||||
r.right = xD - 3;
|
||||
}
|
||||
else {
|
||||
cx = rx - 3;
|
||||
xD = r.left;
|
||||
r.right = r.left;
|
||||
}
|
||||
}
|
||||
|
||||
hdcBitmap = CreateCompatibleDC32 (hdc);
|
||||
SelectObject32 (hdcBitmap, phdi->hbm);
|
||||
BitBlt32 (hdc, xD, yD, cx, cy, hdcBitmap, 0, yS, SRCCOPY);
|
||||
DeleteDC32 (hdcBitmap);
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
if (phdi->fmt & HDF_IMAGE) {
|
||||
HEADER_INFO *infoPtr = HEADER_GetInfoPtr(wndPtr);
|
||||
|
||||
ImageList_Draw (....);
|
||||
|
||||
// ImageList_Draw (infoPtr->himl, phdi->iImage,...);
|
||||
}
|
||||
*/
|
||||
|
||||
if ((phdi->fmt & HDF_STRING) && (phdi->pszText)) {
|
||||
oldBkMode = SetBkMode32(hdc, TRANSPARENT);
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "windows.h"
|
||||
#include "winerror.h"
|
||||
#include "drive.h"
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "windows.h"
|
||||
#include "bitmap.h"
|
||||
|
@ -77,6 +76,7 @@ typedef struct {
|
|||
HWND32 hWnd; /* Window containing the menu */
|
||||
MENUITEM *items; /* Array of menu items */
|
||||
UINT32 FocusedItem; /* Currently focused item */
|
||||
WORD defitem; /* default item position. Unused (except for set/get)*/
|
||||
} POPUPMENU, *LPPOPUPMENU;
|
||||
|
||||
/* internal flags for menu tracking */
|
||||
|
@ -1444,9 +1444,13 @@ static BOOL32 MENU_SetItemData( MENUITEM *item, UINT32 flags, UINT32 id,
|
|||
}
|
||||
}
|
||||
else if (flags & MF_BITMAP) item->text = (LPSTR)(HBITMAP32)LOWORD(str);
|
||||
else if (flags & MF_OWNERDRAW) item->text = (LPSTR)str;
|
||||
else item->text = NULL;
|
||||
|
||||
if (flags & MF_OWNERDRAW)
|
||||
item->dwItemData = (DWORD)str;
|
||||
else
|
||||
item->dwItemData = 0;
|
||||
|
||||
if ((item->fType & MF_POPUP) && (flags & MF_POPUP) && (item->hSubMenu != id) )
|
||||
DestroyMenu32( item->hSubMenu ); /* ModifyMenu() spec */
|
||||
|
||||
|
@ -3032,7 +3036,6 @@ BOOL32 WINAPI InsertMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags,
|
|||
((POPUPMENU *)USER_HEAP_LIN_ADDR((HMENU16)id))->wFlags |= MF_POPUP;
|
||||
|
||||
item->hCheckBit = item->hUnCheckBit = 0;
|
||||
item->dwItemData = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -3735,7 +3738,7 @@ static BOOL32 GetMenuItemInfo32_common ( HMENU32 hmenu, UINT32 item,
|
|||
LPMENUITEMINFO32A lpmii,
|
||||
BOOL32 unicode)
|
||||
{
|
||||
MENUITEM *menu = MENU_FindItem (&hmenu, &item, bypos);
|
||||
MENUITEM *menu = MENU_FindItem (&hmenu, &item, bypos? MF_BYPOSITION : 0);
|
||||
debug_print_menuitem("GetMenuItemInfo32_common: ", menu, "");
|
||||
if (!menu)
|
||||
return FALSE;
|
||||
|
@ -3853,7 +3856,7 @@ static BOOL32 SetMenuItemInfo32_common(MENUITEM * menu,
|
|||
BOOL32 WINAPI SetMenuItemInfo32A(HMENU32 hmenu, UINT32 item, BOOL32 bypos,
|
||||
const MENUITEMINFO32A *lpmii)
|
||||
{
|
||||
return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos),
|
||||
return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos? MF_BYPOSITION : 0),
|
||||
lpmii, FALSE);
|
||||
}
|
||||
|
||||
|
@ -3863,7 +3866,7 @@ BOOL32 WINAPI SetMenuItemInfo32A(HMENU32 hmenu, UINT32 item, BOOL32 bypos,
|
|||
BOOL32 WINAPI SetMenuItemInfo32W(HMENU32 hmenu, UINT32 item, BOOL32 bypos,
|
||||
const MENUITEMINFO32W *lpmii)
|
||||
{
|
||||
return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos),
|
||||
return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos? MF_BYPOSITION : 0),
|
||||
(const MENUITEMINFO32A*)lpmii, TRUE);
|
||||
}
|
||||
|
||||
|
@ -3872,14 +3875,36 @@ BOOL32 WINAPI SetMenuItemInfo32W(HMENU32 hmenu, UINT32 item, BOOL32 bypos,
|
|||
*/
|
||||
BOOL32 WINAPI SetMenuDefaultItem32(HMENU32 hmenu, UINT32 item, BOOL32 bypos)
|
||||
{
|
||||
MENUITEM *menu = MENU_FindItem(&hmenu, &item, bypos);
|
||||
if (!menu) return FALSE;
|
||||
debug_print_menuitem("SetMenuDefaultItem32: ", menu, "");
|
||||
MENUITEM *menuitem = MENU_FindItem(&hmenu, &item, bypos);
|
||||
POPUPMENU *menu;
|
||||
|
||||
if (!menuitem) return FALSE;
|
||||
if (!(menu = (POPUPMENU *) USER_HEAP_LIN_ADDR(hmenu))) return FALSE;
|
||||
|
||||
menu->defitem = item; /* position */
|
||||
|
||||
debug_print_menuitem("SetMenuDefaultItem32: ", menuitem, "");
|
||||
FIXME(menu, "(0x%x,%d,%d), empty stub!\n",
|
||||
hmenu, item, bypos);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* GetMenuDefaultItem32 (USER32.260)
|
||||
*/
|
||||
UINT32 WINAPI GetMenuDefaultItem32(HMENU32 hmenu, UINT32 bypos, UINT32 flags)
|
||||
{
|
||||
POPUPMENU *menu;
|
||||
|
||||
if (!(menu = (POPUPMENU *) USER_HEAP_LIN_ADDR(hmenu))) return 0; /*FIXME*/
|
||||
|
||||
FIXME(menu, "(0x%x,%d,%d), stub!\n", hmenu, bypos, flags);
|
||||
if (bypos & MF_BYPOSITION)
|
||||
return menu->defitem;
|
||||
else
|
||||
return menu->items[menu->defitem].wID;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
* InsertMenuItem16 (USER.441)
|
||||
*
|
||||
|
|
|
@ -159,9 +159,10 @@ LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
|
|||
{
|
||||
case WM_CREATE:
|
||||
/* allocate memory for info struct */
|
||||
wndPtr->wExtra[0] = HeapAlloc (SystemHeap, HEAP_ZERO_MEMORY,
|
||||
infoPtr = (PROGRESS_INFO *)HeapAlloc (SystemHeap, HEAP_ZERO_MEMORY,
|
||||
sizeof(PROGRESS_INFO));
|
||||
infoPtr = (PROGRESS_INFO *)wndPtr->wExtra[0];
|
||||
wndPtr->wExtra[0] = (DWORD)infoPtr;
|
||||
|
||||
/* initialize the info struct */
|
||||
infoPtr->MinVal=0;
|
||||
infoPtr->MaxVal=100;
|
||||
|
@ -169,11 +170,11 @@ LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
|
|||
infoPtr->Step=10;
|
||||
infoPtr->ColorBar=CLR_DEFAULT;
|
||||
infoPtr->ColorBk=CLR_DEFAULT;
|
||||
TRACE(updown, "Progress Ctrl creation, hwnd=%04x\n", hwnd);
|
||||
TRACE(progress, "Progress Ctrl creation, hwnd=%04x\n", hwnd);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
TRACE(updown, "Progress Ctrl destruction, hwnd=%04x\n", hwnd);
|
||||
TRACE(progress, "Progress Ctrl destruction, hwnd=%04x\n", hwnd);
|
||||
HeapFree (SystemHeap, 0, infoPtr);
|
||||
break;
|
||||
|
||||
|
@ -183,10 +184,12 @@ LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
|
|||
return 1;
|
||||
|
||||
case WM_GETFONT:
|
||||
FIXME (progress, "WM_GETFONT - empty message!\n");
|
||||
/* FIXME: What do we need to do? */
|
||||
break;
|
||||
|
||||
case WM_SETFONT:
|
||||
FIXME (progress, "WM_SETFONT - empty message!\n");
|
||||
/* FIXME: What do we need to do? */
|
||||
break;
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "windows.h"
|
||||
|
@ -900,9 +899,23 @@ INT16 WINAPI SetScrollInfo16( HWND16 hwnd, INT16 nBar, const SCROLLINFO *info,
|
|||
|
||||
/*************************************************************************
|
||||
* SetScrollInfo32 (USER32.501)
|
||||
* SetScrollInfo32 can be used to set the position, upper bound,
|
||||
* lower bound, and page size of a scrollbar control.
|
||||
*
|
||||
* RETURNS
|
||||
* Scrollbar position
|
||||
*
|
||||
* NOTE
|
||||
* For 100 lines of text to be displayed in a window of 25 lines,
|
||||
* one would for instance use info->nMin=0, info->nMax=75
|
||||
* (corresponding to the 76 different positions of the window on
|
||||
* the text), and info->nPage=25.
|
||||
*/
|
||||
INT32 WINAPI SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info,
|
||||
BOOL32 bRedraw )
|
||||
INT32 WINAPI SetScrollInfo32(
|
||||
HWND32 hwnd /* [I] Handle of window whose scrollbar will be affected */,
|
||||
INT32 nBar /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */,
|
||||
const SCROLLINFO *info /* [I] Specifies what to change and new values */,
|
||||
BOOL32 bRedraw /* [I] Should scrollbar be redrawn afterwards ? */)
|
||||
{
|
||||
SCROLLBAR_INFO *infoPtr;
|
||||
UINT32 new_flags;
|
||||
|
@ -1019,8 +1032,15 @@ BOOL16 WINAPI GetScrollInfo16( HWND16 hwnd, INT16 nBar, LPSCROLLINFO info )
|
|||
|
||||
/*************************************************************************
|
||||
* GetScrollInfo32 (USER32.284)
|
||||
* GetScrollInfo32 can be used to retrieve the position, upper bound,
|
||||
* lower bound, and page size of a scrollbar control.
|
||||
*
|
||||
* RETURNS STD
|
||||
*/
|
||||
BOOL32 WINAPI GetScrollInfo32( HWND32 hwnd, INT32 nBar, LPSCROLLINFO info )
|
||||
BOOL32 WINAPI GetScrollInfo32(
|
||||
HWND32 hwnd /* [I] Handle of window */ ,
|
||||
INT32 nBar /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */,
|
||||
LPSCROLLINFO info /* [IO] (info.fMask [I] specifies which values are to retrieve) */)
|
||||
{
|
||||
SCROLLBAR_INFO *infoPtr;
|
||||
|
||||
|
@ -1054,9 +1074,20 @@ INT16 WINAPI SetScrollPos16( HWND16 hwnd, INT16 nBar, INT16 nPos,
|
|||
|
||||
/*************************************************************************
|
||||
* SetScrollPos32 (USER32.502)
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Scrollbar position
|
||||
* Failure: 0
|
||||
*
|
||||
* REMARKS
|
||||
* Note the ambiguity when 0 is returned. Use GetLastError
|
||||
* to make sure there was an error (and to know which one).
|
||||
*/
|
||||
INT32 WINAPI SetScrollPos32( HWND32 hwnd, INT32 nBar, INT32 nPos,
|
||||
BOOL32 bRedraw )
|
||||
INT32 WINAPI SetScrollPos32(
|
||||
HWND32 hwnd /* [I] Handle of window whose scrollbar will be affected */,
|
||||
INT32 nBar /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */,
|
||||
INT32 nPos /* [I] New value */,
|
||||
BOOL32 bRedraw /* [I] Should scrollbar be redrawn afterwards ? */ )
|
||||
{
|
||||
SCROLLINFO info;
|
||||
SCROLLBAR_INFO *infoPtr;
|
||||
|
@ -1083,8 +1114,18 @@ INT16 WINAPI GetScrollPos16( HWND16 hwnd, INT16 nBar )
|
|||
|
||||
/*************************************************************************
|
||||
* GetScrollPos32 (USER32.285)
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Current position
|
||||
* Failure: 0
|
||||
*
|
||||
* REMARKS
|
||||
* Note the ambiguity when 0 is returned. Use GetLastError
|
||||
* to make sure there was an error (and to know which one).
|
||||
*/
|
||||
INT32 WINAPI GetScrollPos32( HWND32 hwnd, INT32 nBar )
|
||||
INT32 WINAPI GetScrollPos32(
|
||||
HWND32 hwnd, /* [I] Handle of window */
|
||||
INT32 nBar /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */)
|
||||
{
|
||||
SCROLLBAR_INFO *infoPtr;
|
||||
|
||||
|
@ -1107,9 +1148,15 @@ void WINAPI SetScrollRange16( HWND16 hwnd, INT16 nBar,
|
|||
|
||||
/*************************************************************************
|
||||
* SetScrollRange32 (USER32.503)
|
||||
*
|
||||
* RETURNS STD
|
||||
*/
|
||||
BOOL32 WINAPI SetScrollRange32( HWND32 hwnd, INT32 nBar,
|
||||
INT32 MinVal, INT32 MaxVal, BOOL32 bRedraw )
|
||||
BOOL32 WINAPI SetScrollRange32(
|
||||
HWND32 hwnd, /* [I] Handle of window whose scrollbar will be affected */
|
||||
INT32 nBar, /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */
|
||||
INT32 MinVal, /* [I] New minimum value */
|
||||
INT32 MaxVal, /* [I] New maximum value */
|
||||
BOOL32 bRedraw /* [I] Should scrollbar be redrawn afterwards ? */)
|
||||
{
|
||||
SCROLLINFO info;
|
||||
|
||||
|
@ -1172,9 +1219,14 @@ BOOL16 WINAPI GetScrollRange16( HWND16 hwnd, INT16 nBar,
|
|||
|
||||
/*************************************************************************
|
||||
* GetScrollRange32 (USER32.286)
|
||||
*
|
||||
* RETURNS STD
|
||||
*/
|
||||
BOOL32 WINAPI GetScrollRange32( HWND32 hwnd, INT32 nBar,
|
||||
LPINT32 lpMin, LPINT32 lpMax)
|
||||
BOOL32 WINAPI GetScrollRange32(
|
||||
HWND32 hwnd, /* [I] Handle of window */
|
||||
INT32 nBar, /* [I] One of SB_HORZ, SB_VERT, or SB_CTL */
|
||||
LPINT32 lpMin, /* [O] Where to store minimum value */
|
||||
LPINT32 lpMax /* [O] Where to store maximum value */)
|
||||
{
|
||||
SCROLLBAR_INFO *infoPtr;
|
||||
|
||||
|
@ -1201,8 +1253,13 @@ void WINAPI ShowScrollBar16( HWND16 hwnd, INT16 nBar, BOOL16 fShow )
|
|||
|
||||
/*************************************************************************
|
||||
* ShowScrollBar32 (USER32.532)
|
||||
*
|
||||
* RETURNS STD
|
||||
*/
|
||||
BOOL32 WINAPI ShowScrollBar32( HWND32 hwnd, INT32 nBar, BOOL32 fShow )
|
||||
BOOL32 WINAPI ShowScrollBar32(
|
||||
HWND32 hwnd, /* [I] Handle of window whose scrollbar(s) will be affected */
|
||||
INT32 nBar, /* [I] One of SB_HORZ, SB_VERT, SB_BOTH or SB_CTL */
|
||||
BOOL32 fShow /* [I] TRUE = show, FALSE = hide */)
|
||||
{
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "windows.h"
|
||||
#include "win.h"
|
||||
#include "bitmap.h"
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
* Copyright 1998 Eric Kohl
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "windows.h"
|
||||
#include "status.h"
|
||||
#include "commctrl.h"
|
||||
|
@ -21,16 +19,10 @@
|
|||
|
||||
/*
|
||||
* Fixme/Todo
|
||||
* 1) Don't hard code bar to bottom of window, allow CCS_TOP also
|
||||
* 2) Add 'non hack' version of icon drawing code
|
||||
* 1) Don't hard code bar to bottom of window, allow CCS_TOP also.
|
||||
+ 2) Tooltip support.
|
||||
*/
|
||||
|
||||
#define __GET_ICON_INFO_HACK__
|
||||
|
||||
#ifdef __GET_ICON_INFO_HACK__
|
||||
#include "bitmap.h"
|
||||
#endif
|
||||
|
||||
#define _MAX(a,b) (((a)>(b))?(a):(b))
|
||||
#define _MIN(a,b) (((a)>(b))?(b):(a))
|
||||
|
||||
|
@ -92,61 +84,20 @@ SB_DrawPart( HDC32 hdc, LPRECT32 lprc, HICON32 hIcon,
|
|||
RECT32 r = *lprc;
|
||||
UINT32 border = BDR_SUNKENOUTER;
|
||||
|
||||
if(style==SBT_POPOUT)
|
||||
if (style==SBT_POPOUT)
|
||||
border = BDR_RAISEDOUTER;
|
||||
else if(style==SBT_NOBORDERS)
|
||||
else if (style==SBT_NOBORDERS)
|
||||
border = 0;
|
||||
|
||||
DrawEdge32(hdc, &r, border, BF_RECT|BF_ADJUST);
|
||||
|
||||
/* draw the icon */
|
||||
if (hIcon) {
|
||||
#ifdef __GET_ICON_INFO_HACK__
|
||||
HBITMAP32 hbmImage;
|
||||
HBITMAP32 hbmMask;
|
||||
CURSORICONINFO *ptr;
|
||||
HDC32 hdcSrc;
|
||||
INT32 y, cy, ry, ty;
|
||||
INT32 cy = r.bottom - r.top;
|
||||
|
||||
if (ptr = (CURSORICONINFO *)GlobalLock16(hIcon)) {
|
||||
hbmMask = CreateBitmap32 (ptr->nWidth, ptr->nHeight, 1, 1,
|
||||
(char *)(ptr + 1));
|
||||
hbmImage = CreateBitmap32 (ptr->nWidth, ptr->nHeight, ptr->bPlanes,
|
||||
ptr->bBitsPerPixel,
|
||||
(char *)(ptr + 1) + ptr->nHeight *
|
||||
BITMAP_WIDTH_BYTES(ptr->nWidth, 1));
|
||||
r.left += 2;
|
||||
ry = r.bottom - r.top;
|
||||
if (ry >= ptr->nHeight) {
|
||||
/* full view of icon */
|
||||
y = 0;
|
||||
cy = ptr->nHeight;
|
||||
ty = r.top + (ry - ptr->nHeight) / 2;
|
||||
}
|
||||
else {
|
||||
/* partial view of icon */
|
||||
y = (ptr->nHeight - ry) / 2;
|
||||
cy = ry;
|
||||
ty = r.top;
|
||||
}
|
||||
|
||||
hdcSrc = CreateCompatibleDC32 (hdc);
|
||||
SelectObject32 (hdcSrc, hbmMask);
|
||||
BitBlt32 (hdc, r.left, r.top, ptr->nWidth, cy,
|
||||
hdcSrc, 0, y, SRCAND);
|
||||
SelectObject32 (hdcSrc, hbmImage);
|
||||
BitBlt32 (hdc, r.left, r.top, ptr->nWidth, cy,
|
||||
hdcSrc, 0, y, SRCPAINT);
|
||||
DeleteDC32 (hdcSrc);
|
||||
|
||||
r.left += ptr->nWidth;
|
||||
DeleteObject32 (hbmImage);
|
||||
DeleteObject32 (hbmMask);
|
||||
GlobalUnlock16 (hIcon);
|
||||
}
|
||||
#else
|
||||
/* FIXME: no "non hack" version available!!! */
|
||||
#endif
|
||||
DrawIconEx32 (hdc, r.left, r.top, hIcon, cy, cy, 0, 0, DI_NORMAL);
|
||||
r.left += cy;
|
||||
}
|
||||
|
||||
/* now draw text */
|
||||
|
@ -378,10 +329,11 @@ SW_Create(HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
|||
STATUSWINDOWINFO *self;
|
||||
|
||||
wndPtr = WIN_FindWndPtr(hwnd);
|
||||
wndPtr->wExtra[0] = HeapAlloc (SystemHeap, HEAP_ZERO_MEMORY,
|
||||
sizeof(STATUSWINDOWINFO));
|
||||
self = (STATUSWINDOWINFO*)HeapAlloc (SystemHeap, HEAP_ZERO_MEMORY,
|
||||
sizeof(STATUSWINDOWINFO));
|
||||
|
||||
wndPtr->wExtra[0] = (DWORD)self;
|
||||
|
||||
self = (STATUSWINDOWINFO*)wndPtr->wExtra[0];
|
||||
self->numParts = 1;
|
||||
self->parts = 0;
|
||||
self->simple = FALSE;
|
||||
|
@ -397,33 +349,33 @@ SW_Create(HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
|||
self->part0.hIcon = 0;
|
||||
|
||||
/* initialize first part */
|
||||
self->parts = HeapAlloc(SystemHeap, HEAP_ZERO_MEMORY,
|
||||
sizeof(STATUSWINDOWPART));
|
||||
self->parts = HeapAlloc (SystemHeap, HEAP_ZERO_MEMORY,
|
||||
sizeof(STATUSWINDOWPART));
|
||||
self->parts[0].bound = rect;
|
||||
self->parts[0].text = 0;
|
||||
self->parts[0].x = -1;
|
||||
self->parts[0].style = 0;
|
||||
self->parts[0].hIcon = 0;
|
||||
|
||||
if (len = lstrlen32A( lpCreate->lpszName ) ) {
|
||||
self->parts[0].text = HeapAlloc( SystemHeap, 0, len + 1 );
|
||||
lstrcpy32A( self->parts[0].text, lpCreate->lpszName );
|
||||
if ((len = lstrlen32A (lpCreate->lpszName))) {
|
||||
self->parts[0].text = HeapAlloc (SystemHeap, 0, len + 1);
|
||||
lstrcpy32A (self->parts[0].text, lpCreate->lpszName);
|
||||
}
|
||||
|
||||
height = 20;
|
||||
if ((hdc = GetDC32(0))) {
|
||||
if ((hdc = GetDC32 (0))) {
|
||||
TEXTMETRIC32A tm;
|
||||
GetTextMetrics32A(hdc, &tm);
|
||||
self->textHeight = tm.tmHeight;
|
||||
ReleaseDC32(0, hdc);
|
||||
}
|
||||
|
||||
parent = GetParent32(hwnd);
|
||||
GetClientRect32(parent, &rect);
|
||||
parent = GetParent32 (hwnd);
|
||||
GetClientRect32 (parent, &rect);
|
||||
width = rect.right - rect.left;
|
||||
self->height = self->textHeight + 4 + VERT_BORDER;
|
||||
MoveWindow32(hwnd, lpCreate->x, lpCreate->y-1, width, self->height, FALSE);
|
||||
SW_SetPartBounds(hwnd, self);
|
||||
MoveWindow32 (hwnd, lpCreate->x, lpCreate->y-1, width, self->height, FALSE);
|
||||
SW_SetPartBounds (hwnd, self);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -495,12 +447,11 @@ SW_GetTextLength(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lP
|
|||
static LRESULT
|
||||
SW_SetMinHeight(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
INT32 width, height, x, y;
|
||||
INT32 width, x, y;
|
||||
RECT32 parent_rect;
|
||||
HWND32 parent;
|
||||
|
||||
if (IsWindowVisible32 (hwnd)) {
|
||||
/* width and height don't apply */
|
||||
parent = GetParent32(hwnd);
|
||||
GetClientRect32(parent, &parent_rect);
|
||||
self->height = (INT32)wParam + VERT_BORDER;
|
||||
|
@ -531,12 +482,10 @@ SW_SetBkColor(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lPara
|
|||
|
||||
|
||||
static LRESULT
|
||||
SW_SetIcon(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
SW_SetIcon (STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
HDC32 hdc;
|
||||
INT32 nPart;
|
||||
INT32 nPart = (INT32)wParam & 0x00ff;
|
||||
|
||||
nPart = (INT32)wParam & 0x00ff;
|
||||
if ((nPart < -1) || (nPart >= self->numParts)) return FALSE;
|
||||
|
||||
if (nPart == -1) {
|
||||
|
@ -558,7 +507,7 @@ SW_GetIcon(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
|||
INT32 nPart;
|
||||
|
||||
nPart = (INT32)wParam & 0x00ff;
|
||||
if ((nPart < -1) || (nPart >= self->numParts)) return NULL;
|
||||
if ((nPart < -1) || (nPart >= self->numParts)) return 0;
|
||||
|
||||
if (nPart == -1)
|
||||
return (self->part0.hIcon);
|
||||
|
@ -663,7 +612,6 @@ SW_NcHitTest (WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
static LRESULT
|
||||
SW_NcLButtonDown (HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
// TRACE (status, "WM_NCLBUTTONDOWN\n");
|
||||
PostMessage32A (GetParent32 (hwnd), WM_NCLBUTTONDOWN,
|
||||
wParam, lParam);
|
||||
return 0;
|
||||
|
@ -673,7 +621,6 @@ SW_NcLButtonDown (HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
|||
static LRESULT
|
||||
SW_NcLButtonUp (HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
// TRACE (status, "WM_NCLBUTTONUP\n");
|
||||
PostMessage32A (GetParent32 (hwnd), WM_NCLBUTTONUP,
|
||||
wParam, lParam);
|
||||
return 0;
|
||||
|
@ -722,8 +669,8 @@ SW_WMSetText (STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lPara
|
|||
HeapFree(SystemHeap, 0, part->text);
|
||||
part->text = 0;
|
||||
if (lParam && (len = lstrlen32A((LPCSTR)lParam))) {
|
||||
part->text = HeapAlloc(SystemHeap, 0, len+1);
|
||||
lstrcpy32A(part->text, (LPCSTR)lParam);
|
||||
part->text = HeapAlloc (SystemHeap, 0, len+1);
|
||||
lstrcpy32A (part->text, (LPCSTR)lParam);
|
||||
}
|
||||
InvalidateRect32(hwnd, &part->bound, FALSE);
|
||||
|
||||
|
@ -735,7 +682,7 @@ static LRESULT
|
|||
SW_Size(STATUSWINDOWINFO *self, HWND32 hwnd, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
/* Need to resize width to match parent */
|
||||
INT32 width, height, x, y;
|
||||
INT32 width, x, y;
|
||||
RECT32 parent_rect;
|
||||
HWND32 parent;
|
||||
|
||||
|
@ -836,7 +783,7 @@ StatusWindowProc (HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam)
|
|||
case WM_NCHITTEST:
|
||||
return SW_NcHitTest (wndPtr, wParam, lParam);
|
||||
|
||||
case WM_NCLBUTTONDOWN:
|
||||
case WM_NCLBUTTONDOWN:
|
||||
return SW_NcLButtonDown (hwnd, wParam, lParam);
|
||||
|
||||
case WM_NCLBUTTONUP:
|
||||
|
@ -862,25 +809,25 @@ StatusWindowProc (HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam)
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* STATUS_Register [Internal]
|
||||
* STATUS_Register [Internal]
|
||||
*
|
||||
* Registers the status window class.
|
||||
*/
|
||||
void STATUS_Register(void)
|
||||
void STATUS_Register (void)
|
||||
{
|
||||
WNDCLASS32A wndClass;
|
||||
|
||||
if( GlobalFindAtom32A( STATUSCLASSNAME32A ) ) return;
|
||||
if (GlobalFindAtom32A (STATUSCLASSNAME32A)) return;
|
||||
|
||||
ZeroMemory( &wndClass, sizeof( WNDCLASS32A ) );
|
||||
ZeroMemory (&wndClass, sizeof(WNDCLASS32A));
|
||||
wndClass.style = CS_GLOBALCLASS | CS_DBLCLKS | CS_VREDRAW;
|
||||
wndClass.lpfnWndProc = (WNDPROC32)StatusWindowProc;
|
||||
wndClass.cbClsExtra = 0;
|
||||
wndClass.cbWndExtra = sizeof(STATUSWINDOWINFO *);
|
||||
wndClass.hCursor = LoadCursor32A( 0, IDC_ARROW32A );
|
||||
wndClass.hCursor = LoadCursor32A (0, IDC_ARROW32A);
|
||||
wndClass.hbrBackground = (HBRUSH32)(COLOR_3DFACE + 1);
|
||||
wndClass.lpszClassName = STATUSCLASSNAME32A;
|
||||
|
||||
RegisterClass32A( &wndClass );
|
||||
RegisterClass32A (&wndClass);
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,6 @@
|
|||
* Copyright 1997 Bertho A. Stultiens
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "windows.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "windows.h"
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
/*
|
||||
* HISTORY
|
||||
* $Log: db_disasm.c,v $
|
||||
*
|
||||
* Revision 2.6 92/01/03 20:05:00 dbg
|
||||
* Add a switch to disassemble 16-bit code.
|
||||
* Fix spelling of 'lods' opcodes.
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <signal.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include "winbase.h"
|
||||
#include "class.h"
|
||||
#include "module.h"
|
||||
#include "options.h"
|
||||
|
@ -565,20 +566,20 @@ void DebugBreak( CONTEXT *regs )
|
|||
|
||||
void wine_debug( int signal, SIGCONTEXT *regs )
|
||||
{
|
||||
DEBUG_SetSigContext( regs );
|
||||
#if 0
|
||||
DWORD *stack = (DWORD *)ESP_reg(&DEBUG_context);
|
||||
DWORD *stack = (DWORD *)ESP_sig(regs);
|
||||
*(--stack) = 0;
|
||||
*(--stack) = 0;
|
||||
*(--stack) = EH_NONCONTINUABLE;
|
||||
*(--stack) = EXCEPTION_ACCESS_VIOLATION;
|
||||
*(--stack) = EIP_reg(&DEBUG_context);
|
||||
ESP_reg(&DEBUG_context) = (DWORD)stack;
|
||||
EIP_reg(&DEBUG_context) = GetProcAddress32( GetModuleHandle("KERNEL32"),
|
||||
"RaiseException" );
|
||||
#endif
|
||||
*(--stack) = EIP_sig(regs);
|
||||
ESP_sig(regs) = (DWORD)stack;
|
||||
EIP_sig(regs) = (DWORD)RaiseException;
|
||||
#else
|
||||
DEBUG_SetSigContext( regs );
|
||||
DEBUG_Main( signal );
|
||||
DEBUG_GetSigContext( regs );
|
||||
#endif
|
||||
}
|
||||
|
||||
int yyerror(char * s)
|
||||
|
@ -586,4 +587,3 @@ int yyerror(char * s)
|
|||
fprintf(stderr,"%s\n", s);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
353
debugger/stabs.c
353
debugger/stabs.c
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <assert.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mman.h>
|
||||
#include <limits.h>
|
||||
|
@ -128,14 +129,85 @@ static void stab_strcpy(char * dest, const char * source)
|
|||
* ':'.
|
||||
*/
|
||||
while(*source != '\0' && *source != ':')
|
||||
{
|
||||
*dest++ = *source++;
|
||||
}
|
||||
*dest++ = '\0';
|
||||
}
|
||||
|
||||
#define MAX_TD_NESTING 128
|
||||
|
||||
static int **typenums;
|
||||
static int *nroftypenums=NULL;
|
||||
static int nrofnroftypenums=0;
|
||||
static int curtypenum = 0;
|
||||
|
||||
static
|
||||
int
|
||||
DEBUG_FileSubNr2StabEnum(int filenr,int subnr) {
|
||||
if (nrofnroftypenums<=filenr) {
|
||||
nroftypenums = xrealloc(nroftypenums,sizeof(nroftypenums[0])*(filenr+1));
|
||||
memset(nroftypenums+nrofnroftypenums,0,(filenr+1-nrofnroftypenums)*sizeof(nroftypenums[0]));
|
||||
typenums = xrealloc(typenums,sizeof(typenums[0])*(filenr+1));
|
||||
memset(typenums+nrofnroftypenums,0,sizeof(typenums[0])*(filenr+1-nrofnroftypenums));
|
||||
nrofnroftypenums=filenr+1;
|
||||
}
|
||||
if (nroftypenums[filenr]<=subnr) {
|
||||
typenums[filenr] = xrealloc(typenums[filenr],sizeof(typenums[0][0])*(subnr+1));
|
||||
memset(typenums[filenr]+nroftypenums[filenr],0,sizeof(typenums[0][0])*(subnr+1-nroftypenums[filenr]));
|
||||
nroftypenums[filenr] = subnr+1;
|
||||
}
|
||||
if (!typenums[filenr][subnr])
|
||||
typenums[filenr][subnr]=++curtypenum;
|
||||
|
||||
if( num_stab_types <= curtypenum ) {
|
||||
num_stab_types = curtypenum + 256;
|
||||
stab_types = (struct datatype **) xrealloc(stab_types,
|
||||
num_stab_types * sizeof(struct datatype *)
|
||||
);
|
||||
}
|
||||
//fprintf(stderr,"(%d,%d) is %d\n",filenr,subnr,typenums[filenr][subnr]);
|
||||
return typenums[filenr][subnr];
|
||||
}
|
||||
|
||||
static
|
||||
int
|
||||
DEBUG_ReadTypeEnumBackwards(char*x) {
|
||||
int filenr,subnr;
|
||||
|
||||
if (*x==')') {
|
||||
while (*x!='(')
|
||||
x--;
|
||||
x++; /* '(' */
|
||||
filenr=strtol(x,&x,10); /* <int> */
|
||||
assert(*(x++)==','); /* ',' */
|
||||
subnr=strtol(x,&x,10); /* <int> */
|
||||
assert(*(x++)==')'); /* ')' */
|
||||
} else {
|
||||
while ((*x>='0') && (*x<='9'))
|
||||
x--;
|
||||
filenr = 0;
|
||||
subnr = atol(x+1);
|
||||
}
|
||||
return DEBUG_FileSubNr2StabEnum(filenr,subnr);
|
||||
}
|
||||
|
||||
static
|
||||
int
|
||||
DEBUG_ReadTypeEnum(char **x) {
|
||||
int filenr,subnr;
|
||||
|
||||
if (**x=='(') {
|
||||
(*x)++; /* '(' */
|
||||
filenr=strtol(*x,x,10); /* <int> */
|
||||
(*x)++; /* ',' */
|
||||
subnr=strtol(*x,x,10); /* <int> */
|
||||
(*x)++; /* ')' */
|
||||
} else {
|
||||
filenr = 0;
|
||||
subnr = strtol(*x,x,10); /* <int> */
|
||||
}
|
||||
return DEBUG_FileSubNr2StabEnum(filenr,subnr);
|
||||
}
|
||||
|
||||
static
|
||||
int
|
||||
DEBUG_RegisterTypedef(const char * name, struct datatype ** types, int ndef)
|
||||
|
@ -144,12 +216,10 @@ DEBUG_RegisterTypedef(const char * name, struct datatype ** types, int ndef)
|
|||
struct known_typedef * ktd;
|
||||
|
||||
if( ndef == 1 )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
ktd = (struct known_typedef *) malloc(sizeof(struct known_typedef)
|
||||
+ ndef * sizeof(struct datatype *));
|
||||
ktd = (struct known_typedef *) xmalloc(sizeof(struct known_typedef)
|
||||
+ ndef * sizeof(struct datatype *));
|
||||
|
||||
hash = stab_hash(name);
|
||||
|
||||
|
@ -171,27 +241,18 @@ DEBUG_HandlePreviousTypedef(const char * name, const char * stab)
|
|||
int hash;
|
||||
struct known_typedef * ktd;
|
||||
char * ptr;
|
||||
char * tc;
|
||||
int typenum;
|
||||
|
||||
hash = stab_hash(name);
|
||||
|
||||
for(ktd = ktd_head[hash]; ktd; ktd = ktd->next)
|
||||
{
|
||||
if( (ktd->name[0] == name[0])
|
||||
&& (strcmp(name, ktd->name) == 0) )
|
||||
{
|
||||
if ((ktd->name[0] == name[0]) && (strcmp(name, ktd->name) == 0) )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Didn't find it. This must be a new one.
|
||||
*/
|
||||
if( ktd == NULL )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Examine the stab to make sure it has the same number of definitions.
|
||||
|
@ -200,9 +261,7 @@ DEBUG_HandlePreviousTypedef(const char * name, const char * stab)
|
|||
for(ptr = strchr(stab, '='); ptr; ptr = strchr(ptr+1, '='))
|
||||
{
|
||||
if( count >= ktd->ndefs )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure the types of all of the objects is consistent with
|
||||
|
@ -221,6 +280,7 @@ DEBUG_HandlePreviousTypedef(const char * name, const char * stab)
|
|||
expect = ARRAY;
|
||||
break;
|
||||
case '1':
|
||||
case '(':
|
||||
case 'r':
|
||||
expect = BASIC;
|
||||
break;
|
||||
|
@ -234,52 +294,24 @@ DEBUG_HandlePreviousTypedef(const char * name, const char * stab)
|
|||
expect = FUNC;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown type.\n");
|
||||
fprintf(stderr, "Unknown type (%c).\n",ptr[1]);
|
||||
return FALSE;
|
||||
}
|
||||
if( expect != DEBUG_GetType(ktd->types[count]) )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
if( ktd->ndefs != count )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* OK, this one is safe. Go through, dig out all of the type numbers,
|
||||
* and substitute the appropriate things.
|
||||
* Go through, dig out all of the type numbers, and substitute the
|
||||
* appropriate things.
|
||||
*/
|
||||
count = 0;
|
||||
for(ptr = strchr(stab, '='); ptr; ptr = strchr(ptr+1, '='))
|
||||
{
|
||||
/*
|
||||
* Back up until we get to a non-numeric character. This is the type
|
||||
* number.
|
||||
*/
|
||||
tc = ptr - 1;
|
||||
while( *tc >= '0' && *tc <= '9' )
|
||||
{
|
||||
tc--;
|
||||
}
|
||||
|
||||
typenum = atol(tc + 1);
|
||||
if( num_stab_types <= typenum )
|
||||
{
|
||||
num_stab_types = typenum + 32;
|
||||
stab_types = (struct datatype **) xrealloc(stab_types,
|
||||
num_stab_types * sizeof(struct datatype *));
|
||||
if( stab_types == NULL )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
stab_types[typenum] = ktd->types[count++];
|
||||
}
|
||||
stab_types[DEBUG_ReadTypeEnumBackwards(ptr-1)] = ktd->types[count++];
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -322,7 +354,6 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
int ntypes = 0;
|
||||
int offset;
|
||||
const char * orig_typename;
|
||||
int rtn = FALSE;
|
||||
int size;
|
||||
char * tc;
|
||||
char * tc2;
|
||||
|
@ -330,10 +361,8 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
|
||||
orig_typename = typename;
|
||||
|
||||
if( DEBUG_HandlePreviousTypedef(typename, ptr) == TRUE )
|
||||
{
|
||||
if( DEBUG_HandlePreviousTypedef(typename, ptr) )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Go from back to front. First we go through and figure out what
|
||||
|
@ -347,22 +376,7 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
* Back up until we get to a non-numeric character. This is the type
|
||||
* number.
|
||||
*/
|
||||
tc = c - 1;
|
||||
while( *tc >= '0' && *tc <= '9' )
|
||||
{
|
||||
tc--;
|
||||
}
|
||||
typenum = atol(tc + 1);
|
||||
if( num_stab_types <= typenum )
|
||||
{
|
||||
num_stab_types = typenum + 32;
|
||||
stab_types = (struct datatype **) xrealloc(stab_types,
|
||||
num_stab_types * sizeof(struct datatype *));
|
||||
if( stab_types == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
}
|
||||
typenum = DEBUG_ReadTypeEnumBackwards(c-1);
|
||||
|
||||
if( ntypes >= MAX_TD_NESTING )
|
||||
{
|
||||
|
@ -388,6 +402,7 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
stab_types[typenum] = DEBUG_NewDataType(ARRAY, NULL);
|
||||
curr_types[ntypes++] = stab_types[typenum];
|
||||
break;
|
||||
case '(':
|
||||
case '1':
|
||||
case 'r':
|
||||
stab_types[typenum] = DEBUG_NewDataType(BASIC, typename);
|
||||
|
@ -407,7 +422,7 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
curr_types[ntypes++] = stab_types[typenum];
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown type.\n");
|
||||
fprintf(stderr, "Unknown type (%c).\n",c[1]);
|
||||
}
|
||||
typename = NULL;
|
||||
}
|
||||
|
@ -426,16 +441,7 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
*/
|
||||
for( c = strrchr(ptr, '='); c != NULL; c = strrchr(ptr, '=') )
|
||||
{
|
||||
/*
|
||||
* Back up until we get to a non-numeric character. This is the type
|
||||
* number.
|
||||
*/
|
||||
tc = c - 1;
|
||||
while( *tc >= '0' && *tc <= '9' )
|
||||
{
|
||||
tc--;
|
||||
}
|
||||
typenum = atol(tc + 1);
|
||||
int typenum = DEBUG_ReadTypeEnumBackwards(c-1);
|
||||
curr_type = stab_types[typenum];
|
||||
|
||||
switch(c[1])
|
||||
|
@ -443,34 +449,24 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
case 'x':
|
||||
tc = c + 3;
|
||||
while( *tc != ':' )
|
||||
{
|
||||
tc ++;
|
||||
}
|
||||
tc++;
|
||||
tc++;
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc);
|
||||
}
|
||||
|
||||
break;
|
||||
case '*':
|
||||
case 'f':
|
||||
tc = c + 2;
|
||||
datatype = stab_types[strtol(tc, &tc, 10)];
|
||||
datatype = stab_types[DEBUG_ReadTypeEnum(&tc)];
|
||||
DEBUG_SetPointerType(curr_type, datatype);
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc);
|
||||
}
|
||||
break;
|
||||
case '(':
|
||||
case '1':
|
||||
case 'r':
|
||||
/*
|
||||
|
@ -479,25 +475,27 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
*c = '\0';
|
||||
break;
|
||||
case 'a':
|
||||
tc = c + 5;
|
||||
arrmin = strtol(tc, &tc, 10);
|
||||
tc++;
|
||||
arrmax = strtol(tc, &tc, 10);
|
||||
tc++;
|
||||
datatype = stab_types[strtol(tc, &tc, 10)];
|
||||
/* ar<typeinfo_nodef>;<int>;<int>;<typeinfo>,<int>,<int>;; */
|
||||
|
||||
tc = c + 3;
|
||||
assert(c[2]=='r');
|
||||
DEBUG_ReadTypeEnum(&tc);
|
||||
assert(*(tc++)==';'); /* ';' */
|
||||
arrmin = strtol(tc, &tc, 10); /* <int> */
|
||||
assert(*(tc++)==';'); /* ';' */
|
||||
arrmax = strtol(tc, &tc, 10); /* <int> */
|
||||
assert(*(tc++)==';'); /* ';' */
|
||||
datatype = stab_types[DEBUG_ReadTypeEnum(&tc)]; /* <typeinfo> */
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc);
|
||||
}
|
||||
|
||||
DEBUG_SetArrayParams(curr_type, arrmin, arrmax, datatype);
|
||||
break;
|
||||
case 's':
|
||||
case 'u':
|
||||
case 'u': {
|
||||
int failure = 0;
|
||||
|
||||
tc = c + 2;
|
||||
if( DEBUG_SetStructSize(curr_type, strtol(tc, &tc, 10)) == FALSE )
|
||||
{
|
||||
|
@ -506,20 +504,14 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
* so just skip forward to the end of the definition.
|
||||
*/
|
||||
while( tc[0] != ';' && tc[1] != ';' )
|
||||
{
|
||||
tc++;
|
||||
}
|
||||
|
||||
tc += 2;
|
||||
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc + 1);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -528,30 +520,44 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
*/
|
||||
while(*tc != ';')
|
||||
{
|
||||
char *ti;
|
||||
tc2 = element_name;
|
||||
while(*tc != ':')
|
||||
{
|
||||
*tc2++ = *tc++;
|
||||
}
|
||||
tc++;
|
||||
*tc2++ = '\0';
|
||||
datatype = stab_types[strtol(tc, &tc, 10)];
|
||||
ti=tc;
|
||||
datatype = stab_types[DEBUG_ReadTypeEnum(&tc)];
|
||||
*tc='\0';
|
||||
tc++;
|
||||
offset = strtol(tc, &tc, 10);
|
||||
tc++;
|
||||
size = strtol(tc, &tc, 10);
|
||||
tc++;
|
||||
DEBUG_AddStructElement(curr_type, element_name, datatype, offset, size);
|
||||
if (datatype)
|
||||
DEBUG_AddStructElement(curr_type, element_name, datatype, offset, size);
|
||||
else {
|
||||
failure = 1;
|
||||
/* ... but proceed parsing to the end of the stab */
|
||||
}
|
||||
}
|
||||
|
||||
if (failure) {
|
||||
/* if we had a undeclared value this one is undeclared too.
|
||||
* remove it from the stab_types.
|
||||
* I just set it to NULL to detect bugs in my thoughtprocess.
|
||||
* FIXME: leaks the memory for the structure elements.
|
||||
* FIXME: such structures should have been optimized away
|
||||
* by ld.
|
||||
*/
|
||||
stab_types[typenum] = NULL;
|
||||
}
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc + 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'e':
|
||||
tc = c + 2;
|
||||
/*
|
||||
|
@ -561,9 +567,7 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
{
|
||||
tc2 = element_name;
|
||||
while(*tc != ':')
|
||||
{
|
||||
*tc2++ = *tc++;
|
||||
}
|
||||
tc++;
|
||||
*tc2++ = '\0';
|
||||
offset = strtol(tc, &tc, 10);
|
||||
|
@ -571,25 +575,17 @@ DEBUG_ParseTypedefStab(char * ptr, const char * typename)
|
|||
DEBUG_AddStructElement(curr_type, element_name, NULL, offset, 0);
|
||||
}
|
||||
if( *tc == '\0' )
|
||||
{
|
||||
*c = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(c, tc + 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown type.\n");
|
||||
fprintf(stderr, "Unknown type (%c).\n",c[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
rtn = TRUE;
|
||||
|
||||
leave:
|
||||
|
||||
return rtn;
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
|
@ -597,7 +593,6 @@ static struct datatype *
|
|||
DEBUG_ParseStabType(const char * stab)
|
||||
{
|
||||
char * c;
|
||||
int typenum;
|
||||
|
||||
/*
|
||||
* Look through the stab definition, and figure out what datatype
|
||||
|
@ -606,9 +601,7 @@ DEBUG_ParseStabType(const char * stab)
|
|||
*/
|
||||
c = strchr(stab, ':');
|
||||
if( c == NULL )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
c++;
|
||||
/*
|
||||
|
@ -616,15 +609,11 @@ DEBUG_ParseStabType(const char * stab)
|
|||
* of symbol. Skip it.
|
||||
*/
|
||||
c++;
|
||||
|
||||
typenum = atol(c);
|
||||
|
||||
if( typenum < num_stab_types && stab_types[typenum] != NULL )
|
||||
{
|
||||
return stab_types[typenum];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
/*
|
||||
* The next is either an integer or a (integer,integer).
|
||||
* The DEBUG_ReadTypeEnum takes care that stab_types is large enough.
|
||||
*/
|
||||
return stab_types[DEBUG_ReadTypeEnum(&c)];
|
||||
}
|
||||
|
||||
static
|
||||
|
@ -664,10 +653,6 @@ DEBUG_ParseStabs(char * addr, unsigned int load_offset,
|
|||
*/
|
||||
stabbufflen = 65536;
|
||||
stabbuff = (char *) xmalloc(stabbufflen);
|
||||
if( stabbuff == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
strtabinc = 0;
|
||||
stabbuff[0] = '\0';
|
||||
|
@ -686,10 +671,6 @@ DEBUG_ParseStabs(char * addr, unsigned int load_offset,
|
|||
{
|
||||
stabbufflen += 65536;
|
||||
stabbuff = (char *) xrealloc(stabbuff, stabbufflen);
|
||||
if( stabbuff == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
}
|
||||
strncat(stabbuff, ptr, len - 1);
|
||||
continue;
|
||||
|
@ -886,7 +867,11 @@ DEBUG_ParseStabs(char * addr, unsigned int load_offset,
|
|||
* The datatypes that we would need to use are reset when
|
||||
* we start a new file.
|
||||
*/
|
||||
memset(stab_types, 0, num_stab_types * sizeof(stab_types));
|
||||
memset(stab_types, 0, num_stab_types * sizeof(stab_types[0]));
|
||||
/*
|
||||
for (i=0;i<nrofnroftypenums;i++)
|
||||
memset(typenums[i],0,sizeof(typenums[i][0])*nroftypenums[i]);
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -946,8 +931,6 @@ DEBUG_ParseStabs(char * addr, unsigned int load_offset,
|
|||
#endif
|
||||
}
|
||||
|
||||
leave:
|
||||
|
||||
if( stab_types != NULL )
|
||||
{
|
||||
free(stab_types);
|
||||
|
@ -1025,9 +1008,7 @@ DEBUG_ProcessElfSymtab(char * addr, unsigned int load_offset,
|
|||
*/
|
||||
if( (DEBUG_GetSymbolValue(symname, -1, &new_addr, FALSE ) == TRUE)
|
||||
&& (new_addr.off == (load_offset + symp->st_value)) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
new_addr.seg = 0;
|
||||
new_addr.type = NULL;
|
||||
|
@ -1035,22 +1016,16 @@ DEBUG_ProcessElfSymtab(char * addr, unsigned int load_offset,
|
|||
flags = SYM_WINE | (ELF32_ST_BIND(symp->st_info) == STT_FUNC
|
||||
? SYM_FUNC : SYM_DATA);
|
||||
if( ELF32_ST_BIND(symp->st_info) == STB_GLOBAL )
|
||||
{
|
||||
curr_sym = DEBUG_AddSymbol( symname, &new_addr, NULL, flags );
|
||||
}
|
||||
else
|
||||
{
|
||||
curr_sym = DEBUG_AddSymbol( symname, &new_addr, curfile, flags );
|
||||
}
|
||||
|
||||
/*
|
||||
* Record the size of the symbol. This can come in handy in
|
||||
* some cases. Not really used yet, however.
|
||||
*/
|
||||
if( symp->st_size != 0 )
|
||||
{
|
||||
DEBUG_SetSymbolSize(curr_sym, symp->st_size);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -1078,9 +1053,7 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
* Make sure we can stat and open this file.
|
||||
*/
|
||||
if( filename == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
status = stat(filename, &statbuf);
|
||||
if( status == -1 )
|
||||
|
@ -1116,9 +1089,7 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
*/
|
||||
fd = open(filename, O_RDONLY);
|
||||
if( fd == -1 )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
@ -1127,9 +1098,7 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
addr = mmap(0, statbuf.st_size, PROT_READ,
|
||||
MAP_PRIVATE, fd, 0);
|
||||
if( addr == (char *) 0xffffffff )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/*
|
||||
* Give a nice status message here...
|
||||
|
@ -1145,13 +1114,9 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
ehptr = (Elf32_Ehdr *) addr;
|
||||
|
||||
if( load_offset == 0 )
|
||||
{
|
||||
DEBUG_RegisterELFDebugInfo(ehptr->e_entry, statbuf.st_size, filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_RegisterELFDebugInfo(load_offset, statbuf.st_size, filename);
|
||||
}
|
||||
|
||||
spnt = (Elf32_Shdr *) (addr + ehptr->e_shoff);
|
||||
nsect = ehptr->e_shnum;
|
||||
|
@ -1162,20 +1127,14 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
for(i=0; i < nsect; i++)
|
||||
{
|
||||
if( strcmp(shstrtab + spnt[i].sh_name, ".stab") == 0 )
|
||||
{
|
||||
stabsect = i;
|
||||
}
|
||||
|
||||
if( strcmp(shstrtab + spnt[i].sh_name, ".stabstr") == 0 )
|
||||
{
|
||||
stabstrsect = i;
|
||||
}
|
||||
}
|
||||
|
||||
if( stabsect == -1 || stabstrsect == -1 )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/*
|
||||
* OK, now just parse all of the stabs.
|
||||
|
@ -1187,38 +1146,28 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
|
|||
spnt[stabstrsect].sh_size);
|
||||
|
||||
if( rtn != TRUE )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
for(i=0; i < nsect; i++)
|
||||
{
|
||||
if( (strcmp(shstrtab + spnt[i].sh_name, ".symtab") == 0)
|
||||
&& (spnt[i].sh_type == SHT_SYMTAB) )
|
||||
{
|
||||
DEBUG_ProcessElfSymtab(addr, load_offset,
|
||||
spnt + i, spnt + spnt[i].sh_link);
|
||||
}
|
||||
|
||||
if( (strcmp(shstrtab + spnt[i].sh_name, ".dynsym") == 0)
|
||||
&& (spnt[i].sh_type == SHT_DYNSYM) )
|
||||
{
|
||||
DEBUG_ProcessElfSymtab(addr, load_offset,
|
||||
spnt + i, spnt + spnt[i].sh_link);
|
||||
}
|
||||
}
|
||||
|
||||
leave:
|
||||
|
||||
if( addr != (char *) 0xffffffff )
|
||||
{
|
||||
munmap(addr, statbuf.st_size);
|
||||
}
|
||||
|
||||
if( fd != -1 )
|
||||
{
|
||||
close(fd);
|
||||
}
|
||||
|
||||
return (rtn);
|
||||
|
||||
|
@ -1241,9 +1190,7 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
* Make sure we can stat and open this file.
|
||||
*/
|
||||
if( exe_name == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
DEBUG_ProcessElfObject(exe_name, 0);
|
||||
|
||||
|
@ -1254,27 +1201,19 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
*/
|
||||
dynpnt = _DYNAMIC;
|
||||
if( dynpnt == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now walk the dynamic section (of the executable, looking for a DT_DEBUG
|
||||
* entry.
|
||||
*/
|
||||
for(; dynpnt->d_tag != DT_NULL; dynpnt++)
|
||||
{
|
||||
if( dynpnt->d_tag == DT_DEBUG )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if( (dynpnt->d_tag != DT_DEBUG)
|
||||
|| (dynpnt->d_un.d_ptr == 0) )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/*
|
||||
* OK, now dig into the actual tables themselves.
|
||||
|
@ -1297,14 +1236,10 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
*/
|
||||
ehdr = (Elf32_Ehdr *) lpnt->l_addr;
|
||||
if( (lpnt->l_addr == 0) || (ehdr->e_type != ET_DYN) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if( lpnt->l_name != NULL )
|
||||
{
|
||||
DEBUG_ProcessElfObject(lpnt->l_name, lpnt->l_addr);
|
||||
}
|
||||
}
|
||||
|
||||
rtn = TRUE;
|
||||
|
@ -1340,24 +1275,18 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
* Make sure we can stat and open this file.
|
||||
*/
|
||||
if( exe_name == NULL )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
status = stat(exe_name, &statbuf);
|
||||
if( status == -1 )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now open the file, so that we can mmap() it.
|
||||
*/
|
||||
fd = open(exe_name, O_RDONLY);
|
||||
if( fd == -1 )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
@ -1366,9 +1295,7 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
addr = mmap(0, statbuf.st_size, PROT_READ,
|
||||
MAP_PRIVATE, fd, 0);
|
||||
if( addr == (char *) 0xffffffff )
|
||||
{
|
||||
goto leave;
|
||||
}
|
||||
|
||||
ahdr = (struct exec *) addr;
|
||||
|
||||
|
@ -1390,14 +1317,10 @@ DEBUG_ReadExecutableDbgInfo(void)
|
|||
leave:
|
||||
|
||||
if( addr != (char *) 0xffffffff )
|
||||
{
|
||||
munmap(addr, statbuf.st_size);
|
||||
}
|
||||
|
||||
if( fd != -1 )
|
||||
{
|
||||
close(fd);
|
||||
}
|
||||
|
||||
return (rtn);
|
||||
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
1. Get freetype-1.0.full.tar.gz
|
||||
2. Read docus, unpack, configure and install
|
||||
3. Test the library, e.g. "ftview 20 /dosc/win95/fonts/times "
|
||||
4. Get xfsft-beta1e.linux-i586
|
||||
5. Install it and start it when booting, e.g. in an rc-script.
|
||||
The manpage for xfs applies.
|
||||
6. Follow the hints given by williamc@dai.ed.ac.uk
|
||||
==========
|
||||
I got xfsft from http://www.dcs.ed.ac.uk/home/jec/progindex.html.
|
||||
I have it running all the time. Here is /usr/X11R6/lib/X11/fs/config:
|
||||
clone-self = on
|
||||
use-syslog = off
|
||||
catalogue = /c/windows/fonts
|
||||
error-file = /usr/X11R6/lib/X11/fs/fs-errors
|
||||
default-point-size = 120
|
||||
default-resolutions = 75,75,100,100
|
||||
Obviously /c/windows/fonts is where my Windows fonts on my
|
||||
Win95 C: drive live; could be e.g. /mnt/dosC/windows/system
|
||||
for Win31.
|
||||
In /c/windows/fonts/fonts.scale I have
|
||||
14
|
||||
arial.ttf -monotype-arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
arialbd.ttf -monotype-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
arialbi.ttf -monotype-arial-bold-o-normal--0-0-0-0-p-0-iso8859-1
|
||||
ariali.ttf -monotype-arial-medium-o-normal--0-0-0-0-p-0-iso8859-1
|
||||
cour.ttf -monotype-courier-medium-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
courbd.ttf -monotype-courier-bold-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
courbi.ttf -monotype-courier-bold-o-normal--0-0-0-0-p-0-iso8859-1
|
||||
couri.ttf -monotype-courier-medium-o-normal--0-0-0-0-p-0-iso8859-1
|
||||
times.ttf -monotype-times-medium-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
timesbd.ttf -monotype-times-bold-r-normal--0-0-0-0-p-0-iso8859-1
|
||||
timesbi.ttf -monotype-times-bold-i-normal--0-0-0-0-p-0-iso8859-1
|
||||
timesi.ttf -monotype-times-medium-i-normal--0-0-0-0-p-0-iso8859-1
|
||||
symbol.ttf -monotype-symbol-medium-r-normal--0-0-0-0-p-0-microsoft-symbol
|
||||
wingding.ttf -microsoft-wingdings-medium-r-normal--0-0-0-0-p-0-microsoft-symbol
|
||||
|
||||
In /c/windows/fonts/fonts.dir I have exactly the same.
|
||||
|
||||
In /usr/X11R6/lib/X11/XF86Config I have
|
||||
FontPath "tcp/localhost:7100"
|
||||
in front of the other FontPath lines.
|
||||
That's it! As an interesting by-product of course, all those web
|
||||
pages which specify Arial come up in Arial in Netscape ...
|
||||
=======
|
||||
7. Shut down X and restart ( and debug errors you did while setting
|
||||
up everything.
|
||||
|
||||
8. Test with e.g "xlsfont |grep arial"
|
||||
|
||||
Hope this helps
|
|
@ -465,9 +465,11 @@ static BOOL32 DIR_TryModulePath( LPCSTR name, DOS_FULL_NAME *full_name )
|
|||
|
||||
if (pdb->flags & PDB32_WIN16_PROC) {
|
||||
if (!GetCurrentTask()) return FALSE;
|
||||
GetModuleFileName16( GetCurrentTask(), buffer, sizeof(buffer) );
|
||||
if (!GetModuleFileName16( GetCurrentTask(), buffer, sizeof(buffer) ))
|
||||
buffer[0]='\0';
|
||||
} else {
|
||||
GetModuleFileName32A( 0, buffer, sizeof(buffer) );
|
||||
if (!GetModuleFileName32A( 0, buffer, sizeof(buffer) ))
|
||||
buffer[0]='\0';
|
||||
}
|
||||
if (!(p = strrchr( buffer, '\\' ))) return FALSE;
|
||||
if (sizeof(buffer) - (++p - buffer) <= strlen(name)) return FALSE;
|
||||
|
@ -568,7 +570,31 @@ done:
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* SearchPath32A (KERNEL32.447)
|
||||
* SearchPath32A [KERNEL32.447]
|
||||
*
|
||||
* Searches for a specified file in the search path.
|
||||
*
|
||||
* PARAMS
|
||||
* path [I] Path to search
|
||||
* name [I] Filename to search for.
|
||||
* ext [I] File extension to append to file name. The first
|
||||
* character must be a period. This parameter is
|
||||
* specified only if the filename given does not
|
||||
* contain an extension.
|
||||
* buflen [I] size of buffer, in characters
|
||||
* buffer [O] buffer for found filename
|
||||
* lastpart [O] address of pointer to last used character in
|
||||
* buffer (the final '\')
|
||||
*
|
||||
* RETURNS
|
||||
* Success: length of string copied into buffer, not including
|
||||
* terminating null character. If the filename found is
|
||||
* longer than the length of the buffer, the length of the
|
||||
* filename is returned.
|
||||
* Failure: Zero
|
||||
*
|
||||
* NOTES
|
||||
* Should call SetLastError(but currently doesn't).
|
||||
*/
|
||||
DWORD WINAPI SearchPath32A( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen,
|
||||
LPSTR buffer, LPSTR *lastpart )
|
||||
|
@ -587,6 +613,7 @@ DWORD WINAPI SearchPath32A( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen,
|
|||
for (p = buffer; *p; p++) if (*p == '/') *p = '\\';
|
||||
if (lastpart) *lastpart = strrchr( buffer, '\\' ) + 1;
|
||||
}
|
||||
TRACE(dosfs, "Returning %d\n", (*res ? strlen(res) + 2 : 3));
|
||||
return *res ? strlen(res) + 2 : 3;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <time.h>
|
||||
|
|
59
files/file.c
59
files/file.c
|
@ -9,7 +9,6 @@
|
|||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/errno.h>
|
||||
|
@ -1004,7 +1003,15 @@ DWORD WINAPI SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword,
|
|||
}
|
||||
|
||||
if ((result = lseek( file->unix_handle, distance, origin )) == -1)
|
||||
{
|
||||
/* care for this pathological case:
|
||||
SetFilePointer(00000006,ffffffff,00000000,00000002)
|
||||
ret=0062ab4a fs=01c7 */
|
||||
if ((distance != -1))
|
||||
FILE_SetDosError();
|
||||
else
|
||||
result = 0;
|
||||
}
|
||||
FILE_ReleaseFile( file );
|
||||
return (DWORD)result;
|
||||
}
|
||||
|
@ -1850,3 +1857,53 @@ BOOL32 WINAPI UnlockFile(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* GetFileAttributesEx32A [KERNEL32.874]
|
||||
*/
|
||||
BOOL32 WINAPI GetFileAttributesEx32A(
|
||||
LPCSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId,
|
||||
LPVOID lpFileInformation)
|
||||
{
|
||||
DOS_FULL_NAME full_name;
|
||||
BY_HANDLE_FILE_INFORMATION info;
|
||||
|
||||
if (lpFileName == NULL) return FALSE;
|
||||
if (lpFileInformation == NULL) return FALSE;
|
||||
|
||||
if (fInfoLevelId == GetFileExInfoStandard) {
|
||||
LPWIN32_FILE_ATTRIBUTE_DATA lpFad =
|
||||
(LPWIN32_FILE_ATTRIBUTE_DATA) lpFileInformation;
|
||||
if (!DOSFS_GetFullName( lpFileName, TRUE, &full_name )) return FALSE;
|
||||
if (!FILE_Stat( full_name.long_name, &info )) return FALSE;
|
||||
|
||||
lpFad->dwFileAttributes = info.dwFileAttributes;
|
||||
lpFad->ftCreationTime = info.ftCreationTime;
|
||||
lpFad->ftLastAccessTime = info.ftLastAccessTime;
|
||||
lpFad->ftLastWriteTime = info.ftLastWriteTime;
|
||||
lpFad->nFileSizeHigh = info.nFileSizeHigh;
|
||||
lpFad->nFileSizeLow = info.nFileSizeLow;
|
||||
}
|
||||
else {
|
||||
FIXME (file, "invalid info level %d!\n", fInfoLevelId);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* GetFileAttributesEx32W [KERNEL32.875]
|
||||
*/
|
||||
BOOL32 WINAPI GetFileAttributesEx32W(
|
||||
LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId,
|
||||
LPVOID lpFileInformation)
|
||||
{
|
||||
LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFileName );
|
||||
BOOL32 res =
|
||||
GetFileAttributesEx32A( nameA, fInfoLevelId, lpFileInformation);
|
||||
HeapFree( GetProcessHeap(), 0, nameA );
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -459,10 +458,12 @@ static BOOL32 PROFILE_Open( LPCSTR filename )
|
|||
/***********************************************************************
|
||||
* PROFILE_GetSection
|
||||
*
|
||||
* Enumerate all the keys of a section.
|
||||
* Returns all keys of a section.
|
||||
* If return_values is TRUE, also include the corrseponding values.
|
||||
*/
|
||||
static INT32 PROFILE_GetSection( PROFILESECTION *section, LPCSTR section_name,
|
||||
LPSTR buffer, INT32 len, BOOL32 handle_env )
|
||||
LPSTR buffer, INT32 len, BOOL32 handle_env,
|
||||
BOOL32 return_values )
|
||||
{
|
||||
PROFILEKEY *key;
|
||||
while (section)
|
||||
|
@ -477,6 +478,13 @@ static INT32 PROFILE_GetSection( PROFILESECTION *section, LPCSTR section_name,
|
|||
PROFILE_CopyEntry( buffer, key->name, len - 1, handle_env );
|
||||
len -= strlen(buffer) + 1;
|
||||
buffer += strlen(buffer) + 1;
|
||||
if (return_values && key->value) {
|
||||
buffer[-1] = '=';
|
||||
PROFILE_CopyEntry ( buffer,
|
||||
key->value, len - 1, handle_env );
|
||||
len -= strlen(buffer) + 1;
|
||||
buffer += strlen(buffer) + 1;
|
||||
}
|
||||
}
|
||||
*buffer = '\0';
|
||||
if (len < 1)
|
||||
|
@ -518,7 +526,8 @@ static INT32 PROFILE_GetString( LPCSTR section, LPCSTR key_name,
|
|||
section, key_name, def_val, buffer );
|
||||
return strlen( buffer );
|
||||
}
|
||||
return PROFILE_GetSection(CurProfile.section, section, buffer, len, FALSE);
|
||||
return PROFILE_GetSection(CurProfile.section, section, buffer, len,
|
||||
FALSE, FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -588,7 +597,7 @@ int PROFILE_GetWineIniString( const char *section, const char *key_name,
|
|||
section, key_name, def, buffer );
|
||||
return strlen( buffer );
|
||||
}
|
||||
return PROFILE_GetSection( WineProfile, section, buffer, len, TRUE );
|
||||
return PROFILE_GetSection( WineProfile, section, buffer, len, TRUE, FALSE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -988,7 +997,9 @@ INT32 WINAPI GetPrivateProfileSection32A( LPCSTR section, LPSTR buffer,
|
|||
INT32 len, LPCSTR filename )
|
||||
{
|
||||
if (PROFILE_Open( filename ))
|
||||
return PROFILE_GetString( section, NULL, NULL, buffer, len );
|
||||
return PROFILE_GetSection(CurProfile.section, section, buffer, len,
|
||||
FALSE, TRUE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1052,6 +1063,16 @@ BOOL32 WINAPI WritePrivateProfileSection32A( LPCSTR section,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GetPrivateProfileSectionNames16 (KERNEL.143)
|
||||
*/
|
||||
WORD WINAPI GetPrivateProfileSectionNames16( LPSTR buffer, WORD size,
|
||||
LPCSTR filename )
|
||||
{
|
||||
FIXME(profile, "(%p,%d,%s):stub\n", buffer, size, filename);
|
||||
buffer[0] = buffer[1] = '\0';
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* WriteOutProfiles (KERNEL.315)
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
#include "ts_xlib.h"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
* Copyright 1996 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "gdi.h"
|
||||
#include "heap.h"
|
||||
#include "debug.h"
|
||||
|
|
|
@ -42,7 +42,7 @@ HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle )
|
|||
ret = WIN16DRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr );
|
||||
break;
|
||||
case BITMAP_MAGIC:
|
||||
fprintf(stderr, "WIN16DRV_SelectObject for BITMAP not implemented\n");
|
||||
FIXME(gdi, "WIN16DRV_SelectObject for BITMAP not implemented\n");
|
||||
ret = 1;
|
||||
break;
|
||||
case FONT_MAGIC:
|
||||
|
|
|
@ -133,7 +133,7 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver)
|
|||
}
|
||||
if (!bSlotFound)
|
||||
{
|
||||
fprintf(stderr,"Too many printers drivers loaded\n");
|
||||
WARN(win16drv,"Too many printers drivers loaded\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver)
|
|||
if (hInst <= 32)
|
||||
{
|
||||
/* Failed to load driver */
|
||||
fprintf(stderr, "Failed to load printer driver %s\n", pszDriver);
|
||||
WARN(win16drv, "Failed to load printer driver %s\n", pszDriver);
|
||||
} else {
|
||||
TRACE(win16drv, "Loaded the library\n");
|
||||
/* Allocate some memory for printer driver info */
|
||||
|
@ -297,7 +297,7 @@ WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName,
|
|||
if(lpFaceName)
|
||||
SEGPTR_FREE(lP2);
|
||||
} else
|
||||
fprintf(stderr,"Failed to find device\n");
|
||||
WARN(win16drv,"Failed to find device\n");
|
||||
|
||||
TRACE(win16drv, "return %x\n", wRet);
|
||||
return wRet;
|
||||
|
@ -340,7 +340,7 @@ BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle,
|
|||
lP1, wP2, lP3, lP4 );
|
||||
}
|
||||
else
|
||||
fprintf(stderr,"Failed to find device\n");
|
||||
WARN(win16drv,"Failed to find device\n");
|
||||
|
||||
TRACE(win16drv, "return %x\n", wRet);
|
||||
return wRet;
|
||||
|
@ -395,7 +395,7 @@ WORD PRTDRV_Output(LPPDEVICE lpDestDev,
|
|||
clip = HeapAlloc( SystemHeap, 0, size );
|
||||
if(!clip)
|
||||
{
|
||||
fprintf(stderr, "Can't alloc clip array in PRTDRV_Output\n");
|
||||
WARN(win16drv, "Can't alloc clip array in PRTDRV_Output\n");
|
||||
return FALSE;
|
||||
}
|
||||
GetRegionData( hClipRgn, size, clip );
|
||||
|
@ -486,8 +486,7 @@ DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle,
|
|||
|
||||
case DRVOBJ_PBITMAP:
|
||||
default:
|
||||
fprintf(stderr,
|
||||
"PRTDRV_RealizeObject: Object type %d not supported\n", wStyle);
|
||||
WARN(win16drv, "Object type %d not supported\n", wStyle);
|
||||
nSize = 0;
|
||||
|
||||
}
|
||||
|
@ -670,26 +669,27 @@ int WINAPI dmEnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName, FARPROC16 lpCallb
|
|||
|
||||
int WINAPI dmRealizeObject(LPPDEVICE lpDestDev, INT16 wStyle, LPSTR lpInObj, LPSTR lpOutObj, SEGPTR lpTextXForm)
|
||||
{
|
||||
fprintf(stderr, "dmRealizeObject(lpDestDev: %08x, wStyle: %04x, lpInObj: %08x, lpOutObj: %08x, lpTextXForm: %08x): stub: ", (UINT32)lpDestDev, wStyle, (UINT32)lpInObj, (UINT32)lpOutObj, (UINT32)lpTextXForm);
|
||||
FIXME(win16drv, "(lpDestDev=%08x,wStyle=%04x,lpInObj=%08x,lpOutObj=%08x,lpTextXForm=%08x): stub\n",
|
||||
(UINT32)lpDestDev, wStyle, (UINT32)lpInObj, (UINT32)lpOutObj, (UINT32)lpTextXForm);
|
||||
if (wStyle < 0) { /* Free extra memory of given object's structure */
|
||||
switch ( -wStyle ) {
|
||||
case DRVOBJ_PEN: {
|
||||
/* LPLOGPEN16 DeletePen = (LPLOGPEN16)lpInObj; */
|
||||
|
||||
fprintf(stderr, "DRVOBJ_PEN_delete\n");
|
||||
TRACE(win16drv, "DRVOBJ_PEN_delete\n");
|
||||
break;
|
||||
}
|
||||
case DRVOBJ_BRUSH: {
|
||||
fprintf(stderr, "DRVOBJ_BRUSH_delete\n");
|
||||
TRACE(win16drv, "DRVOBJ_BRUSH_delete\n");
|
||||
break;
|
||||
}
|
||||
case DRVOBJ_FONT: {
|
||||
/* LPTEXTXFORM16 TextXForm
|
||||
= (LPTEXTXFORM16)lpTextXForm; */
|
||||
fprintf(stderr, "DRVOBJ_FONT_delete\n");
|
||||
TRACE(win16drv, "DRVOBJ_FONT_delete\n");
|
||||
break;
|
||||
}
|
||||
case DRVOBJ_PBITMAP: fprintf(stderr, "DRVOBJ_PBITMAP_delete\n");
|
||||
case DRVOBJ_PBITMAP: TRACE(win16drv, "DRVOBJ_PBITMAP_delete\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -699,7 +699,7 @@ int WINAPI dmRealizeObject(LPPDEVICE lpDestDev, INT16 wStyle, LPSTR lpInObj, LPS
|
|||
case DRVOBJ_PEN: {
|
||||
LPLOGPEN16 InPen = (LPLOGPEN16)lpInObj;
|
||||
|
||||
fprintf(stderr, "DRVOBJ_PEN\n");
|
||||
TRACE(win16drv, "DRVOBJ_PEN\n");
|
||||
if (lpOutObj) {
|
||||
if (InPen->lopnStyle == PS_NULL) {
|
||||
*(DWORD *)lpOutObj = 0;
|
||||
|
@ -722,7 +722,7 @@ int WINAPI dmRealizeObject(LPPDEVICE lpDestDev, INT16 wStyle, LPSTR lpInObj, LPS
|
|||
LPLOGBRUSH16 OutBrush = (LPLOGBRUSH16)lpOutObj;
|
||||
/* LPPOINT16 Point = (LPPOINT16)lpTextXForm; */
|
||||
|
||||
fprintf(stderr, "DRVOBJ_BRUSH\n");
|
||||
TRACE(win16drv, "DRVOBJ_BRUSH\n");
|
||||
if (!lpOutObj) return sizeof(LOGBRUSH16);
|
||||
else {
|
||||
OutBrush->lbStyle = InBrush->lbStyle;
|
||||
|
@ -736,10 +736,10 @@ int WINAPI dmRealizeObject(LPPDEVICE lpDestDev, INT16 wStyle, LPSTR lpInObj, LPS
|
|||
case DRVOBJ_FONT: {
|
||||
/* LPTEXTXFORM16 TextXForm
|
||||
= (LPTEXTXFORM16)lpTextXForm; */
|
||||
fprintf(stderr, "DRVOBJ_FONT\n");
|
||||
TRACE(win16drv, "DRVOBJ_FONT\n");
|
||||
return 0;/* DISPLAY.DRV doesn't realize fonts */
|
||||
}
|
||||
case DRVOBJ_PBITMAP: fprintf(stderr, "DRVOBJ_PBITMAP\n");
|
||||
case DRVOBJ_PBITMAP: TRACE(win16drv, "DRVOBJ_PBITMAP\n");
|
||||
return 0; /* create memory bitmap */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
#include "xmalloc.h"
|
||||
#include "debug.h"
|
||||
|
||||
extern void CLIPPING_UpdateGCRegion(DC* );
|
||||
|
||||
typedef enum WING_DITHER_TYPE
|
||||
{
|
||||
WING_DISPERSED_4x4, WING_DISPERSED_8x8, WING_CLUSTERED_4x4
|
||||
|
|
|
@ -38,8 +38,6 @@
|
|||
#define SWAP_INT32(i1,i2) \
|
||||
do { INT32 __t = *(i1); *(i1) = *(i2); *(i2) = __t; } while(0)
|
||||
|
||||
extern void CLIPPING_UpdateGCRegion(DC* );
|
||||
|
||||
static const unsigned char BITBLT_Opcodes[256][MAX_OP_LEN] =
|
||||
{
|
||||
{ OP(PAT,DST,GXclear) }, /* 0x00 0 */
|
||||
|
@ -1381,9 +1379,11 @@ BOOL32 X11DRV_PatBlt( DC *dc, INT32 left, INT32 top,
|
|||
struct StretchBlt_params params = { dc, left, top, width, height,
|
||||
NULL, 0, 0, 0, 0, rop };
|
||||
BOOL32 result;
|
||||
DIB_UpdateDIBSection( dc, FALSE );
|
||||
EnterCriticalSection( &X11DRV_CritSection );
|
||||
result = (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms );
|
||||
LeaveCriticalSection( &X11DRV_CritSection );
|
||||
DIB_UpdateDIBSection( dc, TRUE );
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1398,9 +1398,13 @@ BOOL32 X11DRV_BitBlt( DC *dcDst, INT32 xDst, INT32 yDst,
|
|||
struct StretchBlt_params params = { dcDst, xDst, yDst, width, height,
|
||||
dcSrc, xSrc, ySrc, width, height, rop};
|
||||
BOOL32 result;
|
||||
DIB_UpdateDIBSection( dcDst, FALSE );
|
||||
DIB_UpdateDIBSection( dcSrc, FALSE );
|
||||
EnterCriticalSection( &X11DRV_CritSection );
|
||||
result = (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms );
|
||||
LeaveCriticalSection( &X11DRV_CritSection );
|
||||
DIB_UpdateDIBSection( dcDst, TRUE );
|
||||
DIB_UpdateDIBSection( dcSrc, TRUE );
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1417,8 +1421,12 @@ BOOL32 X11DRV_StretchBlt( DC *dcDst, INT32 xDst, INT32 yDst,
|
|||
dcSrc, xSrc, ySrc, widthSrc, heightSrc,
|
||||
rop };
|
||||
BOOL32 result;
|
||||
DIB_UpdateDIBSection( dcDst, FALSE );
|
||||
DIB_UpdateDIBSection( dcSrc, FALSE );
|
||||
EnterCriticalSection( &X11DRV_CritSection );
|
||||
result = (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms );
|
||||
LeaveCriticalSection( &X11DRV_CritSection );
|
||||
DIB_UpdateDIBSection( dcDst, TRUE );
|
||||
DIB_UpdateDIBSection( dcSrc, TRUE );
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
#include "heap.h"
|
||||
#include "debug.h"
|
||||
|
||||
extern void CLIPPING_UpdateGCRegion(DC* );
|
||||
|
||||
/***********************************************************************
|
||||
* X11DRV_BITMAP_Init
|
||||
*/
|
||||
|
|
|
@ -24,7 +24,7 @@ void X11DRV_SetDeviceClipping( DC * dc )
|
|||
RGNOBJ *obj = (RGNOBJ *) GDI_GetObjPtr(dc->w.hGCClipRgn, REGION_MAGIC);
|
||||
if (!obj)
|
||||
{
|
||||
fprintf( stderr, "X11DRV_SetDeviceClipping: Rgn is 0. Please report this.\n");
|
||||
ERR(x11drv, "Rgn is 0. Please report this.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ void X11DRV_SetDeviceClipping( DC * dc )
|
|||
sizeof(*pXrect) * obj->rgn->numRects );
|
||||
if(!pXrect)
|
||||
{
|
||||
fprintf(stderr, "X11DRV_SetDeviceClipping() can't alloc buffer\n");
|
||||
WARN(x11drv, "Can't alloc buffer\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "ts_xlib.h"
|
||||
#include <X11/Xatom.h>
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
#include "heap.h"
|
||||
#include "options.h"
|
||||
#include "x11font.h"
|
||||
|
@ -29,7 +30,7 @@
|
|||
#define X_FMC_MAGIC (0x0000CAFE)
|
||||
|
||||
#define MAX_FONT_FAMILIES 64
|
||||
#define MAX_LFD_LENGTH 128
|
||||
#define MAX_LFD_LENGTH 256
|
||||
|
||||
#define REMOVE_SUBSETS 1
|
||||
#define UNMARK_SUBSETS 0
|
||||
|
@ -396,6 +397,7 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo,
|
|||
const char* lpEncoding = NULL;
|
||||
char h_string[64], point_string[64];
|
||||
|
||||
*(lpLFD+MAX_LFD_LENGTH-1)=0;
|
||||
lstrcpy32A( lpLFD, fo->fr->resource );
|
||||
|
||||
/* add weight */
|
||||
|
@ -543,6 +545,7 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo,
|
|||
}
|
||||
|
||||
TRACE(font,"\tLFD: %s\n", lpLFD );
|
||||
assert(*(lpLFD+MAX_LFD_LENGTH-1)==0); /* check if overwrittem */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1242,7 +1245,7 @@ static int XFONT_CheckIniSection()
|
|||
PROFILE_EnumerateWineIniSection("Fonts", &XFONT_CheckIniCallback,
|
||||
(void *)&found);
|
||||
if(found)
|
||||
fprintf(stderr, fontmsgepilogue);
|
||||
MSG(fontmsgepilogue);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1267,21 +1270,21 @@ static void XFONT_CheckIniCallback(
|
|||
/* Valid key; make sure the value doesn't contain a wildcard */
|
||||
if(strchr(value, '*')) {
|
||||
if(*(int *)found == 0) {
|
||||
fprintf(stderr, fontmsgprologue);
|
||||
MSG(fontmsgprologue);
|
||||
++*(int *)found;
|
||||
}
|
||||
|
||||
fprintf(stderr, " %s=%s [no wildcards allowed]\n", key, value);
|
||||
MSG(" %s=%s [no wildcards allowed]\n", key, value);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* Not a valid key */
|
||||
if(*(int *)found == 0) {
|
||||
fprintf(stderr, fontmsgprologue);
|
||||
MSG(fontmsgprologue);
|
||||
++*(int *)found;
|
||||
}
|
||||
|
||||
fprintf(stderr, " %s=%s [obsolete]\n", key, value);
|
||||
MSG(" %s=%s [obsolete]\n", key, value);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
@ -15,6 +15,7 @@ DLLS = \
|
|||
lzexpand.spec \
|
||||
mmsystem.spec \
|
||||
mouse.spec \
|
||||
msvideo.spec \
|
||||
ole2.spec \
|
||||
ole2conv.spec \
|
||||
ole2disp.spec \
|
||||
|
|
|
@ -53,6 +53,7 @@ extern const WIN16_DESCRIPTOR KEYBOARD_Descriptor;
|
|||
extern const WIN16_DESCRIPTOR LZEXPAND_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR MMSYSTEM_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR MOUSE_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR MSVIDEO_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR OLE2CONV_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR OLE2DISP_Descriptor;
|
||||
extern const WIN16_DESCRIPTOR OLE2NLS_Descriptor;
|
||||
|
@ -96,6 +97,7 @@ static BUILTIN16_DLL BuiltinDLLs[] =
|
|||
{ &LZEXPAND_Descriptor, 0 },
|
||||
{ &MMSYSTEM_Descriptor, 0 },
|
||||
{ &MOUSE_Descriptor, 0 },
|
||||
{ &MSVIDEO_Descriptor, 0 },
|
||||
{ &OLE2CONV_Descriptor, DLL_FLAG_NOT_USED },
|
||||
{ &OLE2DISP_Descriptor, DLL_FLAG_NOT_USED },
|
||||
{ &OLE2NLS_Descriptor, DLL_FLAG_NOT_USED },
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
* Dummy function definitions
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "wintypes.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ file krnl386.exe
|
|||
106 pascal SetSwapAreaSize(word) SetSwapAreaSize16
|
||||
107 pascal16 SetErrorMode(word) SetErrorMode16
|
||||
108 pascal16 SwitchStackTo(word word word) SwitchStackTo
|
||||
109 register SwitchStackBack(word word word) SwitchStackBack
|
||||
109 register SwitchStackBack() SwitchStackBack
|
||||
110 pascal16 PatchCodeHandle(word) PatchCodeHandle
|
||||
111 pascal GlobalWire(word) GlobalWire16
|
||||
112 pascal16 GlobalUnWire(word) GlobalUnWire16
|
||||
|
@ -143,7 +143,7 @@ file krnl386.exe
|
|||
140 pascal16 SetSigHandler(segptr ptr ptr word word) SetSigHandler
|
||||
141 stub InitTask1
|
||||
142 stub GetProfileSectionNames
|
||||
143 stub GetPrivateProfileSectionNames
|
||||
143 pascal16 GetPrivateProfileSectionNames(ptr word str) GetPrivateProfileSectionNames16
|
||||
144 pascal16 CreateDirectory(ptr ptr) CreateDirectory16
|
||||
145 pascal16 RemoveDirectory(ptr) RemoveDirectory16
|
||||
146 pascal16 DeleteFile(ptr) DeleteFile16
|
||||
|
@ -280,7 +280,7 @@ file krnl386.exe
|
|||
357 pascal MapSL(segptr) MapSL
|
||||
358 pascal MapLS(long) MapLS
|
||||
359 pascal UnMapLS(segptr) UnMapLS
|
||||
360 stub OpenFileEx
|
||||
360 pascal16 OpenFileEx(str ptr word) OpenFile16
|
||||
#361 PIGLET_361
|
||||
365 stub KERNEL_365
|
||||
403 pascal16 FarSetOwner(word word) FarSetOwner
|
||||
|
@ -311,6 +311,8 @@ file krnl386.exe
|
|||
447 stub KERNEL_447
|
||||
449 pascal KERNEL_449() KERNEL_449
|
||||
450 pascal16 KERNEL_450() stub_KERNEL_450
|
||||
452 stub KERNEL_452
|
||||
453 stub KERNEL_453
|
||||
454 equate __FLATCS 0 # initialized by BUILTIN_Init()
|
||||
455 equate __FLATDS 0 # initialized by BUILTIN_Init()
|
||||
471 pascal KERNEL_471() _KERNEL_471
|
||||
|
@ -321,6 +323,7 @@ file krnl386.exe
|
|||
481 stub KERNEL_481
|
||||
482 pascal LoadLibrary32(str) LoadLibrary32A
|
||||
485 stub KERNEL_485
|
||||
486 stub KERNEL_486
|
||||
491 stub RegisterServiceProcess
|
||||
500 stub KERNEL_500
|
||||
502 stub KERNEL_502
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
name msvideo
|
||||
type win16
|
||||
|
||||
2 stub VIDEOFORWINDOWSVERSION
|
||||
20 stub VIDEOGETNUMDEVS
|
||||
21 stub VIDEOGETERRORTEXT
|
||||
22 stub VIDEOCAPDRIVERDESCANDVER
|
||||
28 stub VIDEOOPEN
|
||||
29 stub VIDEOCLOSE
|
||||
30 stub VIDEODIALOG
|
||||
31 stub VIDEOFRAME
|
||||
32 stub VIDEOCONFIGURE
|
||||
33 stub VIDEOCONFIGURESTORAGE
|
||||
34 stub VIDEOGETCHANNELCAPS
|
||||
35 stub VIDEOUPDATE
|
||||
40 stub VIDEOSTREAMADDBUFFER
|
||||
41 stub VIDEOSTREAMFINI
|
||||
42 stub VIDEOSTREAMGETERROR
|
||||
43 stub VIDEOSTREAMGETPOSITION
|
||||
44 stub VIDEOSTREAMINIT
|
||||
46 stub VIDEOSTREAMPREPAREHEADER
|
||||
47 stub VIDEOSTREAMRESET
|
||||
49 stub VIDEOSTREAMSTART
|
||||
50 stub VIDEOSTREAMSTOP
|
||||
51 stub VIDEOSTREAMUNPREPAREHEADER
|
||||
52 stub VIDEOSTREAMALLOCHDRANDBUFFER
|
||||
53 stub VIDEOSTREAMFREEHDRANDBUFFER
|
||||
60 stub VIDEOMESSAGE
|
||||
102 stub DRAWDIBOPEN
|
||||
103 stub DRAWDIBCLOSE
|
||||
104 stub DRAWDIBBEGIN
|
||||
105 stub DRAWDIBEND
|
||||
106 stub DRAWDIBDRAW
|
||||
108 stub DRAWDIBGETPALETTE
|
||||
110 stub DRAWDIBSETPALETTE
|
||||
111 stub DRAWDIBCHANGEPALETTE
|
||||
112 stub DRAWDIBREALIZE
|
||||
113 stub DRAWDIBTIME
|
||||
114 stub DRAWDIBPROFILEDISPLAY
|
||||
115 stub STRETCHDIB
|
||||
118 stub DRAWDIBSTART
|
||||
119 stub DRAWDIBSTOP
|
||||
120 stub DRAWDIBGETBUFFER
|
||||
200 stub ICINFO
|
||||
201 stub ICINSTALL
|
||||
202 stub ICREMOVE
|
||||
203 stub ICOPEN
|
||||
204 stub ICCLOSE
|
||||
205 stub ICSENDMESSAGE
|
||||
206 stub ICOPENFUNCTION
|
||||
207 stub _ICMESSAGE
|
||||
212 stub ICGETINFO
|
||||
213 stub ICLOCATE
|
||||
224 stub _ICCOMPRESS
|
||||
230 stub _ICDECOMPRESS
|
||||
232 stub _ICDRAWBEGIN
|
||||
234 stub _ICDRAW
|
||||
239 stub ICGETDISPLAYFORMAT
|
||||
240 stub ICIMAGECOMPRESS
|
||||
241 stub ICIMAGEDECOMPRESS
|
||||
242 stub ICCOMPRESSORCHOOSE
|
||||
243 stub ICCOMPRESSORFREE
|
||||
244 stub ICSEQCOMPRESSFRAMESTART
|
||||
245 stub ICSEQCOMPRESSFRAMEEND
|
||||
246 stub ICSEQCOMPRESSFRAME
|
||||
250 stub _MCIWNDCREATE
|
||||
251 stub _MCIWNDREGISTERCLASS
|
||||
252 stub GETOPENFILENAMEPREVIEW
|
||||
253 stub GETSAVEFILENAMEPREVIEW
|
|
@ -4,7 +4,6 @@
|
|||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "windows.h"
|
||||
#include "winnt.h"
|
||||
|
@ -71,9 +70,9 @@ void RELAY_DebugCallFrom16( int func_type, char *args,
|
|||
if (!TRACE_ON(relay)) return;
|
||||
|
||||
frame = CURRENT_STACK16;
|
||||
printf( "Call %s(", BUILTIN_GetEntryPoint16( frame->entry_cs,
|
||||
frame->entry_ip,
|
||||
&ordinal ));
|
||||
DPRINTF( "Call %s(", BUILTIN_GetEntryPoint16( frame->entry_cs,
|
||||
frame->entry_ip,
|
||||
&ordinal ));
|
||||
VA_START16( args16 );
|
||||
|
||||
if (func_type & 4) /* cdecl */
|
||||
|
@ -84,32 +83,32 @@ void RELAY_DebugCallFrom16( int func_type, char *args,
|
|||
{
|
||||
case 'w':
|
||||
case 's':
|
||||
printf( "0x%04x", *(WORD *)args16 );
|
||||
DPRINTF( "0x%04x", *(WORD *)args16 );
|
||||
args16 += 2;
|
||||
break;
|
||||
case 'l':
|
||||
printf( "0x%08x", *(int *)args16 );
|
||||
DPRINTF( "0x%08x", *(int *)args16 );
|
||||
args16 += 4;
|
||||
break;
|
||||
case 't':
|
||||
printf( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
if (HIWORD(*(SEGPTR *)args16))
|
||||
debug_dumpstr( (LPSTR)PTR_SEG_TO_LIN(*(SEGPTR *)args16 ));
|
||||
args16 += 4;
|
||||
break;
|
||||
case 'p':
|
||||
printf( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
args16 += 4;
|
||||
break;
|
||||
case 'T':
|
||||
printf( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
if (HIWORD( *(SEGPTR *)args16 ))
|
||||
debug_dumpstr( (LPSTR)PTR_SEG_TO_LIN(*(SEGPTR *)args16 ));
|
||||
args16 += 4;
|
||||
break;
|
||||
}
|
||||
args++;
|
||||
if (*args) printf( "," );
|
||||
if (*args) DPRINTF( "," );
|
||||
}
|
||||
}
|
||||
else /* not cdecl */
|
||||
|
@ -139,42 +138,42 @@ void RELAY_DebugCallFrom16( int func_type, char *args,
|
|||
case 'w':
|
||||
case 's':
|
||||
args16 -= 2;
|
||||
printf( "0x%04x", *(WORD *)args16 );
|
||||
DPRINTF( "0x%04x", *(WORD *)args16 );
|
||||
break;
|
||||
case 'l':
|
||||
args16 -= 4;
|
||||
printf( "0x%08x", *(int *)args16 );
|
||||
DPRINTF( "0x%08x", *(int *)args16 );
|
||||
break;
|
||||
case 't':
|
||||
args16 -= 4;
|
||||
printf( "0x%08x", *(int *)args16 );
|
||||
DPRINTF( "0x%08x", *(int *)args16 );
|
||||
if (HIWORD(*(SEGPTR *)args16))
|
||||
debug_dumpstr( (LPSTR)PTR_SEG_TO_LIN(*(SEGPTR *)args16 ));
|
||||
break;
|
||||
case 'p':
|
||||
args16 -= 4;
|
||||
printf( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
break;
|
||||
case 'T':
|
||||
args16 -= 4;
|
||||
printf( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 );
|
||||
if (HIWORD( *(SEGPTR *)args16 ))
|
||||
debug_dumpstr( (LPSTR)PTR_SEG_TO_LIN(*(SEGPTR *)args16 ));
|
||||
break;
|
||||
}
|
||||
args++;
|
||||
if (*args) printf( "," );
|
||||
if (*args) DPRINTF( "," );
|
||||
}
|
||||
}
|
||||
|
||||
printf( ") ret=%04x:%04x ds=%04x\n", frame->cs, frame->ip, frame->ds );
|
||||
DPRINTF( ") ret=%04x:%04x ds=%04x\n", frame->cs, frame->ip, frame->ds );
|
||||
VA_END16( args16 );
|
||||
|
||||
if (func_type & 2) /* register function */
|
||||
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),
|
||||
(WORD)ES_reg(context), EFL_reg(context) );
|
||||
DPRINTF( " 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),
|
||||
(WORD)ES_reg(context), EFL_reg(context) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -188,23 +187,23 @@ void RELAY_DebugCallFrom16Ret( int func_type, int ret_val, CONTEXT *context)
|
|||
|
||||
if (!TRACE_ON(relay)) return;
|
||||
frame = CURRENT_STACK16;
|
||||
printf( "Ret %s() ", BUILTIN_GetEntryPoint16( frame->entry_cs,
|
||||
DPRINTF( "Ret %s() ", BUILTIN_GetEntryPoint16( frame->entry_cs,
|
||||
frame->entry_ip,
|
||||
&ordinal ));
|
||||
switch(func_type)
|
||||
{
|
||||
case 0: /* long */
|
||||
printf( "retval=0x%08x ret=%04x:%04x ds=%04x\n",
|
||||
ret_val, frame->cs, frame->ip, frame->ds );
|
||||
DPRINTF( "retval=0x%08x ret=%04x:%04x ds=%04x\n",
|
||||
ret_val, frame->cs, frame->ip, frame->ds );
|
||||
break;
|
||||
case 1: /* word */
|
||||
printf( "retval=0x%04x ret=%04x:%04x ds=%04x\n",
|
||||
ret_val & 0xffff, frame->cs, frame->ip, frame->ds );
|
||||
DPRINTF( "retval=0x%04x ret=%04x:%04x ds=%04x\n",
|
||||
ret_val & 0xffff, frame->cs, frame->ip, frame->ds );
|
||||
break;
|
||||
case 2: /* regs */
|
||||
printf( "retval=none ret=%04x:%04x ds=%04x\n",
|
||||
DPRINTF("retval=none ret=%04x:%04x ds=%04x\n",
|
||||
(WORD)CS_reg(context), IP_reg(context), (WORD)DS_reg(context));
|
||||
printf( " AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x ES=%04x EFL=%08lx\n",
|
||||
DPRINTF(" 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),
|
||||
(WORD)ES_reg(context), EFL_reg(context) );
|
||||
|
@ -251,25 +250,25 @@ void RELAY_DebugCallTo16( int* stack, int nb_args )
|
|||
{
|
||||
CONTEXT *context = (CONTEXT *)stack[0];
|
||||
WORD *stack16 = (WORD *)THREAD_STACK16(thdb);
|
||||
printf( "CallTo16(func=%04lx:%04x,ds=%04lx",
|
||||
DPRINTF("CallTo16(func=%04lx:%04x,ds=%04lx",
|
||||
CS_reg(context), IP_reg(context), DS_reg(context) );
|
||||
nb_args = stack[1] / sizeof(WORD);
|
||||
while (nb_args--) printf( ",0x%04x", *(--stack16) );
|
||||
printf( ") ss:sp=%04x:%04x\n", SELECTOROF(thdb->cur_stack),
|
||||
DPRINTF(") ss:sp=%04x:%04x\n", SELECTOROF(thdb->cur_stack),
|
||||
OFFSETOF(thdb->cur_stack) );
|
||||
printf( " AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x BP=%04x ES=%04x\n",
|
||||
DPRINTF(" AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x BP=%04x ES=%04x\n",
|
||||
AX_reg(context), BX_reg(context), CX_reg(context),
|
||||
DX_reg(context), SI_reg(context), DI_reg(context),
|
||||
BP_reg(context), (WORD)ES_reg(context) );
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "CallTo16(func=%04x:%04x,ds=%04x",
|
||||
DPRINTF("CallTo16(func=%04x:%04x,ds=%04x",
|
||||
HIWORD(stack[0]), LOWORD(stack[0]),
|
||||
SELECTOROF(thdb->cur_stack) );
|
||||
stack++;
|
||||
while (nb_args--) printf( ",0x%04x", *stack++ );
|
||||
printf( ") ss:sp=%04x:%04x\n", SELECTOROF(thdb->cur_stack),
|
||||
while (nb_args--) DPRINTF(",0x%04x", *stack++ );
|
||||
DPRINTF(") ss:sp=%04x:%04x\n", SELECTOROF(thdb->cur_stack),
|
||||
OFFSETOF(thdb->cur_stack) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
* Copyright 1995 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
|
@ -24,6 +23,30 @@
|
|||
#include "thread.h"
|
||||
#include "debug.h"
|
||||
|
||||
static const char * const SIGNAL_traps[] =
|
||||
{
|
||||
"Division by zero exception", /* 0 */
|
||||
"Debug exception", /* 1 */
|
||||
"NMI interrupt", /* 2 */
|
||||
"Breakpoint exception", /* 3 */
|
||||
"Overflow exception", /* 4 */
|
||||
"Bound range exception", /* 5 */
|
||||
"Invalid opcode exception", /* 6 */
|
||||
"Device not available exception", /* 7 */
|
||||
"Double fault exception", /* 8 */
|
||||
"Coprocessor segment overrun", /* 9 */
|
||||
"Invalid TSS exception", /* 10 */
|
||||
"Segment not present exception", /* 11 */
|
||||
"Stack fault", /* 12 */
|
||||
"General protection fault", /* 13 */
|
||||
"Page fault", /* 14 */
|
||||
"Unknown exception", /* 15 */
|
||||
"Floating point exception", /* 16 */
|
||||
"Alignment check exception", /* 17 */
|
||||
"Machine check exception" /* 18 */
|
||||
};
|
||||
|
||||
#define NB_TRAPS (sizeof(SIGNAL_traps) / sizeof(SIGNAL_traps[0]))
|
||||
|
||||
extern void SIGNAL_SetHandler( int sig, void (*func)(), int flags );
|
||||
extern BOOL32 INSTR_EmulateInstruction( SIGCONTEXT *context );
|
||||
|
@ -62,20 +85,25 @@ static HANDLER_DEF(SIGNAL_trap)
|
|||
*/
|
||||
static HANDLER_DEF(SIGNAL_fault)
|
||||
{
|
||||
const char *fault = "Segmentation fault";
|
||||
|
||||
HANDLER_INIT();
|
||||
if (INSTR_EmulateInstruction( HANDLER_CONTEXT )) return;
|
||||
#ifdef TRAP_sig
|
||||
if (TRAP_sig( HANDLER_CONTEXT ) < NB_TRAPS)
|
||||
fault = SIGNAL_traps[TRAP_sig( HANDLER_CONTEXT )];
|
||||
#endif
|
||||
if (IS_SELECTOR_SYSTEM(CS_sig(HANDLER_CONTEXT)))
|
||||
{
|
||||
MSG("Segmentation fault in 32-bit code (0x%08lx).\n",
|
||||
EIP_sig(HANDLER_CONTEXT) );
|
||||
MSG("%s in 32-bit code (0x%08lx).\n", fault, EIP_sig(HANDLER_CONTEXT));
|
||||
}
|
||||
else
|
||||
{
|
||||
MSG("Segmentation fault in 16-bit code (%04x:%04lx).\n",
|
||||
MSG("%s in 16-bit code (%04x:%04lx).\n", fault,
|
||||
(WORD)CS_sig(HANDLER_CONTEXT), EIP_sig(HANDLER_CONTEXT) );
|
||||
}
|
||||
#ifdef CR2_sig
|
||||
fprintf(stderr,"Fault address is 0x%08lx\n",CR2_sig(HANDLER_CONTEXT));
|
||||
MSG("Fault address is 0x%08lx\n",CR2_sig(HANDLER_CONTEXT));
|
||||
#endif
|
||||
wine_debug( signal, HANDLER_CONTEXT );
|
||||
}
|
||||
|
|
239
if1632/thunk.c
239
if1632/thunk.c
|
@ -2,9 +2,9 @@
|
|||
* Emulator thunks
|
||||
*
|
||||
* Copyright 1996, 1997 Alexandre Julliard
|
||||
* Copyright 1998 Ulrich Weigand
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "windows.h"
|
||||
#include "callback.h"
|
||||
#include "resource.h"
|
||||
|
@ -13,12 +13,14 @@
|
|||
#include "heap.h"
|
||||
#include "hook.h"
|
||||
#include "module.h"
|
||||
#include "process.h"
|
||||
#include "stackframe.h"
|
||||
#include "selectors.h"
|
||||
#include "task.h"
|
||||
#include "except.h"
|
||||
#include "win.h"
|
||||
#include "debug.h"
|
||||
#include "flatthunk.h"
|
||||
|
||||
|
||||
/* List of the 16-bit callback functions. This list is used */
|
||||
|
@ -710,3 +712,238 @@ static BOOL32 WINAPI THUNK_WOWCallback16Ex(
|
|||
*pdwret = ret;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* 16->32 Flat Thunk routines:
|
||||
*/
|
||||
|
||||
/***********************************************************************
|
||||
* ThunkConnect16 (KERNEL.651)
|
||||
* Connects a 32bit and a 16bit thunkbuffer.
|
||||
*/
|
||||
UINT32 WINAPI ThunkConnect16(
|
||||
LPSTR module16, /* [in] name of win16 dll */
|
||||
LPSTR module32, /* [in] name of win32 dll */
|
||||
HINSTANCE16 hInst16, /* [in] hInst of win16 dll */
|
||||
DWORD dwReason, /* [in] initialisation argument */
|
||||
struct ThunkDataCommon *TD, /* [in/out] thunkbuffer */
|
||||
LPSTR thunkfun32, /* [in] win32 thunkfunction */
|
||||
WORD CS /* [in] CS of win16 dll */
|
||||
) {
|
||||
BOOL32 directionSL;
|
||||
|
||||
if (!lstrncmp32A(TD->magic, "SL01", 4))
|
||||
{
|
||||
directionSL = TRUE;
|
||||
|
||||
TRACE(thunk, "SL01 thunk %s (%lx) -> %s (%s), Reason: %ld\n",
|
||||
module16, (DWORD)TD, module32, thunkfun32, dwReason);
|
||||
}
|
||||
else if (!lstrncmp32A(TD->magic, "LS01", 4))
|
||||
{
|
||||
directionSL = FALSE;
|
||||
|
||||
TRACE(thunk, "LS01 thunk %s (%lx) <- %s (%s), Reason: %ld\n",
|
||||
module16, (DWORD)TD, module32, thunkfun32, dwReason);
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR(thunk, "Invalid magic %c%c%c%c\n",
|
||||
TD->magic[0], TD->magic[1], TD->magic[2], TD->magic[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
if (directionSL)
|
||||
{
|
||||
struct ThunkDataSL16 *SL16 = (struct ThunkDataSL16 *)TD;
|
||||
struct ThunkDataSL *SL = SL16->fpData;
|
||||
|
||||
if (SL == NULL)
|
||||
{
|
||||
SL = HeapAlloc(GetProcessHeap(), 0, sizeof(*SL));
|
||||
|
||||
SL->common = SL16->common;
|
||||
SL->flags1 = SL16->flags1;
|
||||
SL->flags2 = SL16->flags2;
|
||||
|
||||
SL->apiDB = PTR_SEG_TO_LIN(SL16->apiDatabase);
|
||||
SL->targetDB = NULL;
|
||||
|
||||
lstrcpyn32A(SL->pszDll16, module16, 255);
|
||||
lstrcpyn32A(SL->pszDll32, module32, 255);
|
||||
|
||||
/* We should create a SEGPTR to the ThunkDataSL,
|
||||
but since the contents are not in the original format,
|
||||
any access to this by 16-bit code would crash anyway. */
|
||||
SL16->spData = 0;
|
||||
SL16->fpData = SL;
|
||||
}
|
||||
|
||||
|
||||
if (SL->flags2 & 0x80000000)
|
||||
{
|
||||
TRACE(thunk, "Preloading 32-bit library\n");
|
||||
LoadLibrary32A(module32);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* nothing to do */
|
||||
}
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
/* FIXME: cleanup */
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* C16ThkSL (KERNEL.630)
|
||||
*/
|
||||
|
||||
void WINAPI C16ThkSL(CONTEXT *context)
|
||||
{
|
||||
extern void CallFrom16_t_long_(void);
|
||||
LPBYTE stub = PTR_SEG_TO_LIN(EAX_reg(context)), x = stub;
|
||||
WORD cs, ds;
|
||||
GET_CS(cs);
|
||||
GET_DS(ds);
|
||||
|
||||
/* We produce the following code:
|
||||
*
|
||||
* mov ax, __FLATDS
|
||||
* mov es, ax
|
||||
* movzx ecx, cx
|
||||
* mov edx, es:[ecx + $EDX]
|
||||
* push bp
|
||||
* push edx
|
||||
* call __FLATCS:CallFrom16_t_long_
|
||||
*/
|
||||
|
||||
*x++ = 0xB8; *((WORD *)x)++ = ds;
|
||||
*x++ = 0x8E; *x++ = 0xC0;
|
||||
*x++ = 0x60; *x++ = 0x0F; *x++ = 0xB7; *x++ = 0xC9;
|
||||
*x++ = 0x67; *x++ = 0x66; *x++ = 0x26; *x++ = 0x8B;
|
||||
*x++ = 0x91; *((DWORD *)x)++ = EDX_reg(context);
|
||||
|
||||
*x++ = 0x55;
|
||||
*x++ = 0x66; *x++ = 0x52;
|
||||
*x++ = 0x66; *x++ = 0x9A; *((DWORD *)x)++ = (DWORD)CallFrom16_t_long_;
|
||||
*((WORD *)x)++ = cs;
|
||||
|
||||
/* Jump to the stub code just created */
|
||||
IP_reg(context) = LOWORD(EAX_reg(context));
|
||||
CS_reg(context) = HIWORD(EAX_reg(context));
|
||||
|
||||
/* Since C16ThkSL got called by a jmp, we need to leave the
|
||||
orginal return address on the stack */
|
||||
SP_reg(context) -= 4;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* C16ThkSL01 (KERNEL.631)
|
||||
*/
|
||||
|
||||
void WINAPI C16ThkSL01(CONTEXT *context)
|
||||
{
|
||||
LPBYTE stub = PTR_SEG_TO_LIN(EAX_reg(context)), x = stub;
|
||||
|
||||
if (stub)
|
||||
{
|
||||
struct ThunkDataSL16 *SL16 = PTR_SEG_TO_LIN(EDX_reg(context));
|
||||
struct ThunkDataSL *td = SL16->fpData;
|
||||
|
||||
extern void CallFrom16_t_long_(void);
|
||||
DWORD procAddress = (DWORD)GetProcAddress16(GetModuleHandle16("KERNEL"), 631);
|
||||
WORD cs;
|
||||
GET_CS(cs);
|
||||
|
||||
if (!td)
|
||||
{
|
||||
ERR(thunk, "ThunkConnect16 was not called!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
TRACE(thunk, "Creating stub for ThunkDataSL %08lx\n", (DWORD)td);
|
||||
|
||||
|
||||
/* We produce the following code:
|
||||
*
|
||||
* xor eax, eax
|
||||
* mov edx, $td
|
||||
* call C16ThkSL01
|
||||
* push bp
|
||||
* push edx
|
||||
* call __FLATCS:CallFrom16_t_long_
|
||||
*/
|
||||
|
||||
*x++ = 0x66; *x++ = 0x33; *x++ = 0xC0;
|
||||
*x++ = 0x66; *x++ = 0xBA; *((DWORD *)x)++ = (DWORD)td;
|
||||
*x++ = 0x9A; *((DWORD *)x)++ = procAddress;
|
||||
|
||||
*x++ = 0x55;
|
||||
*x++ = 0x66; *x++ = 0x52;
|
||||
*x++ = 0x66; *x++ = 0x9A; *((DWORD *)x)++ = (DWORD)CallFrom16_t_long_;
|
||||
*((WORD *)x)++ = cs;
|
||||
|
||||
/* Jump to the stub code just created */
|
||||
IP_reg(context) = LOWORD(EAX_reg(context));
|
||||
CS_reg(context) = HIWORD(EAX_reg(context));
|
||||
|
||||
/* Since C16ThkSL01 got called by a jmp, we need to leave the
|
||||
orginal return address on the stack */
|
||||
SP_reg(context) -= 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct ThunkDataSL *td = (struct ThunkDataSL *)EDX_reg(context);
|
||||
DWORD targetNr = CX_reg(context) / 4;
|
||||
struct SLTargetDB *tdb;
|
||||
|
||||
TRACE(thunk, "Process %08lx calling target %ld of ThunkDataSL %08lx\n",
|
||||
(DWORD)PROCESS_Current(), targetNr, (DWORD)td);
|
||||
|
||||
for (tdb = td->targetDB; tdb; tdb = tdb->next)
|
||||
if (tdb->process == PROCESS_Current())
|
||||
break;
|
||||
|
||||
if (!tdb)
|
||||
{
|
||||
TRACE(thunk, "Loading 32-bit library %s\n", td->pszDll32);
|
||||
LoadLibrary32A(td->pszDll32);
|
||||
|
||||
for (tdb = td->targetDB; tdb; tdb = tdb->next)
|
||||
if (tdb->process == PROCESS_Current())
|
||||
break;
|
||||
}
|
||||
|
||||
if (tdb)
|
||||
{
|
||||
EDX_reg(context) = tdb->targetTable[targetNr];
|
||||
|
||||
TRACE(thunk, "Call target is %08lx\n", EDX_reg(context));
|
||||
}
|
||||
else
|
||||
{
|
||||
WORD *stack = PTR_SEG_OFF_TO_LIN(SS_reg(context), SP_reg(context));
|
||||
DX_reg(context) = HIWORD(td->apiDB[targetNr].errorReturnValue);
|
||||
AX_reg(context) = LOWORD(td->apiDB[targetNr].errorReturnValue);
|
||||
IP_reg(context) = stack[2];
|
||||
CS_reg(context) = stack[3];
|
||||
SP_reg(context) += td->apiDB[targetNr].nrArgBytes + 4;
|
||||
|
||||
/* Win95 allows delayed loading of the 32-bit DLL.
|
||||
We don't do that at the moment. */
|
||||
ERR(thunk, "Process %08lx did not ThunkConnect32 %s to %s\n",
|
||||
(DWORD)PROCESS_Current(), td->pszDll32, td->pszDll16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -462,8 +462,8 @@ file user.exe
|
|||
514 pascal16 WNetDeviceMode(word) WNetDeviceMode
|
||||
515 pascal16 WNetBrowseDialog(word word ptr) WNetBrowseDialog
|
||||
516 pascal16 WNetGetUser(ptr ptr ptr) WNetGetUser
|
||||
517 pascal16 WNetAddConnection(ptr ptr ptr) WNetAddConnection16
|
||||
518 pascal16 WNetCancelConnection(ptr word) WNetCancelConnection
|
||||
517 pascal16 WNetAddConnection(str str str) WNetAddConnection16
|
||||
518 pascal16 WNetCancelConnection(str word) WNetCancelConnection
|
||||
519 pascal16 WNetGetError(ptr) WNetGetError
|
||||
520 pascal16 WNetGetErrorText(word ptr ptr) WNetGetErrorText
|
||||
521 stub WNetEnable
|
||||
|
|
|
@ -39,15 +39,15 @@ type win16
|
|||
101 pascal16 WSAAsyncSelect(word word word long) WSAAsyncSelect16
|
||||
102 pascal16 WSAAsyncGetHostByAddr(word word ptr word word segptr word)
|
||||
WSAAsyncGetHostByAddr16
|
||||
103 pascal16 WSAAsyncGetHostByName(word word ptr segptr word)
|
||||
103 pascal16 WSAAsyncGetHostByName(word word str segptr word)
|
||||
WSAAsyncGetHostByName16
|
||||
104 pascal16 WSAAsyncGetProtoByNumber(word word word segptr word)
|
||||
WSAAsyncGetProtoByNumber16
|
||||
105 pascal16 WSAAsyncGetProtoByName(word word ptr segptr word)
|
||||
105 pascal16 WSAAsyncGetProtoByName(word word str segptr word)
|
||||
WSAAsyncGetProtoByName16
|
||||
106 pascal16 WSAAsyncGetServByPort(word word word ptr segptr word)
|
||||
106 pascal16 WSAAsyncGetServByPort(word word word str segptr word)
|
||||
WSAAsyncGetServByPort16
|
||||
107 pascal16 WSAAsyncGetServByName(word word ptr ptr segptr word)
|
||||
107 pascal16 WSAAsyncGetServByName(word word str str segptr word)
|
||||
WSAAsyncGetServByName16
|
||||
108 pascal16 WSACancelAsyncRequest(word) WSACancelAsyncRequest16
|
||||
109 pascal16 WSASetBlockingHook(segptr) WSASetBlockingHook16
|
||||
|
|
|
@ -29,6 +29,12 @@ typedef struct
|
|||
BITMAP16 bitmap;
|
||||
Pixmap pixmap;
|
||||
SIZE16 size; /* For SetBitmapDimension() */
|
||||
|
||||
/* For device-independent bitmaps: */
|
||||
DIBSECTION *dibSection;
|
||||
RGBQUAD *colorMap;
|
||||
int nColorMap;
|
||||
|
||||
} BITMAPOBJ;
|
||||
|
||||
/* GCs used for B&W and color bitmap operations */
|
||||
|
@ -62,6 +68,8 @@ extern INT32 BITMAP_GetBitsWidth( int width, int depth );
|
|||
extern int DIB_GetDIBWidthBytes( int width, int depth );
|
||||
extern int DIB_GetXImageWidthBytes( int width, int depth );
|
||||
extern int DIB_BitmapInfoSize( BITMAPINFO * info, WORD coloruse );
|
||||
extern void DIB_UpdateDIBSection( DC *dc, BOOL32 toDIB );
|
||||
|
||||
|
||||
/* objects/oembitmap.c */
|
||||
extern BOOL32 OBM_Init(void);
|
||||
|
|
|
@ -15,7 +15,6 @@ typedef struct
|
|||
int base; /* Ordinal base */
|
||||
int nb_funcs; /* Number of functions */
|
||||
int nb_names; /* Number of function names */
|
||||
int nb_reg_funcs; /* Number of register functions */
|
||||
const ENTRYPOINT32 *functions; /* Pointer to function table */
|
||||
const char * const *names; /* Pointer to names table */
|
||||
const unsigned short *ordinals; /* Pointer to ordinals table */
|
||||
|
|
|
@ -0,0 +1,905 @@
|
|||
/*
|
||||
* Automatically generated file -- do not edit!
|
||||
* (Use tools/unimap.pl for generation)
|
||||
*
|
||||
* Mapping tables for Unicode case conversion
|
||||
*/
|
||||
|
||||
/* Lowercase mappings 0000 - 00FF */
|
||||
static const WCHAR lblk00[256] = {
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
|
||||
0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
|
||||
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
|
||||
0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
|
||||
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
|
||||
0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
|
||||
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
|
||||
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
|
||||
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
|
||||
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
|
||||
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
|
||||
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
|
||||
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
|
||||
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
|
||||
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
|
||||
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
|
||||
0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00D7,
|
||||
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00DF,
|
||||
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
|
||||
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
|
||||
0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
|
||||
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 0100 - 01FF */
|
||||
static const WCHAR lblk01[256] = {
|
||||
0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107,
|
||||
0x0109, 0x0109, 0x010B, 0x010B, 0x010D, 0x010D, 0x010F, 0x010F,
|
||||
0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117,
|
||||
0x0119, 0x0119, 0x011B, 0x011B, 0x011D, 0x011D, 0x011F, 0x011F,
|
||||
0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127,
|
||||
0x0129, 0x0129, 0x012B, 0x012B, 0x012D, 0x012D, 0x012F, 0x012F,
|
||||
0x0069, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0137,
|
||||
0x0138, 0x013A, 0x013A, 0x013C, 0x013C, 0x013E, 0x013E, 0x0140,
|
||||
0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148,
|
||||
0x0148, 0x0149, 0x014B, 0x014B, 0x014D, 0x014D, 0x014F, 0x014F,
|
||||
0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157,
|
||||
0x0159, 0x0159, 0x015B, 0x015B, 0x015D, 0x015D, 0x015F, 0x015F,
|
||||
0x0161, 0x0161, 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167,
|
||||
0x0169, 0x0169, 0x016B, 0x016B, 0x016D, 0x016D, 0x016F, 0x016F,
|
||||
0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177,
|
||||
0x00FF, 0x017A, 0x017A, 0x017C, 0x017C, 0x017E, 0x017E, 0x017F,
|
||||
0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188,
|
||||
0x0188, 0x0256, 0x0257, 0x018C, 0x018C, 0x018D, 0x0258, 0x0259,
|
||||
0x025B, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268,
|
||||
0x0199, 0x0199, 0x019A, 0x019B, 0x026F, 0x0272, 0x019E, 0x019F,
|
||||
0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x01A6, 0x01A8,
|
||||
0x01A8, 0x0283, 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x0288, 0x01B0,
|
||||
0x01B0, 0x028A, 0x028B, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x0292,
|
||||
0x01B9, 0x01B9, 0x01BA, 0x01BB, 0x01BD, 0x01BD, 0x01BE, 0x01BF,
|
||||
0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C6, 0x01C6, 0x01C6, 0x01C9,
|
||||
0x01C9, 0x01C9, 0x01CC, 0x01CC, 0x01CC, 0x01CE, 0x01CE, 0x01D0,
|
||||
0x01D0, 0x01D2, 0x01D2, 0x01D4, 0x01D4, 0x01D6, 0x01D6, 0x01D8,
|
||||
0x01D8, 0x01DA, 0x01DA, 0x01DC, 0x01DC, 0x01DD, 0x01DF, 0x01DF,
|
||||
0x01E1, 0x01E1, 0x01E3, 0x01E3, 0x01E5, 0x01E5, 0x01E7, 0x01E7,
|
||||
0x01E9, 0x01E9, 0x01EB, 0x01EB, 0x01ED, 0x01ED, 0x01EF, 0x01EF,
|
||||
0x01F0, 0x01F3, 0x01F3, 0x01F3, 0x01F5, 0x01F5, 0x01F6, 0x01F7,
|
||||
0x01F8, 0x01F9, 0x01FB, 0x01FB, 0x01FD, 0x01FD, 0x01FF, 0x01FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 0200 - 02FF */
|
||||
static const WCHAR lblk02[256] = {
|
||||
0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207,
|
||||
0x0209, 0x0209, 0x020B, 0x020B, 0x020D, 0x020D, 0x020F, 0x020F,
|
||||
0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217,
|
||||
0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E, 0x021F,
|
||||
0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0226, 0x0227,
|
||||
0x0228, 0x0229, 0x022A, 0x022B, 0x022C, 0x022D, 0x022E, 0x022F,
|
||||
0x0230, 0x0231, 0x0232, 0x0233, 0x0234, 0x0235, 0x0236, 0x0237,
|
||||
0x0238, 0x0239, 0x023A, 0x023B, 0x023C, 0x023D, 0x023E, 0x023F,
|
||||
0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247,
|
||||
0x0248, 0x0249, 0x024A, 0x024B, 0x024C, 0x024D, 0x024E, 0x024F,
|
||||
0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257,
|
||||
0x0258, 0x0259, 0x025A, 0x025B, 0x025C, 0x025D, 0x025E, 0x025F,
|
||||
0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267,
|
||||
0x0268, 0x0269, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x026F,
|
||||
0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277,
|
||||
0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F,
|
||||
0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287,
|
||||
0x0288, 0x0289, 0x028A, 0x028B, 0x028C, 0x028D, 0x028E, 0x028F,
|
||||
0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297,
|
||||
0x0298, 0x0299, 0x029A, 0x029B, 0x029C, 0x029D, 0x029E, 0x029F,
|
||||
0x02A0, 0x02A1, 0x02A2, 0x02A3, 0x02A4, 0x02A5, 0x02A6, 0x02A7,
|
||||
0x02A8, 0x02A9, 0x02AA, 0x02AB, 0x02AC, 0x02AD, 0x02AE, 0x02AF,
|
||||
0x02B0, 0x02B1, 0x02B2, 0x02B3, 0x02B4, 0x02B5, 0x02B6, 0x02B7,
|
||||
0x02B8, 0x02B9, 0x02BA, 0x02BB, 0x02BC, 0x02BD, 0x02BE, 0x02BF,
|
||||
0x02C0, 0x02C1, 0x02C2, 0x02C3, 0x02C4, 0x02C5, 0x02C6, 0x02C7,
|
||||
0x02C8, 0x02C9, 0x02CA, 0x02CB, 0x02CC, 0x02CD, 0x02CE, 0x02CF,
|
||||
0x02D0, 0x02D1, 0x02D2, 0x02D3, 0x02D4, 0x02D5, 0x02D6, 0x02D7,
|
||||
0x02D8, 0x02D9, 0x02DA, 0x02DB, 0x02DC, 0x02DD, 0x02DE, 0x02DF,
|
||||
0x02E0, 0x02E1, 0x02E2, 0x02E3, 0x02E4, 0x02E5, 0x02E6, 0x02E7,
|
||||
0x02E8, 0x02E9, 0x02EA, 0x02EB, 0x02EC, 0x02ED, 0x02EE, 0x02EF,
|
||||
0x02F0, 0x02F1, 0x02F2, 0x02F3, 0x02F4, 0x02F5, 0x02F6, 0x02F7,
|
||||
0x02F8, 0x02F9, 0x02FA, 0x02FB, 0x02FC, 0x02FD, 0x02FE, 0x02FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 0300 - 03FF */
|
||||
static const WCHAR lblk03[256] = {
|
||||
0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307,
|
||||
0x0308, 0x0309, 0x030A, 0x030B, 0x030C, 0x030D, 0x030E, 0x030F,
|
||||
0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,
|
||||
0x0318, 0x0319, 0x031A, 0x031B, 0x031C, 0x031D, 0x031E, 0x031F,
|
||||
0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327,
|
||||
0x0328, 0x0329, 0x032A, 0x032B, 0x032C, 0x032D, 0x032E, 0x032F,
|
||||
0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337,
|
||||
0x0338, 0x0339, 0x033A, 0x033B, 0x033C, 0x033D, 0x033E, 0x033F,
|
||||
0x0340, 0x0341, 0x0342, 0x0343, 0x0344, 0x0345, 0x0346, 0x0347,
|
||||
0x0348, 0x0349, 0x034A, 0x034B, 0x034C, 0x034D, 0x034E, 0x034F,
|
||||
0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357,
|
||||
0x0358, 0x0359, 0x035A, 0x035B, 0x035C, 0x035D, 0x035E, 0x035F,
|
||||
0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367,
|
||||
0x0368, 0x0369, 0x036A, 0x036B, 0x036C, 0x036D, 0x036E, 0x036F,
|
||||
0x0370, 0x0371, 0x0372, 0x0373, 0x0374, 0x0375, 0x0376, 0x0377,
|
||||
0x0378, 0x0379, 0x037A, 0x037B, 0x037C, 0x037D, 0x037E, 0x037F,
|
||||
0x0380, 0x0381, 0x0382, 0x0383, 0x0384, 0x0385, 0x03AC, 0x0387,
|
||||
0x03AD, 0x03AE, 0x03AF, 0x038B, 0x03CC, 0x038D, 0x03CD, 0x03CE,
|
||||
0x0390, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
|
||||
0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
|
||||
0x03C0, 0x03C1, 0x03A2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
|
||||
0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
|
||||
0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
|
||||
0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
|
||||
0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
|
||||
0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x03CF,
|
||||
0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7,
|
||||
0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC, 0x03DD, 0x03DE, 0x03DF,
|
||||
0x03E0, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7,
|
||||
0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03EF,
|
||||
0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x03F6, 0x03F7,
|
||||
0x03F8, 0x03F9, 0x03FA, 0x03FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 0400 - 04FF */
|
||||
static const WCHAR lblk04[256] = {
|
||||
0x0400, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
|
||||
0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x040D, 0x045E, 0x045F,
|
||||
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
|
||||
0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
|
||||
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
|
||||
0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
|
||||
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
|
||||
0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
|
||||
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
|
||||
0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
|
||||
0x0450, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
|
||||
0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045D, 0x045E, 0x045F,
|
||||
0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467,
|
||||
0x0469, 0x0469, 0x046B, 0x046B, 0x046D, 0x046D, 0x046F, 0x046F,
|
||||
0x0471, 0x0471, 0x0473, 0x0473, 0x0475, 0x0475, 0x0477, 0x0477,
|
||||
0x0479, 0x0479, 0x047B, 0x047B, 0x047D, 0x047D, 0x047F, 0x047F,
|
||||
0x0481, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,
|
||||
0x0488, 0x0489, 0x048A, 0x048B, 0x048C, 0x048D, 0x048E, 0x048F,
|
||||
0x0491, 0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497,
|
||||
0x0499, 0x0499, 0x049B, 0x049B, 0x049D, 0x049D, 0x049F, 0x049F,
|
||||
0x04A1, 0x04A1, 0x04A3, 0x04A3, 0x04A5, 0x04A5, 0x04A7, 0x04A7,
|
||||
0x04A9, 0x04A9, 0x04AB, 0x04AB, 0x04AD, 0x04AD, 0x04AF, 0x04AF,
|
||||
0x04B1, 0x04B1, 0x04B3, 0x04B3, 0x04B5, 0x04B5, 0x04B7, 0x04B7,
|
||||
0x04B9, 0x04B9, 0x04BB, 0x04BB, 0x04BD, 0x04BD, 0x04BF, 0x04BF,
|
||||
0x04C0, 0x04C2, 0x04C2, 0x04C4, 0x04C4, 0x04C5, 0x04C6, 0x04C8,
|
||||
0x04C8, 0x04C9, 0x04CA, 0x04CC, 0x04CC, 0x04CD, 0x04CE, 0x04CF,
|
||||
0x04D1, 0x04D1, 0x04D3, 0x04D3, 0x04D5, 0x04D5, 0x04D7, 0x04D7,
|
||||
0x04D9, 0x04D9, 0x04DB, 0x04DB, 0x04DD, 0x04DD, 0x04DF, 0x04DF,
|
||||
0x04E1, 0x04E1, 0x04E3, 0x04E3, 0x04E5, 0x04E5, 0x04E7, 0x04E7,
|
||||
0x04E9, 0x04E9, 0x04EB, 0x04EB, 0x04EC, 0x04ED, 0x04EF, 0x04EF,
|
||||
0x04F1, 0x04F1, 0x04F3, 0x04F3, 0x04F5, 0x04F5, 0x04F6, 0x04F7,
|
||||
0x04F9, 0x04F9, 0x04FA, 0x04FB, 0x04FC, 0x04FD, 0x04FE, 0x04FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 0500 - 05FF */
|
||||
static const WCHAR lblk05[256] = {
|
||||
0x0500, 0x0501, 0x0502, 0x0503, 0x0504, 0x0505, 0x0506, 0x0507,
|
||||
0x0508, 0x0509, 0x050A, 0x050B, 0x050C, 0x050D, 0x050E, 0x050F,
|
||||
0x0510, 0x0511, 0x0512, 0x0513, 0x0514, 0x0515, 0x0516, 0x0517,
|
||||
0x0518, 0x0519, 0x051A, 0x051B, 0x051C, 0x051D, 0x051E, 0x051F,
|
||||
0x0520, 0x0521, 0x0522, 0x0523, 0x0524, 0x0525, 0x0526, 0x0527,
|
||||
0x0528, 0x0529, 0x052A, 0x052B, 0x052C, 0x052D, 0x052E, 0x052F,
|
||||
0x0530, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,
|
||||
0x0568, 0x0569, 0x056A, 0x056B, 0x056C, 0x056D, 0x056E, 0x056F,
|
||||
0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,
|
||||
0x0578, 0x0579, 0x057A, 0x057B, 0x057C, 0x057D, 0x057E, 0x057F,
|
||||
0x0580, 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0557,
|
||||
0x0558, 0x0559, 0x055A, 0x055B, 0x055C, 0x055D, 0x055E, 0x055F,
|
||||
0x0560, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,
|
||||
0x0568, 0x0569, 0x056A, 0x056B, 0x056C, 0x056D, 0x056E, 0x056F,
|
||||
0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,
|
||||
0x0578, 0x0579, 0x057A, 0x057B, 0x057C, 0x057D, 0x057E, 0x057F,
|
||||
0x0580, 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0587,
|
||||
0x0588, 0x0589, 0x058A, 0x058B, 0x058C, 0x058D, 0x058E, 0x058F,
|
||||
0x0590, 0x0591, 0x0592, 0x0593, 0x0594, 0x0595, 0x0596, 0x0597,
|
||||
0x0598, 0x0599, 0x059A, 0x059B, 0x059C, 0x059D, 0x059E, 0x059F,
|
||||
0x05A0, 0x05A1, 0x05A2, 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7,
|
||||
0x05A8, 0x05A9, 0x05AA, 0x05AB, 0x05AC, 0x05AD, 0x05AE, 0x05AF,
|
||||
0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
|
||||
0x05B8, 0x05B9, 0x05BA, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
|
||||
0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05C4, 0x05C5, 0x05C6, 0x05C7,
|
||||
0x05C8, 0x05C9, 0x05CA, 0x05CB, 0x05CC, 0x05CD, 0x05CE, 0x05CF,
|
||||
0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
|
||||
0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
|
||||
0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
|
||||
0x05E8, 0x05E9, 0x05EA, 0x05EB, 0x05EC, 0x05ED, 0x05EE, 0x05EF,
|
||||
0x05F0, 0x05F1, 0x05F2, 0x05F3, 0x05F4, 0x05F5, 0x05F6, 0x05F7,
|
||||
0x05F8, 0x05F9, 0x05FA, 0x05FB, 0x05FC, 0x05FD, 0x05FE, 0x05FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 1000 - 10FF */
|
||||
static const WCHAR lblk10[256] = {
|
||||
0x1000, 0x1001, 0x1002, 0x1003, 0x1004, 0x1005, 0x1006, 0x1007,
|
||||
0x1008, 0x1009, 0x100A, 0x100B, 0x100C, 0x100D, 0x100E, 0x100F,
|
||||
0x1010, 0x1011, 0x1012, 0x1013, 0x1014, 0x1015, 0x1016, 0x1017,
|
||||
0x1018, 0x1019, 0x101A, 0x101B, 0x101C, 0x101D, 0x101E, 0x101F,
|
||||
0x1020, 0x1021, 0x1022, 0x1023, 0x1024, 0x1025, 0x1026, 0x1027,
|
||||
0x1028, 0x1029, 0x102A, 0x102B, 0x102C, 0x102D, 0x102E, 0x102F,
|
||||
0x1030, 0x1031, 0x1032, 0x1033, 0x1034, 0x1035, 0x1036, 0x1037,
|
||||
0x1038, 0x1039, 0x103A, 0x103B, 0x103C, 0x103D, 0x103E, 0x103F,
|
||||
0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
|
||||
0x1048, 0x1049, 0x104A, 0x104B, 0x104C, 0x104D, 0x104E, 0x104F,
|
||||
0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
|
||||
0x1058, 0x1059, 0x105A, 0x105B, 0x105C, 0x105D, 0x105E, 0x105F,
|
||||
0x1060, 0x1061, 0x1062, 0x1063, 0x1064, 0x1065, 0x1066, 0x1067,
|
||||
0x1068, 0x1069, 0x106A, 0x106B, 0x106C, 0x106D, 0x106E, 0x106F,
|
||||
0x1070, 0x1071, 0x1072, 0x1073, 0x1074, 0x1075, 0x1076, 0x1077,
|
||||
0x1078, 0x1079, 0x107A, 0x107B, 0x107C, 0x107D, 0x107E, 0x107F,
|
||||
0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086, 0x1087,
|
||||
0x1088, 0x1089, 0x108A, 0x108B, 0x108C, 0x108D, 0x108E, 0x108F,
|
||||
0x1090, 0x1091, 0x1092, 0x1093, 0x1094, 0x1095, 0x1096, 0x1097,
|
||||
0x1098, 0x1099, 0x109A, 0x109B, 0x109C, 0x109D, 0x109E, 0x109F,
|
||||
0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10D7,
|
||||
0x10D8, 0x10D9, 0x10DA, 0x10DB, 0x10DC, 0x10DD, 0x10DE, 0x10DF,
|
||||
0x10E0, 0x10E1, 0x10E2, 0x10E3, 0x10E4, 0x10E5, 0x10E6, 0x10E7,
|
||||
0x10E8, 0x10E9, 0x10EA, 0x10EB, 0x10EC, 0x10ED, 0x10EE, 0x10EF,
|
||||
0x10F0, 0x10F1, 0x10F2, 0x10F3, 0x10F4, 0x10F5, 0x10C6, 0x10C7,
|
||||
0x10C8, 0x10C9, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF,
|
||||
0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10D7,
|
||||
0x10D8, 0x10D9, 0x10DA, 0x10DB, 0x10DC, 0x10DD, 0x10DE, 0x10DF,
|
||||
0x10E0, 0x10E1, 0x10E2, 0x10E3, 0x10E4, 0x10E5, 0x10E6, 0x10E7,
|
||||
0x10E8, 0x10E9, 0x10EA, 0x10EB, 0x10EC, 0x10ED, 0x10EE, 0x10EF,
|
||||
0x10F0, 0x10F1, 0x10F2, 0x10F3, 0x10F4, 0x10F5, 0x10F6, 0x10F7,
|
||||
0x10F8, 0x10F9, 0x10FA, 0x10FB, 0x10FC, 0x10FD, 0x10FE, 0x10FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 1E00 - 1EFF */
|
||||
static const WCHAR lblk1E[256] = {
|
||||
0x1E01, 0x1E01, 0x1E03, 0x1E03, 0x1E05, 0x1E05, 0x1E07, 0x1E07,
|
||||
0x1E09, 0x1E09, 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, 0x1E0F, 0x1E0F,
|
||||
0x1E11, 0x1E11, 0x1E13, 0x1E13, 0x1E15, 0x1E15, 0x1E17, 0x1E17,
|
||||
0x1E19, 0x1E19, 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, 0x1E1F, 0x1E1F,
|
||||
0x1E21, 0x1E21, 0x1E23, 0x1E23, 0x1E25, 0x1E25, 0x1E27, 0x1E27,
|
||||
0x1E29, 0x1E29, 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, 0x1E2F, 0x1E2F,
|
||||
0x1E31, 0x1E31, 0x1E33, 0x1E33, 0x1E35, 0x1E35, 0x1E37, 0x1E37,
|
||||
0x1E39, 0x1E39, 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, 0x1E3F, 0x1E3F,
|
||||
0x1E41, 0x1E41, 0x1E43, 0x1E43, 0x1E45, 0x1E45, 0x1E47, 0x1E47,
|
||||
0x1E49, 0x1E49, 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, 0x1E4F, 0x1E4F,
|
||||
0x1E51, 0x1E51, 0x1E53, 0x1E53, 0x1E55, 0x1E55, 0x1E57, 0x1E57,
|
||||
0x1E59, 0x1E59, 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, 0x1E5F, 0x1E5F,
|
||||
0x1E61, 0x1E61, 0x1E63, 0x1E63, 0x1E65, 0x1E65, 0x1E67, 0x1E67,
|
||||
0x1E69, 0x1E69, 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, 0x1E6F, 0x1E6F,
|
||||
0x1E71, 0x1E71, 0x1E73, 0x1E73, 0x1E75, 0x1E75, 0x1E77, 0x1E77,
|
||||
0x1E79, 0x1E79, 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, 0x1E7F, 0x1E7F,
|
||||
0x1E81, 0x1E81, 0x1E83, 0x1E83, 0x1E85, 0x1E85, 0x1E87, 0x1E87,
|
||||
0x1E89, 0x1E89, 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, 0x1E8F, 0x1E8F,
|
||||
0x1E91, 0x1E91, 0x1E93, 0x1E93, 0x1E95, 0x1E95, 0x1E96, 0x1E97,
|
||||
0x1E98, 0x1E99, 0x1E9A, 0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F,
|
||||
0x1EA1, 0x1EA1, 0x1EA3, 0x1EA3, 0x1EA5, 0x1EA5, 0x1EA7, 0x1EA7,
|
||||
0x1EA9, 0x1EA9, 0x1EAB, 0x1EAB, 0x1EAD, 0x1EAD, 0x1EAF, 0x1EAF,
|
||||
0x1EB1, 0x1EB1, 0x1EB3, 0x1EB3, 0x1EB5, 0x1EB5, 0x1EB7, 0x1EB7,
|
||||
0x1EB9, 0x1EB9, 0x1EBB, 0x1EBB, 0x1EBD, 0x1EBD, 0x1EBF, 0x1EBF,
|
||||
0x1EC1, 0x1EC1, 0x1EC3, 0x1EC3, 0x1EC5, 0x1EC5, 0x1EC7, 0x1EC7,
|
||||
0x1EC9, 0x1EC9, 0x1ECB, 0x1ECB, 0x1ECD, 0x1ECD, 0x1ECF, 0x1ECF,
|
||||
0x1ED1, 0x1ED1, 0x1ED3, 0x1ED3, 0x1ED5, 0x1ED5, 0x1ED7, 0x1ED7,
|
||||
0x1ED9, 0x1ED9, 0x1EDB, 0x1EDB, 0x1EDD, 0x1EDD, 0x1EDF, 0x1EDF,
|
||||
0x1EE1, 0x1EE1, 0x1EE3, 0x1EE3, 0x1EE5, 0x1EE5, 0x1EE7, 0x1EE7,
|
||||
0x1EE9, 0x1EE9, 0x1EEB, 0x1EEB, 0x1EED, 0x1EED, 0x1EEF, 0x1EEF,
|
||||
0x1EF1, 0x1EF1, 0x1EF3, 0x1EF3, 0x1EF5, 0x1EF5, 0x1EF7, 0x1EF7,
|
||||
0x1EF9, 0x1EF9, 0x1EFA, 0x1EFB, 0x1EFC, 0x1EFD, 0x1EFE, 0x1EFF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 1F00 - 1FFF */
|
||||
static const WCHAR lblk1F[256] = {
|
||||
0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
|
||||
0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
|
||||
0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F16, 0x1F17,
|
||||
0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F1E, 0x1F1F,
|
||||
0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
|
||||
0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
|
||||
0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
|
||||
0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
|
||||
0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x1F46, 0x1F47,
|
||||
0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x1F4E, 0x1F4F,
|
||||
0x1F50, 0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57,
|
||||
0x1F58, 0x1F51, 0x1F5A, 0x1F53, 0x1F5C, 0x1F55, 0x1F5E, 0x1F57,
|
||||
0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
|
||||
0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
|
||||
0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77,
|
||||
0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0x1F7E, 0x1F7F,
|
||||
0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
|
||||
0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
|
||||
0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
|
||||
0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
|
||||
0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
|
||||
0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
|
||||
0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7,
|
||||
0x1FB0, 0x1FB1, 0x1F70, 0x1F71, 0x1FB3, 0x1FBD, 0x1FBE, 0x1FBF,
|
||||
0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7,
|
||||
0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1FC3, 0x1FCD, 0x1FCE, 0x1FCF,
|
||||
0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3, 0x1FD4, 0x1FD5, 0x1FD6, 0x1FD7,
|
||||
0x1FD0, 0x1FD1, 0x1F76, 0x1F77, 0x1FDC, 0x1FDD, 0x1FDE, 0x1FDF,
|
||||
0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7,
|
||||
0x1FE0, 0x1FE1, 0x1F7A, 0x1F7B, 0x1FE5, 0x1FED, 0x1FEE, 0x1FEF,
|
||||
0x1FF0, 0x1FF1, 0x1FF2, 0x1FF3, 0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7,
|
||||
0x1F78, 0x1F79, 0x1F7C, 0x1F7D, 0x1FF3, 0x1FFD, 0x1FFE, 0x1FFF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 2100 - 21FF */
|
||||
static const WCHAR lblk21[256] = {
|
||||
0x2100, 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107,
|
||||
0x2108, 0x2109, 0x210A, 0x210B, 0x210C, 0x210D, 0x210E, 0x210F,
|
||||
0x2110, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117,
|
||||
0x2118, 0x2119, 0x211A, 0x211B, 0x211C, 0x211D, 0x211E, 0x211F,
|
||||
0x2120, 0x2121, 0x2122, 0x2123, 0x2124, 0x2125, 0x2126, 0x2127,
|
||||
0x2128, 0x2129, 0x212A, 0x212B, 0x212C, 0x212D, 0x212E, 0x212F,
|
||||
0x2130, 0x2131, 0x2132, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137,
|
||||
0x2138, 0x2139, 0x213A, 0x213B, 0x213C, 0x213D, 0x213E, 0x213F,
|
||||
0x2140, 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147,
|
||||
0x2148, 0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F,
|
||||
0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157,
|
||||
0x2158, 0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F,
|
||||
0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
|
||||
0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F,
|
||||
0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
|
||||
0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F,
|
||||
0x2180, 0x2181, 0x2182, 0x2183, 0x2184, 0x2185, 0x2186, 0x2187,
|
||||
0x2188, 0x2189, 0x218A, 0x218B, 0x218C, 0x218D, 0x218E, 0x218F,
|
||||
0x2190, 0x2191, 0x2192, 0x2193, 0x2194, 0x2195, 0x2196, 0x2197,
|
||||
0x2198, 0x2199, 0x219A, 0x219B, 0x219C, 0x219D, 0x219E, 0x219F,
|
||||
0x21A0, 0x21A1, 0x21A2, 0x21A3, 0x21A4, 0x21A5, 0x21A6, 0x21A7,
|
||||
0x21A8, 0x21A9, 0x21AA, 0x21AB, 0x21AC, 0x21AD, 0x21AE, 0x21AF,
|
||||
0x21B0, 0x21B1, 0x21B2, 0x21B3, 0x21B4, 0x21B5, 0x21B6, 0x21B7,
|
||||
0x21B8, 0x21B9, 0x21BA, 0x21BB, 0x21BC, 0x21BD, 0x21BE, 0x21BF,
|
||||
0x21C0, 0x21C1, 0x21C2, 0x21C3, 0x21C4, 0x21C5, 0x21C6, 0x21C7,
|
||||
0x21C8, 0x21C9, 0x21CA, 0x21CB, 0x21CC, 0x21CD, 0x21CE, 0x21CF,
|
||||
0x21D0, 0x21D1, 0x21D2, 0x21D3, 0x21D4, 0x21D5, 0x21D6, 0x21D7,
|
||||
0x21D8, 0x21D9, 0x21DA, 0x21DB, 0x21DC, 0x21DD, 0x21DE, 0x21DF,
|
||||
0x21E0, 0x21E1, 0x21E2, 0x21E3, 0x21E4, 0x21E5, 0x21E6, 0x21E7,
|
||||
0x21E8, 0x21E9, 0x21EA, 0x21EB, 0x21EC, 0x21ED, 0x21EE, 0x21EF,
|
||||
0x21F0, 0x21F1, 0x21F2, 0x21F3, 0x21F4, 0x21F5, 0x21F6, 0x21F7,
|
||||
0x21F8, 0x21F9, 0x21FA, 0x21FB, 0x21FC, 0x21FD, 0x21FE, 0x21FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings 2400 - 24FF */
|
||||
static const WCHAR lblk24[256] = {
|
||||
0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407,
|
||||
0x2408, 0x2409, 0x240A, 0x240B, 0x240C, 0x240D, 0x240E, 0x240F,
|
||||
0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417,
|
||||
0x2418, 0x2419, 0x241A, 0x241B, 0x241C, 0x241D, 0x241E, 0x241F,
|
||||
0x2420, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427,
|
||||
0x2428, 0x2429, 0x242A, 0x242B, 0x242C, 0x242D, 0x242E, 0x242F,
|
||||
0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437,
|
||||
0x2438, 0x2439, 0x243A, 0x243B, 0x243C, 0x243D, 0x243E, 0x243F,
|
||||
0x2440, 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447,
|
||||
0x2448, 0x2449, 0x244A, 0x244B, 0x244C, 0x244D, 0x244E, 0x244F,
|
||||
0x2450, 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457,
|
||||
0x2458, 0x2459, 0x245A, 0x245B, 0x245C, 0x245D, 0x245E, 0x245F,
|
||||
0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
|
||||
0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F,
|
||||
0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477,
|
||||
0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, 0x247F,
|
||||
0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
|
||||
0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, 0x248F,
|
||||
0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
|
||||
0x2498, 0x2499, 0x249A, 0x249B, 0x249C, 0x249D, 0x249E, 0x249F,
|
||||
0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, 0x24A7,
|
||||
0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, 0x24AF,
|
||||
0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x24D0, 0x24D1,
|
||||
0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7, 0x24D8, 0x24D9,
|
||||
0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF, 0x24E0, 0x24E1,
|
||||
0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7, 0x24E8, 0x24E9,
|
||||
0x24D0, 0x24D1, 0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7,
|
||||
0x24D8, 0x24D9, 0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF,
|
||||
0x24E0, 0x24E1, 0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7,
|
||||
0x24E8, 0x24E9, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF,
|
||||
0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, 0x24F7,
|
||||
0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x24FF,
|
||||
};
|
||||
|
||||
/* Lowercase mappings FF00 - FFFF */
|
||||
static const WCHAR lblkFF[256] = {
|
||||
0xFF00, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, 0xFF06, 0xFF07,
|
||||
0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F,
|
||||
0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17,
|
||||
0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F,
|
||||
0xFF20, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47,
|
||||
0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F,
|
||||
0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57,
|
||||
0xFF58, 0xFF59, 0xFF5A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F,
|
||||
0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47,
|
||||
0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F,
|
||||
0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57,
|
||||
0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFF5E, 0xFF5F,
|
||||
0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67,
|
||||
0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F,
|
||||
0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77,
|
||||
0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F,
|
||||
0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, 0xFF86, 0xFF87,
|
||||
0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F,
|
||||
0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0xFF97,
|
||||
0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F,
|
||||
0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, 0xFFA7,
|
||||
0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, 0xFFAF,
|
||||
0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, 0xFFB7,
|
||||
0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF,
|
||||
0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7,
|
||||
0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF,
|
||||
0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7,
|
||||
0xFFD8, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF,
|
||||
0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7,
|
||||
0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF,
|
||||
0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, 0xFFF6, 0xFFF7,
|
||||
0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
|
||||
};
|
||||
|
||||
static const WCHAR * const lwrtable[256] = {
|
||||
lblk00, lblk01, lblk02, lblk03, lblk04, lblk05, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
lblk10, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, lblk1E, lblk1F,
|
||||
000000, lblk21, 000000, 000000, lblk24, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, lblkFF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0000 - 00FF */
|
||||
static const WCHAR ublk00[256] = {
|
||||
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
|
||||
0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
|
||||
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
|
||||
0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
|
||||
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
|
||||
0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
|
||||
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
|
||||
0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
|
||||
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
|
||||
0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
|
||||
0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
|
||||
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
|
||||
0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
|
||||
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
|
||||
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
|
||||
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
|
||||
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
|
||||
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
|
||||
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
|
||||
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
|
||||
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
|
||||
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
|
||||
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
|
||||
0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
|
||||
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
|
||||
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
|
||||
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
|
||||
0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00F7,
|
||||
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x0178,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0100 - 01FF */
|
||||
static const WCHAR ublk01[256] = {
|
||||
0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106,
|
||||
0x0108, 0x0108, 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E,
|
||||
0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116,
|
||||
0x0118, 0x0118, 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E,
|
||||
0x0120, 0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126,
|
||||
0x0128, 0x0128, 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E,
|
||||
0x0130, 0x0049, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136,
|
||||
0x0138, 0x0139, 0x0139, 0x013B, 0x013B, 0x013D, 0x013D, 0x013F,
|
||||
0x013F, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147,
|
||||
0x0147, 0x0149, 0x014A, 0x014A, 0x014C, 0x014C, 0x014E, 0x014E,
|
||||
0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156,
|
||||
0x0158, 0x0158, 0x015A, 0x015A, 0x015C, 0x015C, 0x015E, 0x015E,
|
||||
0x0160, 0x0160, 0x0162, 0x0162, 0x0164, 0x0164, 0x0166, 0x0166,
|
||||
0x0168, 0x0168, 0x016A, 0x016A, 0x016C, 0x016C, 0x016E, 0x016E,
|
||||
0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176,
|
||||
0x0178, 0x0179, 0x0179, 0x017B, 0x017B, 0x017D, 0x017D, 0x0053,
|
||||
0x0180, 0x0181, 0x0182, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187,
|
||||
0x0187, 0x0189, 0x018A, 0x018B, 0x018B, 0x018D, 0x018E, 0x018F,
|
||||
0x0190, 0x0191, 0x0191, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197,
|
||||
0x0198, 0x0198, 0x019A, 0x019B, 0x019C, 0x019D, 0x019E, 0x019F,
|
||||
0x01A0, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7,
|
||||
0x01A7, 0x01A9, 0x01AA, 0x01AB, 0x01AC, 0x01AC, 0x01AE, 0x01AF,
|
||||
0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B3, 0x01B5, 0x01B5, 0x01B7,
|
||||
0x01B8, 0x01B8, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BE, 0x01BF,
|
||||
0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C4, 0x01C4, 0x01C7,
|
||||
0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CA, 0x01CD, 0x01CD, 0x01CF,
|
||||
0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, 0x01D7,
|
||||
0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x01DD, 0x01DE, 0x01DE,
|
||||
0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6,
|
||||
0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE,
|
||||
0x01F0, 0x01F1, 0x01F1, 0x01F1, 0x01F4, 0x01F4, 0x01F6, 0x01F7,
|
||||
0x01F8, 0x01F9, 0x01FA, 0x01FA, 0x01FC, 0x01FC, 0x01FE, 0x01FE,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0200 - 02FF */
|
||||
static const WCHAR ublk02[256] = {
|
||||
0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206,
|
||||
0x0208, 0x0208, 0x020A, 0x020A, 0x020C, 0x020C, 0x020E, 0x020E,
|
||||
0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216,
|
||||
0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E, 0x021F,
|
||||
0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0226, 0x0227,
|
||||
0x0228, 0x0229, 0x022A, 0x022B, 0x022C, 0x022D, 0x022E, 0x022F,
|
||||
0x0230, 0x0231, 0x0232, 0x0233, 0x0234, 0x0235, 0x0236, 0x0237,
|
||||
0x0238, 0x0239, 0x023A, 0x023B, 0x023C, 0x023D, 0x023E, 0x023F,
|
||||
0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247,
|
||||
0x0248, 0x0249, 0x024A, 0x024B, 0x024C, 0x024D, 0x024E, 0x024F,
|
||||
0x0250, 0x0251, 0x0252, 0x0181, 0x0186, 0x0255, 0x0189, 0x018A,
|
||||
0x018E, 0x018F, 0x025A, 0x0190, 0x025C, 0x025D, 0x025E, 0x025F,
|
||||
0x0193, 0x0261, 0x0262, 0x0194, 0x0264, 0x0265, 0x0266, 0x0267,
|
||||
0x0197, 0x0196, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x019C,
|
||||
0x0270, 0x0271, 0x019D, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277,
|
||||
0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F,
|
||||
0x0280, 0x0281, 0x0282, 0x01A9, 0x0284, 0x0285, 0x0286, 0x0287,
|
||||
0x01AE, 0x0289, 0x01B1, 0x01B2, 0x028C, 0x028D, 0x028E, 0x028F,
|
||||
0x0290, 0x0291, 0x01B7, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297,
|
||||
0x0298, 0x0299, 0x029A, 0x029B, 0x029C, 0x029D, 0x029E, 0x029F,
|
||||
0x02A0, 0x02A1, 0x02A2, 0x02A3, 0x02A4, 0x02A5, 0x02A6, 0x02A7,
|
||||
0x02A8, 0x02A9, 0x02AA, 0x02AB, 0x02AC, 0x02AD, 0x02AE, 0x02AF,
|
||||
0x02B0, 0x02B1, 0x02B2, 0x02B3, 0x02B4, 0x02B5, 0x02B6, 0x02B7,
|
||||
0x02B8, 0x02B9, 0x02BA, 0x02BB, 0x02BC, 0x02BD, 0x02BE, 0x02BF,
|
||||
0x02C0, 0x02C1, 0x02C2, 0x02C3, 0x02C4, 0x02C5, 0x02C6, 0x02C7,
|
||||
0x02C8, 0x02C9, 0x02CA, 0x02CB, 0x02CC, 0x02CD, 0x02CE, 0x02CF,
|
||||
0x02D0, 0x02D1, 0x02D2, 0x02D3, 0x02D4, 0x02D5, 0x02D6, 0x02D7,
|
||||
0x02D8, 0x02D9, 0x02DA, 0x02DB, 0x02DC, 0x02DD, 0x02DE, 0x02DF,
|
||||
0x02E0, 0x02E1, 0x02E2, 0x02E3, 0x02E4, 0x02E5, 0x02E6, 0x02E7,
|
||||
0x02E8, 0x02E9, 0x02EA, 0x02EB, 0x02EC, 0x02ED, 0x02EE, 0x02EF,
|
||||
0x02F0, 0x02F1, 0x02F2, 0x02F3, 0x02F4, 0x02F5, 0x02F6, 0x02F7,
|
||||
0x02F8, 0x02F9, 0x02FA, 0x02FB, 0x02FC, 0x02FD, 0x02FE, 0x02FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0300 - 03FF */
|
||||
static const WCHAR ublk03[256] = {
|
||||
0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307,
|
||||
0x0308, 0x0309, 0x030A, 0x030B, 0x030C, 0x030D, 0x030E, 0x030F,
|
||||
0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,
|
||||
0x0318, 0x0319, 0x031A, 0x031B, 0x031C, 0x031D, 0x031E, 0x031F,
|
||||
0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327,
|
||||
0x0328, 0x0329, 0x032A, 0x032B, 0x032C, 0x032D, 0x032E, 0x032F,
|
||||
0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337,
|
||||
0x0338, 0x0339, 0x033A, 0x033B, 0x033C, 0x033D, 0x033E, 0x033F,
|
||||
0x0340, 0x0341, 0x0342, 0x0343, 0x0344, 0x0345, 0x0346, 0x0347,
|
||||
0x0348, 0x0349, 0x034A, 0x034B, 0x034C, 0x034D, 0x034E, 0x034F,
|
||||
0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357,
|
||||
0x0358, 0x0359, 0x035A, 0x035B, 0x035C, 0x035D, 0x035E, 0x035F,
|
||||
0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367,
|
||||
0x0368, 0x0369, 0x036A, 0x036B, 0x036C, 0x036D, 0x036E, 0x036F,
|
||||
0x0370, 0x0371, 0x0372, 0x0373, 0x0374, 0x0375, 0x0376, 0x0377,
|
||||
0x0378, 0x0379, 0x037A, 0x037B, 0x037C, 0x037D, 0x037E, 0x037F,
|
||||
0x0380, 0x0381, 0x0382, 0x0383, 0x0384, 0x0385, 0x0386, 0x0387,
|
||||
0x0388, 0x0389, 0x038A, 0x038B, 0x038C, 0x038D, 0x038E, 0x038F,
|
||||
0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
|
||||
0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
|
||||
0x03A0, 0x03A1, 0x03A2, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
|
||||
0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x0386, 0x0388, 0x0389, 0x038A,
|
||||
0x03B0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
|
||||
0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
|
||||
0x03A0, 0x03A1, 0x03C2, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
|
||||
0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x038C, 0x038E, 0x038F, 0x03CF,
|
||||
0x0392, 0x0398, 0x03D2, 0x03D3, 0x03D4, 0x03A6, 0x03A0, 0x03D7,
|
||||
0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC, 0x03DD, 0x03DE, 0x03DF,
|
||||
0x03E0, 0x03E1, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6,
|
||||
0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE,
|
||||
0x039A, 0x03A1, 0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x03F6, 0x03F7,
|
||||
0x03F8, 0x03F9, 0x03FA, 0x03FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0400 - 04FF */
|
||||
static const WCHAR ublk04[256] = {
|
||||
0x0400, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
|
||||
0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F,
|
||||
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
|
||||
0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
|
||||
0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
|
||||
0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
|
||||
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
|
||||
0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
|
||||
0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
|
||||
0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
|
||||
0x0450, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
|
||||
0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x045D, 0x040E, 0x040F,
|
||||
0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466,
|
||||
0x0468, 0x0468, 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E,
|
||||
0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476,
|
||||
0x0478, 0x0478, 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E,
|
||||
0x0480, 0x0480, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,
|
||||
0x0488, 0x0489, 0x048A, 0x048B, 0x048C, 0x048D, 0x048E, 0x048F,
|
||||
0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496,
|
||||
0x0498, 0x0498, 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E,
|
||||
0x04A0, 0x04A0, 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6,
|
||||
0x04A8, 0x04A8, 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE,
|
||||
0x04B0, 0x04B0, 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6,
|
||||
0x04B8, 0x04B8, 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE,
|
||||
0x04C0, 0x04C1, 0x04C1, 0x04C3, 0x04C3, 0x04C5, 0x04C6, 0x04C7,
|
||||
0x04C7, 0x04C9, 0x04CA, 0x04CB, 0x04CB, 0x04CD, 0x04CE, 0x04CF,
|
||||
0x04D0, 0x04D0, 0x04D2, 0x04D2, 0x04D4, 0x04D4, 0x04D6, 0x04D6,
|
||||
0x04D8, 0x04D8, 0x04DA, 0x04DA, 0x04DC, 0x04DC, 0x04DE, 0x04DE,
|
||||
0x04E0, 0x04E0, 0x04E2, 0x04E2, 0x04E4, 0x04E4, 0x04E6, 0x04E6,
|
||||
0x04E8, 0x04E8, 0x04EA, 0x04EA, 0x04EC, 0x04ED, 0x04EE, 0x04EE,
|
||||
0x04F0, 0x04F0, 0x04F2, 0x04F2, 0x04F4, 0x04F4, 0x04F6, 0x04F7,
|
||||
0x04F8, 0x04F8, 0x04FA, 0x04FB, 0x04FC, 0x04FD, 0x04FE, 0x04FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 0500 - 05FF */
|
||||
static const WCHAR ublk05[256] = {
|
||||
0x0500, 0x0501, 0x0502, 0x0503, 0x0504, 0x0505, 0x0506, 0x0507,
|
||||
0x0508, 0x0509, 0x050A, 0x050B, 0x050C, 0x050D, 0x050E, 0x050F,
|
||||
0x0510, 0x0511, 0x0512, 0x0513, 0x0514, 0x0515, 0x0516, 0x0517,
|
||||
0x0518, 0x0519, 0x051A, 0x051B, 0x051C, 0x051D, 0x051E, 0x051F,
|
||||
0x0520, 0x0521, 0x0522, 0x0523, 0x0524, 0x0525, 0x0526, 0x0527,
|
||||
0x0528, 0x0529, 0x052A, 0x052B, 0x052C, 0x052D, 0x052E, 0x052F,
|
||||
0x0530, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,
|
||||
0x0538, 0x0539, 0x053A, 0x053B, 0x053C, 0x053D, 0x053E, 0x053F,
|
||||
0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
|
||||
0x0548, 0x0549, 0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F,
|
||||
0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0557,
|
||||
0x0558, 0x0559, 0x055A, 0x055B, 0x055C, 0x055D, 0x055E, 0x055F,
|
||||
0x0560, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,
|
||||
0x0538, 0x0539, 0x053A, 0x053B, 0x053C, 0x053D, 0x053E, 0x053F,
|
||||
0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
|
||||
0x0548, 0x0549, 0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F,
|
||||
0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0587,
|
||||
0x0588, 0x0589, 0x058A, 0x058B, 0x058C, 0x058D, 0x058E, 0x058F,
|
||||
0x0590, 0x0591, 0x0592, 0x0593, 0x0594, 0x0595, 0x0596, 0x0597,
|
||||
0x0598, 0x0599, 0x059A, 0x059B, 0x059C, 0x059D, 0x059E, 0x059F,
|
||||
0x05A0, 0x05A1, 0x05A2, 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7,
|
||||
0x05A8, 0x05A9, 0x05AA, 0x05AB, 0x05AC, 0x05AD, 0x05AE, 0x05AF,
|
||||
0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
|
||||
0x05B8, 0x05B9, 0x05BA, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
|
||||
0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05C4, 0x05C5, 0x05C6, 0x05C7,
|
||||
0x05C8, 0x05C9, 0x05CA, 0x05CB, 0x05CC, 0x05CD, 0x05CE, 0x05CF,
|
||||
0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
|
||||
0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
|
||||
0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
|
||||
0x05E8, 0x05E9, 0x05EA, 0x05EB, 0x05EC, 0x05ED, 0x05EE, 0x05EF,
|
||||
0x05F0, 0x05F1, 0x05F2, 0x05F3, 0x05F4, 0x05F5, 0x05F6, 0x05F7,
|
||||
0x05F8, 0x05F9, 0x05FA, 0x05FB, 0x05FC, 0x05FD, 0x05FE, 0x05FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 1E00 - 1EFF */
|
||||
static const WCHAR ublk1E[256] = {
|
||||
0x1E00, 0x1E00, 0x1E02, 0x1E02, 0x1E04, 0x1E04, 0x1E06, 0x1E06,
|
||||
0x1E08, 0x1E08, 0x1E0A, 0x1E0A, 0x1E0C, 0x1E0C, 0x1E0E, 0x1E0E,
|
||||
0x1E10, 0x1E10, 0x1E12, 0x1E12, 0x1E14, 0x1E14, 0x1E16, 0x1E16,
|
||||
0x1E18, 0x1E18, 0x1E1A, 0x1E1A, 0x1E1C, 0x1E1C, 0x1E1E, 0x1E1E,
|
||||
0x1E20, 0x1E20, 0x1E22, 0x1E22, 0x1E24, 0x1E24, 0x1E26, 0x1E26,
|
||||
0x1E28, 0x1E28, 0x1E2A, 0x1E2A, 0x1E2C, 0x1E2C, 0x1E2E, 0x1E2E,
|
||||
0x1E30, 0x1E30, 0x1E32, 0x1E32, 0x1E34, 0x1E34, 0x1E36, 0x1E36,
|
||||
0x1E38, 0x1E38, 0x1E3A, 0x1E3A, 0x1E3C, 0x1E3C, 0x1E3E, 0x1E3E,
|
||||
0x1E40, 0x1E40, 0x1E42, 0x1E42, 0x1E44, 0x1E44, 0x1E46, 0x1E46,
|
||||
0x1E48, 0x1E48, 0x1E4A, 0x1E4A, 0x1E4C, 0x1E4C, 0x1E4E, 0x1E4E,
|
||||
0x1E50, 0x1E50, 0x1E52, 0x1E52, 0x1E54, 0x1E54, 0x1E56, 0x1E56,
|
||||
0x1E58, 0x1E58, 0x1E5A, 0x1E5A, 0x1E5C, 0x1E5C, 0x1E5E, 0x1E5E,
|
||||
0x1E60, 0x1E60, 0x1E62, 0x1E62, 0x1E64, 0x1E64, 0x1E66, 0x1E66,
|
||||
0x1E68, 0x1E68, 0x1E6A, 0x1E6A, 0x1E6C, 0x1E6C, 0x1E6E, 0x1E6E,
|
||||
0x1E70, 0x1E70, 0x1E72, 0x1E72, 0x1E74, 0x1E74, 0x1E76, 0x1E76,
|
||||
0x1E78, 0x1E78, 0x1E7A, 0x1E7A, 0x1E7C, 0x1E7C, 0x1E7E, 0x1E7E,
|
||||
0x1E80, 0x1E80, 0x1E82, 0x1E82, 0x1E84, 0x1E84, 0x1E86, 0x1E86,
|
||||
0x1E88, 0x1E88, 0x1E8A, 0x1E8A, 0x1E8C, 0x1E8C, 0x1E8E, 0x1E8E,
|
||||
0x1E90, 0x1E90, 0x1E92, 0x1E92, 0x1E94, 0x1E94, 0x1E96, 0x1E97,
|
||||
0x1E98, 0x1E99, 0x1E9A, 0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F,
|
||||
0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6,
|
||||
0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE,
|
||||
0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6,
|
||||
0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE,
|
||||
0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6,
|
||||
0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE,
|
||||
0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6,
|
||||
0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE,
|
||||
0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6,
|
||||
0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE,
|
||||
0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6,
|
||||
0x1EF8, 0x1EF8, 0x1EFA, 0x1EFB, 0x1EFC, 0x1EFD, 0x1EFE, 0x1EFF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 1F00 - 1FFF */
|
||||
static const WCHAR ublk1F[256] = {
|
||||
0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
|
||||
0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
|
||||
0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F16, 0x1F17,
|
||||
0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F1E, 0x1F1F,
|
||||
0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
|
||||
0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
|
||||
0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
|
||||
0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
|
||||
0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F46, 0x1F47,
|
||||
0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F4E, 0x1F4F,
|
||||
0x1F50, 0x1F59, 0x1F52, 0x1F5B, 0x1F54, 0x1F5D, 0x1F56, 0x1F5F,
|
||||
0x1F58, 0x1F59, 0x1F5A, 0x1F5B, 0x1F5C, 0x1F5D, 0x1F5E, 0x1F5F,
|
||||
0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
|
||||
0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
|
||||
0x1FBA, 0x1FBB, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FDA, 0x1FDB,
|
||||
0x1FF8, 0x1FF9, 0x1FEA, 0x1FEB, 0x1FFA, 0x1FFB, 0x1F7E, 0x1F7F,
|
||||
0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
|
||||
0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
|
||||
0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
|
||||
0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
|
||||
0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
|
||||
0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
|
||||
0x1FB8, 0x1FB9, 0x1FB2, 0x1FBC, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7,
|
||||
0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x1FBE, 0x1FBF,
|
||||
0x1FC0, 0x1FC1, 0x1FC2, 0x1FCC, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7,
|
||||
0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF,
|
||||
0x1FD8, 0x1FD9, 0x1FD2, 0x1FD3, 0x1FD4, 0x1FD5, 0x1FD6, 0x1FD7,
|
||||
0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FDC, 0x1FDD, 0x1FDE, 0x1FDF,
|
||||
0x1FE8, 0x1FE9, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FEC, 0x1FE6, 0x1FE7,
|
||||
0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF,
|
||||
0x1FF0, 0x1FF1, 0x1FF2, 0x1FFC, 0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7,
|
||||
0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x1FFF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 2100 - 21FF */
|
||||
static const WCHAR ublk21[256] = {
|
||||
0x2100, 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107,
|
||||
0x2108, 0x2109, 0x210A, 0x210B, 0x210C, 0x210D, 0x210E, 0x210F,
|
||||
0x2110, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117,
|
||||
0x2118, 0x2119, 0x211A, 0x211B, 0x211C, 0x211D, 0x211E, 0x211F,
|
||||
0x2120, 0x2121, 0x2122, 0x2123, 0x2124, 0x2125, 0x2126, 0x2127,
|
||||
0x2128, 0x2129, 0x212A, 0x212B, 0x212C, 0x212D, 0x212E, 0x212F,
|
||||
0x2130, 0x2131, 0x2132, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137,
|
||||
0x2138, 0x2139, 0x213A, 0x213B, 0x213C, 0x213D, 0x213E, 0x213F,
|
||||
0x2140, 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147,
|
||||
0x2148, 0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F,
|
||||
0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157,
|
||||
0x2158, 0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F,
|
||||
0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
|
||||
0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F,
|
||||
0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
|
||||
0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F,
|
||||
0x2180, 0x2181, 0x2182, 0x2183, 0x2184, 0x2185, 0x2186, 0x2187,
|
||||
0x2188, 0x2189, 0x218A, 0x218B, 0x218C, 0x218D, 0x218E, 0x218F,
|
||||
0x2190, 0x2191, 0x2192, 0x2193, 0x2194, 0x2195, 0x2196, 0x2197,
|
||||
0x2198, 0x2199, 0x219A, 0x219B, 0x219C, 0x219D, 0x219E, 0x219F,
|
||||
0x21A0, 0x21A1, 0x21A2, 0x21A3, 0x21A4, 0x21A5, 0x21A6, 0x21A7,
|
||||
0x21A8, 0x21A9, 0x21AA, 0x21AB, 0x21AC, 0x21AD, 0x21AE, 0x21AF,
|
||||
0x21B0, 0x21B1, 0x21B2, 0x21B3, 0x21B4, 0x21B5, 0x21B6, 0x21B7,
|
||||
0x21B8, 0x21B9, 0x21BA, 0x21BB, 0x21BC, 0x21BD, 0x21BE, 0x21BF,
|
||||
0x21C0, 0x21C1, 0x21C2, 0x21C3, 0x21C4, 0x21C5, 0x21C6, 0x21C7,
|
||||
0x21C8, 0x21C9, 0x21CA, 0x21CB, 0x21CC, 0x21CD, 0x21CE, 0x21CF,
|
||||
0x21D0, 0x21D1, 0x21D2, 0x21D3, 0x21D4, 0x21D5, 0x21D6, 0x21D7,
|
||||
0x21D8, 0x21D9, 0x21DA, 0x21DB, 0x21DC, 0x21DD, 0x21DE, 0x21DF,
|
||||
0x21E0, 0x21E1, 0x21E2, 0x21E3, 0x21E4, 0x21E5, 0x21E6, 0x21E7,
|
||||
0x21E8, 0x21E9, 0x21EA, 0x21EB, 0x21EC, 0x21ED, 0x21EE, 0x21EF,
|
||||
0x21F0, 0x21F1, 0x21F2, 0x21F3, 0x21F4, 0x21F5, 0x21F6, 0x21F7,
|
||||
0x21F8, 0x21F9, 0x21FA, 0x21FB, 0x21FC, 0x21FD, 0x21FE, 0x21FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings 2400 - 24FF */
|
||||
static const WCHAR ublk24[256] = {
|
||||
0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407,
|
||||
0x2408, 0x2409, 0x240A, 0x240B, 0x240C, 0x240D, 0x240E, 0x240F,
|
||||
0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417,
|
||||
0x2418, 0x2419, 0x241A, 0x241B, 0x241C, 0x241D, 0x241E, 0x241F,
|
||||
0x2420, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427,
|
||||
0x2428, 0x2429, 0x242A, 0x242B, 0x242C, 0x242D, 0x242E, 0x242F,
|
||||
0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437,
|
||||
0x2438, 0x2439, 0x243A, 0x243B, 0x243C, 0x243D, 0x243E, 0x243F,
|
||||
0x2440, 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447,
|
||||
0x2448, 0x2449, 0x244A, 0x244B, 0x244C, 0x244D, 0x244E, 0x244F,
|
||||
0x2450, 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457,
|
||||
0x2458, 0x2459, 0x245A, 0x245B, 0x245C, 0x245D, 0x245E, 0x245F,
|
||||
0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
|
||||
0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F,
|
||||
0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477,
|
||||
0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, 0x247F,
|
||||
0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
|
||||
0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, 0x248F,
|
||||
0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
|
||||
0x2498, 0x2499, 0x249A, 0x249B, 0x249C, 0x249D, 0x249E, 0x249F,
|
||||
0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, 0x24A7,
|
||||
0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, 0x24AF,
|
||||
0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x24B6, 0x24B7,
|
||||
0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD, 0x24BE, 0x24BF,
|
||||
0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5, 0x24C6, 0x24C7,
|
||||
0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD, 0x24CE, 0x24CF,
|
||||
0x24B6, 0x24B7, 0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD,
|
||||
0x24BE, 0x24BF, 0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5,
|
||||
0x24C6, 0x24C7, 0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD,
|
||||
0x24CE, 0x24CF, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF,
|
||||
0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, 0x24F7,
|
||||
0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x24FF,
|
||||
};
|
||||
|
||||
/* Uppercase mappings FF00 - FFFF */
|
||||
static const WCHAR ublkFF[256] = {
|
||||
0xFF00, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, 0xFF06, 0xFF07,
|
||||
0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F,
|
||||
0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17,
|
||||
0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F,
|
||||
0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27,
|
||||
0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F,
|
||||
0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37,
|
||||
0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F,
|
||||
0xFF40, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27,
|
||||
0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F,
|
||||
0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37,
|
||||
0xFF38, 0xFF39, 0xFF3A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFF5E, 0xFF5F,
|
||||
0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67,
|
||||
0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F,
|
||||
0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77,
|
||||
0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F,
|
||||
0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, 0xFF86, 0xFF87,
|
||||
0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F,
|
||||
0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0xFF97,
|
||||
0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F,
|
||||
0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, 0xFFA7,
|
||||
0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, 0xFFAF,
|
||||
0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, 0xFFB7,
|
||||
0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF,
|
||||
0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7,
|
||||
0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF,
|
||||
0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7,
|
||||
0xFFD8, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF,
|
||||
0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7,
|
||||
0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF,
|
||||
0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, 0xFFF6, 0xFFF7,
|
||||
0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
|
||||
};
|
||||
|
||||
static const WCHAR * const uprtable[256] = {
|
||||
ublk00, ublk01, ublk02, ublk03, ublk04, ublk05, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, ublk1E, ublk1F,
|
||||
000000, ublk21, 000000, 000000, ublk24, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000,
|
||||
000000, 000000, 000000, 000000, 000000, 000000, 000000, ublkFF,
|
||||
};
|
||||
|
|
@ -192,14 +192,12 @@ typedef struct
|
|||
|
||||
/* Functions prototypes */
|
||||
|
||||
HWND16 WINAPI CreateStatusWindow16(INT16,LPCSTR,HWND16,UINT16);
|
||||
HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32);
|
||||
HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32);
|
||||
#define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
|
||||
HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,
|
||||
HWND32,INT32,HINSTANCE32,HWND32,
|
||||
INT32,INT32,INT32);
|
||||
VOID WINAPI DrawStatusText16(HDC16,LPRECT16,LPCSTR,UINT16);
|
||||
VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32);
|
||||
VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32);
|
||||
#define DrawStatusText WINELIB_NAME_AW(DrawStatusText)
|
||||
|
@ -276,6 +274,7 @@ typedef struct _IMAGELISTDRAWPARAMS
|
|||
|
||||
|
||||
INT32 WINAPI ImageList_Add(HIMAGELIST,HBITMAP32,HBITMAP32);
|
||||
INT32 WINAPI ImageList_AddIcon (HIMAGELIST, HICON32);
|
||||
INT32 WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP32,COLORREF);
|
||||
BOOL32 WINAPI ImageList_BeginDrag(HIMAGELIST,INT32,INT32,INT32);
|
||||
BOOL32 WINAPI ImageList_Copy(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32);
|
||||
|
@ -284,7 +283,7 @@ BOOL32 WINAPI ImageList_Destroy(HIMAGELIST);
|
|||
BOOL32 WINAPI ImageList_DragEnter(HWND32,INT32,INT32);
|
||||
BOOL32 WINAPI ImageList_DragLeave(HWND32);
|
||||
BOOL32 WINAPI ImageList_DragMove(INT32,INT32);
|
||||
BOOL32 WINAPI ImageList_DragShowNolock (BOOL32 bShow);
|
||||
BOOL32 WINAPI ImageList_DragShowNolock (BOOL32);
|
||||
BOOL32 WINAPI ImageList_Draw(HIMAGELIST,INT32,HDC32,INT32,INT32,UINT32);
|
||||
BOOL32 WINAPI ImageList_DrawEx(HIMAGELIST,INT32,HDC32,INT32,INT32,INT32,
|
||||
INT32,COLORREF,COLORREF,UINT32);
|
||||
|
@ -304,18 +303,25 @@ HIMAGELIST WINAPI ImageList_LoadImage32W(HINSTANCE32,LPCWSTR,INT32,INT32,
|
|||
COLORREF,UINT32,UINT32);
|
||||
#define ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
|
||||
HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32,INT32);
|
||||
|
||||
#ifdef __IStream_INTREFACE_DEFINED__
|
||||
HIMAGELIST WINAPI ImageList_Read (LPSTREAM32);
|
||||
#endif
|
||||
BOOL32 WINAPI ImageList_Remove(HIMAGELIST,INT32);
|
||||
BOOL32 WINAPI ImageList_Replace(HIMAGELIST,INT32,HBITMAP32,HBITMAP32);
|
||||
INT32 WINAPI ImageList_ReplaceIcon(HIMAGELIST,INT32,HICON32);
|
||||
|
||||
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF);
|
||||
BOOL32 WINAPI ImageList_SetDragCursorImage(HIMAGELIST,INT32,INT32,INT32);
|
||||
|
||||
BOOL32 WINAPI ImageList_SetIconSize (HIMAGELIST,INT32,INT32);
|
||||
BOOL32 WINAPI ImageList_SetImageCount (HIMAGELIST,INT32);
|
||||
BOOL32 WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32);
|
||||
#ifdef __IStream_INTREFACE_DEFINED__
|
||||
BOOL32 WINAPI ImageList_Write (HIMAGELIST, LPSTREAM32);
|
||||
#endif
|
||||
|
||||
#ifndef __WINE__
|
||||
#define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon)
|
||||
#endif
|
||||
#define ImageList_ExtractIcon(hi,himl,i) ImageList_GetIcon(himl,i,0)
|
||||
#define ImageList_LoadBitmap(hi,lpbmp,cx,cGrow,crMask) \
|
||||
ImageList_LoadImage(hi,lpbmp,cx,cGrow,crMask,IMAGE_BITMAP,0)
|
||||
|
@ -415,11 +421,6 @@ BOOL32 WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32);
|
|||
#define HDN_BEGINDRACK (HDN_FIRST-10)
|
||||
#define HDN_ENDDRACK (HDN_FIRST-11)
|
||||
|
||||
|
||||
#define Header_Layout(hwndHD,playout) \
|
||||
(BOOL32)SendMessage32A((hwndHD),HDM_LAYOUT,0,(LPARAM)(LPHDLAYOUT)(playout))
|
||||
|
||||
|
||||
typedef struct _HD_LAYOUT
|
||||
{
|
||||
RECT32 *prc;
|
||||
|
@ -428,7 +429,6 @@ typedef struct _HD_LAYOUT
|
|||
|
||||
#define HD_LAYOUT HDLAYOUT
|
||||
|
||||
|
||||
typedef struct _HD_ITEMA
|
||||
{
|
||||
UINT32 mask;
|
||||
|
@ -442,7 +442,6 @@ typedef struct _HD_ITEMA
|
|||
INT32 iOrder;
|
||||
} HD_ITEMA;
|
||||
|
||||
|
||||
typedef struct _HD_HITTESTINFO
|
||||
{
|
||||
POINT32 pt;
|
||||
|
@ -452,7 +451,6 @@ typedef struct _HD_HITTESTINFO
|
|||
|
||||
#define HD_HITTESTINFO HDHITTESTINFO
|
||||
|
||||
|
||||
typedef struct tagNMHEADERA
|
||||
{
|
||||
NMHDR hdr;
|
||||
|
@ -462,4 +460,191 @@ typedef struct tagNMHEADERA
|
|||
} NMHEADERA, *LPNMHEADERA;
|
||||
|
||||
|
||||
#define Header_GetItemCount(hwndHD) \
|
||||
(INT32)SendMessage32A((hwndHD),HDM_GETITEMCOUNT,0,0L)
|
||||
#define Header_InsertItem(hwndHD,i,phdi) \
|
||||
(INT32)SendMessage32A((hwndHD),HDM_INSERTITEM,(WPARAM32)(INT32)(i),\
|
||||
(LPARAM)(const HD_ITEMA*)(phdi))
|
||||
#define Header_DeleteItem(hwndHD,i) \
|
||||
(BOOL32)SendMessage32A((hwndHD),HDM_DELETEITEM,(WPARAM32)(INT32)(i),0L)
|
||||
#define Header_GetItem(hwndHD,i,phdi) \
|
||||
(BOOL32)SendMessage32A((hwndHD),HDM_GETITEM,(WPARAM32)(INT32)(i),(LPARAM)(HD_ITEMA*)(phdi))
|
||||
#define Header_SetItem(hwndHD,i,phdi) \
|
||||
(BOOL32)SendMessage32A((hwndHD),HDM_SETITEM,(WPARAM32)(INT32)(i),(LPARAM)(const HD_ITEMA*)(phdi))
|
||||
#define Header_Layout(hwndHD,playout) \
|
||||
(BOOL32)SendMessage32A((hwndHD),HDM_LAYOUT,0,(LPARAM)(LPHDLAYOUT)(playout))
|
||||
#define Header_GetItemRect(hwnd,iItem,lprc) \
|
||||
(BOOL32)SendMessage32A((hwnd),HDM_GETITEMRECT,(WPARAM32)iItem,(LPARAM)lprc)
|
||||
#define Header_SetImageList(hwnd,himl) \
|
||||
(HIMAGELIST)SendMessage32A((hwnd),HDM_SETIMAGELIST,0,(LPARAM)himl)
|
||||
#define Header_GetImageList(hwnd) \
|
||||
(HIMAGELIST)SendMessage32A((hwnd),HDM_GETIMAGELIST,0,0)
|
||||
#define Header_OrderToIndex(hwnd,i) \
|
||||
(INT32)SendMessage32A((hwnd),HDM_ORDERTOINDEX,(WPARAM32)i,0)
|
||||
#define Header_CreateDragImage(hwnd,i) \
|
||||
(HIMAGELIST)SendMessage32A((hwnd),HDM_CREATEDRAGIMAGE,(WPARAM32)i,0)
|
||||
#define Header_GetOrderArray(hwnd,iCount,lpi) \
|
||||
(BOOL32)SendMessage32A((hwnd),HDM_GETORDERARRAY,(WPARAM32)iCount,(LPARAM)lpi)
|
||||
#define Header_SetOrderArray(hwnd,iCount,lpi) \
|
||||
(BOOL32)SendMessage32A((hwnd),HDM_SETORDERARRAY,(WPARAM32)iCount,(LPARAM)lpi)
|
||||
#define Header_SetHotDivider(hwnd,fPos,dw) \
|
||||
(INT32)SendMessage32A((hwnd),HDM_SETHOTDIVIDER,(WPARAM32)fPos,(LPARAM)dw)
|
||||
#define Header_SetUnicodeFormat(hwnd,fUnicode) \
|
||||
(BOOL32)SendMessage32A((hwnd),HDM_SETUNICODEFORMAT,(WPARAM32)(fUnicode),0)
|
||||
#define Header_GetUnicodeFormat(hwnd) \
|
||||
(BOOL32)SendMessage32A((hwnd),HDM_GETUNICODEFORMAT,0,0)
|
||||
|
||||
|
||||
/* Toolbar */
|
||||
|
||||
#define TOOLBARCLASSNAME16 "ToolbarWindow"
|
||||
#define TOOLBARCLASSNAME32W L"ToolbarWindow32"
|
||||
#define TOOLBARCLASSNAME32A "ToolbarWindow32"
|
||||
#define TOOLBARCLASSNAME WINELIB_NAME_AW(TOOLBARCLASSNAME)
|
||||
|
||||
|
||||
#define CMB_MASKED 0x02
|
||||
|
||||
#define TBSTATE_CHECKED 0x01
|
||||
#define TBSTATE_PRESSED 0x02
|
||||
#define TBSTATE_ENABLED 0x04
|
||||
#define TBSTATE_HIDDEN 0x08
|
||||
#define TBSTATE_INDETERMINATE 0x10
|
||||
#define TBSTATE_WRAP 0x20
|
||||
#define TBSTATE_ELLIPSES 0x40
|
||||
#define TBSTATE_MARKED 0x80
|
||||
|
||||
|
||||
#define TBSTYLE_BUTTON 0x00
|
||||
#define TBSTYLE_SEP 0x01
|
||||
#define TBSTYLE_CHECK 0x02
|
||||
#define TBSTYLE_GROUP 0x04
|
||||
#define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP | TBSTYLE_CHECK)
|
||||
#define TBSTYLE_DROPDOWN 0x08
|
||||
|
||||
#define TBSTYLE_TOOLTIPS 0x0100
|
||||
#define TBSTYLE_WRAPABLE 0x0200
|
||||
#define TBSTYLE_ALTDRAG 0x0400
|
||||
#define TBSTYLE_FLAT 0x0800
|
||||
#define TBSTYLE_LIST 0x1000
|
||||
#define TBSTYLE_CUSTOMERASE 0x2000
|
||||
|
||||
#define TB_ENABLEBUTTON (WM_USER+1)
|
||||
#define TB_CHECKBUTTON (WM_USER+2)
|
||||
#define TB_PRESSBUTTON (WM_USER+3)
|
||||
#define TB_HIDEBUTTON (WM_USER+4)
|
||||
#define TB_INDETERMINATE (WM_USER+5)
|
||||
#define TB_ISBUTTONENABLED (WM_USER+9)
|
||||
#define TB_ISBUTTONCHECKED (WM_USER+10)
|
||||
#define TB_ISBUTTONPRESSED (WM_USER+11)
|
||||
#define TB_ISBUTTONHIDDEN (WM_USER+12)
|
||||
#define TB_ISBUTTONINDETERMINATE (WM_USER+13)
|
||||
#define TB_ISBUTTONHIGHLIGHTED (WM_USER+14)
|
||||
#define TB_SETSTATE (WM_USER+17)
|
||||
#define TB_GETSTATE (WM_USER+18)
|
||||
#define TB_ADDBITMAP (WM_USER+19)
|
||||
#define TB_ADDBUTTONS32A (WM_USER+20)
|
||||
#define TB_ADDBUTTONS32W (WM_USER+68)
|
||||
#define TB_ADDBUTTONS WINELIB_NAME_AW(TB_ADDBUTTONS)
|
||||
#define TB_HITTEST (WM_USER+69)
|
||||
#define TB_INSERTBUTTON32A (WM_USER+21)
|
||||
#define TB_INSERTBUTTON32W (WM_USER+67)
|
||||
#define TB_INSERTBUTTON WINELIB_NAME_AW(TB_INSERTBUTTON)
|
||||
#define TB_DELETEBUTTON (WM_USER+22)
|
||||
#define TB_GETBUTTON (WM_USER+23)
|
||||
#define TB_BUTTONCOUNT (WM_USER+24)
|
||||
#define TB_COMMANDTOINDEX (WM_USER+25)
|
||||
#define TB_SAVERESTORE32A (WM_USER+26)
|
||||
#define TB_SAVERESTORE32W (WM_USER+76)
|
||||
#define TB_SAVERESTORE WINELIB_NAME_AW(TB_SAVERESTORE)
|
||||
#define TB_CUSTOMIZE (WM_USER+27)
|
||||
#define TB_ADDSTRING32A (WM_USER+28)
|
||||
#define TB_ADDSTRING32W (WM_USER+77)
|
||||
#define TB_ADDSTRING WINELIB_NAME_AW(TB_ADDSTRING)
|
||||
#define TB_GETITEMRECT (WM_USER+29)
|
||||
#define TB_BUTTONSTRUCTSIZE (WM_USER+30)
|
||||
#define TB_SETBUTTONSIZE (WM_USER+31)
|
||||
#define TB_SETBITMAPSIZE (WM_USER+32)
|
||||
#define TB_AUTOSIZE (WM_USER+33)
|
||||
#define TB_GETTOOLTIPS (WM_USER+35)
|
||||
#define TB_SETTOOLTIPS (WM_USER+36)
|
||||
#define TB_SETPARENT (WM_USER+37)
|
||||
#define TB_SETROWS (WM_USER+39)
|
||||
#define TB_GETROWS (WM_USER+40)
|
||||
#define TB_SETCMDID (WM_USER+42)
|
||||
#define TB_CHANGEBITMAP (WM_USER+43)
|
||||
#define TB_GETBITMAP (WM_USER+44)
|
||||
#define TB_GETBUTTONTEXT32A (WM_USER+45)
|
||||
#define TB_GETBUTTONTEXT32W (WM_USER+75)
|
||||
#define TB_GETBUTTONTEXT WINELIB_NAME_AW(TB_GETBUTTONTEXT)
|
||||
#define TB_REPLACEBITMAP (WM_USER+46)
|
||||
#define TB_SETINDENT (WM_USER+47)
|
||||
#define TB_SETIMAGELIST (WM_USER+48)
|
||||
#define TB_GETIMAGELIST (WM_USER+49)
|
||||
#define TB_LOADIMAGES (WM_USER+50)
|
||||
#define TB_GETRECT (WM_USER+51) /* wParam is the Cmd instead of index */
|
||||
#define TB_SETHOTIMAGELIST (WM_USER+52)
|
||||
#define TB_GETHOTIMAGELIST (WM_USER+53)
|
||||
#define TB_SETDISABLEDIMAGELIST (WM_USER+54)
|
||||
#define TB_GETDISABLEDIMAGELIST (WM_USER+55)
|
||||
#define TB_SETSTYLE (WM_USER+56)
|
||||
#define TB_GETSTYLE (WM_USER+57)
|
||||
#define TB_GETBUTTONSIZE (WM_USER+58)
|
||||
#define TB_SETBUTTONWIDTH (WM_USER+59)
|
||||
#define TB_SETMAXTEXTROWS (WM_USER+60)
|
||||
#define TB_GETTEXTROWS (WM_USER+61)
|
||||
|
||||
|
||||
/* This is just for old CreateToolbar. */
|
||||
/* Don't use it in new programs. */
|
||||
typedef struct _OLDTBBUTTON {
|
||||
INT32 iBitmap;
|
||||
INT32 idCommand;
|
||||
BYTE fsState;
|
||||
BYTE fsStyle;
|
||||
BYTE bReserved[2];
|
||||
DWORD dwData;
|
||||
} OLDTBBUTTON, *POLDTBBUTTON, *LPOLDTBBUTTON;
|
||||
typedef const OLDTBBUTTON *LPCOLDTBBUTTON;
|
||||
|
||||
|
||||
typedef struct _TBBUTTON {
|
||||
INT32 iBitmap;
|
||||
INT32 idCommand;
|
||||
BYTE fsState;
|
||||
BYTE fsStyle;
|
||||
BYTE bReserved[2];
|
||||
DWORD dwData;
|
||||
INT32 iString;
|
||||
} TBBUTTON, *PTBBUTTON, *LPTBBUTTON;
|
||||
typedef const TBBUTTON *LPCTBBUTTON;
|
||||
|
||||
|
||||
typedef struct _COLORMAP {
|
||||
COLORREF from;
|
||||
COLORREF to;
|
||||
} COLORMAP, *LPCOLORMAP;
|
||||
|
||||
typedef struct tagTBADDBITMAP {
|
||||
HINSTANCE32 hInst;
|
||||
UINT32 nID;
|
||||
} TBADDBITMAP, *LPTBADDBITMAP;
|
||||
|
||||
#define HINST_COMMCTRL ((HINSTANCE32)-1)
|
||||
|
||||
|
||||
HWND32 WINAPI
|
||||
CreateToolbar(HWND32, DWORD, UINT32, INT32, HINSTANCE32,
|
||||
UINT32, LPCOLDTBBUTTON, INT32);
|
||||
|
||||
HWND32 WINAPI
|
||||
CreateToolbarEx(HWND32, DWORD, UINT32, INT32,
|
||||
HINSTANCE32, UINT32, LPCTBBUTTON,
|
||||
INT32, INT32, INT32, INT32, INT32, UINT32);
|
||||
|
||||
HBITMAP32 WINAPI
|
||||
CreateMappedBitmap (HINSTANCE32, INT32, UINT32, LPCOLORMAP, INT32);
|
||||
|
||||
|
||||
|
||||
#endif /* __WINE_COMMCTRL_H */
|
||||
|
|
|
@ -113,8 +113,8 @@ typedef struct {
|
|||
LPCWSTR lpTemplateName;
|
||||
} OPENFILENAME32W,*LPOPENFILENAME32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(OPENFILENAME);
|
||||
DECL_WINELIB_TYPE_AW(LPOPENFILENAME);
|
||||
DECL_WINELIB_TYPE_AW(OPENFILENAME)
|
||||
DECL_WINELIB_TYPE_AW(LPOPENFILENAME)
|
||||
|
||||
typedef UINT32 (CALLBACK *LPCCHOOKPROC) (HWND32, UINT32, WPARAM32, LPARAM);
|
||||
|
||||
|
@ -157,8 +157,8 @@ typedef struct {
|
|||
} CHOOSECOLOR32W;
|
||||
typedef CHOOSECOLOR32W *LPCHOOSECOLOR32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(CHOOSECOLOR);
|
||||
DECL_WINELIB_TYPE_AW(LPCHOOSECOLOR);
|
||||
DECL_WINELIB_TYPE_AW(CHOOSECOLOR)
|
||||
DECL_WINELIB_TYPE_AW(LPCHOOSECOLOR)
|
||||
|
||||
|
||||
#define CC_RGBINIT 0x00000001
|
||||
|
@ -214,8 +214,8 @@ typedef struct {
|
|||
LPCWSTR lpTemplateName;
|
||||
} FINDREPLACE32W, *LPFINDREPLACE32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(FINDREPLACE);
|
||||
DECL_WINELIB_TYPE_AW(LPFINDREPLACE);
|
||||
DECL_WINELIB_TYPE_AW(FINDREPLACE)
|
||||
DECL_WINELIB_TYPE_AW(LPFINDREPLACE)
|
||||
|
||||
#define FR_DOWN 0x00000001
|
||||
#define FR_WHOLEWORD 0x00000002
|
||||
|
@ -303,8 +303,8 @@ typedef struct
|
|||
INT32 nSizeMax;
|
||||
} CHOOSEFONT32W, *LPCHOOSEFONT32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(CHOOSEFONT);
|
||||
DECL_WINELIB_TYPE_AW(LPCHOOSEFONT);
|
||||
DECL_WINELIB_TYPE_AW(CHOOSEFONT)
|
||||
DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
|
||||
|
||||
#pragma pack(4)
|
||||
|
||||
|
@ -433,8 +433,8 @@ typedef struct
|
|||
HGLOBAL32 hSetupTemplate;
|
||||
} PRINTDLG32W, *LPPRINTDLG32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(PRINTDLG);
|
||||
DECL_WINELIB_TYPE_AW(LPPRINTDLG);
|
||||
DECL_WINELIB_TYPE_AW(PRINTDLG)
|
||||
DECL_WINELIB_TYPE_AW(LPPRINTDLG)
|
||||
|
||||
#define PD_ALLPAGES 0x00000000
|
||||
#define PD_SELECTION 0x00000001
|
||||
|
|
|
@ -69,6 +69,9 @@
|
|||
/* Define if you have the strerror function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define if you have the stricmp function. */
|
||||
#undef HAVE_STRICMP
|
||||
|
||||
/* Define if you have the tcgetattr function. */
|
||||
#undef HAVE_TCGETATTR
|
||||
|
||||
|
|
|
@ -22,4 +22,7 @@
|
|||
#define CRTDLL_LEADBYTE 0x8000
|
||||
#define CRTDLL_ALPHA (0x0100|CRTDLL_UPPER|CRTDLL_LOWER)
|
||||
|
||||
#endif
|
||||
/* function prototypes used in crtdll.c */
|
||||
extern int LastErrorToErrno(DWORD);
|
||||
|
||||
#endif /* __WINE_CRTDLL_H */
|
||||
|
|
|
@ -25,7 +25,9 @@ extern void DC_UpdateXforms( DC * dc );
|
|||
|
||||
extern const int DC_XROPfunction[];
|
||||
|
||||
/* objects/clipping.c */
|
||||
INT32 CLIPPING_IntersectClipRect( DC * dc, INT32 left, INT32 top,
|
||||
INT32 right, INT32 bottom, UINT32 flags );
|
||||
INT32 right, INT32 bottom, UINT32 flags );
|
||||
extern void CLIPPING_UpdateGCRegion( DC * dc );
|
||||
|
||||
#endif /* __WINE_DC_H */
|
||||
|
|
|
@ -19,7 +19,7 @@ typedef HDDEDATA (CALLBACK *PFNCALLBACK16)(UINT16,UINT16,HCONV,HSZ,HSZ,
|
|||
HDDEDATA,DWORD,DWORD);
|
||||
typedef HDDEDATA (CALLBACK *PFNCALLBACK32)(UINT32,UINT32,HCONV,HSZ,HSZ,
|
||||
HDDEDATA,DWORD,DWORD);
|
||||
DECL_WINELIB_TYPE(PFNCALLBACK);
|
||||
DECL_WINELIB_TYPE(PFNCALLBACK)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -41,8 +41,8 @@ typedef struct
|
|||
DWORD dwSecurity;
|
||||
} CONVCONTEXT32, *LPCONVCONTEXT32;
|
||||
|
||||
DECL_WINELIB_TYPE(CONVCONTEXT);
|
||||
DECL_WINELIB_TYPE(LPCONVCONTEXT);
|
||||
DECL_WINELIB_TYPE(CONVCONTEXT)
|
||||
DECL_WINELIB_TYPE(LPCONVCONTEXT)
|
||||
|
||||
UINT16 WINAPI DdeInitialize16(LPDWORD,PFNCALLBACK16,DWORD,DWORD);
|
||||
UINT32 WINAPI DdeInitialize32A(LPDWORD,PFNCALLBACK32,DWORD,DWORD);
|
||||
|
@ -54,7 +54,9 @@ BOOL32 WINAPI DdeUninitialize32(DWORD);
|
|||
HCONVLIST WINAPI DdeConnectList16(DWORD,HSZ,HSZ,HCONVLIST,LPCONVCONTEXT16);
|
||||
HCONVLIST WINAPI DdeConnectList32(DWORD,HSZ,HSZ,HCONVLIST,LPCONVCONTEXT32);
|
||||
#define DdeConnectList WINELIB_NAME(DdeConnectList)
|
||||
HCONV WINAPI DdeQueryNextServer(HCONVLIST, HCONV);
|
||||
HCONV WINAPI DdeQueryNextServer16(HCONVLIST, HCONV);
|
||||
HCONV WINAPI DdeQueryNextServer32(HCONVLIST, HCONV);
|
||||
#define DdeQueryNextServer WINELIB_NAME(DdeQueryNextServer)
|
||||
BOOL16 WINAPI DdeDisconnectList16(HCONVLIST);
|
||||
BOOL32 WINAPI DdeDisconnectList32(HCONVLIST);
|
||||
#define DdeDisConnectList WINELIB_NAME(DdeDisconnectList)
|
||||
|
|
|
@ -668,7 +668,7 @@ typedef struct {
|
|||
|
||||
typedef BOOL32 (CALLBACK * LPDDENUMCALLBACK32A)(GUID *, LPSTR, LPSTR, LPVOID);
|
||||
typedef BOOL32 (CALLBACK * LPDDENUMCALLBACK32W)(GUID *, LPWSTR, LPWSTR, LPVOID);
|
||||
DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK);
|
||||
DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK)
|
||||
|
||||
typedef HRESULT (CALLBACK * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
|
||||
typedef HRESULT (CALLBACK * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
|
||||
|
@ -676,7 +676,7 @@ typedef HRESULT (CALLBACK * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDS
|
|||
typedef HANDLE32 HMONITOR;
|
||||
typedef BOOL32 (CALLBACK * LPDDENUMCALLBACKEX32A)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR);
|
||||
typedef BOOL32 (CALLBACK * LPDDENUMCALLBACKEX32W)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
|
||||
DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX);
|
||||
DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX)
|
||||
|
||||
HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEX32A lpCallback, LPVOID lpContext, DWORD dwFlags);
|
||||
HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEX32W lpCallback, LPVOID lpContext, DWORD dwFlags);
|
||||
|
|
179
include/debug.h
179
include/debug.h
|
@ -30,94 +30,97 @@
|
|||
#define dbch_ddraw 22
|
||||
#define dbch_debug 23
|
||||
#define dbch_dialog 24
|
||||
#define dbch_dll 25
|
||||
#define dbch_dosfs 26
|
||||
#define dbch_dosmem 27
|
||||
#define dbch_driver 28
|
||||
#define dbch_dsound 29
|
||||
#define dbch_edit 30
|
||||
#define dbch_event 31
|
||||
#define dbch_exec 32
|
||||
#define dbch_file 33
|
||||
#define dbch_fixup 34
|
||||
#define dbch_font 35
|
||||
#define dbch_gdi 36
|
||||
#define dbch_global 37
|
||||
#define dbch_graphics 38
|
||||
#define dbch_header 39
|
||||
#define dbch_heap 40
|
||||
#define dbch_hook 41
|
||||
#define dbch_icon 42
|
||||
#define dbch_imagelist 43
|
||||
#define dbch_int 44
|
||||
#define dbch_int21 45
|
||||
#define dbch_int31 46
|
||||
#define dbch_key 47
|
||||
#define dbch_keyboard 48
|
||||
#define dbch_ldt 49
|
||||
#define dbch_listbox 50
|
||||
#define dbch_local 51
|
||||
#define dbch_mci 52
|
||||
#define dbch_mcianim 53
|
||||
#define dbch_mciwave 54
|
||||
#define dbch_mdi 55
|
||||
#define dbch_menu 56
|
||||
#define dbch_message 57
|
||||
#define dbch_metafile 58
|
||||
#define dbch_midi 59
|
||||
#define dbch_mmaux 60
|
||||
#define dbch_mmio 61
|
||||
#define dbch_mmsys 62
|
||||
#define dbch_mmtime 63
|
||||
#define dbch_module 64
|
||||
#define dbch_mpr 65
|
||||
#define dbch_msg 66
|
||||
#define dbch_nonclient 67
|
||||
#define dbch_ntdll 68
|
||||
#define dbch_ole 69
|
||||
#define dbch_palette 70
|
||||
#define dbch_print 71
|
||||
#define dbch_profile 72
|
||||
#define dbch_progress 73
|
||||
#define dbch_prop 74
|
||||
#define dbch_reg 75
|
||||
#define dbch_region 76
|
||||
#define dbch_relay 77
|
||||
#define dbch_resource 78
|
||||
#define dbch_scroll 79
|
||||
#define dbch_security 80
|
||||
#define dbch_segment 81
|
||||
#define dbch_selector 82
|
||||
#define dbch_sem 83
|
||||
#define dbch_sendmsg 84
|
||||
#define dbch_shell 85
|
||||
#define dbch_shm 86
|
||||
#define dbch_sound 87
|
||||
#define dbch_static 88
|
||||
#define dbch_status 89
|
||||
#define dbch_stress 90
|
||||
#define dbch_string 91
|
||||
#define dbch_system 92
|
||||
#define dbch_task 93
|
||||
#define dbch_text 94
|
||||
#define dbch_thread 95
|
||||
#define dbch_thunk 96
|
||||
#define dbch_timer 97
|
||||
#define dbch_toolhelp 98
|
||||
#define dbch_tweak 99
|
||||
#define dbch_uitools 100
|
||||
#define dbch_updown 101
|
||||
#define dbch_ver 102
|
||||
#define dbch_virtual 103
|
||||
#define dbch_vxd 104
|
||||
#define dbch_win 105
|
||||
#define dbch_win16drv 106
|
||||
#define dbch_win32 107
|
||||
#define dbch_wing 108
|
||||
#define dbch_winsock 109
|
||||
#define dbch_wnet 110
|
||||
#define dbch_x11 111
|
||||
#define dbch_x11drv 112
|
||||
#define dbch_dinput 25
|
||||
#define dbch_dll 26
|
||||
#define dbch_dosfs 27
|
||||
#define dbch_dosmem 28
|
||||
#define dbch_driver 29
|
||||
#define dbch_dsound 30
|
||||
#define dbch_edit 31
|
||||
#define dbch_event 32
|
||||
#define dbch_exec 33
|
||||
#define dbch_file 34
|
||||
#define dbch_fixup 35
|
||||
#define dbch_font 36
|
||||
#define dbch_gdi 37
|
||||
#define dbch_global 38
|
||||
#define dbch_graphics 39
|
||||
#define dbch_header 40
|
||||
#define dbch_heap 41
|
||||
#define dbch_hook 42
|
||||
#define dbch_icon 43
|
||||
#define dbch_imagelist 44
|
||||
#define dbch_int 45
|
||||
#define dbch_int21 46
|
||||
#define dbch_int31 47
|
||||
#define dbch_key 48
|
||||
#define dbch_keyboard 49
|
||||
#define dbch_ldt 50
|
||||
#define dbch_listbox 51
|
||||
#define dbch_local 52
|
||||
#define dbch_mci 53
|
||||
#define dbch_mcianim 54
|
||||
#define dbch_mciwave 55
|
||||
#define dbch_mdi 56
|
||||
#define dbch_menu 57
|
||||
#define dbch_message 58
|
||||
#define dbch_metafile 59
|
||||
#define dbch_midi 60
|
||||
#define dbch_mmaux 61
|
||||
#define dbch_mmio 62
|
||||
#define dbch_mmsys 63
|
||||
#define dbch_mmtime 64
|
||||
#define dbch_module 65
|
||||
#define dbch_mpr 66
|
||||
#define dbch_msg 67
|
||||
#define dbch_nonclient 68
|
||||
#define dbch_ntdll 69
|
||||
#define dbch_ole 70
|
||||
#define dbch_palette 71
|
||||
#define dbch_print 72
|
||||
#define dbch_process 73
|
||||
#define dbch_profile 74
|
||||
#define dbch_progress 75
|
||||
#define dbch_prop 76
|
||||
#define dbch_reg 77
|
||||
#define dbch_region 78
|
||||
#define dbch_relay 79
|
||||
#define dbch_resource 80
|
||||
#define dbch_scroll 81
|
||||
#define dbch_security 82
|
||||
#define dbch_segment 83
|
||||
#define dbch_selector 84
|
||||
#define dbch_sem 85
|
||||
#define dbch_sendmsg 86
|
||||
#define dbch_shell 87
|
||||
#define dbch_shm 88
|
||||
#define dbch_sound 89
|
||||
#define dbch_static 90
|
||||
#define dbch_stress 91
|
||||
#define dbch_string 92
|
||||
#define dbch_syscolor 93
|
||||
#define dbch_system 94
|
||||
#define dbch_task 95
|
||||
#define dbch_text 96
|
||||
#define dbch_thread 97
|
||||
#define dbch_thunk 98
|
||||
#define dbch_timer 99
|
||||
#define dbch_toolbar 100
|
||||
#define dbch_toolhelp 101
|
||||
#define dbch_tweak 102
|
||||
#define dbch_uitools 103
|
||||
#define dbch_updown 104
|
||||
#define dbch_ver 105
|
||||
#define dbch_virtual 106
|
||||
#define dbch_vxd 107
|
||||
#define dbch_win 108
|
||||
#define dbch_win16drv 109
|
||||
#define dbch_win32 110
|
||||
#define dbch_wing 111
|
||||
#define dbch_winsock 112
|
||||
#define dbch_wnet 113
|
||||
#define dbch_x11 114
|
||||
#define dbch_x11drv 115
|
||||
/* Definitions for classes identifiers */
|
||||
#define dbcl_fixme 0
|
||||
#define dbcl_err 1
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "debugtools.h"
|
||||
#endif
|
||||
|
||||
#define DEBUG_CHANNEL_COUNT 113
|
||||
#define DEBUG_CHANNEL_COUNT 116
|
||||
#ifdef DEBUG_RUNTIME
|
||||
short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
|
||||
{1, 1, 0, 0},
|
||||
|
@ -120,6 +120,9 @@ short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
|
|||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
};
|
||||
const char* debug_ch_name[] = {
|
||||
"accel",
|
||||
|
@ -147,6 +150,7 @@ const char* debug_ch_name[] = {
|
|||
"ddraw",
|
||||
"debug",
|
||||
"dialog",
|
||||
"dinput",
|
||||
"dll",
|
||||
"dosfs",
|
||||
"dosmem",
|
||||
|
@ -194,6 +198,7 @@ const char* debug_ch_name[] = {
|
|||
"ole",
|
||||
"palette",
|
||||
"print",
|
||||
"process",
|
||||
"profile",
|
||||
"progress",
|
||||
"prop",
|
||||
|
@ -211,15 +216,16 @@ const char* debug_ch_name[] = {
|
|||
"shm",
|
||||
"sound",
|
||||
"static",
|
||||
"status",
|
||||
"stress",
|
||||
"string",
|
||||
"syscolor",
|
||||
"system",
|
||||
"task",
|
||||
"text",
|
||||
"thread",
|
||||
"thunk",
|
||||
"timer",
|
||||
"toolbar",
|
||||
"toolhelp",
|
||||
"tweak",
|
||||
"uitools",
|
||||
|
|
|
@ -155,8 +155,8 @@ typedef struct {
|
|||
WORD wReserved;
|
||||
#endif /* DIRECTINPUT_VERSION >= 0x0500 */
|
||||
} DIDEVICEOBJECTINSTANCE32W, *LPDIDEVICEOBJECTINSTANCE32W,*LPCDIDEVICEOBJECTINSTANCE32W;
|
||||
DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE);
|
||||
DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE);
|
||||
DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE)
|
||||
DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE)
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
@ -186,17 +186,17 @@ typedef struct {
|
|||
WORD wUsage;
|
||||
#endif /* DIRECTINPUT_VERSION >= 0x0500 */
|
||||
} DIDEVICEINSTANCE32W, *LPDIDEVICEINSTANCE32W, *LPCDIDEVICEINSTANCE32W;
|
||||
DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE);
|
||||
DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE);
|
||||
DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE);
|
||||
DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE)
|
||||
DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE)
|
||||
DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE)
|
||||
|
||||
typedef BOOL32 (CALLBACK * LPDIENUMDEVICESCALLBACK32A)(LPCDIDEVICEINSTANCE32A,LPVOID);
|
||||
typedef BOOL32 (CALLBACK * LPDIENUMDEVICESCALLBACK32W)(LPCDIDEVICEINSTANCE32W,LPVOID);
|
||||
DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK);
|
||||
DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK)
|
||||
|
||||
typedef BOOL32 (CALLBACK * LPDIENUMDEVICEOBJECTSCALLBACK32A)(LPCDIDEVICEOBJECTINSTANCE32A, LPVOID);
|
||||
typedef BOOL32 (CALLBACK * LPDIENUMDEVICEOBJECTSCALLBACK32W)(LPCDIDEVICEOBJECTINSTANCE32W,LPVOID);
|
||||
DECL_WINELIB_TYPE_AW(LPDIENUMDEVICEOBJECTSCALLBACK);
|
||||
DECL_WINELIB_TYPE_AW(LPDIENUMDEVICEOBJECTSCALLBACK)
|
||||
|
||||
#define DIK_ESCAPE 0x01
|
||||
#define DIK_1 0x02
|
||||
|
|
|
@ -246,10 +246,34 @@ struct IDirectSoundNotify {
|
|||
LPDIRECTSOUNDBUFFER dsb;
|
||||
};
|
||||
#undef THIS
|
||||
|
||||
#undef STDMETHOD
|
||||
#undef STDMETHOD_
|
||||
#undef PURE
|
||||
#undef FAR
|
||||
#undef THIS_
|
||||
|
||||
/* DirectPlayLobby stuff */
|
||||
/* {AF465C71-9588-11cf-A020-00AA006157AC} */
|
||||
DEFINE_GUID(IID_IDirectPlayLobby, 0xaf465c71, 0x9588, 0x11cf, 0xa0, 0x20, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac);
|
||||
/* {26C66A70-B367-11cf-A024-00AA006157AC} */
|
||||
DEFINE_GUID(IID_IDirectPlayLobbyA, 0x26c66a70, 0xb367, 0x11cf, 0xa0, 0x24, 0x0, 0xaa, 0x0, 0x61, 0x57, 0xac);
|
||||
/* {0194C220-A303-11d0-9C4F-00A0C905425E} */
|
||||
DEFINE_GUID(IID_IDirectPlayLobby2, 0x194c220, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
|
||||
/* {1BB4AF80-A303-11d0-9C4F-00A0C905425E} */
|
||||
DEFINE_GUID(IID_IDirectPlayLobby2A, 0x1bb4af80, 0xa303, 0x11d0, 0x9c, 0x4f, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
|
||||
/* {2FE8F810-B2A5-11d0-A787-0000F803ABFC} */
|
||||
DEFINE_GUID(CLSID_DirectPlayLobby, 0x2fe8f810, 0xb2a5, 0x11d0, 0xa7, 0x87, 0x0, 0x0, 0xf8, 0x3, 0xab, 0xfc);
|
||||
|
||||
typedef struct IDirectPlayLobby *LPDIRECTPLAYLOBBY;
|
||||
typedef struct IDirectPlayLobby *LPDIRECTPLAYLOBBYA;
|
||||
typedef struct IDirectPlayLobby IDirectPlayLobbyA;
|
||||
|
||||
typedef struct IDirectPlayLobby2 *LPDIRECTPLAYLOBBY2;
|
||||
typedef struct IDirectPlayLobby2 *LPDIRECTPLAYLOBBY2A;
|
||||
typedef struct IDirectPlayLobby2 IDirectPlayLobby2A;
|
||||
|
||||
extern HRESULT WINAPI DirectPlayLobbyCreateW(LPGUID, LPDIRECTPLAYLOBBY *, IUnknown *, LPVOID, DWORD );
|
||||
|
||||
extern HRESULT WINAPI DirectPlayLobbyCreateA(LPGUID, LPDIRECTPLAYLOBBYA *, IUnknown *, LPVOID, DWORD );
|
||||
|
||||
#endif
|
||||
|
|
|
@ -32,13 +32,6 @@ typedef struct __EXCEPTION_FRAME
|
|||
PEXCEPTION_HANDLER Handler;
|
||||
} EXCEPTION_FRAME, *PEXCEPTION_FRAME;
|
||||
|
||||
/*
|
||||
* Function definitions
|
||||
*/
|
||||
|
||||
void WINAPI RaiseException(DWORD exccode, DWORD excflags,
|
||||
DWORD nargs, const LPDWORD pargs,
|
||||
PCONTEXT pcontext /* Wine additional parameter */);
|
||||
|
||||
/*
|
||||
* this undocumented function is called when an exception
|
||||
|
@ -53,11 +46,9 @@ void WINAPI RaiseException(DWORD exccode, DWORD excflags,
|
|||
* a fourth parameter, that is used as the eax in the
|
||||
* context.
|
||||
*/
|
||||
|
||||
void WINAPI RtlUnwind( PEXCEPTION_FRAME pestframe,
|
||||
LPVOID unusedEIP,
|
||||
PEXCEPTION_RECORD pexcrec,
|
||||
DWORD contextEAX,
|
||||
PCONTEXT pcontext /* Wine additional parameter */ );
|
||||
DWORD contextEAX );
|
||||
|
||||
#endif /* __WINE_EXCEPT_H */
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
* Win95 Flat Thunk data structures
|
||||
*
|
||||
* Copyright 1998 Ulrich Weigand
|
||||
*/
|
||||
|
||||
#ifndef __WINE_FLATTHUNK_H
|
||||
#define __WINE_FLATTHUNK_H
|
||||
|
||||
struct ThunkDataCommon
|
||||
{
|
||||
char magic[4]; /* 00 */
|
||||
DWORD checksum; /* 04 */
|
||||
};
|
||||
|
||||
struct ThunkDataLS16
|
||||
{
|
||||
struct ThunkDataCommon common; /* 00 */
|
||||
SEGPTR targetTable; /* 08 */
|
||||
DWORD firstTime; /* 0C */
|
||||
};
|
||||
|
||||
struct ThunkDataLS32
|
||||
{
|
||||
struct ThunkDataCommon common; /* 00 */
|
||||
DWORD * targetTable; /* 08 */
|
||||
char lateBinding[4]; /* 0C */
|
||||
DWORD flags; /* 10 */
|
||||
DWORD reserved1; /* 14 */
|
||||
DWORD reserved2; /* 18 */
|
||||
DWORD offsetQTThunk; /* 1C */
|
||||
DWORD offsetFTProlog; /* 20 */
|
||||
};
|
||||
|
||||
struct ThunkDataSL16
|
||||
{
|
||||
struct ThunkDataCommon common; /* 00 */
|
||||
DWORD flags1; /* 08 */
|
||||
DWORD reserved1; /* 0C */
|
||||
struct ThunkDataSL * fpData; /* 10 */
|
||||
SEGPTR spData; /* 14 */
|
||||
DWORD reserved2; /* 18 */
|
||||
char lateBinding[4]; /* 1C */
|
||||
DWORD flags2; /* 20 */
|
||||
DWORD reserved3; /* 20 */
|
||||
SEGPTR apiDatabase; /* 28 */
|
||||
};
|
||||
|
||||
struct ThunkDataSL32
|
||||
{
|
||||
struct ThunkDataCommon common; /* 00 */
|
||||
DWORD reserved1; /* 08 */
|
||||
struct ThunkDataSL * data; /* 0C */
|
||||
char lateBinding[4]; /* 10 */
|
||||
DWORD flags; /* 14 */
|
||||
DWORD reserved2; /* 18 */
|
||||
DWORD reserved3; /* 1C */
|
||||
DWORD offsetTargetTable; /* 20 */
|
||||
};
|
||||
|
||||
struct ThunkDataSL
|
||||
{
|
||||
#if 0
|
||||
This structure differs from the Win95 original,
|
||||
but this should not matter since it is strictly internal to
|
||||
the thunk handling routines in KRNL386 / KERNEL32.
|
||||
|
||||
For reference, here is the Win95 layout:
|
||||
|
||||
struct ThunkDataCommon common; /* 00 */
|
||||
DWORD flags1; /* 08 */
|
||||
SEGPTR apiDatabase; /* 0C */
|
||||
WORD exePtr; /* 10 */
|
||||
WORD segMBA; /* 12 */
|
||||
DWORD lenMBATotal; /* 14 */
|
||||
DWORD lenMBAUsed; /* 18 */
|
||||
DWORD flags2; /* 1C */
|
||||
char pszDll16[256]; /* 20 */
|
||||
char pszDll32[256]; /*120 */
|
||||
|
||||
We do it differently since all our thunk handling is done
|
||||
by 32-bit code. Therefore we do not need do provide
|
||||
easy access to this data, especially the process target
|
||||
table database, for 16-bit code.
|
||||
#endif
|
||||
|
||||
struct ThunkDataCommon common;
|
||||
DWORD flags1;
|
||||
struct SLApiDB * apiDB;
|
||||
struct SLTargetDB * targetDB;
|
||||
DWORD flags2;
|
||||
char pszDll16[256];
|
||||
char pszDll32[256];
|
||||
};
|
||||
|
||||
struct SLTargetDB
|
||||
{
|
||||
struct SLTargetDB * next;
|
||||
PDB32 * process;
|
||||
DWORD * targetTable;
|
||||
};
|
||||
|
||||
struct SLApiDB
|
||||
{
|
||||
DWORD nrArgBytes;
|
||||
DWORD errorReturnValue;
|
||||
};
|
||||
|
||||
|
||||
#endif /* __WINE_FLATTHUNK_H */
|
||||
|
|
@ -429,6 +429,8 @@ extern BOOL32 DRIVER_RegisterDriver( LPCSTR name, const DC_FUNCTIONS *funcs );
|
|||
extern const DC_FUNCTIONS *DRIVER_FindDriver( LPCSTR name );
|
||||
extern BOOL32 DRIVER_UnregisterDriver( LPCSTR name );
|
||||
|
||||
extern BOOL32 DIB_Init(void);
|
||||
|
||||
extern Display * display;
|
||||
extern Screen * screen;
|
||||
extern Window rootWindow;
|
||||
|
|
|
@ -28,6 +28,7 @@ extern HGLOBAL16 GLOBAL_Alloc( WORD flags, DWORD size, HGLOBAL16 hOwner,
|
|||
extern WORD GlobalHandleToSel( HGLOBAL16 handle );
|
||||
|
||||
/* memory/virtual.c */
|
||||
extern BOOL32 VIRTUAL_Init( void );
|
||||
extern DWORD VIRTUAL_GetPageSize(void);
|
||||
extern DWORD VIRTUAL_GetGranularity(void);
|
||||
|
||||
|
|
|
@ -107,6 +107,8 @@ LPMALLOC16 IMalloc16_Constructor();
|
|||
LPMALLOC32 IMalloc32_Constructor();
|
||||
#endif
|
||||
|
||||
HRESULT WINAPI CoGetMalloc32(DWORD, LPMALLOC32*);
|
||||
|
||||
#undef STDMETHOD
|
||||
#undef STDMETHOD_
|
||||
#undef PURE
|
||||
|
|
|
@ -10,4 +10,7 @@ extern void MAIN_Usage(char*);
|
|||
extern BOOL32 MAIN_UserInit(void);
|
||||
extern BOOL32 MAIN_WineInit( int *argc, char *argv[] );
|
||||
|
||||
extern BOOL32 RELAY_Init(void);
|
||||
extern void* CALL32_Init(void);
|
||||
|
||||
#endif /* __WINE_MAIN_H */
|
||||
|
|
|
@ -9,6 +9,7 @@ extern BOOL32 MENU_Init(void);
|
|||
extern HMENU32 MENU_GetSysMenu(HWND32 hWndOwner, HMENU32 hSysPopup);
|
||||
extern UINT32 MENU_GetMenuBarHeight( HWND32 hwnd, UINT32 menubarWidth,
|
||||
INT32 orgX, INT32 orgY );
|
||||
extern BOOL32 MENU_PatchResidentPopup( HQUEUE16, WND* );
|
||||
extern void MENU_TrackMouseMenuBar( WND *wnd, INT32 ht, POINT32 pt );
|
||||
extern void MENU_TrackKbdMenuBar( WND *wnd, UINT32 wParam, INT32 vkey );
|
||||
extern UINT32 MENU_DrawMenuBar( HDC32 hDC, LPRECT32 lprect,
|
||||
|
|
|
@ -31,6 +31,10 @@ extern BOOL32 TIMER_GetTimerMsg( MSG16 *msg, HWND32 hwnd,
|
|||
#define EVENT_IO_EXCEPT 2
|
||||
|
||||
/* event.c */
|
||||
extern void EVENT_AddIO( int fd, unsigned flag );
|
||||
extern BOOL32 EVENT_CheckFocus( void );
|
||||
extern void EVENT_DeleteIO( int fd, unsigned flag );
|
||||
extern BOOL32 EVENT_Init( void );
|
||||
extern BOOL32 EVENT_WaitNetEvent( BOOL32 sleep, BOOL32 peek );
|
||||
extern void EVENT_Synchronize(void);
|
||||
extern void EVENT_ProcessEvent( XEvent *event );
|
||||
|
@ -40,4 +44,6 @@ extern void EVENT_DummyMotionNotify(void);
|
|||
extern HWND32 EVENT_Capture( HWND32, INT16 );
|
||||
extern INT16 EVENT_GetCaptureInfo(void);
|
||||
|
||||
extern void joySendMessages(void);
|
||||
|
||||
#endif /* __WINE_MESSAGE_H */
|
||||
|
|
|
@ -24,13 +24,13 @@ typedef WORD VERSION; /* major (high byte), minor (low byte) */
|
|||
|
||||
typedef UINT16 MMVERSION16;
|
||||
typedef UINT32 MMVERSION32;
|
||||
DECL_WINELIB_TYPE(MMVERSION);
|
||||
DECL_WINELIB_TYPE(MMVERSION)
|
||||
typedef UINT16 MCIDEVICEID16;
|
||||
typedef UINT32 MCIDEVICEID32;
|
||||
DECL_WINELIB_TYPE(MCIDEVICEID);
|
||||
DECL_WINELIB_TYPE(MCIDEVICEID)
|
||||
typedef UINT16 MMRESULT16;
|
||||
typedef UINT32 MMRESULT32;
|
||||
DECL_WINELIB_TYPE(MMRESULT);
|
||||
DECL_WINELIB_TYPE(MMRESULT)
|
||||
|
||||
typedef struct {
|
||||
UINT16 wType; /* indicates the contents of the union */
|
||||
|
@ -72,8 +72,8 @@ typedef struct {
|
|||
} midi;
|
||||
} u;
|
||||
} MMTIME32, *LPMMTIME32;
|
||||
DECL_WINELIB_TYPE(MMTIME);
|
||||
DECL_WINELIB_TYPE(LPMMTIME);
|
||||
DECL_WINELIB_TYPE(MMTIME)
|
||||
DECL_WINELIB_TYPE(LPMMTIME)
|
||||
|
||||
#define TIME_MS 0x0001 /* time in milliseconds */
|
||||
#define TIME_SAMPLES 0x0002 /* number of wave samples */
|
||||
|
@ -261,8 +261,8 @@ typedef struct {
|
|||
WORD wReserved1; /* padding */
|
||||
DWORD dwSupport; /* functionality supported by driver */
|
||||
} WAVEOUTCAPS32W, *LPWAVEOUTCAPS32W;
|
||||
DECL_WINELIB_TYPE_AW(WAVEOUTCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPWAVEOUTCAPS);
|
||||
DECL_WINELIB_TYPE_AW(WAVEOUTCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPWAVEOUTCAPS)
|
||||
|
||||
#define WAVECAPS_PITCH 0x0001 /* supports pitch control */
|
||||
#define WAVECAPS_PLAYBACKRATE 0x0002 /* supports playback rate control */
|
||||
|
@ -297,8 +297,8 @@ typedef struct {
|
|||
WORD wChannels; /* number of channels supported */
|
||||
WORD wReserved1;
|
||||
} WAVEINCAPS32W, *LPWAVEINCAPS32W;
|
||||
DECL_WINELIB_TYPE_AW(WAVEINCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPWAVEINCAPS);
|
||||
DECL_WINELIB_TYPE_AW(WAVEINCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPWAVEINCAPS)
|
||||
|
||||
#define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */
|
||||
#define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */
|
||||
|
@ -530,8 +530,8 @@ typedef struct {
|
|||
DWORD dwSupport; /* functionality supported by driver */
|
||||
} MIDIOUTCAPS32W, *LPMIDIOUTCAPS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIDIOUTCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPMIDIOUTCAPS);
|
||||
DECL_WINELIB_TYPE_AW(MIDIOUTCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPMIDIOUTCAPS)
|
||||
|
||||
#define MOD_MIDIPORT 1 /* output port */
|
||||
#define MOD_SYNTH 2 /* generic internal synth */
|
||||
|
@ -567,8 +567,8 @@ typedef struct {
|
|||
DWORD dwSupport; /* included in win95 and higher */
|
||||
} MIDIINCAPS32W, *LPMIDIINCAPS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIDIINCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPMIDIINCAPS);
|
||||
DECL_WINELIB_TYPE_AW(MIDIINCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPMIDIINCAPS)
|
||||
|
||||
typedef struct {
|
||||
LPSTR lpData; /* pointer to locked data block */
|
||||
|
@ -741,7 +741,7 @@ DWORD WINAPI auxOutMessage32(UINT32,UINT32,DWORD,DWORD);
|
|||
|
||||
typedef void (CALLBACK *LPTIMECALLBACK16)(UINT16 uTimerID, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
|
||||
typedef void (CALLBACK *LPTIMECALLBACK32)(UINT32 uTimerID, UINT32 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
|
||||
DECL_WINELIB_TYPE(LPTIMECALLBACK);
|
||||
DECL_WINELIB_TYPE(LPTIMECALLBACK)
|
||||
|
||||
#define TIME_ONESHOT 0 /* program timer for single event */
|
||||
#define TIME_PERIODIC 1 /* program for continuous periodic event */
|
||||
|
@ -756,8 +756,8 @@ typedef struct {
|
|||
UINT32 wPeriodMax;
|
||||
} TIMECAPS32, *LPTIMECAPS32;
|
||||
|
||||
DECL_WINELIB_TYPE(TIMECAPS);
|
||||
DECL_WINELIB_TYPE(LPTIMECAPS);
|
||||
DECL_WINELIB_TYPE(TIMECAPS)
|
||||
DECL_WINELIB_TYPE(LPTIMECAPS)
|
||||
|
||||
MMRESULT16 WINAPI timeGetSystemTime16(LPMMTIME16,UINT16);
|
||||
MMRESULT32 WINAPI timeGetSystemTime32(LPMMTIME32,UINT32);
|
||||
|
@ -922,8 +922,8 @@ typedef struct {
|
|||
WCHAR szRegKey[MAXPNAMELEN];
|
||||
WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
|
||||
} JOYCAPS32W, *LPJOYCAPS32W;
|
||||
DECL_WINELIB_TYPE_AW(JOYCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPJOYCAPS);
|
||||
DECL_WINELIB_TYPE_AW(JOYCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPJOYCAPS)
|
||||
|
||||
typedef struct {
|
||||
UINT16 wXpos; /* x position */
|
||||
|
@ -955,8 +955,8 @@ typedef struct {
|
|||
DWORD dwReserved2; /* reserved for future expansion */
|
||||
} JOYINFOEX,*LPJOYINFOEX;
|
||||
|
||||
DECL_WINELIB_TYPE(JOYINFO);
|
||||
DECL_WINELIB_TYPE(LPJOYINFO);
|
||||
DECL_WINELIB_TYPE(JOYINFO)
|
||||
DECL_WINELIB_TYPE(LPJOYINFO)
|
||||
|
||||
MMRESULT16 WINAPI joyGetDevCaps16 (UINT16,LPJOYCAPS16 ,UINT16);
|
||||
MMRESULT32 WINAPI joyGetDevCaps32A(UINT32,LPJOYCAPS32A,UINT32);
|
||||
|
@ -1009,8 +1009,8 @@ typedef struct {
|
|||
DWORD cDestinations;
|
||||
} MIXERCAPS32W,*LPMIXERCAPS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIXERCAPS);
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCAPS);
|
||||
DECL_WINELIB_TYPE_AW(MIXERCAPS)
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCAPS)
|
||||
|
||||
#define MIXER_SHORT_NAME_CHARS 16
|
||||
#define MIXER_LONG_NAME_CHARS 64
|
||||
|
@ -1125,8 +1125,8 @@ typedef struct {
|
|||
} Target;
|
||||
} MIXERLINE32W, *LPMIXERLINE32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIXERLINE);
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERLINE);
|
||||
DECL_WINELIB_TYPE_AW(MIXERLINE)
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERLINE)
|
||||
|
||||
/* MIXERCONTROL.fdwControl */
|
||||
#define MIXERCONTROL_CONTROLF_UNIFORM 0x00000001L
|
||||
|
@ -1276,8 +1276,8 @@ typedef struct {
|
|||
} Metrics;
|
||||
} MIXERCONTROL32W, *LPMIXERCONTROL32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIXERCONTROL);
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCONTROL);
|
||||
DECL_WINELIB_TYPE_AW(MIXERCONTROL)
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCONTROL)
|
||||
|
||||
typedef struct {
|
||||
DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */
|
||||
|
@ -1315,8 +1315,8 @@ typedef struct {
|
|||
LPMIXERCONTROL32W pamxctrl;
|
||||
} MIXERLINECONTROLS32W, *LPMIXERLINECONTROLS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIXERLINECONTROLS);
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERLINECONTROLS);
|
||||
DECL_WINELIB_TYPE_AW(MIXERLINECONTROLS)
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERLINECONTROLS)
|
||||
|
||||
typedef struct {
|
||||
DWORD cbStruct; /* size in bytes of MIXERCONTROLDETAILS */
|
||||
|
@ -1342,8 +1342,8 @@ typedef struct {
|
|||
LPVOID paDetails;
|
||||
} MIXERCONTROLDETAILS32,*LPMIXERCONTROLDETAILS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MIXERCONTROLDETAILS);
|
||||
DECL_WINELIB_TYPE(LPMIXERCONTROLDETAILS);
|
||||
DECL_WINELIB_TYPE(MIXERCONTROLDETAILS)
|
||||
DECL_WINELIB_TYPE(LPMIXERCONTROLDETAILS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwParam1;
|
||||
|
@ -1363,8 +1363,8 @@ typedef struct {
|
|||
WCHAR szName[MIXER_LONG_NAME_CHARS];
|
||||
} MIXERCONTROLDETAILS_LISTTEXT32W,*LPMIXERCONTROLDETAILS_LISTTEXT32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MIXERCONTROLDETAILS_LISTTEXT);
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCONTROLDETAILS_LISTTEXT);
|
||||
DECL_WINELIB_TYPE_AW(MIXERCONTROLDETAILS_LISTTEXT)
|
||||
DECL_WINELIB_TYPE_AW(LPMIXERCONTROLDETAILS_LISTTEXT)
|
||||
|
||||
/* MIXER_GETCONTROLDETAILSF_VALUE */
|
||||
typedef struct {
|
||||
|
@ -1458,7 +1458,7 @@ typedef LONG (CALLBACK *LPMMIOPROC16)(LPSTR lpmmioinfo, UINT16 uMessage,
|
|||
LPARAM lParam1, LPARAM lParam2);
|
||||
typedef LONG (CALLBACK *LPMMIOPROC32)(LPSTR lpmmioinfo, UINT32 uMessage,
|
||||
LPARAM lParam1, LPARAM lParam2);
|
||||
DECL_WINELIB_TYPE(LPMMIOPROC);
|
||||
DECL_WINELIB_TYPE(LPMMIOPROC)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwFlags; /* general status flags */
|
||||
|
@ -1916,8 +1916,8 @@ typedef struct {
|
|||
LPWSTR lpstrAlias;
|
||||
} MCI_OPEN_PARMS32W, *LPMCI_OPEN_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_OPEN_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OPEN_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -1955,8 +1955,8 @@ typedef struct {
|
|||
DWORD dwRetSize;
|
||||
} MCI_INFO_PARMS32W, *LPMCI_INFO_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_INFO_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_INFO_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_INFO_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_INFO_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -1989,8 +1989,8 @@ typedef struct {
|
|||
UINT32 wDeviceType;
|
||||
} MCI_SYSINFO_PARMS32W, *LPMCI_SYSINFO_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_SYSINFO_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_SYSINFO_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_SYSINFO_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_SYSINFO_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2012,8 +2012,8 @@ typedef struct {
|
|||
HWND32 hwndBreak;
|
||||
} MCI_BREAK_PARMS32, *LPMCI_BREAK_PARMS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MCI_BREAK_PARMS);
|
||||
DECL_WINELIB_TYPE(LPMCI_BREAK_PARMS);
|
||||
DECL_WINELIB_TYPE(MCI_BREAK_PARMS)
|
||||
DECL_WINELIB_TYPE(LPMCI_BREAK_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2040,8 +2040,8 @@ typedef struct {
|
|||
LPCWSTR lpfilename;
|
||||
} MCI_LOAD_PARMS32W, *LPMCI_LOAD_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_LOAD_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_LOAD_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_LOAD_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_LOAD_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2114,8 +2114,8 @@ typedef struct {
|
|||
LPCWSTR lpstrCommand;
|
||||
} MCI_VD_ESCAPE_PARMS32W, *LPMCI_VD_ESCAPE_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_VD_ESCAPE_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_VD_ESCAPE_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_VD_ESCAPE_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_VD_ESCAPE_PARMS)
|
||||
|
||||
#define MCI_WAVE_OPEN_BUFFER 0x00010000L
|
||||
|
||||
|
@ -2171,8 +2171,8 @@ typedef struct {
|
|||
DWORD dwBufferSeconds;
|
||||
} MCI_WAVE_OPEN_PARMS32W, *LPMCI_WAVE_OPEN_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_WAVE_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_WAVE_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_WAVE_OPEN_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_WAVE_OPEN_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2214,8 +2214,8 @@ typedef struct {
|
|||
UINT32 wBitsPerSample;
|
||||
} MCI_WAVE_SET_PARMS32, * LPMCI_WAVE_SET_PARMS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MCI_WAVE_SET_PARMS);
|
||||
DECL_WINELIB_TYPE(LPMCI_WAVE_SET_PARMS);
|
||||
DECL_WINELIB_TYPE(MCI_WAVE_SET_PARMS)
|
||||
DECL_WINELIB_TYPE(LPMCI_WAVE_SET_PARMS)
|
||||
|
||||
#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET)
|
||||
#define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET)
|
||||
|
@ -2334,8 +2334,8 @@ typedef struct {
|
|||
HWND32 hWndParent;
|
||||
} MCI_ANIM_OPEN_PARMS32W, *LPMCI_ANIM_OPEN_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_ANIM_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_ANIM_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_ANIM_OPEN_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_ANIM_OPEN_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2372,8 +2372,8 @@ typedef struct {
|
|||
LPCWSTR lpstrText;
|
||||
} MCI_ANIM_WINDOW_PARMS32W, *LPMCI_ANIM_WINDOW_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_ANIM_WINDOW_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_ANIM_WINDOW_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_ANIM_WINDOW_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_ANIM_WINDOW_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2395,8 +2395,8 @@ typedef struct {
|
|||
#endif /* ifdef MCI_USE_OFFEXT */
|
||||
} MCI_ANIM_RECT_PARMS32, *LPMCI_ANIM_RECT_PARMS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MCI_ANIM_RECT_PARMS);
|
||||
DECL_WINELIB_TYPE(LPMCI_ANIM_RECT_PARMS);
|
||||
DECL_WINELIB_TYPE(MCI_ANIM_RECT_PARMS)
|
||||
DECL_WINELIB_TYPE(LPMCI_ANIM_RECT_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2410,8 +2410,8 @@ typedef struct {
|
|||
HDC32 hDC;
|
||||
} MCI_ANIM_UPDATE_PARMS32, *LPMCI_ANIM_UPDATE_PARMS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MCI_ANIM_UPDATE_PARMS);
|
||||
DECL_WINELIB_TYPE(LPMCI_ANIM_UPDATE_PARMS);
|
||||
DECL_WINELIB_TYPE(MCI_ANIM_UPDATE_PARMS)
|
||||
DECL_WINELIB_TYPE(LPMCI_ANIM_UPDATE_PARMS)
|
||||
|
||||
#define MCI_OVLY_OPEN_WS 0x00010000L
|
||||
#define MCI_OVLY_OPEN_PARENT 0x00020000L
|
||||
|
@ -2476,8 +2476,8 @@ typedef struct {
|
|||
HWND32 hWndParent;
|
||||
} MCI_OVLY_OPEN_PARMS32W, *LPMCI_OVLY_OPEN_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_OPEN_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_OPEN_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_OPEN_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2502,8 +2502,8 @@ typedef struct {
|
|||
LPCWSTR lpstrText;
|
||||
} MCI_OVLY_WINDOW_PARMS32W, *LPMCI_OVLY_WINDOW_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_WINDOW_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_WINDOW_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_WINDOW_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_WINDOW_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2525,8 +2525,8 @@ typedef struct {
|
|||
#endif /* ifdef MCI_USE_OFFEXT */
|
||||
} MCI_OVLY_RECT_PARMS32, *LPMCI_OVLY_RECT_PARMS32;
|
||||
|
||||
DECL_WINELIB_TYPE(MCI_OVLY_RECT_PARMS);
|
||||
DECL_WINELIB_TYPE(LPMCI_OVLY_RECT_PARMS);
|
||||
DECL_WINELIB_TYPE(MCI_OVLY_RECT_PARMS)
|
||||
DECL_WINELIB_TYPE(LPMCI_OVLY_RECT_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2546,8 +2546,8 @@ typedef struct {
|
|||
RECT32 rc;
|
||||
} MCI_OVLY_SAVE_PARMS32W, *LPMCI_OVLY_SAVE_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_SAVE_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_SAVE_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_SAVE_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_SAVE_PARMS)
|
||||
|
||||
typedef struct {
|
||||
DWORD dwCallback;
|
||||
|
@ -2567,8 +2567,8 @@ typedef struct {
|
|||
RECT32 rc;
|
||||
} MCI_OVLY_LOAD_PARMS32W, *LPMCI_OVLY_LOAD_PARMS32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_LOAD_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_LOAD_PARMS);
|
||||
DECL_WINELIB_TYPE_AW(MCI_OVLY_LOAD_PARMS)
|
||||
DECL_WINELIB_TYPE_AW(LPMCI_OVLY_LOAD_PARMS)
|
||||
|
||||
/**************************************************************
|
||||
* Linux MMSYSTEM Internals & Sample Audio Drivers
|
||||
|
|
|
@ -65,6 +65,8 @@ typedef struct
|
|||
|
||||
/* Self-loading modules contain this structure in their first segment */
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WORD version; /* Must be 0xA0 */
|
||||
|
@ -80,8 +82,6 @@ typedef struct
|
|||
FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */
|
||||
} SELFLOADHEADER;
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/* Parameters for LoadModule() */
|
||||
typedef struct
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ typedef struct
|
|||
#pragma pack(4)
|
||||
|
||||
/* internal representation of 32bit modules. per process. */
|
||||
typedef enum { MODULE32_PE=1, MODULE32_ELF, /* ... */ } MODULE32_TYPE;
|
||||
typedef enum { MODULE32_PE=1, MODULE32_ELF /* ,... */ } MODULE32_TYPE;
|
||||
typedef struct _wine_modref
|
||||
{
|
||||
struct _wine_modref *next;
|
||||
|
|
|
@ -73,4 +73,8 @@ typedef struct {
|
|||
HLOCAL16 hMidiHdr;
|
||||
WORD dwStatus;
|
||||
} LINUX_MCIMIDI;
|
||||
|
||||
/* function prototypes */
|
||||
extern BOOL32 MULTIMEDIA_Init( void );
|
||||
|
||||
#endif /* __WINE_MULTIMEDIA_H */
|
||||
|
|
|
@ -17,11 +17,11 @@ typedef OLECHAR32 *BSTR32;
|
|||
typedef BSTR32 *LPBSTR32;
|
||||
typedef LPWSTR LPOLESTR32;
|
||||
typedef LPCWSTR LPCOLESTR32;
|
||||
DECL_WINELIB_TYPE(OLECHAR);
|
||||
DECL_WINELIB_TYPE(LPOLESTR);
|
||||
DECL_WINELIB_TYPE(LPCOLESTR);
|
||||
DECL_WINELIB_TYPE(BSTR);
|
||||
DECL_WINELIB_TYPE(LPBSTR);
|
||||
DECL_WINELIB_TYPE(OLECHAR)
|
||||
DECL_WINELIB_TYPE(LPOLESTR)
|
||||
DECL_WINELIB_TYPE(LPCOLESTR)
|
||||
DECL_WINELIB_TYPE(BSTR)
|
||||
DECL_WINELIB_TYPE(LPBSTR)
|
||||
|
||||
#define OLESTR16(x) x
|
||||
#define OLESTR32(x) L##x /* probably wrong */
|
||||
|
|
|
@ -130,6 +130,7 @@ extern BOOL32 HANDLE_SetObjPtr( PDB32 *pdb, HANDLE32 handle,
|
|||
extern void HANDLE_CloseAll( PDB32 *pdb, K32OBJ *ptr );
|
||||
|
||||
/* scheduler/process.c */
|
||||
extern BOOL32 PROCESS_Init( void );
|
||||
extern PDB32 *PROCESS_Current(void);
|
||||
extern PDB32 *PROCESS_GetPtr( HANDLE32 handle, DWORD access );
|
||||
extern PDB32 *PROCESS_IdToPDB( DWORD id );
|
||||
|
|
|
@ -95,6 +95,7 @@ extern BOOL32 QUEUE_AddMsg( HQUEUE16 hQueue, MSG16 * msg, DWORD extraInfo );
|
|||
extern int QUEUE_FindMsg( MESSAGEQUEUE * msgQueue, HWND32 hwnd,
|
||||
int first, int last );
|
||||
extern void QUEUE_RemoveMsg( MESSAGEQUEUE * msgQueue, int pos );
|
||||
extern void QUEUE_FlushMessages(HQUEUE16);
|
||||
extern void hardware_event( WORD message, WORD wParam, LONG lParam,
|
||||
int xPos, int yPos, DWORD time, DWORD extraInfo );
|
||||
|
||||
|
|
|
@ -9,14 +9,24 @@
|
|||
|
||||
#include "windows.h"
|
||||
|
||||
struct resource
|
||||
{
|
||||
int id;
|
||||
int type;
|
||||
const char *name;
|
||||
const unsigned char* bytes;
|
||||
unsigned size;
|
||||
};
|
||||
#ifndef __WRC_RSC_H
|
||||
#include "wrc_rsc.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* BS: I comment this out to catch all occurences
|
||||
* of reference to this structure which is now
|
||||
* rendered obsolete.
|
||||
*
|
||||
* struct resource
|
||||
* {
|
||||
* int id;
|
||||
* int type;
|
||||
* const char *name;
|
||||
* const unsigned char* bytes;
|
||||
* unsigned size;
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Built-in resources */
|
||||
typedef enum
|
||||
|
@ -35,7 +45,7 @@ typedef enum
|
|||
SYSRES_DIALOG_REPLACE_TEXT
|
||||
} SYSTEM_RESOURCE;
|
||||
|
||||
extern void LIBRES_RegisterResources(const struct resource* const * Res);
|
||||
extern void LIBRES_RegisterResources(const wrc_resource32_t * const * Res);
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
|
||||
#define WINE_CONSTRUCTOR __attribute__((constructor))
|
||||
|
|
|
@ -58,7 +58,7 @@ typedef struct tagSHFILEINFO32W {
|
|||
WCHAR szTypeName[80]; /* type name */
|
||||
} SHFILEINFO32W;
|
||||
|
||||
DECL_WINELIB_TYPE_AW(SHFILEINFO);
|
||||
DECL_WINELIB_TYPE_AW(SHFILEINFO)
|
||||
|
||||
typedef struct _AppBarData {
|
||||
DWORD cbSize;
|
||||
|
|
|
@ -124,6 +124,7 @@ typedef struct _CONTEXT /* Note 1 */
|
|||
#define FS_sig(context) ((context)->sc_fs)
|
||||
#define GS_sig(context) ((context)->sc_gs)
|
||||
#define CR2_sig(context) ((context)->cr2)
|
||||
#define TRAP_sig(context) ((context)->sc_trapno)
|
||||
#endif
|
||||
|
||||
#ifndef __FreeBSD__
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* 16-bit mode stack frame layout
|
||||
* 16-bit and 32-bit mode stack frame layout
|
||||
*
|
||||
* Copyright 1995 Alexandre Julliard
|
||||
* Copyright 1995, 1998 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#ifndef __WINE_STACKFRAME_H
|
||||
|
@ -78,4 +78,13 @@ typedef void *VA_LIST16;
|
|||
sizeof(STACK16FRAME)), \
|
||||
(thdb)->cur_stack += (size))
|
||||
|
||||
/* Push a DWORD on the 32-bit stack */
|
||||
#define STACK32_PUSH(context,val) (*--((DWORD *)ESP_reg(context)) = (val))
|
||||
|
||||
/* Pop a DWORD from the 32-bit stack */
|
||||
#define STACK32_POP(context) (*((DWORD *)ESP_reg(context))++)
|
||||
|
||||
/* Win32 register functions */
|
||||
#define REGS_ENTRYPOINT(name) void WINAPI __regs_##name( CONTEXT *context )
|
||||
|
||||
#endif /* __WINE_STACKFRAME_H */
|
||||
|
|
|
@ -42,7 +42,7 @@ struct storage_pps_entry {
|
|||
|
||||
typedef LPOLESTR16 *SNB16;
|
||||
typedef LPOLESTR32 *SNB32;
|
||||
DECL_WINELIB_TYPE(SNB);
|
||||
DECL_WINELIB_TYPE(SNB)
|
||||
|
||||
typedef struct IStorage16 IStorage16,*LPSTORAGE16;
|
||||
typedef struct IStorage32 IStorage32,*LPSTORAGE32;
|
||||
|
|
|
@ -139,6 +139,7 @@ extern void MUTEX_Abandon( K32OBJ *obj );
|
|||
/* scheduler/synchro.c */
|
||||
extern void SYNC_WaitForCondition( WAIT_STRUCT *wait, DWORD timeout );
|
||||
extern void SYNC_WakeUp( THREAD_QUEUE *queue, DWORD max );
|
||||
extern void SYNC_SetupSignals(void);
|
||||
|
||||
/* scheduler/sysdeps.c */
|
||||
extern int SYSDEPS_SpawnThread( THDB *thread );
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Toolbar class extra info
|
||||
*
|
||||
* Copyright 1998 Eric Kohl
|
||||
*/
|
||||
|
||||
#ifndef __WINE_TOOLBAR_H
|
||||
#define __WINE_TOOLBAR_H
|
||||
|
||||
|
||||
typedef struct tagTBUTTON_INFO
|
||||
{
|
||||
INT32 iBitmap;
|
||||
INT32 idCommand;
|
||||
BYTE fsState;
|
||||
BYTE fsStyle;
|
||||
DWORD dwData;
|
||||
INT32 iString;
|
||||
|
||||
RECT32 rect;
|
||||
|
||||
} TBUTTON_INFO;
|
||||
|
||||
|
||||
typedef struct tagTOOLBAR_INFO
|
||||
{
|
||||
DWORD dwStructSize; /* Size of TBBUTTON-Struct */
|
||||
INT32 nHeight; /* Height of the Toolbar */
|
||||
INT32 nWidth; /* Width of the Toolbar */
|
||||
INT32 nButtonTop; /* top of the button rectangle */
|
||||
INT32 nButtonHeight;
|
||||
INT32 nButtonWidth;
|
||||
INT32 nBitmapHeight;
|
||||
INT32 nBitmapWidth;
|
||||
INT32 nIndent;
|
||||
|
||||
INT32 nNumButtons; /* Number of buttons */
|
||||
INT32 nNumBitmaps;
|
||||
INT32 nNumStrings;
|
||||
|
||||
BOOL32 bCaptured;
|
||||
INT32 nButtonDown;
|
||||
INT32 nOldHit;
|
||||
|
||||
HIMAGELIST himlDef; /* default image list */
|
||||
HIMAGELIST himlHot; /* hot image list */
|
||||
HIMAGELIST himlDis; /* disabled image list */
|
||||
|
||||
TBUTTON_INFO *buttons;
|
||||
} TOOLBAR_INFO;
|
||||
|
||||
|
||||
extern void TOOLBAR_Register (void);
|
||||
|
||||
#endif /* __WINE_TOOLBAR_H */
|
|
@ -1 +1 @@
|
|||
#define WINE_RELEASE_INFO "Wine release 980517"
|
||||
#define WINE_RELEASE_INFO "Wine release 980601"
|
||||
|
|
|
@ -129,6 +129,10 @@ extern BOOL32 WIN_IsWindowDrawable(WND*, BOOL32 );
|
|||
extern HINSTANCE32 WIN_GetWindowInstance( HWND32 hwnd );
|
||||
extern WND** WIN_BuildWinArray( WND *wndPtr, UINT32 bwa, UINT32* pnum );
|
||||
|
||||
extern HWND32 CARET_GetHwnd(void);
|
||||
extern void CARET_GetRect(LPRECT32 lprc); /* windows/caret.c */
|
||||
|
||||
extern BOOL16 DRAG_QueryUpdate( HWND32, SEGPTR, BOOL32 );
|
||||
extern void DEFWND_SetText( WND *wndPtr, LPCSTR text );
|
||||
extern HBRUSH32 DEFWND_ControlColor( HDC32 hDC, UINT16 ctlType ); /* windows/defwnd.c */
|
||||
|
||||
|
@ -138,9 +142,17 @@ extern BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
HRGN32 hrgnUpdate, UINT32 flags,
|
||||
UINT32 control ); /* windows/painting.c */
|
||||
|
||||
extern BOOL32 WIDGETS_IsControl32( WND* pWnd, BUILTIN_CLASS32 cls ); /* controls/widgets.c */
|
||||
/* controls/widgets.c */
|
||||
extern BOOL32 WIDGETS_Init( void );
|
||||
extern BOOL32 WIDGETS_IsControl32( WND* pWnd, BUILTIN_CLASS32 cls );
|
||||
|
||||
extern HWND32 ICONTITLE_Create( WND* ); /* controls/icontitle.c */
|
||||
/* controls/icontitle.c */
|
||||
extern HWND32 ICONTITLE_Create( WND* );
|
||||
extern BOOL32 ICONTITLE_Init( void );
|
||||
|
||||
/* windows/focus.c */
|
||||
extern void FOCUS_SetXFocus( HWND32 );
|
||||
extern void FOCUS_SwitchFocus( HWND32 , HWND32 );
|
||||
|
||||
extern Display * display;
|
||||
extern Screen * screen;
|
||||
|
|
|
@ -203,6 +203,7 @@ extern WORD PRTDRV_GetCharWidth(LPPDEVICE lpDestDev, LPINT32 lpBuffer,
|
|||
|
||||
/* Wine driver functions */
|
||||
|
||||
extern BOOL32 WIN16DRV_Init(void);
|
||||
extern BOOL32 WIN16DRV_GetCharWidth( struct tagDC *dc, UINT32 firstChar, UINT32 lastChar,
|
||||
LPINT32 buffer );
|
||||
|
||||
|
|
|
@ -178,6 +178,7 @@ void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
|
|||
void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
|
||||
void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
|
||||
HANDLE32 WINAPI OpenProcess(DWORD access, BOOL32 inherit, DWORD id);
|
||||
void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD);
|
||||
int WINAPI TerminateProcess(HANDLE32 h, int ret);
|
||||
|
||||
#endif /* __WINE_WINBASE_H */
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#include "wintypes.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
@ -2498,7 +2501,7 @@ typedef struct tagCOMSTAT
|
|||
#define CSTF_TXIM 0x40
|
||||
|
||||
/* SystemParametersInfo */
|
||||
|
||||
/* defines below are for all win versions */
|
||||
#define SPI_GETBEEP 1
|
||||
#define SPI_SETBEEP 2
|
||||
#define SPI_GETMOUSE 3
|
||||
|
@ -2532,17 +2535,7 @@ typedef struct tagCOMSTAT
|
|||
#define SPI_SETICONTITLELOGFONT 34
|
||||
#define SPI_GETFASTTASKSWITCH 35
|
||||
#define SPI_SETFASTTASKSWITCH 36
|
||||
#define SPI_SETDRAGFULLWINDOWS 37
|
||||
#define SPI_GETDRAGFULLWINDOWS 38
|
||||
#define SPI_GETNONCLIENTMETRICS 41
|
||||
#define SPI_SETNONCLIENTMETRICS 42
|
||||
#define SPI_GETMINIMIZEDMETRICS 43
|
||||
#define SPI_SETMINIMIZEDMETRICS 44
|
||||
#define SPI_GETICONMETRICS 45
|
||||
#define SPI_SETICONMETRICS 46
|
||||
#define SPI_SETWORKAREA 47
|
||||
#define SPI_GETWORKAREA 48
|
||||
#define SPI_SETPENWINDOWS 49
|
||||
|
||||
#define SPI_GETFILTERKEYS 50
|
||||
#define SPI_SETFILTERKEYS 51
|
||||
#define SPI_GETTOGGLEKEYS 52
|
||||
|
@ -2555,10 +2548,25 @@ typedef struct tagCOMSTAT
|
|||
#define SPI_SETSTICKYKEYS 59
|
||||
#define SPI_GETACCESSTIMEOUT 60
|
||||
#define SPI_SETACCESSTIMEOUT 61
|
||||
#define SPI_GETSERIALKEYS 62
|
||||
#define SPI_SETSERIALKEYS 63
|
||||
|
||||
#define SPI_GETSOUNDSENTRY 64
|
||||
#define SPI_SETSOUNDSENTRY 65
|
||||
|
||||
/* defines below are for all win versions WINVER >= 0x0400 */
|
||||
#define SPI_SETDRAGFULLWINDOWS 37
|
||||
#define SPI_GETDRAGFULLWINDOWS 38
|
||||
#define SPI_GETNONCLIENTMETRICS 41
|
||||
#define SPI_SETNONCLIENTMETRICS 42
|
||||
#define SPI_GETMINIMIZEDMETRICS 43
|
||||
#define SPI_SETMINIMIZEDMETRICS 44
|
||||
#define SPI_GETICONMETRICS 45
|
||||
#define SPI_SETICONMETRICS 46
|
||||
#define SPI_SETWORKAREA 47
|
||||
#define SPI_GETWORKAREA 48
|
||||
#define SPI_SETPENWINDOWS 49
|
||||
|
||||
#define SPI_GETSERIALKEYS 62
|
||||
#define SPI_SETSERIALKEYS 63
|
||||
#define SPI_GETHIGHCONTRAST 66
|
||||
#define SPI_SETHIGHCONTRAST 67
|
||||
#define SPI_GETKEYBOARDPREF 68
|
||||
|
@ -2588,12 +2596,78 @@ typedef struct tagCOMSTAT
|
|||
#define SPI_GETWINDOWSEXTENSION 92
|
||||
#define SPI_SETMOUSETRAILS 93
|
||||
#define SPI_GETMOUSETRAILS 94
|
||||
#define SPI_SCREENSAVERRUNNING 97
|
||||
#define SPI_SETSCREENSAVERRUNNING 97
|
||||
#define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
|
||||
|
||||
/* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
|
||||
* (_WIN32_WINDOWS > 0x0400) */
|
||||
#define SPI_GETMOUSEHOVERWIDTH 98
|
||||
#define SPI_SETMOUSEHOVERWIDTH 99
|
||||
#define SPI_GETMOUSEHOVERHEIGHT 100
|
||||
#define SPI_SETMOUSEHOVERHEIGHT 101
|
||||
#define SPI_GETMOUSEHOVERTIME 102
|
||||
#define SPI_SETMOUSEHOVERTIME 103
|
||||
#define SPI_GETWHEELSCROLLLINES 104
|
||||
#define SPI_SETWHEELSCROLLLINES 105
|
||||
|
||||
#define SPI_GETSHOWIMEUI 110
|
||||
#define SPI_SETSHOWIMEUI 111
|
||||
|
||||
/* defines below are for all win versions WINVER >= 0x0500 */
|
||||
#define SPI_GETMOUSESPEED 112
|
||||
#define SPI_SETMOUSESPEED 113
|
||||
#define SPI_GETSCREENSAVERRUNNING 114
|
||||
|
||||
#define SPI_GETACTIVEWINDOWTRACKING 0x1000
|
||||
#define SPI_SETACTIVEWINDOWTRACKING 0x1001
|
||||
#define SPI_GETMENUANIMATION 0x1002
|
||||
#define SPI_SETMENUANIMATION 0x1003
|
||||
#define SPI_GETCOMBOBOXANIMATION 0x1004
|
||||
#define SPI_SETCOMBOBOXANIMATION 0x1005
|
||||
#define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
|
||||
#define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
|
||||
#define SPI_GETGRADIENTCAPTIONS 0x1008
|
||||
#define SPI_SETGRADIENTCAPTIONS 0x1009
|
||||
#define SPI_GETMENUUNDERLINES 0x100A
|
||||
#define SPI_SETMENUUNDERLINES 0x100B
|
||||
#define SPI_GETACTIVEWNDTRKZORDER 0x100C
|
||||
#define SPI_SETACTIVEWNDTRKZORDER 0x100D
|
||||
#define SPI_GETHOTTRACKING 0x100E
|
||||
#define SPI_SETHOTTRACKING 0x100F
|
||||
#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
|
||||
#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
|
||||
#define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
|
||||
#define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
|
||||
#define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
|
||||
#define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
|
||||
|
||||
/* SystemParametersInfo flags */
|
||||
|
||||
#define SPIF_UPDATEINIFILE 1
|
||||
#define SPIF_SENDWININICHANGE 2
|
||||
#define SPIF_UPDATEINIFILE 1
|
||||
#define SPIF_SENDWININICHANGE 2
|
||||
#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
|
||||
|
||||
/* flags for HIGHCONTRAST dwFlags field */
|
||||
#define HCF_HIGHCONTRASTON 0x00000001
|
||||
#define HCF_AVAILABLE 0x00000002
|
||||
#define HCF_HOTKEYACTIVE 0x00000004
|
||||
#define HCF_CONFIRMHOTKEY 0x00000008
|
||||
#define HCF_HOTKEYSOUND 0x00000010
|
||||
#define HCF_INDICATOR 0x00000020
|
||||
#define HCF_HOTKEYAVAILABLE 0x00000040
|
||||
typedef struct tagHIGHCONTRASTA
|
||||
{
|
||||
UINT32 cbSize;
|
||||
DWORD dwFlags;
|
||||
LPSTR lpszDefaultScheme;
|
||||
} HIGHCONTRASTA, *LPHIGHCONTRASTA;
|
||||
|
||||
typedef struct tagHIGHCONTRASTW
|
||||
{
|
||||
UINT32 cbSize;
|
||||
DWORD dwFlags;
|
||||
LPWSTR lpszDefaultScheme;
|
||||
} HIGHCONTRASTW, *LPHIGHCONTRASTW;
|
||||
|
||||
/* GetFreeSystemResources() parameters */
|
||||
|
||||
|
@ -3622,6 +3696,7 @@ DECL_WINELIB_TYPE(DRAWSTATEPROC)
|
|||
#define SS_TYPEMASK 0x0000001FL
|
||||
|
||||
#define SS_NOPREFIX 0x00000080L
|
||||
#define SS_NOTIFY 0x00000100L
|
||||
#define SS_CENTERIMAGE 0x00000200L
|
||||
#define SS_RIGHTJUST 0x00000400L
|
||||
#define SS_REALSIZEIMAGE 0x00000800L
|
||||
|
@ -4446,9 +4521,19 @@ DECL_WINELIB_TYPE(LPCOMPAREITEMSTRUCT)
|
|||
#define VK_LMENU 0xA4
|
||||
#define VK_RMENU 0xA5
|
||||
/* 0xA6-0xB9 Unassigned */
|
||||
/* 0xBA-0xC0 OEM specific */
|
||||
#define VK_OEM_1 0xBA
|
||||
#define VK_OEM_PLUS 0xBB
|
||||
#define VK_OEM_COMMA 0xBC
|
||||
#define VK_OEM_MINUS 0xBD
|
||||
#define VK_OEM_PERIOD 0xBE
|
||||
#define VK_OEM_2 0xBF
|
||||
#define VK_OEM_3 0xC0
|
||||
/* 0xC1-0xDA Unassigned */
|
||||
/* 0xDB-0xE4 OEM specific */
|
||||
#define VK_OEM_4 0xDB
|
||||
#define VK_OEM_5 0xDC
|
||||
#define VK_OEM_6 0xDD
|
||||
#define VK_OEM_7 0xDE
|
||||
/* 0xDF-0xE4 OEM specific */
|
||||
|
||||
#define VK_PROCESSKEY 0xE5
|
||||
|
||||
|
@ -5948,6 +6033,19 @@ typedef struct _numberfmt32w {
|
|||
UINT32 NegativeOrder;
|
||||
} NUMBERFMT32W;
|
||||
|
||||
typedef enum _GET_FILEEX_INFO_LEVELS {
|
||||
GetFileExInfoStandard
|
||||
} GET_FILEEX_INFO_LEVELS;
|
||||
|
||||
typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
|
||||
DWORD dwFileAttributes;
|
||||
FILETIME ftCreationTime;
|
||||
FILETIME ftLastAccessTime;
|
||||
FILETIME ftLastWriteTime;
|
||||
DWORD nFileSizeHigh;
|
||||
DWORD nFileSizeLow;
|
||||
} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -6239,6 +6337,9 @@ LPWSTR WINAPI GetEnvironmentStrings32W(void);
|
|||
DWORD WINAPI GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD);
|
||||
DWORD WINAPI GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD);
|
||||
#define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
|
||||
BOOL32 WINAPI GetFileAttributesEx32A(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
|
||||
BOOL32 WINAPI GetFileAttributesEx32W(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
|
||||
#define GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx)
|
||||
DWORD WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
|
||||
DWORD WINAPI GetFileSize(HFILE32,LPDWORD);
|
||||
BOOL32 WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
|
||||
|
@ -6366,6 +6467,9 @@ BOOL32 WINAPI QueryPerformanceCounter(LPLARGE_INTEGER);
|
|||
BOOL32 WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
|
||||
BOOL32 WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
|
||||
#define ReadConsole WINELIB_NAME_AW(ReadConsole)
|
||||
BOOL32 WINAPI ReadConsoleOutputCharacter32A(HANDLE32,LPSTR,DWORD,
|
||||
COORD,LPDWORD);
|
||||
#define ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
|
||||
BOOL32 WINAPI ReadFile(HANDLE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
LONG WINAPI RegConnectRegistry32A(LPCSTR,HKEY,LPHKEY);
|
||||
LONG WINAPI RegConnectRegistry32W(LPCWSTR,HKEY,LPHKEY);
|
||||
|
@ -6398,6 +6502,19 @@ DWORD WINAPI RegQueryInfoKey32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
|
|||
LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
|
||||
LPDWORD,LPFILETIME);
|
||||
#define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
|
||||
LONG WINAPI RegReplaceKey32A(HKEY,LPCSTR,LPCSTR,LPCSTR);
|
||||
LONG WINAPI RegReplaceKey32W(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
|
||||
#define RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
|
||||
LONG WINAPI RegRestoreKey32A(HKEY,LPCSTR,DWORD);
|
||||
LONG WINAPI RegRestoreKey32W(HKEY,LPCWSTR,DWORD);
|
||||
#define RegRestoreKey WINELIB_NAME_AW(RegRestoreKey)
|
||||
LONG WINAPI RegSaveKey32A(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
|
||||
LONG WINAPI RegSaveKey32W(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
|
||||
#define RegSaveKey WINELIB_NAME_AW(RegSaveKey)
|
||||
LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
|
||||
LONG WINAPI RegUnLoadKey32A(HKEY,LPCSTR);
|
||||
LONG WINAPI RegUnLoadKey32W(HKEY,LPCWSTR);
|
||||
#define RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey)
|
||||
BOOL32 WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG);
|
||||
BOOL32 WINAPI ResetEvent(HANDLE32);
|
||||
VOID WINAPI RtlFillMemory(LPVOID,UINT32,UINT32);
|
||||
|
@ -8737,9 +8854,9 @@ BOOL16 WINAPI WinHelp16(HWND16,LPCSTR,UINT16,DWORD);
|
|||
BOOL32 WINAPI WinHelp32A(HWND32,LPCSTR,UINT32,DWORD);
|
||||
BOOL32 WINAPI WinHelp32W(HWND32,LPCWSTR,UINT32,DWORD);
|
||||
#define WinHelp WINELIB_NAME_AW(WinHelp)
|
||||
UINT16 WNetAddConnection16(LPSTR,LPSTR,LPSTR);
|
||||
UINT32 WNetAddConnection32A(LPSTR,LPSTR,LPSTR);
|
||||
UINT32 WNetAddConnection32W(LPWSTR,LPWSTR,LPWSTR);
|
||||
UINT16 WINAPI WNetAddConnection16(LPCSTR,LPCSTR,LPCSTR);
|
||||
UINT32 WINAPI WNetAddConnection32A(LPCSTR,LPCSTR,LPCSTR);
|
||||
UINT32 WINAPI WNetAddConnection32W(LPCWSTR,LPCWSTR,LPCWSTR);
|
||||
#define WNetAddConnection WINELIB_NAME_AW(WNetAddConnection)
|
||||
INT16 WINAPIV wsnprintf16(LPSTR,UINT16,LPCSTR,...);
|
||||
INT32 WINAPIV wsnprintf32A(LPSTR,UINT32,LPCSTR,...);
|
||||
|
|
124
include/winnls.h
124
include/winnls.h
|
@ -116,18 +116,29 @@
|
|||
#define NORM_IGNORENONSPACE 2
|
||||
#define NORM_IGNORESYMBOLS 4
|
||||
#define NORM_STRINGSORT 0x1000
|
||||
#define NORM_IGNOREKANATYPE 0x00010000
|
||||
#define NORM_IGNOREWIDTH 0x00020000
|
||||
|
||||
#define CP_ACP 0
|
||||
#define CP_OEMCP 1
|
||||
#define CP_ACP 0
|
||||
#define CP_OEMCP 1
|
||||
|
||||
#define WC_DEFAULTCHECK 0x00000100
|
||||
#define WC_COMPOSITECHECK 0x00000200
|
||||
#define WC_DISCARDNS 0x00000010
|
||||
#define WC_SEPCHARS 0x00000020
|
||||
#define WC_SEPCHARS 0x00000020
|
||||
#define WC_DEFAULTCHAR 0x00000040
|
||||
|
||||
#define MAKELCID(l, s) (MAKELONG(l, s))
|
||||
#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p))
|
||||
#define MAKELCID(l, s) (MAKELONG(l, s))
|
||||
|
||||
#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p))
|
||||
#define PRIMARYLANGID(l) ((WORD)(l) & 0x3ff)
|
||||
#define SUBLANGID(l) ((WORD)(l) >> 10)
|
||||
|
||||
#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT))
|
||||
#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT))
|
||||
#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT))
|
||||
#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT))
|
||||
|
||||
|
||||
/* Language IDs (were in winnt.h, for some reason) */
|
||||
|
||||
|
@ -178,17 +189,86 @@
|
|||
#define LANG_TURKISH 0x1f
|
||||
#define LANG_UKRAINIAN 0x22
|
||||
|
||||
/* "default"ish values */
|
||||
/* Sublanguage definitions */
|
||||
#define SUBLANG_NEUTRAL 0x00 /* language neutral */
|
||||
#define SUBLANG_DEFAULT 0x01 /* user default */
|
||||
#define SUBLANG_SYS_DEFAULT 0x02 /* system default */
|
||||
|
||||
#define SORT_DEFAULT 0
|
||||
#define SUBLANG_DEFAULT 1
|
||||
#define SUBLANG_SYS_DEFAULT 1 /* FIXME: I don't know if this is right */
|
||||
#define SUBLANG_ARABIC 0x01
|
||||
#define SUBLANG_ARABIC_IRAQ 0x02
|
||||
#define SUBLANG_ARABIC_EGYPT 0x03
|
||||
#define SUBLANG_ARABIC_LIBYA 0x04
|
||||
#define SUBLANG_ARABIC_ALGERIA 0x05
|
||||
#define SUBLANG_ARABIC_MOROCCO 0x06
|
||||
#define SUBLANG_ARABIC_TUNISIA 0x07
|
||||
#define SUBLANG_ARABIC_OMAN 0x08
|
||||
#define SUBLANG_ARABIC_YEMEN 0x09
|
||||
#define SUBLANG_ARABIC_SYRIA 0x10
|
||||
#define SUBLANG_ARABIC_JORDAN 0x11
|
||||
#define SUBLANG_ARABIC_LEBANON 0x12
|
||||
#define SUBLANG_ARABIC_KUWAIT 0x13
|
||||
#define SUBLANG_ARABIC_UAE 0x14
|
||||
#define SUBLANG_ARABIC_BAHRAIN 0x15
|
||||
#define SUBLANG_ARABIC_QATAR 0x16
|
||||
#define SUBLANG_CHINESE_TRADITIONAL 0x01
|
||||
#define SUBLANG_CHINESE_SIMPLIFIED 0x02
|
||||
#define SUBLANG_CHINESE_HONGKONG 0x03
|
||||
#define SUBLANG_CHINESE_SINGAPORE 0x04
|
||||
#define SUBLANG_DUTCH 0x01
|
||||
#define SUBLANG_DUTCH_BELGIAN 0x02
|
||||
#define SUBLANG_ENGLISH_US 0x01
|
||||
#define SUBLANG_ENGLISH_UK 0x02
|
||||
#define SUBLANG_ENGLISH_AUS 0x03
|
||||
#define SUBLANG_ENGLISH_CAN 0x04
|
||||
#define SUBLANG_ENGLISH_NZ 0x05
|
||||
#define SUBLANG_ENGLISH_EIRE 0x06
|
||||
#define SUBLANG_ENGLISH_SAFRICA 0x07
|
||||
#define SUBLANG_ENGLISH_JAMAICA 0x08
|
||||
#define SUBLANG_ENGLISH_CARRIBEAN 0x09
|
||||
#define SUBLANG_FRENCH 0x01
|
||||
#define SUBLANG_FRENCH_BELGIAN 0x02
|
||||
#define SUBLANG_FRENCH_CANADIAN 0x03
|
||||
#define SUBLANG_FRENCH_SWISS 0x04
|
||||
#define SUBLANG_FRENCH_LUXEMBOURG 0x05
|
||||
#define SUBLANG_GERMAN 0x01
|
||||
#define SUBLANG_GERMAN_SWISS 0x02
|
||||
#define SUBLANG_GERMAN_AUSTRIAN 0x03
|
||||
#define SUBLANG_GERMAN_LUXEMBOURG 0x04
|
||||
#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
|
||||
#define SUBLANG_ITALIAN 0x01
|
||||
#define SUBLANG_ITALIAN_SWISS 0x02
|
||||
#define SUBLANG_KOREAN 0x01
|
||||
#define SUBLANG_KOREAN_JOHAB 0x02
|
||||
#define SUBLANG_NORWEGIAN_BOKMAL 0x01
|
||||
#define SUBLANG_NORWEGIAN_NYNORSK 0x02
|
||||
#define SUBLANG_PORTUGUESE 0x02
|
||||
#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
|
||||
#define SUBLANG_SPANISH 0x01
|
||||
#define SUBLANG_SPANISH_MEXICAN 0x02
|
||||
#define SUBLANG_SPANISH_MODERN 0x03
|
||||
#define SUBLANG_SPANISH_GUATEMALA 0x04
|
||||
#define SUBLANG_SPANISH_COSTARICA 0x05
|
||||
#define SUBLANG_SPANISH_PANAMA 0x06
|
||||
#define SUBLANG_SPANISH_DOMINICAN 0x07
|
||||
#define SUBLANG_SPANISH_VENEZUELA 0x08
|
||||
#define SUBLANG_SPANISH_COLOMBIA 0x09
|
||||
#define SUBLANG_SPANISH_PERU 0x10
|
||||
#define SUBLANG_SPANISH_ARGENTINA 0x11
|
||||
#define SUBLANG_SPANISH_ECUADOR 0x12
|
||||
#define SUBLANG_SPANISH_CHILE 0x13
|
||||
#define SUBLANG_SPANISH_URUGUAY 0x14
|
||||
#define SUBLANG_SPANISH_PARAGUAY 0x15
|
||||
#define SUBLANG_SPANISH_BOLIVIA 0x16
|
||||
|
||||
/* Sort definitions */
|
||||
#define SORT_DEFAULT 0x0
|
||||
#define SORT_JAPANESE_XJIS 0x0
|
||||
#define SORT_JAPANESE_UNICODE 0x1
|
||||
#define SORT_CHINESE_BIG5 0x0
|
||||
#define SORT_CHINESE_UNICODE 0x1
|
||||
#define SORT_KOREAN_KSC 0x0
|
||||
#define SORT_KOREAN_UNICODE 0x1
|
||||
|
||||
#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT))
|
||||
#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT))
|
||||
#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT))
|
||||
#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT))
|
||||
|
||||
/* Locale Dependent Mapping Flags */
|
||||
#define LCMAP_LOWERCASE 0x00000100 /* lower case letters */
|
||||
|
@ -196,6 +276,8 @@
|
|||
#define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */
|
||||
#define LCMAP_BYTEREV 0x00000800 /* byte reversal */
|
||||
|
||||
#define SORT_STRINGSORT 0x00001000 /* take punctuation into account */
|
||||
|
||||
#define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */
|
||||
#define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */
|
||||
#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */
|
||||
|
@ -216,5 +298,21 @@
|
|||
/* use this in a WineLib program if you really want all types */
|
||||
#define LOCALE_TIMEDATEBOTH 0x00000300 /* full set */
|
||||
|
||||
/* Prototypes for Unicode case conversion routines */
|
||||
WCHAR towupper(WCHAR);
|
||||
WCHAR towlower(WCHAR);
|
||||
|
||||
/* Definitions for IsTextUnicode() function */
|
||||
#define IS_TEXT_UNICODE_ASCII16 0x0001
|
||||
#define IS_TEXT_UNICODE_SIGNATURE 0x0008
|
||||
#define IS_TEXT_UNICODE_REVERSE_ASCII16 0x0010
|
||||
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 0x0080
|
||||
#define IS_TEXT_UNICODE_ILLEGAL_CHARS 0x0100
|
||||
#define IS_TEXT_UNICODE_ODD_LENGTH 0x0200
|
||||
|
||||
/* Tests that we currently implement */
|
||||
#define ITU_IMPLEMENTED_TESTS \
|
||||
IS_TEXT_UNICODE_SIGNATURE| \
|
||||
IS_TEXT_UNICODE_ODD_LENGTH
|
||||
|
||||
#endif /* __WINE_WINNLS_H */
|
||||
|
|
|
@ -356,4 +356,11 @@ WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter );
|
|||
#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE | FILE_EXECUTE | \
|
||||
FILE_READ_ATTRIBUTES | SYNCHRONIZE)
|
||||
|
||||
|
||||
/* Registry security values */
|
||||
#define OWNER_SECURITY_INFORMATION 0x00000001
|
||||
#define GROUP_SECURITY_INFORMATION 0x00000002
|
||||
#define DACL_SECURITY_INFORMATION 0x00000004
|
||||
#define SACL_SECURITY_INFORMATION 0x00000008
|
||||
|
||||
#endif /* __WINE_WINNT_H */
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <netdb.h>
|
||||
#include <sys/socket.h>
|
||||
#include "windows.h"
|
||||
#include "task.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
@ -164,8 +165,8 @@ typedef struct WSAData {
|
|||
#define INVALID_SOCKET32 (~0)
|
||||
#define SOCKET_ERROR (-1)
|
||||
|
||||
DECL_WINELIB_TYPE(INVALID_SOCKET);
|
||||
DECL_WINELIB_TYPE(SOCKET);
|
||||
DECL_WINELIB_TYPE(INVALID_SOCKET)
|
||||
DECL_WINELIB_TYPE(SOCKET)
|
||||
|
||||
/*
|
||||
* Types
|
||||
|
@ -563,6 +564,7 @@ typedef struct _WSINFO
|
|||
HTASK16 tid; /* owning task id - process might be better */
|
||||
} WSINFO, *LPWSINFO;
|
||||
|
||||
/* function prototypes */
|
||||
int WS_dup_he(LPWSINFO pwsi, struct hostent* p_he, int flag);
|
||||
int WS_dup_pe(LPWSINFO pwsi, struct protoent* p_pe, int flag);
|
||||
int WS_dup_se(LPWSINFO pwsi, struct servent* p_se, int flag);
|
||||
|
@ -571,6 +573,11 @@ void WS_do_async_gethost(LPWSINFO, unsigned);
|
|||
void WS_do_async_getproto(LPWSINFO, unsigned);
|
||||
void WS_do_async_getserv(LPWSINFO, unsigned);
|
||||
|
||||
/* winsock_dns.c */
|
||||
extern HANDLE16 __WSAsyncDBQuery(LPWSINFO pwsi, HWND32 hWnd, UINT32 uMsg,
|
||||
INT32 type, LPCSTR init, INT32 len, LPCSTR proto, void* sbuf,
|
||||
INT32 buflen, UINT32 flag);
|
||||
|
||||
int WINSOCK_async_io(int fd, int async);
|
||||
int WINSOCK_unblock_io(int fd, int noblock);
|
||||
|
||||
|
@ -586,5 +593,7 @@ void WINSOCK_Shutdown(void);
|
|||
UINT16 wsaErrno(void);
|
||||
UINT16 wsaHerrno(void);
|
||||
|
||||
extern INT32 WINSOCK_DeleteTaskWSI( TDB* pTask, struct _WSINFO* );
|
||||
|
||||
#endif /* _WINSOCKAPI_ */
|
||||
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Wine Resource Compiler structure definitions
|
||||
*
|
||||
* Copyright 1998 Bertho A. Stultiens
|
||||
*
|
||||
*/
|
||||
|
||||
#if !defined(__WRC_RSC_H) && !defined(__WINE_WRC_RSC_H)
|
||||
#define __WRC_RSC_H
|
||||
#define __WINE_WRC_RSC_H
|
||||
|
||||
#ifndef __WINE_WINTYPES_H
|
||||
#include <wintypes.h> /* For types in structure */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Note on the resource and type names:
|
||||
*
|
||||
* These are (if non-null) pointers to a pascal-style
|
||||
* string. The first character (BYTE for 16 bit and WCHAR
|
||||
* for 32 bit resources) contains the length and the
|
||||
* rest is the string. They are _not_ '\0' terminated!
|
||||
*/
|
||||
|
||||
typedef struct wrc_resource16
|
||||
{
|
||||
INT32 resid; /* The resource id if resname == NULL */
|
||||
LPSTR resname;
|
||||
INT32 restype; /* The resource type-id if typename == NULL */
|
||||
LPSTR typename;
|
||||
LPBYTE data; /* Actual resource data */
|
||||
UINT32 datasize; /* The size of the resource */
|
||||
} wrc_resource16_t;
|
||||
|
||||
typedef struct wrc_resource32
|
||||
{
|
||||
INT32 resid; /* The resource id if resname == NULL */
|
||||
LPWSTR resname;
|
||||
INT32 restype; /* The resource type-id if typename == NULL */
|
||||
LPWSTR typename;
|
||||
LPBYTE data; /* Actual resource data */
|
||||
UINT32 datasize; /* The size of the resource */
|
||||
} wrc_resource32_t;
|
||||
|
||||
#endif
|
||||
|
|
@ -51,6 +51,7 @@ typedef INT32 (*DEVICEFONTENUMPROC)(LPENUMLOGFONT16,LPNEWTEXTMETRIC16,UINT16,LPA
|
|||
struct tagDC;
|
||||
struct tagDeviceCaps;
|
||||
|
||||
extern BOOL32 X11DRV_Init(void);
|
||||
extern BOOL32 X11DRV_BitBlt( struct tagDC *dcDst, INT32 xDst, INT32 yDst,
|
||||
INT32 width, INT32 height, struct tagDC *dcSrc,
|
||||
INT32 xSrc, INT32 ySrc, DWORD rop );
|
||||
|
@ -116,4 +117,6 @@ extern BOOL32 X11DRV_FONT_Init( struct tagDeviceCaps* );
|
|||
|
||||
extern CRITICAL_SECTION X11DRV_CritSection;
|
||||
|
||||
extern void _XInitImageFuncPtrs(XImage *);
|
||||
|
||||
#endif /* __WINE_X11DRV_H */
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "dde_atom.h"
|
||||
#include "shm_main_blk.h"
|
||||
#include "shm_fragment.h"
|
||||
|
@ -187,7 +186,7 @@ ATOM DDE_GlobalDeleteAtom( ATOM atom )
|
|||
switch (atom_ofs=ATOM_OFS(atom_idx)) {
|
||||
case DELETED:
|
||||
case EMPTY:
|
||||
fprintf(stderr,"trying to free unallocated atom %d\n", atom);
|
||||
WARN(atom, "Trying to free unallocated atom %d\n", atom);
|
||||
retval=atom;
|
||||
break;
|
||||
default :
|
||||
|
@ -273,7 +272,7 @@ WORD DDE_GlobalGetAtomName( ATOM atom, LPSTR buffer, short count )
|
|||
shm_read_wait(main_block->sem);
|
||||
atom_ofs=ATOM_OFS(atom_idx);
|
||||
if (atom_ofs==EMPTY || atom_ofs==DELETED) {
|
||||
fprintf(stderr,"GlobalGetAtomName: illegal atom=%d\n",(int)atom);
|
||||
WARN(atom,"Illegal atom=%d\n",(int)atom);
|
||||
size=0;
|
||||
} else { /* non empty entry */
|
||||
/* string length will be at most count-1, find actual size */
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
*/
|
||||
#ifdef CONFIG_IPC
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "debug.h"
|
||||
#include "ldt.h"
|
||||
|
@ -136,7 +135,7 @@ DDE_malloc(unsigned int flags, unsigned long size, SHMDATA *shmdata)
|
|||
h_info= (struct handle_info *)
|
||||
shm_FragPtrAlloc(block, size+sizeof(struct handle_info));
|
||||
if (h_info==NULL) {
|
||||
fprintf(stderr,"DDE_malloc: BUG! unallocated fragment\n");
|
||||
ERR(global,"BUG! unallocated fragment\n");
|
||||
shm_write_signal(main_block->proc[curr_proc_idx].sem);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ void dde_proc_add(dde_proc procs)
|
|||
}
|
||||
else {
|
||||
fflush(stdout);
|
||||
fprintf(stderr,"dde_proc_add: Can't allocate process\n");
|
||||
WARN(dde,"Can't allocate process\n");
|
||||
}
|
||||
shm_write_signal(main_block->sem);
|
||||
}
|
||||
|
@ -231,7 +231,7 @@ static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
|
|||
return TRUE;
|
||||
} else {
|
||||
fflush(stdout);
|
||||
fprintf(stderr,"get_ack: DDE_DoOneMessage: timeout\n");
|
||||
WARN(dde,"get_ack: DDE_DoOneMessage: timeout\n");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -278,8 +278,7 @@ static HWND16 HWND_Local2Remote(HWND16 orig)
|
|||
return IDX_TO_HWND(dde_wnd_idx);
|
||||
}
|
||||
|
||||
fprintf(stderr,
|
||||
"HWND_Local2Remote: Can't map any more windows to DDE windows\n");
|
||||
WARN(dde, "Can't map any more windows to DDE windows\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#define inline __inline__
|
||||
#include <sys/types.h>
|
||||
#include <sys/sem.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -167,14 +167,14 @@ void shm_print_free_list(struct shm_block *block)
|
|||
|
||||
item=block->free_list;
|
||||
if (item==0) {
|
||||
fprintf(stddeb,"no free fragments");
|
||||
DUMP("no free fragments");
|
||||
} else {
|
||||
for (; item ; item=fragment->info.next) {
|
||||
fragment=FRAG_PTR(block,item);
|
||||
fprintf(stddeb,"{0x%04x,0x%04x} ",item,fragment->size);
|
||||
DUMP("{0x%04x,0x%04x} ",item,fragment->size);
|
||||
}
|
||||
}
|
||||
fprintf(stddeb," [total free=%04x]\n",block->free);
|
||||
DUMP(" [total free=%04x]\n",block->free);
|
||||
fflush(stddeb);
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#define inline __inline__
|
||||
#include <sys/types.h>
|
||||
#include <sys/sem.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
|
@ -252,8 +251,7 @@ int shm_init(void)
|
|||
{
|
||||
if ( !shm_locate_MainBlock(WineKey)
|
||||
&& !shm_create_MainBlock(WineKey)) {
|
||||
fflush(stdout);
|
||||
fprintf(stderr,"shm_init: failed to init main shm block\n");
|
||||
ERR(shm, "Failed to init main shm block\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue