Moved a couple of 16-bit functions to dlls/user/user16.c.

This commit is contained in:
Alexandre Julliard 2005-05-25 18:08:02 +00:00
parent 67747801cd
commit 03f6f6f7cc
2 changed files with 90 additions and 91 deletions

View File

@ -46,6 +46,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(user);
#define IS_MENU_STRING_ITEM(flags) \ #define IS_MENU_STRING_ITEM(flags) \
(((flags) & (MF_STRING | MF_BITMAP | MF_OWNERDRAW | MF_SEPARATOR)) == MF_STRING) (((flags) & (MF_STRING | MF_BITMAP | MF_OWNERDRAW | MF_SEPARATOR)) == MF_STRING)
/* UserSeeUserDo parameters */
#define USUD_LOCALALLOC 0x0001
#define USUD_LOCALFREE 0x0002
#define USUD_LOCALCOMPACT 0x0003
#define USUD_LOCALHEAP 0x0004
#define USUD_FIRSTCLASS 0x0005
WORD WINAPI DestroyIcon32(HGLOBAL16, UINT16); WORD WINAPI DestroyIcon32(HGLOBAL16, UINT16);
@ -710,6 +717,41 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count,
} }
/***********************************************************************
* UserSeeUserDo (USER.216)
*/
DWORD WINAPI UserSeeUserDo16(WORD wReqType, WORD wParam1, WORD wParam2, WORD wParam3)
{
STACK16FRAME* stack16 = MapSL((SEGPTR)NtCurrentTeb()->WOW32Reserved);
HANDLE16 oldDS = stack16->ds;
DWORD ret = (DWORD)-1;
stack16->ds = USER_HeapSel;
switch (wReqType)
{
case USUD_LOCALALLOC:
ret = LocalAlloc16(wParam1, wParam3);
break;
case USUD_LOCALFREE:
ret = LocalFree16(wParam1);
break;
case USUD_LOCALCOMPACT:
ret = LocalCompact16(wParam3);
break;
case USUD_LOCALHEAP:
ret = USER_HeapSel;
break;
case USUD_FIRSTCLASS:
FIXME("return a pointer to the first window class.\n");
break;
default:
WARN("wReqType %04x (unknown)\n", wReqType);
}
stack16->ds = oldDS;
return ret;
}
/************************************************************************* /*************************************************************************
* ScrollDC (USER.221) * ScrollDC (USER.221)
*/ */
@ -891,6 +933,54 @@ UINT16 WINAPI RealizePalette16( HDC16 hdc )
} }
/***********************************************************************
* GetFreeSystemResources (USER.284)
*/
WORD WINAPI GetFreeSystemResources16( WORD resType )
{
STACK16FRAME* stack16 = MapSL((SEGPTR)NtCurrentTeb()->WOW32Reserved);
HANDLE16 oldDS = stack16->ds;
HINSTANCE16 gdi_inst;
WORD gdi_heap;
int userPercent, gdiPercent;
if ((gdi_inst = LoadLibrary16( "GDI" )) < 32) return 0;
gdi_heap = gdi_inst | 7;
switch(resType)
{
case GFSR_USERRESOURCES:
stack16->ds = USER_HeapSel;
userPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
gdiPercent = 100;
stack16->ds = oldDS;
break;
case GFSR_GDIRESOURCES:
stack16->ds = gdi_inst;
gdiPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
userPercent = 100;
stack16->ds = oldDS;
break;
case GFSR_SYSTEMRESOURCES:
stack16->ds = USER_HeapSel;
userPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
stack16->ds = gdi_inst;
gdiPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
stack16->ds = oldDS;
break;
default:
userPercent = gdiPercent = 0;
break;
}
FreeLibrary16( gdi_inst );
TRACE("<- userPercent %d, gdiPercent %d\n", userPercent, gdiPercent);
return (WORD)min( userPercent, gdiPercent );
}
/*********************************************************************** /***********************************************************************
* GetClipCursor (USER.309) * GetClipCursor (USER.309)
*/ */

View File

@ -22,18 +22,15 @@
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "wine/winbase16.h"
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
#include "winuser.h" #include "winuser.h"
#include "wine/winuser16.h"
#include "winreg.h" #include "winreg.h"
#include "winternl.h" #include "winternl.h"
#include "tlhelp32.h" #include "tlhelp32.h"
#include "user_private.h" #include "user_private.h"
#include "win.h" #include "win.h"
#include "controls.h"
#include "cursoricon.h" #include "cursoricon.h"
#include "wine/debug.h" #include "wine/debug.h"
@ -60,60 +57,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(user);
#define USIG_PROCESS_RUNNING 0x0500 #define USIG_PROCESS_RUNNING 0x0500
#define USIG_PROCESS_LOADED 0x0600 #define USIG_PROCESS_LOADED 0x0600
/* UserSeeUserDo parameters */
#define USUD_LOCALALLOC 0x0001
#define USUD_LOCALFREE 0x0002
#define USUD_LOCALCOMPACT 0x0003
#define USUD_LOCALHEAP 0x0004
#define USUD_FIRSTCLASS 0x0005
/***********************************************************************
* GetFreeSystemResources (USER.284)
*/
WORD WINAPI GetFreeSystemResources16( WORD resType )
{
STACK16FRAME* stack16 = MapSL((SEGPTR)NtCurrentTeb()->WOW32Reserved);
HANDLE16 oldDS = stack16->ds;
HINSTANCE16 gdi_inst;
WORD gdi_heap;
int userPercent, gdiPercent;
if ((gdi_inst = LoadLibrary16( "GDI" )) < 32) return 0;
gdi_heap = gdi_inst | 7;
switch(resType)
{
case GFSR_USERRESOURCES:
stack16->ds = USER_HeapSel;
userPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
gdiPercent = 100;
stack16->ds = oldDS;
break;
case GFSR_GDIRESOURCES:
stack16->ds = gdi_inst;
gdiPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
userPercent = 100;
stack16->ds = oldDS;
break;
case GFSR_SYSTEMRESOURCES:
stack16->ds = USER_HeapSel;
userPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
stack16->ds = gdi_inst;
gdiPercent = (int)LocalCountFree16() * 100 / LocalHeapSize16();
stack16->ds = oldDS;
break;
default:
userPercent = gdiPercent = 0;
break;
}
FreeLibrary16( gdi_inst );
TRACE("<- userPercent %d, gdiPercent %d\n", userPercent, gdiPercent);
return (WORD)min( userPercent, gdiPercent );
}
/*********************************************************************** /***********************************************************************
* SignalProc32 (USER.391) * SignalProc32 (USER.391)
@ -545,40 +488,6 @@ BOOL WINAPI EnumDisplayDevicesW(
return TRUE; return TRUE;
} }
/***********************************************************************
* UserSeeUserDo (USER.216)
*/
DWORD WINAPI UserSeeUserDo16(WORD wReqType, WORD wParam1, WORD wParam2, WORD wParam3)
{
STACK16FRAME* stack16 = MapSL((SEGPTR)NtCurrentTeb()->WOW32Reserved);
HANDLE16 oldDS = stack16->ds;
DWORD ret = (DWORD)-1;
stack16->ds = USER_HeapSel;
switch (wReqType)
{
case USUD_LOCALALLOC:
ret = LocalAlloc16(wParam1, wParam3);
break;
case USUD_LOCALFREE:
ret = LocalFree16(wParam1);
break;
case USUD_LOCALCOMPACT:
ret = LocalCompact16(wParam3);
break;
case USUD_LOCALHEAP:
ret = USER_HeapSel;
break;
case USUD_FIRSTCLASS:
FIXME("return a pointer to the first window class.\n");
break;
default:
WARN("wReqType %04x (unknown)\n", wReqType);
}
stack16->ds = oldDS;
return ret;
}
/*********************************************************************** /***********************************************************************
* SetSystemCursor (USER32.@) * SetSystemCursor (USER32.@)
*/ */