Commit 1285c2f9 authored by Alexandre Julliard's avatar Alexandre Julliard

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.
parent 2ace16ac
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,
......
----------------------------------------------------------------------
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>
* [Makefile.in]
......
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:
......
......@@ -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
......
......@@ -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
......
......@@ -99,6 +99,7 @@ multimedia/Makefile
objects/Makefile
programs/Makefile
programs/progman/Makefile
programs/winhelp/Makefile
rc/Makefile
resources/Makefile
tools/Makefile
......
......@@ -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
......
......@@ -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) {
......
......@@ -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,11 +98,27 @@ 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
*
* Check whether the window owning the menu bar has a system menu.
......@@ -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;
}
......
......@@ -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;
......
......@@ -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;
}
......
......@@ -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;
}
......@@ -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);
......
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
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
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
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
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
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
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
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
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
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
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
......@@ -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:" );
......
......@@ -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;
......
......@@ -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)
......
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
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
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
......@@ -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 */
/*
* 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;
......@@ -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 );
......
......@@ -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 */
......@@ -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 *);
......@@ -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 */
......@@ -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 );
......
......@@ -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 */
......@@ -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 */
......
......@@ -32,7 +32,7 @@ typedef struct {
BOOL HasStrings;
BOOL OwnerDrawn;
WORD iNumStops;
LPINT TabStops;
LPINT16 TabStops;
HANDLE hDrawItemStruct;
BOOL needMeasure;
HANDLE HeapSel;
......
......@@ -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 */
......@@ -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
......
......@@ -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 );
......
......@@ -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);
......@@ -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 */
......@@ -66,8 +66,6 @@ typedef struct {
WORD id WINE_PACKED;
} DLGITEMTEMPLATE32;
#define CW_USEDEFAULT32 0x80000000
typedef struct tagMSG32
{
DWORD hwnd;
......
......@@ -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 */
......
......@@ -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 */
......@@ -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 */
......@@ -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);
/*
......
......@@ -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 */
......@@ -196,140 +196,62 @@ typedef BOOL HANDLER_ROUTINE (WORD ctrltype);
#define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
BOOL WINAPI 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);
BOOL AllocConsole (VOID);
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
......@@ -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 );
......
......@@ -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
......
......@@ -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 */
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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 ;
......
......@@ -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);
......
......@@ -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 */
......
......@@ -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;
......
......@@ -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 );
}
......
......@@ -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;
......
......@@ -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 );
}
......
......@@ -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;
}
......
......@@ -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;
......
......@@ -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 */
......@@ -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");
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
......@@ -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);
}
......@@ -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 );
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment