Release 960506

Mon May  6 12:56:26 1996  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [DEVELOPERS-HINTS]
	Added paragraph on naming conventions for Win16/Win32/Winelib.

	* [controls/menu.c]
	Create a default system menu that is the same for all windows
	instead of making a copy every time.

	* [include/wintypes.h]
	Added WINELIB_NAME and DECL_WINELIB_TYPE macros.
	Added xx16 and xx32 definitions for most types. General clean-up.

	* [memory/global.c] [memory/local.c] [*/*]
	Renamed Global and Local heap functions to xxx16. Added all xxx32
	versions of the same functions.

	* [memory/selector.c]
	Mask out lower bits of selector in FreeSelector().

	* [misc/lstr.c]
	Fixed wvsprintf().

	* [windows/class.c]
	Changed the class structure to make Win32 support easier.

	* [windows/defwnd.c]
	Added handling of WM_INITMENUPOPUP for system menu to gray out
	invalid options.

	* [windows/winpos.c]
	Bug fix: the WINDOSPOS structure pointer in WM_NCCALCSIZE must be
	a SEGPTR.

Sun May  5 03:51:26 1996  Huw D. M. Davies <h.davies1@physics.oxford.ac.uk>

	* [memory/local.c]
	Implementation of moveable and (rudimentary) support for
 	discardable local memory, plus several bug fixes.

Sat May  4 18:33:35 1996  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [include/windows.h] [windows/win.c] [if1632/user.spec] 
	FindWindowEx() implemented (someone reported it was missing
	for FrameMaker 4.1).

	* [if1632/kernel32.spec] [if1632/user32.spec] [win32/memory.c]
	  [win32/resource.c]
	Misc small stubs/small functions which bring win95 binaries
	further down the road. (IsBadCodePtr, LocalReAlloc,GetCursorPos)
	Small fix in WIN32_LoadAcceleratorsA.

Fri May  3 19:43:12 1996  Frans van Dorsselaer <dorssel@rulhm1.LeidenUniv.nl>

	* [controls/edit.c] [controls/EDIT.TODO]
	Changed / fixed some types and typecasts.
	Fixed the scrollbar reset after WM_SETHANDLE / WM_SETTEXT.
	Added heap initialization in WM_CREATE.

Fri May  3 19:30:02 1996  Greg Kreider <kreider@natlab.research.philips.com>

	* [controls/combo.c] [controls/listbox.c]
	Pass WM_[HV]SCROLL to listbox, but not combo.
	Don't try to redraw non-existant scroll bars (changes dwStyle flags).
	Combo box gets border.
	Combo box includes button (otherwise button won't trigger dropdown).
	Proper border around RectButton.
	Check size consistancy of combo, listbox, and button after resizing 
	or before painting.  These routines still aren't completely correct.
	Localize size checks in separate routines.
	Listboxes are white.

Thu May  2 19:21:23 1996  Albrecht Kleine  <kleine@ak.sax.de>

	* [controls/combo.c][include/commdlg.h][include/commdlg.c]
	  [resources/sysres_De.rc][resources/sysres_En.rc]
	Introduced ChooseFont dialog, but needed some patches in 
	handling of comboboxes with edit controls.

Tue Apr 30 00:33:27 1996  Ulrich Schmid  <uschmid@mail.hh.provi.de>

	* [programs/winhelp/*]
	Added a help viewer and a simple `.hlp' to `.sgml' converter.

Mon Apr 29 14:17:57 1996  Tristan Tarrant <tst@sthinc.demon.co.uk>

	* [resources/sysres_*.rc] [misc/shell.c]
	Modified size of "About" dialog boxes.

Sat Apr 27 18:10:11 Martin von Loewis <loewis@informatik.hu-berlin.de>

	* [if1632/Makefile.in][loader/builtin.c]
	crtdll.spec, ntdll.spec, wsock32.spec: new files.

	* [loader/pe_image.c]
	Fix error message if import by ordinal failed.
This commit is contained in:
Alexandre Julliard 1996-05-06 16:06:24 +00:00
parent 2ace16ac08
commit 1285c2f9e9
185 changed files with 9455 additions and 4433 deletions

View File

@ -1,14 +1,14 @@
This is release 960428 of Wine the MS Windows emulator. This is still a
This is release 960506 of Wine the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work.
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
forget to include a ChangeLog entry.
WHAT'S NEW with Wine-960428: (see ChangeLog for details)
- Preliminary support for VER.DLL.
- Suuport for Korean [Ko] language.
- More Win32 functions.
WHAT'S NEW with Wine-960506: (see ChangeLog for details)
- Moveable and discardable blocks in local heap.
- Comboboxes improvements.
- Winhelp clone using Winelib.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
@ -17,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:
sunsite.unc.edu:/pub/Linux/ALPHA/wine/development/Wine-960428.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-960428.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-960428.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-960428.tar.gz
sunsite.unc.edu:/pub/Linux/ALPHA/wine/development/Wine-960506.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-960506.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-960506.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-960506.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
@ -30,8 +30,6 @@ included in the new release.
If you want to get the new releases faster, you can subscribe to the
wine-patches mailing list by sending a mail containing 'subscribe
wine-patches your_address' to majordomo@tiger.informatik.hu-berlin.de.
To avoid overloading the mail host, please subscribe only if you
really intend to test the new releases as soon as they're out.
Wine is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Ross Biro, Uwe Bonnes, Erik Bos, Fons Botman, John Brezak,

View File

@ -1,3 +1,101 @@
----------------------------------------------------------------------
Mon May 6 12:56:26 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [DEVELOPERS-HINTS]
Added paragraph on naming conventions for Win16/Win32/Winelib.
* [controls/menu.c]
Create a default system menu that is the same for all windows
instead of making a copy every time.
* [include/wintypes.h]
Added WINELIB_NAME and DECL_WINELIB_TYPE macros.
Added xx16 and xx32 definitions for most types. General clean-up.
* [memory/global.c] [memory/local.c] [*/*]
Renamed Global and Local heap functions to xxx16. Added all xxx32
versions of the same functions.
* [memory/selector.c]
Mask out lower bits of selector in FreeSelector().
* [misc/lstr.c]
Fixed wvsprintf().
* [windows/class.c]
Changed the class structure to make Win32 support easier.
* [windows/defwnd.c]
Added handling of WM_INITMENUPOPUP for system menu to gray out
invalid options.
* [windows/winpos.c]
Bug fix: the WINDOSPOS structure pointer in WM_NCCALCSIZE must be
a SEGPTR.
Sun May 5 03:51:26 1996 Huw D. M. Davies <h.davies1@physics.oxford.ac.uk>
* [memory/local.c]
Implementation of moveable and (rudimentary) support for
discardable local memory, plus several bug fixes.
Sat May 4 18:33:35 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [include/windows.h] [windows/win.c] [if1632/user.spec]
FindWindowEx() implemented (someone reported it was missing
for FrameMaker 4.1).
* [if1632/kernel32.spec] [if1632/user32.spec] [win32/memory.c]
[win32/resource.c]
Misc small stubs/small functions which bring win95 binaries
further down the road. (IsBadCodePtr, LocalReAlloc,GetCursorPos)
Small fix in WIN32_LoadAcceleratorsA.
Fri May 3 19:43:12 1996 Frans van Dorsselaer <dorssel@rulhm1.LeidenUniv.nl>
* [controls/edit.c] [controls/EDIT.TODO]
Changed / fixed some types and typecasts.
Fixed the scrollbar reset after WM_SETHANDLE / WM_SETTEXT.
Added heap initialization in WM_CREATE.
Fri May 3 19:30:02 1996 Greg Kreider <kreider@natlab.research.philips.com>
* [controls/combo.c] [controls/listbox.c]
Pass WM_[HV]SCROLL to listbox, but not combo.
Don't try to redraw non-existant scroll bars (changes dwStyle flags).
Combo box gets border.
Combo box includes button (otherwise button won't trigger dropdown).
Proper border around RectButton.
Check size consistancy of combo, listbox, and button after resizing
or before painting. These routines still aren't completely correct.
Localize size checks in separate routines.
Listboxes are white.
Thu May 2 19:21:23 1996 Albrecht Kleine <kleine@ak.sax.de>
* [controls/combo.c][include/commdlg.h][include/commdlg.c]
[resources/sysres_De.rc][resources/sysres_En.rc]
Introduced ChooseFont dialog, but needed some patches in
handling of comboboxes with edit controls.
Tue Apr 30 00:33:27 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [programs/winhelp/*]
Added a help viewer and a simple `.hlp' to `.sgml' converter.
Mon Apr 29 14:17:57 1996 Tristan Tarrant <tst@sthinc.demon.co.uk>
* [resources/sysres_*.rc] [misc/shell.c]
Modified size of "About" dialog boxes.
Sat Apr 27 18:10:11 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [if1632/Makefile.in][loader/builtin.c]
crtdll.spec, ntdll.spec, wsock32.spec: new files.
* [loader/pe_image.c]
Fix error message if import by ordinal failed.
----------------------------------------------------------------------
Sun Apr 28 14:32:43 1996 Alexandre Julliard <julliard@lrc.epfl.ch>

View File

@ -1,7 +1,8 @@
This is intended to be a document to help new developers get started.
Existing developers should feel free to add their comments.
MEMORY AND SEGMENTS:
MEMORY AND SEGMENTS
===================
NE (Win16) executables consist of multiple segments. The Wine loader
loads each segment into a unique location in the Wine processes memory
@ -41,7 +42,59 @@ pointers, instead of something like 'LPSTR' or 'char *'. As SEGPTR is
defined as a DWORD, you'll get a compilation warning if you mistakenly
use it as a regular 32-bit pointer.
API ENTRY POINTS:
NAMING CONVENTIONS FOR API FUNCTIONS AND TYPES
==============================================
In order to support both Win16 and Win32 APIs within the same source
code, as well as share the include files between the emulator and the
library, the following convention must be used in naming all API
functions and types. If the Windows API uses the name 'xxx', the Wine
code must use:
- 'xxx16' for the 16-bit version,
- 'xxx32' for the 32-bit version when no ASCII/Unicode strings are
involved,
- 'xxx32A' for the 32-bit version with ASCII strings,
- 'xxx32W' for the 32-bit version with Unicode strings.
You should then use the macros WINELIB_NAME[_AW](xxx) or
DECL_WINELIB_TYPE[_AW](xxx) (defined in include/wintypes.h) to define
the correct 'xxx' function or type for Winelib. When compiling the
emulator, 'xxx' is _not_ defined, meaning that you must always specify
explicitly whether you want the 16-bit or 32-bit version.
Note: if 'xxx' is the same in Win16 and Win32, you can simply use the
same name as Windows.
Examples:
typedef short INT16;
typedef int INT32;
DECL_WINELIB_TYPE(INT);
typedef struct { /* Win32 ASCII data structure */ } WNDCLASS32A;
typedef struct { /* Win32 Unicode data structure */ } WNDCLASS32W;
typedef struct { /* Win16 data structure */ } WNDCLASS16;
DECL_WINELIB_TYPE_AW(WNDCLASS);
ATOM RegisterClass16( WNDCLASS16 * );
ATOM RegisterClass32A( WNDCLASS32A * );
ATOM RegisterClass32W( WNDCLASS32W * );
#define RegisterClass WINELIB_NAME_AW(RegisterClass)
The Winelib user can then say:
INT i;
WNDCLASS wc = { ... };
RegisterClass( &wc );
and this will use the correct declaration depending on the definition
of the symbols WINELIB16, WINELIB32 and UNICODE.
API ENTRY POINTS
================
Because Win16 programs use a 16-bit stack and because they can only
call 16:16 addressed functions, all API entry points must be at low
@ -57,7 +110,9 @@ files contain tables used by relay.c to translate arguments and transfer
control to the proper handler. The format of the *.spec files is
documented in the file "tools/build-spec.txt".
DEBUG MESSAGES:
DEBUG MESSAGES
==============
To display a message only during debugging, you normally write something
like this:

View File

@ -125,6 +125,9 @@ install_libwine.so.1.0: dummy
$(ALLSUBDIRS): dummy
@cd $@; $(SUBMAKE)
install_programs: dummy
@cd programs; $(SUBMAKE) install
depend:
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) depend); done

2
configure vendored
View File

@ -2049,6 +2049,7 @@ multimedia/Makefile
objects/Makefile
programs/Makefile
programs/progman/Makefile
programs/winhelp/Makefile
rc/Makefile
resources/Makefile
tools/Makefile
@ -2123,6 +2124,7 @@ multimedia/Makefile
objects/Makefile
programs/Makefile
programs/progman/Makefile
programs/winhelp/Makefile
rc/Makefile
resources/Makefile
tools/Makefile

View File

@ -99,6 +99,7 @@ multimedia/Makefile
objects/Makefile
programs/Makefile
programs/progman/Makefile
programs/winhelp/Makefile
rc/Makefile
resources/Makefile
tools/Makefile

View File

@ -98,6 +98,8 @@ D) Known bugs.
- The clipboard is broken. Whenever things go wrong with
cut/copy/paste, it is probably the clipboard that messes up things,
not edit.c.
- Turning on WordWrap with Notepad leaves part of the horizontal
scrollbar visible (problem with WM_ERASEBKGND ???).
I am still very actively changing things. Especially I am working

View File

@ -8,6 +8,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
@ -32,9 +33,24 @@
* I hope no programs rely on the implementation of combos.
*/
/*
* May 2nd: I added 3 "work arounds" (#1,#2,#3) to make combos
* with EDIT work. (We need that for ChooseFont dialog.)
* Perhaps we have to rewrite something more.
* I have prepared some more stuff, but it doesn't
* contain here, because it's not ready ;-)
*
* If you're writing on combo.c, please mail to me.
*
* Albrecht Kleine <kleine@ak.sax.de>
*/
#define CBLMM_EDGE 4 /* distance inside box which is same as moving mouse
outside box, to trigger scrolling of CBL */
static BOOL CBCheckSize(HWND hwnd);
static BOOL CBLCheckSize(HWND hwnd);
static HBITMAP hComboBit = 0;
static WORD CBitHeight, CBitWidth;
@ -70,14 +86,17 @@ int CreateComboStruct(HWND hwnd, LONG style)
lphc->hWndLBox = 0;
lphc->dwState = 0;
lphc->LastSel = -1;
lphc->dwStyle = style;
lphc->dwStyle = style;
lphc->DropDownVisible = FALSE;
return TRUE;
}
void ComboUpdateWindow(HWND hwnd, LPHEADLIST lphl, LPHEADCOMBO lphc, BOOL repaint)
{
SetScrollRange(lphc->hWndLBox, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
WND *wndPtr = WIN_FindWndPtr(hwnd);
if (wndPtr->dwStyle & WS_VSCROLL)
SetScrollRange(lphc->hWndLBox,SB_VERT,0,ListMaxFirstVisible(lphl),TRUE);
if (repaint && lphl->bRedrawFlag) {
InvalidateRect(hwnd, NULL, TRUE);
}
@ -93,7 +112,7 @@ static LRESULT CBNCCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (!hComboBit) COMBO_Init();
createStruct = (CREATESTRUCT *)PTR_SEG_TO_LIN(lParam);
createStruct->style &= ~(WS_VSCROLL | WS_HSCROLL);
createStruct->style |= WS_BORDER;
SetWindowLong(hwnd, GWL_STYLE, createStruct->style);
dprintf_combo(stddeb,"ComboBox WM_NCCREATE!\n");
@ -111,10 +130,12 @@ static LRESULT CBCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
LONG style = 0;
LONG cstyle = GetWindowLong(hwnd,GWL_STYLE);
RECT rect,lboxrect;
WND* wndPtr = WIN_FindWndPtr(hwnd);
char className[] = "COMBOLBOX"; /* Hack so that class names are > 0x10000 */
char editName[] = "EDIT";
/* translate combo into listbox styles */
cstyle |= WS_BORDER;
if (cstyle & CBS_OWNERDRAWFIXED) style |= LBS_OWNERDRAWFIXED;
if (cstyle & CBS_OWNERDRAWVARIABLE) style |= LBS_OWNERDRAWVARIABLE;
if (cstyle & CBS_SORT) style |= LBS_SORT;
@ -122,19 +143,22 @@ static LRESULT CBCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
style |= LBS_NOTIFY;
CreateListBoxStruct(hwnd, ODT_COMBOBOX, style, GetParent(hwnd));
CreateComboStruct(hwnd,cstyle);
lphl = ComboGetListHeader(hwnd);
lphc = ComboGetStorageHeader(hwnd);
GetClientRect(hwnd,&rect);
GetWindowRect(hwnd,&lboxrect);
/* FIXME: combos with edit controls are broken. */
switch(cstyle & 3) {
case CBS_SIMPLE: /* edit control, list always visible */
dprintf_combo(stddeb,"CBS_SIMPLE\n");
SetRectEmpty(&lphc->RectButton);
lboxrect=rect; /* work around #1 */
lphc->LBoxTop = lphl->StdItemHeight;
lphc->hWndEdit = CreateWindow(MAKE_SEGPTR(editName), (SEGPTR)0,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | SS_LEFT,
lphc->hWndEdit = CreateWindow16(MAKE_SEGPTR(editName), (SEGPTR)0,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | SS_LEFT | WS_BORDER,
0, 0, rect.right, lphl->StdItemHeight,
hwnd, (HMENU)1, WIN_GetWindowInstance(hwnd), 0L);
break;
@ -147,7 +171,7 @@ static LRESULT CBCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
SetWindowPos(hwnd, 0, 0, 0, rect.right - rect.left + 2*SYSMETRICS_CXBORDER,
lphl->StdItemHeight + 2*SYSMETRICS_CYBORDER,
SWP_NOMOVE | SWP_NOZORDER);
lphc->hWndEdit = CreateWindow(MAKE_SEGPTR(editName), (SEGPTR)0,
lphc->hWndEdit = CreateWindow16(MAKE_SEGPTR(editName), (SEGPTR)0,
WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | SS_LEFT,
0, 0, lphc->RectButton.left, lphl->StdItemHeight,
hwnd, (HMENU)1, WIN_GetWindowInstance(hwnd), 0L);
@ -158,8 +182,9 @@ static LRESULT CBCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
lphc->RectButton.left = lphc->RectButton.right - 6 - CBitWidth;
lphc->RectButton.bottom = lphc->RectButton.top + lphl->StdItemHeight;
lphc->LBoxTop = lphl->StdItemHeight;
SetWindowPos(hwnd, 0, 0, 0, rect.right - rect.left + 2*SYSMETRICS_CXBORDER,
lphl->StdItemHeight + 2*SYSMETRICS_CYBORDER,
SetWindowPos(hwnd, 0, 0, 0, rect.right,
lphl->StdItemHeight + 2*SYSMETRICS_CYBORDER,
SWP_NOMOVE | SWP_NOZORDER);
break;
}
@ -167,16 +192,45 @@ static LRESULT CBCreate(HWND hwnd, WPARAM wParam, LPARAM lParam)
/* FIXME: WinSight says these should be CHILD windows with the TOPMOST flag
* set. Wine doesn't support TOPMOST, and simply setting the WS_CHILD
* flag doesn't work. */
lphc->hWndLBox = CreateWindow(MAKE_SEGPTR(className), (SEGPTR)0,
WS_POPUP | WS_BORDER | WS_VSCROLL,
if ((cstyle & 3)==CBS_SIMPLE) /* work around #2 */
{
lphc->hWndLBox = CreateWindow16(MAKE_SEGPTR(className), (SEGPTR)0,
WS_BORDER | WS_CHILD | WS_VISIBLE |
((cstyle & WS_HSCROLL)? WS_HSCROLL : 0) |
((cstyle & WS_VSCROLL)? WS_VSCROLL : 0),
lboxrect.left +8 , lboxrect.top,
lboxrect.right - lboxrect.left - 8,
lboxrect.bottom - lboxrect.top,
hwnd,0, WIN_GetWindowInstance(hwnd),
(SEGPTR)hwnd );
}
else
{
lphc->hWndLBox = CreateWindow16(MAKE_SEGPTR(className), (SEGPTR)0,
WS_POPUP | WS_BORDER |
((cstyle & WS_HSCROLL)? WS_HSCROLL : 0) |
((cstyle & WS_VSCROLL)? WS_VSCROLL : 0),
lboxrect.left, lboxrect.top,
lboxrect.right - lboxrect.left,
lboxrect.bottom - lboxrect.top,
0, 0, WIN_GetWindowInstance(hwnd),
(SEGPTR)hwnd );
ShowWindow(lphc->hWndLBox, SW_HIDE);
dprintf_combo(stddeb,"Combo Creation LBox=%04x\n", lphc->hWndLBox);
return 0;
ShowWindow(lphc->hWndLBox, SW_HIDE);
}
wndPtr->dwStyle &= ~(WS_VSCROLL | WS_HSCROLL);
dprintf_combo( stddeb, "Combo Creation hwnd=%04x LBox=%04x\n",
hwnd, lphc->hWndLBox);
dprintf_combo( stddeb, " lbox %d,%d-%d,%d button %d,%d-%d,%d\n",
lboxrect.left, lboxrect.top, lboxrect.right, lboxrect.bottom,
lphc->RectButton.left, lphc->RectButton.top,
lphc->RectButton.right, lphc->RectButton.bottom );
dprintf_combo( stddeb, " client %d,%d-%d,%d window %d,%d-%d,%d\n",
wndPtr->rectClient.left, wndPtr->rectClient.top,
wndPtr->rectClient.right, wndPtr->rectClient.bottom,
wndPtr->rectWindow.left, wndPtr->rectWindow.top,
wndPtr->rectWindow.right, wndPtr->rectWindow.bottom );
return 0;
}
/***********************************************************************
@ -205,14 +259,12 @@ static LRESULT CBPaint(HWND hwnd, WPARAM wParam, LPARAM lParam)
HFONT hOldFont;
HDC hdc;
RECT rect;
int height;
hdc = BeginPaint(hwnd, &ps);
if (hComboBit != 0) {
if (hComboBit != 0 && !IsRectEmpty(&lphc->RectButton)) { /* work around #3 */
GRAPH_DrawReliefRect(hdc, &lphc->RectButton, 2, 2, FALSE);
GRAPH_DrawBitmap(hdc, hComboBit,
lphc->RectButton.left + 3,lphc->RectButton.top + 2,
lphc->RectButton.left + 2,lphc->RectButton.top + 2,
0, 0, CBitWidth, CBitHeight );
}
if (!IsWindowVisible(hwnd) || !lphl->bRedrawFlag
@ -234,12 +286,12 @@ static LRESULT CBPaint(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (hBrush == 0) hBrush = GetStockObject(WHITE_BRUSH);
GetClientRect(hwnd, &rect);
CBCheckSize(hwnd);
rect.right -= (lphc->RectButton.right - lphc->RectButton.left);
lpls = ListBoxGetItem(lphl,lphl->ItemFocused);
if (lpls != NULL) {
height = lpls->mis.itemHeight;
rect.bottom = rect.top + height;
FillRect(hdc, &rect, hBrush);
ListBoxDrawItem (hwnd, lphl, hdc, lpls, &rect, ODA_DRAWENTIRE, 0);
if (GetFocus() == hwnd)
@ -389,7 +441,6 @@ static LRESULT CBInsertString(HWND hwnd, WPARAM wParam, LPARAM lParam)
wRet = ListBoxInsertString(lphl, wParam, (LPSTR)PTR_SEG_TO_LIN(lParam));
else
wRet = ListBoxInsertString(lphl, wParam, (LPSTR)lParam);
ComboUpdateWindow(hwnd, lphl, lphc, TRUE);
return wRet;
}
@ -592,6 +643,59 @@ static LRESULT CBShowDropDown(HWND hwnd, WPARAM wParam, LPARAM lParam)
}
/***********************************************************************
* CBCheckSize
*/
static BOOL CBCheckSize(HWND hwnd)
{
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
LPHEADLIST lphl = ComboGetListHeader(hwnd);
LONG cstyle = GetWindowLong(hwnd,GWL_STYLE);
RECT cRect,wRect;
/* TODO - The size of combo's and their listboxes is still broken */
if (lphc->hWndLBox == 0) return FALSE;
GetClientRect(hwnd,&cRect);
GetWindowRect(hwnd,&wRect);
dprintf_vxd(stddeb,"CBCheckSize: cRect %d,%d-%d,%d wRect %d,%d-%d,%d\n",
cRect.left,cRect.top,cRect.right,cRect.bottom,
wRect.left,wRect.top,wRect.right,wRect.bottom);
if ((cRect.bottom - cRect.top) >
(lphl->StdItemHeight + 2*SYSMETRICS_CYBORDER)) {
SetWindowPos(hwnd, 0, 0, 0,
cRect.right-cRect.left,
lphl->StdItemHeight+2*SYSMETRICS_CYBORDER,
SWP_NOMOVE | SWP_NOZORDER | SWP_NOREDRAW | SWP_NOACTIVATE );
GetClientRect(hwnd,&cRect);
GetWindowRect(hwnd,&wRect);
}
switch (cstyle & 3) {
case CBS_SIMPLE:
break;
case CBS_DROPDOWN:
case CBS_DROPDOWNLIST:
lphc->RectButton.right = cRect.right;
lphc->RectButton.left = cRect.right - 2*SYSMETRICS_CXBORDER - 4
- CBitWidth;
lphc->RectButton.top = cRect.top;
lphc->RectButton.bottom = cRect.bottom;
break;
default:
fprintf(stderr,"CBCheckSize: style %lx not recognized!\n",cstyle);
return FALSE;
}
CBLCheckSize(hwnd);
return TRUE;
}
/***********************************************************************
* ComboWndProc
*/
@ -610,6 +714,7 @@ LRESULT ComboBoxWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_LBUTTONDOWN: return CBLButtonDown(hwnd, wParam, lParam);
case WM_SETFOCUS: return CBSetFocus(hwnd, wParam, lParam);
case WM_KILLFOCUS: return CBKillFocus(hwnd, wParam, lParam);
case WM_SIZE: return CBCheckSize(hwnd);
case CB_RESETCONTENT: return CBResetContent(hwnd, wParam, lParam);
case CB_DIR: return CBDir(hwnd, wParam, lParam);
case CB_ADDSTRING: return CBAddString(hwnd, wParam, lParam);
@ -736,6 +841,7 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM wParam, LPARAM lParam )
PAINTSTRUCT ps;
HBRUSH hBrush;
HFONT hOldFont;
WND * wndPtr = WIN_FindWndPtr(hwnd);
HWND combohwnd = CLBoxGetCombo(hwnd);
HDC hdc;
RECT rect;
@ -750,17 +856,12 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM wParam, LPARAM lParam )
}
hOldFont = SelectObject(hdc, lphl->hFont);
#ifdef WINELIB32
hBrush = SendMessage(lphl->hParent, WM_CTLCOLORLISTBOX, hdc, hwnd);
#else
hBrush = SendMessage(lphl->hParent, WM_CTLCOLOR, hdc,
MAKELONG(hwnd, CTLCOLOR_LISTBOX));
#endif
if (hBrush == 0) hBrush = GetStockObject(WHITE_BRUSH);
/* listboxes should be white */
hBrush = GetStockObject(WHITE_BRUSH);
GetClientRect(hwnd, &rect);
FillRect(hdc, &rect, hBrush);
CBLCheckSize(hwnd);
lpls = lphl->lpFirst;
@ -797,7 +898,10 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM wParam, LPARAM lParam )
lpls = lpls->lpNext;
}
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
if (wndPtr->dwStyle & WS_VSCROLL)
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
SelectObject(hdc,hOldFont);
EndPaint( hwnd, &ps );
return 0;
@ -967,6 +1071,57 @@ static LRESULT CBLVScroll( HWND hwnd, WPARAM wParam, LPARAM lParam )
return 0;
}
/***********************************************************************
* CBLCheckSize
*/
static BOOL CBLCheckSize(HWND hwnd)
{
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
LPHEADLIST lphl = ComboGetListHeader(hwnd);
LPLISTSTRUCT lpls;
HWND hWndLBox;
RECT cRect,wRect,lRect,lwRect;
int totheight;
char className[80];
GetClassName(hwnd,className,80);
fflush(stddeb);
if (strncmp(className,"COMBOBOX",8)) return FALSE;
if ((hWndLBox = lphc->hWndLBox) == 0) return FALSE;
dprintf_vxd(stddeb,"CBLCheckSize headers hw %04x lb %04x name %s\n",
hwnd,hWndLBox,className);
GetClientRect(hwnd,&cRect);
GetWindowRect(hwnd,&wRect);
GetClientRect(hWndLBox,&lRect);
GetWindowRect(hWndLBox,&lwRect);
dprintf_vxd(stddeb,"CBLCheckSize: init cRect %d,%d-%d,%d wRect %d,%d-%d,%d\n",
cRect.left,cRect.top,cRect.right,cRect.bottom,
wRect.left,wRect.top,wRect.right,wRect.bottom);
dprintf_vxd(stddeb," lRect %d,%d-%d,%d lwRect %d,%d-%d,%d\n",
lRect.left,lRect.top,lRect.right,lRect.bottom,
lwRect.left,lwRect.top,lwRect.right,lwRect.bottom);
fflush(stddeb);
totheight = 0;
for (lpls=lphl->lpFirst; lpls != NULL; lpls=lpls->lpNext)
totheight += lpls->mis.itemHeight;
/* TODO: This isn't really what windows does */
if (lRect.bottom-lRect.top < 3*lphl->StdItemHeight) {
dprintf_vxd(stddeb," Changing; totHeight %d StdItemHght %d\n",
totheight,lphl->StdItemHeight);
SetWindowPos(hWndLBox, 0, lRect.left, lRect.top,
lwRect.right-lwRect.left, totheight+2*SYSMETRICS_CYBORDER,
SWP_NOMOVE | SWP_NOZORDER | SWP_NOREDRAW | SWP_NOACTIVATE );
}
return TRUE;
}
/***********************************************************************
* ComboLBoxWndProc
*/
@ -984,6 +1139,7 @@ LRESULT ComboLBoxWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_LBUTTONUP: return CBLLButtonUp(hwnd, wParam, lParam);
case WM_MOUSEMOVE: return CBLMouseMove(hwnd, wParam, lParam);
case WM_VSCROLL: return CBLVScroll(hwnd, wParam, lParam);
case WM_SIZE: return CBLCheckSize(hwnd);
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

View File

@ -48,7 +48,7 @@ typedef struct {
typedef struct
{
UINT TextWidth; /* width of the widest line in pixels */
HLOCAL hBuf;
HLOCAL16 hBuf;
char *text;
HFONT hFont;
LINEDEF *LineDefs;
@ -64,7 +64,7 @@ typedef struct
UINT SelStart; /* offset of selection start, == SelEnd if no selection */
UINT SelEnd; /* offset of selection end == current caret position */
UINT NumTabStops;
LPINT TabStops;
LPINT16 TabStops;
EDITWORDBREAKPROC WordBreakProc;
char PasswordChar;
} EDITSTATE;
@ -858,7 +858,7 @@ static void EDIT_InvalidateText(WND *wndPtr, UINT start, UINT end)
RECT rcWnd;
RECT rcLine;
RECT rcUpdate;
UINT line;
UINT l;
if (end == start )
return;
@ -894,10 +894,10 @@ static void EDIT_InvalidateText(WND *wndPtr, UINT start, UINT end)
&rcLine);
if (IntersectRect(&rcUpdate, &rcWnd, &rcLine))
InvalidateRect(wndPtr->hwndSelf, &rcUpdate, FALSE);
for (line = sl + 1 ; line < el ; line++) {
EDIT_GetLineRect(wndPtr, line, 0,
for (l = sl + 1 ; l < el ; l++) {
EDIT_GetLineRect(wndPtr, l, 0,
(UINT)EDIT_EM_LineLength(wndPtr,
(UINT)EDIT_EM_LineIndex(wndPtr, line, 0L), 0L),
(UINT)EDIT_EM_LineIndex(wndPtr, l, 0L), 0L),
&rcLine);
if (IntersectRect(&rcUpdate, &rcWnd, &rcLine))
InvalidateRect(wndPtr->hwndSelf, &rcUpdate, FALSE);
@ -1262,7 +1262,7 @@ static UINT EDIT_PaintText(WND *wndPtr, HDC hdc, INT x, INT y, UINT line, UINT c
UINT ret;
char *text;
UINT li;
INT xoff;
UINT xoff;
if (!count)
return 0;
@ -1318,7 +1318,7 @@ static LRESULT EDIT_ReplaceSel(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
const char *str = (char *)lParam;
int strl = strlen(str);
int tl = EDIT_WM_GetTextLength(wndPtr, 0, 0L);
UINT tl = (UINT)EDIT_WM_GetTextLength(wndPtr, 0, 0L);
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
int i;
@ -1365,24 +1365,24 @@ static LRESULT EDIT_ReplaceSel(WND *wndPtr, WPARAM wParam, LPARAM lParam)
static void EDIT_ScrollIntoView(WND *wndPtr)
{
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
int l = EDIT_EM_LineFromChar(wndPtr, e, 0L);
int lineindex = EDIT_EM_LineIndex(wndPtr, l, 0L);
int firstvis = (int)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
int vislinecount = EDIT_GetVisibleLineCount(wndPtr);
int wndwidth = EDIT_GetWndWidth(wndPtr);
int charwidth = EDIT_GetAveCharWidth(wndPtr);
int x = EDIT_WndXFromCol(wndPtr, l, e - lineindex);
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT vlc = EDIT_GetVisibleLineCount(wndPtr);
UINT ww = EDIT_GetWndWidth(wndPtr);
UINT cw = EDIT_GetAveCharWidth(wndPtr);
INT x = EDIT_WndXFromCol(wndPtr, l, e - li);
int dy = 0;
int dx = 0;
if (l >= firstvis + vislinecount)
dy = l - vislinecount + 1 - firstvis;
if (l < firstvis)
dy = l - firstvis;
if (l >= fv + vlc)
dy = l - vlc + 1 - fv;
if (l < fv)
dy = l - fv;
if (x < 0)
dx = x - wndwidth / HSCROLL_FRACTION / charwidth * charwidth;
if (x > wndwidth)
dx = x - (HSCROLL_FRACTION - 1) * wndwidth / HSCROLL_FRACTION / charwidth * charwidth;
dx = x - ww / HSCROLL_FRACTION / cw * cw;
if (x > ww)
dx = x - (HSCROLL_FRACTION - 1) * ww / HSCROLL_FRACTION / cw * cw;
if (dy || dx) {
EDIT_EM_LineScroll(wndPtr, 0, MAKELPARAM(dy, dx));
if (dy)
@ -1404,24 +1404,24 @@ static INT EDIT_WndXFromCol(WND *wndPtr, UINT line, UINT col)
{
EDITSTATE *es = EDITSTATEPTR(wndPtr);
char *text = EDIT_GetPointer(wndPtr);
int ret;
INT ret;
HDC hdc;
HFONT hFont;
HFONT oldFont = 0;
int linecount = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
int lineindex = EDIT_EM_LineIndex(wndPtr, line, 0L);
int linelength = EDIT_EM_LineLength(wndPtr, lineindex, 0L);
int xoffset = EDIT_GetXOffset(wndPtr);
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, line, 0L);
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, li, 0L);
UINT xoff = EDIT_GetXOffset(wndPtr);
hdc = GetDC(wndPtr->hwndSelf);
hFont = (HFONT)EDIT_WM_GetFont(wndPtr, 0, 0L);
if (hFont)
oldFont = SelectObject(hdc, hFont);
line = MAX(0, MIN(line, linecount - 1));
col = MAX(0, MIN(col, linelength));
line = MAX(0, MIN(line, lc - 1));
col = MIN(col, ll);
ret = LOWORD(GetTabbedTextExtent(hdc,
text + lineindex, col,
es->NumTabStops, es->TabStops)) - xoffset;
text + li, col,
es->NumTabStops, es->TabStops)) - xoff;
if (hFont)
SelectObject(hdc, oldFont);
ReleaseDC(wndPtr->hwndSelf, hdc);
@ -1438,10 +1438,10 @@ static INT EDIT_WndXFromCol(WND *wndPtr, UINT line, UINT col)
*/
static INT EDIT_WndYFromLine(WND *wndPtr, UINT line)
{
int firstvis = (int)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
int lineheight = EDIT_GetLineHeight(wndPtr);
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT lh = EDIT_GetLineHeight(wndPtr);
return (line - firstvis) * lineheight;
return (line - fv) * lh;
}
@ -1458,7 +1458,7 @@ static INT EDIT_WndYFromLine(WND *wndPtr, UINT line)
*/
static INT EDIT_WordBreakProc(char *s, INT index, INT count, INT action)
{
int ret = 0;
INT ret = 0;
dprintf_edit(stddeb, "edit: EDIT_WordBreakProc: s=%p, index=%d"
", count=%d, action=%d\n", s, index, count, action);
@ -1582,17 +1582,17 @@ static LRESULT EDIT_EM_GetLine(WND *wndPtr, WPARAM wParam, LPARAM lParam)
char *src;
char *dst;
UINT len;
int i;
int linecount = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
UINT i;
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
if (!IsMultiLine(wndPtr))
wParam = 0;
if ((UINT)wParam >= linecount)
if ((UINT)wParam >= lc)
return 0L;
text = EDIT_GetPointer(wndPtr);
src = text + EDIT_EM_LineIndex(wndPtr, wParam, 0L);
src = text + (UINT)EDIT_EM_LineIndex(wndPtr, wParam, 0L);
dst = (char *)PTR_SEG_TO_LIN(lParam);
len = MIN(*(WORD *)dst, EDIT_EM_LineLength(wndPtr, wParam, 0L));
len = MIN(*(WORD *)dst, (UINT)EDIT_EM_LineLength(wndPtr, wParam, 0L));
for (i = 0 ; i < len ; i++) {
*dst = *src;
src++;
@ -1669,7 +1669,7 @@ static LRESULT EDIT_EM_GetSel(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*
* EM_GETTHUMB
*
* undocumented: is this right ?
* FIXME: undocumented: is this right ?
*
*/
static LRESULT EDIT_EM_GetThumb(WND *wndPtr, WPARAM wParam, LPARAM lParam)
@ -1723,14 +1723,14 @@ static LRESULT EDIT_EM_LimitText(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_EM_LineFromChar(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
int l;
UINT l;
if (!IsMultiLine(wndPtr))
return 0L;
if ((INT)wParam == -1)
wParam = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
l = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L) - 1;
while (EDIT_EM_LineIndex(wndPtr, l, 0L) > (UINT)wParam)
l = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L) - 1;
while ((UINT)EDIT_EM_LineIndex(wndPtr, l, 0L) > (UINT)wParam)
l--;
return (LRESULT)l;
}
@ -1745,16 +1745,17 @@ static LRESULT EDIT_EM_LineIndex(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
EDITSTATE *es = EDITSTATEPTR(wndPtr);
UINT e;
int l;
UINT l;
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
if ((INT)wParam == -1) {
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
l = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L) - 1;
l = lc - 1;
while (es->LineDefs[l].offset > e)
l--;
return (LRESULT)es->LineDefs[l].offset;
}
if ((UINT)wParam >= es->LineCount)
if ((UINT)wParam >= lc)
return -1L;
return (LRESULT)es->LineDefs[(UINT)wParam].offset;
}
@ -1768,21 +1769,21 @@ static LRESULT EDIT_EM_LineIndex(WND *wndPtr, WPARAM wParam, LPARAM lParam)
static LRESULT EDIT_EM_LineLength(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
EDITSTATE *es = EDITSTATEPTR(wndPtr);
UINT selstart;
UINT selend;
int startline;
int endline;
UINT s;
UINT e;
UINT sl;
UINT el;
if (!IsMultiLine(wndPtr))
return (LRESULT)es->LineDefs[0].length;
if ((INT)wParam == -1) {
selstart = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
selend = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
startline = EDIT_EM_LineFromChar(wndPtr, selstart, 0L);
endline = EDIT_EM_LineFromChar(wndPtr, selend, 0L);
return (LRESULT)(selstart - es->LineDefs[startline].offset +
es->LineDefs[endline].offset +
es->LineDefs[endline].length - selend);
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
sl = (UINT)EDIT_EM_LineFromChar(wndPtr, s, 0L);
el = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
return (LRESULT)(s - es->LineDefs[sl].offset +
es->LineDefs[el].offset +
es->LineDefs[el].length - e);
}
return (LRESULT)es->LineDefs[(UINT)EDIT_EM_LineFromChar(wndPtr, wParam, 0L)].length;
}
@ -1796,28 +1797,24 @@ static LRESULT EDIT_EM_LineLength(WND *wndPtr, WPARAM wParam, LPARAM lParam)
static LRESULT EDIT_EM_LineScroll(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
EDITSTATE *es = EDITSTATEPTR(wndPtr);
int linecount = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
int firstvis = (int)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
int newfirstvis = firstvis + (INT)LOWORD(lParam);
int xoffset = EDIT_GetXOffset(wndPtr);
int newxoffset = xoffset + (INT)HIWORD(lParam);
int textwidth = EDIT_GetTextWidth(wndPtr);
int dx;
int dy;
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT nfv = MAX(0, fv + (INT)LOWORD(lParam));
UINT xoff = EDIT_GetXOffset(wndPtr);
UINT nxoff = MAX(0, xoff + (INT)HIWORD(lParam));
UINT tw = EDIT_GetTextWidth(wndPtr);
INT dx;
INT dy;
POINT pos;
HRGN hRgn;
if (newfirstvis < 0)
newfirstvis = 0;
if (newfirstvis >= linecount)
newfirstvis = linecount - 1;
if (nfv >= lc)
nfv = lc - 1;
if (newxoffset < 0)
newxoffset = 0;
if (newxoffset >= textwidth)
newxoffset = textwidth;
dx = xoffset - newxoffset;
dy = EDIT_WndYFromLine(wndPtr, firstvis) - EDIT_WndYFromLine(wndPtr, newfirstvis);
if (nxoff >= tw)
nxoff = tw;
dx = xoff - nxoff;
dy = EDIT_WndYFromLine(wndPtr, fv) - EDIT_WndYFromLine(wndPtr, nfv);
if (dx || dy) {
if (wndPtr->hwndSelf == GetFocus())
HideCaret(wndPtr->hwndSelf);
@ -1830,8 +1827,8 @@ static LRESULT EDIT_EM_LineScroll(WND *wndPtr, WPARAM wParam, LPARAM lParam)
DeleteObject(hRgn);
ScrollWindow(wndPtr->hwndSelf, dx, dy, NULL, NULL);
}
es->FirstVisibleLine = newfirstvis;
es->XOffset = newxoffset;
es->FirstVisibleLine = nfv;
es->XOffset = nxoff;
if (IsVScrollBar(wndPtr))
SetScrollPos(wndPtr->hwndSelf, SB_VERT,
EDIT_WM_VScroll(wndPtr, EM_GETTHUMB, 0L), TRUE);
@ -1888,7 +1885,7 @@ static LRESULT EDIT_EM_SetHandle(WND *wndPtr, WPARAM wParam, LPARAM lParam)
/*
* old buffer is freed by caller
*/
es->hBuf = (HLOCAL)wParam;
es->hBuf = (HLOCAL16)wParam;
es->BufSize = LOCAL_Size(wndPtr->hInstance, es->hBuf) - 1;
es->LineCount = 0;
es->FirstVisibleLine = 0;
@ -1898,6 +1895,7 @@ static LRESULT EDIT_EM_SetHandle(WND *wndPtr, WPARAM wParam, LPARAM lParam)
EDIT_BuildLineDefs(wndPtr);
if (EDIT_GetRedraw(wndPtr))
InvalidateRect(wndPtr->hwndSelf, NULL, TRUE);
EDIT_ScrollIntoView(wndPtr);
}
return 0L;
}
@ -1982,9 +1980,9 @@ static LRESULT EDIT_EM_SetSel(WND *wndPtr, WPARAM wParam, LPARAM lParam)
UINT ne = HIWORD(lParam);
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
int el;
int elineindex;
int tl = EDIT_WM_GetTextLength(wndPtr, 0, 0L);
UINT el;
UINT eli;
UINT tl = (UINT)EDIT_WM_GetTextLength(wndPtr, 0, 0L);
if ((INT)ns == -1) {
ns = e;
@ -1997,9 +1995,9 @@ static LRESULT EDIT_EM_SetSel(WND *wndPtr, WPARAM wParam, LPARAM lParam)
es->SelStart = ns;
es->SelEnd = ne;
if (wndPtr->hwndSelf == GetFocus()) {
el = EDIT_EM_LineFromChar(wndPtr, ne, 0L);
elineindex = EDIT_EM_LineIndex(wndPtr, el, 0L);
SetCaretPos(EDIT_WndXFromCol(wndPtr, el, ne - elineindex),
el = (UINT)EDIT_EM_LineFromChar(wndPtr, ne, 0L);
eli = (UINT)EDIT_EM_LineIndex(wndPtr, el, 0L);
SetCaretPos(EDIT_WndXFromCol(wndPtr, el, ne - eli),
EDIT_WndYFromLine(wndPtr, el));
}
if (!wParam)
@ -2038,9 +2036,9 @@ static LRESULT EDIT_EM_SetTabStops(WND *wndPtr, WPARAM wParam, LPARAM lParam)
if (!wParam)
es->TabStops = NULL;
else {
es->TabStops = (LPINT)xmalloc(wParam * sizeof(unsigned short));
memcpy(es->TabStops, (LPINT)PTR_SEG_TO_LIN(lParam),
(UINT)wParam * sizeof(INT));
es->TabStops = (LPINT16)xmalloc(wParam * sizeof(INT16));
memcpy(es->TabStops, (LPINT16)PTR_SEG_TO_LIN(lParam),
(UINT)wParam * sizeof(INT16));
}
return 1L;
}
@ -2158,14 +2156,14 @@ static LRESULT EDIT_WM_Copy(WND *wndPtr, WPARAM wParam, LPARAM lParam)
if (e == s)
return -1L;
ORDER_UINT(s, e);
hdst = GlobalAlloc(GMEM_MOVEABLE, (DWORD)(e - s + 1));
dst = GlobalLock(hdst);
hdst = GlobalAlloc16(GMEM_MOVEABLE, (DWORD)(e - s + 1));
dst = GlobalLock16(hdst);
text = EDIT_GetPointer(wndPtr);
src = text + s;
for (i = 0 ; i < e - s ; i++)
*dst++ = *src++;
*dst = '\0';
GlobalUnlock(hdst);
GlobalUnlock16(hdst);
OpenClipboard(wndPtr->hwndSelf);
EmptyClipboard();
SetClipboardData(CF_TEXT, hdst);
@ -2208,8 +2206,15 @@ static LRESULT EDIT_WM_Create(WND *wndPtr, WPARAM wParam, LPARAM lParam)
es->BufLimit = BUFLIMIT_SINGLE;
es->PasswordChar = (cs->style & ES_PASSWORD) ? '*' : '\0';
}
if (!LOCAL_HeapSize(wndPtr->hInstance)) {
if (!LocalInit(wndPtr->hInstance, 0, GlobalSize(wndPtr->hInstance))) {
fprintf(stderr, "edit: WM_CREATE: could not initialize local heap\n");
return -1L;
}
dprintf_edit(stddeb, "edit: WM_CREATE: local heap initialized\n");
}
if (!(es->hBuf = LOCAL_Alloc(wndPtr->hInstance, LMEM_MOVEABLE, es->BufSize + 1))) {
fprintf(stderr, "edit: WM_CREATE: unable to heap buffer, please report !\n");
fprintf(stderr, "edit: WM_CREATE: unable to allocate buffer\n");
return -1L;
}
es->BufSize = LOCAL_Size(wndPtr->hInstance, es->hBuf) - 1;
@ -2348,11 +2353,9 @@ static LRESULT EDIT_WM_GetText(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_WM_GetTextLength(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
LRESULT ret;
char *text = EDIT_GetPointer(wndPtr);
ret = (LRESULT)strlen(text);
return ret;
return (LRESULT)strlen(text);
}
@ -2365,43 +2368,43 @@ static LRESULT EDIT_WM_GetTextLength(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_WM_HScroll(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
int wndwidth = EDIT_GetWndWidth(wndPtr);
int textwidth = EDIT_GetTextWidth(wndPtr);
int charwidth = EDIT_GetAveCharWidth(wndPtr);
int xoffset = EDIT_GetXOffset(wndPtr);
int dx = 0;
UINT ww = EDIT_GetWndWidth(wndPtr);
UINT tw = EDIT_GetTextWidth(wndPtr);
UINT cw = EDIT_GetAveCharWidth(wndPtr);
UINT xoff = EDIT_GetXOffset(wndPtr);
INT dx = 0;
BOOL not = TRUE;
LRESULT ret = 0L;
switch (wParam) {
case SB_LINELEFT:
dx = -charwidth;
dx = -cw;
break;
case SB_LINERIGHT:
dx = charwidth;
dx = cw;
break;
case SB_PAGELEFT:
dx = -wndwidth / HSCROLL_FRACTION / charwidth * charwidth;
dx = -ww / HSCROLL_FRACTION / cw * cw;
break;
case SB_PAGERIGHT:
dx = wndwidth / HSCROLL_FRACTION / charwidth * charwidth;
dx = ww / HSCROLL_FRACTION / cw * cw;
break;
case SB_LEFT:
dx = -xoffset;
dx = -xoff;
break;
case SB_RIGHT:
dx = textwidth - xoffset;
dx = tw - xoff;
break;
case SB_THUMBTRACK:
/*
* not = FALSE;
*/
case SB_THUMBPOSITION:
dx = LOWORD(lParam) * textwidth / 100 - xoffset;
dx = LOWORD(lParam) * tw / 100 - xoff;
break;
/* The next two are undocumented ! */
case EM_GETTHUMB:
ret = textwidth ? MAKELONG(xoffset * 100 / textwidth, 0) : 0;
ret = tw ? MAKELONG(xoff * 100 / tw, 0) : 0;
break;
case EM_LINESCROLL:
dx = LOWORD(lParam);
@ -2539,11 +2542,11 @@ static LRESULT EDIT_WM_KillFocus(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_WM_LButtonDblClk(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
int s;
UINT s;
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
UINT l = EDIT_EM_LineFromChar(wndPtr, e, 0L);
int li = EDIT_EM_LineIndex(wndPtr, l, 0L);
int ll = EDIT_EM_LineLength(wndPtr, e, 0L);
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
char *text = EDIT_GetPointer(wndPtr);
s = li + EDIT_CallWordBreakProc(wndPtr, text + li, e - li, ll, WB_LEFT);
@ -2575,7 +2578,7 @@ static LRESULT EDIT_WM_LButtonDown(WND *wndPtr, WPARAM wParam, LPARAM lParam)
l = MIN(fv + vlc - 1, MAX(fv, l));
x = MIN(EDIT_GetWndWidth(wndPtr), MAX(0, x));
c = EDIT_ColFromWndX(wndPtr, l, x);
li = EDIT_EM_LineIndex(wndPtr, l, 0L);
li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
e = li + c;
if (GetKeyState(VK_SHIFT) & 0x8000)
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
@ -2625,7 +2628,7 @@ static LRESULT EDIT_WM_MouseMove(WND *wndPtr, WPARAM wParam, LPARAM lParam)
x = MIN(EDIT_GetWndWidth(wndPtr), MAX(0, x));
c = EDIT_ColFromWndX(wndPtr, l, x);
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
li = EDIT_EM_LineIndex(wndPtr, l, 0L);
li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
EDIT_EM_SetSel(wndPtr, 1, MAKELPARAM(s, li + c));
}
return 0L;
@ -2639,10 +2642,11 @@ static LRESULT EDIT_WM_MouseMove(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
EDITSTATE *es = EDITSTATEPTR(wndPtr);
PAINTSTRUCT ps;
int i;
int firstvis = (int)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT i;
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT vlc = EDIT_GetVisibleLineCount(wndPtr);
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
HDC hdc;
HFONT hFont;
HFONT oldFont = 0;
@ -2663,7 +2667,7 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM wParam, LPARAM lParam)
if (!IsWindowEnabled(wndPtr->hwndSelf))
SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));
GetClipBox(hdc, &rcRgn);
for (i = firstvis ; i <= MIN(firstvis + EDIT_GetVisibleLineCount(wndPtr), firstvis + es->LineCount - 1) ; i++ ) {
for (i = fv ; i <= MIN(fv + vlc, fv + lc - 1) ; i++ ) {
EDIT_GetLineRect(wndPtr, i, 0, -1, &rcLine);
if (IntersectRect(&rc, &rcRgn, &rcLine))
EDIT_PaintLine(wndPtr, hdc, i, rev);
@ -2687,9 +2691,9 @@ static LRESULT EDIT_WM_Paste(WND *wndPtr, WPARAM wParam, LPARAM lParam)
OpenClipboard(wndPtr->hwndSelf);
if ((hsrc = GetClipboardData(CF_TEXT))) {
src = (char *)GlobalLock(hsrc);
src = (char *)GlobalLock16(hsrc);
EDIT_ReplaceSel(wndPtr, 0, (LPARAM)src);
GlobalUnlock(hsrc);
GlobalUnlock16(hsrc);
}
CloseClipboard();
return -1L;
@ -2749,7 +2753,7 @@ static LRESULT EDIT_WM_SetFont(WND *wndPtr, WPARAM wParam, LPARAM lParam)
if (es->hFont)
oldFont = SelectObject(hdc, es->hFont);
GetTextMetrics(hdc, &tm);
es->LineHeight = HIWORD(GetTextExtent(hdc, "", 0));
es->LineHeight = HIWORD(GetTextExtent(hdc, "X", 1));
es->AveCharWidth = tm.tmAveCharWidth;
if (es->hFont)
SelectObject(hdc, oldFont);
@ -2794,6 +2798,7 @@ static LRESULT EDIT_WM_SetText(WND *wndPtr, WPARAM wParam, LPARAM lParam)
EDIT_EM_ReplaceSel(wndPtr, 0, lParam);
EDIT_EM_EmptyUndoBuffer(wndPtr, 0, 0L);
EDIT_EM_SetModify(wndPtr, TRUE, 0L);
EDIT_ScrollIntoView(wndPtr);
return 0L;
}
@ -2825,10 +2830,10 @@ static LRESULT EDIT_WM_Size(WND *wndPtr, WPARAM wParam, LPARAM lParam)
*/
static LRESULT EDIT_WM_VScroll(WND *wndPtr, WPARAM wParam, LPARAM lParam)
{
int linecount = (int)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
int firstvis = (int)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
int vislinecount = EDIT_GetVisibleLineCount(wndPtr);
int dy = 0;
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
UINT vlc = EDIT_GetVisibleLineCount(wndPtr);
INT dy = 0;
BOOL not = TRUE;
LRESULT ret = 0L;
@ -2840,27 +2845,27 @@ static LRESULT EDIT_WM_VScroll(WND *wndPtr, WPARAM wParam, LPARAM lParam)
dy = 1;
break;
case SB_PAGEUP:
dy = -vislinecount;
dy = -vlc;
break;
case SB_PAGEDOWN:
dy = vislinecount;
dy = vlc;
break;
case SB_TOP:
dy = -firstvis;
dy = -fv;
break;
case SB_BOTTOM:
dy = linecount - 1 - firstvis;
dy = lc - 1 - fv;
break;
case SB_THUMBTRACK:
/*
* not = FALSE;
*/
case SB_THUMBPOSITION:
dy = LOWORD(lParam) * (linecount - 1) / 100 - firstvis;
dy = LOWORD(lParam) * (lc - 1) / 100 - fv;
break;
/* The next two are undocumented ! */
case EM_GETTHUMB:
ret = (linecount > 1) ? MAKELONG(firstvis * 100 / (linecount - 1), 0) : 0L;
ret = (lc > 1) ? MAKELONG(fv * 100 / (lc - 1), 0) : 0L;
break;
case EM_LINESCROLL:
dy = LOWORD(lParam);

View File

@ -130,14 +130,9 @@ void CreateListBoxStruct(HWND hwnd, WORD CtlType, LONG styles, HWND parent)
lphl->hDrawItemStruct = 0;
}
#if 0
HeapHandle = GlobalAlloc(GMEM_FIXED, LIST_HEAP_SIZE);
HeapBase = GlobalLock(HeapHandle);
HEAP_Init(&lphl->Heap, HeapBase, LIST_HEAP_SIZE);
#endif
/* WINELIBS list boxes do not operate on local heaps */
#ifndef WINELIB
lphl->HeapSel = GlobalAlloc(GMEM_FIXED,LIST_HEAP_SIZE);
lphl->HeapSel = GlobalAlloc16(GMEM_FIXED,LIST_HEAP_SIZE);
LocalInit( lphl->HeapSel, 0, LIST_HEAP_SIZE-1);
#else
lphl->HeapSel = 0;
@ -150,7 +145,7 @@ void DestroyListBoxStruct(LPHEADLIST lphl)
USER_HEAP_FREE(lphl->hDrawItemStruct);
/* XXX need to free lphl->Heap */
GlobalFree(lphl->HeapSel);
GlobalFree16(lphl->HeapSel);
free(lphl);
}
@ -184,11 +179,14 @@ int ListMaxFirstVisible(LPHEADLIST lphl)
void ListBoxUpdateWindow(HWND hwnd, LPHEADLIST lphl, BOOL repaint)
{
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
if (lphl->ItemsPerColumn != 0) {
WND *wndPtr = WIN_FindWndPtr(hwnd);
if (wndPtr->dwStyle & WS_VSCROLL)
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
if ((wndPtr->dwStyle & WS_HSCROLL) && (lphl->ItemsPerColumn != 0))
SetScrollRange(hwnd, SB_HORZ, 1, lphl->ItemsVisible /
lphl->ItemsPerColumn + 1, TRUE);
}
if (repaint && lphl->bRedrawFlag) {
InvalidateRect(hwnd, NULL, TRUE);
}
@ -328,7 +326,8 @@ void ListBoxAskMeasure(LPHEADLIST lphl, LPLISTSTRUCT lpls)
SendMessage(lphl->hParent, WM_MEASUREITEM, 0, (LPARAM)USER_HEAP_SEG_ADDR(hTemp));
if (lphl->dwStyle & LBS_OWNERDRAWFIXED) {
lphl->StdItemHeight = lpmeasure->itemHeight;
if (lpmeasure->itemHeight > lphl->StdItemHeight)
lphl->StdItemHeight = lpmeasure->itemHeight;
lpls->mis.itemHeight = lpmeasure->itemHeight;
}
@ -356,6 +355,7 @@ LPLISTSTRUCT ListBoxCreateItem(LPHEADLIST lphl, int id)
}
int ListBoxInsertString(LPHEADLIST lphl, UINT uIndex, LPCSTR newstr)
{
LPLISTSTRUCT *lppls, lplsnew, lpls;
@ -393,7 +393,7 @@ int ListBoxInsertString(LPHEADLIST lphl, UINT uIndex, LPCSTR newstr)
hStr = LIST_HEAP_ALLOC(lphl, LMEM_MOVEABLE, strlen(newstr) + 1);
str = (LPSTR)LIST_HEAP_ADDR(lphl, hStr);
if (str == NULL) return LB_ERRSPACE;
strcpy(str, newstr);
strcpy(str, newstr);
lplsnew->itemText = str;
/* I'm not so sure about the next one */
lplsnew->mis.itemData = 0;
@ -783,8 +783,10 @@ static LONG LBCreate(HWND hwnd, WORD wParam, LONG lParam)
GetClientRect(hwnd,&rect);
lphl->ColumnsWidth = rect.right - rect.left;
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
SetScrollRange(hwnd, SB_HORZ, 1, 1, TRUE);
if (dwStyle & WS_VSCROLL)
SetScrollRange(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
if (dwStyle & WS_HSCROLL)
SetScrollRange(hwnd, SB_HORZ, 1, 1, TRUE);
return 0;
}
@ -1307,7 +1309,6 @@ static LONG LBPaint(HWND hwnd, WORD wParam, LONG lParam)
RECT rect, paintRect, scratchRect;
int i, top, height, maxwidth, ipc;
top = 0;
if (!IsWindowVisible(hwnd) || !lphl->bRedrawFlag) {

View File

@ -62,9 +62,12 @@ static BOOL fEndMenuCalled = FALSE;
((DWORD)MAKELONG( (WORD)(item)->hText, (item)->xTab ))
extern void NC_DrawSysButton(HWND hwnd, HDC hdc, BOOL down); /* nonclient.c */
static HMENU MENU_CopySysMenu(void);
static HBITMAP hStdCheck = 0;
static HBITMAP hStdMnArrow = 0;
static HMENU MENU_DefSysMenu = 0; /* Default system menu */
/* we _can_ use global popup window because there's no way 2 menues can
* be tracked at the same time.
@ -95,10 +98,26 @@ BOOL MENU_Init()
arrow_bitmap_width = bm.bmWidth;
arrow_bitmap_height = bm.bmHeight;
if (!(MENU_DefSysMenu = MENU_CopySysMenu()))
{
fprintf( stderr, "Unable to create default system menu\n" );
return FALSE;
}
return TRUE;
}
/***********************************************************************
* MENU_GetDefSysMenu
*
* Return the default system menu.
*/
HMENU MENU_GetDefSysMenu(void)
{
return MENU_DefSysMenu;
}
/***********************************************************************
* MENU_HasSysMenu
*
@ -124,7 +143,7 @@ static HMENU MENU_CopySysMenu(void)
POPUPMENU *menu;
if (!(handle = SYSRES_LoadResource( SYSRES_MENU_SYSMENU ))) return 0;
hMenu = LoadMenuIndirect( WIN16_GlobalLock( handle ) );
hMenu = LoadMenuIndirect( WIN16_GlobalLock16( handle ) );
SYSRES_FreeResource( handle );
if (!hMenu)
{
@ -246,7 +265,7 @@ static UINT MENU_FindItemByKey( HWND hwndOwner, HMENU hmenu, UINT key )
int i;
LONG menuchar;
if (!IsMenu( hmenu )) hmenu = GetSystemMenu( hwndOwner, FALSE);
if (!IsMenu( hmenu )) hmenu = WIN_FindWndPtr(hwndOwner)->hSysMenu;
if (!hmenu) return -1;
menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hmenu );
@ -692,7 +711,7 @@ BOOL MENU_SwitchTPWndTo( HTASK hTask)
{
/* This is supposed to be called when popup is hidden */
TDB* task = (TDB*)GlobalLock(hTask);
TDB* task = (TDB*)GlobalLock16(hTask);
if( !task ) return 0;
@ -730,7 +749,7 @@ static BOOL MENU_ShowPopup(HWND hwndOwner, HMENU hmenu, UINT id, int x, int y)
if (!pTopPWnd)
{
pTopPWnd = WIN_FindWndPtr(CreateWindow( POPUPMENU_CLASS_ATOM, (SEGPTR)0,
pTopPWnd = WIN_FindWndPtr(CreateWindow16( POPUPMENU_CLASS_ATOM, (SEGPTR)0,
WS_POPUP | WS_BORDER, x, y,
menu->Width + 2*SYSMETRICS_CXBORDER,
menu->Height + 2*SYSMETRICS_CYBORDER,
@ -742,7 +761,7 @@ static BOOL MENU_ShowPopup(HWND hwndOwner, HMENU hmenu, UINT id, int x, int y)
if( uSubPWndLevel )
{
/* create new window for the submenu */
HWND hWnd = CreateWindow( POPUPMENU_CLASS_ATOM, (SEGPTR)0,
HWND hWnd = CreateWindow16( POPUPMENU_CLASS_ATOM, (SEGPTR)0,
WS_POPUP | WS_BORDER, x, y,
menu->Width + 2*SYSMETRICS_CXBORDER,
menu->Height + 2*SYSMETRICS_CYBORDER,
@ -818,12 +837,12 @@ static void MENU_SelectItem( HWND hwndOwner, HMENU hmenu, UINT wIndex )
#ifdef WINELIB32
/* FIX: LostInfo */
SendMessage( hwndOwner, WM_MENUSELECT,
MAKEWPARAM( (DWORD)GetSystemMenu( lppop->hWnd, FALSE ),
MAKEWPARAM( WIN_FindWndPtr(lppop->hWnd)->hSysMenu,
lppop->wFlags | MF_MOUSESELECT ),
(LPARAM)hmenu );
#else
SendMessage( hwndOwner, WM_MENUSELECT,
GetSystemMenu( lppop->hWnd, FALSE ),
WIN_FindWndPtr(lppop->hWnd)->hSysMenu,
MAKELONG( lppop->wFlags | MF_MOUSESELECT, hmenu ) );
#endif
}
@ -1111,7 +1130,7 @@ static HMENU MENU_GetSubPopup( HMENU hmenu )
menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hmenu );
if (menu->FocusedItem == NO_SELECTED_ITEM) return 0;
else if (menu->FocusedItem == SYSMENU_SELECTED)
return GetSystemMenu( menu->hWnd, FALSE );
return WIN_FindWndPtr(menu->hWnd)->hSysMenu;
item = ((MENUITEM *)USER_HEAP_LIN_ADDR(menu->hItems)) + menu->FocusedItem;
if (!(item->item_flags & MF_POPUP) || !(item->item_flags & MF_MOUSESELECT))
@ -1135,7 +1154,7 @@ static void MENU_HideSubPopups( HWND hwndOwner, HMENU hmenu )
if (menu->FocusedItem == NO_SELECTED_ITEM) return;
if (menu->FocusedItem == SYSMENU_SELECTED)
{
hsubmenu = GetSystemMenu( menu->hWnd, FALSE );
hsubmenu = WIN_FindWndPtr(menu->hWnd)->hSysMenu;
}
else
{
@ -1345,7 +1364,7 @@ static BOOL MENU_ButtonUp( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
{
if (!MENU_IsInSysMenu( menu, pt )) return FALSE;
id = SYSMENU_SELECTED;
hsubmenu = GetSystemMenu( menu->hWnd, FALSE );
hsubmenu = WIN_FindWndPtr(menu->hWnd)->hSysMenu;
}
if (menu->FocusedItem != id) return FALSE;
@ -1498,7 +1517,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, int x, int y,
HWND hwnd, LPRECT lprect )
{
MSG *msg;
HLOCAL hMsg;
HLOCAL16 hMsg;
POPUPMENU *menu;
HMENU hmenuCurrent = hmenu;
BOOL fClosed = FALSE, fRemove;
@ -2219,7 +2238,10 @@ BOOL DestroyMenu(HMENU hMenu)
{
LPPOPUPMENU lppop;
dprintf_menu(stddeb,"DestroyMenu (%04x) !\n", hMenu);
if (hMenu == 0) return FALSE;
/* Silently ignore attempts to destroy default system menu */
if (hMenu == MENU_DefSysMenu) return TRUE;
lppop = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu);
if (!lppop || (lppop->wMagic != MENU_MAGIC)) return FALSE;
lppop->wMagic = 0; /* Mark it as destroyed */
@ -2252,6 +2274,11 @@ HMENU GetSystemMenu(HWND hWnd, BOOL bRevert)
WND *wndPtr = WIN_FindWndPtr( hWnd );
if (!wndPtr) return 0;
if (!wndPtr->hSysMenu || (wndPtr->hSysMenu == MENU_DefSysMenu))
{
wndPtr->hSysMenu = MENU_CopySysMenu();
return wndPtr->hSysMenu;
}
if (!bRevert) return wndPtr->hSysMenu;
if (wndPtr->hSysMenu) DestroyMenu(wndPtr->hSysMenu);
wndPtr->hSysMenu = MENU_CopySysMenu();
@ -2267,7 +2294,8 @@ BOOL SetSystemMenu( HWND hwnd, HMENU hMenu )
WND *wndPtr;
if (!(wndPtr = WIN_FindWndPtr(hwnd))) return FALSE;
if (wndPtr->hSysMenu) DestroyMenu( wndPtr->hSysMenu );
if (wndPtr->hSysMenu && (wndPtr->hSysMenu != MENU_DefSysMenu))
DestroyMenu( wndPtr->hSysMenu );
wndPtr->hSysMenu = hMenu;
return TRUE;
}

View File

@ -956,7 +956,7 @@ DWORD SCROLL_SetNCSbState(WND* wndPtr, int vMin, int vMax, int vPos,
/*************************************************************************
* GetScrollRange (USER.65)
*/
void GetScrollRange(HWND hwnd, int nBar, LPINT lpMin, LPINT lpMax)
void GetScrollRange(HWND hwnd, int nBar, LPINT16 lpMin, LPINT16 lpMax)
{
SCROLLINFO *infoPtr;

View File

@ -58,10 +58,10 @@ static HICON STATIC_SetIcon( WND *wndPtr, HICON hicon )
infoPtr->hIcon = hicon;
if (hicon)
{
CURSORICONINFO *info = (CURSORICONINFO *) GlobalLock( hicon );
CURSORICONINFO *info = (CURSORICONINFO *) GlobalLock16( hicon );
SetWindowPos( wndPtr->hwndSelf, 0, 0, 0, info->nWidth, info->nHeight,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER );
GlobalUnlock( hicon );
GlobalUnlock16( hicon );
}
return prevIcon;
}

View File

@ -15,7 +15,7 @@
#include "module.h"
#include "stackframe.h"
static WNDCLASS WIDGETS_BuiltinClasses[] =
static WNDCLASS16 WIDGETS_BuiltinClasses[] =
{
{ CS_GLOBALCLASS | CS_DBLCLKS | CS_VREDRAW | CS_HREDRAW | CS_PARENTDC,
(WNDPROC)"ButtonWndProc", 0, sizeof(BUTTONINFO),
@ -61,7 +61,7 @@ BOOL WIDGETS_Init(void)
{
int i;
char name[20];
WNDCLASS *class = WIDGETS_BuiltinClasses;
WNDCLASS16 *class = WIDGETS_BuiltinClasses;
for (i = 0; i < NB_BUILTIN_CLASSES; i++, class++)
{
@ -69,7 +69,7 @@ BOOL WIDGETS_Init(void)
class->lpszClassName = MAKE_SEGPTR(name);
class->hCursor = LoadCursor( 0, IDC_ARROW );
class->lpfnWndProc = MODULE_GetWndProcEntry16( (char *)class->lpfnWndProc );
if (!RegisterClass( class )) return FALSE;
if (!RegisterClass16( class )) return FALSE;
}
return TRUE;
}

View File

@ -241,7 +241,7 @@ void DEBUG_LoadEntryPoints(void)
/* Now search the non-resident names table */
if (!pModule->nrname_handle) continue; /* No non-resident table */
cpnt = (char *)GlobalLock( pModule->nrname_handle );
cpnt = (char *)GlobalLock16( pModule->nrname_handle );
while (*cpnt)
{
cpnt += *cpnt + 1 + sizeof(WORD);

View File

@ -1,26 +0,0 @@
1 2 0c17 GETOPENFILENAME exported, shared data
2 2 0c48 GETSAVEFILENAME exported, shared data
5 1 0ea1 CHOOSECOLOR exported, shared data
6 2 42a3 FILEOPENDLGPROC exported, shared data
7 2 446a FILESAVEDLGPROC exported, shared data
8 1 0197 COLORDLGPROC exported, shared data
9 6 0000 LOADALTERBITMAP exported, shared data
11 5 0000 FINDTEXT exported, shared data
12 5 019c REPLACETEXT exported, shared data
13 5 036d FINDTEXTDLGPROC exported, shared data
14 5 0582 REPLACETEXTDLGPROC exported, shared data
15 4 0000 CHOOSEFONT exported, shared data
16 4 02b0 FORMATCHARDLGPROC exported, shared data
18 4 184e FONTSTYLEENUMPROC exported, shared data
19 4 1096 FONTFAMILYENUMPROC exported, shared data
20 3 0c94 PRINTDLG exported, shared data
21 3 371f PRINTDLGPROC exported, shared data
22 3 307a PRINTSETUPDLGPROC exported, shared data
23 3 0000 EDITINTEGERONLY exported, shared data
25 1 1b46 WANTARROWS exported, shared data
26 6 01e7 COMMDLGEXTENDEDERROR exported, shared data
27 2 0c79 GETFILETITLE exported, shared data
28 6 01ad WEP exported, shared data
29 2 10a5 DWLBSUBCLASS exported, shared data
30 3 0056 DWUPARROWHACK exported, shared data
31 2 100f DWOKSUBCLASS exported, shared data

View File

@ -1,38 +0,0 @@
1 2 002c WEP exported, shared data
2 1 0010 DDEINITIALIZE exported, shared data
3 1 03ae DDEUNINITIALIZE exported, shared data
4 1 068a DDECONNECTLIST exported, shared data
5 1 0948 DDEQUERYNEXTSERVER exported, shared data
6 1 0a46 DDEDISCONNECTLIST exported, shared data
7 1 0aac DDECONNECT exported, shared data
8 1 0b4a DDEDISCONNECT exported, shared data
9 1 0dac DDEQUERYCONVINFO exported, shared data
10 1 1020 DDESETUSERHANDLE exported, shared data
11 1 1204 DDECLIENTTRANSACTION exported, shared data
12 1 1bf0 DDEABANDONTRANSACTION exported, shared data
13 1 1118 DDEPOSTADVISE exported, shared data
14 1 14e8 DDECREATEDATAHANDLE exported, shared data
15 1 1598 DDEADDDATA exported, shared data
16 1 17a8 DDEGETDATA exported, shared data
17 1 188a DDEACCESSDATA exported, shared data
18 1 1916 DDEUNACCESSDATA exported, shared data
19 1 1946 DDEFREEDATAHANDLE exported, shared data
20 1 14a8 DDEGETLASTERROR exported, shared data
21 1 19a4 DDECREATESTRINGHANDLE exported, shared data
22 1 1a40 DDEFREESTRINGHANDLE exported, shared data
23 1 1b14 DDEQUERYSTRING exported, shared data
24 1 1aac DDEKEEPSTRINGHANDLE exported, shared data
26 1 1d98 DDEENABLECALLBACK exported, shared data
27 1 1ed4 DDENAMESERVICE exported, shared data
28 1 4614 CLIENTWNDPROC exported, shared data
29 1 523a SERVERWNDPROC exported, shared data
30 1 5480 SUBFRAMEWNDPROC exported, shared data
31 1 5558 DMGWNDPROC exported, shared data
32 1 5758 CONVLISTWNDPROC exported, shared data
33 1 35f2 MONITORWNDPROC exported, shared data
34 1 2fb0 DDESENDHOOKPROC exported, shared data
35 1 309e DDEPOSTHOOKPROC exported, shared data
36 1 1bb0 DDECMPSTRINGHANDLES exported, shared data
37 1 0be0 DDERECONNECT exported, shared data
38 1 6b8a INITENUM exported, shared data
39 1 036a TERMDLGPROC exported, shared data

View File

@ -1,283 +0,0 @@
1 1 4e0c SETBKCOLOR exported, shared data
2 1 4e22 SETBKMODE exported
3 1 4b46 SETMAPMODE exported, shared data
4 1 4e6b SETROP2 exported
5 1 5218 SETRELABS exported
6 1 4eb9 SETPOLYFILLMODE exported
7 1 4e92 SETSTRETCHBLTMODE exported
8 1 4a00 SETTEXTCHARACTEREXTRA exported, shared data
9 1 4df8 SETTEXTCOLOR exported, shared data
10 1 49ec SETTEXTJUSTIFICATION exported, shared data
11 1 4ee0 SETWINDOWORG exported, shared data
12 4 06c8 SETWINDOWEXT exported
13 1 4f14 SETVIEWPORTORG exported, shared data
14 4 06fc SETVIEWPORTEXT exported
15 1 4b12 OFFSETWINDOWORG exported
16 4 0764 SCALEWINDOWEXT exported
17 1 4ade OFFSETVIEWPORTORG exported
18 4 0730 SCALEVIEWPORTEXT exported
19 21 0e96 LINETO exported, shared data
20 21 0eaa MOVETO exported, shared data
21 1 4c50 EXCLUDECLIPRECT exported
22 1 4c84 INTERSECTCLIPRECT exported
23 9 1030 ARC exported, shared data
24 9 101c ELLIPSE exported, shared data
25 15 08fc FLOODFILL exported, shared data
26 9 1044 PIE exported, shared data
27 25 0000 RECTANGLE exported, shared data
28 9 106c ROUNDRECT exported, shared data
29 1 4c14 PATBLT exported, shared data
30 1 48cb SAVEDC exported, shared data
31 23 0383 SETPIXEL exported, shared data
32 1 4d3a OFFSETCLIPRGN exported, shared data
33 1 4f95 TEXTOUT exported, shared data
34 1 4bfa BITBLT exported, shared data
35 1 4be0 STRETCHBLT exported, shared data
36 24 0000 POLYGON exported, shared data
37 21 0ede POLYLINE exported, shared data
38 7 06d1 ESCAPE exported, shared data
39 1 48b7 RESTOREDC exported, shared data
40 26 0000 FILLRGN exported, shared data
41 26 003a FRAMERGN exported, shared data
42 1 4dbd INVERTRGN exported, shared data
43 26 0020 PAINTRGN exported, shared data
44 1 4c98 SELECTCLIPRGN exported, shared data
45 1 4dd7 SELECTOBJECT exported, shared data
46 1 79f4 __GP exported, shared data
47 1 4d4e COMBINERGN exported, shared data
48 1 4929 CREATEBITMAP exported, shared data
49 1 4943 CREATEBITMAPINDIRECT exported, shared data
50 4 05d7 CREATEBRUSHINDIRECT exported, shared data
51 4 05f1 CREATECOMPATIBLEBITMAP exported
52 1 47c4 CREATECOMPATIBLEDC exported, shared data
53 1 480a CREATEDC exported
54 9 020e CREATEELLIPTICRGN exported, shared data
55 9 0f99 CREATEELLIPTICRGNINDIRECT exported, shared data
56 3 1589 CREATEFONT exported, shared data
57 3 15b1 CREATEFONTINDIRECT exported, shared data
58 4 05a7 CREATEHATCHBRUSH exported, shared data
59 1 1ec0 WEP exported, shared data
60 4 05c3 CREATEPATTERNBRUSH exported, shared data
61 1 48f3 CREATEPEN exported, shared data
62 1 490f CREATEPENINDIRECT exported, shared data
63 9 0fb3 CREATEPOLYGONRGN exported, shared data
64 1 59cd CREATERECTRGN exported, shared data
65 1 4cb2 CREATERECTRGNINDIRECT exported, shared data
66 4 017a CREATESOLIDBRUSH exported, shared data
67 1 4a14 DPTOLP exported
68 1 4897 DELETEDC exported, shared data
69 1 48df DELETEOBJECT exported, shared data
70 5 05a7 ENUMFONTS exported, shared data
71 4 0678 ENUMOBJECTS exported, shared data
72 1 4ccc EQUALRGN exported, shared data
73 1 16a5 EXCLUDEVISRECT exported
74 1 4a76 GETBITMAPBITS exported
75 1 515d GETBKCOLOR exported, shared data
76 1 5142 GETBKMODE exported
77 1 4c64 GETCLIPBOX exported, shared data
78 1 5157 GETCURRENTPOSITION exported
79 1 5154 GETDCORG exported
80 1 4a96 GETDEVICECAPS exported, shared data
81 1 513f GETMAPMODE exported
82 4 06a8 GETOBJECT exported, shared data
83 23 036f GETPIXEL exported, shared data
84 1 5139 GETPOLYFILLMODE exported
85 1 5133 GETROP2 exported
86 1 5145 GETRELABS exported
87 1 4a5a GETSTOCKOBJECT exported, shared data
88 1 513c GETSTRETCHBLTMODE exported
89 16 0c63 GETTEXTCHARACTEREXTRA exported, shared data
90 1 5160 GETTEXTCOLOR exported, shared data
91 1 4b8d GETTEXTEXTENT exported, shared data
92 3 166a GETTEXTFACE exported, shared data
93 3 169a GETTEXTMETRICS exported, shared data
94 1 5151 GETVIEWPORTEXT exported
95 1 514b GETVIEWPORTORG exported
96 1 514e GETWINDOWEXT exported
97 1 5148 GETWINDOWORG exported
98 1 16a2 INTERSECTVISRECT exported
99 1 4a37 LPTODP exported
100 23 039b LINEDDA exported, shared data
101 1 4d26 OFFSETRGN exported, shared data
102 1 2929 OFFSETVISRGN exported, shared data
103 1 4da9 PTVISIBLE exported, shared data
104 1 4d06 RECTVISIBLE exported, shared data
105 1 1635 SELECTVISRGN exported, shared data
106 1 4aaa SETBITMAPBITS exported
117 1 1118 SETDCORG exported, shared data
119 2 0e25 ADDFONTRESOURCE exported, shared data
121 1 2067 DEATH exported, shared data
122 1 208e RESURRECTION exported, shared data
123 19 1603 PLAYMETAFILE exported, shared data
124 19 1624 GETMETAFILE exported, shared data
125 20 248b CREATEMETAFILE exported, shared data
126 20 24a5 CLOSEMETAFILE exported, shared data
127 19 15ef DELETEMETAFILE exported, shared data
128 1 41b0 MULDIV exported, shared data
129 1 076c SAVEVISRGN exported, shared data
130 1 07b2 RESTOREVISRGN exported, shared data
131 1 200a INQUIREVISRGN exported, shared data
132 7 073d SETENVIRONMENT exported, shared data
133 7 0707 GETENVIRONMENT exported, shared data
134 1 4b6d GETRGNBOX exported, shared data
135 15 087f SCANLR exported, shared data
136 6 0507 REMOVEFONTRESOURCE exported, shared data
148 1 4c28 SETBRUSHORG exported, shared data
149 1 515a GETBRUSHORG exported
150 1 4c3c UNREALIZEOBJECT exported, shared data
151 20 246b COPYMETAFILE exported, shared data
153 1 47d8 CREATEIC exported
154 1 4aca GETNEARESTCOLOR exported, shared data
155 7 052d QUERYABORT exported, shared data
156 4 0605 CREATEDISCARDABLEBITMAP exported
159 20 24b9 GETMETAFILEBITS exported, shared data
160 20 24cd SETMETAFILEBITS exported, shared data
161 1 4d95 PTINREGION exported, shared data
162 1 49b8 GETBITMAPDIMENSION exported, shared data
163 1 4984 SETBITMAPDIMENSION exported, shared data
169 1 4352 ISDCDIRTY exported, shared data
170 1 439b SETDCSTATUS exported, shared data
172 1 4d81 SETRECTRGN exported, shared data
173 1 5130 GETCLIPRGN exported, shared data
175 19 166a ENUMMETAFILE exported, shared data
176 19 163e PLAYMETAFILERECORD exported, shared data
179 1 0601 GETDCSTATE exported, shared data
180 1 0615 SETDCSTATE exported, shared data
181 1 4ce6 RECTINREGION exported, shared data
190 31 04ec SETDCHOOK exported, shared data
191 31 04b5 GETDCHOOK exported, shared data
192 1 76b0 SETHOOKFLAGS exported, shared data
193 31 0526 SETBOUNDSRECT exported, shared data
194 1 76e4 GETBOUNDSRECT exported, shared data
195 1 1ac6 SELECTBITMAP exported, shared data
196 20 24e1 SETMETAFILEBITSBETTER exported, shared data
201 13 014a DMBITBLT exported
202 13 014f DMCOLORINFO exported
206 13 0163 DMENUMDFONTS exported
207 13 0169 DMENUMOBJ exported
208 13 0159 DMOUTPUT exported
209 13 0154 DMPIXEL exported
210 13 015e DMREALIZEOBJECT exported
211 13 00df DMSTRBLT exported, shared data
212 13 016e DMSCANLR exported
213 13 0171 BRUTE exported, shared data
214 13 0000 DMEXTTEXTOUT exported, shared data
215 13 0130 DMGETCHARWIDTH exported, shared data
216 13 0136 DMSTRETCHBLT exported, shared data
217 13 013b DMDIBBITS exported, shared data
218 13 0140 DMSTRETCHDIBITS exported, shared data
219 13 0145 DMSETDIBTODEV exported, shared data
220 13 024d DMTRANSPOSE exported, shared data
230 27 0000 CREATEPQ exported
231 27 00fb MINPQ exported
232 27 00fe EXTRACTPQ exported
233 27 0045 INSERTPQ exported
234 27 01dc SIZEPQ exported
235 27 01cb DELETEPQ exported
240 28 01c3 OPENJOB exported, shared data
241 28 08eb WRITESPOOL exported, shared data
242 28 0e82 WRITEDIALOG exported, shared data
243 28 1292 CLOSEJOB exported, shared data
244 28 13e0 DELETEJOB exported, shared data
245 28 1802 GETSPOOLJOB exported, shared data
246 28 06a1 STARTSPOOLPAGE exported, shared data
247 28 1112 ENDSPOOLPAGE exported, shared data
248 28 18e4 QUERYJOB exported, shared data
250 28 0000 COPY exported, shared data
253 28 0ff3 DELETESPOOLPAGE exported, shared data
254 28 156f SPOOLFILE exported, shared data
300 5 093c ENGINEENUMERATEFONT exported, shared data
301 6 0560 ENGINEDELETEFONT exported, shared data
302 3 2b2d ENGINEREALIZEFONT exported, shared data
303 3 2c8a ENGINEGETCHARWIDTH exported, shared data
304 5 0993 ENGINESETFONTCONTEXT exported, shared data
305 7 09e9 ENGINEGETGLYPHBMP exported, shared data
306 7 1184 ENGINEMAKEFONTDIR exported, shared data
307 7 083d GETCHARABCWIDTHS exported, shared data
308 7 0876 GETOUTLINETEXTMETRICS exported, shared data
309 7 0795 GETGLYPHOUTLINE exported, shared data
310 7 0763 CREATESCALABLEFONTRESOURCE exported, shared data
311 7 07fc GETFONTDATA exported, shared data
312 7 0d8a CONVERTOUTLINEFONTFILE exported, shared data
313 7 0d36 GETRASTERIZERCAPS exported, shared data
314 1 669a ENGINEEXTTEXTOUT exported, shared data
330 5 05d7 ENUMFONTFAMILIES exported, shared data
332 7 0896 GETKERNINGPAIRS exported, shared data
345 1 5136 GETTEXTALIGN exported, shared data
346 1 4e49 SETTEXTALIGN exported, shared data
348 9 1058 CHORD exported, shared data
349 3 163f SETMAPPERFLAGS exported, shared data
350 3 15cb GETCHARWIDTH exported, shared data
351 1 4f48 EXTTEXTOUT exported, shared data
352 1 0a2e GETPHYSICALFONTHANDLE exported, shared data
353 3 160b GETASPECTRATIOFILTER exported, shared data
354 1 1fdf SHRINKGDIHEAP exported, shared data
355 48 02ef FTRAPPING0 exported, shared data
360 22 0023 CREATEPALETTE exported, shared data
361 22 0271 GDISELECTPALETTE exported, shared data
362 22 1088 GDIREALIZEPALETTE exported, shared data
363 22 0050 GETPALETTEENTRIES exported, shared data
364 22 00d2 SETPALETTEENTRIES exported, shared data
365 22 101d REALIZEDEFAULTPALETTE exported, shared data
366 22 0109 UPDATECOLORS exported, shared data
367 22 0000 ANIMATEPALETTE exported, shared data
368 22 00be RESIZEPALETTE exported, shared data
370 22 0073 GETNEARESTPALETTEINDEX exported, shared data
372 15 0910 EXTFLOODFILL exported, shared data
373 22 00f5 SETSYSTEMPALETTEUSE exported, shared data
374 22 00aa GETSYSTEMPALETTEUSE exported, shared data
375 22 0087 GETSYSTEMPALETTEENTRIES exported, shared data
376 31 009c RESETDC exported, shared data
377 31 0045 STARTDOC exported, shared data
378 31 002e ENDDOC exported, shared data
379 31 0068 STARTPAGE exported, shared data
380 31 0017 ENDPAGE exported, shared data
381 31 007c SETABORTPROC exported, shared data
382 31 0000 ABORTDOC exported, shared data
400 1 420e FASTWINDOWFRAME exported, shared data
401 2 0403 GDIMOVEBITMAP exported, shared data
403 2 042a GDIINIT2 exported, shared data
405 2 012e FINALGDIINIT exported, shared data
407 1 0ec1 CREATEUSERBITMAP exported
409 4 0200 CREATEUSERDISCARDABLEBITMAP exported
410 19 1490 ISVALIDMETAFILE exported, shared data
411 1 511a GETCURLOGFONT exported, shared data
412 22 0b0c ISDCCURRENTPALETTE exported, shared data
439 11 0202 STRETCHDIBITS exported, shared data
440 11 0000 SETDIBITS exported, shared data
441 11 0196 GETDIBITS exported, shared data
442 11 006c CREATEDIBITMAP exported, shared data
443 11 010a SETDIBITSTODEVICE exported, shared data
444 9 01be CREATEROUNDRECTRGN exported, shared data
445 4 0619 CREATEDIBPATTERNBRUSH exported, shared data
449 11 1015 DEVICECOLORMATCH exported, shared data
450 24 0023 POLYPOLYGON exported, shared data
451 9 0fe3 CREATEPOLYPOLYGONRGN exported, shared data
452 21 19a0 GDISEEGDIDO exported, shared data
460 1 7690 GDITASKTERMINATION exported, shared data
461 1 76a2 SETOBJECTOWNER exported, shared data
462 1 1ec6 ISGDIOBJECT exported, shared data
463 1 0e68 MAKEOBJECTPRIVATE exported, shared data
464 19 1862 FIXUPBOGUSPUBLISHERMETAFILE exported, shared data
465 1 29b7 RECTVISIBLE_EHH exported, shared data
466 1 2aab RECTINREGION_EHH exported, shared data
467 1 56a3 UNICODETOANSI exported, shared data
468 1 49cc GETBITMAPDIMENSIONEX exported, shared data
469 1 5eb5 GETBRUSHORGEX exported
470 1 5ed8 GETCURRENTPOSITIONEX exported
471 1 4bb4 GETTEXTEXTENTPOINT exported, shared data
472 1 5f27 GETVIEWPORTEXTEX exported
473 1 5f4a GETVIEWPORTORGEX exported
474 1 5f6d GETWINDOWEXTEX exported
475 1 5f90 GETWINDOWORGEX exported
476 1 4af2 OFFSETVIEWPORTORGEX exported
477 1 4b26 OFFSETWINDOWORGEX exported
478 1 4998 SETBITMAPDIMENSIONEX exported, shared data
479 4 0710 SETVIEWPORTEXTEX exported
480 1 4f28 SETVIEWPORTORGEX exported, shared data
481 4 06dc SETWINDOWEXTEX exported
482 1 4ef4 SETWINDOWORGEX exported, shared data
483 21 0ebe MOVETOEX exported, shared data
484 4 0744 SCALEVIEWPORTEXTEX exported
485 4 0778 SCALEWINDOWEXTEX exported
486 3 161f GETASPECTRATIOFILTEREX exported, shared data

View File

@ -1,233 +0,0 @@
1 1 93ce FATALEXIT exported, shared data
2 1 9d6f EXITKERNEL exported
3 3 07c6 GETVERSION exported
4 2 28b7 LOCALINIT exported
5 1 0543 LOCALALLOC exported
6 1 0587 LOCALREALLOC exported
7 1 055f LOCALFREE exported
8 1 0573 LOCALLOCK exported
9 1 05bd LOCALUNLOCK exported
10 1 05a9 LOCALSIZE exported
11 1 8d6a LOCALHANDLE exported
12 1 05d1 LOCALFLAGS exported
13 1 8d85 LOCALCOMPACT exported
14 2 0278 LOCALNOTIFY exported
15 1 022b GLOBALALLOC exported
16 1 028c GLOBALREALLOC exported
17 1 0247 GLOBALFREE exported
18 1 0278 GLOBALLOCK exported
19 1 02cb GLOBALUNLOCK exported
20 1 02b7 GLOBALSIZE exported
21 1 0264 GLOBALHANDLE exported
22 1 02e8 GLOBALFLAGS exported
23 1 03b3 LOCKSEGMENT exported
24 1 03c7 UNLOCKSEGMENT exported
25 1 1105 GLOBALCOMPACT exported
26 1 0e39 GLOBALFREEALL exported
28 1 1190 GLOBALMASTERHANDLE exported
29 1 7d21 YIELD exported
30 1 7ca8 WAITEVENT exported
31 1 7d92 POSTEVENT exported
32 1 7df0 SETPRIORITY exported
33 1 81e5 LOCKCURRENTTASK exported
34 1 7de3 SETTASKQUEUE exported
35 1 7d9d GETTASKQUEUE exported
36 1 842c GETCURRENTTASK exported
37 3 024e GETCURRENTPDB exported
38 1 7dc5 SETTASKSIGNALPROC exported
41 1 9c8e ENABLEDOS exported
42 1 9c8f DISABLEDOS exported
45 2 0244 LOADMODULE exported
46 2 0176 FREEMODULE exported
47 2 01bb GETMODULEHANDLE exported
48 2 01d2 GETMODULEUSAGE exported
49 2 01e6 GETMODULEFILENAME exported
50 2 019e GETPROCADDRESS exported
51 3 00a8 MAKEPROCINSTANCE exported
52 3 00c5 FREEPROCINSTANCE exported
53 1 4927 CALLPROCINSTANCE exported
54 2 0219 GETINSTANCEDATA exported
55 3 08ee CATCH exported
56 3 0928 THROW exported
57 1 0663 GETPROFILEINT exported, shared data
58 1 0689 GETPROFILESTRING exported, shared data
59 1 0763 WRITEPROFILESTRING exported, shared data
60 3 0008 FINDRESOURCE exported
61 1 0126 LOADRESOURCE exported
62 1 018b LOCKRESOURCE exported
63 1 0177 FREERESOURCE exported
64 1 0140 ACCESSRESOURCE exported
65 1 019f SIZEOFRESOURCE exported
66 1 015d ALLOCRESOURCE exported
67 3 002e SETRESOURCEHANDLER exported
68 3 041a INITATOMTABLE exported
69 1 4942 FINDATOM exported
70 1 493f ADDATOM exported
71 1 01b9 DELETEATOM exported
72 1 01cd GETATOMNAME exported
73 1 01fd GETATOMHANDLE exported
74 1 05e5 OPENFILE exported
75 3 04be OPENPATHNAME exported
76 3 04b6 DELETEPATHNAME exported
77 1 83cd RESERVED1 exported
78 1 83ca RESERVED2 exported
79 1 83c4 RESERVED3 exported
80 1 83c7 RESERVED4 exported
81 1 046e _LCLOSE exported
82 1 04e6 _LREAD exported
83 1 048d _LCREAT exported
84 1 04b8 _LLSEEK exported
85 1 0443 _LOPEN exported
86 1 0516 _LWRITE exported
87 1 838e RESERVED5 exported
88 1 836f LSTRCPY exported
89 1 837f LSTRCAT exported
90 1 82f6 LSTRLEN exported
91 2 268d INITTASK exported
92 3 0508 GETTEMPDRIVE exported
93 1 48fa GETCODEHANDLE exported
94 3 03ce DEFINEHANDLETABLE exported
95 2 022d LOADLIBRARY exported
96 2 018a FREELIBRARY exported
97 3 00dc GETTEMPFILENAME exported
98 1 5c17 GETLASTDISKCHANGE exported
99 1 0bc5 GETLPERRMODE exported
100 2 2ab7 VALIDATECODESEGMENTS exported
101 1 1d92 NOHOOKDOSCALL exported
102 1 1d98 DOS3CALL exported
103 1 9e19 NETBIOSCALL exported
104 1 03db GETCODEINFO exported
105 3 07d9 GETEXEVERSION exported
106 1 2ede SETSWAPAREASIZE exported
107 3 0132 SETERRORMODE exported
108 1 11c6 SWITCHSTACKTO exported
109 1 123c SWITCHSTACKBACK exported
110 1 7bac PATCHCODEHANDLE exported
111 1 02fc GLOBALWIRE exported
112 1 0310 GLOBALUNWIRE exported
113 254 0003 __AHSHIFT exported
114 254 0008 __AHINCR exported
115 1 999b OUTPUTDEBUGSTRING exported
116 2 2797 INITLIB exported
117 1 7d3e OLDYIELD exported
118 1 7da7 GETTASKQUEUEDS exported
119 1 7db5 GETTASKQUEUEES exported
120 1 72d4 UNDEFDYNLINK exported
121 1 8db0 LOCALSHRINK exported
122 1 81ff ISTASKLOCKED exported
123 1 4638 KBDRST exported
124 1 9c90 ENABLEKERNEL exported
125 1 9c91 DISABLEKERNEL exported
126 1 2ea7 MEMORYFREED exported
127 1 06d7 GETPRIVATEPROFILEINT exported, shared data
128 1 0709 GETPRIVATEPROFILESTRING exported, shared data
129 1 0795 WRITEPRIVATEPROFILESTRING exported, shared data
130 3 0888 FILECDR exported
131 3 08ce GETDOSENVIRONMENT exported
132 3 07ab GETWINFLAGS exported
133 1 4e78 GETEXEPTR exported
134 3 0054 GETWINDOWSDIRECTORY exported
135 3 007e GETSYSTEMDIRECTORY exported
136 3 0675 GETDRIVETYPE exported
137 1 0211 FATALAPPEXIT exported
138 2 1e4d GETHEAPSPACES exported
139 1 612c DOSIGNAL exported
140 3 068c SETSIGHANDLER exported
141 1 8014 INITTASK1 exported
150 1 7cff DIRECTEDYIELD exported
151 3 07e6 WINOLDAPCALL exported
152 3 08e2 GETNUMTASKS exported
154 1 034c GLOBALNOTIFY exported
155 1 119f GETTASKDS exported
156 1 4632 LIMITEMSPAGES exported
157 1 4639 GETCURPID exported
158 1 7e3e ISWINOLDAPTASK exported
159 1 0ec5 GLOBALHANDLENORIP exported
160 1 a940 EMSCOPY exported
161 2 29c9 LOCALCOUNTFREE exported
162 2 2a01 LOCALHEAPSIZE exported
163 1 0338 GLOBALLRUOLDEST exported
164 1 0324 GLOBALLRUNEWEST exported
165 1 9e0c A20PROC exported
166 2 028f WINEXEC exported
167 1 4f02 GETEXPWINVER exported
168 1 84b8 DIRECTRESALLOC exported
169 1 0404 GETFREESPACE exported
170 1 00d0 ALLOCCSTODSALIAS exported
171 1 00e4 ALLOCDSTOCSALIAS exported
172 1 21fb ALLOCALIAS exported
173 254 f000 __ROMBIOS exported
174 254 a000 __A000H exported
175 1 1d9e ALLOCSELECTOR exported
176 1 00f8 FREESELECTOR exported
177 1 010c PRESTOCHANGOSELECTOR exported
178 254 0001 __WINFLAGS exported
179 254 d000 __D000H exported
180 1 26b9 LONGPTRADD exported
181 254 b000 __B000H exported
182 254 b800 __B800H exported
183 254 0000 __0000H exported
184 1 139a GLOBALDOSALLOC exported
185 1 13d4 GLOBALDOSFREE exported
186 1 2252 GETSELECTORBASE exported
187 1 2725 SETSELECTORBASE exported
188 1 2755 GETSELECTORLIMIT exported
189 1 276d SETSELECTORLIMIT exported
190 254 e000 __E000H exported
191 1 0363 GLOBALPAGELOCK exported
192 1 0377 GLOBALPAGEUNLOCK exported
193 254 0040 __0040H exported
194 254 f000 __F000H exported
195 254 c000 __C000H exported
196 1 279b SELECTORACCESSRIGHTS exported
197 1 038b GLOBALFIX exported
198 1 039f GLOBALUNFIX exported
199 1 0647 SETHANDLECOUNT exported
200 1 3e4e VALIDATEFREESPACES exported
201 1 9ada REPLACEINST exported
202 3 081d REGISTERPTRACE exported
203 1 946e DEBUGBREAK exported
204 3 014e SWAPRECORDING exported
205 1 97e0 CVWBREAK exported
206 1 1df5 ALLOCSELECTORARRAY exported
207 1 8425 ISDBCSLEADBYTE exported
310 2 2a0c LOCALHANDLEDELTA exported
311 1 9eaf GETSETKERNELDOSPROC exported
314 1 9835 DEBUGDEFINESEGMENT exported
315 1 708b WRITEOUTPROFILES exported, shared data
316 1 127e GETFREEMEMINFO exported
318 1 9ecf FATALEXITHOOK exported
319 1 52fc FLUSHCACHEDFILEHANDLE exported
320 1 7e50 ISTASK exported
323 2 1e9b ISROMMODULE exported
324 1 94cf LOGERROR exported, shared data
325 1 94f2 LOGPARAMERROR exported, shared data
326 2 1ea0 ISROMFILE exported
327 1 949b K327 exported
328 1 94ce _DEBUGOUTPUT exported
329 1 94c5 K329 exported
332 4 0218 THHOOK exported
334 1 4b62 ISBADREADPTR exported
335 1 4b83 ISBADWRITEPTR exported
336 1 4c28 ISBADCODEPTR exported
337 1 4c4e ISBADSTRINGPTR exported
338 1 4c72 HASGPHANDLER exported
339 1 a70e DIAGQUERY exported
340 1 a71d DIAGOUTPUT exported
341 3 084c TOOLHELPHOOK exported
342 1 a820 __GP exported, shared data
343 2 0689 REGISTERWINOLDAPHOOK exported
344 2 06f3 GETWINOLDAPHOOKS exported
345 1 4d39 ISSHAREDSELECTOR exported
346 1 4ba5 ISBADHUGEREADPTR exported
347 1 4be5 ISBADHUGEWRITEPTR exported
348 1 4d5c HMEMCPY exported
349 1 4dec _HREAD exported
350 1 4df1 _HWRITE exported
351 1 5e92 BUNNY_351 exported
353 1 831f LSTRCPYN exported
354 1 9eeb GETAPPCOMPATFLAGS exported
355 1 9f2a GETWINDEBUGINFO exported, shared data
356 1 9f36 SETWINDEBUGINFO exported, shared data
403 1 29f1 K403 exported
404 1 29ae K404 exported

View File

@ -1,12 +0,0 @@
1 4 015c LZCOPY exported, shared data
2 2 0262 LZOPENFILE exported, shared data
3 2 0000 LZINIT exported, shared data
4 2 02ee LZSEEK exported, shared data
5 2 03d6 LZREAD exported, shared data
6 2 06f0 LZCLOSE exported, shared data
7 4 0000 LZSTART exported, shared data
8 4 013a COPYLZFILE exported, shared data
9 4 00a6 LZDONE exported, shared data
10 2 01bc GETEXPANDEDNAME exported, shared data
11 3 0000 WEP exported, shared data
12 11 035e ___EXPORTEDSTUB exported, shared data

View File

@ -1,136 +0,0 @@
1 2 0014 WEP exported, shared data
2 4 0000 SNDPLAYSOUND exported, shared data
5 2 02b0 MMSYSTEMGETVERSION exported, shared data
6 4 0028 DRIVERPROC exported, shared data
30 1 030a OUTPUTDEBUGSTR exported, shared data
31 1 03ab DRIVERCALLBACK exported, shared data
32 1 0312 STACKENTER exported, shared data
33 1 0370 STACKLEAVE exported, shared data
34 2 0484 MMDRVINSTALL exported, shared data
101 8 005d JOYGETNUMDEVS exported, shared data
102 8 001a JOYGETDEVCAPS exported, shared data
103 8 0073 JOYGETPOS exported, shared data
104 8 00b5 JOYGETTHRESHOLD exported, shared data
105 8 00ec JOYRELEASECAPTURE exported, shared data
106 8 013e JOYSETCAPTURE exported, shared data
107 8 021d JOYSETTHRESHOLD exported, shared data
109 8 0251 JOYSETCALIBRATION exported, shared data
1100 4 057e DRVOPEN exported, shared data
1101 4 0583 DRVCLOSE exported, shared data
1102 4 058d DRVSENDMESSAGE exported, shared data
1103 4 0588 DRVGETMODULEHANDLE exported, shared data
1104 4 0592 DRVDEFDRIVERPROC exported, shared data
1210 7 02a5 MMIOOPEN exported, shared data
1211 7 0457 MMIOCLOSE exported, shared data
1212 7 04b4 MMIOREAD exported, shared data
1213 7 062b MMIOWRITE exported, shared data
1214 7 07e9 MMIOSEEK exported, shared data
1215 7 0929 MMIOGETINFO exported, shared data
1216 7 0996 MMIOSETINFO exported, shared data
1217 7 0a68 MMIOSETBUFFER exported, shared data
1218 7 0cd8 MMIOFLUSH exported, shared data
1219 7 0da7 MMIOADVANCE exported, shared data
1220 7 0ed3 MMIOSTRINGTOFOURCC exported, shared data
1221 7 0f6e MMIOINSTALLIOPROC exported, shared data
1222 7 1073 MMIOSENDMESSAGE exported, shared data
1223 7 1360 MMIODESCEND exported, shared data
1224 7 1562 MMIOASCEND exported, shared data
1225 7 16a5 MMIOCREATECHUNK exported, shared data
1226 7 01d2 MMIORENAME exported, shared data
201 6 015f MIDIOUTGETNUMDEVS exported, shared data
202 6 016a MIDIOUTGETDEVCAPS exported, shared data
203 6 0266 MIDIOUTGETERRORTEXT exported, shared data
204 6 02a7 MIDIOUTOPEN exported, shared data
205 6 03c4 MIDIOUTCLOSE exported, shared data
206 6 0410 MIDIOUTPREPAREHEADER exported, shared data
207 6 0485 MIDIOUTUNPREPAREHEADER exported, shared data
208 1 0121 MIDIOUTSHORTMSG exported, shared data
209 1 0156 MIDIOUTLONGMSG exported, shared data
210 1 01b4 MIDIOUTRESET exported, shared data
211 6 01b6 MIDIOUTGETVOLUME exported, shared data
212 6 01f7 MIDIOUTSETVOLUME exported, shared data
213 6 04ff MIDIOUTCACHEPATCHES exported, shared data
214 6 0571 MIDIOUTCACHEDRUMPATCHES exported, shared data
215 6 0a5c MIDIOUTGETID exported, shared data
216 1 00eb MIDIOUTMESSAGE exported, shared data
301 6 05e3 MIDIINGETNUMDEVS exported, shared data
302 6 0625 MIDIINGETDEVCAPS exported, shared data
303 6 0671 MIDIINGETERRORTEXT exported, shared data
304 6 06b2 MIDIINOPEN exported, shared data
305 6 07cf MIDIINCLOSE exported, shared data
306 6 081b MIDIINPREPAREHEADER exported, shared data
307 6 0890 MIDIINUNPREPAREHEADER exported, shared data
308 6 090a MIDIINADDBUFFER exported, shared data
309 6 0976 MIDIINSTART exported, shared data
310 6 09aa MIDIINSTOP exported, shared data
311 6 09de MIDIINRESET exported, shared data
312 6 0a12 MIDIINGETID exported, shared data
313 6 05ee MIDIINMESSAGE exported, shared data
350 8 0531 AUXGETNUMDEVS exported, shared data
351 8 053c AUXGETDEVCAPS exported, shared data
352 8 0582 AUXGETVOLUME exported, shared data
353 8 05bd AUXSETVOLUME exported, shared data
354 8 04df AUXOUTMESSAGE exported, shared data
401 3 0866 WAVEOUTGETNUMDEVS exported, shared data
402 3 08a6 WAVEOUTGETDEVCAPS exported, shared data
403 3 09a2 WAVEOUTGETERRORTEXT exported, shared data
404 3 09e3 WAVEOUTOPEN exported, shared data
405 3 0b81 WAVEOUTCLOSE exported, shared data
406 3 0bc8 WAVEOUTPREPAREHEADER exported, shared data
407 3 0c54 WAVEOUTUNPREPAREHEADER exported, shared data
408 3 0cdd WAVEOUTWRITE exported, shared data
409 3 0d4a WAVEOUTPAUSE exported, shared data
410 3 0d7c WAVEOUTRESTART exported, shared data
411 3 0dae WAVEOUTRESET exported, shared data
412 3 0e12 WAVEOUTGETPOSITION exported, shared data
413 3 0e62 WAVEOUTGETPITCH exported, shared data
414 3 0eb0 WAVEOUTSETPITCH exported, shared data
415 3 08f2 WAVEOUTGETVOLUME exported, shared data
416 3 0933 WAVEOUTSETVOLUME exported, shared data
417 3 0ee4 WAVEOUTGETPLAYBACKRATE exported, shared data
418 3 0f32 WAVEOUTSETPLAYBACKRATE exported, shared data
419 3 0de0 WAVEOUTBREAKLOOP exported, shared data
420 3 14bf WAVEOUTGETID exported, shared data
421 3 0871 WAVEOUTMESSAGE exported, shared data
501 3 0f66 WAVEINGETNUMDEVS exported, shared data
502 3 0fa6 WAVEINGETDEVCAPS exported, shared data
503 3 0ff2 WAVEINGETERRORTEXT exported, shared data
504 3 1033 WAVEINOPEN exported, shared data
505 3 11d1 WAVEINCLOSE exported, shared data
506 3 1218 WAVEINPREPAREHEADER exported, shared data
507 3 129c WAVEINUNPREPAREHEADER exported, shared data
508 3 1325 WAVEINADDBUFFER exported, shared data
509 3 138f WAVEINSTART exported, shared data
510 3 13c1 WAVEINSTOP exported, shared data
511 3 13f3 WAVEINRESET exported, shared data
512 3 1425 WAVEINGETPOSITION exported, shared data
513 3 1475 WAVEINGETID exported, shared data
514 3 0f71 WAVEINMESSAGE exported, shared data
601 1 0000 TIMEGETSYSTEMTIME exported, shared data
602 1 0029 TIMESETEVENT exported, shared data
603 1 0292 TIMEKILLEVENT exported, shared data
604 8 0000 TIMEGETDEVCAPS exported, shared data
605 1 0288 TIMEBEGINPERIOD exported, shared data
606 1 028d TIMEENDPERIOD exported, shared data
607 1 029a TIMEGETTIME exported, shared data
701 5 04af MCISENDCOMMAND exported, shared data
702 5 1258 MCISENDSTRING exported, shared data
703 5 1588 MCIGETDEVICEID exported, shared data
704 5 3994 MCIPARSECOMMAND exported, shared data
705 5 2d4c MCILOADCOMMANDRESOURCE exported, shared data
706 5 136f MCIGETERRORSTRING exported, shared data
707 5 2a1d MCISETDRIVERDATA exported, shared data
708 5 29d3 MCIGETDRIVERDATA exported, shared data
710 5 2a6f MCIDRIVERYIELD exported, shared data
711 1 0275 MCIDRIVERNOTIFY exported, shared data
712 5 1293 MCIEXECUTE exported, shared data
713 5 2fb9 MCIFREECOMMANDRESOURCE exported, shared data
714 5 2acd MCISETYIELDPROC exported, shared data
715 5 1454 MCIGETDEVICEIDFROMELEMENTID exported, shared data
716 5 2b3c MCIGETYIELDPROC exported, shared data
717 5 15a5 MCIGETCREATORTASK exported, shared data
900 4 05fa MMTASKCREATE exported, shared data
902 4 05be MMTASKBLOCK exported, shared data
903 1 0264 MMTASKSIGNAL exported, shared data
904 4 05b9 MMGETCURRENTTASK exported, shared data
905 4 0598 MMTASKYIELD exported, shared data

View File

@ -1,146 +0,0 @@
1 3 0000 NETACCESSADD exported, shared data
2 3 0128 NETACCESSDEL exported, shared data
3 3 01ea NETACCESSENUM exported, shared data
4 3 0318 NETACCESSGETINFO exported, shared data
5 3 042a NETACCESSSETINFO exported, shared data
6 4 0030 NETALERTRAISE exported, shared data
7 4 0000 NETALERTSTART exported, shared data
8 4 0018 NETALERTSTOP exported, shared data
9 10 00f4 NETAUDITCLEAR exported, shared data
10 10 024a NETAUDITOPEN exported, shared data
11 10 0000 NETAUDITWRITE exported, shared data
12 3 0110 NETACCESSCHECK exported, shared data
13 12 0000 NETBIOSCLOSE exported, shared data
14 12 0018 NETBIOSENUM exported, shared data
15 12 0030 NETBIOSGETINFO exported, shared data
16 12 0048 NETBIOSOPEN exported, shared data
17 12 0060 NETBIOSSUBMIT exported, shared data
18 7 0000 NETCHARDEVCONTROL exported, shared data
19 7 0056 NETCHARDEVENUM exported, shared data
20 7 00f2 NETCHARDEVGETINFO exported, shared data
21 7 016e NETCHARDEVQENUM exported, shared data
22 7 043c NETCHARDEVQGETINFO exported, shared data
23 7 04b2 NETCHARDEVQPURGE exported, shared data
24 7 0562 NETCHARDEVQSETINFO exported, shared data
25 6 0330 NETCONFIGGET exported, shared data
26 6 0150 NETCONFIGGETALL exported, shared data
27 18 0000 NETCONNECTIONENUM exported, shared data
28 1 00a8 WEP exported, shared data
29 10 0030 NETERRORLOGCLEAR exported, shared data
30 10 01c0 NETERRORLOGOPEN exported, shared data
31 10 0018 NETERRORLOGWRITE exported, shared data
32 18 0256 NETFILECLOSE exported, shared data
33 18 044a NETFILEENUM exported, shared data
34 18 0516 NETFILEGETINFO exported, shared data
35 3 05f8 NETGROUPADD exported, shared data
36 3 067e NETGROUPADDUSER exported, shared data
37 3 06dc NETGROUPDEL exported, shared data
38 3 073a NETGROUPDELUSER exported, shared data
39 3 0798 NETGROUPENUM exported, shared data
40 3 0894 NETGROUPGETUSERS exported, shared data
43 11 01cc NETMESSAGELOGFILEGET exported, shared data
44 11 0338 NETMESSAGELOGFILESET exported, shared data
45 11 0718 NETMESSAGENAMEADD exported, shared data
46 11 0844 NETMESSAGENAMEDEL exported, shared data
47 11 096c NETMESSAGENAMEENUM exported, shared data
48 11 0d2a NETMESSAGENAMEFWD exported, shared data
49 11 0b00 NETMESSAGENAMEGETINFO exported, shared data
50 11 0d7a NETMESSAGENAMEUNFWD exported, shared data
51 13 0000 NETPROFILELOAD exported, shared data
52 13 037e NETPROFILESAVE exported, shared data
53 18 0b98 NETSERVERADMINCOMMAND exported, shared data
54 18 00b8 NETSERVERDISKENUM exported, shared data
55 18 0c62 NETSERVERGETINFO exported, shared data
56 18 0cf2 NETSERVERSETINFO exported, shared data
57 19 0134 NETSERVICECONTROL exported, shared data
58 19 02f0 NETSERVICEENUM exported, shared data
59 19 044a NETSERVICEINSTALL exported, shared data
60 19 011c NETSERVICESTATUS exported, shared data
61 18 0676 NETSESSIONDEL exported, shared data
62 18 05c4 NETSESSIONENUM exported, shared data
63 18 06dc NETSESSIONGETINFO exported, shared data
64 18 0798 NETSHAREADD exported, shared data
65 18 0968 NETSHARECHECK exported, shared data
66 18 082a NETSHAREDEL exported, shared data
67 18 09d6 NETSHAREENUM exported, shared data
68 18 0ab6 NETSHAREGETINFO exported, shared data
69 18 08a2 NETSHARESETINFO exported, shared data
70 18 0d88 NETSTATISTICSCLEAR exported, shared data
71 18 0de0 NETSTATISTICSGET exported, shared data
72 16 06f2 NETREMOTETOD exported, shared data
73 21 0000 NETUSEADD exported, shared data
74 21 032a NETUSEDEL exported, shared data
75 21 0502 NETUSEENUM exported, shared data
76 21 0664 NETUSEGETINFO exported, shared data
77 3 0ab8 NETUSERADD exported, shared data
78 3 0c26 NETUSERDEL exported, shared data
79 3 0c84 NETUSERENUM exported, shared data
80 3 0f9a NETUSERGETGROUPS exported, shared data
81 3 0ef4 NETUSERGETINFO exported, shared data
82 3 1132 NETUSERPASSWORDSET exported, shared data
83 3 0d2c NETUSERSETINFO exported, shared data
84 9 0858 NETWKSTAGETINFO exported, shared data
85 9 0a22 NETWKSTASETINFO exported, shared data
86 9 0000 NETWKSTASETUID exported, shared data
91 16 0380 NETREMOTEMOVE exported, shared data
92 16 0000 NETREMOTECOPY exported, shared data
93 16 0368 NETREMOTEEXEC exported, shared data
105 3 1570 NETUSERVALIDATE exported, shared data
116 19 0000 NETSERVICEGETINFO exported, shared data
117 7 050a NETCHARDEVQPURGESELF exported, shared data
172 3 0506 NETACCESSGETUSERPERMS exported, shared data
174 7 0226 NETHANDLEGETINFO exported, shared data
175 7 0326 NETHANDLESETINFO exported, shared data
176 3 0974 NETGROUPSETUSERS exported, shared data
177 3 0816 NETGROUPGETINFO exported, shared data
178 3 08fe NETGROUPSETINFO exported, shared data
179 3 1404 NETUSERSETGROUPS exported, shared data
182 3 1588 NETUSERVALIDATE2 exported, shared data
184 3 1004 NETUSERMODALSGET exported, shared data
185 3 10a2 NETUSERMODALSSET exported, shared data
186 3 0d14 NETUSERINIT exported, shared data
189 26 0000 NETGETDCNAME exported, shared data
196 6 01e0 NETCONFIGGET2 exported, shared data
197 6 0000 NETCONFIGGETALL2 exported, shared data
198 18 0e5e NETSTATISTICSGET2 exported, shared data
199 10 02f4 NETERRORLOGREAD exported, shared data
200 10 04b2 NETAUDITREAD exported, shared data
201 18 02ae NETFILEENUM2 exported, shared data
259 17 0000 NETUSERRESTRICT exported, shared data
266 26 06dc NETLOGONENUM exported, shared data
277 9 027c NETWKSTASETUID2 exported, shared data
280 18 0f9e NETFILEGETINFO2 exported, shared data
282 18 0f40 NETFILECLOSE2 exported, shared data
299 25 0b34 I_NETPATHTYPE exported, shared data
300 25 0000 I_NETPATHCANONICALIZE exported, shared data
301 25 0932 I_NETPATHCOMPARE exported, shared data
302 25 1afe I_NETNAMEVALIDATE exported, shared data
303 25 173e I_NETNAMECANONICALIZE exported, shared data
304 25 196e I_NETNAMECOMPARE exported, shared data
305 25 1cee I_NETLISTCANONICALIZE exported, shared data
306 25 22c2 I_NETLISTTRAVERSE exported, shared data
501 8 0000 DOSDELETEMAILSLOT exported, shared data
502 8 0072 DOSMAILSLOTINFO exported, shared data
503 8 00ec DOSMAKEMAILSLOT exported, shared data
504 8 0320 DOSPEEKMAILSLOT exported, shared data
523 8 0454 DOSREADMAILSLOT exported, shared data
524 8 058a DOSWRITEMAILSLOT exported, shared data
525 11 0000 NETMESSAGEBUFFERSEND exported, shared data
526 11 0e1e NETMESSAGEFILESEND exported, shared data
527 5 0000 NETSERVERENUM exported, shared data
528 5 013a NETSERVERENUM2 exported, shared data
529 20 0000 NETSPECIALSMB exported, shared data
530 2 0010 DOSMAKENMPIPE exported, shared data
531 2 004c DOSCONNECTNMPIPE exported, shared data
532 2 002e DOSDISCONNECTNMPIPE exported, shared data
533 2 006a DOSSETNMPHANDSTATE exported, shared data
534 2 010a DOSWAITNMPIPE exported, shared data
535 2 01d2 DOSTRANSACTNMPIPE exported, shared data
536 2 02e5 DOSQNMPHANDSTATE exported, shared data
537 2 0388 DOSQNMPIPEINFO exported, shared data
538 2 044d DOSPEEKNMPIPE exported, shared data
539 2 057d DOSCALLNMPIPE exported, shared data
540 2 06cf DOSRAWREADNMPIPE exported, shared data
541 2 07b6 DOSRAWWRITENMPIPE exported, shared data
542 2 0b4f DOSREADASYNCNMPIPE exported, shared data
543 2 0d73 DOSWRITEASYNCNMPIPE exported, shared data

View File

@ -1,178 +0,0 @@
1 1 0000 WEP exported, shared data
2 3 004e OLEDELETE exported, shared data
3 3 00c6 OLESAVETOSTREAM exported, shared data
4 3 0122 OLELOADFROMSTREAM exported, shared data
6 3 0400 OLECLONE exported, shared data
7 3 04ec OLECOPYFROMLINK exported, shared data
8 3 0606 OLEEQUAL exported, shared data
9 3 0674 OLEQUERYLINKFROMCLIP exported, shared data
10 3 06a0 OLEQUERYCREATEFROMCLIP exported, shared data
11 3 06cc OLECREATELINKFROMCLIP exported, shared data
12 3 08a2 OLECREATEFROMCLIP exported, shared data
13 3 0b52 OLECOPYTOCLIPBOARD exported, shared data
14 3 1d48 OLEQUERYTYPE exported, shared data
15 3 0b8e OLESETHOSTNAMES exported, shared data
16 3 0c04 OLESETTARGETDEVICE exported, shared data
17 3 0c84 OLESETBOUNDS exported, shared data
18 3 0ce0 OLEQUERYBOUNDS exported, shared data
19 3 0da0 OLEDRAW exported, shared data
20 3 0e24 OLEQUERYOPEN exported, shared data
21 3 0e60 OLEACTIVATE exported, shared data
22 3 0eea OLEUPDATE exported, shared data
23 3 0f26 OLERECONNECT exported, shared data
24 3 0f62 OLEGETLINKUPDATEOPTIONS exported, shared data
25 3 0fbe OLESETLINKUPDATEOPTIONS exported, shared data
26 3 0ffc OLEENUMFORMATS exported, shared data
27 3 0eae OLECLOSE exported, shared data
28 3 107e OLEGETDATA exported, shared data
29 3 10dc OLESETDATA exported, shared data
30 3 0010 OLEQUERYPROTOCOL exported, shared data
31 3 111e OLEQUERYOUTOFDATE exported, shared data
32 3 115a OLEOBJECTCONVERT exported, shared data
33 3 121a OLECREATEFROMTEMPLATE exported, shared data
34 3 13b4 OLECREATE exported, shared data
35 3 1ba6 OLEQUERYRELEASESTATUS exported, shared data
36 3 1c04 OLEQUERYRELEASEERROR exported, shared data
37 3 1c40 OLEQUERYRELEASEMETHOD exported, shared data
38 3 16fa OLECREATEFROMFILE exported, shared data
39 3 190a OLECREATELINKFROMFILE exported, shared data
40 3 008a OLERELEASE exported, shared data
41 2 093e OLEREGISTERCLIENTDOC exported, shared data
42 2 0a9e OLEREVOKECLIENTDOC exported, shared data
43 2 0bb6 OLERENAMECLIENTDOC exported, shared data
44 2 0c8e OLEREVERTCLIENTDOC exported, shared data
45 2 0cc8 OLESAVEDCLIENTDOC exported, shared data
46 3 1c7c OLERENAME exported, shared data
47 2 0cf6 OLEENUMOBJECTS exported, shared data
48 3 1d00 OLEQUERYNAME exported, shared data
49 3 0c42 OLESETCOLORSCHEME exported, shared data
50 3 1034 OLEREQUESTDATA exported, shared data
54 4 0000 OLELOCKSERVER exported, shared data
55 4 025a OLEUNLOCKSERVER exported, shared data
56 3 0d3c OLEQUERYSIZE exported, shared data
57 3 1cbe OLEEXECUTE exported, shared data
58 3 152e OLECREATEINVISIBLE exported, shared data
59 3 1da4 OLEQUERYCLIENTVERSION exported, shared data
60 3 46d4 OLEISDCMETA exported, shared data
100 4 0c28 DOCWNDPROC exported, shared data
101 4 0d2c SRVRWNDPROC exported, shared data
102 14 0838 MFCALLBACKFUNC exported, shared data
110 5 0000 DEFLOADFROMSTREAM exported, shared data
111 5 00fe DEFCREATEFROMCLIP exported, shared data
112 5 0180 DEFCREATELINKFROMCLIP exported, shared data
113 5 01be DEFCREATEFROMTEMPLATE exported, shared data
114 5 01fe DEFCREATE exported, shared data
115 5 023e DEFCREATEFROMFILE exported, shared data
116 5 028e DEFCREATELINKFROMFILE exported, shared data
117 5 02e0 DEFCREATEINVISIBLE exported, shared data
200 4 04e0 LERELEASE exported, shared data
201 4 1e52 LESHOW exported, shared data
202 3 2508 LEGETDATA exported, shared data
203 4 3a54 LESETDATA exported, shared data
204 4 37ee LESETHOSTNAMES exported, shared data
205 4 386e LESETTARGETDEVICE exported, shared data
206 4 3922 LESETBOUNDS exported, shared data
207 3 27be LESAVETOSTREAM exported, shared data
208 3 1fde LECLONE exported, shared data
209 4 052a LECOPYFROMLINK exported, shared data
210 6 0134 LEEQUAL exported, shared data
211 3 227a LECOPY exported, shared data
212 3 2e00 LEQUERYTYPE exported, shared data
213 3 2370 LEQUERYBOUNDS exported, shared data
214 3 23fc LEDRAW exported, shared data
215 4 2108 LEQUERYOPEN exported, shared data
216 4 219a LEACTIVATE exported, shared data
218 4 2200 LEUPDATE exported, shared data
219 4 2cb4 LERECONNECT exported, shared data
220 3 2454 LEENUMFORMAT exported, shared data
221 6 00c8 LEQUERYPROTOCOL exported, shared data
222 3 2638 LEQUERYOUTOFDATE exported, shared data
223 6 01c2 LEOBJECTCONVERT exported, shared data
224 4 07fa LECHANGEDATA exported, shared data
225 4 2c16 LECLOSE exported, shared data
226 3 2e72 LEGETUPDATEOPTIONS exported, shared data
227 4 337a LESETUPDATEOPTIONS exported, shared data
228 4 4a44 LEEXECUTE exported, shared data
229 6 0000 LEOBJECTLONG exported, shared data
230 4 322c LECREATEINVISIBLE exported, shared data
300 9 0000 MFRELEASE exported, shared data
301 9 0258 MFGETDATA exported, shared data
302 3 42f2 MFSAVETOSTREAM exported, shared data
303 9 0082 MFCLONE exported, shared data
304 9 0174 MFEQUAL exported, shared data
305 9 01f0 MFCOPY exported, shared data
307 3 446a MFQUERYBOUNDS exported, shared data
308 14 05cc MFDRAW exported, shared data
309 9 0234 MFENUMFORMAT exported, shared data
310 9 0302 MFCHANGEDATA exported, shared data
400 11 0000 BMRELEASE exported, shared data
401 11 0254 BMGETDATA exported, shared data
402 3 4b92 BMSAVETOSTREAM exported, shared data
403 11 006e BMCLONE exported, shared data
404 11 00e4 BMEQUAL exported, shared data
405 3 4c8c BMCOPY exported, shared data
407 3 4ce0 BMQUERYBOUNDS exported, shared data
408 14 0000 BMDRAW exported, shared data
409 11 0230 BMENUMFORMAT exported, shared data
410 3 5004 BMCHANGEDATA exported, shared data
500 12 0000 DIBRELEASE exported, shared data
501 12 01ea DIBGETDATA exported, shared data
502 3 536c DIBSAVETOSTREAM exported, shared data
503 12 006e DIBCLONE exported, shared data
504 12 00e4 DIBEQUAL exported, shared data
505 12 011c DIBCOPY exported, shared data
507 12 016c DIBQUERYBOUNDS exported, shared data
508 14 02f2 DIBDRAW exported, shared data
509 12 01c6 DIBENUMFORMAT exported, shared data
510 12 028a DIBCHANGEDATA exported, shared data
600 10 0000 GENRELEASE exported, shared data
601 10 049e GENGETDATA exported, shared data
602 10 0438 GENSETDATA exported, shared data
603 3 4750 GENSAVETOSTREAM exported, shared data
604 10 0082 GENCLONE exported, shared data
605 10 012e GENEQUAL exported, shared data
606 10 0164 GENCOPY exported, shared data
608 3 4b60 GENQUERYBOUNDS exported, shared data
609 14 05b2 GENDRAW exported, shared data
610 10 04e0 GENENUMFORMAT exported, shared data
611 10 0222 GENCHANGEDATA exported, shared data
701 13 0034 ERRSHOW exported, shared data
702 13 0186 ERRSETDATA exported, shared data
703 13 0082 ERRSETHOSTNAMES exported, shared data
704 13 009c ERRSETTARGETDEVICE exported, shared data
705 13 00d0 ERRSETBOUNDS exported, shared data
706 13 0068 ERRCOPYFROMLINK exported, shared data
707 13 00ea ERRQUERYOPEN exported, shared data
708 13 0104 ERRACTIVATE exported, shared data
709 13 0138 ERRCLOSE exported, shared data
710 13 0152 ERRUPDATE exported, shared data
711 13 016c ERRRECONNECT exported, shared data
712 13 0222 ERRQUERYPROTOCOL exported, shared data
713 13 01ba ERRQUERYOUTOFDATE exported, shared data
714 13 01d4 ERROBJECTCONVERT exported, shared data
715 13 01ee ERRGETUPDATEOPTIONS exported, shared data
716 13 0208 ERRSETUPDATEOPTIONS exported, shared data
717 13 0256 ERREXECUTE exported, shared data
718 13 0270 ERROBJECTLONG exported, shared data
800 7 0000 PBLOADFROMSTREAM exported, shared data
801 7 00ac PBCREATEFROMCLIP exported, shared data
802 7 017a PBCREATELINKFROMCLIP exported, shared data
803 7 0212 PBCREATEFROMTEMPLATE exported, shared data
804 7 02a8 PBCREATE exported, shared data
805 7 06f4 PBDRAW exported, shared data
806 7 0626 PBQUERYBOUNDS exported, shared data
807 7 0818 PBCOPYTOCLIPBOARD exported, shared data
808 7 033e PBCREATEFROMFILE exported, shared data
809 7 03e0 PBCREATELINKFROMFILE exported, shared data
810 7 0768 PBENUMFORMATS exported, shared data
811 7 07a8 PBGETDATA exported, shared data
812 7 0492 PBCREATEINVISIBLE exported, shared data
910 3 3e50 OBJQUERYNAME exported, shared data
911 3 3f06 OBJRENAME exported, shared data
912 3 410e OBJQUERYTYPE exported, shared data
913 3 4154 OBJQUERYSIZE exported, shared data
950 8 0456 CONNECTDLGPROC exported, shared data
951 8 0000 SETNETNAME exported, shared data
952 8 011a CHECKNETDRIVE exported, shared data
953 8 025c SETNEXTNETDRIVE exported, shared data
954 8 0696 GETTASKVISIBLEWINDOW exported, shared data

View File

@ -1,23 +0,0 @@
1 1 0000 WEP exported, shared data
2 3 036e OLEREGISTERSERVER exported, shared data
3 3 05f0 OLEREVOKESERVER exported, shared data
4 3 3d46 OLEBLOCKSERVER exported, shared data
5 3 3d92 OLEUNBLOCKSERVER exported, shared data
6 3 1108 OLEREGISTERSERVERDOC exported, shared data
7 3 12dc OLEREVOKESERVERDOC exported, shared data
8 3 13a2 OLERENAMESERVERDOC exported, shared data
9 3 1528 OLEREVERTSERVERDOC exported, shared data
10 3 14ba OLESAVEDSERVERDOC exported, shared data
11 3 2140 OLEREVOKEOBJECT exported, shared data
12 3 0354 OLEQUERYSERVERVERSION exported, shared data
21 3 07a2 SRVRWNDPROC exported, shared data
22 3 1728 DOCWNDPROC exported, shared data
23 3 23b2 ITEMWNDPROC exported, shared data
24 3 2d3c SENDDATAMSG exported, shared data
25 3 22ac FINDITEMWND exported, shared data
26 3 2a5c ITEMCALLBACK exported, shared data
27 3 0752 TERMINATECLIENTS exported, shared data
28 3 1554 TERMINATEDOCCLIENTS exported, shared data
29 3 222e DELETECLIENTINFO exported, shared data
30 3 2cbc SENDRENAMEMSG exported, shared data
31 3 2c5e ENUMFORTERMINATE exported, shared data

View File

@ -1,26 +0,0 @@
1 2 15cc REGOPENKEY exported, shared data
2 2 15fa REGCREATEKEY exported, shared data
3 2 1670 REGCLOSEKEY exported, shared data
4 2 1628 REGDELETEKEY exported, shared data
5 2 16f4 REGSETVALUE exported, shared data
6 2 168e REGQUERYVALUE exported, shared data
7 2 14dc REGENUMKEY exported, shared data
8 7 0000 WEP exported, shared data
9 6 0052 DRAGACCEPTFILES exported, shared data
11 6 0094 DRAGQUERYFILE exported, shared data
12 6 0142 DRAGFINISH exported, shared data
13 6 0000 DRAGQUERYPOINT exported, shared data
20 4 110a SHELLEXECUTE exported, shared data
21 4 1154 FINDEXECUTABLE exported, shared data
22 9 0000 SHELLABOUT exported, shared data
32 9 0829 WCI exported, shared data
33 9 0136 ABOUTDLGPROC exported, shared data
34 10 021a EXTRACTICON exported, shared data
36 10 08dc EXTRACTASSOCIATEDICON exported, shared data
37 5 00ae DOENVIRONMENTSUBST exported, shared data
38 5 0000 FINDENVIRONMENTSTRING exported, shared data
39 10 026e INTERNALEXTRACTICON exported, shared data
100 4 0550 HERETHARBETYGARS exported, shared data
101 8 010e FINDEXEDLGPROC exported, shared data
102 4 128c REGISTERSHELLHOOK exported, shared data
103 4 11ca SHELLHOOKPROC exported, shared data

View File

@ -1,35 +0,0 @@
1 1 018a WEP exported, shared data
50 1 057b GLOBALHANDLETOSEL exported, shared data
51 1 0318 GLOBALFIRST exported, shared data
52 1 0399 GLOBALNEXT exported, shared data
53 1 02a2 GLOBALINFO exported, shared data
54 1 0417 GLOBALENTRYHANDLE exported, shared data
55 1 04a9 GLOBALENTRYMODULE exported, shared data
56 1 090e LOCALINFO exported, shared data
57 1 095e LOCALFIRST exported, shared data
58 1 09e9 LOCALNEXT exported, shared data
59 1 0a90 MODULEFIRST exported, shared data
60 1 0ad9 MODULENEXT exported, shared data
61 1 0b15 MODULEFINDNAME exported, shared data
62 1 0b8c MODULEFINDHANDLE exported, shared data
63 1 0caa TASKFIRST exported, shared data
64 1 0ced TASKNEXT exported, shared data
65 1 0d2e TASKFINDHANDLE exported, shared data
66 1 0f1c STACKTRACEFIRST exported, shared data
67 1 0f67 STACKTRACECSIPFIRST exported, shared data
68 1 0fca STACKTRACENEXT exported, shared data
69 1 28b0 CLASSFIRST exported, shared data
70 1 2925 CLASSNEXT exported, shared data
71 1 11ce SYSTEMHEAPINFO exported, shared data
72 1 13f4 MEMMANINFO exported, shared data
73 1 1b72 NOTIFYREGISTER exported, shared data
74 1 1c29 NOTIFYUNREGISTER exported, shared data
75 1 2060 INTERRUPTREGISTER exported, shared data
76 1 2111 INTERRUPTUNREGISTER exported, shared data
77 1 26ea TERMINATEAPP exported, shared data
78 1 29c4 MEMORYREAD exported, shared data
79 1 2b6c MEMORYWRITE exported, shared data
80 1 2dae TIMERCOUNT exported, shared data
81 1 0d68 TASKSETCSIP exported, shared data
82 1 0d97 TASKGETCSIP exported, shared data
83 1 0dc0 TASKSWITCH exported, shared data

View File

@ -1,413 +0,0 @@
1 1 ab5d MESSAGEBOX exported, shared data
2 3 0059 OLDEXITWINDOWS exported, shared data
3 5 0165 ENABLEOEMLAYER exported, shared data
4 5 01a2 DISABLEOEMLAYER exported, shared data
5 5 03a2 INITAPP exported, shared data
6 1 81d4 POSTQUITMESSAGE exported, shared data
7 5 0303 EXITWINDOWS exported, shared data
8 3 0232 WEP exported, shared data
10 1 a8e8 SETTIMER exported, shared data
11 1 744c BEAR11 exported, shared data
12 1 a905 KILLTIMER exported, shared data
13 1 729f GETTICKCOUNT exported, shared data
14 1 7439 GETTIMERRESOLUTION exported
15 1 729f GETCURRENTTIME exported, shared data
16 1 abc5 CLIPCURSOR exported, shared data
17 1 abab GETCURSORPOS exported, shared data
18 1 a8d4 SETCAPTURE exported, shared data
19 1 28bd RELEASECAPTURE exported, shared data
20 1 8161 SETDOUBLECLICKTIME exported, shared data
21 1 8171 GETDOUBLECLICKTIME exported, shared data
22 1 a875 SETFOCUS exported, shared data
23 1 8183 GETFOCUS exported, shared data
24 13 24e7 REMOVEPROP exported, shared data
25 1 1c95 GETPROP exported, shared data
26 13 24ca SETPROP exported, shared data
27 13 2504 ENUMPROPS exported, shared data
28 1 1874 CLIENTTOSCREEN exported, shared data
29 1 189e SCREENTOCLIENT exported, shared data
30 1 713c WINDOWFROMPOINT exported, shared data
31 1 192d ISICONIC exported, shared data
32 1 1825 GETWINDOWRECT exported, shared data
33 1 1828 GETCLIENTRECT exported, shared data
34 1 a919 ENABLEWINDOW exported, shared data
35 1 1912 ISWINDOWENABLED exported, shared data
36 1 ab25 GETWINDOWTEXT exported, shared data
37 1 ab05 SETWINDOWTEXT exported, shared data
38 1 ab49 GETWINDOWTEXTLENGTH exported, shared data
39 1 a971 BEGINPAINT exported, shared data
40 1 a991 ENDPAINT exported, shared data
41 8 0f1b CREATEWINDOW exported, shared data
42 14 103e SHOWWINDOW exported, shared data
43 14 1088 CLOSEWINDOW exported, shared data
44 14 1074 OPENICON exported, shared data
45 7 1836 BRINGWINDOWTOTOP exported, shared data
46 2 0dde GETPARENT exported, shared data
47 1 1802 ISWINDOW exported, shared data
48 1 1bd3 ISCHILD exported, shared data
49 1 1c28 ISWINDOWVISIBLE exported, shared data
50 6 1f72 FINDWINDOW exported, shared data
51 1 1a6c BEAR51 exported, shared data
52 14 03f0 ANYPOPUP exported, shared data
53 8 0faa DESTROYWINDOW exported, shared data
54 1 ad20 ENUMWINDOWS exported, shared data
55 1 ad03 ENUMCHILDWINDOWS exported, shared data
56 7 17a6 MOVEWINDOW exported, shared data
57 8 0e7c REGISTERCLASS exported, shared data
58 8 0eeb GETCLASSNAME exported, shared data
59 1 a949 SETACTIVEWINDOW exported, shared data
60 1 818d GETACTIVEWINDOW exported, shared data
61 13 23dd SCROLLWINDOW exported, shared data
62 18 1a00 SETSCROLLPOS exported, shared data
63 18 1a22 GETSCROLLPOS exported, shared data
64 18 1a44 SETSCROLLRANGE exported, shared data
65 18 1a66 GETSCROLLRANGE exported, shared data
66 1 a60b GETDC exported, shared data
67 1 a5f7 GETWINDOWDC exported, shared data
68 1 a61f RELEASEDC exported, shared data
69 1 ab97 SETCURSOR exported, shared data
70 1 822c SETCURSORPOS exported, shared data
71 1 150c SHOWCURSOR exported, shared data
72 1 1d3d SETRECT exported, shared data
73 1 1d64 SETRECTEMPTY exported, shared data
74 1 1d7d COPYRECT exported, shared data
75 1 1d9a ISRECTEMPTY exported, shared data
76 1 1dc0 PTINRECT exported, shared data
77 1 1df4 OFFSETRECT exported, shared data
78 1 1e19 INFLATERECT exported, shared data
79 1 1e3e INTERSECTRECT exported, shared data
80 1 1ea6 UNIONRECT exported, shared data
81 1 ac40 FILLRECT exported, shared data
82 1 acd0 INVERTRECT exported, shared data
83 1 ac88 FRAMERECT exported, shared data
84 13 239c DRAWICON exported, shared data
85 6 1e91 DRAWTEXT exported, shared data
86 13 0229 BEAR86 exported, shared data
87 25 263b DIALOGBOX exported, shared data
88 25 26e5 ENDDIALOG exported, shared data
89 24 09ce CREATEDIALOG exported, shared data
90 25 2804 ISDIALOGMESSAGE exported, shared data
91 25 26f9 GETDLGITEM exported, shared data
92 25 2741 SETDLGITEMTEXT exported, shared data
93 25 2761 GETDLGITEMTEXT exported, shared data
94 25 270d SETDLGITEMINT exported, shared data
95 25 2721 GETDLGITEMINT exported, shared data
96 25 2789 CHECKRADIOBUTTON exported, shared data
97 25 2775 CHECKDLGBUTTON exported, shared data
98 25 279d ISDLGBUTTONCHECKED exported, shared data
99 37 0fdf DLGDIRSELECT exported, shared data
100 37 0fb1 DLGDIRLIST exported, shared data
101 25 27b1 SENDDLGITEMMESSAGE exported, shared data
102 2 0cd2 ADJUSTWINDOWRECT exported, shared data
103 25 2853 MAPDIALOGRECT exported, shared data
104 1 1bab MESSAGEBEEP exported, shared data
105 6 1f5e FLASHWINDOW exported, shared data
106 1 4f46 GETKEYSTATE exported, shared data
107 1 a7fc DEFWINDOWPROC exported, shared data
108 1 a68f GETMESSAGE exported, shared data
109 1 a744 PEEKMESSAGE exported, shared data
110 1 a7b7 POSTMESSAGE exported, shared data
111 1 a786 SENDMESSAGE exported, shared data
112 1 3dc4 WAITMESSAGE exported, shared data
113 1 a6b2 TRANSLATEMESSAGE exported, shared data
114 1 a6fb DISPATCHMESSAGE exported, shared data
115 1 3c37 REPLYMESSAGE exported, shared data
116 1 a7e8 POSTAPPMESSAGE exported, shared data
118 1 8214 REGISTERWINDOWMESSAGE exported, shared data
119 1 81ae GETMESSAGEPOS exported, shared data
120 1 81a1 GETMESSAGETIME exported, shared data
121 1 ad68 SETWINDOWSHOOK exported, shared data
122 1 a827 CALLWINDOWPROC exported, shared data
123 1 a85b CALLMSGFILTER exported, shared data
124 1 a95d UPDATEWINDOW exported, shared data
125 1 aa27 INVALIDATERECT exported, shared data
126 1 aa67 INVALIDATERGN exported, shared data
127 1 aa47 VALIDATERECT exported, shared data
128 1 aa93 VALIDATERGN exported, shared data
129 2 0d8e GETCLASSWORD exported, shared data
130 2 0da2 SETCLASSWORD exported, shared data
131 2 0db6 GETCLASSLONG exported, shared data
132 2 0dca SETCLASSLONG exported, shared data
133 2 0d06 GETWINDOWWORD exported, shared data
134 2 0d1a SETWINDOWWORD exported, shared data
135 2 0d3a GETWINDOWLONG exported, shared data
136 2 0d4e SETWINDOWLONG exported, shared data
137 39 0710 OPENCLIPBOARD exported, shared data
138 39 0643 CLOSECLIPBOARD exported, shared data
139 39 0261 EMPTYCLIPBOARD exported, shared data
140 39 00ee GETCLIPBOARDOWNER exported, shared data
141 39 02f4 SETCLIPBOARDDATA exported, shared data
142 39 0425 GETCLIPBOARDDATA exported, shared data
143 39 0075 COUNTCLIPBOARDFORMATS exported, shared data
144 39 06bb ENUMCLIPBOARDFORMATS exported, shared data
145 1 8214 REGISTERCLIPBOARDFORMAT exported, shared data
146 39 0752 GETCLIPBOARDFORMATNAME exported, shared data
147 39 0724 SETCLIPBOARDVIEWER exported, shared data
148 39 00f9 GETCLIPBOARDVIEWER exported, shared data
149 39 0738 CHANGECLIPBOARDCHAIN exported, shared data
150 9 1076 LOADMENU exported, shared data
151 9 0806 CREATEMENU exported, shared data
152 9 118e DESTROYMENU exported, shared data
153 9 10db CHANGEMENU exported, shared data
154 9 11a2 CHECKMENUITEM exported, shared data
155 9 11c7 ENABLEMENUITEM exported, shared data
156 9 1160 GETSYSTEMMENU exported, shared data
157 9 10ad GETMENU exported, shared data
158 9 10c1 SETMENU exported, shared data
159 9 11ec GETSUBMENU exported, shared data
160 10 30c3 DRAWMENUBAR exported, shared data
161 9 10fd GETMENUSTRING exported, shared data
162 19 0b49 HILITEMENUITEM exported, shared data
163 13 2521 CREATECARET exported, shared data
164 13 0bfa DESTROYCARET exported, shared data
165 13 0db8 SETCARETPOS exported, shared data
166 13 254f HIDECARET exported, shared data
167 13 2563 SHOWCARET exported, shared data
168 3 24fd SETCARETBLINKTIME exported, shared data
169 13 0d8f GETCARETBLINKTIME exported, shared data
170 4 04c0 ARRANGEICONICWINDOWS exported, shared data
171 2 0e3c WINHELP exported, shared data
172 23 0ceb SWITCHTOTHISWINDOW exported, shared data
173 12 169b LOADCURSOR exported, shared data
174 12 1712 LOADICON exported, shared data
175 12 167e LOADBITMAP exported, shared data
176 12 17af LOADSTRING exported, shared data
177 12 1661 LOADACCELERATORS exported, shared data
178 19 0af4 TRANSLATEACCELERATOR exported, shared data
179 1 a92d GETSYSTEMMETRICS exported, shared data
180 1 8135 GETSYSCOLOR exported, shared data
181 41 186f SETSYSCOLORS exported, shared data
182 1 74f4 BEAR182 exported, shared data
183 13 0d9a GETCARETPOS exported, shared data
184 1 490e QUERYSENDMESSAGE exported, shared data
185 10 30d7 GRAYSTRING exported, shared data
186 1 1cee SWAPMOUSEBUTTON exported
187 9 00fe ENDMENU exported, shared data
188 1 a772 SETSYSMODALWINDOW exported, shared data
189 1 19d4 GETSYSMODALWINDOW exported, shared data
190 1 a9b1 GETUPDATERECT exported, shared data
191 1 abf9 CHILDWINDOWFROMPOINT exported, shared data
192 1 3dba INSENDMESSAGE exported, shared data
193 39 0030 ISCLIPBOARDFORMATAVAILABLE exported, shared data
194 37 104d DLGDIRSELECTCOMBOBOX exported, shared data
195 37 101f DLGDIRLISTCOMBOBOX exported, shared data
196 6 1f1d TABBEDTEXTOUT exported, shared data
197 6 1edc GETTABBEDTEXTEXTENT exported, shared data
198 15 0875 CASCADECHILDWINDOWS exported, shared data
199 15 0956 TILECHILDWINDOWS exported, shared data
200 40 09d9 OPENCOMM exported, shared data
201 40 09f6 SETCOMMSTATE exported, shared data
202 40 0a13 GETCOMMSTATE exported, shared data
203 40 0acd GETCOMMERROR exported, shared data
204 40 0a3d READCOMM exported, shared data
205 40 0a85 WRITECOMM exported, shared data
206 40 0b1d TRANSMITCOMMCHAR exported, shared data
207 40 0aaf CLOSECOMM exported, shared data
208 40 0b3b SETCOMMEVENTMASK exported, shared data
209 40 0b64 GETCOMMEVENTMASK exported, shared data
210 40 0b8d SETCOMMBREAK exported, shared data
211 40 0bab CLEARCOMMBREAK exported, shared data
212 40 0a67 UNGETCOMMCHAR exported, shared data
213 40 0af4 BUILDCOMMDCB exported, shared data
214 40 0be7 ESCAPECOMMFUNCTION exported, shared data
215 40 0bc9 FLUSHCOMM exported, shared data
216 41 181e USERSEEUSERDO exported, shared data
217 9 0163 LOOKUPMENUHANDLE exported, shared data
218 25 2667 DIALOGBOXINDIRECT exported, shared data
219 24 09fa CREATEDIALOGINDIRECT exported, shared data
220 9 1093 LOADMENUINDIRECT exported, shared data
221 13 2409 SCROLLDC exported, shared data
222 1 a889 GETKEYBOARDSTATE exported, shared data
223 1 a8a3 SETKEYBOARDSTATE exported, shared data
224 1 ad54 GETWINDOWTASK exported, shared data
225 1 ad37 ENUMTASKWINDOWS exported, shared data
226 1 4983 LOCKINPUT exported, shared data
227 19 0ac0 GETNEXTDLGGROUPITEM exported, shared data
228 19 0ada GETNEXTDLGTABITEM exported, shared data
229 2 0df2 GETTOPWINDOW exported, shared data
230 2 08f2 GETNEXTWINDOW exported, shared data
231 1 4afb GETSYSTEMDEBUGSTATE exported, shared data
232 7 17ba SETWINDOWPOS exported, shared data
233 14 109c SETPARENT exported, shared data
234 1 ad9a UNHOOKWINDOWSHOOK exported, shared data
235 1 adc4 DEFHOOKPROC exported, shared data
236 1 8197 GETCAPTURE exported, shared data
237 1 a9d1 GETUPDATERGN exported, shared data
238 1 a9fa EXCLUDEUPDATERGN exported, shared data
239 25 2690 DIALOGBOXPARAM exported, shared data
240 25 26bc DIALOGBOXINDIRECTPARAM exported, shared data
241 24 0a29 CREATEDIALOGPARAM exported, shared data
242 24 0a55 CREATEDIALOGINDIRECTPARAM exported, shared data
243 25 0aa3 GETDIALOGBASEUNITS exported, shared data
244 1 2094 EQUALRECT exported, shared data
245 40 0c06 ENABLECOMMNOTIFICATION exported, shared data
246 5 05de EXITWINDOWSEXEC exported, shared data
247 1 14ca GETCURSOR exported, shared data
248 39 0600 GETOPENCLIPBOARDWINDOW exported, shared data
249 1 4f59 GETASYNCKEYSTATE exported, shared data
250 9 113b GETMENUSTATE exported, shared data
251 2 0e5c SENDDRIVERMESSAGE exported, shared data
252 41 18cb OPENDRIVER exported, shared data
253 41 18f1 CLOSEDRIVER exported, shared data
254 41 1905 GETDRIVERMODULEHANDLE exported, shared data
255 2 0e70 DEFDRIVERPROC exported, shared data
256 2 0eaf GETDRIVERINFO exported, shared data
257 2 0e84 GETNEXTDRIVER exported, shared data
258 1 18c8 MAPWINDOWPOINTS exported, shared data
259 7 00b5 BEGINDEFERWINDOWPOS exported, shared data
260 7 17eb DEFERWINDOWPOS exported, shared data
261 7 1822 ENDDEFERWINDOWPOS exported, shared data
262 2 0e1a GETWINDOW exported, shared data
263 9 1217 GETMENUITEMCOUNT exported, shared data
264 9 1200 GETMENUITEMID exported, shared data
265 14 1060 SHOWOWNEDPOPUPS exported, shared data
266 1 56b0 SETMESSAGEQUEUE exported, shared data
267 18 1aa0 SHOWSCROLLBAR exported, shared data
268 1 21cd GLOBALADDATOM exported, shared data
269 1 2236 GLOBALDELETEATOM exported, shared data
270 1 2251 GLOBALFINDATOM exported, shared data
271 1 226f GLOBALGETATOMNAME exported, shared data
272 1 1930 ISZOOMED exported, shared data
273 41 1716 CONTROLPANELINFO exported, shared data
274 23 0d8e GETNEXTQUEUEWINDOW exported, shared data
275 1 77a7 REPAINTSCREEN exported, shared data
276 1 6eea LOCKMYTASK exported, shared data
277 25 27c5 GETDLGCTRLID exported, shared data
278 1 19ca GETDESKTOPHWND exported, shared data
279 41 0a51 OLDSETDESKPATTERN exported, shared data
280 9 1174 SETSYSTEMMENU exported, shared data
282 6 1f95 SELECTPALETTE exported, shared data
283 6 1fd1 REALIZEPALETTE exported, shared data
284 41 1740 GETFREESYSTEMRESOURCES exported, shared data
285 41 1736 BEAR285 exported, shared data
286 1 19ca GETDESKTOPWINDOW exported, shared data
287 2 0e06 GETLASTACTIVEPOPUP exported, shared data
288 1 81bb GETMESSAGEEXTRAINFO exported, shared data
289 1 4b59 KEYBD_EVENT exported, shared data
290 1 aabf REDRAWWINDOW exported, shared data
291 1 adde SETWINDOWSHOOKEX exported, shared data
292 1 ae14 UNHOOKWINDOWSHOOKEX exported, shared data
293 1 ae35 CALLNEXTHOOKEX exported, shared data
294 13 23c9 LOCKWINDOWUPDATE exported, shared data
299 1 507a MOUSE_EVENT exported, shared data
301 26 0000 BOZOSLIVEHERE exported, shared data
306 10 1587 BEAR306 exported, shared data
308 25 27d9 DEFDLGPROC exported, shared data
309 1 abdf GETCLIPCURSOR exported, shared data
314 1 09bc SIGNALPROC exported, shared data
319 13 246c SCROLLWINDOWEX exported, shared data
320 1 9325 SYSERRORBOX exported, shared data
321 1 a8bd SETEVENTHOOK exported, shared data
322 41 0e6e WINOLDAPPHACKOMATIC exported, shared data
323 1 244f GETMESSAGE2 exported, shared data
324 1 7766 FILLWINDOW exported, shared data
325 1 76eb PAINTRECT exported, shared data
326 6 02d2 GETCONTROLBRUSH exported, shared data
331 1 4f36 ENABLEHARDWAREINPUT exported
332 1 3df2 USERYIELD exported, shared data
333 1 334e ISUSERIDLE exported, shared data
334 1 4fed GETQUEUESTATUS exported, shared data
335 1 501c GETINPUTSTATE exported, shared data
336 12 0deb LOADCURSORICONHANDLER exported, shared data
337 1 530a GETMOUSEEVENTPROC exported, shared data
341 1 1798 _FFFE_FARFRAME exported, shared data
343 1 9c7c GETFILEPORTNAME exported, shared data
356 12 0ff1 LOADDIBCURSORHANDLER exported, shared data
357 12 100d LOADDIBICONHANDLER exported, shared data
358 9 0fa0 ISMENU exported, shared data
359 1 a64c GETDCEX exported, shared data
362 1 8a00 DCHOOK exported, shared data
368 12 176f COPYICON exported, shared data
369 12 16f8 COPYCURSOR exported, shared data
370 14 0fde GETWINDOWPLACEMENT exported, shared data
371 14 100e SETWINDOWPLACEMENT exported, shared data
372 12 1789 GETINTERNALICONHEADER exported, shared data
373 1 20b8 SUBTRACTRECT exported, shared data
400 3 2570 FINALUSERINIT exported, shared data
402 39 077c GETPRIORITYCLIPBOARDFORMAT exported, shared data
403 8 0ea5 UNREGISTERCLASS exported, shared data
404 8 0ec2 GETCLASSINFO exported, shared data
406 12 16b8 CREATECURSOR exported, shared data
407 12 172f CREATEICON exported, shared data
408 12 0000 CREATECURSORICONINDIRECT exported, shared data
410 9 122e INSERTMENU exported, shared data
411 9 1250 APPENDMENU exported, shared data
412 9 1294 REMOVEMENU exported, shared data
413 9 12b6 DELETEMENU exported, shared data
414 9 1272 MODIFYMENU exported, shared data
415 9 0813 CREATEPOPUPMENU exported, shared data
416 9 132a TRACKPOPUPMENU exported, shared data
417 9 07ab GETMENUCHECKMARKDIMENSIONS exported, shared data
418 9 12d8 SETMENUITEMBITMAPS exported, shared data
420 16 055a _WSPRINTF exported, shared data
421 16 0518 WVSPRINTF exported, shared data
422 37 0fff DLGDIRSELECTEX exported, shared data
423 37 106d DLGDIRSELECTCOMBOBOXEX exported, shared data
430 11 0359 LSTRCMP exported, shared data
431 11 0365 ANSIUPPER exported, shared data
432 11 0381 ANSILOWER exported, shared data
433 11 0203 ISCHARALPHA exported, shared data
434 11 0208 ISCHARALPHANUMERIC exported, shared data
435 11 020d ISCHARUPPER exported, shared data
436 11 0212 ISCHARLOWER exported, shared data
437 11 039d ANSIUPPERBUFF exported, shared data
438 11 03b7 ANSILOWERBUFF exported, shared data
445 15 1a6e DEFFRAMEPROC exported, shared data
447 15 1a82 DEFMDICHILDPROC exported, shared data
451 15 1aad TRANSLATEMDISYSACCEL exported, shared data
452 8 0f57 CREATEWINDOWEX exported, shared data
454 2 0cec ADJUSTWINDOWRECTEX exported, shared data
455 12 052b GETICONID exported, shared data
456 12 0328 LOADICONHANDLER exported, shared data
457 12 175b DESTROYICON exported, shared data
458 12 16e4 DESTROYCURSOR exported, shared data
459 12 01bb DUMPICON exported, shared data
460 14 0a85 GETINTERNALWINDOWPOS exported, shared data
461 14 0aef SETINTERNALWINDOWPOS exported, shared data
462 15 0276 CALCCHILDSCROLL exported, shared data
463 15 053f SCROLLCHILDREN exported, shared data
464 14 0fbe DRAGOBJECT exported, shared data
465 14 035e DRAGDETECT exported, shared data
466 1 ac0d DRAWFOCUSRECT exported, shared data
470 11 02e7 STRINGFUNC exported, shared data
471 11 035f LSTRCMPI exported, shared data
472 11 03d1 ANSINEXT exported, shared data
473 11 03eb ANSIPREV exported, shared data
480 1 1d38 GETUSERLOCALOBJTYPE exported, shared data
481 1 4d6c HARDWARE_EVENT exported, shared data
482 18 1ac2 ENABLESCROLLBAR exported, shared data
483 41 1895 SYSTEMPARAMETERSINFO exported, shared data
484 1 b664 __GP exported, shared data
499 22 005c WNETERRORTEXT exported, shared data
501 22 0a68 WNETOPENJOB exported, shared data
502 22 0a9d WNETCLOSEJOB exported, shared data
503 22 0b40 WNETABORTJOB exported, shared data
504 22 0acc WNETHOLDJOB exported, shared data
505 22 0ae9 WNETRELEASEJOB exported, shared data
506 22 0b06 WNETCANCELJOB exported, shared data
507 22 0b23 WNETSETJOBCOPIES exported, shared data
508 22 09ca WNETWATCHQUEUE exported, shared data
509 22 09f9 WNETUNWATCHQUEUE exported, shared data
510 22 0a16 WNETLOCKQUEUEDATA exported, shared data
511 22 0a4b WNETUNLOCKQUEUEDATA exported, shared data
512 22 0992 WNETGETCONNECTION exported, shared data
513 22 08a6 WNETGETCAPS exported, shared data
514 22 08c7 WNETDEVICEMODE exported, shared data
515 22 08de WNETBROWSEDIALOG exported, shared data
516 22 0914 WNETGETUSER exported, shared data
517 22 0940 WNETADDCONNECTION exported, shared data
518 22 0975 WNETCANCELCONNECTION exported, shared data
519 22 0b63 WNETGETERROR exported, shared data
520 22 0b80 WNETGETERRORTEXT exported, shared data
521 22 0847 WNETENABLE exported, shared data
522 22 084e WNETDISABLE exported, shared data
523 22 0478 WNETRESTORECONNECTION exported, shared data
524 22 0855 WNETWRITEJOB exported, shared data
525 22 085e WNETCONNECTDIALOG exported, shared data
526 22 0867 WNETDISCONNECTDIALOG exported, shared data
527 22 0870 WNETCONNECTIONDIALOG exported, shared data
528 22 0879 WNETVIEWQUEUEDIALOG exported, shared data
529 22 088b WNETPROPERTYDIALOG exported, shared data
530 22 0894 WNETGETDIRECTORYTYPE exported, shared data
531 22 089d WNETDIRECTORYNOTIFY exported, shared data
532 22 0882 WNETGETPROPERTYTEXT exported, shared data

View File

@ -1,5 +0,0 @@
1 1 002a __FPMATH exported
2 1 0089 WEP exported
3 1 01ab __WIN87EMINFO exported
4 1 0220 __WIN87EMRESTORE exported
5 1 01e3 __WIN87EMSAVE exported

View File

@ -176,7 +176,7 @@ int DRIVE_IsValid( int drive )
*/
int DRIVE_GetCurrentDrive(void)
{
TDB *pTask = (TDB *)GlobalLock( GetCurrentTask() );
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
if (pTask && (pTask->curdrive & 0x80)) return pTask->curdrive & ~0x80;
return DRIVE_CurDrive;
}
@ -187,7 +187,7 @@ int DRIVE_GetCurrentDrive(void)
*/
int DRIVE_SetCurrentDrive( int drive )
{
TDB *pTask = (TDB *)GlobalLock( GetCurrentTask() );
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
if (!DRIVE_IsValid( drive ))
{
DOS_ERROR( ER_InvalidDrive, EC_MediaError, SA_Abort, EL_Disk );
@ -270,7 +270,7 @@ const char * DRIVE_GetRoot( int drive )
*/
const char * DRIVE_GetDosCwd( int drive )
{
TDB *pTask = (TDB *)GlobalLock( GetCurrentTask() );
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
if (!DRIVE_IsValid( drive )) return NULL;
/* Check if we need to change the directory to the new task. */
@ -291,7 +291,7 @@ const char * DRIVE_GetDosCwd( int drive )
*/
const char * DRIVE_GetUnixCwd( int drive )
{
TDB *pTask = (TDB *)GlobalLock( GetCurrentTask() );
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
if (!DRIVE_IsValid( drive )) return NULL;
/* Check if we need to change the directory to the new task. */
@ -356,7 +356,7 @@ int DRIVE_Chdir( int drive, const char *path )
char buffer[MAX_PATHNAME_LEN];
const char *unix_cwd, *dos_cwd;
BYTE attr;
TDB *pTask = (TDB *)GlobalLock( GetCurrentTask() );
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
dprintf_dosfs( stddeb, "DRIVE_Chdir(%c:,%s)\n", 'A' + drive, path );
strcpy( buffer, "A:" );

View File

@ -101,7 +101,7 @@ static void FILE_GetPDBFiles( BYTE **files, WORD *nbFiles )
{
PDB *pdb;
if ((pdb = (PDB *)GlobalLock( GetCurrentPDB() )) != NULL)
if ((pdb = (PDB *)GlobalLock16( GetCurrentPDB() )) != NULL)
{
*files = PTR_SEG_TO_LIN( pdb->fileHandlesPtr );
*nbFiles = pdb->nbFiles;
@ -219,7 +219,7 @@ void FILE_CloseAllFiles( HANDLE hPDB )
{
BYTE *files;
WORD count;
PDB *pdb = (PDB *)GlobalLock( hPDB );
PDB *pdb = (PDB *)GlobalLock16( hPDB );
if (!pdb) return;
files = PTR_SEG_TO_LIN( pdb->fileHandlesPtr );
@ -572,7 +572,7 @@ HFILE FILE_Dup( HFILE hFile )
HFILE FILE_Dup2( HFILE hFile1, HFILE hFile2 )
{
DOS_FILE *file;
PDB *pdb = (PDB *)GlobalLock( GetCurrentPDB() );
PDB *pdb = (PDB *)GlobalLock16( GetCurrentPDB() );
BYTE *files = PTR_SEG_TO_LIN( pdb->fileHandlesPtr );
dprintf_file( stddeb, "FILE_Dup2 for handle %d\n", hFile1 );
@ -702,7 +702,8 @@ HFILE OpenFile( LPCSTR name, OFSTRUCT *ofs, UINT mode )
name, ofs->szPathName, hFileRet );
/* Return the handle, but close it first */
FILE_FreeTaskHandle( hFileRet );
return hFileRet;
/* return hFileRet; */
return 0; /* Progman seems to like this better */
}
/* OF_CREATE is completely different from all other options, so
@ -875,7 +876,7 @@ INT _lread( HFILE hFile, SEGPTR buffer, WORD count )
/***********************************************************************
* _lcreat (KERNEL.83)
*/
INT _lcreat( LPCSTR path, INT attr )
HFILE _lcreat( LPCSTR path, INT attr )
{
DOS_FILE *file;
HFILE handle;
@ -893,7 +894,7 @@ INT _lcreat( LPCSTR path, INT attr )
/***********************************************************************
* _lcreat_uniq (Not a Windows API)
*/
INT _lcreat_uniq( LPCSTR path, INT attr )
HFILE _lcreat_uniq( LPCSTR path, INT attr )
{
DOS_FILE *file;
HFILE handle;
@ -1021,7 +1022,7 @@ LONG _hwrite( HFILE hFile, LPCSTR buffer, LONG count )
WORD SetHandleCount( WORD count )
{
HANDLE hPDB = GetCurrentPDB();
PDB *pdb = (PDB *)GlobalLock( hPDB );
PDB *pdb = (PDB *)GlobalLock16( hPDB );
BYTE *files = PTR_SEG_TO_LIN( pdb->fileHandlesPtr );
WORD i;
@ -1048,10 +1049,10 @@ WORD SetHandleCount( WORD count )
{
memcpy( pdb->fileHandles, files, 20 );
#ifdef WINELIB
GlobalFree( (HGLOBAL)pdb->fileHandlesPtr );
GlobalFree32( (HGLOBAL32)pdb->fileHandlesPtr );
pdb->fileHandlesPtr = (SEGPTR)pdb->fileHandles;
#else
GlobalFree( GlobalHandle( SELECTOROF(pdb->fileHandlesPtr) ));
GlobalFree16( GlobalHandle16( SELECTOROF(pdb->fileHandlesPtr) ));
pdb->fileHandlesPtr = (SEGPTR)MAKELONG( 0x18,
GlobalHandleToSel( hPDB ) );
#endif
@ -1061,13 +1062,17 @@ WORD SetHandleCount( WORD count )
else /* More than 20, need a new file handles table */
{
BYTE *newfiles;
HANDLE newhandle = GlobalAlloc( GMEM_MOVEABLE, count );
#ifdef WINELIB
newfiles = (BYTE *)GlobalAlloc32( GMEM_FIXED, count );
#else
HANDLE newhandle = GlobalAlloc16( GMEM_MOVEABLE, count );
if (!newhandle)
{
DOS_ERROR( ER_OutOfMemory, EC_OutOfResource, SA_Abort, EL_Memory );
return pdb->nbFiles;
}
newfiles = (BYTE *)GlobalLock( newhandle );
newfiles = (BYTE *)GlobalLock16( newhandle );
#endif /* WINELIB */
if (count > pdb->nbFiles)
{
memcpy( newfiles, files, pdb->nbFiles );
@ -1075,12 +1080,13 @@ WORD SetHandleCount( WORD count )
}
else memcpy( newfiles, files, count );
#ifdef WINELIB
if (pdb->nbFiles > 20) GlobalFree( (HGLOBAL)pdb->fileHandlesPtr );
if (pdb->nbFiles > 20) GlobalFree32( (HGLOBAL32)pdb->fileHandlesPtr );
pdb->fileHandlesPtr = (SEGPTR)newfiles;
#else
if (pdb->nbFiles > 20)
GlobalFree( GlobalHandle( SELECTOROF(pdb->fileHandlesPtr) ));
#endif
pdb->fileHandlesPtr = WIN16_GlobalLock( newhandle );
GlobalFree16( GlobalHandle16( SELECTOROF(pdb->fileHandlesPtr) ));
pdb->fileHandlesPtr = WIN16_GlobalLock16( newhandle );
#endif /* WINELIB */
pdb->nbFiles = count;
}
return pdb->nbFiles;

View File

@ -8,6 +8,7 @@ DLLS = \
comdlg32.spec \
commdlg.spec \
compobj.spec \
crtdll.spec \
ddeml.spec \
gdi.spec \
gdi32.spec \
@ -17,6 +18,7 @@ DLLS = \
lzexpand.spec \
mmsystem.spec \
mouse.spec \
ntdll.spec \
ole2.spec \
ole2conv.spec \
ole2disp.spec \
@ -40,7 +42,8 @@ DLLS = \
winsock.spec \
winspool.spec \
wprocs.spec \
wprocs32.spec
wprocs32.spec \
wsock32.spec
SPEC_FILES = $(DLLS:.spec=.S)

530
if1632/crtdll.spec Normal file
View File

@ -0,0 +1,530 @@
name crtdll
type win32
base 1
001 stub ??2@YAPAXI@Z
002 stub ??3@YAXPAX@Z
003 stub ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
004 stub _CIacos
005 stub _CIasin
006 stub _CIatan
007 stub _CIatan2
008 stub _CIcos
009 stub _CIcosh
010 stub _CIexp
011 stub _CIfmod
012 stub _CIlog
013 stub _CIlog10
014 stub _CIpow
015 stub _CIsin
016 stub _CIsinh
017 stub _CIsqrt
018 stub _CItan
019 stub _CItanh
020 stub _HUGE_dll
021 stub _XcptFilter
022 stub __GetMainArgs
023 stub __argc_dll
024 stub __argv_dll
025 stub __dllonexit
026 stub __doserrno
027 stub __fpecode
028 stub __isascii
029 stub __iscsym
030 stub __iscsymf
031 stub __mb_cur_max_dll
032 stub __pxcptinfoptrs
033 stub __threadhandle
034 stub __threadid
035 stub __toascii
036 stub _abnormal_termination
037 stub _access
038 stub _acmdln_dll
039 stub _aexit_rtn_dll
040 stub _amsg_exit
041 stub _assert
042 stub _basemajor_dll
043 stub _baseminor_dll
044 stub _baseversion_dll
045 stub _beep
046 stub _beginthread
047 stub _c_exit
048 stub _cabs
049 stub _cexit
050 stub _cgets
051 stub _chdir
052 stub _chdrive
053 stub _chgsign
054 stub _chmod
055 stub _chsize
056 stub _clearfp
057 stub _close
058 stub _commit
059 stub _commode_dll
060 stub _control87
061 stub _controlfp
062 stub _copysign
063 stub _cprintf
064 stub _cpumode_dll
065 stub _cputs
066 stub _creat
067 stub _cscanf
068 stub _ctype
069 stub _cwait
070 stub _daylight_dll
071 stub _dup
072 stub _dup2
073 stub _ecvt
074 stub _endthread
075 stub _environ_dll
076 stub _eof
077 stub _errno
078 stub _except_handler2
079 stub _execl
080 stub _execle
081 stub _execlp
082 stub _execlpe
083 stub _execv
084 stub _execve
085 stub _execvp
086 stub _execvpe
087 stub _exit
088 stub _expand
089 stub _fcloseall
090 stub _fcvt
091 stub _fdopen
092 stub _fgetchar
093 stub _fgetwchar
094 stub _filbuf
095 stub _fileinfo_dll
096 stub _filelength
097 stub _fileno
098 stub _findclose
099 stub _findfirst
100 stub _findnext
101 stub _finite
102 stub _flsbuf
103 stub _flushall
104 stub _fmode_dll
105 stub _fpclass
106 stub _fpieee_flt
107 stub _fpreset
108 stub _fputchar
109 stub _fputwchar
110 stub _fsopen
111 stub _fstat
112 stub _ftime
113 stub _ftol
114 stub _fullpath
115 stub _futime
116 stub _gcvt
117 stub _get_osfhandle
118 stub _getch
119 stub _getche
120 stub _getcwd
121 stub _getdcwd
122 stub _getdiskfree
123 stub _getdllprocaddr
124 stub _getdrive
125 stub _getdrives
126 stub _getpid
127 stub _getsystime
128 stub _getw
129 stub _global_unwind2
130 stub _heapchk
131 stub _heapmin
132 stub _heapset
133 stub _heapwalk
134 stub _hypot
135 stub _initterm
136 stub _iob
137 stub _isatty
138 stub _isctype
139 stub _ismbbalnum
140 stub _ismbbalpha
141 stub _ismbbgraph
142 stub _ismbbkalnum
143 stub _ismbbkana
144 stub _ismbbkpunct
145 stub _ismbblead
146 stub _ismbbprint
147 stub _ismbbpunct
148 stub _ismbbtrail
149 stub _ismbcalpha
150 stub _ismbcdigit
151 stub _ismbchira
152 stub _ismbckata
153 stub _ismbcl0
154 stub _ismbcl1
155 stub _ismbcl2
156 stub _ismbclegal
157 stub _ismbclower
158 stub _ismbcprint
159 stub _ismbcspace
160 stub _ismbcsymbol
161 stub _ismbcupper
162 stub _ismbslead
163 stub _ismbstrail
164 stub _isnan
165 stub _itoa
166 stub _itow
167 stub _j0
168 stub _j1
169 stub _jn
170 stub _kbhit
171 stub _lfind
172 stub _loaddll
173 stub _local_unwind2
174 stub _locking
175 stub _logb
176 stub _lrotl
177 stub _lrotr
178 stub _lsearch
179 stub _lseek
180 stub _ltoa
181 stub _ltow
182 stub _makepath
183 stub _matherr
184 stub _mbbtombc
185 stub _mbbtype
186 stub _mbccpy
187 stub _mbcjistojms
188 stub _mbcjmstojis
189 stub _mbclen
190 stub _mbctohira
191 stub _mbctokata
192 stub _mbctolower
193 stub _mbctombb
194 stub _mbctoupper
195 stub _mbctype
196 stub _mbsbtype
197 stub _mbscat
198 stub _mbschr
199 stub _mbscmp
200 stub _mbscpy
201 stub _mbscspn
202 stub _mbsdec
203 stub _mbsdup
204 stub _mbsicmp
205 stub _mbsinc
206 stub _mbslen
207 stub _mbslwr
208 stub _mbsnbcat
209 stub _mbsnbcmp
210 stub _mbsnbcnt
211 stub _mbsnbcpy
212 stub _mbsnbicmp
213 stub _mbsnbset
214 stub _mbsncat
215 stub _mbsnccnt
216 stub _mbsncmp
217 stub _mbsncpy
218 stub _mbsnextc
219 stub _mbsnicmp
220 stub _mbsninc
221 stub _mbsnset
222 stub _mbspbrk
223 stub _mbsrchr
224 stub _mbsrev
225 stub _mbsset
226 stub _mbsspn
227 stub _mbsspnp
228 stub _mbsstr
229 stub _mbstok
230 stub _mbstrlen
231 stub _mbsupr
232 stub _memccpy
233 stub _memicmp
234 stub _mkdir
235 stub _mktemp
236 stub _msize
237 stub _nextafter
238 stub _onexit
239 stub _open
240 stub _open_osfhandle
241 stub _osmajor_dll
242 stub _osminor_dll
243 stub _osmode_dll
244 stub _osver_dll
245 stub _osversion_dll
246 stub _pclose
247 stub _pctype_dll
248 stub _pgmptr_dll
249 stub _pipe
250 stub _popen
251 stub _purecall
252 stub _putch
253 stub _putenv
254 stub _putw
255 stub _pwctype_dll
256 stub _read
257 stub _rmdir
258 stub _rmtmp
259 stub _rotl
260 stub _rotr
261 stub _scalb
262 stub _searchenv
263 stub _seterrormode
264 stub _setjmp
265 stub _setmode
266 stub _setsystime
267 stub _sleep
268 stub _snprintf
269 stub _snwprintf
270 stub _sopen
271 stub _spawnl
272 stub _spawnle
273 stub _spawnlp
274 stub _spawnlpe
275 stub _spawnv
276 stub _spawnve
277 stub _spawnvp
278 stub _spawnvpe
279 stub _splitpath
280 stub _stat
281 stub _statusfp
282 stub _strcmpi
283 stub _strdate
284 stub _strdec
285 stub _strdup
286 stub _strerror
287 stub _stricmp
288 stub _stricoll
289 stub _strinc
290 stub _strlwr
291 stub _strncnt
292 stub _strnextc
293 stub _strnicmp
294 stub _strninc
295 stub _strnset
296 stub _strrev
297 stub _strset
298 stub _strspnp
299 stub _strtime
300 stub _strupr
301 stub _swab
302 stub _sys_errlist
303 stub _sys_nerr_dll
304 stub _tell
305 stub _tempnam
306 stub _timezone_dll
307 stub _tolower
308 stub _toupper
309 stub _tzname
310 stub _tzset
311 stub _ultoa
312 stub _ultow
313 stub _umask
314 stub _ungetch
315 stub _unlink
316 stub _unloaddll
317 stub _utime
318 stub _vsnprintf
319 stub _vsnwprintf
320 stub _wcsdup
321 stub _wcsicmp
322 stub _wcsicoll
323 stub _wcslwr
324 stub _wcsnicmp
325 stub _wcsnset
326 stub _wcsrev
327 stub _wcsset
328 stub _wcsupr
329 stub _winmajor_dll
330 stub _winminor_dll
331 stub _winver_dll
332 stub _write
333 stub _wtoi
334 stub _wtol
335 stub _y0
336 stub _y1
337 stub _yn
338 stub abort
339 stub abs
340 stub acos
341 stub asctime
342 stub asin
343 stub atan
344 stub atan2
345 stub atexit
346 stub atof
347 stub atoi
348 stub atol
349 stub bsearch
350 stub calloc
351 stub ceil
352 stub clearerr
353 stub clock
354 stub cos
355 stub cosh
356 stub ctime
357 stub difftime
358 stub div
359 stub exit
360 stub exp
361 stub fabs
362 stub fclose
363 stub feof
364 stub ferror
365 stub fflush
366 stub fgetc
367 stub fgetpos
368 stub fgets
369 stub fgetwc
370 stub floor
371 stub fmod
372 stub fopen
373 stub fprintf
374 stub fputc
375 stub fputs
376 stub fputwc
377 stub fread
378 stub free
379 stub freopen
380 stub frexp
381 stub fscanf
382 stub fseek
383 stub fsetpos
384 stub ftell
385 stub fwprintf
386 stub fwrite
387 stub fwscanf
388 stub getc
389 stub getchar
390 stub getenv
391 stub gets
392 stub gmtime
393 stub is_wctype
394 stub isalnum
395 stub isalpha
396 stub iscntrl
397 stub isdigit
398 stub isgraph
399 stub isleadbyte
400 stub islower
401 stub isprint
402 stub ispunct
403 stub isspace
404 stub isupper
405 stub iswalnum
406 stub iswalpha
407 stub iswascii
408 stub iswcntrl
409 stub iswctype
410 stub iswdigit
411 stub iswgraph
412 stub iswlower
413 stub iswprint
414 stub iswpunct
415 stub iswspace
416 stub iswupper
417 stub iswxdigit
418 stub isxdigit
419 stub labs
420 stub ldexp
421 stub ldiv
422 stub localeconv
423 stub localtime
424 stub log
425 stub log10
426 stub longjmp
427 stub malloc
428 stub mblen
429 stub mbstowcs
430 stub mbtowc
431 stub memchr
432 stub memcmp
433 stub memcpy
434 stub memmove
435 stub memset
436 stub mktime
437 stub modf
438 stub perror
439 stub pow
440 stub printf
441 stub putc
442 stub putchar
443 stub puts
444 stub qsort
445 stub raise
446 stub rand
447 stub realloc
448 stub remove
449 stub rename
450 stub rewind
451 stub scanf
452 stub setbuf
453 stub setlocale
454 stub setvbuf
455 stub signal
456 stub sin
457 stub sinh
458 stub sprintf
459 stub sqrt
460 stub srand
461 stub sscanf
462 stub strcat
463 stub strchr
464 stub strcmp
465 stub strcoll
466 stub strcpy
467 stub strcspn
468 stub strerror
469 stub strftime
470 stub strlen
471 stub strncat
472 stub strncmp
473 stub strncpy
474 stub strpbrk
475 stub strrchr
476 stub strspn
477 stub strstr
478 stub strtod
479 stub strtok
480 stub strtol
481 stub strtoul
482 stub strxfrm
483 stub swprintf
484 stub swscanf
485 stub system
486 stub tan
487 stub tanh
488 stub time
489 stub tmpfile
490 stub tmpnam
491 stub tolower
492 stub toupper
493 stub towlower
494 stub towupper
495 stub ungetc
496 stub ungetwc
497 stub vfprintf
498 stub vfwprintf
499 stub vprintf
500 stub vsprintf
501 stub vswprintf
502 stub vwprintf
503 stub wcscat
504 stub wcschr
505 stub wcscmp
506 stub wcscoll
507 stub wcscpy
508 stub wcscspn
509 stub wcsftime
510 stub wcslen
511 stub wcsncat
512 stub wcsncmp
513 stub wcsncpy
514 stub wcspbrk
515 stub wcsrchr
516 stub wcsspn
517 stub wcsstr
518 stub wcstod
519 stub wcstok
520 stub wcstol
521 stub wcstombs
522 stub wcstoul
523 stub wcsxfrm
524 stub wctomb
525 stub wprintf
526 stub wscanf

View File

@ -124,7 +124,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
125 pascal16 CreateMetaFile(ptr) CreateMetaFile
126 pascal16 CloseMetaFile(word) CloseMetaFile
127 pascal16 DeleteMetaFile(word) DeleteMetaFile
128 pascal16 MulDiv(s_word s_word s_word) MulDiv
128 pascal16 MulDiv(s_word s_word s_word) MulDiv16
129 pascal16 SaveVisRgn(word) SaveVisRgn
130 pascal16 RestoreVisRgn(word) RestoreVisRgn
131 pascal16 InquireVisRgn(word) InquireVisRgn

View File

@ -5,27 +5,27 @@ type win16
2 stub ExitKernel
3 pascal GetVersion() GetVersion
4 pascal16 LocalInit(word word word) LocalInit
5 pascal16 LocalAlloc(word word) LocalAlloc
6 pascal16 LocalReAlloc(word word word) LocalReAlloc
7 pascal16 LocalFree(word) LocalFree
8 pascal16 LocalLock(word) LocalLock
9 pascal16 LocalUnlock(word) LocalUnlock
10 pascal16 LocalSize(word) LocalSize
11 pascal16 LocalHandle(word) LocalHandle
12 pascal16 LocalFlags(word) LocalFlags
13 pascal16 LocalCompact(word) LocalCompact
5 pascal16 LocalAlloc(word word) LocalAlloc16
6 pascal16 LocalReAlloc(word word word) LocalReAlloc16
7 pascal16 LocalFree(word) LocalFree16
8 pascal16 LocalLock(word) LocalLock16
9 pascal16 LocalUnlock(word) LocalUnlock16
10 pascal16 LocalSize(word) LocalSize16
11 pascal16 LocalHandle(word) LocalHandle16
12 pascal16 LocalFlags(word) LocalFlags16
13 pascal16 LocalCompact(word) LocalCompact16
14 pascal16 LocalNotify(long) LocalNotify
15 pascal16 GlobalAlloc(word long) GlobalAlloc
16 pascal16 GlobalReAlloc(word long word) GlobalReAlloc
17 pascal16 GlobalFree(word) GlobalFree
18 pascal GlobalLock(word) WIN16_GlobalLock
19 pascal16 GlobalUnlock(word) GlobalUnlock
20 pascal GlobalSize(word) GlobalSize
21 pascal GlobalHandle(word) GlobalHandle
22 pascal16 GlobalFlags(word) GlobalFlags
15 pascal16 GlobalAlloc(word long) GlobalAlloc16
16 pascal16 GlobalReAlloc(word long word) GlobalReAlloc16
17 pascal16 GlobalFree(word) GlobalFree16
18 pascal GlobalLock(word) WIN16_GlobalLock16
19 pascal16 GlobalUnlock(word) GlobalUnlock16
20 pascal GlobalSize(word) GlobalSize16
21 pascal GlobalHandle(word) GlobalHandle16
22 pascal16 GlobalFlags(word) GlobalFlags16
23 pascal16 LockSegment(word) LockSegment
24 pascal16 UnlockSegment(word) UnlockSegment
25 pascal GlobalCompact(long) GlobalCompact
25 pascal GlobalCompact(long) GlobalCompact16
26 pascal16 GlobalFreeAll(word) GlobalFreeAll
27 stub GetModuleName
28 stub GlobalMasterHandle
@ -111,13 +111,13 @@ type win16
112 pascal16 GlobalUnWire(word) GlobalUnWire
113 equate __AHSHIFT 3
114 equate __AHINCR 8
115 pascal OutputDebugString(ptr) OutputDebugString
115 pascal16 OutputDebugString(ptr) OutputDebugString
116 stub InitLib
117 pascal16 OldYield() OldYield
118 register GetTaskQueueDS() GetTaskQueueDS
119 register GetTaskQueueES() GetTaskQueueES
120 stub UndefDynLink
121 pascal16 LocalShrink(word word) LocalShrink
121 pascal16 LocalShrink(word word) LocalShrink16
122 pascal16 IsTaskLocked() IsTaskLocked
123 stub KbdRst
124 return EnableKernel 0 0

View File

@ -318,24 +318,24 @@ base 1
0312 stub GetWindowsDirectoryW
0313 stdcall GlobalAddAtomA(long) WIN32_GlobalAddAtomA
0314 stub GlobalAddAtomW
0315 stdcall GlobalAlloc(long long) GlobalAlloc32
0316 stub GlobalCompact
0315 stdcall GlobalAlloc(long long) GlobalAlloc32
0316 stdcall GlobalCompact(long) GlobalCompact32
0317 stub GlobalDeleteAtom
0318 stub GlobalFindAtomA
0319 stub GlobalFindAtomW
0320 stub GlobalFix
0321 stub GlobalFlags
0322 stub GlobalFree
0321 stdcall GlobalFlags(long) GlobalFlags32
0322 stdcall GlobalFree(long) GlobalFree32
0323 stub GlobalGetAtomNameA
0324 stub GlobalGetAtomNameW
0325 stub GlobalHandle
0326 stdcall GlobalLock(long) GlobalLock32
0325 stdcall GlobalHandle(ptr) GlobalHandle32
0326 stdcall GlobalLock(long) GlobalLock32
0327 stub GlobalMemoryStatus
0328 stub GlobalReAlloc
0329 stub GlobalSize
0328 stdcall GlobalReAlloc(long long long) GlobalReAlloc32
0329 stdcall GlobalSize(long) GlobalSize32
0330 stub GlobalUnWire
0331 stub GlobalUnfix
0332 stub GlobalUnlock
0332 stdcall GlobalUnlock(long) GlobalUnlock32
0333 stub GlobalWire
0334 stdcall HeapAlloc(long long long) HeapAlloc
0335 stdcall HeapCompact(long long) HeapCompact
@ -354,7 +354,7 @@ base 1
0348 stub InterlockedExchange
0349 stub InterlockedIncrement
0350 stub InvalidateConsoleDIBits
0351 stub IsBadCodePtr
0351 stdcall IsBadCodePtr(ptr long) WIN32_IsBadCodePtr
0352 stub IsBadHugeReadPtr
0353 stub IsBadHugeWritePtr
0354 stdcall IsBadReadPtr(ptr long) WIN32_IsBadReadPtr
@ -374,17 +374,17 @@ base 1
0368 stub LoadLibraryW
0369 stub LoadModule
0370 stdcall LoadResource(long long) LoadResource32
0371 stdcall LocalAlloc(long long) GlobalAlloc32
0372 stub LocalCompact
0371 stdcall LocalAlloc(long long) LocalAlloc32
0372 stdcall LocalCompact(long) LocalCompact32
0373 stub LocalFileTimeToFileTime
0374 stub LocalFlags
0375 stub LocalFree
0376 stub LocalHandle
0377 stdcall LocalLock(long) GlobalLock32
0378 stub LocalReAlloc
0379 stub LocalShrink
0380 stub LocalSize
0381 stub LocalUnlock
0374 stdcall LocalFlags(long) LocalFlags32
0375 stdcall LocalFree(long) LocalFree32
0376 stdcall LocalHandle(ptr) LocalHandle32
0377 stdcall LocalLock(long) LocalLock32
0378 stdcall LocalReAlloc(long long long) LocalReAlloc32
0379 stdcall LocalShrink(long long) LocalShrink32
0380 stdcall LocalSize(long) LocalSize32
0381 stdcall LocalUnlock(long) LocalUnlock32
0382 stub LockFile
0383 stub LockFileEx
0384 stub LockResource
@ -394,7 +394,7 @@ base 1
0388 stub MoveFileExA
0389 stub MoveFileExW
0390 stub MoveFileW
0391 stub MulDiv
0391 stdcall MulDiv(long long long) MulDiv32
0392 stdcall MultiByteToWideChar(long long ptr long ptr long) MultiByteToWideChar
0393 stub OpenConsoleW
0394 stub OpenEventA

954
if1632/ntdll.spec Normal file
View File

@ -0,0 +1,954 @@
name ntdll
type win32
base 0
001 stub CsrAllocateCaptureBuffer
002 stub CsrAllocateCapturePointer
003 stub CsrAllocateMessagePointer
004 stub CsrCaptureMessageBuffer
005 stub CsrCaptureMessageString
006 stub CsrCaptureTimeout
007 stub CsrClientCallServer
008 stub CsrClientConnectToServer
009 stub CsrClientMaxMessage
010 stub CsrClientSendMessage
011 stub CsrClientThreadConnect
012 stub CsrFreeCaptureBuffer
013 stub CsrIdentifyAlertableThread
014 stub CsrNewThread
015 stub CsrProbeForRead
016 stub CsrProbeForWrite
017 stub CsrSetPriorityClass
018 stub CsrpProcessCallbackRequest
019 stub DbgBreakPoint
020 stub DbgPrint
021 stub DbgPrompt
022 stub DbgSsHandleKmApiMsg
023 stub DbgSsInitialize
024 stub DbgUiConnectToDbg
025 stub DbgUiContinue
026 stub DbgUiWaitStateChange
027 stub DbgUserBreakPoint
028 stub KiUserApcDispatcher
029 stub KiUserCallbackDispatcher
030 stub KiUserExceptionDispatcher
031 stub LdrAccessResource
032 stub LdrDisableThreadCalloutsForDll
033 stub LdrEnumResources
034 stub LdrFindEntryForAddress
035 stub LdrFindResourceDirectory_U
036 stub LdrFindResource_U
037 stub LdrGetDllHandle
038 stub LdrGetProcedureAddress
039 stub LdrInitializeThunk
040 stub LdrLoadDll
041 stub LdrProcessRelocationBlock
042 stub LdrQueryImageFileExecutionOptions
043 stub LdrQueryProcessModuleInformation
044 stub LdrShutdownProcess
045 stub LdrShutdownThread
046 stub LdrUnloadDll
047 stub LdrVerifyImageMatchesChecksum
048 stub NPXEMULATORTABLE
049 stub NlsMbCodePageTag
050 stub NlsMbOemCodePageTag
051 stub NtAcceptConnectPort
052 stub NtAccessCheck
053 stub NtAccessCheckAndAuditAlarm
054 stub NtAdjustGroupsToken
055 stub NtAdjustPrivilegesToken
056 stub NtAlertResumeThread
057 stub NtAlertThread
058 stub NtAllocateLocallyUniqueId
059 stub NtAllocateUuids
060 stub NtAllocateVirtualMemory
061 stub NtCallbackReturn
062 stub NtCancelIoFile
063 stub NtCancelTimer
064 stub NtClearEvent
065 stub NtClose
066 stub NtCloseObjectAuditAlarm
067 stub NtCompleteConnectPort
068 stub NtConnectPort
069 stub NtContinue
070 stub NtCreateDirectoryObject
071 stub NtCreateEvent
072 stub NtCreateEventPair
073 stub NtCreateFile
074 stub NtCreateIoCompletion
075 stub NtCreateKey
076 stub NtCreateMailslotFile
077 stub NtCreateMutant
078 stub NtCreateNamedPipeFile
079 stub NtCreatePagingFile
080 stub NtCreatePort
081 stub NtCreateProcess
082 stub NtCreateProfile
083 stub NtCreateSection
084 stub NtCreateSemaphore
085 stub NtCreateSymbolicLinkObject
086 stub NtCreateThread
087 stub NtCreateTimer
088 stub NtCreateToken
089 stub NtCurrentTeb
090 stub NtDelayExecution
091 stub NtDeleteFile
092 stub NtDeleteKey
093 stub NtDeleteValueKey
094 stub NtDeviceIoControlFile
095 stub NtDisplayString
096 stub NtDuplicateObject
097 stub NtDuplicateToken
098 stub NtEnumerateBus
099 stub NtEnumerateKey
100 stub NtEnumerateValueKey
101 stub NtExtendSection
102 stub NtFlushBuffersFile
103 stub NtFlushInstructionCache
104 stub NtFlushKey
105 stub NtFlushVirtualMemory
106 stub NtFlushWriteBuffer
107 stub NtFreeVirtualMemory
108 stub NtFsControlFile
109 stub NtGetContextThread
110 stub NtGetPlugPlayEvent
111 stub NtGetTickCount
112 stub NtImpersonateClientOfPort
113 stub NtImpersonateThread
114 stub NtInitializeRegistry
115 stub NtListenPort
116 stub NtLoadDriver
117 stub NtLoadKey
118 stub NtLockFile
119 stub NtLockVirtualMemory
120 stub NtMakeTemporaryObject
121 stub NtMapViewOfSection
122 stub NtNotifyChangeDirectoryFile
123 stub NtNotifyChangeKey
124 stub NtOpenDirectoryObject
125 stub NtOpenEvent
126 stub NtOpenEventPair
127 stub NtOpenFile
128 stub NtOpenIoCompletion
129 stub NtOpenKey
130 stub NtOpenMutant
131 stub NtOpenObjectAuditAlarm
132 stub NtOpenProcess
133 stub NtOpenProcessToken
134 stub NtOpenSection
135 stub NtOpenSemaphore
136 stub NtOpenSymbolicLinkObject
137 stub NtOpenThread
138 stub NtOpenThreadToken
139 stub NtOpenTimer
140 stub NtPlugPlayControl
141 stub NtPrivilegeCheck
142 stub NtPrivilegeObjectAuditAlarm
143 stub NtPrivilegedServiceAuditAlarm
144 stub NtProtectVirtualMemory
145 stub NtPulseEvent
146 stub NtQueryAttributesFile
147 stub NtQueryDefaultLocale
148 stub NtQueryDirectoryFile
149 stub NtQueryDirectoryObject
150 stub NtQueryEaFile
151 stub NtQueryEvent
152 stub NtQueryInformationFile
153 stub NtQueryInformationPort
154 stub NtQueryInformationProcess
155 stub NtQueryInformationThread
156 stub NtQueryInformationToken
157 stub NtQueryIntervalProfile
158 stub NtQueryIoCompletion
159 stub NtQueryKey
160 stub NtQueryMutant
161 stub NtQueryObject
162 stub NtQueryPerformanceCounter
163 stub NtQuerySection
164 stub NtQuerySecurityObject
165 stub NtQuerySemaphore
166 stub NtQuerySymbolicLinkObject
167 stub NtQuerySystemEnvironmentValue
168 stub NtQuerySystemInformation
169 stub NtQuerySystemTime
170 stub NtQueryTimer
171 stub NtQueryTimerResolution
172 stub NtQueryValueKey
173 stub NtQueryVirtualMemory
174 stub NtQueryVolumeInformationFile
175 stub NtRaiseException
176 stub NtRaiseHardError
177 stub NtReadFile
178 stub NtReadRequestData
179 stub NtReadVirtualMemory
180 stub NtRegisterNewDevice
181 stub NtRegisterThreadTerminatePort
182 stub NtReleaseMutant
183 stub NtReleaseProcessMutant
184 stub NtReleaseSemaphore
185 stub NtRemoveIoCompletion
186 stub NtReplaceKey
187 stub NtReplyPort
188 stub NtReplyWaitReceivePort
189 stub NtReplyWaitReplyPort
190 stub NtRequestPort
191 stub NtRequestWaitReplyPort
192 stub NtResetEvent
193 stub NtRestoreKey
194 stub NtResumeThread
195 stub NtSaveKey
196 stub NtSetContextThread
197 stub NtSetDefaultHardErrorPort
198 stub NtSetDefaultLocale
199 stub NtSetEaFile
200 stub NtSetEvent
201 stub NtSetHighEventPair
202 stub NtSetHighWaitLowEventPair
203 stub NtSetHighWaitLowThread
204 stub NtSetInformationFile
205 stub NtSetInformationKey
206 stub NtSetInformationObject
207 stub NtSetInformationProcess
208 stub NtSetInformationThread
209 stub NtSetInformationToken
210 stub NtSetIntervalProfile
211 stub NtSetIoCompletion
212 stub NtSetLdtEntries
213 stub NtSetLowEventPair
214 stub NtSetLowWaitHighEventPair
215 stub NtSetLowWaitHighThread
216 stub NtSetSecurityObject
217 stub NtSetSystemEnvironmentValue
218 stub NtSetSystemInformation
219 stub NtSetSystemPowerState
220 stub NtSetSystemTime
221 stub NtSetTimer
222 stub NtSetTimerResolution
223 stub NtSetValueKey
224 stub NtSetVolumeInformationFile
225 stub NtShutdownSystem
226 stub NtStartProfile
227 stub NtStopProfile
228 stub NtSuspendThread
229 stub NtSystemDebugControl
230 stub NtTerminateProcess
231 stub NtTerminateThread
232 stub NtTestAlert
233 stub NtUnloadDriver
234 stub NtUnloadKey
235 stub NtUnlockFile
236 stub NtUnlockVirtualMemory
237 stub NtUnmapViewOfSection
238 stub NtVdmControl
239 stub NtW32Call
240 stub NtWaitForMultipleObjects
241 stub NtWaitForProcessMutant
242 stub NtWaitForSingleObject
243 stub NtWaitHighEventPair
244 stub NtWaitLowEventPair
245 stub NtWriteFile
246 stub NtWriteRequestData
247 stub NtWriteVirtualMemory
248 stub PfxFindPrefix
249 stub PfxInitialize
250 stub PfxInsertPrefix
251 stub PfxRemovePrefix
252 stub RestoreEm87Context
253 stub RtlAbortRXact
254 stub RtlAbsoluteToSelfRelativeSD
255 stub RtlAcquirePebLock
256 stub RtlAcquireResourceExclusive
257 stub RtlAcquireResourceShared
258 stub RtlAddAccessAllowedAce
259 stub RtlAddAccessDeniedAce
260 stub RtlAddAce
261 stub RtlAddActionToRXact
262 stub RtlAddAttributeActionToRXact
263 stub RtlAddAuditAccessAce
264 stub RtlAdjustPrivilege
265 stub RtlAllocateAndInitializeSid
266 stub RtlAllocateHeap
267 stub RtlAnsiCharToUnicodeChar
268 stub RtlAnsiStringToUnicodeSize
269 stub RtlAnsiStringToUnicodeString
270 stub RtlAppendAsciizToString
271 stub RtlAppendStringToString
272 stub RtlAppendUnicodeStringToString
273 stub RtlAppendUnicodeToString
274 stub RtlApplyRXact
275 stub RtlApplyRXactNoFlush
276 stub RtlAreAllAccessesGranted
277 stub RtlAreAnyAccessesGranted
278 stub RtlAreBitsClear
279 stub RtlAreBitsSet
280 stub RtlAssert
281 stub RtlCaptureStackBackTrace
282 stub RtlCharToInteger
283 stub RtlCheckRegistryKey
284 stub RtlClearAllBits
285 stub RtlClearBits
286 stub RtlCompactHeap
287 stub RtlCompareMemory
288 stub RtlCompareMemoryUlong
289 stub RtlCompareString
290 stub RtlCompareUnicodeString
291 stub RtlCompressBuffer
292 stub RtlConsoleMultiByteToUnicodeN
293 stub RtlConvertExclusiveToShared
294 stub RtlConvertLongToLargeInteger
295 stub RtlConvertSharedToExclusive
296 stub RtlConvertSidToUnicodeString
297 stub RtlConvertUiListToApiList
298 stub RtlConvertUlongToLargeInteger
299 stub RtlCopyLuid
300 stub RtlCopyLuidAndAttributesArray
301 stub RtlCopySecurityDescriptor
302 stub RtlCopySid
303 stub RtlCopySidAndAttributesArray
304 stub RtlCopyString
305 stub RtlCopyUnicodeString
306 stub RtlCreateAcl
307 stub RtlCreateAndSetSD
308 stub RtlCreateEnvironment
309 stub RtlCreateHeap
310 stub RtlCreateProcessParameters
311 stub RtlCreateQueryDebugBuffer
312 stub RtlCreateRegistryKey
313 stub RtlCreateSecurityDescriptor
314 stub RtlCreateTagHeap
315 stub RtlCreateUnicodeString
316 stub RtlCreateUnicodeStringFromAsciiz
317 stub RtlCreateUserProcess
318 stub RtlCreateUserSecurityObject
319 stub RtlCreateUserThread
320 stub RtlCustomCPToUnicodeN
321 stub RtlCutoverTimeToSystemTime
322 stub RtlDeNormalizeProcessParams
323 stub RtlDecompressBuffer
324 stub RtlDecompressFragment
325 stub RtlDelete
326 stub RtlDeleteAce
327 stub RtlDeleteCriticalSection
328 stub RtlDeleteElementGenericTable
329 stub RtlDeleteRegistryValue
330 stub RtlDeleteResource
331 stub RtlDeleteSecurityObject
332 stub RtlDestroyEnvironment
333 stub RtlDestroyHeap
334 stub RtlDestroyProcessParameters
335 stub RtlDestroyQueryDebugBuffer
336 stub RtlDetermineDosPathNameType_U
337 stub RtlDoesFileExists_U
338 stub RtlDosPathNameToNtPathName_U
339 stub RtlDosSearchPath_U
340 stub RtlDumpResource
341 stub RtlEnlargedIntegerMultiply
342 stub RtlEnlargedUnsignedDivide
343 stub RtlEnlargedUnsignedMultiply
344 stub RtlEnterCriticalSection
345 stub RtlEnumProcessHeaps
346 stub RtlEnumerateGenericTable
347 stub RtlEnumerateGenericTableWithoutSplaying
348 stub RtlEqualComputerName
349 stub RtlEqualDomainName
350 stub RtlEqualLuid
351 stub RtlEqualPrefixSid
352 stub RtlEqualSid
353 stub RtlEqualString
354 stub RtlEqualUnicodeString
355 stub RtlEraseUnicodeString
356 stub RtlExpandEnvironmentStrings_U
357 stub RtlExtendHeap
358 stub RtlExtendedIntegerMultiply
359 stub RtlExtendedLargeIntegerDivide
360 stub RtlExtendedMagicDivide
361 stub RtlFillMemory
362 stub RtlFillMemoryUlong
363 stub RtlFindClearBits
364 stub RtlFindClearBitsAndSet
365 stub RtlFindLongestRunClear
366 stub RtlFindLongestRunSet
367 stub RtlFindMessage
368 stub RtlFindSetBits
369 stub RtlFindSetBitsAndClear
370 stub RtlFirstFreeAce
371 stub RtlFormatCurrentUserKeyPath
372 stub RtlFormatMessage
373 stub RtlFreeAnsiString
374 stub RtlFreeHeap
375 stub RtlFreeOemString
376 stub RtlFreeSid
377 stub RtlFreeUnicodeString
378 stub RtlGenerate8dot3Name
379 stub RtlGetAce
380 stub RtlGetCallersAddress
381 stub RtlGetCompressionWorkSpaceSize
382 stub RtlGetControlSecurityDescriptor
383 stub RtlGetCurrentDirectory_U
384 stub RtlGetDaclSecurityDescriptor
385 stub RtlGetElementGenericTable
386 stub RtlGetFullPathName_U
387 stub RtlGetGroupSecurityDescriptor
388 stub RtlGetLongestNtPathLength
389 stub RtlGetNtGlobalFlags
390 stub RtlGetNtProductType
391 stub RtlGetOwnerSecurityDescriptor
392 stub RtlGetProcessHeaps
393 stub RtlGetSaclSecurityDescriptor
394 stub RtlGetUserInfoHeap
395 stub RtlIdentifierAuthoritySid
396 stub RtlImageDirectoryEntryToData
397 stub RtlImageNtHeader
398 stub RtlImpersonateSelf
399 stub RtlInitAnsiString
400 stub RtlInitCodePageTable
401 stub RtlInitNlsTables
402 stub RtlInitString
403 stub RtlInitUnicodeString
404 stub RtlInitializeBitMap
405 stub RtlInitializeContext
406 stub RtlInitializeCriticalSection
407 stub RtlInitializeGenericTable
408 stub RtlInitializeRXact
409 stub RtlInitializeResource
410 stub RtlInitializeSid
411 stub RtlInsertElementGenericTable
412 stub RtlIntegerToChar
413 stub RtlIntegerToUnicodeString
414 stub RtlIsDosDeviceName_U
415 stub RtlIsGenericTableEmpty
416 stub RtlIsNameLegalDOS8Dot3
417 stub RtlIsTextUnicode
418 stub RtlLargeIntegerAdd
419 stub RtlLargeIntegerArithmeticShift
420 stub RtlLargeIntegerDivide
421 stub RtlLargeIntegerNegate
422 stub RtlLargeIntegerShiftLeft
423 stub RtlLargeIntegerShiftRight
424 stub RtlLargeIntegerSubtract
425 stub RtlLargeIntegerToChar
426 stub RtlLeaveCriticalSection
427 stub RtlLengthRequiredSid
428 stub RtlLengthSecurityDescriptor
429 stub RtlLengthSid
430 stub RtlLocalTimeToSystemTime
431 stub RtlLockHeap
432 stub RtlLookupElementGenericTable
433 stub RtlMakeSelfRelativeSD
434 stub RtlMapGenericMask
435 stub RtlMoveMemory
436 stub RtlMultiByteToUnicodeN
437 stub RtlMultiByteToUnicodeSize
438 stub RtlNewInstanceSecurityObject
439 stub RtlNewSecurityGrantedAccess
440 stub RtlNewSecurityObject
441 stub RtlNormalizeProcessParams
442 stub RtlNtStatusToDosError
443 stub RtlNumberGenericTableElements
444 stub RtlNumberOfClearBits
445 stub RtlNumberOfSetBits
446 stub RtlOemStringToUnicodeSize
447 stub RtlOemStringToUnicodeString
448 stub RtlOemToUnicodeN
449 stub RtlOpenCurrentUser
450 stub RtlPcToFileHeader
451 stub RtlPrefixString
452 stub RtlPrefixUnicodeString
453 stub RtlProtectHeap
454 stub RtlQueryEnvironmentVariable_U
455 stub RtlQueryInformationAcl
456 stub RtlQueryProcessBackTraceInformation
457 stub RtlQueryProcessDebugInformation
458 stub RtlQueryProcessHeapInformation
459 stub RtlQueryProcessLockInformation
460 stub RtlQueryRegistryValues
461 stub RtlQuerySecurityObject
462 stub RtlQueryTagHeap
463 stub RtlQueryTimeZoneInformation
464 stub RtlRaiseException
465 stub RtlRaiseStatus
466 stub RtlRandom
467 stub RtlReAllocateHeap
468 stub RtlRealPredecessor
469 stub RtlRealSuccessor
470 stub RtlReleasePebLock
471 stub RtlReleaseResource
472 stub RtlRemoteCall
473 stub RtlResetRtlTranslations
474 stub RtlRunDecodeUnicodeString
475 stub RtlRunEncodeUnicodeString
476 stub RtlSecondsSince1970ToTime
477 stub RtlSecondsSince1980ToTime
478 stub RtlSelfRelativeToAbsoluteSD
479 stub RtlSetAllBits
480 stub RtlSetBits
481 stub RtlSetCurrentDirectory_U
482 stub RtlSetCurrentEnvironment
483 stub RtlSetDaclSecurityDescriptor
484 stub RtlSetEnvironmentVariable
485 stub RtlSetGroupSecurityDescriptor
486 stub RtlSetInformationAcl
487 stub RtlSetOwnerSecurityDescriptor
488 stub RtlSetSaclSecurityDescriptor
489 stub RtlSetSecurityObject
490 stub RtlSetTimeZoneInformation
491 stub RtlSetUserFlagsHeap
492 stub RtlSetUserValueHeap
493 stub RtlSizeHeap
494 stub RtlSplay
495 stub RtlStartRXact
496 stub RtlSubAuthorityCountSid
497 stub RtlSubAuthoritySid
498 stub RtlSubtreePredecessor
499 stub RtlSubtreeSuccessor
500 stub RtlSystemTimeToLocalTime
501 stub RtlTimeFieldsToTime
502 stub RtlTimeToElapsedTimeFields
503 stub RtlTimeToSecondsSince1970
504 stub RtlTimeToSecondsSince1980
505 stub RtlTimeToTimeFields
506 stub RtlUnicodeStringToAnsiSize
507 stub RtlUnicodeStringToAnsiString
508 stub RtlUnicodeStringToCountedOemString
509 stub RtlUnicodeStringToInteger
510 stub RtlUnicodeStringToOemSize
511 stub RtlUnicodeStringToOemString
512 stub RtlUnicodeToCustomCPN
513 stub RtlUnicodeToMultiByteN
514 stub RtlUnicodeToMultiByteSize
515 stub RtlUnicodeToOemN
516 stub RtlUniform
517 stub RtlUnlockHeap
518 stub RtlUnwind
519 stub RtlUpcaseUnicodeChar
520 stub RtlUpcaseUnicodeString
521 stub RtlUpcaseUnicodeStringToAnsiString
522 stub RtlUpcaseUnicodeStringToCountedOemString
523 stub RtlUpcaseUnicodeStringToOemString
524 stub RtlUpcaseUnicodeToCustomCPN
525 stub RtlUpcaseUnicodeToMultiByteN
526 stub RtlUpcaseUnicodeToOemN
527 stub RtlUpperChar
528 stub RtlUpperString
529 stub RtlUsageHeap
530 stub RtlValidAcl
531 stub RtlValidSecurityDescriptor
532 stub RtlValidSid
533 stub RtlValidateHeap
534 stub RtlValidateProcessHeaps
535 stub RtlWalkHeap
536 stub RtlWriteRegistryValue
537 stub RtlZeroHeap
538 stub RtlZeroMemory
539 stub RtlpInitializeRtl
540 stub RtlpNtCreateKey
541 stub RtlpNtEnumerateSubKey
542 stub RtlpNtMakeTemporaryKey
543 stub RtlpNtOpenKey
544 stub RtlpNtQueryValueKey
545 stub RtlpNtSetValueKey
546 stub RtlpUnWaitCriticalSection
547 stub RtlpWaitForCriticalSection
548 stub RtlxAnsiStringToUnicodeSize
549 stub RtlxOemStringToUnicodeSize
550 stub RtlxUnicodeStringToAnsiSize
551 stub RtlxUnicodeStringToOemSize
552 stub SaveEm87Context
553 stub ZwAcceptConnectPort
554 stub ZwAccessCheck
555 stub ZwAccessCheckAndAuditAlarm
556 stub ZwAdjustGroupsToken
557 stub ZwAdjustPrivilegesToken
558 stub ZwAlertResumeThread
559 stub ZwAlertThread
560 stub ZwAllocateLocallyUniqueId
561 stub ZwAllocateUuids
562 stub ZwAllocateVirtualMemory
563 stub ZwCallbackReturn
564 stub ZwCancelIoFile
565 stub ZwCancelTimer
566 stub ZwClearEvent
567 stub ZwClose
568 stub ZwCloseObjectAuditAlarm
569 stub ZwCompleteConnectPort
570 stub ZwConnectPort
571 stub ZwContinue
572 stub ZwCreateDirectoryObject
573 stub ZwCreateEvent
574 stub ZwCreateEventPair
575 stub ZwCreateFile
576 stub ZwCreateIoCompletion
577 stub ZwCreateKey
578 stub ZwCreateMailslotFile
579 stub ZwCreateMutant
580 stub ZwCreateNamedPipeFile
581 stub ZwCreatePagingFile
582 stub ZwCreatePort
583 stub ZwCreateProcess
584 stub ZwCreateProfile
585 stub ZwCreateSection
586 stub ZwCreateSemaphore
587 stub ZwCreateSymbolicLinkObject
588 stub ZwCreateThread
589 stub ZwCreateTimer
590 stub ZwCreateToken
591 stub ZwDelayExecution
592 stub ZwDeleteFile
593 stub ZwDeleteKey
594 stub ZwDeleteValueKey
595 stub ZwDeviceIoControlFile
596 stub ZwDisplayString
597 stub ZwDuplicateObject
598 stub ZwDuplicateToken
599 stub ZwEnumerateBus
600 stub ZwEnumerateKey
601 stub ZwEnumerateValueKey
602 stub ZwExtendSection
603 stub ZwFlushBuffersFile
604 stub ZwFlushInstructionCache
605 stub ZwFlushKey
606 stub ZwFlushVirtualMemory
607 stub ZwFlushWriteBuffer
608 stub ZwFreeVirtualMemory
609 stub ZwFsControlFile
610 stub ZwGetContextThread
611 stub ZwGetPlugPlayEvent
612 stub ZwGetTickCount
613 stub ZwImpersonateClientOfPort
614 stub ZwImpersonateThread
615 stub ZwInitializeRegistry
616 stub ZwListenPort
617 stub ZwLoadDriver
618 stub ZwLoadKey
619 stub ZwLockFile
620 stub ZwLockVirtualMemory
621 stub ZwMakeTemporaryObject
622 stub ZwMapViewOfSection
623 stub ZwNotifyChangeDirectoryFile
624 stub ZwNotifyChangeKey
625 stub ZwOpenDirectoryObject
626 stub ZwOpenEvent
627 stub ZwOpenEventPair
628 stub ZwOpenFile
629 stub ZwOpenIoCompletion
630 stub ZwOpenKey
631 stub ZwOpenMutant
632 stub ZwOpenObjectAuditAlarm
633 stub ZwOpenProcess
634 stub ZwOpenProcessToken
635 stub ZwOpenSection
636 stub ZwOpenSemaphore
637 stub ZwOpenSymbolicLinkObject
638 stub ZwOpenThread
639 stub ZwOpenThreadToken
640 stub ZwOpenTimer
641 stub ZwPlugPlayControl
642 stub ZwPrivilegeCheck
643 stub ZwPrivilegeObjectAuditAlarm
644 stub ZwPrivilegedServiceAuditAlarm
645 stub ZwProtectVirtualMemory
646 stub ZwPulseEvent
647 stub ZwQueryAttributesFile
648 stub ZwQueryDefaultLocale
649 stub ZwQueryDirectoryFile
650 stub ZwQueryDirectoryObject
651 stub ZwQueryEaFile
652 stub ZwQueryEvent
653 stub ZwQueryInformationFile
654 stub ZwQueryInformationPort
655 stub ZwQueryInformationProcess
656 stub ZwQueryInformationThread
657 stub ZwQueryInformationToken
658 stub ZwQueryIntervalProfile
659 stub ZwQueryIoCompletion
660 stub ZwQueryKey
661 stub ZwQueryMutant
662 stub ZwQueryObject
663 stub ZwQueryPerformanceCounter
664 stub ZwQuerySection
665 stub ZwQuerySecurityObject
666 stub ZwQuerySemaphore
667 stub ZwQuerySymbolicLinkObject
668 stub ZwQuerySystemEnvironmentValue
669 stub ZwQuerySystemInformation
670 stub ZwQuerySystemTime
671 stub ZwQueryTimer
672 stub ZwQueryTimerResolution
673 stub ZwQueryValueKey
674 stub ZwQueryVirtualMemory
675 stub ZwQueryVolumeInformationFile
676 stub ZwRaiseException
677 stub ZwRaiseHardError
678 stub ZwReadFile
679 stub ZwReadRequestData
680 stub ZwReadVirtualMemory
681 stub ZwRegisterNewDevice
682 stub ZwRegisterThreadTerminatePort
683 stub ZwReleaseMutant
684 stub ZwReleaseProcessMutant
685 stub ZwReleaseSemaphore
686 stub ZwRemoveIoCompletion
687 stub ZwReplaceKey
688 stub ZwReplyPort
689 stub ZwReplyWaitReceivePort
690 stub ZwReplyWaitReplyPort
691 stub ZwRequestPort
692 stub ZwRequestWaitReplyPort
693 stub ZwResetEvent
694 stub ZwRestoreKey
695 stub ZwResumeThread
696 stub ZwSaveKey
697 stub ZwSetContextThread
698 stub ZwSetDefaultHardErrorPort
699 stub ZwSetDefaultLocale
700 stub ZwSetEaFile
701 stub ZwSetEvent
702 stub ZwSetHighEventPair
703 stub ZwSetHighWaitLowEventPair
704 stub ZwSetHighWaitLowThread
705 stub ZwSetInformationFile
706 stub ZwSetInformationKey
707 stub ZwSetInformationObject
708 stub ZwSetInformationProcess
709 stub ZwSetInformationThread
710 stub ZwSetInformationToken
711 stub ZwSetIntervalProfile
712 stub ZwSetIoCompletion
713 stub ZwSetLdtEntries
714 stub ZwSetLowEventPair
715 stub ZwSetLowWaitHighEventPair
716 stub ZwSetLowWaitHighThread
717 stub ZwSetSecurityObject
718 stub ZwSetSystemEnvironmentValue
719 stub ZwSetSystemInformation
720 stub ZwSetSystemPowerState
721 stub ZwSetSystemTime
722 stub ZwSetTimer
723 stub ZwSetTimerResolution
724 stub ZwSetValueKey
725 stub ZwSetVolumeInformationFile
726 stub ZwShutdownSystem
727 stub ZwStartProfile
728 stub ZwStopProfile
729 stub ZwSuspendThread
730 stub ZwSystemDebugControl
731 stub ZwTerminateProcess
732 stub ZwTerminateThread
733 stub ZwTestAlert
734 stub ZwUnloadDriver
735 stub ZwUnloadKey
736 stub ZwUnlockFile
737 stub ZwUnlockVirtualMemory
738 stub ZwUnmapViewOfSection
739 stub ZwVdmControl
740 stub ZwW32Call
741 stub ZwWaitForMultipleObjects
742 stub ZwWaitForProcessMutant
743 stub ZwWaitForSingleObject
744 stub ZwWaitHighEventPair
745 stub ZwWaitLowEventPair
746 stub ZwWriteFile
747 stub ZwWriteRequestData
748 stub ZwWriteVirtualMemory
749 stub _CIpow
750 stub __eCommonExceptions
751 stub __eEmulatorInit
752 stub __eF2XM1
753 stub __eFABS
754 stub __eFADD32
755 stub __eFADD64
756 stub __eFADDPreg
757 stub __eFADDreg
758 stub __eFADDtop
759 stub __eFCHS
760 stub __eFCOM
761 stub __eFCOM32
762 stub __eFCOM64
763 stub __eFCOMP
764 stub __eFCOMP32
765 stub __eFCOMP64
766 stub __eFCOMPP
767 stub __eFCOS
768 stub __eFDECSTP
769 stub __eFDIV32
770 stub __eFDIV64
771 stub __eFDIVPreg
772 stub __eFDIVR32
773 stub __eFDIVR64
774 stub __eFDIVRPreg
775 stub __eFDIVRreg
776 stub __eFDIVRtop
777 stub __eFDIVreg
778 stub __eFDIVtop
779 stub __eFFREE
780 stub __eFIADD16
781 stub __eFIADD32
782 stub __eFICOM16
783 stub __eFICOM32
784 stub __eFICOMP16
785 stub __eFICOMP32
786 stub __eFIDIV16
787 stub __eFIDIV32
788 stub __eFIDIVR16
789 stub __eFIDIVR32
790 stub __eFILD16
791 stub __eFILD32
792 stub __eFILD64
793 stub __eFIMUL16
794 stub __eFIMUL32
795 stub __eFINCSTP
796 stub __eFINIT
797 stub __eFIST16
798 stub __eFIST32
799 stub __eFISTP16
800 stub __eFISTP32
801 stub __eFISTP64
802 stub __eFISUB16
803 stub __eFISUB32
804 stub __eFISUBR16
805 stub __eFISUBR32
806 stub __eFLD1
807 stub __eFLD32
808 stub __eFLD64
809 stub __eFLD80
810 stub __eFLDCW
811 stub __eFLDENV
812 stub __eFLDL2E
813 stub __eFLDLN2
814 stub __eFLDPI
815 stub __eFLDZ
816 stub __eFMUL32
817 stub __eFMUL64
818 stub __eFMULPreg
819 stub __eFMULreg
820 stub __eFMULtop
821 stub __eFPATAN
822 stub __eFPREM
823 stub __eFPREM1
824 stub __eFPTAN
825 stub __eFRNDINT
826 stub __eFRSTOR
827 stub __eFSAVE
828 stub __eFSCALE
829 stub __eFSIN
830 stub __eFSQRT
831 stub __eFST
832 stub __eFST32
833 stub __eFST64
834 stub __eFSTCW
835 stub __eFSTENV
836 stub __eFSTP
837 stub __eFSTP32
838 stub __eFSTP64
839 stub __eFSTP80
840 stub __eFSTSW
841 stub __eFSUB32
842 stub __eFSUB64
843 stub __eFSUBPreg
844 stub __eFSUBR32
845 stub __eFSUBR64
846 stub __eFSUBRPreg
847 stub __eFSUBRreg
848 stub __eFSUBRtop
849 stub __eFSUBreg
850 stub __eFSUBtop
851 stub __eFTST
852 stub __eFUCOM
853 stub __eFUCOMP
854 stub __eFUCOMPP
855 stub __eFXAM
856 stub __eFXCH
857 stub __eFXTRACT
858 stub __eFYL2X
859 stub __eFYL2XP1
860 stub __eGetStatusWord
861 stub _alloca_probe
862 stub _chkstk
863 stub _fltused
864 stub _ftol
865 stub _itoa
866 stub _ltoa
867 stub _memccpy
868 stub _memicmp
869 stub _snprintf
870 stub _snwprintf
871 stub _splitpath
872 stub _strcmpi
873 stub _stricmp
874 stub _strlwr
875 stub _strnicmp
876 stub _strupr
877 stub _ultoa
878 stub _vsnprintf
879 stub _wcsicmp
880 stub _wcslwr
881 stub _wcsnicmp
882 stub _wcsupr
883 stub abs
884 stub atan
885 stub atoi
886 stub atol
887 stub ceil
888 stub cos
889 stub fabs
890 stub floor
891 stub isalpha
892 stub isdigit
893 stub islower
894 stub isprint
895 stub isspace
896 stub isupper
897 stub iswalpha
898 stub iswctype
899 stub isxdigit
900 stub labs
901 stub log
902 stub mbstowcs
903 stub memchr
904 stub memcmp
905 stub memcpy
906 stub memmove
907 stub memset
908 stub pow
909 stub qsort
910 stub sin
911 stub sprintf
912 stub sqrt
913 stub sscanf
914 stub strcat
915 stub strchr
916 stub strcmp
917 stub strcpy
918 stub strcspn
919 stub strlen
920 stub strncat
921 stub strncmp
922 stub strncpy
923 stub strpbrk
924 stub strrchr
925 stub strspn
926 stub strstr
927 stub swprintf
928 stub tan
929 stub tolower
930 stub toupper
931 stub towlower
932 stub towupper
933 stub vsprintf
934 stub wcscat
935 stub wcschr
936 stub wcscmp
937 stub wcscpy
938 stub wcscspn
939 stub wcslen
940 stub wcsncat
941 stub wcsncmp
942 stub wcsncpy
943 stub wcspbrk
944 stub wcsrchr
945 stub wcsspn
946 stub wcsstr
947 stub wcstok
948 stub wcstol
949 stub wcstombs
950 stub wcstoul

View File

@ -52,15 +52,16 @@ LONG RELAY32_CallWindowProcConvStruct( WNDPROC func, int hwnd, int message,
return result;
case WM_NCCALCSIZE:
STRUCT32_NCCALCSIZE16to32Flat(lParam,&st.nccs);
if(((NCCALCSIZE_PARAMS*)lParam)->lppos) {
STRUCT32_WINDOWPOS16to32(((NCCALCSIZE_PARAMS*)lParam)->lppos,&wp);
st.nccs.lppos=&wp;
} else
st.nccs.lppos= 0;
if(wParam && ((NCCALCSIZE_PARAMS*)lParam)->lppos)
{
STRUCT32_WINDOWPOS16to32(PTR_SEG_TO_LIN(((NCCALCSIZE_PARAMS*)lParam)->lppos),&wp);
st.nccs.lppos=&wp;
}
else st.nccs.lppos= 0;
result=CallWndProc32(func,hwnd,message,wParam,(int)&st.nccs);
STRUCT32_NCCALCSIZE32to16Flat(&st.nccs,lParam);
if(((NCCALCSIZE_PARAMS*)lParam)->lppos)
STRUCT32_WINDOWPOS32to16(&wp,((NCCALCSIZE_PARAMS*)lParam)->lppos);
if(wParam && ((NCCALCSIZE_PARAMS*)lParam)->lppos)
STRUCT32_WINDOWPOS32to16(&wp,PTR_SEG_TO_LIN(((NCCALCSIZE_PARAMS*)lParam)->lppos));
return result;
case WM_NCCREATE:
lpcs = (CREATESTRUCT*)lParam;

View File

@ -84,7 +84,7 @@ base 1
0079 stub SheSetCurDrive
0080 stub SheShortenPathA
0081 stub SheShortenPathW
0082 stub ShellAboutA
0082 stdcall ShellAboutA(word ptr ptr word) ShellAbout
0083 stub ShellAboutW
0084 stdcall ShellExecuteA(word ptr ptr ptr ptr s_word) ShellExecute
0085 stub ShellExecuteEx

View File

@ -41,7 +41,7 @@ heap 65520
39 pascal16 BeginPaint(word ptr) BeginPaint
40 pascal16 EndPaint(word ptr) EndPaint
41 pascal16 CreateWindow(segptr segptr long s_word s_word s_word s_word
word word word segptr) CreateWindow
word word word segptr) CreateWindow16
42 pascal16 ShowWindow(word word) ShowWindow
43 pascal16 CloseWindow(word) CloseWindow
44 pascal16 OpenIcon(word) OpenIcon
@ -57,7 +57,7 @@ heap 65520
54 pascal16 EnumWindows(segptr long) EnumWindows
55 pascal16 EnumChildWindows(word segptr long) EnumChildWindows
56 pascal16 MoveWindow(word word word word word word) MoveWindow
57 pascal16 RegisterClass(ptr) RegisterClass
57 pascal16 RegisterClass(ptr) RegisterClass16
58 pascal16 GetClassName(word ptr word) GetClassName
59 pascal16 SetActiveWindow(word) SetActiveWindow
60 pascal16 GetActiveWindow() GetActiveWindow
@ -356,7 +356,7 @@ heap 65520
400 stub FinalUserInit
402 pascal16 GetPriorityClipboardFormat(word ptr s_word)
GetPriorityClipboardFormat
403 pascal16 UnregisterClass(segptr word) UnregisterClass
403 pascal16 UnregisterClass(segptr word) UnregisterClass16
404 pascal16 GetClassInfo(word segptr ptr) GetClassInfo
406 pascal16 CreateCursor(word word word word word ptr ptr) CreateCursor
407 pascal16 CreateIcon(word word word word word ptr ptr) CreateIcon
@ -372,13 +372,11 @@ heap 65520
416 pascal16 TrackPopupMenu(word word word word word word ptr) TrackPopupMenu
417 pascal GetMenuCheckMarkDimensions() GetMenuCheckMarkDimensions
418 pascal16 SetMenuItemBitmaps(word word word word word) SetMenuItemBitmaps
420 pascal16 wsprintf() windows_wsprintf
# windows_wsprintf() handles arguments itself, as libc can't handle an
# 16-bit stack. DLLRelay() will pass 16-bit stack pointer as 1st arg.
420 pascal16 wsprintf() wsprintf
421 pascal16 wvsprintf(ptr ptr ptr) wvsprintf
422 stub DlgDirSelectEx
423 stub DlgDirSelectComboBoxEx
427 stub FindWindowEx
427 pascal16 FindWindowEx(word word segptr ptr) FindWindowEx
428 stub TileWindows
429 stub CascadeWindows
430 pascal16 lstrcmp(ptr ptr) lstrcmp
@ -400,7 +398,7 @@ heap 65520
450 stub CreateIconFromResourceEx
451 pascal16 TranslateMDISysAccel(word ptr) TranslateMDISysAccel
452 pascal16 CreateWindowEx(long segptr segptr long s_word s_word s_word s_word
word word word segptr) CreateWindowEx
word word word segptr) CreateWindowEx16
454 pascal16 AdjustWindowRectEx(ptr long word long) AdjustWindowRectEx
455 pascal16 GetIconID(word long) GetIconID
456 pascal16 LoadIconHandler(word word) LoadIconHandler

View File

@ -89,7 +89,7 @@ base 1
0080 stub CreateMenu
0081 stub CreatePopupMenu
0082 stdcall CreateWindowExA(long ptr ptr long long long long long
long long long ptr) USER32_CreateWindowExA
long long long ptr) CreateWindowEx32A
0083 stub CreateWindowExW
0084 stub CreateWindowStationA
0085 stub CreateWindowStationW
@ -237,7 +237,7 @@ base 1
0225 stub GetClipboardViewer
0226 stub GetCursor
0227 stub GetCursorInfo
0228 stub GetCursorPos
0228 stdcall GetCursorPos(ptr) GetCursorPos
0229 stdcall GetDC(long) GetDC
0230 stub GetDCEx
0231 stdcall GetDesktopWindow() GetDesktopWindow
@ -435,7 +435,7 @@ base 1
0423 stub PtInRect
0424 stub QuerySendMessage
0425 stub RedrawWindow
0426 stdcall RegisterClassA(ptr) USER32_RegisterClassA
0426 stdcall RegisterClassA(ptr) RegisterClass32A
0427 stub RegisterClassExA
0428 stub RegisterClassExW
0429 stub RegisterClassW

80
if1632/wsock32.spec Normal file
View File

@ -0,0 +1,80 @@
name wsock32
type win32
base 0
001 stub accept
002 stub bind
003 stub closesocket
004 stub connect
005 stub getpeername
006 stub getsockname
007 stub getsockopt
008 stub htonl
009 stub htons
010 stub inet_addr
011 stub inet_ntoa
012 stub ioctlsocket
013 stub listen
014 stub ntohl
015 stub ntohs
016 stub recv
017 stub recvfrom
018 stub select
019 stub send
020 stub sendto
021 stub setsockopt
022 stub shutdown
023 stub socket
051 stub gethostbyaddr
052 stub gethostbyname
053 stub getprotobyname
054 stub getprotobynumber
055 stub getservbyname
056 stub getservbyport
057 stub gethostname
101 stub WSAAsyncSelect
102 stub WSAAsyncGetHostByAddr
103 stub WSAAsyncGetHostByName
104 stub WSAAsyncGetProtoByNumber
105 stub WSAAsyncGetProtoByName
106 stub WSAAsyncGetServByPort
107 stub WSAAsyncGetServByName
108 stub WSACancelAsyncRequest
109 stub WSASetBlockingHook
110 stub WSAUnhookBlockingHook
111 stub WSAGetLastError
112 stub WSASetLastError
113 stub WSACancelBlockingCall
114 stub WSAIsBlocking
115 stub WSAStartup
116 stub WSACleanup
151 stub __WSAFDIsSet
#500 stub WEP
# applications *should* 'degrade gracefully if these are not present
# ... as it is, they don't
#1000 stub WSApSetPostRoutine
#1100 stub inet_network
#1101 stub getnetbyname
#1102 stub rcmd
#1103 stub rexec
#1104 stub rresvport
#1105 stub sethostname
#1106 stub dn_expand
#1107 stub WSARecvEx
1108 stub s_perror
1109 stub GetAddressByNameA
1110 stub GetAddressByNameW
#1111 stub EnumProtocolsA
#1112 stub EnumProtocolsW
#1113 stub GetTypeByNameA
#1114 stub GetTypeByNameW
#1115 stub GetNameByTypeA
#1116 stub GetNameByTypeW
#1117 stub SetServiceA
#1118 stub SetServiceW
#1119 stub GetServiceA
#1120 stub GetServiceW
#1130 stub NPLoadNameSpaces
#1140 stub TransmitFile
#1141 stub AcceptEx
#1142 stub GetAcceptExSockaddrs

View File

@ -3,6 +3,6 @@
#include "shell.h"
#include "kernel32.h"
BOOL WINAPI GetUserNameA (char * lpBuffer, DWORD *nSize);
BOOL GetUserNameA (char * lpBuffer, DWORD *nSize);
#endif /* __WINE_ADVAPI32_H */

View File

@ -1,17 +0,0 @@
/*
* Caption Bar definitions
*/
typedef struct tagHEADCAPTION {
HBITMAP hClose;
HBITMAP hMinim;
HBITMAP hMaxim;
HMENU hSysMenu;
RECT rectClose;
RECT rectMinim;
RECT rectMaxim;
} HEADCAPTION;
typedef HEADCAPTION FAR* LPHEADCAPTION;

View File

@ -9,18 +9,25 @@
#include "windows.h"
#define CLASS_MAGIC 0x4b4e /* 'NK' */
#define CLASS_MAGIC ('C' | ('L' << 8) | ('A' << 16) | ('S' << 24))
typedef struct tagCLASS
{
struct tagCLASS *next; /* Next class */
HCLASS self; /* Handle to this class */
WORD wMagic; /* Magic number (must be CLASS_MAGIC) */
ATOM atomName; /* Name of the class */
HANDLE hdce; /* Class DCE (if CS_CLASSDC) */
WORD cWindows; /* Count of existing windows of this class */
WNDCLASS wc; /* Class information */
WORD wExtra[1]; /* Class extra bytes */
struct tagCLASS *next; /* Next class */
UINT32 magic; /* Magic number */
UINT32 cWindows; /* Count of existing windows */
UINT32 style; /* Class style */
WNDPROC16 lpfnWndProc; /* 16-bit window procedure */
INT32 cbClsExtra; /* Class extra bytes */
INT32 cbWndExtra; /* Window extra bytes */
SEGPTR lpszMenuName; /* Default menu name */
HANDLE16 hInstance; /* Module that created the task */
HICON16 hIcon; /* Default icon */
HCURSOR16 hCursor; /* Default cursor */
HBRUSH16 hbrBackground; /* Default background */
ATOM atomName; /* Name of the class */
HANDLE16 hdce; /* Class DCE (if CS_CLASSDC) */
WORD wExtra[1]; /* Class extra bytes */
} CLASS;
extern void CLASS_DumpClass( CLASS *class );

View File

@ -5,6 +5,12 @@
#ifndef COMMDLG_H
#define COMMDLG_H
#include "wintypes.h" /* needed for CHOOSEFONT structure */
#ifndef WINELIB
#pragma pack(1)
#endif
#define RT_CURSOR MAKEINTRESOURCE(1)
#define RT_BITMAP MAKEINTRESOURCE(2)
#define RT_ICON MAKEINTRESOURCE(3)
@ -77,10 +83,10 @@ typedef struct {
HWND hwndOwner;
HWND hInstance;
COLORREF rgbResult;
COLORREF FAR* lpCustColors;
COLORREF *lpCustColors;
DWORD Flags;
LPARAM lCustData;
UINT (CALLBACK* lpfnHook)(HWND, UINT, WPARAM, LPARAM);
UINT (*lpfnHook)(HWND, UINT, WPARAM, LPARAM);
LPCSTR lpTemplateName;
} CHOOSECOLOR;
typedef CHOOSECOLOR *LPCHOOSECOLOR;
@ -135,22 +141,22 @@ typedef struct {
HDC hDC; /* printer DC/IC or NULL */
SEGPTR lpLogFont; /* ptr. to a LOGFONT struct */
short iPointSize; /* 10 * size in points of selected font */
DWORD Flags; /* enum. type flags */
DWORD Flags WINE_PACKED; /* enum. type flags */
COLORREF rgbColors; /* returned text color */
LPARAM lCustData; /* data passed to hook fn. */
/* UINT (CALLBACK* lpfnHook)(HWND, UINT, WPARAM, LPARAM);*/
FARPROC lpfnHook;
SEGPTR lpTemplateName; /* custom template name */
HINSTANCE hInstance; /* instance handle of.EXE that */
/* contains cust. dlg. template */
SEGPTR lpszStyle; /* return the style field here */
/* must be LF_FACESIZE or bigger */
UINT nFontType; /* same value reported to the */
/* EnumFonts callback with the */
/* extra FONTTYPE_ bits added */
short nSizeMin; /* minimum pt size allowed & */
short nSizeMax; /* max pt size allowed if */
/* CF_LIMITSIZE is used */
/* contains cust. dlg. template */
SEGPTR lpszStyle WINE_PACKED; /* return the style field here */
/* must be LF_FACESIZE or bigger */
UINT nFontType; /* same value reported to the */
/* EnumFonts callback with the */
/* extra FONTTYPE_ bits added */
short nSizeMin WINE_PACKED; /* minimum pt size allowed & */
short nSizeMax WINE_PACKED; /* max pt size allowed if */
/* CF_LIMITSIZE is used */
} CHOOSEFONT;
typedef CHOOSEFONT *LPCHOOSEFONT;
@ -309,6 +315,10 @@ LRESULT PrintDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT PrintSetupDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT FormatCharDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
#ifndef WINELIB
#pragma pack(4)
#endif
#endif /* #ifdef COMMDLG_H */

View File

@ -35,18 +35,14 @@ typedef struct {
DWORD dwDCISize;
LPCSTR lpszDCISectionName;
LPCSTR lpszDCIAliasName;
} DRVCONFIGINFO;
typedef DRVCONFIGINFO FAR* LPDRVCONFIGINFO;
} DRVCONFIGINFO, *LPDRVCONFIGINFO;
typedef struct {
UINT length;
HDRVR hDriver;
HINSTANCE hModule;
char szAliasName[128];
} DRIVERINFOSTRUCT;
typedef DRIVERINFOSTRUCT FAR* LPDRIVERINFOSTRUCT;
typedef LONG (CALLBACK* DRIVERPROC)(DWORD, HDRVR, UINT, LPARAM, LPARAM);
} DRIVERINFOSTRUCT, *LPDRIVERINFOSTRUCT;
typedef struct {
DRIVERINFOSTRUCT dis;
@ -54,8 +50,7 @@ typedef struct {
void *lpPrevItem;
void *lpNextItem;
DRIVERPROC lpDrvProc;
} DRIVERITEM;
typedef DRIVERITEM FAR* LPDRIVERITEM;
} DRIVERITEM, *LPDRIVERITEM;
LRESULT DefDriverProc(DWORD dwDevID, HDRVR hDriv, WORD wMsg,
DWORD dwParam1, DWORD dwParam2);
@ -64,7 +59,7 @@ LRESULT CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
LRESULT SendDriverMessage(HDRVR hDriver, WORD message, LPARAM lParam1, LPARAM lParam2);
HINSTANCE GetDriverModuleHandle(HDRVR hDriver);
HDRVR GetNextDriver(HDRVR, DWORD);
BOOL GetDriverInfo(HDRVR, DRIVERINFOSTRUCT FAR*);
BOOL GetDriverInfo(HDRVR, DRIVERINFOSTRUCT *);

View File

@ -209,7 +209,7 @@ typedef DWORD ( *PEXCEPTION_HANDLER)( PEXCEPTION_RECORD pexcrec,
* function pointer to a UnhandledExceptionFilter();
*/
typedef long (WINAPI *__PTOP_EXCFILTER)
typedef long (*__PTOP_EXCFILTER)
(PEXCEPTION_POINTERS ExceptionInfo);
typedef __PTOP_EXCFILTER PTOP_LEVER_EXCEPTION_FILTER;
@ -253,8 +253,8 @@ DWORD EXC_CallUnhandledExceptionFilter( PEXCEPTION_RECORD precord,
void EXC_Init(void);
BOOL WINAPI RaiseException(DWORD exccode, DWORD excflags,
DWORD nargs, const LPDWORD pargs);
BOOL RaiseException(DWORD exccode, DWORD excflags,
DWORD nargs, const LPDWORD pargs);
/*
* this undocumented function is called when an exception
@ -270,14 +270,14 @@ BOOL WINAPI RaiseException(DWORD exccode, DWORD excflags,
* context.
*/
BOOL WINAPI RtlUnwind( PEXCEPTION_FRAME pestframe,
LPVOID unusedEIP,
PEXCEPTION_RECORD pexcrec,
DWORD contextEAX );
BOOL RtlUnwind( PEXCEPTION_FRAME pestframe,
LPVOID unusedEIP,
PEXCEPTION_RECORD pexcrec,
DWORD contextEAX );
DWORD WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers);
DWORD UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers);
__PTOP_EXCFILTER WINAPI SetUnhandledExceptionFilter(
__PTOP_EXCFILTER SetUnhandledExceptionFilter(
LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
#endif /* __WINE_EXCEPT_H */

View File

@ -198,12 +198,7 @@ typedef struct tagDC
#define DC_SAVED 2 /* It is a saved DC */
/* Last 32 bytes are reserved for stock object handles */
#ifdef WINELIB32
/* Stupid overloading (see DefWindowProc, case WM_ERASEBKGND) */
#define GDI_HEAP_SIZE (COLOR_BTNHIGHLIGHT+1)
#else
#define GDI_HEAP_SIZE 0xffe0
#endif
#define GDI_HEAP_SIZE 0xffe0
/* First handle possible for stock objects (must be >= GDI_HEAP_SIZE) */
#define FIRST_STOCK_HANDLE GDI_HEAP_SIZE
@ -249,15 +244,6 @@ typedef struct tagDC
/* GDI local heap */
#ifdef WINELIB
#define GDI_HEAP_ALLOC(size) LocalAlloc (LMEM_FIXED,size)
#define GDI_HEAP_LIN_ADDR(handle) LocalLock (handle)
#define GDI_HEAP_SEG_ADDR(handle) LocalLock (handle)
#define GDI_HEAP_FREE(handle) LocalFree (handle)
#else
extern WORD GDI_HeapSel;
#define GDI_HEAP_ALLOC(size) \
@ -268,10 +254,14 @@ extern WORD GDI_HeapSel;
LOCAL_Free( GDI_HeapSel, (handle) )
#define GDI_HEAP_LIN_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_LIN(GDI_HeapSel, (handle)) : NULL)
#ifdef WINELIB
#define GDI_HEAP_SEG_ADDR(handle) ((SEGPTR)GDI_HEAP_LIN_ADDR(handle))
#else
#define GDI_HEAP_SEG_ADDR(handle) \
((handle) ? MAKELONG((handle), GDI_HeapSel) : 0)
#endif
#endif /* WINELIB */
extern BOOL GDI_Init(void);
extern HANDLE GDI_AllocObject( WORD, WORD );

View File

@ -11,18 +11,18 @@
typedef struct
{
HGLOBAL handle;
HGLOBAL16 handle;
WORD sel;
int shmid;
} SHMDATA;
extern HGLOBAL GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size,
HGLOBAL hOwner, BOOL isCode,
BOOL is32Bit, BOOL isReadOnly,
SHMDATA *shmdata);
extern BOOL GLOBAL_FreeBlock( HGLOBAL handle );
extern HGLOBAL GLOBAL_Alloc( WORD flags, DWORD size, HGLOBAL hOwner,
BOOL isCode, BOOL is32Bit, BOOL isReadOnly );
extern WORD GlobalHandleToSel( HGLOBAL handle );
extern HGLOBAL16 GLOBAL_CreateBlock( UINT16 flags, const void *ptr, DWORD size,
HGLOBAL16 hOwner, BOOL isCode,
BOOL is32Bit, BOOL isReadOnly,
SHMDATA *shmdata);
extern BOOL GLOBAL_FreeBlock( HGLOBAL16 handle );
extern HGLOBAL16 GLOBAL_Alloc( WORD flags, DWORD size, HGLOBAL16 hOwner,
BOOL isCode, BOOL is32Bit, BOOL isReadOnly );
extern WORD GlobalHandleToSel( HGLOBAL16 handle );
#endif /* __WINE_GLOBAL_H */

View File

@ -47,36 +47,25 @@ extern ldt_copy_entry ldt_copy[LDT_SIZE];
#define __AHSHIFT 3 /* don't change! */
#define __AHINCR (1 << __AHSHIFT)
#ifndef WINELIB
#define SELECTOR_TO_ENTRY(sel) (((int)(sel) & 0xffff) >> __AHSHIFT)
#define ENTRY_TO_SELECTOR(i) ((i) ? (((int)(i) << __AHSHIFT) | 7) : 0)
#define IS_LDT_ENTRY_FREE(i) (!(ldt_flags_copy[(i)] & LDT_FLAGS_ALLOCATED))
#define IS_SELECTOR_FREE(sel) (IS_LDT_ENTRY_FREE(SELECTOR_TO_ENTRY(sel)))
#define GET_SEL_BASE(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].base)
#define GET_SEL_LIMIT(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].limit)
#else
/* Complain if these are used in WineLib */
#define SELECTOR_TO_ENTRY(sel) error.error
#define ENTRY_TO_SELECTOR(i) error.error
#define IS_LDT_ENTRY_FREE(i) error.error
#define IS_SELECTOR_FREE(sel) error.error
#define GET_SEL_BASE(sel) error.error
#define GET_SEL_LIMIT(sel) error.error
#endif
#ifndef WINELIB
/* Convert a segmented ptr (16:16) to a linear (32) pointer */
#define PTR_SEG_TO_LIN(ptr) \
((void*)(GET_SEL_BASE((int)(ptr) >> 16) + ((int)(ptr) & 0xffff)))
#define PTR_SEG_OFF_TO_LIN(seg,off) \
((void*)(GET_SEL_BASE(seg) + (unsigned int)(off)))
#ifndef WINELIB
/* Convert a segmented ptr (16:16) to a linear (32) pointer */
#define PTR_SEG_TO_LIN(ptr) PTR_SEG_OFF_TO_LIN(SELECTOROF(ptr),OFFSETOF(ptr))
#define PTR_SEG_OFF_TO_SEGPTR(seg,off) ((SEGPTR)MAKELONG(off,seg))
#else
#define PTR_SEG_TO_LIN(ptr) ((void*)(ptr))
#define PTR_SEG_OFF_TO_LIN(seg,off) ((void*)((char*)(seg)+(int)(off)))
#define PTR_SEG_OFF_TO_SEGPTR(seg,off) ((SEGPTR)PTR_SEG_OFF_TO_LIN(seg,off))
#endif
extern unsigned char ldt_flags_copy[LDT_SIZE];
#define LDT_FLAGS_TYPE 0x03 /* Mask for segment type */

View File

@ -32,7 +32,7 @@ typedef struct {
BOOL HasStrings;
BOOL OwnerDrawn;
WORD iNumStops;
LPINT TabStops;
LPINT16 TabStops;
HANDLE hDrawItemStruct;
BOOL needMeasure;
HANDLE HeapSel;

View File

@ -13,15 +13,16 @@
/* excepted that they need DS as the first parameter. This */
/* allows managing several heaps from the emulation library. */
extern HLOCAL LOCAL_Alloc( HANDLE ds, WORD flags, WORD size );
extern HLOCAL LOCAL_ReAlloc( HANDLE ds, HLOCAL handle, WORD size, WORD flags );
extern HLOCAL LOCAL_Free( HANDLE ds, HLOCAL handle );
extern HLOCAL LOCAL_Handle( HANDLE ds, WORD addr );
extern WORD LOCAL_Size( HANDLE ds, HLOCAL handle );
extern WORD LOCAL_Flags( HANDLE ds, HLOCAL handle );
extern WORD LOCAL_HeapSize( HANDLE ds );
extern WORD LOCAL_CountFree( WORD ds );
extern LPSTR LOCAL_Lock( HANDLE ds, HLOCAL handle );
extern BOOL LOCAL_Unlock( HANDLE ds, HLOCAL handle );
extern HLOCAL16 LOCAL_Alloc( HANDLE16 ds, UINT16 flags, WORD size );
extern HLOCAL16 LOCAL_ReAlloc( HANDLE16 ds, HLOCAL16 handle,
WORD size, UINT16 flags );
extern HLOCAL16 LOCAL_Free( HANDLE16 ds, HLOCAL16 handle );
extern HLOCAL16 LOCAL_Handle( HANDLE16 ds, WORD addr );
extern UINT16 LOCAL_Size( HANDLE16 ds, HLOCAL16 handle );
extern UINT16 LOCAL_Flags( HANDLE16 ds, HLOCAL16 handle );
extern UINT16 LOCAL_HeapSize( HANDLE16 ds );
extern UINT16 LOCAL_CountFree( HANDLE16 ds );
extern LPSTR LOCAL_Lock( HANDLE16 ds, HLOCAL16 handle );
extern BOOL LOCAL_Unlock( HANDLE16 ds, HLOCAL16 handle );
#endif /* __WINE_LOCAL_H */

View File

@ -9,12 +9,13 @@
#define MENU_MAGIC 0x554d /* 'MU' */
extern BOOL MENU_Init(void);
extern HMENU MENU_GetDefSysMenu(void);
extern UINT MENU_GetMenuBarHeight( HWND hwnd, UINT menubarWidth,
int orgX, int orgY ); /* menu.c */
extern void MENU_TrackMouseMenuBar( HWND hwnd, POINT pt ); /* menu.c */
extern void MENU_TrackKbdMenuBar( WND*, UINT wParam, INT vkey); /* menu.c */
int orgX, int orgY );
extern void MENU_TrackMouseMenuBar( HWND hwnd, POINT pt );
extern void MENU_TrackKbdMenuBar( WND*, UINT wParam, INT vkey);
extern UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect,
HWND hwnd, BOOL suppress_draw ); /* menu.c */
HWND hwnd, BOOL suppress_draw );
extern LRESULT PopupMenuWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam );
typedef struct tagMENUITEM

View File

@ -36,8 +36,7 @@ typedef struct {
DWORD songptrpos; /* song pointer position */
} midi;
} u;
} MMTIME;
typedef MMTIME FAR *LPMMTIME;
} MMTIME, *LPMMTIME;
#define TIME_MS 0x0001 /* time in milliseconds */
#define TIME_SAMPLES 0x0002 /* number of wave samples */
@ -109,9 +108,7 @@ typedef MMTIME FAR *LPMMTIME;
#define CALLBACK_TASK 0x00020000l /* dwCallback is a HTASK */
#define CALLBACK_FUNCTION 0x00030000l /* dwCallback is a FARPROC */
typedef void (CALLBACK DRVCALLBACK) (HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
typedef DRVCALLBACK FAR *LPDRVCALLBACK;
typedef void (*LPDRVCALLBACK) (HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
#define MM_MICROSOFT 1 /* Microsoft Corp. */
@ -151,13 +148,9 @@ BOOL sndPlaySound(LPCSTR lpszSoundName, UINT uFlags);
#define WAVERR_SYNC (WAVERR_BASE + 3) /* device is synchronous */
#define WAVERR_LASTERROR (WAVERR_BASE + 3) /* last error in range */
DECLARE_HANDLE(HWAVE);
DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT);
typedef HWAVEIN FAR *LPHWAVEIN;
typedef HWAVEOUT FAR *LPHWAVEOUT;
typedef DRVCALLBACK WAVECALLBACK;
typedef WAVECALLBACK FAR *LPWAVECALLBACK;
typedef HWAVEIN *LPHWAVEIN;
typedef HWAVEOUT *LPHWAVEOUT;
typedef LPDRVCALLBACK LPWAVECALLBACK;
#define WOM_OPEN MM_WOM_OPEN
#define WOM_CLOSE MM_WOM_CLOSE
@ -178,10 +171,9 @@ typedef struct wavehdr_tag {
DWORD dwUser; /* for client's use */
DWORD dwFlags; /* assorted flags (see defines) */
DWORD dwLoops; /* loop control counter */
struct wavehdr_tag FAR *lpNext; /* reserved for driver */
struct wavehdr_tag *lpNext; /* reserved for driver */
DWORD reserved; /* reserved for driver */
} WAVEHDR;
typedef WAVEHDR FAR *LPWAVEHDR;
} WAVEHDR, *LPWAVEHDR;
#define WHDR_DONE 0x00000001 /* done bit */
#define WHDR_PREPARED 0x00000002 /* set if this header has been prepared */
@ -197,8 +189,7 @@ typedef struct {
DWORD dwFormats; /* formats supported */
UINT wChannels; /* number of sources supported */
DWORD dwSupport; /* functionality supported by driver */
} WAVEOUTCAPS;
typedef WAVEOUTCAPS FAR *LPWAVEOUTCAPS;
} WAVEOUTCAPS, *LPWAVEOUTCAPS;
#define WAVECAPS_PITCH 0x0001 /* supports pitch control */
#define WAVECAPS_PLAYBACKRATE 0x0002 /* supports playback rate control */
@ -213,8 +204,7 @@ typedef struct {
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
DWORD dwFormats; /* formats supported */
UINT wChannels; /* number of channels supported */
} WAVEINCAPS;
typedef WAVEINCAPS FAR *LPWAVEINCAPS;
} WAVEINCAPS, *LPWAVEINCAPS;
#define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */
#define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */
@ -237,66 +227,64 @@ typedef struct {
DWORD nSamplesPerSec WINE_PACKED; /* sample rate */
DWORD nAvgBytesPerSec WINE_PACKED; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
} WAVEFORMAT;
typedef WAVEFORMAT FAR *LPWAVEFORMAT;
} WAVEFORMAT, *LPWAVEFORMAT;
#define WAVE_FORMAT_PCM 1
typedef struct {
WAVEFORMAT wf;
WORD wBitsPerSample;
} PCMWAVEFORMAT;
typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT;
} PCMWAVEFORMAT, *LPPCMWAVEFORMAT;
UINT waveOutGetNumDevs(void);
UINT waveOutGetDevCaps(UINT uDeviceID, WAVEOUTCAPS FAR* lpCaps,
UINT waveOutGetDevCaps(UINT uDeviceID, WAVEOUTCAPS * lpCaps,
UINT uSize);
UINT waveOutGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume);
UINT waveOutGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
UINT waveOutSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT waveOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveOutOpen(HWAVEOUT FAR* lphWaveOut, UINT uDeviceID,
UINT waveOutOpen(HWAVEOUT * lphWaveOut, UINT uDeviceID,
const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT waveOutClose(HWAVEOUT hWaveOut);
UINT waveOutPrepareHeader(HWAVEOUT hWaveOut,
WAVEHDR FAR* lpWaveOutHdr, UINT uSize);
WAVEHDR * lpWaveOutHdr, UINT uSize);
UINT waveOutUnprepareHeader(HWAVEOUT hWaveOut,
WAVEHDR FAR* lpWaveOutHdr, UINT uSize);
UINT waveOutWrite(HWAVEOUT hWaveOut, WAVEHDR FAR* lpWaveOutHdr,
WAVEHDR * lpWaveOutHdr, UINT uSize);
UINT waveOutWrite(HWAVEOUT hWaveOut, WAVEHDR * lpWaveOutHdr,
UINT uSize);
UINT waveOutPause(HWAVEOUT hWaveOut);
UINT waveOutRestart(HWAVEOUT hWaveOut);
UINT waveOutReset(HWAVEOUT hWaveOut);
UINT waveOutBreakLoop(HWAVEOUT hWaveOut);
UINT waveOutGetPosition(HWAVEOUT hWaveOut, MMTIME FAR* lpInfo,
UINT waveOutGetPosition(HWAVEOUT hWaveOut, MMTIME * lpInfo,
UINT uSize);
UINT waveOutGetPitch(HWAVEOUT hWaveOut, DWORD FAR* lpdwPitch);
UINT waveOutGetPitch(HWAVEOUT hWaveOut, DWORD * lpdwPitch);
UINT waveOutSetPitch(HWAVEOUT hWaveOut, DWORD dwPitch);
UINT waveOutGetPlaybackRate(HWAVEOUT hWaveOut, DWORD FAR* lpdwRate);
UINT waveOutGetPlaybackRate(HWAVEOUT hWaveOut, DWORD * lpdwRate);
UINT waveOutSetPlaybackRate(HWAVEOUT hWaveOut, DWORD dwRate);
UINT waveOutGetID(HWAVEOUT hWaveOut, UINT FAR* lpuDeviceID);
UINT waveOutGetID(HWAVEOUT hWaveOut, UINT * lpuDeviceID);
DWORD waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage, DWORD dw1, DWORD dw2);
UINT waveInGetNumDevs(void);
UINT waveInGetDevCaps(UINT uDeviceID, WAVEINCAPS FAR* lpCaps,
UINT waveInGetDevCaps(UINT uDeviceID, WAVEINCAPS * lpCaps,
UINT uSize);
UINT waveInGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveInOpen(HWAVEIN FAR* lphWaveIn, UINT uDeviceID,
UINT waveInOpen(HWAVEIN * lphWaveIn, UINT uDeviceID,
const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT waveInClose(HWAVEIN hWaveIn);
UINT waveInPrepareHeader(HWAVEIN hWaveIn,
WAVEHDR FAR* lpWaveInHdr, UINT uSize);
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInUnprepareHeader(HWAVEIN hWaveIn,
WAVEHDR FAR* lpWaveInHdr, UINT uSize);
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInAddBuffer(HWAVEIN hWaveIn,
WAVEHDR FAR* lpWaveInHdr, UINT uSize);
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInStart(HWAVEIN hWaveIn);
UINT waveInStop(HWAVEIN hWaveIn);
UINT waveInReset(HWAVEIN hWaveIn);
UINT waveInGetPosition(HWAVEIN hWaveIn, MMTIME FAR* lpInfo,
UINT waveInGetPosition(HWAVEIN hWaveIn, MMTIME * lpInfo,
UINT uSize);
UINT waveInGetID(HWAVEIN hWaveIn, UINT FAR* lpuDeviceID);
UINT waveInGetID(HWAVEIN hWaveIn, UINT * lpuDeviceID);
DWORD waveInMessage(HWAVEIN hWaveIn, UINT uMessage, DWORD dw1, DWORD dw2);
@ -308,18 +296,14 @@ DWORD waveInMessage(HWAVEIN hWaveIn, UINT uMessage, DWORD dw1, DWORD dw2);
#define MIDIERR_INVALIDSETUP (MIDIERR_BASE + 5) /* invalid setup */
#define MIDIERR_LASTERROR (MIDIERR_BASE + 5) /* last error in range */
DECLARE_HANDLE(HMIDI);
DECLARE_HANDLE(HMIDIIN);
DECLARE_HANDLE(HMIDIOUT);
typedef HMIDIIN FAR *LPHMIDIIN;
typedef HMIDIOUT FAR *LPHMIDIOUT;
typedef DRVCALLBACK MIDICALLBACK;
typedef MIDICALLBACK FAR *LPMIDICALLBACK;
typedef HMIDIIN *LPHMIDIIN;
typedef HMIDIOUT *LPHMIDIOUT;
typedef LPDRVCALLBACK LPMIDICALLBACK;
#define MIDIPATCHSIZE 128
typedef WORD PATCHARRAY[MIDIPATCHSIZE];
typedef WORD FAR *LPPATCHARRAY;
typedef WORD *LPPATCHARRAY;
typedef WORD KEYARRAY[MIDIPATCHSIZE];
typedef WORD FAR *LPKEYARRAY;
typedef WORD *LPKEYARRAY;
#define MIM_OPEN MM_MIM_OPEN
#define MIM_CLOSE MM_MIM_CLOSE
@ -352,8 +336,7 @@ typedef struct {
UINT wNotes; /* max # of notes (internal synth only) */
UINT wChannelMask; /* channels used (internal synth only) */
DWORD dwSupport; /* functionality supported by driver */
} MIDIOUTCAPS;
typedef MIDIOUTCAPS FAR *LPMIDIOUTCAPS;
} MIDIOUTCAPS, *LPMIDIOUTCAPS;
#define MOD_MIDIPORT 1 /* output port */
#define MOD_SYNTH 2 /* generic internal synth */
@ -370,8 +353,7 @@ typedef struct {
UINT wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
} MIDIINCAPS;
typedef MIDIINCAPS FAR *LPMIDIINCAPS;
} MIDIINCAPS, *LPMIDIINCAPS;
typedef struct {
LPSTR lpData; /* pointer to locked data block */
@ -379,10 +361,9 @@ typedef struct {
DWORD dwBytesRecorded; /* used for input only */
DWORD dwUser; /* for client's use */
DWORD dwFlags; /* assorted flags (see defines) */
struct midihdr_tag FAR *lpNext; /* reserved for driver */
struct midihdr_tag *lpNext; /* reserved for driver */
DWORD reserved; /* reserved for driver */
} MIDIHDR;
typedef MIDIHDR FAR *LPMIDIHDR;
} MIDIHDR, *LPMIDIHDR;
#define MHDR_DONE 0x00000001 /* done bit */
#define MHDR_PREPARED 0x00000002 /* set if header prepared */
@ -390,27 +371,27 @@ typedef MIDIHDR FAR *LPMIDIHDR;
UINT midiOutGetNumDevs(void);
UINT midiOutGetDevCaps(UINT uDeviceID,
MIDIOUTCAPS FAR* lpCaps, UINT uSize);
UINT midiOutGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume);
MIDIOUTCAPS * lpCaps, UINT uSize);
UINT midiOutGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
UINT midiOutSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT midiOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiOutOpen(HMIDIOUT FAR* lphMidiOut, UINT uDeviceID,
UINT midiOutOpen(HMIDIOUT * lphMidiOut, UINT uDeviceID,
DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT midiOutClose(HMIDIOUT hMidiOut);
UINT midiOutPrepareHeader(HMIDIOUT hMidiOut,
MIDIHDR FAR* lpMidiOutHdr, UINT uSize);
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutUnprepareHeader(HMIDIOUT hMidiOut,
MIDIHDR FAR* lpMidiOutHdr, UINT uSize);
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg);
UINT midiOutLongMsg(HMIDIOUT hMidiOut,
MIDIHDR FAR* lpMidiOutHdr, UINT uSize);
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutReset(HMIDIOUT hMidiOut);
UINT midiOutCachePatches(HMIDIOUT hMidiOut,
UINT uBank, WORD FAR* lpwPatchArray, UINT uFlags);
UINT uBank, WORD * lpwPatchArray, UINT uFlags);
UINT midiOutCacheDrumPatches(HMIDIOUT hMidiOut,
UINT uPatch, WORD FAR* lpwKeyArray, UINT uFlags);
UINT midiOutGetID(HMIDIOUT hMidiOut, UINT FAR* lpuDeviceID);
UINT uPatch, WORD * lpwKeyArray, UINT uFlags);
UINT midiOutGetID(HMIDIOUT hMidiOut, UINT * lpuDeviceID);
DWORD midiOutMessage(HMIDIOUT hMidiOut, UINT uMessage, DWORD dw1, DWORD dw2);
@ -418,19 +399,19 @@ UINT midiInGetNumDevs(void);
UINT midiInGetDevCaps(UINT uDeviceID,
LPMIDIINCAPS lpCaps, UINT uSize);
UINT midiInGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiInOpen(HMIDIIN FAR* lphMidiIn, UINT uDeviceID,
UINT midiInOpen(HMIDIIN * lphMidiIn, UINT uDeviceID,
DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT midiInClose(HMIDIIN hMidiIn);
UINT midiInPrepareHeader(HMIDIIN hMidiIn,
MIDIHDR FAR* lpMidiInHdr, UINT uSize);
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInUnprepareHeader(HMIDIIN hMidiIn,
MIDIHDR FAR* lpMidiInHdr, UINT uSize);
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInAddBuffer(HMIDIIN hMidiIn,
MIDIHDR FAR* lpMidiInHdr, UINT uSize);
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInStart(HMIDIIN hMidiIn);
UINT midiInStop(HMIDIIN hMidiIn);
UINT midiInReset(HMIDIIN hMidiIn);
UINT midiInGetID(HMIDIIN hMidiIn, UINT FAR* lpuDeviceID);
UINT midiInGetID(HMIDIIN hMidiIn, UINT * lpuDeviceID);
DWORD midiInMessage(HMIDIIN hMidiIn, UINT uMessage, DWORD dw1, DWORD dw2);
@ -443,8 +424,7 @@ typedef struct {
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
UINT wTechnology; /* type of device */
DWORD dwSupport; /* functionality supported by driver */
} AUXCAPS;
typedef AUXCAPS FAR *LPAUXCAPS;
} AUXCAPS, *LPAUXCAPS;
#define AUXCAPS_CDAUDIO 1 /* audio from internal CD-ROM drive */
#define AUXCAPS_AUXIN 2 /* audio from auxiliary input jacks */
@ -453,9 +433,9 @@ typedef AUXCAPS FAR *LPAUXCAPS;
#define AUXCAPS_LRVOLUME 0x0002 /* separate left-right volume control */
UINT auxGetNumDevs(void);
UINT auxGetDevCaps(UINT uDeviceID, AUXCAPS FAR* lpCaps, UINT uSize);
UINT auxGetDevCaps(UINT uDeviceID, AUXCAPS * lpCaps, UINT uSize);
UINT auxSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT auxGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume);
UINT auxGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
DWORD auxOutMessage(UINT uDeviceID, UINT uMessage, DWORD dw1, DWORD dw2);
@ -463,9 +443,7 @@ DWORD auxOutMessage(UINT uDeviceID, UINT uMessage, DWORD dw1, DWORD dw2);
#define TIMERR_NOCANDO (TIMERR_BASE+1) /* request not completed */
#define TIMERR_STRUCT (TIMERR_BASE+33) /* time struct size */
typedef void (CALLBACK TIMECALLBACK) (UINT uTimerID, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
typedef TIMECALLBACK FAR *LPTIMECALLBACK;
typedef void (*LPTIMECALLBACK) (UINT uTimerID, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
#define TIME_ONESHOT 0 /* program timer for single event */
#define TIME_PERIODIC 1 /* program for continuous periodic event */
@ -473,15 +451,14 @@ typedef TIMECALLBACK FAR *LPTIMECALLBACK;
typedef struct {
UINT wPeriodMin; /* minimum period supported */
UINT wPeriodMax; /* maximum period supported */
} TIMECAPS;
typedef TIMECAPS FAR *LPTIMECAPS;
} TIMECAPS, *LPTIMECAPS;
UINT timeGetSystemTime(MMTIME FAR* lpTime, UINT uSize);
UINT timeGetSystemTime(MMTIME * lpTime, UINT uSize);
DWORD timeGetTime(void);
UINT timeSetEvent(UINT uDelay, UINT uResolution,
LPTIMECALLBACK lpFunction, DWORD dwUser, UINT uFlags);
UINT timeKillEvent(UINT uTimerID);
UINT timeGetDevCaps(TIMECAPS FAR* lpTimeCaps, UINT uSize);
UINT timeGetDevCaps(TIMECAPS * lpTimeCaps, UINT uSize);
UINT timeBeginPeriod(UINT uPeriod);
UINT timeEndPeriod(UINT uPeriod);
@ -515,21 +492,19 @@ typedef struct {
UINT wNumButtons; /* number of buttons */
UINT wPeriodMin; /* minimum message period when captured */
UINT wPeriodMax; /* maximum message period when captured */
} JOYCAPS;
typedef JOYCAPS FAR *LPJOYCAPS;
} JOYCAPS, *LPJOYCAPS;
typedef struct {
UINT wXpos; /* x position */
UINT wYpos; /* y position */
UINT wZpos; /* z position */
UINT wButtons; /* button states */
} JOYINFO;
typedef JOYINFO FAR *LPJOYINFO;
} JOYINFO, *LPJOYINFO;
UINT joyGetDevCaps(UINT uJoyID, JOYCAPS FAR* lpCaps, UINT uSize);
UINT joyGetDevCaps(UINT uJoyID, JOYCAPS * lpCaps, UINT uSize);
UINT joyGetNumDevs(void);
UINT joyGetPos(UINT uJoyID, JOYINFO FAR* lpInfo);
UINT joyGetThreshold(UINT uJoyID, UINT FAR* lpuThreshold);
UINT joyGetPos(UINT uJoyID, JOYINFO * lpInfo);
UINT joyGetThreshold(UINT uJoyID, UINT * lpuThreshold);
UINT joyReleaseCapture(UINT uJoyID);
UINT joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod,
BOOL bChanged);
@ -550,10 +525,8 @@ UINT joySetThreshold(UINT uJoyID, UINT uThreshold);
#define CFSEPCHAR '+' /* compound file name separator char. */
typedef DWORD FOURCC; /* a four character code */
DECLARE_HANDLE(HMMIO); /* a handle to an open file */
typedef LONG (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMessage,
typedef LONG (*LPMMIOPROC)(LPSTR lpmmioinfo, UINT uMessage,
LPARAM lParam1, LPARAM lParam2);
typedef MMIOPROC FAR *LPMMIOPROC;
typedef struct {
DWORD dwFlags; /* general status flags */
@ -575,8 +548,7 @@ typedef struct {
DWORD dwReserved1; /* reserved for MMIO use */
DWORD dwReserved2; /* reserved for MMIO use */
HMMIO hmmio; /* handle to open file */
} MMIOINFO;
typedef MMIOINFO FAR *LPMMIOINFO;
} MMIOINFO, *LPMMIOINFO;
typedef struct _MMCKINFO
{
@ -585,8 +557,7 @@ typedef struct _MMCKINFO
FOURCC fccType; /* form type or list type */
DWORD dwDataOffset; /* offset of data portion of chunk */
DWORD dwFlags; /* flags used by MMIO functions */
} MMCKINFO;
typedef MMCKINFO FAR *LPMMCKINFO;
} MMCKINFO, *LPMMCKINFO;
#define MMIO_RWMODE 0x00000003 /* open file for reading/writing/both */
#define MMIO_SHAREMODE 0x00000070 /* file sharing mode number */
@ -653,30 +624,30 @@ typedef MMCKINFO FAR *LPMMCKINFO;
FOURCC mmioStringToFOURCC(LPCSTR sz, UINT uFlags);
LPMMIOPROC mmioInstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
DWORD dwFlags);
HMMIO mmioOpen(LPSTR szFileName, MMIOINFO FAR* lpmmioinfo,
HMMIO mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo,
DWORD dwOpenFlags);
UINT mmioRename(LPCSTR szFileName, LPCSTR szNewFileName,
MMIOINFO FAR* lpmmioinfo, DWORD dwRenameFlags);
MMIOINFO * lpmmioinfo, DWORD dwRenameFlags);
UINT mmioClose(HMMIO hmmio, UINT uFlags);
LONG mmioRead(HMMIO hmmio, HPSTR pch, LONG cch);
LONG mmioWrite(HMMIO hmmio, HPCSTR pch, LONG cch);
LONG mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin);
UINT mmioGetInfo(HMMIO hmmio, MMIOINFO FAR* lpmmioinfo, UINT uFlags);
UINT mmioSetInfo(HMMIO hmmio, const MMIOINFO FAR* lpmmioinfo, UINT uFlags);
UINT mmioGetInfo(HMMIO hmmio, MMIOINFO * lpmmioinfo, UINT uFlags);
UINT mmioSetInfo(HMMIO hmmio, const MMIOINFO * lpmmioinfo, UINT uFlags);
UINT mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer,
UINT uFlags);
UINT mmioFlush(HMMIO hmmio, UINT uFlags);
UINT mmioAdvance(HMMIO hmmio, MMIOINFO FAR* lpmmioinfo, UINT uFlags);
UINT mmioAdvance(HMMIO hmmio, MMIOINFO * lpmmioinfo, UINT uFlags);
LONG mmioSendMessage(HMMIO hmmio, UINT uMessage,
LPARAM lParam1, LPARAM lParam2);
UINT mmioDescend(HMMIO hmmio, MMCKINFO FAR* lpck,
const MMCKINFO FAR* lpckParent, UINT uFlags);
UINT mmioAscend(HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags);
UINT mmioCreateChunk(HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags);
UINT mmioDescend(HMMIO hmmio, MMCKINFO * lpck,
const MMCKINFO * lpckParent, UINT uFlags);
UINT mmioAscend(HMMIO hmmio, MMCKINFO * lpck, UINT uFlags);
UINT mmioCreateChunk(HMMIO hmmio, MMCKINFO * lpck, UINT uFlags);
typedef UINT (CALLBACK *YIELDPROC) (UINT uDeviceID, DWORD dwYieldData);
typedef UINT (*YIELDPROC) (UINT uDeviceID, DWORD dwYieldData);
DWORD mciSendCommand (UINT uDeviceID, UINT uMessage,
DWORD dwParam1, DWORD dwParam2);
@ -691,7 +662,7 @@ BOOL mciSetYieldProc (UINT uDeviceID, YIELDPROC fpYieldProc,
DWORD dwYieldData);
HTASK mciGetCreatorTask(UINT uDeviceID);
YIELDPROC mciGetYieldProc (UINT uDeviceID, DWORD FAR* lpdwYieldData);
YIELDPROC mciGetYieldProc (UINT uDeviceID, DWORD * lpdwYieldData);
#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1)
#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3)
@ -953,8 +924,7 @@ YIELDPROC mciGetYieldProc (UINT uDeviceID, DWORD FAR* lpdwYieldData);
typedef struct {
DWORD dwCallback;
} MCI_GENERIC_PARMS;
typedef MCI_GENERIC_PARMS FAR *LPMCI_GENERIC_PARMS;
} MCI_GENERIC_PARMS, *LPMCI_GENERIC_PARMS;
typedef struct {
DWORD dwCallback;
@ -963,43 +933,37 @@ typedef struct {
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
} MCI_OPEN_PARMS;
typedef MCI_OPEN_PARMS FAR *LPMCI_OPEN_PARMS;
} MCI_OPEN_PARMS, *LPMCI_OPEN_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_PLAY_PARMS;
typedef MCI_PLAY_PARMS FAR *LPMCI_PLAY_PARMS;
} MCI_PLAY_PARMS, *LPMCI_PLAY_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwTo;
} MCI_SEEK_PARMS;
typedef MCI_SEEK_PARMS FAR *LPMCI_SEEK_PARMS;
} MCI_SEEK_PARMS, *LPMCI_SEEK_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwReturn;
DWORD dwItem;
DWORD dwTrack;
} MCI_STATUS_PARMS;
typedef MCI_STATUS_PARMS FAR * LPMCI_STATUS_PARMS;
} MCI_STATUS_PARMS, *LPMCI_STATUS_PARMS;
typedef struct {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
} MCI_INFO_PARMS;
typedef MCI_INFO_PARMS FAR * LPMCI_INFO_PARMS;
} MCI_INFO_PARMS, *LPMCI_INFO_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwReturn;
DWORD dwItem;
} MCI_GETDEVCAPS_PARMS;
typedef MCI_GETDEVCAPS_PARMS FAR * LPMCI_GETDEVCAPS_PARMS;
} MCI_GETDEVCAPS_PARMS, *LPMCI_GETDEVCAPS_PARMS;
typedef struct {
DWORD dwCallback;
@ -1008,15 +972,13 @@ typedef struct {
DWORD dwNumber;
UINT wDeviceType;
UINT wReserved0;
} MCI_SYSINFO_PARMS;
typedef MCI_SYSINFO_PARMS FAR * LPMCI_SYSINFO_PARMS;
} MCI_SYSINFO_PARMS, *LPMCI_SYSINFO_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
} MCI_SET_PARMS;
typedef MCI_SET_PARMS FAR *LPMCI_SET_PARMS;
} MCI_SET_PARMS, *LPMCI_SET_PARMS;
typedef struct {
DWORD dwCallback;
@ -1024,33 +986,28 @@ typedef struct {
UINT wReserved0;
HWND hwndBreak;
UINT wReserved1;
} MCI_BREAK_PARMS;
typedef MCI_BREAK_PARMS FAR * LPMCI_BREAK_PARMS;
} MCI_BREAK_PARMS, *LPMCI_BREAK_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpstrSoundName;
} MCI_SOUND_PARMS;
typedef MCI_SOUND_PARMS FAR * LPMCI_SOUND_PARMS;
} MCI_SOUND_PARMS, *LPMCI_SOUND_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpfilename;
} MCI_SAVE_PARMS;
typedef MCI_SAVE_PARMS FAR * LPMCI_SAVE_PARMS;
} MCI_SAVE_PARMS, *LPMCI_SAVE_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpfilename;
} MCI_LOAD_PARMS;
typedef MCI_LOAD_PARMS FAR * LPMCI_LOAD_PARMS;
} MCI_LOAD_PARMS, *LPMCI_LOAD_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_RECORD_PARMS;
typedef MCI_RECORD_PARMS FAR *LPMCI_RECORD_PARMS;
} MCI_RECORD_PARMS, *LPMCI_RECORD_PARMS;
#define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1)
@ -1095,20 +1052,17 @@ typedef struct {
DWORD dwFrom;
DWORD dwTo;
DWORD dwSpeed;
} MCI_VD_PLAY_PARMS;
typedef MCI_VD_PLAY_PARMS FAR *LPMCI_VD_PLAY_PARMS;
} MCI_VD_PLAY_PARMS, *LPMCI_VD_PLAY_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrames;
} MCI_VD_STEP_PARMS;
typedef MCI_VD_STEP_PARMS FAR *LPMCI_VD_STEP_PARMS;
} MCI_VD_STEP_PARMS, *LPMCI_VD_STEP_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpstrCommand;
} MCI_VD_ESCAPE_PARMS;
typedef MCI_VD_ESCAPE_PARMS FAR *LPMCI_VD_ESCAPE_PARMS;
} MCI_VD_ESCAPE_PARMS, *LPMCI_VD_ESCAPE_PARMS;
#define MCI_WAVE_OPEN_BUFFER 0x00010000L
@ -1144,15 +1098,13 @@ typedef struct {
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwBufferSeconds;
} MCI_WAVE_OPEN_PARMS;
typedef MCI_WAVE_OPEN_PARMS FAR *LPMCI_WAVE_OPEN_PARMS;
} MCI_WAVE_OPEN_PARMS, *LPMCI_WAVE_OPEN_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_WAVE_DELETE_PARMS;
typedef MCI_WAVE_DELETE_PARMS FAR *LPMCI_WAVE_DELETE_PARMS;
} MCI_WAVE_DELETE_PARMS, *LPMCI_WAVE_DELETE_PARMS;
typedef struct {
DWORD dwCallback;
@ -1172,8 +1124,7 @@ typedef struct {
UINT wReserved4;
UINT wBitsPerSample;
UINT wReserved5;
} MCI_WAVE_SET_PARMS;
typedef MCI_WAVE_SET_PARMS FAR * LPMCI_WAVE_SET_PARMS;
} MCI_WAVE_SET_PARMS, * LPMCI_WAVE_SET_PARMS;
#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET)
#define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET)
@ -1209,8 +1160,7 @@ typedef struct {
DWORD dwSlave;
DWORD dwMaster;
DWORD dwOffset;
} MCI_SEQ_SET_PARMS;
typedef MCI_SEQ_SET_PARMS FAR * LPMCI_SEQ_SET_PARMS;
} MCI_SEQ_SET_PARMS, *LPMCI_SEQ_SET_PARMS;
#define MCI_ANIM_OPEN_WS 0x00010000L
#define MCI_ANIM_OPEN_PARENT 0x00020000L
@ -1271,22 +1221,19 @@ typedef struct {
DWORD dwStyle;
HWND hWndParent;
UINT wReserved1;
} MCI_ANIM_OPEN_PARMS;
typedef MCI_ANIM_OPEN_PARMS FAR *LPMCI_ANIM_OPEN_PARMS;
} MCI_ANIM_OPEN_PARMS, *LPMCI_ANIM_OPEN_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrom;
DWORD dwTo;
DWORD dwSpeed;
} MCI_ANIM_PLAY_PARMS;
typedef MCI_ANIM_PLAY_PARMS FAR *LPMCI_ANIM_PLAY_PARMS;
} MCI_ANIM_PLAY_PARMS, *LPMCI_ANIM_PLAY_PARMS;
typedef struct {
DWORD dwCallback;
DWORD dwFrames;
} MCI_ANIM_STEP_PARMS;
typedef MCI_ANIM_STEP_PARMS FAR *LPMCI_ANIM_STEP_PARMS;
} MCI_ANIM_STEP_PARMS, *LPMCI_ANIM_STEP_PARMS;
typedef struct {
DWORD dwCallback;
@ -1295,8 +1242,7 @@ typedef struct {
UINT nCmdShow;
UINT wReserved2;
LPCSTR lpstrText;
} MCI_ANIM_WINDOW_PARMS;
typedef MCI_ANIM_WINDOW_PARMS FAR * LPMCI_ANIM_WINDOW_PARMS;
} MCI_ANIM_WINDOW_PARMS, *LPMCI_ANIM_WINDOW_PARMS;
typedef struct {
DWORD dwCallback;
@ -1306,15 +1252,13 @@ typedef struct {
#else /* ifdef MCI_USE_OFFEXT */
RECT rc;
#endif /* ifdef MCI_USE_OFFEXT */
} MCI_ANIM_RECT_PARMS;
typedef MCI_ANIM_RECT_PARMS FAR * LPMCI_ANIM_RECT_PARMS;
} MCI_ANIM_RECT_PARMS, *LPMCI_ANIM_RECT_PARMS;
typedef struct {
DWORD dwCallback;
RECT rc;
HDC hDC;
} MCI_ANIM_UPDATE_PARMS;
typedef MCI_ANIM_UPDATE_PARMS FAR * LPMCI_ANIM_UPDATE_PARMS;
} MCI_ANIM_UPDATE_PARMS, *LPMCI_ANIM_UPDATE_PARMS;
#define MCI_OVLY_OPEN_WS 0x00010000L
#define MCI_OVLY_OPEN_PARENT 0x00020000L
@ -1357,8 +1301,7 @@ typedef struct {
DWORD dwStyle;
HWND hWndParent;
UINT wReserved1;
} MCI_OVLY_OPEN_PARMS;
typedef MCI_OVLY_OPEN_PARMS FAR *LPMCI_OVLY_OPEN_PARMS;
} MCI_OVLY_OPEN_PARMS, *LPMCI_OVLY_OPEN_PARMS;
typedef struct {
DWORD dwCallback;
@ -1367,8 +1310,7 @@ typedef struct {
UINT nCmdShow;
UINT wReserved2;
LPCSTR lpstrText;
} MCI_OVLY_WINDOW_PARMS;
typedef MCI_OVLY_WINDOW_PARMS FAR * LPMCI_OVLY_WINDOW_PARMS;
} MCI_OVLY_WINDOW_PARMS, *LPMCI_OVLY_WINDOW_PARMS;
typedef struct {
DWORD dwCallback;
@ -1378,22 +1320,19 @@ typedef struct {
#else /* ifdef MCI_USE_OFFEXT */
RECT rc;
#endif /* ifdef MCI_USE_OFFEXT */
} MCI_OVLY_RECT_PARMS;
typedef MCI_OVLY_RECT_PARMS FAR * LPMCI_OVLY_RECT_PARMS;
} MCI_OVLY_RECT_PARMS, *LPMCI_OVLY_RECT_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_SAVE_PARMS;
typedef MCI_OVLY_SAVE_PARMS FAR * LPMCI_OVLY_SAVE_PARMS;
} MCI_OVLY_SAVE_PARMS, *LPMCI_OVLY_SAVE_PARMS;
typedef struct {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_LOAD_PARMS;
typedef MCI_OVLY_LOAD_PARMS FAR * LPMCI_OVLY_LOAD_PARMS;
} MCI_OVLY_LOAD_PARMS, *LPMCI_OVLY_LOAD_PARMS;
/**************************************************************
@ -1525,23 +1464,20 @@ typedef struct {
DWORD dwInstance;
HMIDIOUT hMidi;
DWORD dwFlags;
} PORTALLOC;
typedef PORTALLOC FAR *LPPORTALLOC;
} PORTALLOC, *LPPORTALLOC;
typedef struct {
HWAVE hWave;
LPWAVEFORMAT lpFormat;
DWORD dwCallBack;
DWORD dwInstance;
} WAVEOPENDESC;
typedef WAVEOPENDESC FAR *LPWAVEOPENDESC;
} WAVEOPENDESC, *LPWAVEOPENDESC;
typedef struct {
HMIDI hMidi;
DWORD dwCallback;
DWORD dwInstance;
} MIDIOPENDESC;
typedef MIDIOPENDESC FAR *LPMIDIOPENDESC;
} MIDIOPENDESC, *LPMIDIOPENDESC;
typedef struct {
UINT wDelay;
@ -1549,8 +1485,7 @@ typedef struct {
LPTIMECALLBACK lpFunction;
DWORD dwUser;
UINT wFlags;
} TIMEREVENT;
typedef TIMEREVENT FAR *LPTIMEREVENT;
} TIMEREVENT, *LPTIMEREVENT;
typedef struct {
UINT wDeviceID; /* device ID */
@ -1559,8 +1494,7 @@ typedef struct {
/* filled in by the driver */
UINT wType; /* driver type */
/* filled in by the driver */
} MCI_OPEN_DRIVER_PARMS;
typedef MCI_OPEN_DRIVER_PARMS FAR * LPMCI_OPEN_DRIVER_PARMS;
} MCI_OPEN_DRIVER_PARMS, * LPMCI_OPEN_DRIVER_PARMS;
DWORD mciGetDriverData(UINT uDeviceID);
BOOL mciSetDriverData(UINT uDeviceID, DWORD dwData);

View File

@ -7,7 +7,7 @@
#ifndef __WINE_NONCLIENT_H
#define __WINE_NONCLIENT_H
#include "windows.h"
#include "win.h"
extern void NC_GetInsideRect( HWND hwnd, RECT *rect );
extern void NC_GetMinMaxInfo( HWND hwnd, POINT *maxSize, POINT *maxPos,
@ -18,7 +18,7 @@ extern LONG NC_HandleNCActivate( HWND hwnd, WPARAM wParam );
extern LONG NC_HandleNCCalcSize( HWND hwnd, NCCALCSIZE_PARAMS *params );
extern LONG NC_HandleNCHitTest( HWND hwnd, POINT pt );
extern LONG NC_HandleNCLButtonDown( HWND hwnd, WPARAM wParam, LPARAM lParam );
extern LONG NC_HandleNCLButtonDblClk( HWND hwnd, WPARAM wParam, LPARAM lParam );
extern LONG NC_HandleNCLButtonDblClk( WND *pWnd, WPARAM wParam, LPARAM lParam);
extern LONG NC_HandleSysCommand( HWND hwnd, WPARAM wParam, POINT pt );
extern LONG NC_HandleSetCursor( HWND hwnd, WPARAM wParam, LPARAM lParam );

View File

@ -145,8 +145,8 @@ typedef struct _OLETARGETDEVICE {
} OLETARGETDEVICE;
typedef struct _OLESTREAM* LPOLESTREAM;
typedef struct _OLESTREAMVTBL {
DWORD (CALLBACK* Get)(LPOLESTREAM,LPSTR,DWORD);
DWORD (CALLBACK* Put)(LPOLESTREAM,LPSTR,DWORD);
DWORD (*Get)(LPOLESTREAM,LPSTR,DWORD);
DWORD (*Put)(LPOLESTREAM,LPSTR,DWORD);
} OLESTREAMVTBL;
typedef OLESTREAMVTBL* LPOLESTREAMVTBL;
typedef struct _OLESTREAM {
@ -156,14 +156,14 @@ typedef struct _OLESERVERDOC* LPOLESERVERDOC;
typedef struct _OLEOBJECT* LPOLEOBJECT;
typedef struct _OLECLIENT* LPOLECLIENT;
typedef struct _OLESERVERDOCVTBL {
OLESTATUS (CALLBACK* Save)(LPOLESERVERDOC);
OLESTATUS (CALLBACK* Close)(LPOLESERVERDOC);
OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR);
OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC,LPRECT);
OLESTATUS (CALLBACK* GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT);
OLESTATUS (CALLBACK* Release)(LPOLESERVERDOC);
OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE);
OLESTATUS (CALLBACK* Execute)(LPOLESERVERDOC,HGLOBAL);
OLESTATUS (*Save)(LPOLESERVERDOC);
OLESTATUS (*Close)(LPOLESERVERDOC);
OLESTATUS (*SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR);
OLESTATUS (*SetDocDimensions)(LPOLESERVERDOC,LPRECT);
OLESTATUS (*GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT);
OLESTATUS (*Release)(LPOLESERVERDOC);
OLESTATUS (*SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE);
OLESTATUS (*Execute)(LPOLESERVERDOC,HGLOBAL);
} OLESERVERDOCVTBL;
typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
typedef struct _OLESERVERDOC {
@ -173,13 +173,13 @@ typedef struct _OLESERVERDOC {
typedef struct _OLESERVER* LPOLESERVER;
typedef struct _OLESERVERVTBL {
OLESTATUS (CALLBACK* Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (CALLBACK* Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC FAR*);
OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (CALLBACK* Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (CALLBACK* Exit)(LPOLESERVER);
OLESTATUS (CALLBACK* Release)(LPOLESERVER);
OLESTATUS (CALLBACK* Execute)(LPOLESERVER);
OLESTATUS (*Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (*Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);
OLESTATUS (*CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (*Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
OLESTATUS (*Exit)(LPOLESERVER);
OLESTATUS (*Release)(LPOLESERVER);
OLESTATUS (*Execute)(LPOLESERVER);
} OLESERVERVTBL;
typedef OLESERVERVTBL *LPOLESERVERVTBL;
typedef struct _OLESERVER {
@ -187,7 +187,7 @@ typedef struct _OLESERVER {
/* server specific data */
} OLESERVER;
typedef struct _OLECLIENTVTBL {
int (CALLBACK* CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
int (*CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
} OLECLIENTVTBL;
typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
@ -197,44 +197,44 @@ typedef struct _OLECLIENT {
} OLECLIENT;
typedef struct _OLEOBJECTVTBL {
void * (CALLBACK* QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);
OLESTATUS (CALLBACK* Release)(LPOLEOBJECT);
OLESTATUS (CALLBACK* Show)(LPOLEOBJECT,BOOL);
OLESTATUS (CALLBACK* DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL);
OLESTATUS (CALLBACK* GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE *);
OLESTATUS (CALLBACK* SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);
OLESTATUS (CALLBACK* SetTargetDevice)(LPOLEOBJECT,HGLOBAL);
OLESTATUS (CALLBACK* SetBounds)(LPOLEOBJECT,LPRECT);
OLESTATUS (CALLBACK* EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK* SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE);
OLESTATUS (CALLBACK* Delete)(LPOLEOBJECT);
OLESTATUS (CALLBACK* SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR);
OLESTATUS (CALLBACK* SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
OLESTATUS (CALLBACK* Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
OLESTATUS (CALLBACK* CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
OLESTATUS (CALLBACK* Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (CALLBACK* CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (CALLBACK* Draw)(LPOLEOBJECT,HDC,LPRECT,LPRECT,HDC);
OLESTATUS (CALLBACK* Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPRECT);
OLESTATUS (CALLBACK* Execute)(LPOLEOBJECT,HGLOBAL,UINT);
OLESTATUS (CALLBACK* Close)(LPOLEOBJECT);
OLESTATUS (CALLBACK* Update)(LPOLEOBJECT);
OLESTATUS (CALLBACK* Reconnect)(LPOLEOBJECT);
OLESTATUS (CALLBACK* ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
OLESTATUS (CALLBACK* GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK* SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK* Rename)(LPOLEOBJECT,OLE_LPCSTR);
OLESTATUS (CALLBACK* QueryName)(LPOLEOBJECT,LPSTR,LPUINT);
OLESTATUS (CALLBACK* QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK* QueryBounds)(LPOLEOBJECT,LPRECT);
OLESTATUS (CALLBACK* QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK* QueryOpen)(LPOLEOBJECT);
OLESTATUS (CALLBACK* QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (CALLBACK* QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (CALLBACK* QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (CALLBACK* RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK* ObjectLong)(LPOLEOBJECT,UINT,LPLONG);
void * (*QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);
OLESTATUS (*Release)(LPOLEOBJECT);
OLESTATUS (*Show)(LPOLEOBJECT,BOOL);
OLESTATUS (*DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL);
OLESTATUS (*GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE *);
OLESTATUS (*SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);
OLESTATUS (*SetTargetDevice)(LPOLEOBJECT,HGLOBAL);
OLESTATUS (*SetBounds)(LPOLEOBJECT,LPRECT);
OLESTATUS (*EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (*SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE);
OLESTATUS (*Delete)(LPOLEOBJECT);
OLESTATUS (*SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR);
OLESTATUS (*SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
OLESTATUS (*Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
OLESTATUS (*CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
OLESTATUS (*Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (*CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (*Draw)(LPOLEOBJECT,HDC,LPRECT,LPRECT,HDC);
OLESTATUS (*Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPRECT);
OLESTATUS (*Execute)(LPOLEOBJECT,HGLOBAL,UINT);
OLESTATUS (*Close)(LPOLEOBJECT);
OLESTATUS (*Update)(LPOLEOBJECT);
OLESTATUS (*Reconnect)(LPOLEOBJECT);
OLESTATUS (*ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
OLESTATUS (*GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (*SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (*Rename)(LPOLEOBJECT,OLE_LPCSTR);
OLESTATUS (*QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (*QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (*QueryBounds)(LPOLEOBJECT,LPRECT);
OLESTATUS (*QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (*QueryOpen)(LPOLEOBJECT);
OLESTATUS (*QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (*QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (*QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (*QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (*RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (*ObjectLong)(LPOLEOBJECT,UINT,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
@ -243,11 +243,11 @@ typedef struct _OLEOBJECT {
} OLEOBJECT;
OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE,OLE_SERVER_USE);
OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL *);
OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR);
OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC);
OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC);
OLESTATUS WINAPI OleRevokeServer(LHSERVER);
OLESTATUS OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE,OLE_SERVER_USE);
OLESTATUS OleUnblockServer(LHSERVER,BOOL *);
OLESTATUS OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
OLESTATUS OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
OLESTATUS OleRenameClientDoc(LHCLIENTDOC,LPCSTR);
OLESTATUS OleRevokeServerDoc(LHSERVERDOC);
OLESTATUS OleRevokeClientDoc(LHCLIENTDOC);
OLESTATUS OleRevokeServer(LHSERVER);

View File

@ -75,9 +75,9 @@ extern DWORD IF1632_Original32_esp;
#endif
SEGPTR MAKE_SEGPTR(void *ptr);
#else
#define CURRENT_STACK16 error.error
#define CURRENT_DS 0
#define MAKE_SEGPTR(ptr) ((SEGPTR)ptr)
#define CURRENT_STACK16 error.error
#define CURRENT_DS ((WORD)GetTaskDS())
#define MAKE_SEGPTR(ptr) ((SEGPTR)ptr)
#endif
#endif /* WINE_STACKFRAME_H */

View File

@ -66,8 +66,6 @@ typedef struct {
WORD id WINE_PACKED;
} DLGITEMTEMPLATE32;
#define CW_USEDEFAULT32 0x80000000
typedef struct tagMSG32
{
DWORD hwnd;

View File

@ -89,7 +89,7 @@ typedef struct
DWORD compat_flags WINE_PACKED; /* Compatibility flags */
BYTE unused4[14];
HANDLE hPDB; /* Selector of PDB (i.e. PSP) */
DWORD dta WINE_PACKED; /* Current DTA */
SEGPTR dta WINE_PACKED; /* Current DTA */
BYTE curdrive; /* Current drive */
BYTE curdir[65]; /* Current directory */
WORD nCmdShow; /* cmdShow parameter to WinMain */

View File

@ -77,9 +77,8 @@ typedef struct
BOOL GlobalInfo( GLOBALINFO *pInfo );
BOOL GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags );
BOOL GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) ;
BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL hItem );
BOOL GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE hModule, WORD wSeg );
WORD GlobalHandleToSel( HGLOBAL handle );
BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem );
BOOL GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, WORD wSeg );
/* Local heap */
@ -92,7 +91,7 @@ typedef struct
typedef struct
{
DWORD dwSize;
HLOCAL hHandle;
HLOCAL16 hHandle;
WORD wAddress;
WORD wSize;
WORD wFlags;
@ -333,7 +332,7 @@ struct {
struct {
DWORD dwSize;
UINT wErrCode;
VOID FAR* lpInfo; /* depends on wErrCode */
VOID *lpInfo; /* depends on wErrCode */
} NFYLOGERROR;
/* called for parameter errors? */
@ -342,6 +341,6 @@ struct {
DWORD dwSize;
UINT wErrCode;
FARPROC lpfnErrorAddr;
void FAR* FAR* lpBadParam;
void **lpBadParam;
} NFYLOGPARAMERROR;
#endif /* __TOOLHELP_H */

View File

@ -10,16 +10,6 @@
#include "ldt.h"
#include "local.h"
#ifdef WINELIB
#define USER_HEAP_ALLOC(size) LocalAlloc (LMEM_FIXED, size)
#define USER_HEAP_REALLOC(handle,size) LocalReAlloc (handle,size,LMEM_FIXED)
#define USER_HEAP_LIN_ADDR(handle) LocalLock (handle)
#define USER_HEAP_SEG_ADDR(handle) LocalLock (handle)
#define USER_HEAP_FREE(handle) LocalFree (handle)
#else /* WINELIB */
extern WORD USER_HeapSel;
#define USER_HEAP_ALLOC(size) \
@ -30,9 +20,12 @@ extern WORD USER_HeapSel;
LOCAL_Free( USER_HeapSel, (handle) )
#define USER_HEAP_LIN_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_LIN(USER_HeapSel, (handle)) : NULL)
#ifdef WINELIB
#define USER_HEAP_SEG_ADDR(handle) ((SEGPTR)(USER_HEAP_LIN_ADDR(handle)))
#else
#define USER_HEAP_SEG_ADDR(handle) \
((handle) ? MAKELONG((handle), USER_HeapSel) : 0)
#endif /* WINELIB */
#endif /* USER_H */

View File

@ -127,36 +127,36 @@ typedef struct tagVS_FIXEDFILEINFO {
DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;
DWORD WINAPI
DWORD
GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off);
DWORD WINAPI
DWORD
GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid,
DWORD off,DWORD reslen,LPVOID data
);
DWORD WINAPI
DWORD
GetFileVersionInfoSize(LPCSTR filename,LPDWORD handle);
DWORD WINAPI
DWORD
GetFileVersionInfo(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data);
DWORD WINAPI
DWORD
VerFindFile(
UINT flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
LPSTR curdir,UINT *curdirlen,LPSTR destdir,UINT*destdirlen
);
DWORD WINAPI
DWORD
VerInstallFile(
UINT flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
LPCSTR destdir,LPSTR tmpfile,UINT*tmpfilelen
);
DWORD WINAPI
DWORD
VerLanguageName(UINT lang,LPSTR langname,UINT langnamelen);
DWORD WINAPI
DWORD
VerQueryValue(SEGPTR block,LPCSTR subblock,SEGPTR *buffer,UINT *buflen);
/*

View File

@ -43,7 +43,7 @@ struct _EXCEPTION_POINTERS;
typedef LONG (TOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *);
WINAPI TOP_LEVEL_EXCEPTION_FILTER *SetUnhandledExceptionFilter(TOP_LEVEL_EXCEPTION_FILTER *func);
TOP_LEVEL_EXCEPTION_FILTER *SetUnhandledExceptionFilter(TOP_LEVEL_EXCEPTION_FILTER *func);
/*WINAPI int SetErrorMode(int);*/
@ -114,39 +114,36 @@ typedef struct {
/*DWORD WINAPI GetVersion( void );*/
int
WINAPI WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);
int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);
#define GMEM_FIXED 0x0000
#define GMEM_MOVEABLE 0x0002
DECLARE_HANDLE(HACCEL);
HACCEL WINAPI LoadAcceleratorsA( HINSTANCE, const char *);
HACCEL LoadAcceleratorsA( HINSTANCE, const char *);
#define FreeModule(hLibModule) FreeLibrary((hLibModule))
#define MakeProcInstance(lpProc,hInstance) (lpProc)
#define FreeProcInstance(lpProc) (lpProc)
WINAPI void DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
WINAPI void EnterCriticalSection(CRITICAL_SECTION *lpCrit);
WINAPI int GetCurrentProcessId(void);
WINAPI HANDLE32 GetProcessHeap(void);
WINAPI LPVOID HeapAlloc(HANDLE32,DWORD,DWORD);
WINAPI DWORD HeapCompact(HANDLE32,DWORD);
WINAPI HANDLE32 HeapCreate(DWORD,DWORD,DWORD);
WINAPI BOOL HeapDestroy(HANDLE32);
WINAPI BOOL HeapFree(HANDLE32,DWORD,LPVOID);
WINAPI BOOL HeapLock(HANDLE32);
WINAPI LPVOID HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD);
WINAPI DWORD HeapSize(HANDLE32,DWORD,LPVOID);
WINAPI BOOL HeapUnlock(HANDLE32);
WINAPI BOOL HeapValidate(HANDLE32,DWORD,LPVOID);
WINAPI void InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
WINAPI void LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
WINAPI HANDLE OpenProcess(DWORD access, BOOL inherit, DWORD id);
WINAPI int TerminateProcess(HANDLE h, int ret);
WINAPI LPVOID VirtualAlloc(LPVOID addr,DWORD size,DWORD type,DWORD protect);
WINAPI BOOL VirtualFree( LPVOID addr, DWORD size, DWORD type );
void DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
void EnterCriticalSection(CRITICAL_SECTION *lpCrit);
int GetCurrentProcessId(void);
HANDLE32 GetProcessHeap(void);
LPVOID HeapAlloc(HANDLE32,DWORD,DWORD);
DWORD HeapCompact(HANDLE32,DWORD);
HANDLE32 HeapCreate(DWORD,DWORD,DWORD);
BOOL HeapDestroy(HANDLE32);
BOOL HeapFree(HANDLE32,DWORD,LPVOID);
BOOL HeapLock(HANDLE32);
LPVOID HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD);
DWORD HeapSize(HANDLE32,DWORD,LPVOID);
BOOL HeapUnlock(HANDLE32);
BOOL HeapValidate(HANDLE32,DWORD,LPVOID);
void InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
void LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
HANDLE OpenProcess(DWORD access, BOOL inherit, DWORD id);
int TerminateProcess(HANDLE h, int ret);
LPVOID VirtualAlloc(LPVOID addr,DWORD size,DWORD type,DWORD protect);
BOOL VirtualFree( LPVOID addr, DWORD size, DWORD type );
#endif /* __WINE_WINBASE_H */

View File

@ -196,140 +196,62 @@ typedef BOOL HANDLER_ROUTINE (WORD ctrltype);
#define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
BOOL WINAPI AllocConsole (VOID);
BOOL AllocConsole (VOID);
HANDLE WINAPI CreateConsoleScreenBuffer (DWORD access,
DWORD mode,
CONST SECURITY_ATTRIBUTES * lattr,
DWORD flags,
VOID * ptr);
BOOL WINAPI FillConsoleOutputAttribute (HANDLE h,
WORD attr,
DWORD len,
COORD co,
DWORD * done);
BOOL WINAPI FillConsoleOutputCharacterA (HANDLE h,
CHAR c,
DWORD len,
COORD co,
DWORD * done);
BOOL WINAPI FlushBuffer (HANDLE h);
BOOL WINAPI FreeConsole (VOID);
BOOL WINAPI GenerateConsoleCtrlEvent (DWORD ev, DWORD group);
UINT WINAPI GetConsoleCP (VOID);
BOOL WINAPI GetConsoleCursorInfo (HANDLE h, CONSOLE_CURSOR_INFO *info);
BOOL WINAPI GetConsoleMode (HANDLE h, DWORD * mode);
UINT WINAPI GetConsoleOutputCP (VOID);
BOOL WINAPI GetConsoleScreenBufferInfo (HANDLE h, CONSOLE_SCREEN_BUFFER_INFO *
ptr);
DWORD WINAPI GetConsoleTitleA (LPSTR str, DWORD len);
COORD WINAPI GetLargestConsoleWindowSize (HANDLE h);
BOOL WINAPI GetNumberOfConsoleInputEvents (HANDLE h,
DWORD * n);
BOOL WINAPI GetNumberOfConsoleMouseButtons (DWORD * n);
BOOL WINAPI PeekConsoleInputA (HANDLE h,
INPUT_RECORD * ptr,
DWORD len,
DWORD * done);
BOOL WINAPI ReadConsoleA (HANDLE h,
VOID * ptr,
DWORD len,
DWORD * done,
VOID * res);
BOOL WINAPI ReadConsoleInputA (HANDLE h,
INPUT_RECORD * ptr,
DWORD len,
DWORD * done);
BOOL WINAPI ReadConsoleOutputA (HANDLE h,
CHAR_INFO * ptr,
COORD size,
COORD fred,
SMALL_RECT * reg);
BOOL WINAPI ReadConsoleOutputAttribute (HANDLE h,
WORD * attr,
DWORD len,
COORD rc,
DWORD * done);
BOOL WINAPI ReadConsoleOutputCharacterA (HANDLE h,
LPSTR c,
DWORD len,
COORD rc,
DWORD * done);
BOOL WINAPI ScrollConsoleScreenBufferA (HANDLE h,
CONST SMALL_RECT * sr,
CONST SMALL_RECT * cr,
COORD cpos,
CONST CHAR_INFO * i);
BOOL WINAPI SetConsoleActiveScreenBuffer (HANDLE h);
BOOL WINAPI SetConsoleCP (UINT i);
BOOL WINAPI SetConsoleCtrlHandler (HANDLER_ROUTINE * func, BOOL a);
BOOL WINAPI SetConsoleCursorInfo (HANDLE h, CONST CONSOLE_CURSOR_INFO * info);
BOOL WINAPI SetConsoleCursorPosition (HANDLE h, COORD pos);
BOOL WINAPI SetConsoleMode (HANDLE h, DWORD mode);
BOOL WINAPI SetConsoleOutputCP (UINT i);
BOOL WINAPI SetConsoleScreenBufferSize (HANDLE h, COORD size);
BOOL WINAPI SetConsoleTextAttribute (HANDLE h,
WORD attrs);
BOOL WINAPI SetConsoleTitleA (const char * str);
BOOL WINAPI SetConsoleWindowInfo (HANDLE h,
BOOL abs,
CONST SMALL_RECT * wnd);
BOOL WINAPI WriteConsoleA (HANDLE h,
CONST VOID * ptr,
DWORD slen,
DWORD * done,
VOID * res);
BOOL WINAPI WriteConsoleInputA (HANDLE h,
CONST INPUT_RECORD * ptr,
DWORD len,
DWORD * done);
BOOL WINAPI WriteConsoleOutputA (HANDLE h,
CONST CHAR_INFO * ptr,
COORD size,
COORD fred,
SMALL_RECT* where);
BOOL WINAPI WriteConsoleOutputAttribute (HANDLE h,
CONST WORD *attr,
DWORD len,
COORD co,
DWORD * done);
BOOL WINAPI WriteConsoleOutputCharacterA (HANDLE h,
const char * c,
DWORD len,
COORD co,
DWORD * done);
HANDLE CreateConsoleScreenBuffer (DWORD access, DWORD mode,
CONST SECURITY_ATTRIBUTES * lattr,
DWORD flags, VOID * ptr);
BOOL FillConsoleOutputAttribute (HANDLE h, WORD attr, DWORD len,
COORD co, DWORD * done);
BOOL FillConsoleOutputCharacterA (HANDLE h, CHAR c, DWORD len,
COORD co, DWORD * done);
BOOL FlushBuffer (HANDLE h);
BOOL FreeConsole (VOID);
BOOL GenerateConsoleCtrlEvent (DWORD ev, DWORD group);
UINT GetConsoleCP (VOID);
BOOL GetConsoleCursorInfo (HANDLE h, CONSOLE_CURSOR_INFO *info);
BOOL GetConsoleMode (HANDLE h, DWORD * mode);
UINT GetConsoleOutputCP (VOID);
BOOL GetConsoleScreenBufferInfo (HANDLE h, CONSOLE_SCREEN_BUFFER_INFO * ptr);
DWORD GetConsoleTitleA (LPSTR str, DWORD len);
COORD GetLargestConsoleWindowSize (HANDLE h);
BOOL GetNumberOfConsoleInputEvents (HANDLE h, DWORD * n);
BOOL GetNumberOfConsoleMouseButtons (DWORD * n);
BOOL PeekConsoleInputA (HANDLE h, INPUT_RECORD * ptr, DWORD len, DWORD * done);
BOOL ReadConsoleA (HANDLE h, VOID * ptr, DWORD len, DWORD * done, VOID * res);
BOOL ReadConsoleInputA (HANDLE h, INPUT_RECORD * ptr, DWORD len, DWORD * done);
BOOL ReadConsoleOutputA (HANDLE h, CHAR_INFO * ptr, COORD size,
COORD fred, SMALL_RECT * reg);
BOOL ReadConsoleOutputAttribute (HANDLE h, WORD * attr, DWORD len,
COORD rc, DWORD * done);
BOOL ReadConsoleOutputCharacterA (HANDLE h, LPSTR c, DWORD len,
COORD rc, DWORD * done);
BOOL ScrollConsoleScreenBufferA (HANDLE h, CONST SMALL_RECT * sr,
CONST SMALL_RECT * cr, COORD cpos,
CONST CHAR_INFO * i);
BOOL SetConsoleActiveScreenBuffer (HANDLE h);
BOOL SetConsoleCP (UINT i);
BOOL SetConsoleCtrlHandler (HANDLER_ROUTINE * func, BOOL a);
BOOL SetConsoleCursorInfo (HANDLE h, CONST CONSOLE_CURSOR_INFO * info);
BOOL SetConsoleCursorPosition (HANDLE h, COORD pos);
BOOL SetConsoleMode (HANDLE h, DWORD mode);
BOOL SetConsoleOutputCP (UINT i);
BOOL SetConsoleScreenBufferSize (HANDLE h, COORD size);
BOOL SetConsoleTextAttribute (HANDLE h, WORD attrs);
BOOL SetConsoleTitleA (const char * str);
BOOL SetConsoleWindowInfo (HANDLE h, BOOL abs, CONST SMALL_RECT * wnd);
BOOL WriteConsoleA (HANDLE h, CONST VOID * ptr, DWORD slen,
DWORD * done, VOID * res);
BOOL WriteConsoleInputA (HANDLE h, CONST INPUT_RECORD * ptr,
DWORD len, DWORD * done);
BOOL WriteConsoleOutputA (HANDLE h, CONST CHAR_INFO * ptr,
COORD size, COORD fred,
SMALL_RECT* where);
BOOL WriteConsoleOutputAttribute (HANDLE h, CONST WORD *attr, DWORD len,
COORD co, DWORD * done);
BOOL WriteConsoleOutputCharacterA (HANDLE h, const char * c, DWORD len,
COORD co, DWORD * done);
#endif
#endif

View File

@ -4,6 +4,7 @@
#define WINDOWS_H
#include "wintypes.h"
#include "winuser.h"
#ifndef WINELIB
#pragma pack(1)
@ -42,47 +43,6 @@ typedef PAINTSTRUCT *PPAINTSTRUCT;
typedef PAINTSTRUCT *NPPAINTSTRUCT;
typedef PAINTSTRUCT *LPPAINTSTRUCT;
/* Window classes */
typedef struct {
WORD style;
WNDPROC lpfnWndProc WINE_PACKED;
INT cbClsExtra, cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
SEGPTR lpszMenuName WINE_PACKED;
SEGPTR lpszClassName WINE_PACKED;
} WNDCLASS, *LPWNDCLASS;
#define CS_VREDRAW 0x0001
#define CS_HREDRAW 0x0002
#define CS_KEYCVTWINDOW 0x0004
#define CS_DBLCLKS 0x0008
#define CS_OWNDC 0x0020
#define CS_CLASSDC 0x0040
#define CS_PARENTDC 0x0080
#define CS_NOKEYCVT 0x0100
#define CS_NOCLOSE 0x0200
#define CS_SAVEBITS 0x0800
#define CS_BYTEALIGNCLIENT 0x1000
#define CS_BYTEALIGNWINDOW 0x2000
#define CS_GLOBALCLASS 0x4000
/* Offsets for GetClassLong() and GetClassWord() */
#define GCL_MENUNAME (-8)
#define GCW_HBRBACKGROUND (-10)
#define GCW_HCURSOR (-12)
#define GCW_HICON (-14)
#define GCW_HMODULE (-16)
#define GCW_CBWNDEXTRA (-18)
#define GCW_CBCLSEXTRA (-20)
#define GCL_WNDPROC (-24)
#define GCW_STYLE (-26)
#define GCW_ATOM (-32)
/* Windows */
typedef struct {
@ -206,8 +166,8 @@ typedef struct
/* WM_NCCALCSIZE parameter structure */
typedef struct
{
RECT rgrc[3];
WINDOWPOS FAR* lppos;
RECT rgrc[3];
SEGPTR lppos;
} NCCALCSIZE_PARAMS;
/* WM_NCCALCSIZE return flags */
@ -423,8 +383,6 @@ typedef struct tagMSG
POINT pt WINE_PACKED;
} MSG, *LPMSG;
typedef WORD ATOM;
#define MAKEINTATOM(i) ((SEGPTR)MAKELONG((i),0))
/* Raster operations */
@ -1224,8 +1182,7 @@ typedef struct tagDCB
char EofChar;
char EvtChar;
UINT TxDelay WINE_PACKED;
} DCB;
typedef DCB FAR* LPDCB;
} DCB, *LPDCB;
typedef struct tagCOMSTAT
{
@ -1443,7 +1400,7 @@ typedef struct tagDRAGINFO {
HANDLE hOfStruct;
POINT pt WINE_PACKED;
LONG l WINE_PACKED;
} DRAGINFO, FAR* LPDRAGINFO;
} DRAGINFO, *LPDRAGINFO;
#define DRAGOBJ_PROGRAM 0x0001
#define DRAGOBJ_DATA 0x0002
@ -1877,6 +1834,11 @@ typedef struct tagDRAGINFO {
#define SW_INVALIDATE 0x0002
#define SW_ERASE 0x0003
/* CreateWindow() coordinates */
#define CW_USEDEFAULT16 ((INT16)0x8000)
#define CW_USEDEFAULT32 ((INT32)0x80000000)
#define CW_USEDEFAULT WINELIB_NAME(CW_USEDEFAULT)
/* Button control styles */
#define BS_PUSHBUTTON 0x00000000L
#define BS_DEFPUSHBUTTON 0x00000001L
@ -2163,9 +2125,6 @@ typedef struct tagDRAGINFO {
#define EM_SCROLL (WM_USER+5)
#define EM_GETTHUMB (WM_USER+14)
typedef int (CALLBACK *EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent,
int cch, int code);
/* EDITWORDBREAKPROC code values */
#define WB_LEFT 0
#define WB_RIGHT 1
@ -2193,9 +2152,7 @@ typedef struct
HDC hDC;
RECT rcItem WINE_PACKED;
DWORD itemData WINE_PACKED;
} DRAWITEMSTRUCT;
typedef DRAWITEMSTRUCT NEAR* PDRAWITEMSTRUCT;
typedef DRAWITEMSTRUCT FAR* LPDRAWITEMSTRUCT;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
typedef struct
{
@ -2205,9 +2162,7 @@ typedef struct
UINT itemWidth;
UINT itemHeight;
DWORD itemData WINE_PACKED;
} MEASUREITEMSTRUCT;
typedef MEASUREITEMSTRUCT NEAR* PMEASUREITEMSTRUCT;
typedef MEASUREITEMSTRUCT FAR* LPMEASUREITEMSTRUCT;
} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
typedef struct
{
@ -2216,9 +2171,7 @@ typedef struct
UINT itemID;
HWND hwndItem;
DWORD itemData;
} DELETEITEMSTRUCT;
typedef DELETEITEMSTRUCT NEAR* PDELETEITEMSTRUCT;
typedef DELETEITEMSTRUCT FAR* LPDELETEITEMSTRUCT;
} DELETEITEMSTRUCT, *PDELETEITEMSTRUCT, *LPDELETEITEMSTRUCT;
typedef struct
{
@ -2229,9 +2182,7 @@ typedef struct
DWORD itemData1;
UINT itemID2;
DWORD itemData2 WINE_PACKED;
} COMPAREITEMSTRUCT;
typedef COMPAREITEMSTRUCT NEAR* PCOMPAREITEMSTRUCT;
typedef COMPAREITEMSTRUCT FAR* LPCOMPAREITEMSTRUCT;
} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT;
/* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
#define KF_EXTENDED 0x0100
@ -2340,6 +2291,7 @@ typedef COMPAREITEMSTRUCT FAR* LPCOMPAREITEMSTRUCT;
#define GMEM_LOWER GMEM_NOT_BANKED
#define GMEM_DISCARDED 0x4000
#define GMEM_LOCKCOUNT 0x00ff
#define GMEM_INVALID_HANDLE 0x8000
#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
#define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
@ -2616,7 +2568,7 @@ typedef struct {
#define HELP_SETWINPOS 0x0203
typedef struct {
TCHAR dmDeviceName[32];
CHAR dmDeviceName[32];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
@ -2635,7 +2587,7 @@ typedef struct {
short dmYResolution;
short dmTTOption;
short dmCollate;
TCHAR dmFormName[32];
CHAR dmFormName[32];
WORD dmUnusedPadding;
WORD dmBitsPerPel;
DWORD dmPelsWidth;
@ -2718,7 +2670,7 @@ HBITMAP CreateCompatibleBitmap(HDC,INT,INT);
HDC CreateCompatibleDC(HDC);
HCURSOR CreateCursor(HANDLE,INT,INT,INT,INT,const BYTE*,const BYTE*);
HANDLE CreateCursorIconIndirect(HANDLE,CURSORICONINFO*,const BYTE*,const BYTE*);
HDC CreateDC(LPCTSTR,LPCTSTR,LPCTSTR,const DEVMODE*);
HDC CreateDC(LPCSTR,LPCSTR,LPCSTR,const DEVMODE*);
HBRUSH CreateDIBPatternBrush(HGLOBAL,UINT);
HBITMAP CreateDIBitmap(HDC,BITMAPINFOHEADER*,DWORD,LPVOID,BITMAPINFO*,UINT);
HWND CreateDialog(HINSTANCE,SEGPTR,HWND,DLGPROC);
@ -2731,23 +2683,21 @@ HRGN CreateEllipticRgnIndirect(LPRECT);
HFONT CreateFont(INT,INT,INT,INT,INT,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
HFONT CreateFontIndirect(const LOGFONT*);
HBRUSH CreateHatchBrush(INT,COLORREF);
HDC CreateIC(LPCTSTR,LPCTSTR,LPCTSTR,const DEVMODE*);
HDC CreateIC(LPCSTR,LPCSTR,LPCSTR,const DEVMODE*);
HICON CreateIcon(HINSTANCE,INT,INT,BYTE,BYTE,const BYTE*,const BYTE*);
HMENU CreateMenu(void);
HDC CreateMetaFile(LPCTSTR);
HDC CreateMetaFile(LPCSTR);
HPALETTE CreatePalette(const LOGPALETTE*);
HBRUSH CreatePatternBrush(HBITMAP);
HPEN CreatePen(INT,INT,COLORREF);
HPEN CreatePenIndirect(const LOGPEN*);
HRGN CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
HRGN CreatePolyPolygonRgn(const POINT*,const INT16*,INT,INT);
HRGN CreatePolygonRgn(const POINT*,INT,INT);
HMENU CreatePopupMenu(void);
HRGN CreateRectRgn(INT,INT,INT,INT);
HRGN CreateRectRgnIndirect(const RECT*);
HRGN CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
HBRUSH CreateSolidBrush(COLORREF);
HWND CreateWindow(SEGPTR,SEGPTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,SEGPTR);
HWND CreateWindowEx(DWORD,SEGPTR,SEGPTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,SEGPTR);
BOOL DPtoLP(HDC,LPPOINT,INT);
void DebugBreak(void);
LRESULT DefDlgProc(HWND,UINT,WPARAM,LPARAM);
@ -2782,7 +2732,7 @@ DWORD DragObject(HWND, HWND, WORD, HANDLE, WORD, HCURSOR);
void DrawFocusRect(HDC,const RECT*);
BOOL DrawIcon(HDC,INT,INT,HICON);
void DrawMenuBar(HWND);
INT DrawText(HDC,LPCTSTR,INT,LPRECT,UINT);
INT DrawText(HDC,LPCSTR,INT,LPRECT,UINT);
DWORD DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
BOOL Ellipse(HDC,INT,INT,INT,INT);
BOOL EmptyClipboard(void);
@ -2795,8 +2745,8 @@ BOOL EndDialog(HWND,INT);
BOOL EndPaint(HWND,const PAINTSTRUCT*);
BOOL EnumChildWindows(HWND,WNDENUMPROC,LPARAM);
UINT EnumClipboardFormats(UINT);
INT EnumFontFamilies(HDC,LPCTSTR,FONTENUMPROC,LPARAM);
INT EnumFonts(HDC,LPCTSTR,FONTENUMPROC,LPARAM);
INT EnumFontFamilies(HDC,LPCSTR,FONTENUMPROC,LPARAM);
INT EnumFonts(HDC,LPCSTR,FONTENUMPROC,LPARAM);
BOOL EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
INT EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
INT EnumProps(HWND,PROPENUMPROC);
@ -2811,7 +2761,7 @@ int ExcludeUpdateRgn(HDC,HWND);
int ExcludeVisRect(HDC,short,short,short,short);
BOOL ExitWindows(DWORD,WORD);
BOOL ExtFloodFill(HDC,INT,INT,COLORREF,WORD);
BOOL ExtTextOut(HDC,short,short,WORD,LPRECT,LPSTR,WORD,LPINT);
BOOL ExtTextOut(HDC,short,short,WORD,LPRECT,LPSTR,WORD,LPINT16);
HICON ExtractIcon(HINSTANCE,LPCSTR,WORD);
WORD FarGetOwner(HANDLE);
void FarSetOwner(HANDLE,HANDLE);
@ -2824,6 +2774,7 @@ ATOM FindAtom(SEGPTR);
HINSTANCE FindExecutable(LPCSTR,LPCSTR,LPSTR);
HRSRC FindResource(HINSTANCE,SEGPTR,SEGPTR);
HWND FindWindow(SEGPTR,LPSTR);
HWND FindWindowEx(HWND,HWND,SEGPTR,LPSTR);
BOOL FlashWindow(HWND,BOOL);
BOOL FloodFill(HDC,INT,INT,COLORREF);
int FlushComm(int,int);
@ -2852,10 +2803,7 @@ HWND GetCapture(void);
WORD GetCaretBlinkTime(void);
void GetCaretPos(LPPOINT);
BOOL GetCharABCWidths(HDC,UINT,UINT,LPABC);
BOOL GetCharWidth(HDC,WORD,WORD,LPINT);
BOOL GetClassInfo(HANDLE,SEGPTR,LPWNDCLASS);
LONG GetClassLong(HWND,short);
int GetClassName(HWND,LPSTR,short);
BOOL GetCharWidth(HDC,WORD,WORD,LPINT16);
WORD GetClassWord(HWND,short);
void GetClientRect(HWND,LPRECT);
int GetClipBox(HDC,LPRECT);
@ -2897,7 +2845,7 @@ WORD GetDriveType(INT);
int GetEnvironment(LPSTR,LPSTR,WORD);
HMODULE GetExePtr(HANDLE);
HWND GetFocus(void);
DWORD GetFreeSpace(WORD);
DWORD GetFreeSpace(UINT16);
DWORD GetHeapSpaces(HMODULE);
BOOL GetInputState(void);
int GetInstanceData(HANDLE,WORD,int);
@ -2952,7 +2900,7 @@ WORD GetROP2(HDC);
WORD GetRelAbs(HDC);
int GetRgnBox(HRGN,LPRECT);
int GetScrollPos(HWND,int);
void GetScrollRange(HWND,int,LPINT,LPINT);
void GetScrollRange(HWND,int,LPINT16,LPINT16);
DWORD GetSelectorBase(WORD);
DWORD GetSelectorLimit(WORD);
HANDLE GetStockObject(int);
@ -2966,7 +2914,7 @@ int GetSystemMetrics(WORD);
WORD GetSystemPaletteEntries(HDC,WORD,WORD,LPPALETTEENTRY);
WORD GetSystemPaletteUse(HDC);
VOID GetSystemTime(LPSYSTEMTIME); /* Win32 */
DWORD GetTabbedTextExtent(HDC,LPSTR,int,int,LPINT);
DWORD GetTabbedTextExtent(HDC,LPSTR,int,int,LPINT16);
HINSTANCE GetTaskDS(void);
HQUEUE GetTaskQueue(HTASK);
BYTE GetTempDrive(BYTE);
@ -2978,7 +2926,7 @@ DWORD GetTextExtent(HDC,LPCSTR,short);
BOOL GetTextExtentPoint(HDC,LPCSTR,short,LPSIZE);
INT GetTextFace(HDC,INT,LPSTR);
BOOL GetTextMetrics(HDC,LPTEXTMETRIC);
LPINT GetThresholdEvent(void);
LPINT16 GetThresholdEvent(void);
int GetThresholdStatus(void);
DWORD GetTickCount(void);
HWND GetTopWindow(HWND);
@ -3006,34 +2954,21 @@ int GetWindowTextLength(HWND);
WORD GetWindowWord(HWND,short);
UINT GetWindowsDirectory(LPSTR,UINT);
ATOM GlobalAddAtom(SEGPTR);
HGLOBAL GlobalAlloc(WORD,DWORD);
DWORD GlobalCompact(DWORD);
DWORD GlobalDOSAlloc(DWORD);
WORD GlobalDOSFree(WORD);
ATOM GlobalDeleteAtom(ATOM);
ATOM GlobalFindAtom(SEGPTR);
void GlobalFix(HGLOBAL);
WORD GlobalFlags(HGLOBAL);
HGLOBAL GlobalFree(HGLOBAL);
void GlobalFreeAll(HANDLE);
void GlobalFix(HGLOBAL16);
void GlobalFreeAll(HGLOBAL16);
WORD GlobalGetAtomName(ATOM,LPSTR,short);
#ifdef WINELIB32
HGLOBAL GlobalHandle(LPCVOID); /* Win32 */
#else
DWORD GlobalHandle(UINT); /* Win16 */
#endif
HGLOBAL GlobalLRUNewest(HGLOBAL);
HGLOBAL GlobalLRUOldest(HGLOBAL);
LPVOID GlobalLock(HGLOBAL);
HGLOBAL16 GlobalLRUNewest(HGLOBAL16);
HGLOBAL16 GlobalLRUOldest(HGLOBAL16);
void GlobalNotify(FARPROC);
WORD GlobalPageLock(HGLOBAL);
WORD GlobalPageUnlock(HGLOBAL);
HGLOBAL GlobalReAlloc(HGLOBAL,DWORD,WORD);
DWORD GlobalSize(HGLOBAL);
BOOL GlobalUnWire(HGLOBAL);
void GlobalUnfix(HGLOBAL);
BOOL GlobalUnlock(HGLOBAL);
SEGPTR GlobalWire(HGLOBAL);
WORD GlobalPageLock(HGLOBAL16);
WORD GlobalPageUnlock(HGLOBAL16);
BOOL GlobalUnWire(HGLOBAL16);
void GlobalUnfix(HGLOBAL16);
SEGPTR GlobalWire(HGLOBAL16);
BOOL GrayString(HDC,HBRUSH,FARPROC,LPARAM,INT,INT,INT,INT,INT);
void HideCaret(HWND);
BOOL HiliteMenuItem(HWND,HMENU,UINT,UINT);
@ -3089,18 +3024,8 @@ HMENU LoadMenuIndirect(SEGPTR);
HANDLE LoadModule(LPCSTR,LPVOID);
HGLOBAL LoadResource(HINSTANCE,HRSRC);
int LoadString(HANDLE,WORD,LPSTR,int);
HANDLE LocalAlloc(WORD,WORD);
UINT LocalCompact(WORD);
UINT LocalFlags(HLOCAL);
HANDLE LocalFree(HANDLE);
HANDLE LocalHandle(WORD);
BOOL LocalInit(HANDLE,WORD,WORD);
NPVOID LocalLock(HLOCAL);
FARPROC LocalNotify(FARPROC);
HANDLE LocalReAlloc(HANDLE,WORD,WORD);
UINT LocalShrink(HANDLE,WORD);
UINT LocalSize(HLOCAL);
BOOL LocalUnlock(HANDLE);
LPVOID LockResource(HGLOBAL);
HGLOBAL LockSegment(HGLOBAL);
HMENU LookupMenuHandle(HMENU,INT);
@ -3114,7 +3039,6 @@ BOOL ModifyMenu(HMENU,UINT,UINT,UINT,SEGPTR);
DWORD MoveTo(HDC,short,short);
BOOL MoveToEx(HDC,short,short,LPPOINT);
BOOL MoveWindow(HWND,short,short,short,short,BOOL);
INT MulDiv(INT,INT,INT);
DWORD OemKeyScan(WORD);
BOOL OemToAnsi(LPSTR,LPSTR);
void OemToAnsiBuff(LPSTR,LPSTR,INT);
@ -3130,7 +3054,7 @@ int OpenComm(LPCSTR,UINT,UINT);
HFILE OpenFile(LPCSTR,OFSTRUCT*,UINT);
BOOL OpenIcon(HWND);
int OpenSound(void);
void OutputDebugString(LPSTR);
void OutputDebugString(LPCSTR);
void PaintRect(HWND,HWND,HDC,HBRUSH,LPRECT);
BOOL PaintRgn(HDC,HRGN);
BOOL PatBlt(HDC,short,short,short,short,DWORD);
@ -3138,7 +3062,7 @@ BOOL PeekMessage(LPMSG,HWND,WORD,WORD,WORD);
BOOL Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
BOOL PlayMetaFile(HDC,HANDLE);
void PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,WORD);
BOOL PolyPolygon(HDC,LPPOINT,LPINT,WORD);
BOOL PolyPolygon(HDC,LPPOINT,LPINT16,WORD);
BOOL Polygon(HDC,LPPOINT,int);
BOOL Polyline(HDC,LPPOINT,int);
BOOL PostAppMessage(HANDLE,WORD,WORD,LONG);
@ -3212,7 +3136,6 @@ DWORD RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,FILETIME*);
DWORD RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,FILETIME*);
ATOM RegisterClass(LPWNDCLASS);
WORD RegisterClipboardFormat(LPCSTR);
WORD RegisterWindowMessage(SEGPTR);
void ReleaseCapture(void);
@ -3254,7 +3177,6 @@ DWORD SetBrushOrg(HDC,short,short);
HWND SetCapture(HWND);
void SetCaretBlinkTime(WORD);
void SetCaretPos(short,short);
LONG SetClassLong(HWND,short,LONG);
WORD SetClassWord(HWND,short,WORD);
HANDLE SetClipboardData(WORD,HANDLE);
HWND SetClipboardViewer(HWND);
@ -3303,7 +3225,7 @@ WORD SetSelectorLimit(WORD,DWORD);
int SetSoundNoise(int,int);
WORD SetStretchBltMode(HDC,WORD);
LONG SetSwapAreaSize(WORD);
void SetSysColors(int,LPINT,COLORREF*);
void SetSysColors(int,LPINT16,COLORREF*);
HWND SetSysModalWindow(HWND);
WORD SetSystemPaletteUse(HDC,WORD);
WORD SetSystemTimer(HWND,WORD,WORD,FARPROC);
@ -3354,7 +3276,7 @@ void SwitchStackBack(void);
void SwitchStackTo(WORD,WORD,WORD);
int SyncAllVoices(void);
BOOL SystemParametersInfo(UINT,UINT,LPVOID,UINT);
LONG TabbedTextOut(HDC,short,short,LPSTR,short,short,LPINT,short);
LONG TabbedTextOut(HDC,short,short,LPSTR,short,short,LPINT16,short);
BOOL TextOut(HDC,short,short,LPSTR,short);
int Throw(LPCATCHBUF,int);
int ToAscii(WORD,WORD,LPSTR,LPVOID,WORD);
@ -3369,7 +3291,6 @@ BOOL UnhookWindowsHookEx(HHOOK);
BOOL UnionRect(LPRECT,LPRECT,LPRECT);
void UnlockSegment(HGLOBAL);
BOOL UnrealizeObject(HBRUSH);
BOOL UnregisterClass(SEGPTR,HANDLE);
int UpdateColors(HDC);
void UpdateWindow(HWND);
void ValidateCodeSegments(void);
@ -3377,7 +3298,7 @@ LPSTR ValidateFreeSpaces(void);
void ValidateRect(HWND,LPRECT);
void ValidateRgn(HWND,HRGN);
WORD VkKeyScan(WORD);
SEGPTR WIN16_GlobalLock(HGLOBAL);
SEGPTR WIN16_GlobalLock16(HGLOBAL16);
SEGPTR WIN16_LockResource(HANDLE);
SEGPTR WIN16_lstrcpyn(SEGPTR,SEGPTR,WORD);
void WaitMessage(void);
@ -3407,7 +3328,85 @@ SEGPTR lstrcpy(SEGPTR,SEGPTR);
LPSTR lstrcpyn(LPSTR,LPCSTR,int);
INT lstrlen(LPCSTR);
int wsprintf(LPSTR,LPSTR,...);
int wvsprintf(LPSTR,LPSTR,LPSTR);
int wvsprintf(LPSTR,LPCSTR,LPCSTR);
/* Declarations for functions that exist both in Win16 and Win32 */
HWND CreateWindow16(SEGPTR,SEGPTR,DWORD,INT16,INT16,INT16,INT16,HWND,HMENU,HINSTANCE,SEGPTR);
#define CreateWindow32A(className,titleName,style,x,y,width,height,\
parent,menu,instance,param) \
CreateWindowEx32A(0,className,titleName,style,x,y,width,height,\
parent,menu,instance,param)
#define CreateWindow32W(className,titleName,style,x,y,width,height,\
parent,menu,instance,param) \
CreateWindowEx32W(0,className,titleName,style,x,y,width,height,\
parent,menu,instance,param)
#define CreateWindow WINELIB_NAME_AW(CreateWindow)
HWND CreateWindowEx16(DWORD,SEGPTR,SEGPTR,DWORD,INT16,INT16,INT16,INT16,HWND,HMENU,HINSTANCE,SEGPTR);
HWND32 CreateWindowEx32A(DWORD,LPCSTR,LPCSTR,DWORD,INT32,INT32,INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
HWND32 CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32,INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
HGLOBAL16 GlobalAlloc16(UINT16,DWORD);
HGLOBAL32 GlobalAlloc32(UINT32,DWORD);
#define GlobalAlloc WINELIB_NAME(GlobalAlloc)
DWORD GlobalCompact16(DWORD);
DWORD GlobalCompact32(DWORD);
#define GlobalCompact WINELIB_NAME(GlobalCompact)
UINT16 GlobalFlags16(HGLOBAL16);
UINT32 GlobalFlags32(HGLOBAL32);
#define GlobalFlags WINELIB_NAME(GlobalFlags)
HGLOBAL16 GlobalFree16(HGLOBAL16);
HGLOBAL32 GlobalFree32(HGLOBAL32);
#define GlobalFree WINELIB_NAME(GlobalFree)
DWORD GlobalHandle16(WORD);
HGLOBAL32 GlobalHandle32(LPCVOID);
#define GlobalHandle WINELIB_NAME(GlobalHandle)
LPVOID GlobalLock16(HGLOBAL16);
LPVOID GlobalLock32(HGLOBAL32);
#define GlobalLock WINELIB_NAME(GlobalLock)
HGLOBAL16 GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
HGLOBAL32 GlobalReAlloc32(HGLOBAL32,DWORD,UINT32);
#define GlobalReAlloc WINELIB_NAME(GlobalReAlloc)
DWORD GlobalSize16(HGLOBAL16);
DWORD GlobalSize32(HGLOBAL32);
#define GlobalSize WINELIB_NAME(GlobalSize)
BOOL GlobalUnlock16(HGLOBAL16);
BOOL GlobalUnlock32(HGLOBAL32);
#define GlobalUnlock WINELIB_NAME(GlobalUnlock)
HLOCAL16 LocalAlloc16(UINT16,WORD);
HLOCAL32 LocalAlloc32(UINT32,DWORD);
#define LocalAlloc WINELIB_NAME(LocalAlloc)
UINT16 LocalCompact16(UINT16);
UINT32 LocalCompact32(UINT32);
#define LocalCompact WINELIB_NAME(LocalCompact)
UINT16 LocalFlags16(HLOCAL16);
UINT32 LocalFlags32(HLOCAL32);
#define LocalFlags WINELIB_NAME(LocalFlags)
HLOCAL16 LocalFree16(HLOCAL16);
HLOCAL32 LocalFree32(HLOCAL32);
#define LocalFree WINELIB_NAME(LocalFree)
HLOCAL16 LocalHandle16(WORD);
HLOCAL32 LocalHandle32(LPCVOID);
#define LocalHandle WINELIB_NAME(LocalHandle)
SEGPTR LocalLock16(HLOCAL16);
LPVOID LocalLock32(HLOCAL32);
#define LocalLock WINELIB_NAME(LocalLock)
HLOCAL16 LocalReAlloc16(HLOCAL16,WORD,UINT16);
HLOCAL32 LocalReAlloc32(HLOCAL32,DWORD,UINT32);
#define LocalReAlloc WINELIB_NAME(LocalReAlloc)
UINT16 LocalShrink16(HGLOBAL16,UINT16);
UINT32 LocalShrink32(HGLOBAL32,UINT32);
#define LocalShrink WINELIB_NAME(LocalShrink)
UINT16 LocalSize16(HLOCAL16);
UINT32 LocalSize32(HLOCAL32);
#define LocalSize WINELIB_NAME(LocalSize)
BOOL LocalUnlock16(HLOCAL16);
BOOL LocalUnlock32(HLOCAL32);
#define LocalUnlock WINELIB_NAME(LocalUnlock)
INT16 MulDiv16(INT16,INT16,INT16);
INT32 MulDiv32(INT32,INT32,INT32);
#define MulDiv WINELIB_NAME(MulDiv)
#ifdef WINELIB
#define WINELIB_UNIMP(x) fprintf (stderr, "WineLib: Unimplemented %s\n", x)

View File

@ -37,7 +37,7 @@ extern BOOL WINPOS_SetActiveWindow( HWND hWnd, BOOL fMouse, BOOL fChangeFocus);
extern BOOL WINPOS_ChangeActiveWindow( HWND hwnd, BOOL mouseMsg );
extern LONG WINPOS_SendNCCalcSize( HWND hwnd, BOOL calcValidRect,
RECT *newWindowRect, RECT *oldWindowRect,
RECT *oldClientRect, WINDOWPOS *winpos,
RECT *oldClientRect, SEGPTR winpos,
RECT *newClientRect );
extern LONG WINPOS_HandleWindowPosChanging( WINDOWPOS *winpos );
extern INT WINPOS_WindowFromPoint( POINT pt, WND **ppWnd );

View File

@ -22,7 +22,7 @@
*/
typedef u_int SOCKET;
extern int PASCAL FAR __WSAFDIsSet(SOCKET, fd_set FAR *);
extern int __WSAFDIsSet(SOCKET, fd_set *);
/*
* Internet address (old style... should be updated)
@ -46,10 +46,8 @@ typedef struct WSAData {
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
} WSADATA;
typedef WSADATA FAR *LPWSADATA;
char *lpVendorInfo;
} WSADATA, *LPWSADATA;
/*
* This is used instead of -1, since the
@ -192,91 +190,44 @@ extern "C" {
/* Microsoft Windows Extension function prototypes */
INT PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);
INT PASCAL FAR WSACleanup(void);
void PASCAL FAR WSASetLastError(INT iError);
INT PASCAL FAR WSAGetLastError(void);
BOOL PASCAL FAR WSAIsBlocking(void);
INT PASCAL FAR WSAUnhookBlockingHook(void);
FARPROC PASCAL FAR WSASetBlockingHook(FARPROC lpBlockFunc);
INT PASCAL FAR WSACancelBlockingCall(void);
HANDLE PASCAL FAR WSAAsyncGetServByName(HWND hWnd, u_int wMsg,
const char FAR *name,
const char FAR *proto,
char FAR *buf, INT buflen);
HANDLE PASCAL FAR WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, INT port,
const char FAR *proto, char FAR *buf,
INT buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg,
const char FAR *name, char FAR *buf,
INT buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg,
INT number, char FAR *buf,
INT buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,
const char FAR *name, char FAR *buf,
INT buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg,
const char FAR *addr, INT len, INT type,
char FAR *buf, INT buflen);
INT PASCAL FAR WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
INT PASCAL FAR WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, long lEvent);
INT WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);
INT WSACleanup(void);
void WSASetLastError(INT iError);
INT WSAGetLastError(void);
BOOL WSAIsBlocking(void);
INT WSAUnhookBlockingHook(void);
FARPROC WSASetBlockingHook(FARPROC lpBlockFunc);
INT WSACancelBlockingCall(void);
HANDLE WSAAsyncGetServByName(HWND hWnd, u_int wMsg,
LPCSTR name, LPCSTR proto,
LPSTR buf, INT buflen);
HANDLE WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, INT port,
LPCSTR proto, LPSTR buf, INT buflen);
HANDLE WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg,
LPCSTR name, LPSTR buf, INT buflen);
HANDLE WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg,
INT number, LPSTR buf, INT buflen);
HANDLE WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,
LPCSTR name, LPSTR buf, INT buflen);
HANDLE WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, LPCSTR addr, INT len,
INT type, LPSTR buf, INT buflen);
INT WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
INT WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, long lEvent);
#ifdef __cplusplus
}
#endif
/* Microsoft Windows Extended data types */
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in FAR *LPSOCKADDR_IN;
typedef struct linger LINGER;
typedef struct linger *PLINGER;
typedef struct linger FAR *LPLINGER;
typedef struct in_addr IN_ADDR;
typedef struct in_addr *PIN_ADDR;
typedef struct in_addr FAR *LPIN_ADDR;
typedef struct fd_set FD_SET;
typedef struct fd_set *PFD_SET;
typedef struct fd_set FAR *LPFD_SET;
typedef struct hostent HOSTENT;
typedef struct hostent *PHOSTENT;
typedef struct hostent FAR *LPHOSTENT;
typedef struct servent SERVENT;
typedef struct servent *PSERVENT;
typedef struct servent FAR *LPSERVENT;
typedef struct protoent PROTOENT;
typedef struct protoent *PPROTOENT;
typedef struct protoent FAR *LPPROTOENT;
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval FAR *LPTIMEVAL;
typedef struct sockaddr SOCKADDR, *PSOCKADDR, *LPSOCKADDR;
typedef struct sockaddr_in SOCKADDR_IN, *PSOCKADDR_IN, *LPSOCKADDR_IN;
typedef struct linger LINGER, *PLINGER, *LPLINGER;
typedef struct in_addr IN_ADDR, *PIN_ADDR, *LPIN_ADDR;
typedef struct fd_set FD_SET, *PFD_SET, *LPFD_SET;
typedef struct hostent HOSTENT, *PHOSTENT, *LPHOSTENT;
typedef struct servent SERVENT, *PSERVENT, *LPSERVENT;
typedef struct protoent PROTOENT, *PPROTOENT, *LPPROTOENT;
typedef struct timeval TIMEVAL, *PTIMEVAL, *LPTIMEVAL;
/*
* Windows message parameter composition and decomposition

View File

@ -1,3 +1,9 @@
/*
* Basic types definitions
*
* Copyright 1996 Alexandre Julliard
*/
#ifndef __WINE_WINTYPES_H
#define __WINE_WINTYPES_H
@ -19,70 +25,99 @@
# endif
#endif
typedef short INT16;
typedef unsigned short UINT16;
typedef int INT32;
typedef unsigned int UINT32;
/* Macros to map Winelib names to the correct implementation name */
/* depending on WINELIB16, WINELIB32 and UNICODE macros. */
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned short BOOL;
typedef unsigned char BYTE;
typedef long LONG;
typedef unsigned char CHAR;
#ifdef WINELIB
# ifdef WINELIB32
# define WINELIB_NAME(func) func##32
# ifdef UNICODE
# define WINELIB_NAME_AW(func) func##32W
# else
# define WINELIB_NAME_AW(func) func##32A
# endif /* UNICODE */
# else /* WINELIB32 */
# define WINELIB_NAME(func) func##16
# define WINELIB_NAME_AW(func) func##16
# endif /* WINELIB32 */
#else /* WINELIB */
# define WINELIB_NAME(func) /* nothing */
# define WINELIB_NAME_AW(func) /* nothing */
#endif /* WINELIB */
#ifdef WINELIB
# define DECL_WINELIB_TYPE(type) typedef WINELIB_NAME(type) type
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type
#else /* WINELIB */
# define DECL_WINELIB_TYPE(type) /* nothing */
# define DECL_WINELIB_TYPE_AW(type) /* nothing */
#endif /* WINELIB */
/* Standard data types. These are the same for emulator and library. */
typedef void VOID;
typedef short INT16;
typedef unsigned short UINT16;
typedef int INT32;
typedef unsigned int UINT32;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned short BOOL;
typedef unsigned char BYTE;
typedef long LONG;
typedef char CHAR;
/* Some systems might have wchar_t, but we really need 16 bit characters */
typedef unsigned short WCHAR;
typedef unsigned short WCHAR;
#ifdef WINELIB32
typedef int INT;
typedef unsigned int UINT;
typedef char TCHAR; /* Should probably eventually be unsigned short */
typedef void* NPVOID;
/* Handles types. These are the same for emulator and library. */
typedef UINT16 HANDLE16;
typedef UINT32 HANDLE32;
typedef UINT16 WPARAM16;
typedef UINT32 WPARAM32;
typedef LONG LPARAM;
typedef LONG LRESULT;
typedef WORD ATOM;
typedef WORD CATCHBUF[9];
typedef WORD *LPCATCHBUF;
typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK REGSAM;
typedef INT16 HFILE;
typedef HANDLE32 HHOOK;
typedef HANDLE32 HKEY;
/* Pointers types. These are the same for emulator and library. */
typedef CHAR *LPSTR;
typedef const CHAR *LPCSTR;
typedef WCHAR *LPWSTR;
typedef const WCHAR *LPCWSTR;
typedef BYTE *LPBYTE;
typedef WORD *LPWORD;
typedef DWORD *LPDWORD;
typedef LONG *LPLONG;
typedef VOID *LPVOID;
typedef const VOID *LPCVOID;
typedef INT16 *LPINT16;
typedef UINT16 *LPUINT16;
typedef INT32 *LPINT32;
typedef UINT32 *LPUINT32;
typedef HKEY *LPHKEY;
/* Special case: a segmented pointer is just a pointer in the library. */
#ifdef WINELIB
typedef void* SEGPTR;
#else /* WINELIB32 */
typedef short INT;
typedef unsigned short UINT;
typedef char TCHAR; /* TCHAR is just char in Win16 */
typedef WORD NPVOID;
#else /* WINELIB */
typedef DWORD SEGPTR;
#endif /* WINELIB32 */
#endif /* WINELIB */
typedef UINT16 HANDLE16;
typedef UINT32 HANDLE32;
typedef UINT HANDLE;
typedef UINT WPARAM;
typedef LONG LPARAM;
typedef LONG LRESULT;
typedef INT HFILE;
typedef DWORD HHOOK;
typedef char *LPSTR;
typedef BYTE *LPBYTE;
typedef const char *LPCSTR;
typedef TCHAR *LPTSTR;
typedef const TCHAR *LPCTSTR;
typedef WCHAR *LPWSTR;
typedef const WCHAR *LPCWSTR;
typedef char *NPSTR;
typedef INT *LPINT;
typedef UINT *LPUINT;
typedef WORD *LPWORD;
typedef DWORD *LPDWORD;
typedef LONG *LPLONG;
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef WORD CATCHBUF[9];
typedef WORD *LPCATCHBUF;
typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK REGSAM;
#define DECLARE_HANDLE(a) \
typedef HANDLE a; \
typedef HANDLE16 a##16; \
typedef HANDLE32 a##32;
/* Handle types that exist both in Win16 and Win32. */
#define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE32 a##32;
DECLARE_HANDLE(HACCEL);
DECLARE_HANDLE(HBITMAP);
DECLARE_HANDLE(HBRUSH);
DECLARE_HANDLE(HCLASS);
DECLARE_HANDLE(HCURSOR);
DECLARE_HANDLE(HDC);
DECLARE_HANDLE(HDROP);
@ -96,6 +131,10 @@ DECLARE_HANDLE(HINSTANCE);
DECLARE_HANDLE(HLOCAL);
DECLARE_HANDLE(HMENU);
DECLARE_HANDLE(HMETAFILE);
DECLARE_HANDLE(HMIDI);
DECLARE_HANDLE(HMIDIIN);
DECLARE_HANDLE(HMIDIOUT);
DECLARE_HANDLE(HMMIO);
DECLARE_HANDLE(HMODULE);
DECLARE_HANDLE(HPALETTE);
DECLARE_HANDLE(HPEN);
@ -103,69 +142,207 @@ DECLARE_HANDLE(HQUEUE);
DECLARE_HANDLE(HRGN);
DECLARE_HANDLE(HRSRC);
DECLARE_HANDLE(HTASK);
DECLARE_HANDLE(HWAVE);
DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT);
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(LOCALHANDLE);
#ifdef WINELIB32
DECLARE_HANDLE(HKEY);
#else
typedef DWORD HKEY;
#endif
typedef HKEY* LPHKEY;
typedef HGLOBAL GLOBALHANDLE;
#undef DECLARE_HANDLE
/* Callback function pointers types for Win16. */
#ifdef WINELIB
typedef long (*FARPROC)();
typedef LRESULT (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
typedef LRESULT (*WNDENUMPROC)(HWND,LPARAM);
typedef LRESULT (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
typedef LRESULT (*FARPROC16)();
#else
/* Function pointers are SEGPTR in Win16 */
typedef SEGPTR FARPROC16;
typedef SEGPTR WNDPROC16;
#endif
/* Callback function pointers types for Win32. */
typedef LRESULT (*FARPROC32)();
typedef LRESULT (*WNDPROC32)(HWND32,UINT32,WPARAM32,LPARAM);
/* TCHAR data types definitions for Winelib. */
/* These types are _not_ defined for the emulator, because they */
/* depend on the UNICODE macro that only exists in user's code. */
#ifdef WINELIB
# if defined(WINELIB32) && defined(UNICODE)
typedef WCHAR TCHAR;
typedef LPWSTR LPTSTR;
typedef LPCWSTR LPCTSTR;
# else /* WINELIB32 && UNICODE */
typedef CHAR TCHAR;
typedef LPSTR LPTSTR;
typedef LPCSTR LPCTSTR;
# endif /* WINELIB32 && UNICODE */
#endif /* WINELIB */
/* Data types specific to the library. These do _not_ exist in the emulator. */
DECL_WINELIB_TYPE(INT);
DECL_WINELIB_TYPE(LPINT);
DECL_WINELIB_TYPE(LPUINT);
DECL_WINELIB_TYPE(UINT);
DECL_WINELIB_TYPE(WPARAM);
DECL_WINELIB_TYPE(HACCEL);
DECL_WINELIB_TYPE(HANDLE);
DECL_WINELIB_TYPE(HBITMAP);
DECL_WINELIB_TYPE(HBRUSH);
DECL_WINELIB_TYPE(HCURSOR);
DECL_WINELIB_TYPE(HDC);
DECL_WINELIB_TYPE(HDROP);
DECL_WINELIB_TYPE(HDRVR);
DECL_WINELIB_TYPE(HDWP);
DECL_WINELIB_TYPE(HFONT);
DECL_WINELIB_TYPE(HGDIOBJ);
DECL_WINELIB_TYPE(HGLOBAL);
DECL_WINELIB_TYPE(HICON);
DECL_WINELIB_TYPE(HINSTANCE);
DECL_WINELIB_TYPE(HLOCAL);
DECL_WINELIB_TYPE(HMENU);
DECL_WINELIB_TYPE(HMETAFILE);
DECL_WINELIB_TYPE(HMIDI);
DECL_WINELIB_TYPE(HMIDIIN);
DECL_WINELIB_TYPE(HMIDIOUT);
DECL_WINELIB_TYPE(HMMIO);
DECL_WINELIB_TYPE(HMODULE);
DECL_WINELIB_TYPE(HPALETTE);
DECL_WINELIB_TYPE(HPEN);
DECL_WINELIB_TYPE(HQUEUE);
DECL_WINELIB_TYPE(HRGN);
DECL_WINELIB_TYPE(HRSRC);
DECL_WINELIB_TYPE(HTASK);
DECL_WINELIB_TYPE(HWAVE);
DECL_WINELIB_TYPE(HWAVEIN);
DECL_WINELIB_TYPE(HWAVEOUT);
DECL_WINELIB_TYPE(HWND);
DECL_WINELIB_TYPE(FARPROC);
DECL_WINELIB_TYPE(WNDPROC);
/* Library data types defined as a transition aid for the emulator. */
/* These should _not_ be used in the emulator and will be removed someday. */
#ifndef NO_TRANSITION_TYPES
#ifndef WINELIB
typedef INT16 INT;
typedef UINT16 UINT;
typedef WPARAM16 WPARAM;
typedef HANDLE16 HACCEL;
typedef HANDLE16 HANDLE;
typedef HANDLE16 HBITMAP;
typedef HANDLE16 HBRUSH;
typedef HANDLE16 HCURSOR;
typedef HANDLE16 HDC;
typedef HANDLE16 HDROP;
typedef HANDLE16 HDRVR;
typedef HANDLE16 HDWP;
typedef HANDLE16 HFONT;
typedef HANDLE16 HGDIOBJ;
typedef HANDLE16 HGLOBAL;
typedef HANDLE16 HICON;
typedef HANDLE16 HINSTANCE;
typedef HANDLE16 HMENU;
typedef HANDLE16 HMETAFILE;
typedef HANDLE16 HMIDI;
typedef HANDLE16 HMIDIIN;
typedef HANDLE16 HMIDIOUT;
typedef HANDLE16 HMMIO;
typedef HANDLE16 HMODULE;
typedef HANDLE16 HPALETTE;
typedef HANDLE16 HPEN;
typedef HANDLE16 HQUEUE;
typedef HANDLE16 HRGN;
typedef HANDLE16 HRSRC;
typedef HANDLE16 HTASK;
typedef HANDLE16 HWAVE;
typedef HANDLE16 HWAVEIN;
typedef HANDLE16 HWAVEOUT;
typedef HANDLE16 HWND;
typedef FARPROC16 FARPROC;
typedef WNDPROC16 WNDPROC;
#endif /* WINELIB */
/* Callback function pointers types. */
#ifdef WINELIB
typedef LONG (*DRIVERPROC)(DWORD, HDRVR, UINT, LPARAM, LPARAM);
typedef int (*EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent, int cch,int code);
/*typedef int (*FONTENUMPROC)(const LOGFONT*,const TEXTMETRIC*,DWORD,LPARAM);*/
typedef int (*FONTENUMPROC)(const void*,const void*,DWORD,LPARAM);
typedef int (*GOBJENUMPROC)(LPVOID,LPARAM);
typedef BOOL (*PROPENUMPROC)(HWND,LPCTSTR,HANDLE);
/*typedef int (*MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);*/
typedef int (*MFENUMPROC)(HDC,void*,void*,int,LPARAM);
typedef BOOL (*PROPENUMPROC)(HWND,LPCTSTR,HANDLE);
typedef LRESULT (*WNDENUMPROC)(HWND,LPARAM);
#else
typedef SEGPTR FARPROC;
typedef SEGPTR WNDPROC;
typedef SEGPTR WNDENUMPROC;
typedef SEGPTR DRIVERPROC;
typedef SEGPTR EDITWORDBREAKPROC;
typedef SEGPTR FONTENUMPROC;
typedef SEGPTR GOBJENUMPROC;
typedef SEGPTR PROPENUMPROC;
typedef SEGPTR MFENUMPROC;
typedef SEGPTR PROPENUMPROC;
typedef SEGPTR WNDENUMPROC;
#endif
typedef FARPROC DLGPROC;
typedef FARPROC HOOKPROC;
#define TRUE 1
#endif /* NO_TRANSITION_TYPES */
/* Misc. constants. */
#ifdef FALSE
#undef FALSE
#endif
#define FALSE 0
#define CW_USEDEFAULT ((INT)0x8000)
#define FAR
#define _far
#ifdef TRUE
#undef TRUE
#endif
#define TRUE 1
#ifdef NULL
#undef NULL
#endif
#define NULL 0
/* Define some empty macros for compatibility with Windows code. */
#ifdef WINELIB
#define CALLBACK
#define NEAR
#define _near
#define FAR
#define PASCAL
#define WINAPI
#define _far
#define _near
#define _pascal
#define __export
#define VOID void
#define WINAPI PASCAL
#define CALLBACK PASCAL
#endif /* WINELIB */
#undef NULL
#define NULL 0
/* Macro for structure packing. */
#ifdef WINELIB
#define WINE_PACKED
#else
#define WINE_PACKED __attribute__ ((packed))
#endif
#endif /* WINELIB */
#define LOBYTE(w) ((BYTE)(UINT)(w))
#define HIBYTE(w) ((BYTE)((UINT)(w) >> 8))
/* Macros to split words and longs. */
#define LOBYTE(w) ((BYTE)(WORD)(w))
#define HIBYTE(w) ((BYTE)((WORD)(w) >> 8))
#define LOWORD(l) ((WORD)(DWORD)(l))
#define HIWORD(l) ((WORD)((DWORD)(l) >> 16))
#define SLOWORD(l) ((INT)(LONG)(l))
#define SHIWORD(l) ((INT)((LONG)(l) >> 16))
#define SLOWORD(l) ((INT16)(LONG)(l))
#define SHIWORD(l) ((INT16)((LONG)(l) >> 16))
#define MAKELONG(low, high) ((LONG)(((WORD)(low)) | \
(((DWORD)((WORD)(high))) << 16)))
@ -173,6 +350,8 @@ typedef FARPROC HOOKPROC;
#define SELECTOROF(ptr) (HIWORD(ptr))
#define OFFSETOF(ptr) (LOWORD(ptr))
/* Macros to access unaligned or wrong-endian WORDs and DWORDs. */
#if !defined(WINELIB) || defined(__i386__)
#define PUT_WORD(ptr,w) (*(WORD *)(ptr) = (w))
#define GET_WORD(ptr) (*(WORD *)(ptr))
@ -189,13 +368,16 @@ typedef FARPROC HOOKPROC;
((DWORD)GET_WORD((WORD *)(ptr)+1) << 16)))
#endif /* !WINELIB || __i386__ */
/* MIN and MAX macros */
#ifndef MAX
#ifdef MAX
#undef MAX
#endif
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef MIN
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#ifdef MIN
#undef MIN
#endif
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#endif /* __WINE_WINTYPES_H */

View File

@ -43,7 +43,7 @@ typedef struct
typedef struct
{
UINT16 style;
WNDPROC lpfnWndProc WINE_PACKED;
WNDPROC16 lpfnWndProc WINE_PACKED;
INT16 cbClsExtra;
INT16 cbWndExtra;
HANDLE16 hInstance;
@ -93,5 +93,55 @@ DECL_WINELIB_TYPE_AW(LPWNDCLASS);
DECL_WINELIB_TYPE_AW(WNDCLASSEX);
DECL_WINELIB_TYPE_AW(LPWNDCLASSEX);
#define CS_VREDRAW 0x0001
#define CS_HREDRAW 0x0002
#define CS_KEYCVTWINDOW 0x0004
#define CS_DBLCLKS 0x0008
#define CS_OWNDC 0x0020
#define CS_CLASSDC 0x0040
#define CS_PARENTDC 0x0080
#define CS_NOKEYCVT 0x0100
#define CS_NOCLOSE 0x0200
#define CS_SAVEBITS 0x0800
#define CS_BYTEALIGNCLIENT 0x1000
#define CS_BYTEALIGNWINDOW 0x2000
#define CS_GLOBALCLASS 0x4000
/* Offsets for GetClassLong() and GetClassWord() */
#define GCL_MENUNAME (-8)
#define GCW_HBRBACKGROUND (-10)
#define GCL_HBRBACKGROUND GCW_HBRBACKGROUND
#define GCW_HCURSOR (-12)
#define GCL_HCURSOR GCW_HCURSOR
#define GCW_HICON (-14)
#define GCL_HICON GCW_HICON
#define GCW_HMODULE (-16)
#define GCL_HMODULE GCW_HMODULE
#define GCW_CBWNDEXTRA (-18)
#define GCL_CBWNDEXTRA GCW_CBWNDEXTRA
#define GCW_CBCLSEXTRA (-20)
#define GCL_CBCLSEXTRA GCW_CBCLSEXTRA
#define GCL_WNDPROC (-24)
#define GCW_STYLE (-26)
#define GCL_STYLE GCW_STYLE
#define GCW_ATOM (-32)
#define GCL_HICONSM (-34)
ATOM RegisterClass16(const WNDCLASS16*);
ATOM RegisterClass32A(const WNDCLASS32A *);
ATOM RegisterClass32W(const WNDCLASS32W *);
#define RegisterClass WINELIB_NAME_AW(RegisterClass)
ATOM RegisterClassEx32A(const WNDCLASSEX32A *);
ATOM RegisterClassEx32W(const WNDCLASSEX32W *);
#define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx)
BOOL UnregisterClass16(SEGPTR,HINSTANCE16);
BOOL UnregisterClass32A(LPCSTR,HINSTANCE32);
BOOL UnregisterClass32W(LPCWSTR,HINSTANCE32);
#define UnregisterClass WINELIB_NAME_AW(UnregisterClass)
BOOL GetClassInfo(HANDLE,SEGPTR,WNDCLASS16 *);
LONG GetClassLong(HWND,short);
int GetClassName(HWND,LPSTR,short);
LONG SetClassLong(HWND,short,LONG);
#endif /* __WINE_WINUSER_H */

View File

@ -19,8 +19,6 @@
/* Controls the blocks per handle table */
#define MAXBLOCKS 1024
static char Copyright [] = "Copyright (C) 1994 Miguel de Icaza";
typedef struct handle_table {
struct handle_table *next;
void *blocks [MAXBLOCKS];
@ -166,12 +164,12 @@ BOOL GlobalUnlock (HANDLE hMem)
return LocalUnlock (hMem);
}
WORD GlobalFlags (HANDLE hMem)
WORD GlobalFlags16(HANDLE hMem)
{
return LocalFlags (hMem);
}
DWORD GlobalSize (HANDLE hMem)
DWORD GlobalSize16(HANDLE hMem)
{
return LocalSize (hMem);
}
@ -184,7 +182,7 @@ DWORD GlobalCompact(DWORD desired)
return 0x01000000; /* Should check the available core. */
}
HANDLE GlobalReAlloc(HANDLE hMem, DWORD new_size, WORD flags)
HANDLE GlobalReAlloc16(HANDLE hMem, DWORD new_size, WORD flags)
{
if (!(flags & GMEM_MODIFY))
return LocalReAlloc (hMem, new_size, flags);
@ -208,7 +206,9 @@ DWORD int GlobalHandle(WORD selector)
#endif
#else /* WINELIB16 */
#endif /* WINELIB16 */
#if 0
typedef struct { DWORD Size; DWORD Padding[3]; } HeapData;
@ -319,17 +319,17 @@ BOOL GlobalUnlock (HANDLE hMem)
return 0;
}
WORD GlobalFlags (HANDLE hMem)
WORD GlobalFlags32(HANDLE hMem)
{
return LocalFlags (hMem);
}
DWORD GlobalSize (HANDLE hMem)
DWORD GlobalSize32(HANDLE hMem)
{
return HEAP_Size (hMem);
}
HANDLE GlobalReAlloc(HANDLE hMem, DWORD new_size, WORD flags)
HANDLE GlobalReAlloc32(HANDLE hMem, DWORD new_size, WORD flags)
{
if (!(flags & GMEM_MODIFY))
return HEAP_ReAlloc (hMem, new_size, flags);

View File

@ -44,12 +44,13 @@ int CallTo32_LargeStack( int (*func)(), int nbargs, ...)
WORD CallTo16_word_ ( FARPROC func, WORD arg ) { return func(arg); }
void GlobalFreeAll(HANDLE owner)
#if 0
void GlobalFreeAll(HGLOBAL16 owner)
{
WINELIB_UNIMP("GlobalFreeAll()");
}
SEGPTR WIN16_GlobalLock(HGLOBAL h)
SEGPTR WIN16_GlobalLock16(HGLOBAL16 h)
{ return (SEGPTR)h; }
HLOCAL LOCAL_Free(WORD ds, HLOCAL handle)
{ return LocalFree(handle); }
@ -128,6 +129,7 @@ HGLOBAL GlobalHandle(LPCVOID a)
fprintf(stderr,"JBP: GlobalHandle() ignored.\n");
return 0;
}
#endif
extern LRESULT ACTIVATEAPP_callback(HWND,UINT,WPARAM,LPARAM);
extern LRESULT AboutDlgProc(HWND,UINT,WPARAM,LPARAM);

View File

@ -8,7 +8,7 @@
extern int MAIN_Init(void);
extern BOOL WIDGETS_Init(void);
extern BOOL WIN_CreateDesktopWindow(void);
extern int PASCAL WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
extern int WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
extern void TASK_Reschedule(void);
extern int USER_InitApp(HINSTANCE);

View File

@ -42,6 +42,8 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
HWND wnd;
MSG msg;
WNDCLASS class;
char className[] = "class"; /* To make sure className >= 0x10000 */
char winName[] = "Test app";
if (!prev){
class.style = CS_HREDRAW | CS_VREDRAW;
@ -53,12 +55,12 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
class.hCursor = LoadCursor (0, IDC_ARROW);
class.hbrBackground = GetStockObject (WHITE_BRUSH);
class.lpszMenuName = NULL;
class.lpszClassName = (SEGPTR)"class";
class.lpszClassName = (SEGPTR)className;
}
if (!RegisterClass (&class))
return FALSE;
wnd = CreateWindow ("class", "Test app", WS_OVERLAPPEDWINDOW,
wnd = CreateWindow (className, winName, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0,
0, inst, 0);
ShowWindow (wnd, show);

View File

@ -69,6 +69,8 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
HWND wnd;
MSG msg;
WNDCLASS class;
char className[] = "class"; /* To make sure className >= 0x10000 */
char winName[] = "Test app";
if (!prev){
class.style = CS_HREDRAW | CS_VREDRAW;
@ -80,12 +82,12 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
class.hCursor = LoadCursor (0, IDC_ARROW);
class.hbrBackground = GetStockObject (WHITE_BRUSH);
class.lpszMenuName = 0;
class.lpszClassName = (SEGPTR)"class";
class.lpszClassName = (SEGPTR)className;
}
if (!RegisterClass (&class))
return FALSE;
wnd = CreateWindow ("class", "Test app", WS_OVERLAPPEDWINDOW,
wnd = CreateWindow (className, winName, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0,
LoadMenu(inst,"MAIN"), inst, 0);
ShowWindow (wnd, show);

View File

@ -78,6 +78,9 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
HWND wnd,wnd2;
MSG msg;
WNDCLASS class;
char className[] = "class"; /* To make sure className >= 0x10000 */
char class2Name[] = "class2";
char winName[] = "Test app";
if (!prev){
class.style = CS_HREDRAW | CS_VREDRAW;
@ -89,23 +92,23 @@ int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
class.hCursor = LoadCursor (0, IDC_ARROW);
class.hbrBackground = GetStockObject (WHITE_BRUSH);
class.lpszMenuName = NULL;
class.lpszClassName = (SEGPTR)"class";
class.lpszClassName = (SEGPTR)className;
if (!RegisterClass (&class))
return FALSE;
}
wnd = CreateWindow ("class", "Test app", WS_OVERLAPPEDWINDOW,
wnd = CreateWindow (className, winName, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0,
0, inst, 0);
if (!prev){
class.lpfnWndProc = WndProc2;
class.lpszClassName = (SEGPTR)"class2";
class.lpszClassName = class2Name;
if (!RegisterClass (&class))
return FALSE;
}
wnd2= CreateWindow ("class2","Test app", WS_BORDER | WS_CHILD,
wnd2= CreateWindow (class2Name,"Test app", WS_BORDER | WS_CHILD,
50, 50, 350, 50, wnd, 0, inst, 0);
ShowWindow (wnd, show);

View File

@ -9,7 +9,7 @@ long FAR PASCAL ChildProc(HWND, WORD, WPARAM, LPARAM);
int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
LPSTR lpszCmdParam, int nCmdShow)
{
static char szAppName[] = "ClassLook" ;
char szAppName[] = "ClassLook" ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
@ -32,7 +32,7 @@ int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
}
hwnd = CreateWindow (szAppName, /* window class name */
"ClassLook", /* window caption */
szAppName, /* window caption */
WS_OVERLAPPEDWINDOW, /* window style */
CW_USEDEFAULT, /* initial x position */
CW_USEDEFAULT, /* initial y position */
@ -60,6 +60,7 @@ long FAR PASCAL WndProc (HWND hwnd, WORD message, WPARAM wParam, LPARAM lParam)
PAINTSTRUCT ps ;
RECT rect ;
WNDCLASS wndclass ;
char clsName[] = "SecondClass";
static HWND hChild;
@ -75,11 +76,11 @@ long FAR PASCAL WndProc (HWND hwnd, WORD message, WPARAM wParam, LPARAM lParam)
wndclass.hCursor = LoadCursor (NULL, IDC_CROSS) ;
wndclass.hbrBackground = GetStockObject (LTGRAY_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = "SecondClass" ;
wndclass.lpszClassName = clsName;
RegisterClass (&wndclass);
hChild = CreateWindow("SecondClass","Child Window",
hChild = CreateWindow(clsName,"Child Window",
WS_CHILD | WS_VISIBLE | WS_BORDER,
10, 10, 580, 380, hwnd, NULL, ghInstance, NULL);
ShowWindow(hChild, SW_SHOW);
@ -106,7 +107,7 @@ long FAR PASCAL ChildProc(HWND hwnd, WORD message, WPARAM wParam, LPARAM lParam)
HDC hDC;
PAINTSTRUCT ps;
WNDCLASS wndClass;
char* classes[]={"EDIT","BUTTON","LISTBOX","STATIC","SCROLLBAR","COMBOBOX","COMBOLBOX", NULL};
char *classes[]={"EDIT","BUTTON","LISTBOX","STATIC","SCROLLBAR","COMBOBOX","COMBOLBOX", NULL};
char** curr;
char buf[256];
RECT rect ;

View File

@ -15,8 +15,8 @@
#include <string.h>
#include "windows.h"
char* AppName = "Rolex";
char* WindowName = "Rolex";
char AppName[] = "Rolex";
char WindowName[] = "Rolex";
int WindowWidth = 100;
int WindowHeight = 121;
COLORREF FaceColor = RGB(192,192,192);

View File

@ -96,13 +96,16 @@ extern const DLL_DESCRIPTOR W32SYS_Descriptor;
extern const DLL_DESCRIPTOR ADVAPI32_Descriptor;
extern const DLL_DESCRIPTOR COMCTL32_Descriptor;
extern const DLL_DESCRIPTOR COMDLG32_Descriptor;
extern const DLL_DESCRIPTOR CRTDLL_Descriptor;
extern const DLL_DESCRIPTOR OLE32_Descriptor;
extern const DLL_DESCRIPTOR GDI32_Descriptor;
extern const DLL_DESCRIPTOR KERNEL32_Descriptor;
extern const DLL_DESCRIPTOR NTDLL_Descriptor;
extern const DLL_DESCRIPTOR SHELL32_Descriptor;
extern const DLL_DESCRIPTOR USER32_Descriptor;
extern const DLL_DESCRIPTOR WPROCS32_Descriptor;
extern const DLL_DESCRIPTOR WINSPOOL_Descriptor;
extern const DLL_DESCRIPTOR WSOCK32_Descriptor;
/* Table of all built-in DLLs */
@ -141,13 +144,16 @@ static BUILTIN_DLL BuiltinDLLs[] =
{ &ADVAPI32_Descriptor, 0 },
{ &COMCTL32_Descriptor, 0 },
{ &COMDLG32_Descriptor, 0 },
{ &CRTDLL_Descriptor, 0 },
{ &OLE32_Descriptor, 0 },
{ &GDI32_Descriptor, 0 },
{ &KERNEL32_Descriptor, DLL_FLAG_ALWAYS_USED },
{ &NTDLL_Descriptor, 0 },
{ &SHELL32_Descriptor, 0 },
{ &USER32_Descriptor, 0 },
{ &WPROCS32_Descriptor, DLL_FLAG_ALWAYS_USED },
{ &WINSPOOL_Descriptor, 0 },
{ &WSOCK32_Descriptor, 0 },
/* Last entry */
{ NULL, 0 }
};
@ -214,7 +220,7 @@ HMODULE BUILTIN_LoadModule( LPCSTR name, BOOL force )
dprintf_module( stddeb, "Built-in %s: hmodule=%04x\n",
table->descr->name, hModule );
pModule = (NE_MODULE *)GlobalLock( hModule );
pModule = (NE_MODULE *)GlobalLock16( hModule );
pModule->self = hModule;
if (pModule->flags & NE_FFLAGS_WIN32)
@ -243,7 +249,7 @@ HMODULE BUILTIN_LoadModule( LPCSTR name, BOOL force )
pSegTable->selector = GLOBAL_Alloc( GMEM_FIXED, minsize,
hModule, FALSE, FALSE, FALSE );
if (!pSegTable->selector) return 0;
if (pSegTable->minsize) memcpy( GlobalLock( pSegTable->selector ),
if (pSegTable->minsize) memcpy( GlobalLock16( pSegTable->selector ),
descr->data_start, pSegTable->minsize);
if (pModule->heap_size)
LocalInit( pSegTable->selector, pSegTable->minsize, minsize );
@ -266,7 +272,7 @@ NE_MODULE *BUILTIN_GetEntryPoint( WORD cs, WORD ip, WORD *pOrd, char **ppName )
register BYTE *p;
NE_MODULE *pModule;
if (!(pModule = MODULE_GetPtr( FarGetOwner( GlobalHandle(cs) ))))
if (!(pModule = MODULE_GetPtr( FarGetOwner( GlobalHandle16(cs) ))))
return NULL;
/* Search for the ordinal */

View File

@ -34,6 +34,7 @@ static char Copyright[] = "Copyright Robert J. Amstadt, 1993";
#include "options.h"
#include "spy.h"
#include "task.h"
#include "user.h"
#include "dce.h"
#include "pe_image.h"
#include "stddebug.h"
@ -61,7 +62,13 @@ int MAIN_Init(void)
/* Initialize message spying */
if (!SPY_Init()) return 0;
#ifndef WINELIB
#ifdef WINELIB
/* Create USER and GDI heap */
USER_HeapSel = GlobalAlloc16( GMEM_FIXED, 0x10000 );
LocalInit( USER_HeapSel, 0, 0xffff );
GDI_HeapSel = GlobalAlloc16( GMEM_FIXED, GDI_HEAP_SIZE );
LocalInit( GDI_HeapSel, 0, GDI_HEAP_SIZE-1 );
#else
/* Initialize relay code */
if (!RELAY_Init()) return 0;

View File

@ -43,7 +43,7 @@ static HANDLE hInitialStack32 = 0;
*/
NE_MODULE *MODULE_GetPtr( HMODULE hModule )
{
NE_MODULE *pModule = (NE_MODULE *)GlobalLock( hModule );
NE_MODULE *pModule = (NE_MODULE *)GlobalLock16( hModule );
if (!pModule || (pModule->magic != NE_SIGNATURE) ||
(pModule->self != hModule)) return NULL;
return pModule;
@ -177,7 +177,7 @@ void MODULE_DumpModule( HMODULE hmodule )
printf( "\nNon-resident names table:\n" );
if (pModule->nrname_handle)
{
pstr = (char *)GlobalLock( pModule->nrname_handle );
pstr = (char *)GlobalLock16( pModule->nrname_handle );
while (*pstr)
{
printf( "%*.*s: %d\n", *pstr, *pstr, pstr + 1,
@ -275,11 +275,11 @@ static WORD MODULE_Ne2MemFlags(WORD flags)
DWORD MODULE_AllocateSegment(WORD wFlags, WORD wSize, WORD wElem)
{
WORD size = wSize << wElem;
HANDLE hMem = GlobalAlloc( MODULE_Ne2MemFlags(wFlags), size);
#ifdef WINELIB32
return (DWORD)GlobalLock(hMem);
HANDLE hMem = GlobalAlloc16( MODULE_Ne2MemFlags(wFlags), size);
#ifdef WINELIB
return (DWORD)GlobalLock16(hMem);
#else
WORD selector = HIWORD(GlobalLock(hMem));
WORD selector = HIWORD(WIN16_GlobalLock16(hMem));
return MAKELONG(hMem, selector);
#endif
}
@ -421,10 +421,10 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
/* entry table length */
ne_header.entry_tab_length;
hModule = GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, size );
hModule = GlobalAlloc16( GMEM_MOVEABLE | GMEM_ZEROINIT, size );
if (!hModule) return (HMODULE)11; /* invalid exe */
FarSetOwner( hModule, hModule );
pModule = (NE_MODULE *)GlobalLock( hModule );
pModule = (NE_MODULE *)GlobalLock16( hModule );
memcpy( pModule, &ne_header, sizeof(ne_header) );
pModule->count = 0;
pModule->pe_module = NULL;
@ -485,7 +485,7 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
}
else
{
GlobalFree( hModule );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
@ -508,7 +508,7 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
ne_header.moduleref_tab_offset - ne_header.rname_tab_offset,
pData ))
{
GlobalFree( hModule );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
pData += ne_header.moduleref_tab_offset - ne_header.rname_tab_offset;
@ -532,7 +532,7 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
ne_header.entry_tab_offset - ne_header.iname_tab_offset,
pData ))
{
GlobalFree( hModule );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
pData += ne_header.entry_tab_offset - ne_header.iname_tab_offset;
@ -544,7 +544,7 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
ne_header.entry_tab_length,
pData ))
{
GlobalFree( hModule );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
pData += ne_header.entry_tab_length;
@ -557,16 +557,16 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
hModule, FALSE, FALSE, FALSE );
if (!pModule->nrname_handle)
{
GlobalFree( hModule );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
buffer = GlobalLock( pModule->nrname_handle );
buffer = GlobalLock16( pModule->nrname_handle );
_llseek( hFile, ne_header.nrname_tab_offset, SEEK_SET );
if (FILE_Read( hFile, buffer, ne_header.nrname_tab_length )
!= ne_header.nrname_tab_length)
{
GlobalFree( pModule->nrname_handle );
GlobalFree( hModule );
GlobalFree16( pModule->nrname_handle );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
}
@ -581,8 +581,8 @@ static HMODULE MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
hModule, FALSE, FALSE, FALSE );
if (!pModule->dlls_to_init)
{
if (pModule->nrname_handle) GlobalFree( pModule->nrname_handle );
GlobalFree( hModule );
if (pModule->nrname_handle) GlobalFree16( pModule->nrname_handle );
GlobalFree16( hModule );
return (HMODULE)11; /* invalid exe */
}
}
@ -640,7 +640,7 @@ WORD MODULE_GetOrdinal( HMODULE hModule, const char *name )
/* Now search the non-resident names table */
if (!pModule->nrname_handle) return 0; /* No non-resident table */
cpnt = (char *)GlobalLock( pModule->nrname_handle );
cpnt = (char *)GlobalLock16( pModule->nrname_handle );
/* Skip the first entry (module description string) */
cpnt += *cpnt + 1 + sizeof(WORD);
@ -704,7 +704,7 @@ SEGPTR MODULE_GetEntryPoint( HMODULE hModule, WORD ordinal )
if (sel == 0xfe) sel = 0xffff; /* constant entry */
else sel = (WORD)(DWORD)NE_SEG_TABLE(pModule)[sel-1].selector;
return (SEGPTR)MAKELONG( offset, sel );
return PTR_SEG_OFF_TO_SEGPTR( sel, offset );
}
@ -893,7 +893,7 @@ static void MODULE_FreeModule( HMODULE hModule )
pSegment = NE_SEG_TABLE( pModule );
for (i = 1; i <= pModule->seg_count; i++, pSegment++)
{
GlobalFree( pSegment->selector );
GlobalFree16( pSegment->selector );
}
/* Free the referenced modules */
@ -906,9 +906,9 @@ static void MODULE_FreeModule( HMODULE hModule )
/* Free the module storage */
if (pModule->nrname_handle) GlobalFree( pModule->nrname_handle );
if (pModule->dlls_to_init) GlobalFree( pModule->dlls_to_init );
GlobalFree( hModule );
if (pModule->nrname_handle) GlobalFree16( pModule->nrname_handle );
if (pModule->dlls_to_init) GlobalFree16( pModule->dlls_to_init );
GlobalFree16( hModule );
/* Remove module from cache */
@ -978,7 +978,7 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
/* Load the referenced DLLs */
pModRef = (WORD *)((char *)pModule + pModule->modref_table);
pDLLs = (WORD *)GlobalLock( pModule->dlls_to_init );
pDLLs = (WORD *)GlobalLock16( pModule->dlls_to_init );
for (i = 0; i < pModule->modref_count; i++, pModRef++)
{
char buffer[256];
@ -1059,8 +1059,8 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
/* Create the 32-bit stack frame */
*(DWORD *)GlobalLock(hInitialStack32) = 0xDEADBEEF;
stack32Top = (char*)GlobalLock(hInitialStack32) +
*(DWORD *)GlobalLock16(hInitialStack32) = 0xDEADBEEF;
stack32Top = (char*)GlobalLock16(hInitialStack32) +
0x10000;
frame32 = (STACK32FRAME *)stack32Top - 1;
frame32->saved_esp = (DWORD)stack32Top;
@ -1073,7 +1073,7 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
frame32->retaddr = 0;
frame32->codeselector = WINE_CODE_SELECTOR;
/* pTask->esp = (DWORD)frame32; */
IF1632_Stack32_base = WIN16_GlobalLock(hInitialStack32);
IF1632_Stack32_base = WIN16_GlobalLock16(hInitialStack32);
}
/* FIXME: we probably need a DOS handle here */
@ -1086,8 +1086,7 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
IF1632_Saved16_sp = oldsp;
for (i = 2; i <= pModule->seg_count; i++) NE_LoadSegment( hModule, i );
if (hInitialStack32){
GlobalUnlock (hInitialStack32);
GlobalFree (hInitialStack32);
GlobalFree16(hInitialStack32);
IF1632_Stack32_base = hInitialStack32 = 0;
}
}
@ -1116,8 +1115,8 @@ HINSTANCE LoadModule( LPCSTR name, LPVOID paramBlock )
pModule->count++;
}
#else
hModule = GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(NE_MODULE) );
pModule = (NE_MODULE *)GlobalLock( hModule );
hModule = GlobalAlloc16( GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(NE_MODULE));
pModule = (NE_MODULE *)GlobalLock16( hModule );
pModule->count = 1;
pModule->magic = NE_SIGNATURE;
pModule->self = hModule;
@ -1249,24 +1248,24 @@ void FreeLibrary( HANDLE handle )
HANDLE WinExec( LPSTR lpCmdLine, WORD nCmdShow )
{
LOADPARAMS params;
HLOCAL cmdShowHandle, cmdLineHandle;
HGLOBAL16 cmdShowHandle, cmdLineHandle;
HANDLE handle;
WORD *cmdShowPtr;
char *p, *cmdline, filename[256];
static int use_load_module = 1;
if (!(cmdShowHandle = GlobalAlloc( 0, 2 * sizeof(WORD) ))) return 0;
if (!(cmdLineHandle = GlobalAlloc( 0, 256 ))) return 0;
if (!(cmdShowHandle = GlobalAlloc16( 0, 2 * sizeof(WORD) ))) return 0;
if (!(cmdLineHandle = GlobalAlloc16( 0, 256 ))) return 0;
/* Store nCmdShow */
cmdShowPtr = (WORD *)GlobalLock( cmdShowHandle );
cmdShowPtr = (WORD *)GlobalLock16( cmdShowHandle );
cmdShowPtr[0] = 2;
cmdShowPtr[1] = nCmdShow;
/* Build the filename and command-line */
cmdline = (char *)GlobalLock( cmdLineHandle );
cmdline = (char *)GlobalLock16( cmdLineHandle );
lstrcpyn( filename, lpCmdLine, sizeof(filename) - 4 /* for extension */ );
for (p = filename; *p && (*p != ' ') && (*p != '\t'); p++);
if (*p) lstrcpyn( cmdline, p + 1, 128 );
@ -1284,8 +1283,8 @@ HANDLE WinExec( LPSTR lpCmdLine, WORD nCmdShow )
#else
params.hEnvironment = (HANDLE)SELECTOROF( GetDOSEnvironment() );
#endif /* WINELIB */
params.cmdLine = (SEGPTR)WIN16_GlobalLock( cmdLineHandle );
params.showCmd = (SEGPTR)WIN16_GlobalLock( cmdShowHandle );
params.cmdLine = (SEGPTR)WIN16_GlobalLock16( cmdLineHandle );
params.showCmd = (SEGPTR)WIN16_GlobalLock16( cmdShowHandle );
params.reserved = 0;
handle = LoadModule( filename, &params );
if (handle == 2) /* file not found */
@ -1360,8 +1359,8 @@ HANDLE WinExec( LPSTR lpCmdLine, WORD nCmdShow )
}
}
GlobalFree( cmdShowHandle );
GlobalFree( cmdLineHandle );
GlobalFree16( cmdShowHandle );
GlobalFree16( cmdLineHandle );
#if 0
if (handle < (HANDLE)32) /* Error? */

View File

@ -60,7 +60,7 @@ BOOL NE_LoadSegment( HMODULE hModule, WORD segnum )
segnum, pSeg->selector );
lseek( fd, pSeg->filepos << pModule->alignment, SEEK_SET );
size = pSeg->size ? pSeg->size : 0x10000;
mem = GlobalLock(pSeg->selector);
mem = GlobalLock16(pSeg->selector);
if (pModule->flags & NE_FFLAGS_SELFLOAD && segnum > 1) {
#ifndef WINELIB
/* Implement self loading segments */
@ -231,7 +231,7 @@ BOOL NE_LoadSegment( HMODULE hModule, WORD segnum )
}
else
{
address = MAKELONG( rep->target2, pSegTable[rep->target1-1].selector );
address = PTR_SEG_OFF_TO_SEGPTR( pSegTable[rep->target1-1].selector, rep->target2 );
}
dprintf_fixup(stddeb,"%d: %04x:%04x\n",
@ -517,12 +517,12 @@ void NE_InitializeDLLs( HMODULE hModule )
{
HANDLE to_init = pModule->dlls_to_init;
pModule->dlls_to_init = 0;
for (pDLL = (HMODULE *)GlobalLock( to_init ); *pDLL; pDLL++)
for (pDLL = (HMODULE *)GlobalLock16( to_init ); *pDLL; pDLL++)
{
NE_InitializeDLLs( *pDLL );
NE_InitDLL( *pDLL );
}
GlobalFree( to_init );
GlobalFree16( to_init );
}
NE_InitDLL( hModule );
}

View File

@ -298,7 +298,7 @@ HGLOBAL NE_LoadResource( HMODULE hModule, HRSRC hRsrc )
pNameInfo->handle = NE_AllocResource( hModule, hRsrc, 0 );
pNameInfo->usage = 1;
lseek( fd, (int)pNameInfo->offset << sizeShift, SEEK_SET );
read( fd, GlobalLock( pNameInfo->handle ),
read( fd, GlobalLock16( pNameInfo->handle ),
(int)pNameInfo->length << sizeShift );
return pNameInfo->handle;
}
@ -311,7 +311,7 @@ SEGPTR NE_LockResource( HMODULE hModule, HGLOBAL handle )
{
/* May need to reload the resource if discarded */
return (SEGPTR)WIN16_GlobalLock( handle );
return (SEGPTR)WIN16_GlobalLock16( handle );
}
@ -337,7 +337,7 @@ BOOL NE_FreeResource( HMODULE hModule, HGLOBAL handle )
if (pNameInfo->usage > 0) pNameInfo->usage--;
if (pNameInfo->usage == 0)
{
GlobalFree( pNameInfo->handle );
GlobalFree16( pNameInfo->handle );
pNameInfo->handle = 0;
}
return TRUE;

View File

@ -34,8 +34,6 @@
#include "debug.h"
#include "xmalloc.h"
static HANDLE32 ProcessHeap; /* FIXME: should be in process database */
void my_wcstombs(char * result, u_short * source, int len)
{
while(len--) {
@ -164,10 +162,10 @@ void fixup_imports(struct pe_data *pe, HMODULE hModule)
i++;
/* Now, allocate memory for dlls_to_init */
ne_mod = GlobalLock(hModule);
ne_mod = GlobalLock16(hModule);
ne_mod->dlls_to_init = GLOBAL_Alloc(GMEM_ZEROINIT,(i+1) * sizeof(HMODULE),
hModule, FALSE, FALSE, FALSE );
mod_ptr = GlobalLock(ne_mod->dlls_to_init);
mod_ptr = GlobalLock16(ne_mod->dlls_to_init);
/* load the modules and put their handles into the list */
for(i=0,pe_imp = pe->pe_import;pe_imp->ModuleName;pe_imp++)
{
@ -207,16 +205,17 @@ void fixup_imports(struct pe_data *pe, HMODULE hModule)
dprintf_win32(stddeb,"--- Ordinal %s,%d\n", Module, ordinal);
*thunk_list = WIN32_GetProcAddress(MODULE_FindModule(Module),
ordinal);
if(!*thunk_list)
{
fprintf(stderr,"No implementation for %s.%d\n",Module,
ordinal);
fixup_failed=1;
}
}else{ /* import by name */
dprintf_win32(stddeb, "--- %s %s.%d\n", pe_name->Name, Module, pe_name->Hint);
#ifndef WINELIB /* FIXME: JBP: Should this happen in libwine.a? */
*thunk_list = WIN32_GetProcAddress(MODULE_FindModule(Module),
pe_name->Name);
#else
fprintf(stderr,"JBP: Call to RELAY32_GetEntryPoint being ignored.\n");
#endif
}
if(!*thunk_list)
{
fprintf(stderr,"No implementation for %s.%d(%s)\n",Module,
@ -224,6 +223,11 @@ void fixup_imports(struct pe_data *pe, HMODULE hModule)
fixup_failed=1;
}
#else
fprintf(stderr,"JBP: Call to RELAY32_GetEntryPoint being ignored.\n");
#endif
}
import_list++;
thunk_list++;
}
@ -552,12 +556,12 @@ HINSTANCE PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
/* several empty tables */
8;
hModule = GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, size );
hModule = GlobalAlloc16( GMEM_MOVEABLE | GMEM_ZEROINIT, size );
if (!hModule) return (HINSTANCE)11; /* invalid exe */
FarSetOwner( hModule, hModule );
pModule = (NE_MODULE*)GlobalLock(hModule);
pModule = (NE_MODULE*)GlobalLock16(hModule);
/* Set all used entries */
pModule->magic=NE_SIGNATURE;
@ -623,7 +627,6 @@ HINSTANCE PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
if ((pe->pe_header->coff.Characteristics & IMAGE_FILE_DLL)) {
/* PE_InitDLL(hModule); */
} else {
ProcessHeap = HeapCreate( 0, 0x10000, 0 );
TASK_CreateTask(hModule,hInstance,0,
params->hEnvironment,(LPSTR)PTR_SEG_TO_LIN(params->cmdLine),
*((WORD*)PTR_SEG_TO_LIN(params->showCmd)+1));
@ -632,11 +635,6 @@ HINSTANCE PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
return hInstance;
}
HANDLE32 GetProcessHeap(void)
{
return ProcessHeap;
}
int USER_InitApp(HINSTANCE hInstance);
void PE_InitTEB(int hTEB);
@ -651,7 +649,7 @@ void PE_Win32CallToStart(struct sigcontext_struct context)
hModule = GetExePtr( GetCurrentTask() );
pModule = MODULE_GetPtr( hModule );
USER_InitApp( hModule );
fs=(int)GlobalAlloc(GHND,0x10000);
fs=(int)GlobalAlloc16(GHND,0x10000);
PE_InitTEB(fs);
__asm__ __volatile__("movw %w0,%%fs"::"r" (fs));
CallTaskStart32( (FARPROC)(pModule->pe_module->load_addr +
@ -706,9 +704,9 @@ void PE_InitTEB(int hTEB)
TDB *pTask;
TEB *pTEB;
pTask = (TDB *)(GlobalLock(GetCurrentTask() & 0xffff));
pTask = (TDB *)(GlobalLock16(GetCurrentTask() & 0xffff));
pTEB = (TEB *)(PTR_SEG_OFF_TO_LIN(hTEB, 0));
pTEB->stack = (void *)(GlobalLock(pTask->hStack32));
pTEB->stack = (void *)(GlobalLock16(pTask->hStack32));
pTEB->Except = (void *)(-1);
pTEB->TEBDSAlias = pTEB;
pTEB->taskid = getpid();
@ -723,12 +721,12 @@ void PE_InitializeDLLs(HMODULE hModule)
{
HANDLE to_init = pModule->dlls_to_init;
pModule->dlls_to_init = 0;
for (pDLL = (HMODULE *)GlobalLock( to_init ); *pDLL; pDLL++)
for (pDLL = (HMODULE *)GlobalLock16( to_init ); *pDLL; pDLL++)
{
PE_InitializeDLLs( *pDLL );
PE_InitDLL( *pDLL );
}
GlobalFree( to_init );
GlobalFree16( to_init );
}
PE_InitDLL( hModule );
}

View File

@ -279,9 +279,9 @@ HANDLE LoadAccelerators(HANDLE instance, SEGPTR lpTableName)
lp = (BYTE *)LockResource(rsc_mem);
n = SizeofResource( instance, hRsrc ) / sizeof(ACCELENTRY);
hAccel = GlobalAlloc(GMEM_MOVEABLE,
hAccel = GlobalAlloc16(GMEM_MOVEABLE,
sizeof(ACCELHEADER) + (n + 1)*sizeof(ACCELENTRY));
lpAccelTbl = (LPACCELHEADER)GlobalLock(hAccel);
lpAccelTbl = (LPACCELHEADER)GlobalLock16(hAccel);
lpAccelTbl->wCount = 0;
for (i = 0; i < n; i++) {
lpAccelTbl->tbl[i].type = *(lp++);
@ -296,7 +296,7 @@ HANDLE LoadAccelerators(HANDLE instance, SEGPTR lpTableName)
lpAccelTbl->tbl[i].type);
lpAccelTbl->wCount++;
}
GlobalUnlock(hAccel);
GlobalUnlock16(hAccel);
FreeResource( rsc_mem );
return hAccel;
}
@ -318,7 +318,7 @@ int TranslateAccelerator(HWND hWnd, HANDLE hAccel, LPMSG msg)
dprintf_accel(stddeb, "TranslateAccelerators hAccel=%04x !\n", hAccel);
lpAccelTbl = (LPACCELHEADER)GlobalLock(hAccel);
lpAccelTbl = (LPACCELHEADER)GlobalLock16(hAccel);
for (i = 0; i < lpAccelTbl->wCount; i++) {
if(lpAccelTbl->tbl[i].type & VIRTKEY_ACCEL) {
if(msg->wParam == lpAccelTbl->tbl[i].wEvent &&
@ -332,7 +332,7 @@ int TranslateAccelerator(HWND hWnd, HANDLE hAccel, LPMSG msg)
(SHIFT_ACCEL | CONTROL_ACCEL | ALT_ACCEL))) {
SendMessage(hWnd, WM_COMMAND, lpAccelTbl->tbl[i].wIDval,
0x00010000L);
GlobalUnlock(hAccel);
GlobalUnlock16(hAccel);
return 1;
}
if (msg->message == WM_KEYUP || msg->message == WM_SYSKEYUP)
@ -343,12 +343,12 @@ int TranslateAccelerator(HWND hWnd, HANDLE hAccel, LPMSG msg)
if (msg->wParam == lpAccelTbl->tbl[i].wEvent &&
msg->message == WM_CHAR) {
SendMessage(hWnd, WM_COMMAND, lpAccelTbl->tbl[i].wIDval, 0x00010000L);
GlobalUnlock(hAccel);
GlobalUnlock16(hAccel);
return 1;
}
}
}
GlobalUnlock(hAccel);
GlobalUnlock16(hAccel);
return 0;
}

View File

@ -74,7 +74,7 @@ BOOL TASK_Init(void)
*/
HTASK TASK_GetNextTask( HTASK hTask )
{
TDB* pTask = (TDB*)GlobalLock(hTask);
TDB* pTask = (TDB*)GlobalLock16(hTask);
if (pTask->hNext) return pTask->hNext;
return (hFirstTask != hTask) ? hFirstTask : 0;
@ -141,8 +141,8 @@ static HANDLE TASK_CreateDOSEnvironment(void)
/* Now allocate the environment */
if (!(handle = GlobalAlloc( GMEM_FIXED, size ))) return 0;
p = (char *)GlobalLock( handle );
if (!(handle = GlobalAlloc16( GMEM_FIXED, size ))) return 0;
p = (char *)GlobalLock16( handle );
/* And fill it with the Unix environment */
@ -181,7 +181,7 @@ static HANDLE TASK_CreateDOSEnvironment(void)
/* Display it */
p = (char *) GlobalLock( handle );
p = (char *) GlobalLock16( handle );
dprintf_task(stddeb, "Master DOS environment at %p\n", p);
for (; *p; p += strlen(p) + 1) dprintf_task(stddeb, " %s\n", p);
dprintf_task( stddeb, "Progname: %s\n", p+3 );
@ -198,11 +198,11 @@ static void TASK_LinkTask( HTASK hTask )
HTASK *prevTask;
TDB *pTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return;
prevTask = &hFirstTask;
while (*prevTask)
{
TDB *prevTaskPtr = (TDB *)GlobalLock( *prevTask );
TDB *prevTaskPtr = (TDB *)GlobalLock16( *prevTask );
if (prevTaskPtr->priority >= pTask->priority) break;
prevTask = &prevTaskPtr->hNext;
}
@ -223,12 +223,12 @@ static void TASK_UnlinkTask( HTASK hTask )
prevTask = &hFirstTask;
while (*prevTask && (*prevTask != hTask))
{
pTask = (TDB *)GlobalLock( *prevTask );
pTask = (TDB *)GlobalLock16( *prevTask );
prevTask = &pTask->hNext;
}
if (*prevTask)
{
pTask = (TDB *)GlobalLock( *prevTask );
pTask = (TDB *)GlobalLock16( *prevTask );
*prevTask = pTask->hNext;
pTask->hNext = 0;
nTaskCount--;
@ -248,7 +248,7 @@ static void TASK_CreateThunks( HGLOBAL handle, WORD offset, WORD count )
WORD free;
THUNKS *pThunk;
pThunk = (THUNKS *)((BYTE *)GlobalLock( handle ) + offset);
pThunk = (THUNKS *)((BYTE *)GlobalLock16( handle ) + offset);
pThunk->next = 0;
pThunk->magic = THUNK_MAGIC;
pThunk->free = (int)&pThunk->thunks - (int)pThunk;
@ -274,7 +274,7 @@ static SEGPTR TASK_AllocThunk( HTASK hTask )
THUNKS *pThunk;
WORD sel, base;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return 0;
sel = pTask->hCSAlias;
pThunk = &pTask->thunks;
base = (int)pThunk - (int)pTask;
@ -289,12 +289,12 @@ static SEGPTR TASK_AllocThunk( HTASK hTask )
TASK_CreateThunks( sel, 0, MIN_THUNKS );
pThunk->next = sel;
}
pThunk = (THUNKS *)GlobalLock( sel );
pThunk = (THUNKS *)GlobalLock16( sel );
base = 0;
}
base += pThunk->free;
pThunk->free = *(WORD *)((BYTE *)pThunk + pThunk->free);
return MAKELONG( base, sel );
return PTR_SEG_OFF_TO_SEGPTR( sel, base );
}
#endif
@ -311,14 +311,14 @@ static BOOL TASK_FreeThunk( HTASK hTask, SEGPTR thunk )
THUNKS *pThunk;
WORD sel, base;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return 0;
sel = pTask->hCSAlias;
pThunk = &pTask->thunks;
base = (int)pThunk - (int)pTask;
while (sel && (sel != HIWORD(thunk)))
{
sel = pThunk->next;
pThunk = (THUNKS *)GlobalLock( sel );
pThunk = (THUNKS *)GlobalLock16( sel );
base = 0;
}
if (!sel) return FALSE;
@ -339,7 +339,7 @@ static BOOL TASK_FreeThunk( HTASK hTask, SEGPTR thunk )
static void TASK_CallToStart(void)
{
int cs_reg, ds_reg, ip_reg;
TDB *pTask = (TDB *)GlobalLock( hCurrentTask );
TDB *pTask = (TDB *)GlobalLock16( hCurrentTask );
NE_MODULE *pModule = MODULE_GetPtr( pTask->hModule );
SEGTABLEENTRY *pSegTable = NE_SEG_TABLE( pModule );
@ -406,24 +406,24 @@ HTASK TASK_CreateTask( HMODULE hModule, HANDLE hInstance, HANDLE hPrevInstance,
hTask = GLOBAL_Alloc( GMEM_FIXED | GMEM_ZEROINIT, sizeof(TDB),
hModule, FALSE, FALSE, FALSE );
if (!hTask) return 0;
pTask = (TDB *)GlobalLock( hTask );
pTask = (TDB *)GlobalLock16( hTask );
/* Allocate the new environment block */
if (!(hParentEnv = hEnvironment))
{
TDB *pParent = (TDB *)GlobalLock( hCurrentTask );
TDB *pParent = (TDB *)GlobalLock16( hCurrentTask );
hParentEnv = pParent ? pParent->pdb.environment : hDOSEnvironment;
}
/* FIXME: do we really need to make a copy also when */
/* we don't use the parent environment? */
if (!(hEnvironment = GlobalAlloc( GMEM_FIXED, GlobalSize( hParentEnv ) )))
if (!(hEnvironment = GlobalAlloc16( GMEM_FIXED, GlobalSize16(hParentEnv))))
{
GlobalFree( hTask );
GlobalFree16( hTask );
return 0;
}
memcpy( GlobalLock( hEnvironment ), GlobalLock( hParentEnv ),
GlobalSize( hParentEnv ) );
memcpy( GlobalLock16( hEnvironment ), GlobalLock16( hParentEnv ),
GlobalSize16( hParentEnv ) );
/* Get current directory */
@ -501,8 +501,8 @@ HTASK TASK_CreateTask( HMODULE hModule, HANDLE hInstance, HANDLE hPrevInstance,
/* Default DTA overwrites command-line */
pTask->dta = MAKELONG( (int)&pTask->pdb.cmdLine - (int)&pTask->pdb,
pTask->hPDB );
pTask->dta = PTR_SEG_OFF_TO_SEGPTR( pTask->hPDB,
(int)&pTask->pdb.cmdLine - (int)&pTask->pdb );
/* Allocate the 32-bit stack */
@ -512,8 +512,8 @@ HTASK TASK_CreateTask( HMODULE hModule, HANDLE hInstance, HANDLE hPrevInstance,
/* Create the 32-bit stack frame */
*(DWORD *)GlobalLock(pTask->hStack32) = 0xDEADBEEF;
stack32Top = (char*)GlobalLock(pTask->hStack32) + STACK32_SIZE;
*(DWORD *)GlobalLock16(pTask->hStack32) = 0xDEADBEEF;
stack32Top = (char*)GlobalLock16(pTask->hStack32) + STACK32_SIZE;
frame32 = (STACK32FRAME *)stack32Top - 1;
frame32->saved_esp = (DWORD)stack32Top;
frame32->edi = 0;
@ -583,7 +583,7 @@ static void TASK_DeleteTask( HTASK hTask )
TDB *pTask;
HANDLE hPDB;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return;
hPDB = pTask->hPDB;
/* Free the task module */
@ -601,7 +601,7 @@ static void TASK_DeleteTask( HTASK hTask )
/* Free the task structure itself */
GlobalFree( hTask );
GlobalFree16( hTask );
/* Free all memory used by this task (including the 32-bit stack, */
/* the environment block and the thunk segments). */
@ -622,7 +622,7 @@ void TASK_KillCurrentTask( int exitCode )
{
extern void EXEC_ExitWindows( int retCode );
TDB* pTask = (TDB*) GlobalLock( hCurrentTask );
TDB* pTask = (TDB*) GlobalLock16( hCurrentTask );
/* Perform USER cleanup */
@ -685,13 +685,13 @@ void TASK_Reschedule(void)
/* Find a task to yield to */
pOldTask = (TDB *)GlobalLock( hCurrentTask );
pOldTask = (TDB *)GlobalLock16( hCurrentTask );
if (pOldTask && pOldTask->hYieldTo)
{
/* If a task is stored in hYieldTo of the current task (put there */
/* by DirectedYield), yield to it only if it has events pending. */
hTask = pOldTask->hYieldTo;
if (!(pNewTask = (TDB *)GlobalLock( hTask )) || !pNewTask->nEvents)
if (!(pNewTask = (TDB *)GlobalLock16( hTask )) || !pNewTask->nEvents)
hTask = 0;
}
@ -700,7 +700,7 @@ void TASK_Reschedule(void)
hTask = hFirstTask;
while (hTask)
{
pNewTask = (TDB *)GlobalLock( hTask );
pNewTask = (TDB *)GlobalLock16( hTask );
if (pNewTask->nEvents && (hTask != hCurrentTask)) break;
hTask = pNewTask->hNext;
}
@ -713,7 +713,7 @@ void TASK_Reschedule(void)
if (!hTask) return; /* Do nothing */
pNewTask = (TDB *)GlobalLock( hTask );
pNewTask = (TDB *)GlobalLock16( hTask );
dprintf_task( stddeb, "Switching to task %04x (%.8s)\n",
hTask, pNewTask->module_name );
@ -743,7 +743,7 @@ void TASK_Reschedule(void)
IF1632_Saved16_ss = pNewTask->ss;
IF1632_Saved16_sp = pNewTask->sp;
IF1632_Saved32_esp = pNewTask->esp;
IF1632_Stack32_base = WIN16_GlobalLock( pNewTask->hStack32 );
IF1632_Stack32_base = WIN16_GlobalLock16( pNewTask->hStack32 );
#endif
}
@ -767,7 +767,7 @@ void InitTask( struct sigcontext_struct context )
#ifndef WINELIB
EAX_reg(&context) = 0;
#endif
if (!(pTask = (TDB *)GlobalLock( hCurrentTask ))) return;
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return;
if (!(pModule = MODULE_GetPtr( pTask->hModule ))) return;
if (firstTask)
@ -835,7 +835,7 @@ BOOL WaitEvent( HTASK hTask )
TDB *pTask;
if (!hTask) hTask = hCurrentTask;
pTask = (TDB *)GlobalLock( hTask );
pTask = (TDB *)GlobalLock16( hTask );
if (pTask->nEvents > 0)
{
pTask->nEvents--;
@ -856,7 +856,7 @@ void PostEvent( HTASK hTask )
TDB *pTask;
if (!hTask) hTask = hCurrentTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return;
pTask->nEvents++;
}
@ -870,7 +870,7 @@ void SetPriority( HTASK hTask, int delta )
int newpriority;
if (!hTask) hTask = hCurrentTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return;
newpriority = pTask->priority + delta;
if (newpriority < -32) newpriority = -32;
else if (newpriority > 15) newpriority = 15;
@ -909,7 +909,7 @@ void OldYield(void)
{
TDB *pCurTask;
pCurTask = (TDB *)GlobalLock( hCurrentTask );
pCurTask = (TDB *)GlobalLock16( hCurrentTask );
if (pCurTask) pCurTask->nEvents++; /* Make sure we get back here */
TASK_SCHEDULE();
if (pCurTask) pCurTask->nEvents--;
@ -923,7 +923,7 @@ void DirectedYield( HTASK hTask )
{
TDB *pCurTask;
if ((pCurTask = (TDB *)GlobalLock( hCurrentTask )) != NULL)
if ((pCurTask = (TDB *)GlobalLock16( hCurrentTask )) != NULL)
pCurTask->hYieldTo = hTask;
OldYield();
@ -993,9 +993,9 @@ HANDLE GetCodeHandle( FARPROC proc )
/* Check if it is really a thunk */
if ((thunk[0] == 0xb8) && (thunk[3] == 0xea))
handle = GlobalHandle( thunk[6] + (thunk[7] << 8) );
handle = GlobalHandle16( thunk[6] + (thunk[7] << 8) );
else
handle = GlobalHandle( HIWORD(proc) );
handle = GlobalHandle16( HIWORD(proc) );
return handle;
#else
@ -1013,7 +1013,7 @@ HQUEUE SetTaskQueue( HANDLE hTask, HQUEUE hQueue )
TDB *pTask;
if (!hTask) hTask = hCurrentTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return 0;
hPrev = pTask->hQueue;
pTask->hQueue = hQueue;
@ -1032,7 +1032,7 @@ HQUEUE GetTaskQueue( HANDLE hTask )
TDB *pTask;
if (!hTask) hTask = hCurrentTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return 0;
return pTask->hQueue;
}
@ -1080,7 +1080,7 @@ HANDLE GetCurrentPDB(void)
{
TDB *pTask;
if (!(pTask = (TDB *)GlobalLock( hCurrentTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return 0;
return pTask->hPDB;
}
@ -1090,10 +1090,10 @@ HANDLE GetCurrentPDB(void)
*/
int GetInstanceData( HANDLE instance, WORD buffer, int len )
{
char *ptr = (char *)GlobalLock( instance );
char *ptr = (char *)GlobalLock16( instance );
if (!ptr || !len) return 0;
if ((int)buffer + len >= 0x10000) len = 0x10000 - buffer;
memcpy( ptr + buffer, (char *)GlobalLock( CURRENT_DS ) + buffer, len );
memcpy( ptr + buffer, (char *)GlobalLock16( CURRENT_DS ) + buffer, len );
return len;
}
@ -1106,7 +1106,7 @@ UINT SetErrorMode( UINT mode )
TDB *pTask;
UINT oldMode;
if (!(pTask = (TDB *)GlobalLock( hCurrentTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return 0;
oldMode = pTask->error_mode;
pTask->error_mode = mode;
return oldMode;
@ -1120,8 +1120,8 @@ SEGPTR GetDOSEnvironment(void)
{
TDB *pTask;
if (!(pTask = (TDB *)GlobalLock( hCurrentTask ))) return 0;
return (SEGPTR)WIN16_GlobalLock( pTask->pdb.environment );
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return 0;
return (SEGPTR)WIN16_GlobalLock16( pTask->pdb.environment );
}
@ -1141,7 +1141,7 @@ HINSTANCE GetTaskDS(void)
{
TDB *pTask;
if (!(pTask = (TDB *)GlobalLock( hCurrentTask ))) return 0;
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return 0;
return pTask->hInstance;
}
@ -1153,8 +1153,8 @@ BOOL IsTask( HTASK hTask )
{
TDB *pTask;
if (!(pTask = (TDB *)GlobalLock( hTask ))) return FALSE;
if (GlobalSize( hTask ) < sizeof(TDB)) return FALSE;
if (!(pTask = (TDB *)GlobalLock16( hTask ))) return FALSE;
if (GlobalSize16( hTask ) < sizeof(TDB)) return FALSE;
return (pTask->magic == TDB_MAGIC);
}
@ -1170,7 +1170,7 @@ HMODULE GetExePtr( HANDLE handle )
/* Check for module handle */
if (!(ptr = GlobalLock( handle ))) return 0;
if (!(ptr = GlobalLock16( handle ))) return 0;
if (((NE_MODULE *)ptr)->magic == NE_SIGNATURE) return handle;
/* Check the owner for module handle */
@ -1180,7 +1180,7 @@ HMODULE GetExePtr( HANDLE handle )
#else
owner = NULL;
#endif
if (!(ptr = GlobalLock( owner ))) return 0;
if (!(ptr = GlobalLock16( owner ))) return 0;
if (((NE_MODULE *)ptr)->magic == NE_SIGNATURE) return owner;
/* Search for this handle and its owner inside all tasks */
@ -1188,7 +1188,7 @@ HMODULE GetExePtr( HANDLE handle )
hTask = hFirstTask;
while (hTask)
{
TDB *pTask = (TDB *)GlobalLock( hTask );
TDB *pTask = (TDB *)GlobalLock16( hTask );
if ((hTask == handle) ||
(pTask->hInstance == handle) ||
(pTask->hQueue == handle) ||
@ -1223,7 +1223,7 @@ BOOL TaskNext( TASKENTRY *lpte )
dprintf_toolhelp( stddeb, "TaskNext(%p): task=%04x\n", lpte, lpte->hNext );
if (!lpte->hNext) return FALSE;
pTask = (TDB *)GlobalLock( lpte->hNext );
pTask = (TDB *)GlobalLock16( lpte->hNext );
if (!pTask || pTask->magic != TDB_MAGIC) return FALSE;
pInstData = (INSTANCEDATA *)PTR_SEG_OFF_TO_LIN( pTask->hInstance, 0 );
lpte->hTask = lpte->hNext;

View File

@ -159,6 +159,7 @@ static ATOM ATOM_AddAtom( WORD selector, SEGPTR name )
if (!entry) return 0;
/* Reload the table ptr in case it moved in linear memory */
table = ATOM_GetTable( selector, FALSE );
str = PTR_SEG_TO_LIN( name );
entryPtr = ATOM_MakePtr( selector, entry );
entryPtr->next = table->entries[hash];
entryPtr->refCount = 1;

View File

@ -4,8 +4,6 @@
* Copyright 1995 Alexandre Julliard
*/
#ifndef WINELIB
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
@ -25,16 +23,16 @@
/* Global arena block */
typedef struct
{
DWORD base; /* Base address (0 if discarded) */
DWORD size; /* Size in bytes (0 indicates a free block) */
HGLOBAL handle; /* Handle for this block */
HGLOBAL hOwner; /* Owner of this block */
BYTE lockCount; /* Count of GlobalFix() calls */
BYTE pageLockCount; /* Count of GlobalPageLock() calls */
BYTE flags; /* Allocation flags */
BYTE selCount; /* Number of selectors allocated for this block */
DWORD base; /* Base address (0 if discarded) */
DWORD size; /* Size in bytes (0 indicates a free block) */
HGLOBAL16 handle; /* Handle for this block */
HGLOBAL16 hOwner; /* Owner of this block */
BYTE lockCount; /* Count of GlobalFix() calls */
BYTE pageLockCount; /* Count of GlobalPageLock() calls */
BYTE flags; /* Allocation flags */
BYTE selCount; /* Number of selectors allocated for this block */
#ifdef CONFIG_IPC
int shmid;
int shmid;
#endif
} GLOBALARENA;
@ -94,10 +92,10 @@ void debug_handles()
*
* Create a global heap block for a fixed range of linear memory.
*/
HGLOBAL GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size,
HGLOBAL hOwner, BOOL isCode,
BOOL is32Bit, BOOL isReadOnly,
SHMDATA *shmdata )
HGLOBAL16 GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size,
HGLOBAL16 hOwner, BOOL isCode,
BOOL is32Bit, BOOL isReadOnly,
SHMDATA *shmdata )
{
WORD sel, selcount;
GLOBALARENA *pArena;
@ -158,7 +156,7 @@ HGLOBAL GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size,
* Free a block allocated by GLOBAL_CreateBlock, without touching
* the associated linear memory range.
*/
BOOL GLOBAL_FreeBlock( HGLOBAL handle )
BOOL GLOBAL_FreeBlock( HGLOBAL16 handle )
{
WORD sel;
@ -173,13 +171,13 @@ BOOL GLOBAL_FreeBlock( HGLOBAL handle )
/***********************************************************************
* GLOBAL_Alloc
*
* Implementation of GlobalAlloc()
* Implementation of GlobalAlloc16()
*/
HGLOBAL GLOBAL_Alloc( WORD flags, DWORD size, HGLOBAL hOwner,
BOOL isCode, BOOL is32Bit, BOOL isReadOnly )
HGLOBAL16 GLOBAL_Alloc( UINT16 flags, DWORD size, HGLOBAL16 hOwner,
BOOL isCode, BOOL is32Bit, BOOL isReadOnly )
{
void *ptr;
HGLOBAL handle;
HGLOBAL16 handle;
SHMDATA shmdata;
dprintf_global( stddeb, "GlobalAlloc: %ld flags=%04x\n", size, flags );
@ -265,11 +263,11 @@ WORD DDE_GlobalHandleToSel( HGLOBAL handle )
/***********************************************************************
* GlobalAlloc (KERNEL.15)
* GlobalAlloc16 (KERNEL.15)
*/
HGLOBAL GlobalAlloc( WORD flags, DWORD size )
HGLOBAL16 GlobalAlloc16( UINT16 flags, DWORD size )
{
HANDLE owner = GetCurrentPDB();
HANDLE16 owner = GetCurrentPDB();
if (flags & GMEM_DDESHARE)
owner = GetExePtr(owner); /* Make it a module handle */
@ -278,9 +276,9 @@ HGLOBAL GlobalAlloc( WORD flags, DWORD size )
/***********************************************************************
* GlobalReAlloc (KERNEL.16)
* GlobalReAlloc16 (KERNEL.16)
*/
HGLOBAL GlobalReAlloc( HGLOBAL handle, DWORD size, WORD flags )
HGLOBAL16 GlobalReAlloc16( HGLOBAL16 handle, DWORD size, UINT16 flags )
{
WORD selcount;
DWORD oldsize;
@ -288,14 +286,14 @@ HGLOBAL GlobalReAlloc( HGLOBAL handle, DWORD size, WORD flags )
GLOBALARENA *pArena, *pNewArena;
WORD sel = GlobalHandleToSel( handle );
dprintf_global( stddeb, "GlobalReAlloc: %04x %ld flags=%04x\n",
dprintf_global( stddeb, "GlobalReAlloc16: %04x %ld flags=%04x\n",
handle, size, flags );
if (!handle) return 0;
#ifdef CONFIG_IPC
if (Options.ipc && (flags & GMEM_DDESHARE || is_dde_handle(handle))) {
fprintf(stdnimp,
"GlobalReAlloc: shared memory reallocating unimplemented\n");
"GlobalReAlloc16: shared memory reallocating unimplemented\n");
return 0;
}
#endif /* CONFIG_IPC */
@ -384,13 +382,13 @@ HGLOBAL GlobalReAlloc( HGLOBAL handle, DWORD size, WORD flags )
/***********************************************************************
* GlobalFree (KERNEL.17)
* GlobalFree16 (KERNEL.17)
*/
HGLOBAL GlobalFree( HGLOBAL handle )
HGLOBAL16 GlobalFree16( HGLOBAL16 handle )
{
void *ptr = GlobalLock( handle );
void *ptr = GlobalLock16( handle );
dprintf_global( stddeb, "GlobalFree: %04x\n", handle );
dprintf_global( stddeb, "GlobalFree16: %04x\n", handle );
if (!GLOBAL_FreeBlock( handle )) return handle; /* failed */
#ifdef CONFIG_IPC
if (is_dde_handle(handle)) return DDE_GlobalFree(handle);
@ -401,80 +399,84 @@ HGLOBAL GlobalFree( HGLOBAL handle )
/***********************************************************************
* WIN16_GlobalLock (KERNEL.18)
* WIN16_GlobalLock16 (KERNEL.18)
*
* This is the GlobalLock() function used by 16-bit code.
* This is the GlobalLock16() function used by 16-bit code.
*/
SEGPTR WIN16_GlobalLock( HGLOBAL handle )
SEGPTR WIN16_GlobalLock16( HGLOBAL16 handle )
{
dprintf_global( stddeb, "WIN16_GlobalLock(%04x) -> %08lx\n",
#ifndef WINELIB
dprintf_global( stddeb, "WIN16_GlobalLock16(%04x) -> %08lx\n",
handle, MAKELONG( 0, GlobalHandleToSel(handle)) );
if (!handle) return 0;
#ifdef CONFIG_IPC
if (is_dde_handle(handle))
return (SEGPTR)MAKELONG( 0, DDE_GlobalHandleToSel(handle) );
return PTR_SEG_OFF_TO_SEGPTR( DDE_GlobalHandleToSel(handle), 0 );
#endif /* CONFIG_IPC */
if (!GET_ARENA_PTR(handle)->base) return (SEGPTR)0;
return (SEGPTR)MAKELONG( 0, GlobalHandleToSel(handle) );
return PTR_SEG_OFF_TO_SEGPTR( GlobalHandleToSel(handle), 0 );
#else /* WINELIB */
return GlobalLock16( handle );
#endif /* WINELIB */
}
/***********************************************************************
* GlobalLock (KERNEL.18)
* GlobalLock16 (KERNEL.18)
*
* This is the GlobalLock() function used by 32-bit code.
* This is the GlobalLock16() function used by 32-bit code.
*/
LPVOID GlobalLock( HGLOBAL handle )
LPVOID GlobalLock16( HGLOBAL16 handle )
{
if (!handle) return 0;
#ifdef CONFIG_IPC
if (is_dde_handle(handle)) return DDE_AttachHandle(handle, NULL);
#endif
return (LPSTR)GET_ARENA_PTR(handle)->base;
return (LPVOID)GET_ARENA_PTR(handle)->base;
}
/***********************************************************************
* GlobalUnlock (KERNEL.19)
* GlobalUnlock16 (KERNEL.19)
*/
BOOL GlobalUnlock( HGLOBAL handle )
BOOL GlobalUnlock16( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalUnlock: %04x\n", handle );
dprintf_global( stddeb, "GlobalUnlock16: %04x\n", handle );
return 0;
}
/***********************************************************************
* GlobalSize (KERNEL.20)
* GlobalSize16 (KERNEL.20)
*/
DWORD GlobalSize( HGLOBAL handle )
DWORD GlobalSize16( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalSize: %04x\n", handle );
dprintf_global( stddeb, "GlobalSize16: %04x\n", handle );
if (!handle) return 0;
return GET_ARENA_PTR(handle)->size;
}
/***********************************************************************
* GlobalHandle (KERNEL.21)
* GlobalHandle16 (KERNEL.21)
*/
DWORD GlobalHandle( WORD sel )
DWORD GlobalHandle16( WORD sel )
{
dprintf_global( stddeb, "GlobalHandle: %04x\n", sel );
dprintf_global( stddeb, "GlobalHandle16: %04x\n", sel );
return MAKELONG( GET_ARENA_PTR(sel)->handle, GlobalHandleToSel(sel) );
}
/***********************************************************************
* GlobalFlags (KERNEL.22)
* GlobalFlags16 (KERNEL.22)
*/
WORD GlobalFlags( HGLOBAL handle )
UINT16 GlobalFlags16( HGLOBAL16 handle )
{
GLOBALARENA *pArena;
dprintf_global( stddeb, "GlobalFlags: %04x\n", handle );
dprintf_global( stddeb, "GlobalFlags16: %04x\n", handle );
pArena = GET_ARENA_PTR(handle);
return pArena->lockCount |
((pArena->flags & GA_DISCARDABLE) ? GMEM_DISCARDABLE : 0) |
@ -507,9 +509,9 @@ void UnlockSegment( HGLOBAL handle )
/***********************************************************************
* GlobalCompact (KERNEL.25)
* GlobalCompact16 (KERNEL.25)
*/
DWORD GlobalCompact( DWORD desired )
DWORD GlobalCompact16( DWORD desired )
{
return GLOBAL_MAX_ALLOC_SIZE;
}
@ -518,7 +520,7 @@ DWORD GlobalCompact( DWORD desired )
/***********************************************************************
* GlobalFreeAll (KERNEL.26)
*/
void GlobalFreeAll( HANDLE owner )
void GlobalFreeAll( HGLOBAL16 owner )
{
DWORD i;
GLOBALARENA *pArena;
@ -527,7 +529,7 @@ void GlobalFreeAll( HANDLE owner )
for (i = 0; i < globalArenaSize; i++, pArena++)
{
if ((pArena->size != 0) && (pArena->hOwner == owner))
GlobalFree( pArena->handle );
GlobalFree16( pArena->handle );
}
}
@ -535,18 +537,18 @@ void GlobalFreeAll( HANDLE owner )
/***********************************************************************
* GlobalWire (KERNEL.111)
*/
SEGPTR GlobalWire( HGLOBAL handle )
SEGPTR GlobalWire( HGLOBAL16 handle )
{
return WIN16_GlobalLock( handle );
return WIN16_GlobalLock16( handle );
}
/***********************************************************************
* GlobalUnWire (KERNEL.112)
*/
BOOL GlobalUnWire( HGLOBAL handle )
BOOL GlobalUnWire( HGLOBAL16 handle )
{
return GlobalUnlock( handle );
return GlobalUnlock16( handle );
}
@ -555,7 +557,7 @@ BOOL GlobalUnWire( HGLOBAL handle )
*/
DWORD GlobalDOSAlloc( DWORD size )
{
WORD sel = GlobalAlloc( GMEM_FIXED, size );
WORD sel = GlobalAlloc16( GMEM_FIXED, size );
if (!sel) return 0;
return MAKELONG( sel, sel /* this one ought to be a real-mode segment */ );
}
@ -566,7 +568,7 @@ DWORD GlobalDOSAlloc( DWORD size )
*/
WORD GlobalDOSFree( WORD sel )
{
return GlobalFree( GlobalHandle(sel) ) ? sel : 0;
return GlobalFree16( GlobalHandle16(sel) ) ? sel : 0;
}
@ -583,7 +585,7 @@ LONG SetSwapAreaSize( WORD size )
/***********************************************************************
* GlobalLRUOldest (KERNEL.163)
*/
HGLOBAL GlobalLRUOldest( HGLOBAL handle )
HGLOBAL16 GlobalLRUOldest( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalLRUOldest: %04x\n", handle );
if (handle == (HGLOBAL)-1) handle = CURRENT_DS;
@ -594,7 +596,7 @@ HGLOBAL GlobalLRUOldest( HGLOBAL handle )
/***********************************************************************
* GlobalLRUNewest (KERNEL.164)
*/
HGLOBAL GlobalLRUNewest( HGLOBAL handle )
HGLOBAL16 GlobalLRUNewest( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalLRUNewest: %04x\n", handle );
if (handle == (HGLOBAL)-1) handle = CURRENT_DS;
@ -605,7 +607,7 @@ HGLOBAL GlobalLRUNewest( HGLOBAL handle )
/***********************************************************************
* GetFreeSpace (KERNEL.169)
*/
DWORD GetFreeSpace( UINT wFlags )
DWORD GetFreeSpace( UINT16 wFlags )
{
return GLOBAL_MAX_ALLOC_SIZE;
}
@ -614,7 +616,7 @@ DWORD GetFreeSpace( UINT wFlags )
/***********************************************************************
* GlobalPageLock (KERNEL.191)
*/
WORD GlobalPageLock( HGLOBAL handle )
WORD GlobalPageLock( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalPageLock: %04x\n", handle );
return ++(GET_ARENA_PTR(handle)->pageLockCount);
@ -624,7 +626,7 @@ WORD GlobalPageLock( HGLOBAL handle )
/***********************************************************************
* GlobalPageUnlock (KERNEL.192)
*/
WORD GlobalPageUnlock( HGLOBAL handle )
WORD GlobalPageUnlock( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalPageUnlock: %04x\n", handle );
return --(GET_ARENA_PTR(handle)->pageLockCount);
@ -634,7 +636,7 @@ WORD GlobalPageUnlock( HGLOBAL handle )
/***********************************************************************
* GlobalFix (KERNEL.197)
*/
void GlobalFix( HGLOBAL handle )
void GlobalFix( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalFix: %04x\n", handle );
GET_ARENA_PTR(handle)->lockCount++;
@ -644,7 +646,7 @@ void GlobalFix( HGLOBAL handle )
/***********************************************************************
* GlobalUnfix (KERNEL.198)
*/
void GlobalUnfix( HGLOBAL handle )
void GlobalUnfix( HGLOBAL16 handle )
{
dprintf_global( stddeb, "GlobalUnfix: %04x\n", handle );
GET_ARENA_PTR(handle)->lockCount--;
@ -672,7 +674,7 @@ WORD FarGetOwner( HANDLE handle )
/***********************************************************************
* GlobalHandleToSel (TOOLHELP.50)
*/
WORD GlobalHandleToSel( HGLOBAL handle )
WORD GlobalHandleToSel( HGLOBAL16 handle )
{
dprintf_toolhelp( stddeb, "GlobalHandleToSel: %04x\n", handle );
if (!handle) return 0;
@ -752,7 +754,7 @@ BOOL GlobalInfo( GLOBALINFO *pInfo )
/***********************************************************************
* GlobalEntryHandle (TOOLHELP.54)
*/
BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL hItem )
BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem )
{
return FALSE;
}
@ -761,7 +763,7 @@ BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL hItem )
/***********************************************************************
* GlobalEntryModule (TOOLHELP.55)
*/
BOOL GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE hModule, WORD wSeg )
BOOL GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, WORD wSeg )
{
return FALSE;
}
@ -818,23 +820,98 @@ BOOL MemManInfo( MEMMANINFO *pInfo )
#endif
}
/***********************************************************************
* GlobalAlloc32
* implements GlobalAlloc (KERNEL32.316)
* LocalAlloc (KERNEL32.372)
*/
void *GlobalAlloc32(int flags,int size)
{
dprintf_global(stddeb,"GlobalAlloc32(%x,%x)\n",flags,size);
return malloc(size);
}
/***********************************************************************
* GlobalLock32
*/
void* GlobalLock32(DWORD ptr)
{
return (void*)ptr;
}
#ifndef WINELIB
#endif /* WINELIB */
/***********************************************************************
* GlobalAlloc32 (KERNEL32.315)
*/
HGLOBAL32 GlobalAlloc32( UINT32 flags, DWORD size )
{
DWORD heapFlags = 0;
if (flags & GMEM_MOVEABLE)
fprintf( stderr, "GlobalAlloc32: unimplemented flag GMEM_MOVEABLE\n" );
if (flags & GMEM_ZEROINIT) heapFlags |= HEAP_ZERO_MEMORY;
return (HGLOBAL32)HeapAlloc( GetProcessHeap(), heapFlags, size );
}
/***********************************************************************
* GlobalCompact32 (KERNEL32.316)
*/
DWORD GlobalCompact32( DWORD minfree )
{
return 0; /* GlobalCompact does nothing in Win32 */
}
/***********************************************************************
* GlobalFlags32 (KERNEL32.321)
*/
UINT32 GlobalFlags32( HGLOBAL32 handle )
{
return 0;
}
/***********************************************************************
* GlobalFree32 (KERNEL32.322)
*/
HGLOBAL32 GlobalFree32( HGLOBAL32 handle )
{
return HeapFree( GetProcessHeap(), 0, (LPVOID)handle ) ? 0 : handle;
}
/***********************************************************************
* GlobalHandle32 (KERNEL32.325)
*/
HGLOBAL32 GlobalHandle32( LPCVOID ptr )
{
return (HGLOBAL32)ptr;
}
/***********************************************************************
* GlobalLock32 (KERNEL32.326)
*/
LPVOID GlobalLock32( HGLOBAL32 handle )
{
return (LPVOID)handle;
}
/***********************************************************************
* GlobalReAlloc32 (KERNEL32.328)
*/
HGLOBAL32 GlobalReAlloc32( HGLOBAL32 handle, DWORD size, UINT32 flags )
{
if (flags & GMEM_MODIFY)
{
fprintf( stderr, "GlobalReAlloc32: GMEM_MODIFY not supported\n" );
return 0;
}
return (HGLOBAL32)HeapReAlloc( GetProcessHeap(), 0, (LPVOID)handle, size );
}
/***********************************************************************
* GlobalSize32 (KERNEL32.329)
*/
DWORD GlobalSize32( HGLOBAL32 handle )
{
return HeapSize( GetProcessHeap(), 0, (LPVOID)handle );
}
/***********************************************************************
* GlobalUnlock32 (KERNEL32.332)
*/
BOOL GlobalUnlock32( HGLOBAL32 handle )
{
return TRUE;
}

View File

@ -2,6 +2,7 @@
* Local heap functions
*
* Copyright 1995 Alexandre Julliard
* Copyright 1996 Huw Davies
*/
/*
@ -11,8 +12,6 @@
* parameter than usual.
*/
#ifndef WINELIB
#include <stdlib.h>
#include <string.h>
#include "windows.h"
@ -25,7 +24,6 @@
#include "stddebug.h"
#include "debug.h"
#ifndef WINELIB
#pragma pack(1)
#endif
@ -47,7 +45,6 @@ typedef struct
/* Arena types (stored in 'prev' field of the arena) */
#define LOCAL_ARENA_FREE 0
#define LOCAL_ARENA_FIXED 1
#define LOCAL_ARENA_MOVEABLE 3
/* Layout of a handle entry table
*
@ -97,9 +94,9 @@ typedef struct
#define LALIGN(word) (((word) + 3) & ~3)
#define ARENA_PTR(ptr,arena) ((LOCALARENA *)((char*)(ptr)+(arena)))
#define ARENA_PREV(ptr,arena) (ARENA_PTR(ptr,arena)->prev & ~3)
#define ARENA_NEXT(ptr,arena) (ARENA_PTR(ptr,arena)->next)
#define ARENA_FLAGS(ptr,arena) (ARENA_PTR(ptr,arena)->prev & 3)
#define ARENA_PREV(ptr,arena) (ARENA_PTR((ptr),(arena))->prev & ~3)
#define ARENA_NEXT(ptr,arena) (ARENA_PTR((ptr),(arena))->next)
#define ARENA_FLAGS(ptr,arena) (ARENA_PTR((ptr),(arena))->prev & 3)
/* determine whether the handle belongs to a fixed or a moveable block */
#define HANDLE_FIXED(handle) (((handle) & 3) == 0)
@ -110,7 +107,7 @@ typedef struct
*
* Return a pointer to the local heap, making sure it exists.
*/
static LOCALHEAPINFO *LOCAL_GetHeap( WORD ds )
static LOCALHEAPINFO *LOCAL_GetHeap( HANDLE16 ds )
{
LOCALHEAPINFO *pInfo;
INSTANCEDATA *ptr = (INSTANCEDATA *)PTR_SEG_OFF_TO_LIN( ds, 0 );
@ -196,7 +193,7 @@ static void LOCAL_AddBlock( char *baseptr, WORD prev, WORD new )
LOCALARENA *pPrev = ARENA_PTR( baseptr, prev );
LOCALARENA *pNew = ARENA_PTR( baseptr, new );
pNew->prev = prev | LOCAL_ARENA_FIXED;
pNew->prev = (prev & ~3) | LOCAL_ARENA_FIXED;
pNew->next = pPrev->next;
ARENA_PTR(baseptr,pPrev->next)->prev &= 3;
ARENA_PTR(baseptr,pPrev->next)->prev |= new;
@ -239,7 +236,7 @@ static void LOCAL_RemoveBlock( char *baseptr, WORD block )
/***********************************************************************
* LOCAL_PrintHeap
*/
static void LOCAL_PrintHeap( WORD ds )
static void LOCAL_PrintHeap( HANDLE16 ds )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo = LOCAL_GetHeap( ds );
@ -329,7 +326,7 @@ BOOL LocalInit( HANDLE selector, WORD start, WORD end )
* of minsize + stacksize, since there are programs that
* resize the data segment before calling InitTask(). So,
* we must put it at the end of the segment */
start = GlobalSize( GlobalHandle( selector ) );
start = GlobalSize16( GlobalHandle16( selector ) );
start -= end;
end += start;
dprintf_local( stddeb," new start %04x, minstart: %04x\n", start, pSeg->minsize + pModule->stack_size);
@ -404,10 +401,10 @@ BOOL LocalInit( HANDLE selector, WORD start, WORD end )
/***********************************************************************
* LOCAL_GrowHeap
*/
static void LOCAL_GrowHeap( WORD ds )
static void LOCAL_GrowHeap( HANDLE16 ds )
{
HANDLE hseg = GlobalHandle( ds );
LONG oldsize = GlobalSize( hseg );
HANDLE hseg = GlobalHandle16( ds );
LONG oldsize = GlobalSize16( hseg );
LONG end;
LOCALHEAPINFO *pHeapInfo;
WORD freeArena, lastArena;
@ -416,14 +413,14 @@ static void LOCAL_GrowHeap( WORD ds )
/* if nothing can be gained, return */
if (oldsize > 0xfff0) return;
hseg = GlobalReAlloc( hseg, 0x10000, GMEM_FIXED );
hseg = GlobalReAlloc16( hseg, 0x10000, GMEM_FIXED );
ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
pHeapInfo = LOCAL_GetHeap( ds );
if (pHeapInfo == NULL) {
fprintf( stderr, "Local_GrowHeap: heap not found\n" );
return;
}
end = GlobalSize( hseg );
end = GlobalSize16( hseg );
lastArena = (end - sizeof(LOCALARENA)) & ~3;
/* Update the HeapInfo */
@ -433,12 +430,11 @@ static void LOCAL_GrowHeap( WORD ds )
pHeapInfo->minsize += end - oldsize;
/* grow the old last block */
/* FIXME: merge two adjacent free blocks */
pArena = ARENA_PTR( ptr, freeArena );
pArena->size = lastArena - freeArena;
pArena->next = lastArena;
pArena->free_next = lastArena;
/* Initialise the new last block */
pLastArena = ARENA_PTR( ptr, lastArena );
@ -448,14 +444,71 @@ static void LOCAL_GrowHeap( WORD ds )
pLastArena->free_prev = freeArena;
pLastArena->free_next = lastArena; /* this one */
/* If block before freeArena is also free then merge them */
if((ARENA_PTR(ptr, (pArena->prev & ~3))->prev & 3) == LOCAL_ARENA_FREE)
{
LOCAL_RemoveBlock(ptr, freeArena);
pHeapInfo->items--;
}
dprintf_local( stddeb, "Heap expanded\n" );
LOCAL_PrintHeap( ds );
}
/***********************************************************************
* LOCAL_Compact
* LOCAL_FreeArena
*/
static WORD LOCAL_Compact( WORD ds, WORD minfree, WORD flags )
static HLOCAL16 LOCAL_FreeArena( WORD ds, WORD arena )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
LOCALARENA *pArena, *pPrev, *pNext;
dprintf_local( stddeb, "LocalFreeArena: %04x ds=%04x\n", arena, ds );
if (!(pInfo = LOCAL_GetHeap( ds ))) return arena;
pArena = ARENA_PTR( ptr, arena );
if ((pArena->prev & 3) == LOCAL_ARENA_FREE)
{
/* shouldn't happen */
fprintf( stderr, "LocalFreeArena: Trying to free block %04x twice!\n",
arena );
LOCAL_PrintHeap( ds );
return arena;
}
/* Check if we can merge with the previous block */
pPrev = ARENA_PTR( ptr, pArena->prev & ~3 );
pNext = ARENA_PTR( ptr, pArena->next );
if ((pPrev->prev & 3) == LOCAL_ARENA_FREE)
{
arena = pArena->prev & ~3;
pArena = pPrev;
LOCAL_RemoveBlock( ptr, pPrev->next );
pInfo->items--;
}
else /* Make a new free block */
{
LOCAL_MakeBlockFree( ptr, arena );
}
/* Check if we can merge with the next block */
if ((pArena->next == pArena->free_next) &&
(pArena->next != pInfo->last))
{
LOCAL_RemoveBlock( ptr, pArena->next );
pInfo->items--;
}
return 0;
}
/***********************************************************************
* LOCAL_GetFreeSpace
*/
static WORD LOCAL_GetFreeSpace(WORD ds, WORD countdiscard)
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
@ -465,34 +518,171 @@ static WORD LOCAL_Compact( WORD ds, WORD minfree, WORD flags )
if (!(pInfo = LOCAL_GetHeap( ds )))
{
fprintf( stderr, "Local_FindFreeBlock: Local heap not found\n" );
LOCAL_PrintHeap(ds);
return 0;
fprintf( stderr, "LOCAL_GetFreeSpace: Local heap not found\n" );
LOCAL_PrintHeap(ds);
return 0;
}
arena = pInfo->first;
pArena = ARENA_PTR( ptr, arena );
while (arena != pArena->free_next) {
while (arena != pArena->free_next)
{
arena = pArena->free_next;
pArena = ARENA_PTR( ptr, arena );
if (pArena->size >= freespace) freespace = pArena->size;
}
if(freespace < ARENA_HEADER_SIZE)
freespace = 0;
else
freespace -= ARENA_HEADER_SIZE;
if (flags & LMEM_NOCOMPACT) return freespace;
if (flags & LMEM_NODISCARD) return freespace;
/* FIXME doesn't yet calculate space that would become free if everything
were discarded when countdiscard == 1 */
if (freespace < ARENA_HEADER_SIZE) freespace = 0;
else freespace -= ARENA_HEADER_SIZE;
return freespace;
}
/***********************************************************************
* LOCAL_Compact
*/
static WORD LOCAL_Compact( HANDLE16 ds, WORD minfree, WORD flags )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 ), *fcp, *mcp;
LOCALHEAPINFO *pInfo;
LOCALARENA *pArena, *pMoveArena, *pFinalArena;
WORD arena, movearena, finalarena, table;
WORD count, movesize, size, i;
WORD freespace;
LOCALHANDLEENTRY *pEntry;
if (!(pInfo = LOCAL_GetHeap( ds )))
{
fprintf( stderr, "Local_Compact: Local heap not found\n" );
LOCAL_PrintHeap(ds);
return 0;
}
dprintf_local(stddeb,
"LOCAL_Compact: ds = %04x, minfree = %04x, flags = %04x\n",
ds, minfree, flags);
freespace = LOCAL_GetFreeSpace(ds, minfree ? 0 : 1);
if(freespace >= minfree || (flags & LMEM_NOCOMPACT))
{
dprintf_local(stddeb, "Returning %04x.\n", freespace);
return freespace;
}
dprintf_local(stddeb, "Local_Compact: Compacting heap %04x.\n", ds);
table = pInfo->htable;
while(table)
{
pEntry = (LOCALHANDLEENTRY *)(ptr + table + sizeof(WORD));
for(count = *(WORD *)(ptr + table); count > 0; count--, pEntry++)
{
if((pEntry->lock == 0) && !(pEntry->flags &
(LMEM_DISCARDED >> 8)))
{
/* OK we can move this one if we want */
dprintf_local(stddeb,
"handle %04x (block %04x) can be moved.\n",
(WORD)((char *)pEntry - ptr), pEntry->addr);
movearena = ARENA_HEADER(pEntry->addr);
pMoveArena = ARENA_PTR(ptr, movearena);
movesize = pMoveArena->next - movearena;
arena = pInfo->first;
pArena = ARENA_PTR(ptr, arena);
size = 0xffff;
finalarena = 0;
/* Try to find the smallest arena that will do, */
/* which is below us in memory */
for(;;)
{
arena = pArena->free_next;
pArena = ARENA_PTR(ptr, arena);
if(arena >= movearena)
break;
if(arena == pArena->free_next)
break;
if((pArena->size >= movesize) && (pArena->size < size))
{
size = pArena->size;
finalarena = arena;
}
}
if (finalarena) /* Actually got somewhere to move */
{
dprintf_local(stddeb, "Moving it to %04x.\n", finalarena);
pFinalArena = ARENA_PTR(ptr, finalarena);
/* Check to see if it's worth creating a free arena at the end */
if(pFinalArena->size > movesize+LALIGN(sizeof(LOCALARENA)))
{
LOCAL_AddBlock(ptr, finalarena, finalarena + movesize);
LOCAL_MakeBlockFree(ptr, finalarena + movesize);
pInfo->items++;
}
/* Copy the arena to it's new location */
LOCAL_RemoveFreeBlock(ptr, finalarena);
memcpy((char *)pFinalArena + ARENA_HEADER_SIZE,
(char *)pMoveArena + ARENA_HEADER_SIZE,
movesize - ARENA_HEADER_SIZE );
/* Free the old location */
LOCAL_FreeArena(ds, movearena);
/* Update handle table entry */
pEntry->addr = finalarena + ARENA_HEADER_SIZE;
}
else if((ARENA_PTR(ptr, pMoveArena->prev & ~3)->prev & 3)
== LOCAL_ARENA_FREE)
{
/* Previous arena is free (but < movesize) */
/* so we can 'slide' movearena down into it */
finalarena = pMoveArena->prev & ~3;
pFinalArena = ARENA_PTR(ptr, finalarena);
dprintf_local(stddeb, "Sliding arena %04x to %04x.\n",
movearena, finalarena);
LOCAL_RemoveFreeBlock(ptr, finalarena);
LOCAL_RemoveBlock(ptr, movearena);
mcp = (char *)pMoveArena + ARENA_HEADER_SIZE;
fcp = (char *)pFinalArena + ARENA_HEADER_SIZE;
for(i = 0; i < movesize - ARENA_HEADER_SIZE; i++)
*(fcp++) = *(mcp++);
LOCAL_AddBlock(ptr, finalarena, finalarena + movesize);
LOCAL_MakeBlockFree(ptr, finalarena + movesize);
/* Update handle table entry */
pEntry->addr = finalarena + ARENA_HEADER_SIZE;
}
}
}
table = *(WORD *)pEntry;
}
freespace = LOCAL_GetFreeSpace(ds, minfree ? 0 : 1);
if(freespace >= minfree || (flags & LMEM_NODISCARD))
{
dprintf_local(stddeb, "Returning %04x.\n", freespace);
return freespace;
}
table = pInfo->htable;
while(table)
{
pEntry = (LOCALHANDLEENTRY *)(ptr + table + sizeof(WORD));
for(count = *(WORD *)(ptr + table); count > 0; count--, pEntry++)
{
if((pEntry->flags & (LMEM_DISCARDABLE >> 8)) &&
pEntry->lock == 0 && !(pEntry->flags & (LMEM_DISCARDED >> 8)))
{
dprintf_local(stddeb, "Discarding handle %04x (block %04x).\n",
(char *)pEntry - ptr, pEntry->addr);
LOCAL_FreeArena(ds, pEntry->addr);
pEntry->addr = 0;
pEntry->flags |= (LMEM_DISCARDED >> 8);
/* Call localnotify proc */
}
}
table = *(WORD *)pEntry;
}
return LOCAL_Compact(ds, 0xffff, LMEM_NODISCARD);
}
/***********************************************************************
* LOCAL_FindFreeBlock
*/
static HLOCAL LOCAL_FindFreeBlock( WORD ds, WORD size )
static HLOCAL16 LOCAL_FindFreeBlock( HANDLE16 ds, WORD size )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
@ -524,7 +714,7 @@ static HLOCAL LOCAL_FindFreeBlock( WORD ds, WORD size )
* The segment may get moved around in this function, so all callers
* should reset their pointer variables.
*/
static HLOCAL LOCAL_GetBlock( WORD ds, WORD size, WORD flags )
static HLOCAL16 LOCAL_GetBlock( HANDLE16 ds, WORD size, WORD flags )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
@ -585,12 +775,12 @@ static HLOCAL LOCAL_GetBlock( WORD ds, WORD size, WORD flags )
/***********************************************************************
* LOCAL_NewHTable
*/
static BOOL LOCAL_NewHTable( WORD ds )
static BOOL LOCAL_NewHTable( HANDLE16 ds )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
LOCALHANDLEENTRY *pEntry;
HLOCAL handle;
HLOCAL16 handle;
int i;
dprintf_local( stddeb, "Local_NewHTable\n" );
@ -601,11 +791,13 @@ static BOOL LOCAL_NewHTable( WORD ds )
return FALSE;
}
handle = LOCAL_GetBlock( ds, pInfo->hdelta * sizeof(LOCALHANDLEENTRY)
+ 2 * sizeof(WORD), LMEM_FIXED );
ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
pInfo = LOCAL_GetHeap( ds );
if (handle == 0) return FALSE;
if (!(handle = LOCAL_GetBlock( ds, pInfo->hdelta * sizeof(LOCALHANDLEENTRY)
+ 2 * sizeof(WORD), LMEM_FIXED )))
return FALSE;
if (!(ptr = PTR_SEG_OFF_TO_LIN( ds, 0 )))
fprintf(stderr, "LOCAL_NewHTable: ptr == NULL after GetBlock.\n");
if (!(pInfo = LOCAL_GetHeap( ds )))
fprintf(stderr,"LOCAL_NewHTable: pInfo == NULL after GetBlock.\n");
/* Fill the entry table */
@ -621,7 +813,7 @@ static BOOL LOCAL_NewHTable( WORD ds )
/***********************************************************************
* LOCAL_GetNewHandleEntry
*/
static HLOCAL LOCAL_GetNewHandleEntry( WORD ds )
static HLOCAL16 LOCAL_GetNewHandleEntry( HANDLE16 ds )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
@ -661,57 +853,7 @@ static HLOCAL LOCAL_GetNewHandleEntry( WORD ds )
pEntry->lock = 0;
dprintf_local( stddeb, "LOCAL_GetNewHandleEntry(%04x): %04x\n",
ds, ((char *)pEntry - ptr) );
return (HLOCAL)((char *)pEntry - ptr);
}
/***********************************************************************
* LOCAL_FreeArena
*/
static HLOCAL LOCAL_FreeArena( WORD ds, WORD arena )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
LOCALARENA *pArena, *pPrev, *pNext;
dprintf_local( stddeb, "LocalFreeArena: %04x ds=%04x\n", arena, ds );
if (!(pInfo = LOCAL_GetHeap( ds ))) return arena;
pArena = ARENA_PTR( ptr, arena );
if ((pArena->prev & 3) == LOCAL_ARENA_FREE)
{
/* shouldn't happen */
fprintf( stderr, "LocalFreeArena: Trying to free block %04x twice!\n",
arena );
LOCAL_PrintHeap( ds );
return arena;
}
/* Check if we can merge with the previous block */
pPrev = ARENA_PTR( ptr, pArena->prev & ~3 );
pNext = ARENA_PTR( ptr, pArena->next );
if ((pPrev->prev & 3) == LOCAL_ARENA_FREE)
{
arena = pArena->prev & ~3;
pArena = pPrev;
LOCAL_RemoveBlock( ptr, pPrev->next );
pInfo->items--;
}
else /* Make a new free block */
{
LOCAL_MakeBlockFree( ptr, arena );
}
/* Check if we can merge with the next block */
if ((pArena->next == pArena->free_next) &&
(pArena->next != pInfo->last))
{
LOCAL_RemoveBlock( ptr, pArena->next );
pInfo->items--;
}
return 0;
return (HLOCAL16)((char *)pEntry - ptr);
}
@ -720,7 +862,7 @@ static HLOCAL LOCAL_FreeArena( WORD ds, WORD arena )
*
* Free a handle table entry.
*/
static void LOCAL_FreeHandleEntry( WORD ds, HLOCAL handle )
static void LOCAL_FreeHandleEntry( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHANDLEENTRY *pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
@ -754,16 +896,16 @@ static void LOCAL_FreeHandleEntry( WORD ds, HLOCAL handle )
/* Now check if all entries in this table are free */
pEntry = (LOCALHANDLEENTRY *)(ptr + *pTable + sizeof(WORD));
count = *(WORD *)(ptr + *pTable);
table = *pTable;
pEntry = (LOCALHANDLEENTRY *)(ptr + table + sizeof(WORD));
count = *(WORD *)(ptr + table);
for (i = count; i > 0; i--, pEntry++) if (pEntry->lock != 0xff) return;
/* Remove the table from the linked list and free it */
table = *pTable;
dprintf_local( stddeb, "LOCAL_FreeHandleEntry(%04x): freeing table %04x\n",
ds, table);
*pTable = *((WORD *)(ptr + count * sizeof(*pEntry)) + 1);
*pTable = *(WORD *)pEntry;
LOCAL_FreeArena( ds, ARENA_HEADER( table ) );
}
@ -773,7 +915,7 @@ static void LOCAL_FreeHandleEntry( WORD ds, HLOCAL handle )
*
* Implementation of LocalFree().
*/
HLOCAL LOCAL_Free( HANDLE ds, HLOCAL handle )
HLOCAL16 LOCAL_Free( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
@ -787,9 +929,14 @@ HLOCAL LOCAL_Free( HANDLE ds, HLOCAL handle )
}
else
{
WORD arena = ARENA_HEADER( *(WORD *)(ptr + handle) );
dprintf_local( stddeb, "LocalFree: real block at %04x\n", arena );
if (LOCAL_FreeArena( ds, arena )) return handle; /* couldn't free it */
LOCALHANDLEENTRY *pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
if (!(pEntry->flags & (LMEM_DISCARDED >> 8)))
{
dprintf_local( stddeb, "LocalFree: real block at %04x\n",
pEntry->addr );
if (LOCAL_FreeArena( ds, ARENA_HEADER(pEntry->addr) ))
return handle; /* couldn't free it */
}
LOCAL_FreeHandleEntry( ds, handle );
return 0; /* OK */
}
@ -801,17 +948,17 @@ HLOCAL LOCAL_Free( HANDLE ds, HLOCAL handle )
*
* Implementation of LocalAlloc().
*/
HLOCAL LOCAL_Alloc( HANDLE ds, WORD flags, WORD size )
HLOCAL16 LOCAL_Alloc( HANDLE16 ds, WORD flags, WORD size )
{
char *ptr;
HLOCAL handle;
HLOCAL16 handle;
dprintf_local( stddeb, "LocalAlloc: %04x %d ds=%04x\n", flags, size, ds );
if (flags & LMEM_MOVEABLE)
{
LOCALHANDLEENTRY *plhe;
HLOCAL hmem;
HLOCAL16 hmem;
if (!(hmem = LOCAL_GetBlock( ds, size, flags ))) return 0;
if (!(handle = LOCAL_GetNewHandleEntry( ds )))
@ -837,11 +984,12 @@ HLOCAL LOCAL_Alloc( HANDLE ds, WORD flags, WORD size )
*
* Implementation of LocalReAlloc().
*/
HLOCAL LOCAL_ReAlloc( HANDLE ds, HLOCAL handle, WORD size, WORD flags )
HLOCAL16 LOCAL_ReAlloc( HANDLE16 ds, HLOCAL16 handle, WORD size, WORD flags )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
LOCALARENA *pArena, *pNext;
LOCALHANDLEENTRY *pEntry;
WORD arena, newhandle, blockhandle;
LONG nextarena;
@ -858,11 +1006,52 @@ HLOCAL LOCAL_ReAlloc( HANDLE ds, HLOCAL handle, WORD size, WORD flags )
dprintf_local( stddeb, "LocalReAlloc: arena is %04x\n", arena );
pArena = ARENA_PTR( ptr, arena );
if (flags & LMEM_MODIFY) {
dprintf_local( stddeb, "LMEM_MODIFY set\n");
return handle;
if ((flags & LMEM_MODIFY) && (flags & LMEM_DISCARDABLE))
{
if (HANDLE_FIXED(handle))
{
fprintf(stderr,"LocalReAlloc: LMEM_MODIFY & LMEM_DISCARDABLE on a fixed handle.\n");
return handle;
}
dprintf_local( stddeb, "Making block discardable.\n" );
pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
pEntry->flags |= (LMEM_DISCARDABLE >> 8);
return handle;
}
if (!size) size = 1;
if ((flags & LMEM_MODIFY) || (flags & LMEM_DISCARDABLE))
{
fprintf(stderr,"LocalReAlloc: flags %04x. MODIFY & DISCARDABLE should both be set\n", flags);
return handle;
}
if (!size)
{
if (HANDLE_FIXED(handle))
{
if (flags & LMEM_MOVEABLE)
{
dprintf_local(stddeb, "Freeing fixed block.\n");
return LOCAL_Free( ds, handle );
}
else size = 1;
}
else
{
pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
if (pEntry->lock == 0)
{
/* discards moveable blocks is this right? */
dprintf_local(stddeb,"Discarding block\n");
LOCAL_FreeArena(ds, ARENA_HEADER(pEntry->addr));
pEntry->addr = 0;
pEntry->flags = (LMEM_DISCARDED >> 8);
return 0;
}
return handle;
}
}
size = LALIGN( size );
nextarena = LALIGN(blockhandle + size);
@ -901,17 +1090,26 @@ HLOCAL LOCAL_ReAlloc( HANDLE ds, HLOCAL handle, WORD size, WORD flags )
return handle;
}
/* Now we have to allocate a new block */
/* Now we have to allocate a new block, but not if fixed block and no
LMEM_MOVEABLE */
newhandle = LOCAL_GetBlock( ds, size, flags );
if (newhandle == 0) return 0;
if (HANDLE_FIXED(handle) && !(flags & LMEM_MOVEABLE))
{
dprintf_local(stddeb, "Needed to move fixed block, but LMEM_MOVEABLE not specified.\n");
return 0; /* FIXME: should we free it here? */
}
if (!(newhandle = LOCAL_GetBlock( ds, size, flags ))) return 0;
ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
memcpy( ptr + newhandle, ptr + (arena + ARENA_HEADER_SIZE), size );
LOCAL_FreeArena( ds, arena );
if (HANDLE_MOVEABLE( handle ))
{
dprintf_local( stddeb, "LocalReAlloc: fixing handle\n");
*(WORD *)(ptr + handle) = newhandle;
pEntry = (LOCALHANDLEENTRY *)(ptr + handle);
pEntry->addr = newhandle;
pEntry->flags |= ~(LMEM_DISCARDED >> 8); /* clear discarded flag */
pEntry->lock = 0;
newhandle = handle;
}
dprintf_local( stddeb, "LocalReAlloc: returning %04x\n", newhandle );
@ -922,7 +1120,7 @@ HLOCAL LOCAL_ReAlloc( HANDLE ds, HLOCAL handle, WORD size, WORD flags )
/***********************************************************************
* LOCAL_InternalLock
*/
static HLOCAL LOCAL_InternalLock( LPSTR heap, HLOCAL handle )
static HLOCAL16 LOCAL_InternalLock( LPSTR heap, HLOCAL16 handle )
{
dprintf_local( stddeb, "LocalLock: %04x ", handle );
if (HANDLE_MOVEABLE(handle))
@ -939,7 +1137,7 @@ static HLOCAL LOCAL_InternalLock( LPSTR heap, HLOCAL handle )
/***********************************************************************
* LOCAL_Lock
*/
LPSTR LOCAL_Lock( HANDLE ds, HLOCAL handle )
LPSTR LOCAL_Lock( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
return handle ? ptr + LOCAL_InternalLock( ptr, handle ) : NULL;
@ -949,7 +1147,7 @@ LPSTR LOCAL_Lock( HANDLE ds, HLOCAL handle )
/***********************************************************************
* LOCAL_Unlock
*/
BOOL LOCAL_Unlock( WORD ds, HLOCAL handle )
BOOL LOCAL_Unlock( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
@ -971,7 +1169,7 @@ BOOL LOCAL_Unlock( WORD ds, HLOCAL handle )
*
* Implementation of LocalSize().
*/
WORD LOCAL_Size( WORD ds, HLOCAL handle )
WORD LOCAL_Size( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( CURRENT_DS, 0 );
LOCALARENA *pArena;
@ -989,7 +1187,7 @@ WORD LOCAL_Size( WORD ds, HLOCAL handle )
*
* Implementation of LocalFlags().
*/
WORD LOCAL_Flags( WORD ds, HLOCAL handle )
WORD LOCAL_Flags( HANDLE16 ds, HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
@ -1014,7 +1212,7 @@ WORD LOCAL_Flags( WORD ds, HLOCAL handle )
*
* Implementation of LocalHeapSize().
*/
WORD LOCAL_HeapSize( WORD ds )
WORD LOCAL_HeapSize( HANDLE16 ds )
{
LOCALHEAPINFO *pInfo = LOCAL_GetHeap( ds );
if (!pInfo) return 0;
@ -1027,7 +1225,7 @@ WORD LOCAL_HeapSize( WORD ds )
*
* Implementation of LocalCountFree().
*/
WORD LOCAL_CountFree( WORD ds )
WORD LOCAL_CountFree( HANDLE16 ds )
{
WORD arena, total;
LOCALARENA *pArena;
@ -1061,7 +1259,7 @@ WORD LOCAL_CountFree( WORD ds )
*
* Implementation of LocalHandle().
*/
HLOCAL LOCAL_Handle( WORD ds, WORD addr )
HLOCAL16 LOCAL_Handle( HANDLE16 ds, WORD addr )
{
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo;
@ -1082,91 +1280,94 @@ HLOCAL LOCAL_Handle( WORD ds, WORD addr )
WORD count = *(WORD *)(ptr + table);
LOCALHANDLEENTRY *pEntry = (LOCALHANDLEENTRY*)(ptr+table+sizeof(WORD));
for (; count > 0; count--, pEntry++)
if (pEntry->addr == addr) return (HLOCAL)((char *)pEntry - ptr);
if (pEntry->addr == addr) return (HLOCAL16)((char *)pEntry - ptr);
table = *(WORD *)pEntry;
}
return (HLOCAL)addr; /* Fixed block handle is addr */
return (HLOCAL16)addr; /* Fixed block handle is addr */
}
/***********************************************************************
* LocalAlloc (KERNEL.5)
* LocalAlloc16 (KERNEL.5)
*/
HLOCAL LocalAlloc( WORD flags, WORD size )
HLOCAL16 LocalAlloc16( UINT16 flags, WORD size )
{
return LOCAL_Alloc( CURRENT_DS, flags, size );
}
/***********************************************************************
* LocalReAlloc (KERNEL.6)
* LocalReAlloc16 (KERNEL.6)
*/
HLOCAL LocalReAlloc( HLOCAL handle, WORD size, WORD flags )
HLOCAL16 LocalReAlloc16( HLOCAL16 handle, WORD size, UINT16 flags )
{
return LOCAL_ReAlloc( CURRENT_DS, handle, size, flags );
}
/***********************************************************************
* LocalFree (KERNEL.7)
* LocalFree16 (KERNEL.7)
*/
HLOCAL LocalFree( HLOCAL handle )
HLOCAL16 LocalFree16( HLOCAL16 handle )
{
return LOCAL_Free( CURRENT_DS, handle );
}
/***********************************************************************
* LocalLock (KERNEL.8)
* LocalLock16 (KERNEL.8)
*
* Note: only the offset part of the pointer is returned by the relay code.
*/
NPVOID LocalLock( HLOCAL handle )
SEGPTR LocalLock16( HLOCAL16 handle )
{
char *ptr = PTR_SEG_OFF_TO_LIN( CURRENT_DS, 0 );
return (NPVOID)LOCAL_InternalLock( ptr, handle );
HANDLE16 ds = CURRENT_DS;
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
return PTR_SEG_OFF_TO_SEGPTR( ds, LOCAL_InternalLock( ptr, handle ) );
}
/***********************************************************************
* LocalUnlock (KERNEL.9)
* LocalUnlock16 (KERNEL.9)
*/
BOOL LocalUnlock( HLOCAL handle )
BOOL LocalUnlock16( HLOCAL16 handle )
{
return LOCAL_Unlock( CURRENT_DS, handle );
}
/***********************************************************************
* LocalSize (KERNEL.10)
* LocalSize16 (KERNEL.10)
*/
WORD LocalSize( HLOCAL handle )
UINT16 LocalSize16( HLOCAL16 handle )
{
return LOCAL_Size( CURRENT_DS, handle );
}
/***********************************************************************
* LocalHandle (KERNEL.11)
* LocalHandle16 (KERNEL.11)
*/
HLOCAL LocalHandle( WORD addr )
HLOCAL16 LocalHandle16( WORD addr )
{
return LOCAL_Handle( CURRENT_DS, addr );
}
/***********************************************************************
* LocalFlags (KERNEL.12)
* LocalFlags16 (KERNEL.12)
*/
WORD LocalFlags( HLOCAL handle )
UINT16 LocalFlags16( HLOCAL16 handle )
{
return LOCAL_Flags( CURRENT_DS, handle );
}
/***********************************************************************
* LocalCompact (KERNEL.13)
* LocalCompact16 (KERNEL.13)
*/
WORD LocalCompact( WORD minfree )
UINT16 LocalCompact16( UINT16 minfree )
{
dprintf_local( stddeb, "LocalCompact: %04x\n", minfree );
return LOCAL_Compact( CURRENT_DS, minfree, 0 );
@ -1180,7 +1381,7 @@ FARPROC LocalNotify( FARPROC func )
{
LOCALHEAPINFO *pInfo;
FARPROC oldNotify;
WORD ds = CURRENT_DS;
HANDLE16 ds = CURRENT_DS;
if (!(pInfo = LOCAL_GetHeap( ds )))
{
@ -1188,7 +1389,7 @@ FARPROC LocalNotify( FARPROC func )
LOCAL_PrintHeap( ds );
return 0;
}
dprintf_local( stddeb, "LocalNotify(%04x): %08lx\n", ds, func );
dprintf_local( stddeb, "LocalNotify(%04x): %08lx\n", ds, (DWORD)func );
oldNotify = pInfo->notify;
pInfo->notify = func;
return oldNotify;
@ -1196,9 +1397,9 @@ FARPROC LocalNotify( FARPROC func )
/***********************************************************************
* LocalShrink (KERNEL.121)
* LocalShrink16 (KERNEL.121)
*/
WORD LocalShrink( HLOCAL handle, WORD newsize )
UINT16 LocalShrink16( HGLOBAL16 handle, UINT16 newsize )
{
dprintf_local( stddeb, "LocalShrink: %04x %04x\n", handle, newsize );
return 0;
@ -1263,7 +1464,7 @@ WORD LocalHandleDelta( WORD delta )
*/
BOOL LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL handle )
{
LOCALHEAPINFO *pInfo = LOCAL_GetHeap(SELECTOROF(WIN16_GlobalLock(handle)));
LOCALHEAPINFO *pInfo = LOCAL_GetHeap(SELECTOROF(WIN16_GlobalLock16(handle)));
if (!pInfo) return FALSE;
pLocalInfo->wcItems = pInfo->items;
return TRUE;
@ -1275,7 +1476,7 @@ BOOL LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL handle )
*/
BOOL LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL handle )
{
WORD ds = SELECTOROF( WIN16_GlobalLock( handle ) );
WORD ds = SELECTOROF( WIN16_GlobalLock16( handle ) );
char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 );
LOCALHEAPINFO *pInfo = LOCAL_GetHeap( ds );
if (!pInfo) return FALSE;
@ -1319,4 +1520,95 @@ BOOL LocalNext( LOCALENTRY *pLocalEntry )
return TRUE;
}
#ifndef WINELIB
#endif /* WINELIB */
/***********************************************************************
* LocalAlloc32 (KERNEL32.371)
*/
HLOCAL32 LocalAlloc32( UINT32 flags, DWORD size )
{
return (HLOCAL32)GlobalAlloc32( flags, size );
}
/***********************************************************************
* LocalCompact32 (KERNEL32.372)
*/
UINT32 LocalCompact32( UINT32 minfree )
{
return 0; /* LocalCompact does nothing in Win32 */
}
/***********************************************************************
* LocalFlags32 (KERNEL32.374)
*/
UINT32 LocalFlags32( HLOCAL32 handle )
{
return GlobalFlags32( (HGLOBAL32)handle );
}
/***********************************************************************
* LocalFree32 (KERNEL32.375)
*/
HLOCAL32 LocalFree32( HLOCAL32 handle )
{
return (HLOCAL32)GlobalFree32( (HGLOBAL32)handle );
}
/***********************************************************************
* LocalHandle32 (KERNEL32.376)
*/
HLOCAL32 LocalHandle32( LPCVOID ptr )
{
return (HLOCAL32)GlobalHandle32( ptr );
}
/***********************************************************************
* LocalLock32 (KERNEL32.377)
*/
LPVOID LocalLock32( HLOCAL32 handle )
{
return GlobalLock32( (HGLOBAL32)handle );
}
/***********************************************************************
* LocalReAlloc32 (KERNEL32.378)
*/
HLOCAL32 LocalReAlloc32( HLOCAL32 handle, DWORD size, UINT32 flags )
{
return (HLOCAL32)GlobalReAlloc32( (HGLOBAL32)handle, size, flags );
}
/***********************************************************************
* LocalShrink32 (KERNEL32.379)
*/
UINT32 LocalShrink32( HGLOBAL32 handle, UINT32 newsize )
{
return 0; /* LocalShrink does nothing in Win32 */
}
/***********************************************************************
* LocalSize32 (KERNEL32.380)
*/
UINT32 LocalSize32( HLOCAL32 handle )
{
return GlobalSize32( (HGLOBAL32)handle );
}
/***********************************************************************
* LocalUnlock32 (KERNEL32.381)
*/
BOOL LocalUnlock32( HLOCAL32 handle )
{
return GlobalUnlock32( (HGLOBAL32)handle );
}

View File

@ -4,8 +4,6 @@
* Copyright 1995 Alexandre Julliard
*/
#ifndef WINELIB
#include <string.h>
#include "windows.h"
#include "ldt.h"
@ -73,6 +71,7 @@ WORD FreeSelector( WORD sel )
dprintf_selector( stddeb, "FreeSelector(%04x)\n", sel );
if (IS_SELECTOR_FREE(sel)) return sel; /* error */
count = (GET_SEL_LIMIT(sel) >> 16) + 1;
sel &= ~(__AHINCR - 1); /* clear bottom bits of selector */
nextsel = sel + (count << __AHSHIFT);
memset( &entry, 0, sizeof(entry) ); /* clear the LDT entries */
/* FIXME: is it correct to free the whole array? */
@ -484,5 +483,3 @@ SEGPTR MAKE_SEGPTR(void * ptr)
return ((entry << 16) | ((unsigned) ptr & 0xffff));
}
#endif
#endif /* WINELIB */

View File

@ -28,8 +28,7 @@ typedef struct tagCLIPFORMAT {
DWORD BufSize;
void *PrevFormat;
void *NextFormat;
} CLIPFORMAT;
typedef CLIPFORMAT FAR* LPCLIPFORMAT;
} CLIPFORMAT, *LPCLIPFORMAT;
static HWND hWndClipboardOwner = 0;
static HWND hWndViewer = 0;
@ -87,7 +86,7 @@ BOOL EmptyClipboard()
while(TRUE) {
if (lpFormat == NULL) break;
if (lpFormat->hData != 0) {
GlobalFree(lpFormat->hData);
GlobalFree16(lpFormat->hData);
lpFormat->hData = 0;
}
lpFormat = lpFormat->NextFormat;
@ -130,7 +129,7 @@ HANDLE SetClipboardData(WORD wFormat, HANDLE hData)
XSetSelectionOwner(display,XA_PRIMARY,WIN_GetXWindow(hWndClipboardOwner),CurrentTime);
wineOwnsSelection = True;
dprintf_clipboard(stddeb,"Getting selection\n");
if (lpFormat->hData != 0) GlobalFree(lpFormat->hData);
if (lpFormat->hData != 0) GlobalFree16(lpFormat->hData);
lpFormat->hData = hData;
return lpFormat->hData;
}
@ -339,7 +338,7 @@ HWND GetOpenClipboardWindow()
/**************************************************************************
* GetPriorityClipboardFormat [USER.402]
*/
int GetPriorityClipboardFormat(WORD FAR *lpPriorityList, short nCount)
int GetPriorityClipboardFormat(WORD *lpPriorityList, short nCount)
{
dprintf_clipboard(stdnimp,
"GetPriorityClipboardFormat(%p, %d) !\n", lpPriorityList, nCount);
@ -377,9 +376,9 @@ void CLIPBOARD_ReadSelection(Window w,Atom prop)
hText=0;
} else {
dprintf_clipboard(stddeb,"Selection is %s\n",val);
hText=GlobalAlloc(GMEM_MOVEABLE, nitems+1);
memcpy(GlobalLock(hText),val,nitems+1);
GlobalUnlock(hText);
hText=GlobalAlloc16(GMEM_MOVEABLE, nitems+1);
memcpy(GlobalLock16(hText),val,nitems+1);
GlobalUnlock16(hText);
}
XFree(val);
}
@ -388,7 +387,7 @@ void CLIPBOARD_ReadSelection(Window w,Atom prop)
if (lpFormat->wFormatID == CF_TEXT) break;
lpFormat = lpFormat->NextFormat;
}
if (lpFormat->hData != 0) GlobalFree(lpFormat->hData);
if (lpFormat->hData != 0) GlobalFree16(lpFormat->hData);
wait_for_selection=False;
lpFormat->hData = hText;
dprintf_clipboard(stddeb,"Received selection\n");

View File

@ -426,7 +426,7 @@ int FlushComm(int fd, int fnQueue)
}
}
int GetCommError(int fd, COMSTAT FAR *lpStat)
int GetCommError(int fd, COMSTAT *lpStat)
{
int temperror;
@ -437,7 +437,7 @@ int GetCommError(int fd, COMSTAT FAR *lpStat)
return(temperror);
}
UINT FAR* SetCommEventMask(int fd, UINT fuEvtMask)
UINT * SetCommEventMask(int fd, UINT fuEvtMask)
{
dprintf_comm(stddeb,
"SetCommEventMask: fd %d, mask %d\n", fd, fuEvtMask);
@ -453,7 +453,7 @@ UINT GetCommEventMask(int fd, int fnEvtClear)
return eventmask;
}
int SetCommState(DCB FAR *lpdcb)
int SetCommState(DCB *lpdcb)
{
struct termios port;
struct DosDeviceStruct *ptr;
@ -652,7 +652,7 @@ int SetCommState(DCB FAR *lpdcb)
}
}
int GetCommState(int fd, DCB FAR *lpdcb)
int GetCommState(int fd, DCB *lpdcb)
{
struct termios port;

View File

@ -28,6 +28,7 @@ static HBITMAP hFolder2 = 0;
static HBITMAP hFloppy = 0;
static HBITMAP hHDisk = 0;
static HBITMAP hCDRom = 0;
static HBITMAP hBitmapTT = 0;
/***********************************************************************
* FileDlg_Init [internal]
@ -715,11 +716,11 @@ BOOL FindText(LPFINDREPLACE lpFind)
*/
hDlgTmpl = SYSRES_LoadResource( SYSRES_DIALOG_FIND_TEXT );
hInst = WIN_GetWindowInstance( lpFind->hwndOwner );
if (!(ptr = (SEGPTR)WIN16_GlobalLock( hDlgTmpl ))) return -1;
if (!(ptr = (SEGPTR)WIN16_GlobalLock16( hDlgTmpl ))) return -1;
bRet = CreateDialogIndirectParam( hInst, ptr, lpFind->hwndOwner,
MODULE_GetWndProcEntry16("FindTextDlgProc"),
(DWORD)lpFind );
GlobalUnlock( hDlgTmpl );
GlobalUnlock16( hDlgTmpl );
SYSRES_FreeResource( hDlgTmpl );
return bRet;
}
@ -744,11 +745,11 @@ BOOL ReplaceText(LPFINDREPLACE lpFind)
*/
hDlgTmpl = SYSRES_LoadResource( SYSRES_DIALOG_REPLACE_TEXT );
hInst = WIN_GetWindowInstance( lpFind->hwndOwner );
if (!(ptr = (SEGPTR)WIN16_GlobalLock( hDlgTmpl ))) return -1;
if (!(ptr = (SEGPTR)WIN16_GlobalLock16( hDlgTmpl ))) return -1;
bRet = CreateDialogIndirectParam( hInst, ptr, lpFind->hwndOwner,
MODULE_GetWndProcEntry16("ReplaceTextDlgProc"),
(DWORD)lpFind );
GlobalUnlock( hDlgTmpl );
GlobalUnlock16( hDlgTmpl );
SYSRES_FreeResource( hDlgTmpl );
return bRet;
}
@ -2150,8 +2151,6 @@ LRESULT ColorDlgProc(HWND hDlg, UINT message,
/***********************************************************************
* ChooseFont (COMMDLG.15)
--April 1996--
please note: ChooseFont etc. are still under construction
*/
BOOL ChooseFont(LPCHOOSEFONT lpChFont)
{
@ -2167,63 +2166,516 @@ BOOL ChooseFont(LPCHOOSEFONT lpChFont)
return bRet;
}
/***********************************************************************
* FontStyleEnumProc (COMMDLG.18)
*/
int FontStyleEnumProc(LOGFONT *lf ,TEXTMETRIC *tm, int fonttype, LPARAM lParam)
#define TEXT_EXTRAS 4
#define TEXT_COLORS 16
static const COLORREF textcolors[TEXT_COLORS]=
{
dprintf_commdlg(stddeb,"FontStyleEnumProc: font=%s (height=%d)\n",lf->lfFaceName,lf->lfHeight);
return 1;
0x00000000L,0x00000080L,0x00008000L,0x00008080L,
0x00800000L,0x00800080L,0x00808000L,0x00808080L,
0x00c0c0c0L,0x000000ffL,0x0000ff00L,0x0000ffffL,
0x00ff0000L,0x00ff00ffL,0x00ffff00L,0x00FFFFFFL
};
/***********************************************************************
* CFn_HookCallChk [internal]
*/
static BOOL CFn_HookCallChk(LPCHOOSEFONT lpcf)
{
if (lpcf)
if(lpcf->Flags & CF_ENABLEHOOK)
if (lpcf->lpfnHook)
return TRUE;
return FALSE;
}
/***********************************************************************
* FontFamilyEnumProc (COMMDLG.19)
* FontFamilyEnumProc (COMMDLG.19)
*/
int FontFamilyEnumProc(LOGFONT *lf ,TEXTMETRIC *tm, int fonttype, LPARAM lParam)
int FontFamilyEnumProc(LPLOGFONT lplf ,LPTEXTMETRIC lptm, int nFontType, LPARAM lParam)
{
dprintf_commdlg(stddeb,"FontFamilyEnumProc: font=%s\n",lf->lfFaceName);
return 1;
int i;
WORD w;
HWND hwnd=LOWORD(lParam);
dprintf_commdlg(stddeb,"FontFamilyEnumProc: font=%s (nFontType=%d)\n",
lplf->lfFaceName,nFontType);
i=SendMessage(hwnd,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(lplf->lfFaceName));
if (i!=CB_ERR)
{
w=(lplf->lfCharSet << 8) | lplf->lfPitchAndFamily;
SendMessage(hwnd, CB_SETITEMDATA,i,MAKELONG(nFontType,w));
return 1 ;
}
else
return 0;
}
/***********************************************************************
* ColorDlgProc (COMMDLG.16)
* FontStyleEnumProc (COMMDLG.18)
*/
LRESULT FormatCharDlgProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam)
int FontStyleEnumProc(LPLOGFONT lplf ,LPTEXTMETRIC lptm, int nFontType, LPARAM lParam)
{
int j;
char buffer[20];
/* HWND hcmb2=LOWORD(lParam);*/
HWND hcmb3=HIWORD(lParam);
LPLOGFONT lf=lplf;
dprintf_commdlg(stddeb,"FontStyleEnumProc: (nFontType=%d)\n",nFontType);
dprintf_commdlg(stddeb," %s h=%d w=%d e=%d o=%d wg=%d i=%d u=%d s=%d ch=%d op=%d cp=%d q=%d pf=%xh\n",
lf->lfFaceName,lf->lfHeight,lf->lfWidth,lf->lfEscapement,lf->lfOrientation,
lf->lfWeight,lf->lfItalic,lf->lfUnderline,lf->lfStrikeOut,lf->lfCharSet,
lf->lfOutPrecision,lf->lfClipPrecision,lf->lfQuality,lf->lfPitchAndFamily);
#if 1 /* VERSION A: use some predefined height values */
/* FIXME: if (!(nFontType & RASTER_FONTTYPE))......... */
{
int sizes[]={8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72,0};
int i;
if (!SendMessage(hcmb3,CB_GETCOUNT,0,0))
{
i=0;
while (sizes[i])
{
sprintf(buffer,"%3d",sizes[i++]);
j=SendMessage(hcmb3,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendMessage(hcmb3, CB_SETITEMDATA, j, MAKELONG(sizes[i],0));
}
}
}
return 0;
#endif
#if 0 /* VERSION B: use only lplf->lfHeight values */
{
if (lplf->lfHeight)
{
sprintf(buffer,"%3d",lplf->lfHeight);
j=SendMessage(hcmb3,CB_FINDSTRING,-1,(LPARAM)MAKE_SEGPTR(buffer));
if (j==CB_ERR)
{
j=SendMessage(hcmb3,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendMessage(hcmb3, CB_SETITEMDATA, j, MAKELONG(lplf->lfHeight,lplf->lfWidth));
}
}
}
return 1 ;
#endif
}
/***********************************************************************
* CFn_WMInitDialog [internal]
*/
LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
FARPROC enumCallback;
switch (wMsg)
int i,j,res,init=0;
long l;
char buffer[32];
FARPROC enumCallback = MODULE_GetWndProcEntry16("FontFamilyEnumProc");
LPLOGFONT lpxx;
HCURSOR hcursor=SetCursor(LoadCursor(0,IDC_WAIT));
LPCHOOSEFONT lpcf;
SetWindowLong(hDlg, DWL_USER, lParam);
lpcf=(LPCHOOSEFONT)lParam;
lpxx=PTR_SEG_TO_LIN(lpcf->lpLogFont);
dprintf_commdlg(stddeb,"FormatCharDlgProc // WM_INITDIALOG lParam=%08lX\n", lParam);
if (lpcf->lStructSize != sizeof(CHOOSEFONT))
{
dprintf_commdlg(stddeb,"WM_INITDIALOG: structure size failure !!!\n");
EndDialog (hDlg, 0);
return FALSE;
}
if (!hBitmapTT)
hBitmapTT = LoadBitmap(0, MAKEINTRESOURCE(OBM_TRTYPE));
if (!(lpcf->Flags & CF_SHOWHELP) || !IsWindow(lpcf->hwndOwner))
ShowWindow(GetDlgItem(hDlg,pshHelp),SW_HIDE);
if (!(lpcf->Flags & CF_APPLY))
ShowWindow(GetDlgItem(hDlg,psh3),SW_HIDE);
if (lpcf->Flags & CF_EFFECTS)
{
for (res=1,i=0;res && i<TEXT_COLORS;i++)
{
case WM_INITDIALOG:
dprintf_commdlg(stddeb,"FormatCharDlgProc // WM_INITDIALOG lParam=%08lX\n", lParam);
ShowWindow(hDlg, SW_SHOWNORMAL);
hdc = GetDC(hDlg);
if (hdc)
/* FIXME: load color name from resource: res=LoadString(...,i+....,buffer,.....); */
j=SendDlgItemMessage(hDlg,cmb4,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR("[color name]"));
SendDlgItemMessage(hDlg,cmb4, CB_SETITEMDATA,j,textcolors[j]);
/* look for a fitting value in color combobox */
if (textcolors[j]==lpcf->rgbColors)
SendDlgItemMessage(hDlg,cmb4, CB_SETCURSEL,j,0);
}
}
else
{
ShowWindow(GetDlgItem(hDlg,cmb4),SW_HIDE);
ShowWindow(GetDlgItem(hDlg,chx1),SW_HIDE);
ShowWindow(GetDlgItem(hDlg,chx2),SW_HIDE);
ShowWindow(GetDlgItem(hDlg,grp1),SW_HIDE);
ShowWindow(GetDlgItem(hDlg,stc4),SW_HIDE);
}
/* perhaps this stuff should be moved to FontStyleEnumProc() ?? */
strcpy(buffer,"Regular"); /* LoadString(hInst,.... ,buffer,LF_FACESIZE);*/
j=SendDlgItemMessage(hDlg,cmb2,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendDlgItemMessage(hDlg,cmb2, CB_SETITEMDATA, j, MAKELONG(FW_NORMAL,0));
strcpy(buffer,"Bold"); /* LoadString(hInst,.... ,buffer,LF_FACESIZE);*/
j=SendDlgItemMessage(hDlg,cmb2,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendDlgItemMessage(hDlg,cmb2, CB_SETITEMDATA, j, MAKELONG(FW_BOLD,0));
strcpy(buffer,"Italic"); /* LoadString(hInst,.... ,buffer,LF_FACESIZE);*/
j=SendDlgItemMessage(hDlg,cmb2,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendDlgItemMessage(hDlg,cmb2, CB_SETITEMDATA, j, MAKELONG(FW_NORMAL,1));
strcpy(buffer,"Bold Italic"); /* LoadString(hInst,.... ,buffer,LF_FACESIZE);*/
j=SendDlgItemMessage(hDlg,cmb2,CB_ADDSTRING,0,(LPARAM)MAKE_SEGPTR(buffer));
SendDlgItemMessage(hDlg,cmb2, CB_SETITEMDATA, j, MAKELONG(FW_BOLD,1));
hdc= (lpcf->Flags & CF_PRINTERFONTS && lpcf->hDC) ? lpcf->hDC : GetDC(hDlg);
if (hdc)
{
if (!EnumFontFamilies (hdc, NULL,enumCallback,(LPARAM)GetDlgItem(hDlg,cmb1)))
dprintf_commdlg(stddeb,"WM_INITDIALOG: EnumFontFamilies returns 0\n");
if (lpcf->Flags & CF_INITTOLOGFONTSTRUCT)
{
/* look for fitting font name in combobox1 */
j=SendDlgItemMessage(hDlg,cmb1,CB_FINDSTRING,-1,(LONG)lpxx->lfFaceName);
if (j!=CB_ERR)
{
HCURSOR hcursor=SetCursor(LoadCursor(0,IDC_WAIT));
/*
currently only called for testing of 2 necessary EnumProcs
*/
enumCallback = MODULE_GetWndProcEntry16("FontFamilyEnumProc");
EnumFontFamilies (hdc, NULL,enumCallback ,NULL);
enumCallback = MODULE_GetWndProcEntry16("FontStyleEnumProc");
EnumFontFamilies(hdc, /* for example : */ "COURIER",enumCallback,NULL);
ReleaseDC(hDlg,hdc);
SetCursor(hcursor);
SendDlgItemMessage(hDlg,cmb1,CB_SETCURSEL,j,0);
SendMessage(hDlg,WM_COMMAND,cmb1,MAKELONG(GetDlgItem(hDlg,cmb1),CBN_SELCHANGE));
init=1;
/* look for fitting font style in combobox2 */
l=MAKELONG(lpxx->lfWeight > FW_MEDIUM ? FW_BOLD:FW_NORMAL,lpxx->lfItalic !=0);
for (i=0;i<TEXT_EXTRAS;i++)
{
if (l==SendDlgItemMessage(hDlg,cmb2, CB_GETITEMDATA,i,0))
SendDlgItemMessage(hDlg,cmb2,CB_SETCURSEL,i,0);
}
/* look for fitting font size in combobox3 */
j=SendDlgItemMessage(hDlg,cmb3,CB_GETCOUNT,0,0);
for (i=0;i<j;i++)
{
if (lpxx->lfHeight==(int)SendDlgItemMessage(hDlg,cmb3, CB_GETITEMDATA,i,0))
SendDlgItemMessage(hDlg,cmb3,CB_SETCURSEL,i,0);
}
}
return (TRUE);
case WM_COMMAND:
switch (wParam)
{
case IDOK:
EndDialog(hDlg, TRUE);
return(TRUE);
case IDCANCEL:
EndDialog(hDlg, FALSE);
return(TRUE);
if (!init)
{
SendDlgItemMessage(hDlg,cmb1,CB_SETCURSEL,0,0);
SendMessage(hDlg,WM_COMMAND,cmb1,MAKELONG(GetDlgItem(hDlg,cmb1),CBN_SELCHANGE));
}
}
if (lpcf->Flags & CF_USESTYLE && lpcf->lpszStyle)
{
j=SendDlgItemMessage(hDlg,cmb2,CB_FINDSTRING,-1,(LONG)lpcf->lpszStyle);
if (j!=CB_ERR)
{
j=SendDlgItemMessage(hDlg,cmb2,CB_SETCURSEL,j,0);
SendMessage(hDlg,WM_COMMAND,cmb2,MAKELONG(GetDlgItem(hDlg,cmb2),CBN_SELCHANGE));
}
}
}
else
{
dprintf_commdlg(stddeb,"WM_INITDIALOG: HDC failure !!!\n");
EndDialog (hDlg, 0);
return FALSE;
}
if (!(lpcf->Flags & CF_PRINTERFONTS && lpcf->hDC))
ReleaseDC(hDlg,hdc);
res=TRUE;
if (CFn_HookCallChk(lpcf))
res=CallWindowProc(lpcf->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam);
SetCursor(hcursor);
return res;
}
/***********************************************************************
* CFn_WMMeasureItem [internal]
*/
LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
BITMAP bm;
LPMEASUREITEMSTRUCT lpmi=PTR_SEG_TO_LIN((LPMEASUREITEMSTRUCT)lParam);
if (!hBitmapTT)
hBitmapTT = LoadBitmap(0, MAKEINTRESOURCE(OBM_TRTYPE));
GetObject(hBitmapTT, sizeof(BITMAP), (LPSTR)&bm);
lpmi->itemHeight=bm.bmHeight;
/* FIXME: use MAX of bm.bmHeight and tm.tmHeight .*/
return 0;
}
/***********************************************************************
* CFn_WMDrawItem [internal]
*/
LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
HBRUSH hBrush;
char buffer[40];
BITMAP bm;
COLORREF cr;
RECT rect;
#if 0
HDC hMemDC;
int nFontType;
HBITMAP hBitmap; /* for later TT usage */
#endif
LPDRAWITEMSTRUCT lpdi = (LPDRAWITEMSTRUCT)PTR_SEG_TO_LIN(lParam);
if (lpdi->itemID == 0xFFFF) /* got no items */
DrawFocusRect(lpdi->hDC, &lpdi->rcItem);
else
{
if (lpdi->CtlType == ODT_COMBOBOX)
{
hBrush = SelectObject(lpdi->hDC, GetStockObject(LTGRAY_BRUSH));
SelectObject(lpdi->hDC, hBrush);
FillRect(lpdi->hDC, &lpdi->rcItem, hBrush);
}
else
return TRUE; /* this should never happen */
rect=lpdi->rcItem;
switch (lpdi->CtlID)
{
case cmb1: /* dprintf_commdlg(stddeb,"WM_Drawitem cmb1\n"); */
SendMessage(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)MAKE_SEGPTR(buffer));
GetObject(hBitmapTT, sizeof(BITMAP), (LPSTR)&bm);
TextOut(lpdi->hDC, lpdi->rcItem.left + bm.bmWidth + 10,
lpdi->rcItem.top, buffer, lstrlen(buffer));
#if 0
nFontType = SendMessage(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L);
/* FIXME: draw bitmap if truetype usage */
if (nFontType&TRUETYPE_FONTTYPE)
{
hMemDC = CreateCompatibleDC(lpdi->hDC);
hBitmap = SelectObject(hMemDC, hBitmapTT);
BitBlt(lpdi->hDC, lpdi->rcItem.left, lpdi->rcItem.top,
bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY);
SelectObject(hMemDC, hBitmap);
DeleteDC(hMemDC);
}
#endif
break;
case cmb2:
case cmb3: /* dprintf_commdlg(stddeb,"WM_DRAWITEN cmb2,cmb3\n"); */
SendMessage(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)MAKE_SEGPTR(buffer));
TextOut(lpdi->hDC, lpdi->rcItem.left,
lpdi->rcItem.top, buffer, lstrlen(buffer));
break;
case cmb4: /* dprintf_commdlg(stddeb,"WM_DRAWITEM cmb4 (=COLOR)\n"); */
SendMessage(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)MAKE_SEGPTR(buffer));
TextOut(lpdi->hDC, lpdi->rcItem.left + 25+5,
lpdi->rcItem.top, buffer, lstrlen(buffer));
cr = SendMessage(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L);
hBrush = CreateSolidBrush(cr);
if (hBrush)
{
hBrush = SelectObject (lpdi->hDC, hBrush) ;
rect.right=rect.left+25;
rect.top++;
rect.left+=5;
rect.bottom--;
Rectangle(lpdi->hDC,rect.left,rect.top,rect.right,rect.bottom);
DeleteObject (SelectObject (lpdi->hDC, hBrush)) ;
}
rect=lpdi->rcItem;
rect.left+=25+5;
break;
default: return TRUE; /* this should never happen */
}
if (lpdi->itemState ==ODS_SELECTED)
InvertRect(lpdi->hDC, &rect);
}
return TRUE;
}
/***********************************************************************
* CFn_WMCtlColor [internal]
*/
LRESULT CFn_WMCtlColor(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
LPCHOOSEFONT lpcf=(LPCHOOSEFONT)GetWindowLong(hDlg, DWL_USER);
if (lpcf->Flags & CF_EFFECTS)
if (HIWORD(lParam)==CTLCOLOR_STATIC && GetDlgCtrlID(LOWORD(lParam))==stc6)
{
SetTextColor(wParam,lpcf->rgbColors);
return GetStockObject(WHITE_BRUSH);
}
return 0;
}
/***********************************************************************
* CFn_WMCommand [internal]
*/
LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
char buffer[200];
FARPROC enumCallback;
HFONT hFont/*,hFontOld*/;
int i,j;
long l;
HDC hdc;
LPCHOOSEFONT lpcf=(LPCHOOSEFONT)GetWindowLong(hDlg, DWL_USER);
LPLOGFONT lpxx=PTR_SEG_TO_LIN(lpcf->lpLogFont);
dprintf_commdlg(stddeb,"FormatCharDlgProc // WM_COMMAND lParam=%08lX\n", lParam);
switch (wParam)
{
case cmb1:if (HIWORD(lParam)==CBN_SELCHANGE)
{
hdc=(lpcf->Flags & CF_PRINTERFONTS && lpcf->hDC) ? lpcf->hDC : GetDC(hDlg);
if (hdc)
{
/* only if cmb2 is refilled in FontStyleEnumProc():
SendDlgItemMessage(hDlg,cmb2,CB_RESETCONTENT,0,0);
*/
SendDlgItemMessage(hDlg,cmb3,CB_RESETCONTENT,0,0);
i=SendDlgItemMessage(hDlg,cmb1,CB_GETCURSEL,0,0);
if (i!=CB_ERR)
{
HCURSOR hcursor=SetCursor(LoadCursor(0,IDC_WAIT));
SendDlgItemMessage(hDlg,cmb1,CB_GETLBTEXT,i,(LPARAM)MAKE_SEGPTR(buffer));
dprintf_commdlg(stddeb,"WM_COMMAND/cmb1 =>%s\n",buffer);
enumCallback = MODULE_GetWndProcEntry16("FontStyleEnumProc");
EnumFontFamilies(hdc,buffer,enumCallback,
MAKELONG(GetDlgItem(hDlg,cmb2),GetDlgItem(hDlg,cmb3)));
SetCursor(hcursor);
}
if (!(lpcf->Flags & CF_PRINTERFONTS && lpcf->hDC))
ReleaseDC(hDlg,hdc);
}
else
{
dprintf_commdlg(stddeb,"WM_COMMAND: HDC failure !!!\n");
EndDialog (hDlg, 0);
return TRUE;
}
}
case chx1:
case chx2:
case cmb2:
case cmb3:if (HIWORD(lParam)==CBN_SELCHANGE || HIWORD(lParam)== BN_CLICKED )
{
dprintf_commdlg(stddeb,"WM_COMMAND/cmb2,3 =%08lX\n", lParam);
i=SendDlgItemMessage(hDlg,cmb1,CB_GETCURSEL,0,0);
if (i==CB_ERR)
i=SendDlgItemMessage(hDlg,cmb1,WM_GETTEXT,20,(LPARAM)MAKE_SEGPTR(buffer));
else
{
SendDlgItemMessage(hDlg,cmb1,CB_GETLBTEXT,i,(LPARAM)MAKE_SEGPTR(buffer));
l=SendDlgItemMessage(hDlg,cmb1,CB_GETITEMDATA,i,0);
j=HIWORD(l);
lpcf->nFontType = LOWORD(l);
/* FIXME: lpcf->nFontType |= .... SIMULATED_FONTTYPE and so */
/* same value reported to the EnumFonts
call back with the extra FONTTYPE_... bits added */
lpxx->lfPitchAndFamily=j&0xff;
lpxx->lfCharSet=j>>8;
}
strcpy(lpxx->lfFaceName,buffer);
i=SendDlgItemMessage(hDlg,cmb2,CB_GETCURSEL,0,0);
if (i!=CB_ERR)
{
l=SendDlgItemMessage(hDlg,cmb2,CB_GETITEMDATA,i,0);
if (0!=(lpxx->lfItalic=HIWORD(l)))
lpcf->nFontType |= ITALIC_FONTTYPE;
if ((lpxx->lfWeight=LOWORD(l)) > FW_MEDIUM)
lpcf->nFontType |= BOLD_FONTTYPE;
}
i=SendDlgItemMessage(hDlg,cmb3,CB_GETCURSEL,0,0);
if (i!=CB_ERR)
{
l=SendDlgItemMessage(hDlg,cmb3,CB_GETITEMDATA,i,0);
lpxx->lfHeight=-LOWORD(l);
lpxx->lfWidth = 0; /* FYI: lfWidth is in HIWORD(l); */
}
lpxx->lfStrikeOut=IsDlgButtonChecked(hDlg,chx1);
lpxx->lfUnderline=IsDlgButtonChecked(hDlg,chx2);
lpxx->lfOrientation=lpxx->lfEscapement=0;
lpxx->lfOutPrecision=OUT_DEFAULT_PRECIS;
lpxx->lfClipPrecision=CLIP_DEFAULT_PRECIS;
lpxx->lfQuality=DEFAULT_QUALITY;
hFont=CreateFontIndirect(lpxx);
if (hFont)
SendDlgItemMessage(hDlg,stc6,WM_SETFONT,hFont,TRUE);
/* FIXME: Delete old font ...? */
}
break;
case cmb4:i=SendDlgItemMessage(hDlg,cmb4,CB_GETCURSEL,0,0);
if (i!=CB_ERR)
{
lpcf->rgbColors=textcolors[i];
InvalidateRect(GetDlgItem(hDlg,stc6),NULL,0);
}
break;
case psh15:i=RegisterWindowMessage(MAKE_SEGPTR(HELPMSGSTRING));
if (lpcf->hwndOwner)
SendMessage(lpcf->hwndOwner,i,0,(LPARAM)lpcf);
if (CFn_HookCallChk(lpcf))
CallWindowProc(lpcf->lpfnHook,hDlg,WM_COMMAND,psh15,(LPARAM)lpcf);
break;
case IDOK:EndDialog(hDlg, TRUE);
return(TRUE);
case IDCANCEL:EndDialog(hDlg, FALSE);
return(TRUE);
}
return(FALSE);
}
/***********************************************************************
* FormatCharDlgProc (COMMDLG.16)
FIXME: 1. some strings are "hardcoded", but it's better load from sysres
2. some CF_.. flags are not supported
3. some TType extensions
*/
LRESULT FormatCharDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
LPCHOOSEFONT lpcf=(LPCHOOSEFONT)GetWindowLong(hDlg, DWL_USER);
if (message!=WM_INITDIALOG)
{
int res=0;
if (!lpcf)
return FALSE;
if (CFn_HookCallChk(lpcf))
res=CallWindowProc(lpcf->lpfnHook,hDlg,message,wParam,lParam);
if (res)
return res;
}
else
return CFn_WMInitDialog(hDlg,wParam,lParam);
switch (message)
{
case WM_MEASUREITEM:
return CFn_WMMeasureItem(hDlg,wParam,lParam);
case WM_DRAWITEM:
return CFn_WMDrawItem(hDlg,wParam,lParam);
case WM_CTLCOLOR:
return CFn_WMCtlColor(hDlg,wParam,lParam);
case WM_COMMAND:
return CFn_WMCommand(hDlg,wParam,lParam);
case WM_CHOOSEFONT_GETLOGFONT:
/* FIXME: current logfont back to caller */
break;
}
return FALSE;
}

View File

@ -19,7 +19,7 @@ DWORD currentMalloc=0;
/***********************************************************************
* CoBuildVersion [COMPOBJ.1]
*/
DWORD WINAPI CoBuildVersion()
DWORD CoBuildVersion()
{
dprintf_ole(stddeb,"CoBuildVersion()\n");
return (rmm<<16)+rup;
@ -29,7 +29,7 @@ DWORD WINAPI CoBuildVersion()
* CoInitialize [COMPOBJ.2]
* lpReserved is an IMalloc pointer in 16bit OLE. We just stored it as-is.
*/
HRESULT WINAPI CoInitialize(DWORD lpReserved)
HRESULT CoInitialize(DWORD lpReserved)
{
dprintf_ole(stdnimp,"CoInitialize\n");
/* remember the LPMALLOC, maybe somebody wants to read it later on */
@ -48,7 +48,7 @@ void CoUnitialize()
/***********************************************************************
* CoGetMalloc [COMPOBJ.4]
*/
HRESULT WINAPI CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc)
HRESULT CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc)
{
if(currentMalloc)
{
@ -63,9 +63,7 @@ HRESULT WINAPI CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc)
/***********************************************************************
* CoDisconnectObject
*/
OLESTATUS WINAPI CoDisconnectObject(
LPUNKNOWN lpUnk,
DWORD reserved)
OLESTATUS CoDisconnectObject( LPUNKNOWN lpUnk, DWORD reserved )
{
dprintf_ole(stdnimp,"CoDisconnectObject:%p %lx\n",lpUnk,reserved);
return OLE_OK;

View File

@ -41,7 +41,7 @@ void LoadStartupDrivers(void)
/**************************************************************************
* SendDriverMessage [USER.251]
*/
LRESULT WINAPI SendDriverMessage(HDRVR hDriver, WORD msg, LPARAM lParam1, LPARAM lParam2)
LRESULT SendDriverMessage(HDRVR hDriver, WORD msg, LPARAM lParam1, LPARAM lParam2)
{
dprintf_driver(stdnimp,"SendDriverMessage(%04x, %04X, %08lX, %08lX);\n",
hDriver, msg, lParam1, lParam2);
@ -68,8 +68,8 @@ HDRVR OpenDriver(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam)
if (lpdrv->lpNextItem == NULL) break;
lpdrv = lpdrv->lpNextItem;
}
hDrvr = GlobalAlloc(GMEM_MOVEABLE, sizeof(DRIVERITEM));
lpnewdrv = (LPDRIVERITEM) GlobalLock(hDrvr);
hDrvr = GlobalAlloc16(GMEM_MOVEABLE, sizeof(DRIVERITEM));
lpnewdrv = (LPDRIVERITEM) GlobalLock16(hDrvr);
if (lpnewdrv == NULL) return 0;
lpnewdrv->dis.length = sizeof(DRIVERINFOSTRUCT);
lpnewdrv->dis.hModule = 0;
@ -91,7 +91,7 @@ HDRVR OpenDriver(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam)
lpdrv->lpNextItem = lpnewdrv;
lpnewdrv->lpPrevItem = lpdrv;
}
lpnewdrv->lpDrvProc = NULL;
lpnewdrv->lpDrvProc = (DRIVERPROC)NULL;
dprintf_driver(stddeb,"OpenDriver // hDrvr=%04x loaded !\n", hDrvr);
return hDrvr;
}
@ -104,14 +104,14 @@ LRESULT CloseDriver(HDRVR hDrvr, LPARAM lParam1, LPARAM lParam2)
LPDRIVERITEM lpdrv;
dprintf_driver(stddeb,
"CloseDriver(%04x, %08lX, %08lX);\n", hDrvr, lParam1, lParam2);
lpdrv = (LPDRIVERITEM) GlobalLock(hDrvr);
lpdrv = (LPDRIVERITEM) GlobalLock16(hDrvr);
if (lpdrv != NULL && lpdrv->dis.hDriver == hDrvr) {
if (lpdrv->lpPrevItem)
((LPDRIVERITEM)lpdrv->lpPrevItem)->lpNextItem = lpdrv->lpNextItem;
if (lpdrv->lpNextItem)
((LPDRIVERITEM)lpdrv->lpNextItem)->lpPrevItem = lpdrv->lpPrevItem;
GlobalUnlock(hDrvr);
GlobalFree(hDrvr);
GlobalUnlock16(hDrvr);
GlobalFree16(hDrvr);
dprintf_driver(stddeb,"CloseDriver // hDrvr=%04x closed !\n", hDrvr);
return TRUE;
}
@ -126,10 +126,10 @@ HANDLE GetDriverModuleHandle(HDRVR hDrvr)
LPDRIVERITEM lpdrv;
HANDLE hModule = 0;
dprintf_driver(stddeb,"GetDriverModuleHandle(%04x);\n", hDrvr);
lpdrv = (LPDRIVERITEM) GlobalLock(hDrvr);
lpdrv = (LPDRIVERITEM) GlobalLock16(hDrvr);
if (lpdrv != NULL) {
hModule = lpdrv->dis.hModule;
GlobalUnlock(hDrvr);
GlobalUnlock16(hDrvr);
}
return hModule;
}
@ -176,10 +176,10 @@ BOOL GetDriverInfo(HDRVR hDrvr, LPDRIVERINFOSTRUCT lpDrvInfo)
LPDRIVERITEM lpdrv;
dprintf_driver(stddeb,"GetDriverInfo(%04x, %p);\n", hDrvr, lpDrvInfo);
if (lpDrvInfo == NULL) return FALSE;
lpdrv = (LPDRIVERITEM) GlobalLock(hDrvr);
lpdrv = (LPDRIVERITEM) GlobalLock16(hDrvr);
if (lpdrv == NULL) return FALSE;
memcpy(lpDrvInfo, &lpdrv->dis, sizeof(DRIVERINFOSTRUCT));
GlobalUnlock(hDrvr);
GlobalUnlock16(hDrvr);
return TRUE;
}
@ -202,7 +202,7 @@ HDRVR GetNextDriver(HDRVR hDrvr, DWORD dwFlags)
lpDrvItemList->dis.hDriver);
return lpDrvItemList->dis.hDriver;
}
lpdrv = (LPDRIVERITEM) GlobalLock(hDrvr);
lpdrv = (LPDRIVERITEM) GlobalLock16(hDrvr);
if (lpdrv != NULL) {
if (dwFlags & GND_REVERSE) {
if (lpdrv->lpPrevItem)
@ -212,7 +212,7 @@ HDRVR GetNextDriver(HDRVR hDrvr, DWORD dwFlags)
if (lpdrv->lpNextItem)
hRetDrv = ((LPDRIVERITEM)lpdrv->lpNextItem)->dis.hDriver;
}
GlobalUnlock(hDrvr);
GlobalUnlock16(hDrvr);
}
dprintf_driver(stddeb,"GetNextDriver // return %04x !\n", hRetDrv);
return hRetDrv;

View File

@ -165,8 +165,8 @@ BOOL WinHelp(HWND hWnd, LPSTR lpHelpFile, WORD wCommand, DWORD dwData)
else
nlen = 0;
size = sizeof(WINHELP) + nlen + dsize;
hwh = GlobalAlloc(0,size);
lpwh = GlobalLock(hwh);
hwh = GlobalAlloc16(0,size);
lpwh = GlobalLock16(hwh);
lpwh->size = size;
lpwh->command = wCommand;
if(nlen) {
@ -178,6 +178,6 @@ BOOL WinHelp(HWND hWnd, LPSTR lpHelpFile, WORD wCommand, DWORD dwData)
lpwh->ofsData = sizeof(WINHELP)+nlen;
} else
lpwh->ofsData = 0;
GlobalUnlock(hwh);
GlobalUnlock16(hwh);
return SendMessage(hDest,WM_WINHELP,hWnd,hwh);
}

View File

@ -5,14 +5,18 @@
*/
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "ldt.h"
#include "windows.h"
#include "ldt.h"
#include "module.h"
#include "stackframe.h"
#include "stddebug.h"
#include "debug.h"
#include "xmalloc.h"
#define ToUpper(c) toupper(c)
#define ToLower(c) tolower(c)
@ -315,3 +319,127 @@ void OemToAnsiBuff(LPSTR lpOemStr, LPSTR lpAnsiStr, INT nLength)
for(i=0;i<nLength;i++)
lpAnsiStr[i]=Oem2Ansi[(unsigned char)(lpOemStr[i])];
}
/***********************************************************************
* OutputDebugString (KERNEL.115)
*/
void OutputDebugString( LPCSTR str )
{
char *module;
char *p, *buffer = xmalloc( strlen(str)+1 );
/* Remove CRs */
for (p = buffer; *str; str++) if (*str != '\r') *p++ = *str;
*p = '\0';
if ((p > buffer) && (p[-1] == '\n')) p[1] = '\0'; /* Remove trailing \n */
module = MODULE_GetModuleName( GetExePtr(GetCurrentTask()) );
fprintf( stderr, "OutputDebugString: %s says '%s'\n",
module ? module : "???", buffer );
}
/***********************************************************************
* wsprintf (USER.420)
*/
#ifndef WINELIB
int wsprintf( LPSTR dummy1, LPSTR dummy2, ... )
{
LPSTR lpOutput, lpFormat;
DWORD *win_stack = (DWORD *)CURRENT_STACK16->args;
lpOutput = (LPSTR) PTR_SEG_TO_LIN(*win_stack);
win_stack++;
lpFormat = (LPSTR) PTR_SEG_TO_LIN(*win_stack);
win_stack++;
return wvsprintf( lpOutput, lpFormat, (LPCSTR)win_stack );
}
#else /* WINELIB */
int wsprintf(LPSTR lpOutput, LPSTR lpFormat, ...)
{
va_list valist;
int ArgCnt;
va_start(valist, lpFormat);
ArgCnt = vsprintf(lpOutput, lpFormat, valist);
va_end(valist);
return ArgCnt;
}
#endif /* WINELIB */
/***********************************************************************
* wvsprintf (USER.421)
*/
int wvsprintf( LPSTR buf, LPCSTR format, LPCSTR args )
{
LPCSTR ptr;
DWORD stack[512], *stack_ptr;
BOOL fLarge;
/* Create the 32-bit stack for libc's vsprintf() */
for (stack_ptr = stack, ptr = format; *ptr; ptr++)
{
if (*ptr != '%' || *++ptr == '%')
continue;
/* skip width/precision */
while (*ptr == '-' || *ptr == '+' || *ptr == '.' ||
*ptr == ' ' || isdigit(*ptr) || *ptr == '#')
ptr++;
/* handle modifier */
fLarge = ((*ptr == 'l') || (*ptr == 'L'));
if (fLarge) ptr++;
switch (*ptr)
{
case 's':
*stack_ptr++ = (DWORD)PTR_SEG_TO_LIN(*(DWORD*)args);
args += sizeof(DWORD);
break;
case 'c':
/* windows' wsprintf() %c ignores 0's, we replace 0 with SPACE to make sure
that the remaining part of the string isn't ignored by the winapp */
*stack_ptr++ = (DWORD)(*(WORD*)args ? *(WORD*)args : ' ');
args += sizeof(WORD);
break;
case 'd':
case 'i':
if (!fLarge)
{
*stack_ptr++ = (DWORD)(INT32)(*(INT16 *)args);
args += sizeof(INT16);
break;
}
/* else fall through */
case 'u':
case 'x':
case 'X':
if (fLarge)
{
*stack_ptr++ = *(DWORD*)args;
args += sizeof(DWORD);
}
else
{
*stack_ptr++ = *(WORD*)args;
args += sizeof(WORD);
}
break;
default:
*stack_ptr++ = 0;
args += sizeof(WORD);
fprintf( stderr, "wsprintf: oops, unknown format %c!\n", *ptr );
break;
}
}
return vsprintf( buf, format, stack );
}

View File

@ -1044,7 +1044,7 @@ void FileCDR(FARPROC x)
/***********************************************************************
* GetWinDebugInfo (KERNEL.355)
*/
BOOL GetWinDebugInfo(WINDEBUGINFO FAR* lpwdi, UINT flags)
BOOL GetWinDebugInfo(WINDEBUGINFO *lpwdi, UINT flags)
{
printf("GetWinDebugInfo(%8lx,%d) stub returning 0\n", (unsigned long)lpwdi, flags);
/* 0 means not in debugging mode/version */
@ -1056,7 +1056,7 @@ BOOL GetWinDebugInfo(WINDEBUGINFO FAR* lpwdi, UINT flags)
/***********************************************************************
* GetWinDebugInfo (KERNEL.355)
*/
BOOL SetWinDebugInfo(WINDEBUGINFO FAR* lpwdi)
BOOL SetWinDebugInfo(WINDEBUGINFO *lpwdi)
{
printf("SetWinDebugInfo(%8lx) stub returning 0\n", (unsigned long)lpwdi);
/* 0 means not in debugging mode/version */

View File

@ -154,7 +154,7 @@ int WNetUnlockQueueData(LPSTR szQueue)
* WNetGetConnection [USER.512]
*/
int WNetGetConnection(LPSTR lpLocalName,
LPSTR lpRemoteName, UINT FAR *cbRemoteName)
LPSTR lpRemoteName, UINT *cbRemoteName)
{
const char *path;
@ -393,7 +393,7 @@ UINT WNetEnumResource(HANDLE hEnum, DWORD cRequ,
* WNetOpenEnum [USER.???]
*/
UINT WNetOpenEnum(DWORD dwScope, DWORD dwType,
LPNETRESOURCE lpNet, HANDLE FAR *lphEnum)
LPNETRESOURCE lpNet, HANDLE *lphEnum)
{
printf("EMPTY STUB !!! WNetOpenEnum(%08lX, %08lX, %p, %p);\n",
dwScope, dwType, lpNet, lphEnum);

View File

@ -24,7 +24,7 @@ DWORD OleBuildVersion()
/***********************************************************************
* OleInitialize [OLE2.2]
*/
HRESULT WINAPI OleInitialize(LPVOID reserved)
HRESULT OleInitialize(LPVOID reserved)
{
dprintf_ole(stdnimp,"OleInitialize\n");
return S_OK;
@ -33,7 +33,7 @@ HRESULT WINAPI OleInitialize(LPVOID reserved)
/***********************************************************************
* OleUnitialize [OLE2.3]
*/
void WINAPI OleUninitialize()
void OleUninitialize()
{
dprintf_ole(stdnimp,"OleUninitialize()\n");
}

View File

@ -22,10 +22,10 @@ HGLOBAL BSTRheapsel=0;
static BSTR BSTR_AllocBytes(int n)
{
HLOCAL mem;
HLOCAL16 mem;
if(!BSTRheapsel)
{
BSTRheapsel=GlobalAlloc(GMEM_FIXED,BSTR_HEAP_SIZE);
BSTRheapsel=GlobalAlloc16(GMEM_FIXED,BSTR_HEAP_SIZE);
LocalInit(BSTRheapsel,0,BSTR_HEAP_SIZE-1);
}
if(!BSTRheapsel)

Some files were not shown because too many files have changed in this diff Show More