ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
July 2009
----- 2025 -----
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
27 participants
605 discussions
Start a n
N
ew thread
[fireball] 42022: - Header fixes to add to the previous commit.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 22:47:28 2009 New Revision: 42022 URL:
http://svn.reactos.org/svn/reactos?rev=42022&view=rev
Log: - Header fixes to add to the previous commit. Modified: branches/arwinss/reactos/include/psdk/winbase.h branches/arwinss/reactos/include/psdk/winuser.h Modified: branches/arwinss/reactos/include/psdk/winbase.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/winbase.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/winbase.h [iso-8859-1] Fri Jul 17 22:47:28 2009 @@ -2709,6 +2709,9 @@ #endif #endif +VOID WINAPI ReleaseThunkLock(DWORD*); +VOID WINAPI RestoreThunkLock(DWORD); + #ifdef _MSC_VER #pragma warning(pop) #endif Modified: branches/arwinss/reactos/include/psdk/winuser.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/winuser.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/winuser.h [iso-8859-1] Fri Jul 17 22:47:28 2009 @@ -4392,6 +4392,7 @@ DWORD WINAPI SetSysColorsTemp(const COLORREF *, const HBRUSH *, DWORD); #define SetSysModalWindow(h) (NULL) BOOL WINAPI SetSystemCursor(HCURSOR,DWORD); +BOOL WINAPI SetSystemMenu(HWND,HMENU); BOOL WINAPI SetThreadDesktop(HDESK); UINT_PTR WINAPI SetTimer(HWND,UINT_PTR,UINT,TIMERPROC); BOOL WINAPI SetUserObjectInformationA(HANDLE,int,PVOID,DWORD);
15 years, 5 months
1
0
0
0
[fireball] 42021: - More fixes, stubbing out, commenting out.. - More 16bit crap removal.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 22:45:32 2009 New Revision: 42021 URL:
http://svn.reactos.org/svn/reactos?rev=42021&view=rev
Log: - More fixes, stubbing out, commenting out.. - More 16bit crap removal. Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c branches/arwinss/reactos/dll/win32/user32/edit.c branches/arwinss/reactos/dll/win32/user32/legacy.c branches/arwinss/reactos/dll/win32/user32/lstr.c branches/arwinss/reactos/dll/win32/user32/menu.c branches/arwinss/reactos/dll/win32/user32/message.c branches/arwinss/reactos/dll/win32/user32/resource.c branches/arwinss/reactos/dll/win32/user32/user32.spec branches/arwinss/reactos/dll/win32/user32/user_main.c branches/arwinss/reactos/dll/win32/user32/user_private.h branches/arwinss/reactos/dll/win32/user32/win.c Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -1169,11 +1169,6 @@ return CURSORICON_LoadFromFile( name, width, height, colors, fCursor, loadflags ); if (!hInstance) hInstance = user32_module; /* Load OEM cursor/icon */ - - /* Normalize hInstance (must be uniquely represented for icon cache) */ - - if (!HIWORD( hInstance )) - hInstance = HINSTANCE_32(GetExePtr( HINSTANCE_16(hInstance) )); /* Get directory resource ID */ Modified: branches/arwinss/reactos/dll/win32/user32/edit.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -1133,13 +1133,11 @@ */ static void EDIT_LockBuffer(EDITSTATE *es) { - STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); HINSTANCE16 hInstance = GetWindowLongPtrW( es->hwndSelf, GWLP_HINSTANCE ); if (!es->text) { CHAR *textA = NULL; UINT countA = 0; - BOOL _16bit = FALSE; if(es->hloc32W) { @@ -1148,16 +1146,6 @@ TRACE("Synchronizing with 32-bit ANSI buffer\n"); textA = LocalLock(es->hloc32A); countA = strlen(textA) + 1; - } - else if(es->hloc16) - { - HANDLE16 oldDS = stack16->ds; - TRACE("Synchronizing with 16-bit ANSI buffer\n"); - stack16->ds = hInstance; - textA = MapSL(LocalLock16(es->hloc16)); - stack16->ds = oldDS; - countA = strlen(textA) + 1; - _16bit = TRUE; } } else { @@ -1192,14 +1180,6 @@ if(textA) { MultiByteToWideChar(CP_ACP, 0, textA, countA, es->text, es->buffer_size + 1); - if(_16bit) - { - HANDLE16 oldDS = stack16->ds; - stack16->ds = hInstance; - LocalUnlock16(es->hloc16); - stack16->ds = oldDS; - } - else LocalUnlock(es->hloc32A); } } Modified: branches/arwinss/reactos/dll/win32/user32/legacy.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/legacy.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/legacy.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -85,4 +85,14 @@ return FALSE; } +VOID +WINAPI +ReleaseThunkLock(DWORD *mutex_count) +{ +} +VOID +WINAPI +RestoreThunkLock(DWORD mutex_count) +{ +} Modified: branches/arwinss/reactos/dll/win32/user32/lstr.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/lstr.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/lstr.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -388,7 +388,8 @@ */ BOOL WINAPI IsCharLowerW(WCHAR x) { - return (get_char_typeW(x) & C1_LOWER) != 0; + //return (get_char_typeW(x) & C1_LOWER) != 0; + return iswlower(x); } @@ -409,7 +410,8 @@ */ BOOL WINAPI IsCharUpperW(WCHAR x) { - return (get_char_typeW(x) & C1_UPPER) != 0; + //return (get_char_typeW(x) & C1_UPPER) != 0; + return iswupper(x); } @@ -430,7 +432,8 @@ */ BOOL WINAPI IsCharAlphaNumericW(WCHAR x) { - return (get_char_typeW(x) & (C1_ALPHA|C1_DIGIT)) != 0; + //return (get_char_typeW(x) & (C1_ALPHA|C1_DIGIT)) != 0; + return iswalnum(x); } @@ -451,5 +454,6 @@ */ BOOL WINAPI IsCharAlphaW(WCHAR x) { - return (get_char_typeW(x) & C1_ALPHA) != 0; -} + //return (get_char_typeW(x) & C1_ALPHA) != 0; + return iswalpha; +} Modified: branches/arwinss/reactos/dll/win32/user32/menu.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -5356,7 +5356,7 @@ if (!hWnd || !msg) return 0; - if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(HACCEL_16(hAccel)))) + if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(LOWORD(hAccel)))) { WARN_(accel)("invalid accel handle=%p\n", hAccel); return 0; @@ -5408,7 +5408,7 @@ if (!hWnd || !msg) return 0; - if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(HACCEL_16(hAccel)))) + if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(LOWORD(hAccel)))) { WARN_(accel)("invalid accel handle=%p\n", hAccel); return 0; Modified: branches/arwinss/reactos/dll/win32/user32/message.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -1763,11 +1763,11 @@ return FALSE; } accept_hardware_message( hw_id, remove, 0 ); - +#if 0 if ( msg->message == WM_KEYDOWN || msg->message == WM_KEYUP ) if ( ImmProcessKey(msg->hwnd, GetKeyboardLayout(0), msg->wParam, msg->lParam, 0) ) msg->wParam = VK_PROCESSKEY; - +#endif return TRUE; } @@ -3017,10 +3017,10 @@ TRACE_(key)("Translating key %s (%04lx), scancode %02x\n", SPY_GetVKeyName(msg->wParam), msg->wParam, LOBYTE(HIWORD(msg->lParam))); - +#if 0 if ( msg->wParam == VK_PROCESSKEY ) return ImmTranslateMessage(msg->hwnd, msg->message, msg->wParam, msg->lParam); - +#endif GetKeyboardState( state ); /* FIXME : should handle ToUnicode yielding 2 */ switch (ToUnicode(msg->wParam, HIWORD(msg->lParam), state, wp, 2, 0)) Modified: branches/arwinss/reactos/dll/win32/user32/resource.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resource.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resource.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -46,6 +46,7 @@ /********************************************************************** * LoadAccelerators [USER.177] */ +#ifndef __REACTOS__ HACCEL16 WINAPI LoadAccelerators16(HINSTANCE16 instance, LPCSTR lpTableName) { HRSRC16 hRsrc; @@ -60,7 +61,7 @@ TRACE_(accel)("returning HACCEL 0x%x\n", hRsrc); return LoadResource16(instance,hRsrc); } - +#endif /********************************************************************** * LoadAcceleratorsW (USER32.@) * The image layout seems to look like this (not 100% sure): @@ -106,7 +107,7 @@ } } TRACE_(accel)("returning HACCEL %p\n", hRsrc); - return HACCEL_32(hRetval); + return hRetval; } /*********************************************************************** @@ -147,7 +148,7 @@ INT entries) { int i,xsize; - LPACCEL16 accel = (LPACCEL16)GlobalLock16(HACCEL_16(src)); + LPACCEL16 accel = (LPACCEL16)GlobalLock16(LOWORD(src)); BOOL done = FALSE; /* Do parameter checking to avoid the explosions and the screaming @@ -157,7 +158,7 @@ src, dst, entries); return 0; } - xsize = GlobalSize16(HACCEL_16(src))/sizeof(ACCEL16); + xsize = GlobalSize16(LOWORD(src))/sizeof(ACCEL16); if (xsize<entries) entries=xsize; i=0; @@ -210,7 +211,7 @@ } /* Allocate memory and copy the table. */ - hAccel = HACCEL_32(GlobalAlloc16(0,cEntries*sizeof(ACCEL16))); + hAccel = GlobalAlloc16(0,cEntries*sizeof(ACCEL16)); TRACE_(accel)("handle %p\n", hAccel); if(!hAccel) { @@ -218,7 +219,7 @@ SetLastError(ERROR_NOT_ENOUGH_MEMORY); return NULL; } - accel = GlobalLock16(HACCEL_16(hAccel)); + accel = GlobalLock16(hAccel); for (i=0;i<cEntries;i++) { accel[i].fVirt = lpaccel[i].fVirt&0x7f; accel[i].key = lpaccel[i].key; @@ -255,7 +256,7 @@ } /* Allocate memory and copy the table. */ - hAccel = HACCEL_32(GlobalAlloc16(0,cEntries*sizeof(ACCEL16))); + hAccel = GlobalAlloc16(0,cEntries*sizeof(ACCEL16)); TRACE_(accel)("handle %p\n", hAccel); if(!hAccel) { @@ -263,7 +264,7 @@ SetLastError(ERROR_NOT_ENOUGH_MEMORY); return NULL; } - accel = GlobalLock16(HACCEL_16(hAccel)); + accel = GlobalLock16(LOWORD(hAccel)); for (i=0;i<cEntries;i++) { @@ -303,12 +304,13 @@ { if( !handle ) return FALSE; - return !GlobalFree16(HACCEL_16(handle)); + return !GlobalFree16(handle); } /********************************************************************** * LoadString (USER.176) */ +#ifndef __REACTOS__ INT16 WINAPI LoadString16( HINSTANCE16 instance, UINT16 resource_id, LPSTR buffer, INT16 buflen ) { @@ -350,6 +352,7 @@ TRACE("'%s' loaded !\n", buffer); return i; } +#endif /********************************************************************** * LoadStringW (USER32.@) Modified: branches/arwinss/reactos/dll/win32/user32/user32.spec URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user32.spec [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user32.spec [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -774,16 +774,7 @@ ################################################################ # Wine extensions: Win16 functions that are needed by other dlls # -@ stdcall CallWindowProc16(long long long long long) -@ stdcall CloseDriver16(long long long) -@ stdcall CreateDialogIndirectParam16(long ptr long long long) -@ stdcall DefDriverProc16(long long long long long) -@ stdcall DefWindowProc16(long long long long) @ stdcall DestroyIcon32(long long) -@ stdcall DialogBoxIndirectParam16(long long long long long) -@ stdcall GetDriverModuleHandle16(long) -@ stdcall OpenDriver16(str str long) -@ stdcall SendDriverMessage16(long long long long) @ stdcall UserYield16() ################################################################ Modified: branches/arwinss/reactos/dll/win32/user32/user_main.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user_main.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user_main.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -39,14 +39,7 @@ WORD USER_HeapSel = 0; /* USER heap selector */ HMODULE user32_module = 0; -static SYSLEVEL USER_SysLevel; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &USER_SysLevel.crst, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": USER_SysLevel") } -}; -static SYSLEVEL USER_SysLevel = { { &critsect_debug, -1, 0, 0, 0, 0 }, 2 }; +static CRITICAL_SECTION USER_SysCrit; static HPALETTE (WINAPI *pfnGDISelectPalette)( HDC hdc, HPALETTE hpal, WORD bkgnd ); static UINT (WINAPI *pfnGDIRealizePalette)( HDC hdc ); @@ -62,7 +55,7 @@ */ void USER_Lock(void) { - _EnterSysLevel( &USER_SysLevel ); + EnterCriticalSection(&USER_SysCrit); } @@ -71,7 +64,7 @@ */ void USER_Unlock(void) { - _LeaveSysLevel( &USER_SysLevel ); + LeaveCriticalSection(&USER_SysCrit); } @@ -82,7 +75,8 @@ */ void USER_CheckNotLock(void) { - _CheckNotSysLevel( &USER_SysLevel ); + //_CheckNotSysLevel( &USER_SysLevel ); + UNIMPLEMENTED; } @@ -270,6 +264,7 @@ HINSTANCE16 instance; /* Create USER heap */ +#ifndef __REACTOS__ if ((instance = LoadLibrary16( "USER.EXE" )) >= 32) USER_HeapSel = instance | 7; else { @@ -279,7 +274,7 @@ /* some Win9x dlls expect keyboard to be loaded */ if (GetVersion() & 0x80000000) LoadLibrary16( "keyboard.drv" ); - +#endif winstation_init(); /* Initialize system colors and metrics */ @@ -339,6 +334,7 @@ { case DLL_PROCESS_ATTACH: user32_module = inst; + InitializeCriticalSection(&USER_SysCrit); ret = process_attach(); break; case DLL_THREAD_DETACH: Modified: branches/arwinss/reactos/dll/win32/user32/user_private.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user_private.h [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user_private.h [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -35,38 +35,20 @@ static inline HLOCAL16 LOCAL_Alloc( HANDLE16 ds, UINT16 flags, WORD size ) { - STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); - HANDLE16 oldDS = stack16->ds; - HLOCAL16 ret; - - stack16->ds = ds; - ret = LocalAlloc16 (flags, size); - stack16->ds = oldDS; - return ret; + DbgPrint("LOCAL_Alloc unimplemented!\n"); + return 0; } static inline HLOCAL16 LOCAL_ReAlloc( HANDLE16 ds, HLOCAL16 handle, WORD size, UINT16 flags ) { - STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); - HANDLE16 oldDS = stack16->ds; - HLOCAL16 ret; - - stack16->ds = ds; - ret = LocalReAlloc16 (handle, size, flags); - stack16->ds = oldDS; - return ret; + DbgPrint("LOCAL_ReAlloc unimplemented!\n"); + return 0; } static inline HLOCAL16 LOCAL_Free( HANDLE16 ds, HLOCAL16 handle ) { - STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); - HANDLE16 oldDS = stack16->ds; - HLOCAL16 ret; - - stack16->ds = ds; - ret = LocalFree16 (handle); - stack16->ds = oldDS; - return ret; + DbgPrint("LOCAL_Free unimplemented!\n"); + return 0; } #define USER_HEAP_ALLOC(size) \ @@ -76,7 +58,8 @@ #define USER_HEAP_FREE(handle) \ LOCAL_Free( USER_HeapSel, LOWORD(handle) ) #define USER_HEAP_LIN_ADDR(handle) \ - ((handle) ? MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(handle))) : NULL) + /*((handle) ? MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(handle))) : NULL)*/ \ + (handle) #define GET_WORD(ptr) (*(const WORD *)(ptr)) #define GET_DWORD(ptr) (*(const DWORD *)(ptr)) Modified: branches/arwinss/reactos/dll/win32/user32/win.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] Fri Jul 17 22:45:32 2009 @@ -103,10 +103,6 @@ HWND handle = 0, full_parent = 0, full_owner = 0; struct tagCLASS *class = NULL; int extra_bytes = 0; - - /* if 16-bit instance, map to module handle */ - if (instance && !HIWORD(instance)) - instance = HINSTANCE_32(GetExePtr(HINSTANCE_16(instance))); SERVER_START_REQ( create_window ) { @@ -1217,10 +1213,7 @@ LPCSTR menuName = (LPCSTR)GetClassLongPtrA( hwnd, GCLP_MENUNAME ); if (menuName) { - if (!cs->hInstance || HIWORD(cs->hInstance)) - cs->hMenu = LoadMenuA(cs->hInstance,menuName); - else - cs->hMenu = HMENU_32(LoadMenu16(HINSTANCE_16(cs->hInstance),menuName)); + cs->hMenu = LoadMenuA(cs->hInstance,menuName); if (cs->hMenu) MENU_SetMenu( hwnd, cs->hMenu ); } @@ -2232,6 +2225,7 @@ /********************************************************************** * GetWindowLong (USER.135) */ +#ifndef __REACTOS__ LONG WINAPI GetWindowLong16( HWND16 hwnd, INT16 offset ) { WND *wndPtr; @@ -2276,6 +2270,7 @@ if (is_winproc) retvalue = (LONG_PTR)WINPROC_GetProc16( (WNDPROC)retvalue, FALSE ); return retvalue; } +#endif /********************************************************************** @@ -2323,6 +2318,7 @@ /********************************************************************** * SetWindowLong (USER.136) */ +#ifndef __REACTOS__ LONG WINAPI SetWindowLong16( HWND16 hwnd, INT16 offset, LONG newval ) { WND *wndPtr; @@ -2351,6 +2347,7 @@ } else return SetWindowLongA( WIN_Handle32(hwnd), offset, newval ); } +#endif /**********************************************************************
15 years, 5 months
1
0
0
0
[fireball] 42020: - Start removing 16bit crap, and stub needed stuff for now.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 22:39:01 2009 New Revision: 42020 URL:
http://svn.reactos.org/svn/reactos?rev=42020&view=rev
Log: - Start removing 16bit crap, and stub needed stuff for now. Added: branches/arwinss/reactos/dll/win32/user32/legacy.c (with props) Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c branches/arwinss/reactos/dll/win32/user32/edit.c branches/arwinss/reactos/dll/win32/user32/listbox.c branches/arwinss/reactos/dll/win32/user32/user32.rbuild branches/arwinss/reactos/dll/win32/user32/wsprintf.c Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -449,6 +449,7 @@ /********************************************************************** * CURSORICON_FreeModuleIcons */ +#ifndef __REACTOS__ void CURSORICON_FreeModuleIcons( HMODULE16 hMod16 ) { ICONCACHE **ptr = &IconAnchor; @@ -472,7 +473,7 @@ LeaveCriticalSection( &IconCrst ); } - +#endif /* * The following macro functions account for the irregularities of * accessing cursor and icon resources in files and resource entries. @@ -1225,6 +1226,7 @@ */ static HICON CURSORICON_Copy( HINSTANCE16 hInst16, HICON hIcon ) { +#if 0 char *ptrOld, *ptrNew; int size; HICON16 hOld = HICON_16(hIcon); @@ -1240,6 +1242,10 @@ GlobalUnlock16( hOld ); GlobalUnlock16( hNew ); return HICON_32(hNew); +#else + ERR("CURSORICON_Copy unimplemented!\n"); + return 0; +#endif } /************************************************************************* @@ -1404,8 +1410,12 @@ info.nWidthBytes = 0; info.bPlanes = 1; info.bBitsPerPixel = 1; - +#if 0 return HICON_32(CreateCursorIconIndirect16(0, &info, lpANDbits, lpXORbits)); +#else + ERR("CreateCursor unimplemented!\n"); + return 0; +#endif } @@ -1487,6 +1497,7 @@ /*********************************************************************** * CreateCursorIconIndirect (USER.408) */ +#ifndef __REACTOS__ HGLOBAL16 WINAPI CreateCursorIconIndirect16( HINSTANCE16 hInstance, CURSORICONINFO *info, LPCVOID lpANDbits, @@ -1522,6 +1533,7 @@ TRACE_(icon)("%04x %04x\n", hInstance, hIcon ); return HICON_16(CURSORICON_Copy(hInstance, HICON_32(hIcon))); } +#endif /*********************************************************************** @@ -1537,11 +1549,13 @@ /*********************************************************************** * CopyCursor (USER.369) */ +#ifndef __REACTOS__ HCURSOR16 WINAPI CopyCursor16( HINSTANCE16 hInstance, HCURSOR16 hCursor ) { TRACE_(cursor)("%04x %04x\n", hInstance, hCursor ); return HICON_16(CURSORICON_Copy(hInstance, HCURSOR_32(hCursor))); } +#endif /********************************************************************** * DestroyIcon32 (USER.610) @@ -1750,6 +1764,7 @@ /*********************************************************************** * DumpIcon (USER.459) */ +#ifndef __REACTOS__ DWORD WINAPI DumpIcon16( SEGPTR pInfo, WORD *lpLen, SEGPTR *lpXorBits, SEGPTR *lpAndBits ) { @@ -1764,6 +1779,7 @@ if (lpLen) *lpLen = sizeof(CURSORICONINFO) + sizeAnd + sizeXor; return MAKELONG( sizeXor, sizeXor ); } +#endif /*********************************************************************** Modified: branches/arwinss/reactos/dll/win32/user32/edit.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -1237,7 +1237,6 @@ CHAR *textA = NULL; UINT countA = 0; UINT countW = get_text_length(es) + 1; - STACK16FRAME* stack16 = NULL; HANDLE16 oldDS = 0; if(es->hloc32A) @@ -1263,6 +1262,7 @@ } textA = LocalLock(es->hloc32A); } +#ifndef __REACTOS__ else if(es->hloc16) { UINT countA_new = WideCharToMultiByte(CP_ACP, 0, es->text, countW, NULL, 0, NULL, NULL); @@ -1292,17 +1292,14 @@ } textA = MapSL(LocalLock16(es->hloc16)); } +#endif if(textA) { WideCharToMultiByte(CP_ACP, 0, es->text, countW, textA, countA, NULL, NULL); - if(stack16) - LocalUnlock16(es->hloc16); - else LocalUnlock(es->hloc32A); } - if (stack16) stack16->ds = oldDS; LocalUnlock(es->hloc32W); es->text = NULL; } @@ -2771,7 +2768,7 @@ } EDIT_UnlockBuffer(es, TRUE); - +#ifndef __REACTOS__ if(es->hloc16) { STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); @@ -2782,7 +2779,7 @@ stack16->ds = oldDS; es->hloc16 = 0; } - +#endif if(es->is_unicode) { if(es->hloc32A) @@ -4705,6 +4702,7 @@ if (es->hloc32A) { LocalFree(es->hloc32A); } +#ifndef __REACTOS__ if (es->hloc16) { STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved)); HANDLE16 oldDS = stack16->ds; @@ -4714,7 +4712,7 @@ LocalFree16(es->hloc16); stack16->ds = oldDS; } - +#endif pc = es->first_line_def; while (pc) { Added: branches/arwinss/reactos/dll/win32/user32/legacy.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/legacy.c (added) +++ branches/arwinss/reactos/dll/win32/user32/legacy.c [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -1,0 +1,88 @@ +#include <stdarg.h> +#include <string.h> +#include <stdlib.h> + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winerror.h" +#include "wine/winbase16.h" +#include "wine/winuser16.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(userlegacy); + +LPVOID +WINAPI +GlobalLock16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return NULL; +} + +BOOL16 +WINAPI +GlobalUnlock16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return FALSE; +} + +HGLOBAL16 +WINAPI +GlobalAlloc16(UINT16 u, DWORD d) +{ + UNIMPLEMENTED; + return 0; +} + +HGLOBAL16 +WINAPI +GlobalFree16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return 0; +} + +DWORD +WINAPI +GlobalSize16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return 0; +} + +SEGPTR +WINAPI +LocalLock16(HLOCAL16 h) +{ + UNIMPLEMENTED; + return NULL; +} + +BOOL16 +WINAPI +LocalUnlock16(HLOCAL16 h) +{ + UNIMPLEMENTED; + return FALSE; +} + +LPVOID +WINAPI +LockResource16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return NULL; +} + +BOOL16 +WINAPI +FreeResource16(HGLOBAL16 h) +{ + UNIMPLEMENTED; + return FALSE; +} + + Propchange: branches/arwinss/reactos/dll/win32/user32/legacy.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: branches/arwinss/reactos/dll/win32/user32/listbox.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/listbox.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/listbox.c [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -169,7 +169,7 @@ /* check whether app is a Win 3.1 app */ static inline BOOL is_old_app( LB_DESCR *descr ) { - return (GetExpWinVer16( GetWindowLongPtrW(descr->self, GWLP_HINSTANCE) ) & 0xFF00 ) == 0x0300; + return FALSE; } Modified: branches/arwinss/reactos/dll/win32/user32/user32.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user32.rbuild [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user32.rbuild [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -37,6 +37,7 @@ <file>hook.c</file> <file>icontitle.c</file> <file>input.c</file> + <file>legacy.c</file> <file>listbox.c</file> <file>lstr.c</file> <file>mdi.c</file> Modified: branches/arwinss/reactos/dll/win32/user32/wsprintf.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/wsprintf.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/wsprintf.c [iso-8859-1] Fri Jul 17 22:39:01 2009 @@ -289,109 +289,6 @@ if (format->flags & WPRINTF_PREFIX_HEX) len += 2; return len; } - - -/*********************************************************************** - * wvsnprintf16 (Not a Windows API) - */ -static INT16 wvsnprintf16( LPSTR buffer, UINT16 maxlen, LPCSTR spec, VA_LIST16 args ) -{ - WPRINTF_FORMAT format; - LPSTR p = buffer; - UINT i, len, sign; - CHAR number[20]; - WPRINTF_DATA cur_arg; - SEGPTR seg_str; - - while (*spec && (maxlen > 1)) - { - if (*spec != '%') { *p++ = *spec++; maxlen--; continue; } - spec++; - if (*spec == '%') { *p++ = *spec++; maxlen--; continue; } - spec += WPRINTF_ParseFormatA( spec, &format ); - switch(format.type) - { - case WPR_WCHAR: /* No Unicode in Win16 */ - case WPR_CHAR: - cur_arg.char_view = VA_ARG16( args, CHAR ); - break; - case WPR_WSTRING: /* No Unicode in Win16 */ - case WPR_STRING: - seg_str = VA_ARG16( args, SEGPTR ); - if (IsBadReadPtr16(seg_str, 1 )) cur_arg.lpcstr_view = ""; - else cur_arg.lpcstr_view = MapSL( seg_str ); - break; - case WPR_SIGNED: - if (!(format.flags & WPRINTF_LONG)) - { - cur_arg.int_view = VA_ARG16( args, INT16 ); - break; - } - /* fall through */ - case WPR_HEXA: - case WPR_UNSIGNED: - if (format.flags & WPRINTF_LONG) - cur_arg.int_view = VA_ARG16( args, UINT ); - else - cur_arg.int_view = VA_ARG16( args, UINT16 ); - break; - case WPR_UNKNOWN: - continue; - } - len = WPRINTF_GetLen( &format, &cur_arg, number, maxlen - 1 ); - sign = 0; - if (!(format.flags & WPRINTF_LEFTALIGN)) - for (i = format.precision; i < format.width; i++, maxlen--) - *p++ = ' '; - switch(format.type) - { - case WPR_WCHAR: /* No Unicode in Win16 */ - case WPR_CHAR: - *p= cur_arg.char_view; - /* wsprintf16 (unlike wsprintf) ignores null characters */ - if (*p != '\0') p++; - else if (format.width > 1) *p++ = ' '; - else len = 0; - break; - case WPR_WSTRING: /* No Unicode in Win16 */ - case WPR_STRING: - if (len) memcpy( p, cur_arg.lpcstr_view, len ); - p += len; - break; - case WPR_HEXA: - if ((format.flags & WPRINTF_PREFIX_HEX) && (maxlen > 3)) - { - *p++ = '0'; - *p++ = (format.flags & WPRINTF_UPPER_HEX) ? 'X' : 'x'; - maxlen -= 2; - len -= 2; - } - /* fall through */ - case WPR_SIGNED: - /* Transfer the sign now, just in case it will be zero-padded*/ - if (number[0] == '-') - { - *p++ = '-'; - sign = 1; - } - /* fall through */ - case WPR_UNSIGNED: - for (i = len; i < format.precision; i++, maxlen--) *p++ = '0'; - if (len > sign) memcpy( p, number + sign, len - sign ); - p += len-sign; - break; - case WPR_UNKNOWN: - continue; - } - if (format.flags & WPRINTF_LEFTALIGN) - for (i = format.precision; i < format.width; i++, maxlen--) - *p++ = ' '; - maxlen -= len; - } - *p = 0; - return (maxlen > 1) ? (INT)(p - buffer) : -1; -} - /*********************************************************************** * wvsnprintfA (internal) @@ -599,19 +496,6 @@ /*********************************************************************** - * wvsprintf (USER.421) - */ -INT16 WINAPI wvsprintf16( LPSTR buffer, LPCSTR spec, VA_LIST16 args ) -{ - INT16 res; - - TRACE("for %p got:\n",buffer); - res = wvsnprintf16( buffer, 1024, spec, args ); - return ( res == -1 ) ? 1024 : res; -} - - -/*********************************************************************** * wvsprintfA (USER32.@) */ INT WINAPI wvsprintfA( LPSTR buffer, LPCSTR spec, __ms_va_list args ) @@ -630,17 +514,6 @@ return ( res == -1 ) ? 1024 : res; } - -/*********************************************************************** - * _wsprintf (USER.420) - */ -INT16 WINAPIV wsprintf16( LPSTR buffer, LPCSTR spec, VA_LIST16 valist ) -{ - INT16 res; - - res = wvsnprintf16( buffer, 1024, spec, valist ); - return ( res == -1 ) ? 1024 : res; -} /***********************************************************************
15 years, 5 months
1
0
0
0
[fireball] 42019: - Add more missing defines to PSDK headers. - User32 almost compiles, but a lot of serious warnings are there.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 22:34:31 2009 New Revision: 42019 URL:
http://svn.reactos.org/svn/reactos?rev=42019&view=rev
Log: - Add more missing defines to PSDK headers. - User32 almost compiles, but a lot of serious warnings are there. Modified: branches/arwinss/reactos/dll/win32/user32/winproc.c branches/arwinss/reactos/dll/win32/user32/wsprintf.c branches/arwinss/reactos/include/psdk/wingdi.h branches/arwinss/reactos/include/psdk/winuser.h branches/arwinss/reactos/include/reactos/wine/winuser16.h Modified: branches/arwinss/reactos/dll/win32/user32/winproc.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/winproc.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/winproc.c [iso-8859-1] Fri Jul 17 22:34:31 2009 @@ -318,6 +318,7 @@ } #endif /* __i386__ */ +#ifndef __REACTOS__ static void RECT16to32( const RECT16 *from, RECT *to ) { to->left = from->left; @@ -441,6 +442,7 @@ to->szTitle = MapSL(from->szTitle); to->szClass = MapSL(from->szClass); } +#endif static WPARAM map_wparam_char_WtoA( WPARAM wParam, DWORD len ) { @@ -497,6 +499,7 @@ } /* call a 16-bit window procedure */ +#ifndef __REACTOS__ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam, LRESULT *result, void *arg ) { @@ -617,6 +620,7 @@ if (!ptr) return 0; return alloc_win16_thunk( ptr ); } +#endif /********************************************************************** @@ -1287,6 +1291,7 @@ /********************************************************************** * WINPROC_CallProc16To32A */ +#ifndef __REACTOS__ LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam, LRESULT *result, void *arg ) { @@ -2179,6 +2184,7 @@ } return ret; } +#endif /********************************************************************** @@ -2214,8 +2220,6 @@ call_window_proc( hwnd, msg, wParam, lParam, result, proc->procW ); else if (proc->procA) WINPROC_CallProcWtoA( call_window_proc, hwnd, msg, wParam, lParam, result, proc->procA ); - else - WINPROC_CallProcWtoA( call_window_proc_Ato16, hwnd, msg, wParam, lParam, result, proc->proc16 ); } else { @@ -2223,8 +2227,6 @@ call_window_proc( hwnd, msg, wParam, lParam, result, proc->procA ); else if (proc->procW) WINPROC_CallProcAtoW( call_window_proc, hwnd, msg, wParam, lParam, result, proc->procW, mapping ); - else - WINPROC_CallProc32ATo16( call_window_proc16, hwnd, msg, wParam, lParam, result, proc->proc16 ); } thread_info->recursion_count--; return TRUE; @@ -2234,6 +2236,7 @@ /********************************************************************** * CallWindowProc (USER.122) */ +#ifndef __REACTOS__ LRESULT WINAPI CallWindowProc16( WNDPROC16 func, HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) { @@ -2253,6 +2256,7 @@ return result; } +#endif /********************************************************************** @@ -2298,8 +2302,6 @@ else if (proc->procW) WINPROC_CallProcAtoW( call_window_proc, hwnd, msg, wParam, lParam, &result, proc->procW, WMCHAR_MAP_CALLWINDOWPROC ); - else - WINPROC_CallProc32ATo16( call_window_proc16, hwnd, msg, wParam, lParam, &result, proc->proc16 ); return result; } @@ -2323,8 +2325,6 @@ call_window_proc( hwnd, msg, wParam, lParam, &result, proc->procW ); else if (proc->procA) WINPROC_CallProcWtoA( call_window_proc, hwnd, msg, wParam, lParam, &result, proc->procA ); - else - WINPROC_CallProcWtoA( call_window_proc_Ato16, hwnd, msg, wParam, lParam, &result, proc->proc16 ); return result; } @@ -2332,6 +2332,7 @@ /********************************************************************** * WINPROC_CallDlgProc16 */ +#ifndef __REACTOS__ INT_PTR WINPROC_CallDlgProc16( DLGPROC16 func, HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) { WINDOWPROC *proc; @@ -2362,6 +2363,7 @@ } return ret; } +#endif /********************************************************************** @@ -2385,11 +2387,6 @@ proc->procW, WMCHAR_MAP_CALLWINDOWPROC ); SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result ); } - else - { - ret = WINPROC_CallProc32ATo16( call_dialog_proc16, hwnd, msg, wParam, lParam, &result, proc->proc16 ); - SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result ); - } return ret; } @@ -2414,10 +2411,5 @@ ret = WINPROC_CallProcWtoA( call_dialog_proc, hwnd, msg, wParam, lParam, &result, proc->procA ); SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result ); } - else - { - ret = WINPROC_CallProcWtoA( call_dialog_proc_Ato16, hwnd, msg, wParam, lParam, &result, proc->proc16 ); - SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result ); - } return ret; } Modified: branches/arwinss/reactos/dll/win32/user32/wsprintf.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/wsprintf.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/wsprintf.c [iso-8859-1] Fri Jul 17 22:34:31 2009 @@ -37,6 +37,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(string); +#ifndef __ms_va_list +# if defined(__x86_64__) && defined (__GNUC__) +# define __ms_va_list __builtin_ms_va_list +# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg) +# define __ms_va_end(list) __builtin_ms_va_end(list) +# else +# define __ms_va_list va_list +# define __ms_va_start(list,arg) va_start(list,arg) +# define __ms_va_end(list) va_end(list) +# endif +#endif #define WPRINTF_LEFTALIGN 0x0001 /* Align output on the left ('-' prefix) */ #define WPRINTF_PREFIX_HEX 0x0002 /* Prefix hex with 0x ('#' prefix) */ Modified: branches/arwinss/reactos/include/psdk/wingdi.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] Fri Jul 17 22:34:31 2009 @@ -69,6 +69,7 @@ #define DI_MASK 1 #define DI_NORMAL 3 #define DI_APPBANDING 1 +#define DI_NOMIRROR 0x0010 #define EMR_HEADER 1 #define EMR_POLYBEZIER 2 #define EMR_POLYGON 3 Modified: branches/arwinss/reactos/include/psdk/winuser.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/winuser.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/winuser.h [iso-8859-1] Fri Jul 17 22:34:31 2009 @@ -311,6 +311,7 @@ #define ES_RIGHT 2 #define ES_UPPERCASE 8 #define ES_WANTRETURN 4096 +#define ES_COMBO 0x00000200 /* Undocumented. Parent is a combobox */ #define LBS_DISABLENOSCROLL 4096 #define LBS_EXTENDEDSEL 0x800 #define LBS_HASSTRINGS 64 @@ -391,6 +392,7 @@ #define WS_EX_COMPOSITED 0x2000000 /* XP */ #define WS_EX_CONTEXTHELP 0x400 #define WS_EX_CONTROLPARENT 0x10000 +#define WS_EX_DRAGDETECT 0x00000002L #define WS_EX_DLGMODALFRAME 1 #define WS_EX_LAYERED 0x80000 /* w2k */ #define WS_EX_LAYOUTRTL 0x400000 /* w98, w2k */ @@ -869,6 +871,8 @@ #endif #define QS_SENDMESSAGE 64 #define QS_TIMER 16 +/* Extra (undocumented) queue wake bits - see "Undoc. Windows" */ +#define QS_SMRESULT 0x8000 #define USER_TIMER_MAXIMUM 2147483647 #define USER_TIMER_MINIMUM 10 @@ -1205,6 +1209,10 @@ #define SWP_NOSENDCHANGING 1024 #define SWP_DEFERERASE 8192 #define SWP_ASYNCWINDOWPOS 16384 +/* undocumented SWP flags - from SDK 3.1 */ +#define SWP_NOCLIENTSIZE 0x0800 +#define SWP_NOCLIENTMOVE 0x1000 +#define SWP_STATECHANGED 0x8000 #define HSHELL_WINDOWCREATED 1 #define HSHELL_WINDOWDESTROYED 2 @@ -1563,6 +1571,7 @@ #define WM_ACTIVATE 6 #define WM_SETFOCUS 7 #define WM_KILLFOCUS 8 +#define WM_SETVISIBLE 9 #define WM_ENABLE 10 #define WM_SETREDRAW 11 #define WM_SETTEXT 12 @@ -1619,6 +1628,7 @@ #define WM_NOTIFY 78 #define WM_INPUTLANGCHANGEREQUEST 80 #define WM_INPUTLANGCHANGE 81 +#define WM_ISACTIVEICON 0x0035 #define WM_TCARD 82 #define WM_HELP 83 #define WM_USERCHANGED 84 @@ -1656,6 +1666,7 @@ #define WM_NCXBUTTONDBLCLK 173 #endif /* (_WIN32_WINNT >= 0x0500) */ +#define WM_KEYF1 0x004d #define WM_KEYFIRST 256 #define WM_KEYDOWN 256 #define WM_KEYUP 257 @@ -1689,6 +1700,7 @@ #define WM_VSCROLL 277 #define WM_INITMENU 278 #define WM_INITMENUPOPUP 279 +#define WM_SYSTIMER 280 #define WM_MENUSELECT 287 #define WM_MENUCHAR 288 #define WM_ENTERIDLE 289 @@ -1708,6 +1720,14 @@ #endif /* _WIN32_WCE */ #endif /* (WINVER >= 0x0500) */ + /* D&D messages */ +#define WM_DROPOBJECT 0x022A +#define WM_QUERYDROPOBJECT 0x022B +#define WM_BEGINDRAG 0x022C +#define WM_DRAGLOOP 0x022D +#define WM_DRAGSELECT 0x022E +#define WM_DRAGMOVE 0x022F + #define WM_CTLCOLORMSGBOX 306 #define WM_CTLCOLOREDIT 307 #define WM_CTLCOLORLISTBOX 308 @@ -1715,8 +1735,10 @@ #define WM_CTLCOLORDLG 310 #define WM_CTLCOLORSCROLLBAR 311 #define WM_CTLCOLORSTATIC 312 +#define WM_CTLCOLOR 25 #define WM_MOUSEFIRST 512 #define WM_MOUSEMOVE 512 +#define WM_LBTRACKPOINT 0x0131 #define WM_LBUTTONDOWN 513 #define WM_LBUTTONUP 514 #define WM_LBUTTONDBLCLK 515 @@ -1805,6 +1827,7 @@ #define WM_HOTKEY 786 #define WM_PRINT 791 #define WM_PRINTCLIENT 792 +#define WM_APPCOMMAND 793 #define WM_HANDHELDFIRST 856 #define WM_HANDHELDLAST 863 #define WM_AFXFIRST 864 @@ -1878,6 +1901,7 @@ #define CB_SETLOCALE 345 #define CB_SETTOPINDEX 348 #define CB_SHOWDROPDOWN 335 +#define CB_MSGMAX 0x0165 #define CBN_CLOSEUP 8 #define CBN_DBLCLK 2 #define CBN_DROPDOWN 7 @@ -1938,9 +1962,8 @@ #define EN_VSCROLL 1538 #define LB_ADDFILE 406 #define LB_ADDSTRING 384 -#ifdef _WINE -#define LB_CARETOFF 420 -#endif +#define LB_CARETON 0x01a3 +#define LB_CARETOFF 0x01a4 #define LB_DELETESTRING 386 #define LB_DIR 397 #define LB_FINDSTRING 399 @@ -3857,7 +3880,7 @@ HWND WINAPI CreateDialogIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM); HWND WINAPI CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM); HWND WINAPI CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM); -HICON WINAPI CreateIcon(HINSTANCE,int,int,BYTE,BYTE,const BYTE*,const BYTE*); +HICON WINAPI CreateIcon(HINSTANCE,INT,INT,BYTE,BYTE,LPCVOID,LPCVOID); HICON WINAPI CreateIconFromResource(PBYTE,DWORD,BOOL,DWORD); HICON WINAPI CreateIconFromResourceEx(PBYTE,DWORD,BOOL,DWORD,int,int,UINT); HICON WINAPI CreateIconIndirect(PICONINFO); @@ -3870,8 +3893,8 @@ HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID); HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID); #ifndef NOWINDOWSTATION -HWINSTA WINAPI CreateWindowStationA(LPSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HWINSTA WINAPI CreateWindowStationW(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); +HWINSTA WINAPI CreateWindowStationA(LPCSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES); +HWINSTA WINAPI CreateWindowStationW(LPCWSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES); #endif LRESULT WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM); LRESULT WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM); @@ -4016,7 +4039,7 @@ HDC WINAPI GetDC(HWND); HDC WINAPI GetDCEx(HWND,HRGN,DWORD); HWND WINAPI GetDesktopWindow(void); -long WINAPI GetDialogBaseUnits(void); +DWORD WINAPI GetDialogBaseUnits(void); int WINAPI GetDlgCtrlID(HWND); HWND WINAPI GetDlgItem(HWND,int); UINT WINAPI GetDlgItemInt(HWND,int,PBOOL,BOOL); @@ -4251,12 +4274,12 @@ BOOL WINAPI OemToCharW(LPCSTR,LPWSTR); BOOL WINAPI OffsetRect(LPRECT,int,int); BOOL WINAPI OpenClipboard(HWND); -HDESK WINAPI OpenDesktopA(LPSTR,DWORD,BOOL,DWORD); -HDESK WINAPI OpenDesktopW(LPWSTR,DWORD,BOOL,DWORD); +HDESK WINAPI OpenDesktopA(LPCSTR,DWORD,BOOL,DWORD); +HDESK WINAPI OpenDesktopW(LPCWSTR,DWORD,BOOL,DWORD); BOOL WINAPI OpenIcon(HWND); HDESK WINAPI OpenInputDesktop(DWORD,BOOL,DWORD); -HWINSTA WINAPI OpenWindowStationA(LPSTR,BOOL,DWORD); -HWINSTA WINAPI OpenWindowStationW(LPWSTR,BOOL,DWORD); +HWINSTA WINAPI OpenWindowStationA(LPCSTR,BOOL,DWORD); +HWINSTA WINAPI OpenWindowStationW(LPCWSTR,BOOL,DWORD); BOOL WINAPI PaintDesktop(HDC); BOOL WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT); BOOL WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT); @@ -4290,7 +4313,7 @@ BOOL WINAPI RegisterHotKey(HWND,int,UINT,UINT); BOOL WINAPI RegisterLogonProcess(DWORD,BOOL); #if (_WIN32_WINNT >= 0x0501) -BOOL WINAPI RegisterRawInputDevices(PCRAWINPUTDEVICE,UINT,UINT); +BOOL WINAPI RegisterRawInputDevices(PRAWINPUTDEVICE,UINT,UINT); #endif BOOL WINAPI RegisterShellHookWindow(HWND); UINT WINAPI RegisterWindowMessageA(LPCSTR); @@ -4413,10 +4436,10 @@ LONG WINAPI TabbedTextOutA(HDC,int,int,LPCSTR,int,int,LPINT,int); LONG WINAPI TabbedTextOutW(HDC,int,int,LPCWSTR,int,int,LPINT,int); WORD WINAPI TileWindows(HWND,UINT,LPCRECT,UINT,const HWND *); -int WINAPI ToAscii(UINT,UINT,PBYTE,LPWORD,UINT); -int WINAPI ToAsciiEx(UINT,UINT,PBYTE,LPWORD,UINT,HKL); -int WINAPI ToUnicode(UINT,UINT,PBYTE,LPWSTR,int,UINT); -int WINAPI ToUnicodeEx(UINT,UINT,PBYTE,LPWSTR,int,UINT,HKL); +int WINAPI ToAscii(UINT,UINT,const BYTE *,LPWORD,UINT); +int WINAPI ToAsciiEx(UINT,UINT,const BYTE *,LPWORD,UINT,HKL); +INT WINAPI ToUnicode(UINT,UINT,const BYTE *,LPWSTR,int,UINT); +INT WINAPI ToUnicodeEx(UINT,UINT,const BYTE *,LPWSTR,int,UINT,HKL); BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT); BOOL WINAPI TrackPopupMenu(HMENU,UINT,int,int,int,HWND,LPCRECT); BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS); @@ -4441,8 +4464,8 @@ BOOL WINAPI ValidateRect(HWND,LPCRECT); BOOL WINAPI ValidateRgn(HWND,HRGN); SHORT WINAPI VkKeyScanA(CHAR); -SHORT WINAPI VkKeyScanExA(CHAR,HKL); -SHORT WINAPI VkKeyScanExW(WCHAR,HKL); +WORD WINAPI VkKeyScanExA(CHAR,HKL); +WORD WINAPI VkKeyScanExW(WCHAR,HKL); SHORT WINAPI VkKeyScanW(WCHAR); DWORD WINAPI WaitForInputIdle(HANDLE,DWORD); BOOL WINAPI WaitMessage(void); Modified: branches/arwinss/reactos/include/reactos/wine/winuser16.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
============================================================================== --- branches/arwinss/reactos/include/reactos/wine/winuser16.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/reactos/wine/winuser16.h [iso-8859-1] Fri Jul 17 22:34:31 2009 @@ -47,6 +47,59 @@ WORD cmd; } ACCEL16, *LPACCEL16; + /* Windows */ + +typedef struct +{ + SEGPTR lpCreateParams; + HINSTANCE16 hInstance; + HMENU16 hMenu; + HWND16 hwndParent; + INT16 cy; + INT16 cx; + INT16 y; + INT16 x; + LONG style; + SEGPTR lpszName; + SEGPTR lpszClass; + DWORD dwExStyle; +} CREATESTRUCT16, *LPCREATESTRUCT16; + +typedef struct +{ + SEGPTR szClass; + SEGPTR szTitle; + HINSTANCE16 hOwner; + INT16 x; + INT16 y; + INT16 cx; + INT16 cy; + DWORD style; + LPARAM lParam; +} MDICREATESTRUCT16, *LPMDICREATESTRUCT16; + + /* WM_GETMINMAXINFO struct */ +typedef struct +{ + POINT16 ptReserved; + POINT16 ptMaxSize; + POINT16 ptMaxPosition; + POINT16 ptMinTrackSize; + POINT16 ptMaxTrackSize; +} MINMAXINFO16; + + /* WM_WINDOWPOSCHANGING/CHANGED struct */ +typedef struct tagWINDOWPOS16 +{ + HWND16 hwnd; + HWND16 hwndInsertAfter; + INT16 x; + INT16 y; + INT16 cx; + INT16 cy; + UINT16 flags; +} WINDOWPOS16, *LPWINDOWPOS16; + /* WM_NCCALCSIZE parameter structure */ typedef struct {
15 years, 5 months
1
0
0
0
[fireball] 42018: - Make user32 compile, part 1.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 21:42:17 2009 New Revision: 42018 URL:
http://svn.reactos.org/svn/reactos?rev=42018&view=rev
Log: - Make user32 compile, part 1. Added: branches/arwinss/reactos/dll/win32/user32/resources/user32.rc (with props) Modified: branches/arwinss/reactos/dll/win32/user32/button.c branches/arwinss/reactos/dll/win32/user32/combo.c branches/arwinss/reactos/dll/win32/user32/cursoricon.c branches/arwinss/reactos/dll/win32/user32/defdlg.c branches/arwinss/reactos/dll/win32/user32/edit.c branches/arwinss/reactos/dll/win32/user32/listbox.c branches/arwinss/reactos/dll/win32/user32/lstr.c branches/arwinss/reactos/dll/win32/user32/mdi.c branches/arwinss/reactos/dll/win32/user32/menu.c branches/arwinss/reactos/dll/win32/user32/misc.c branches/arwinss/reactos/dll/win32/user32/property.c branches/arwinss/reactos/dll/win32/user32/scroll.c branches/arwinss/reactos/dll/win32/user32/static.c branches/arwinss/reactos/dll/win32/user32/sysparams.c branches/arwinss/reactos/dll/win32/user32/uitools.c branches/arwinss/reactos/dll/win32/user32/user32.rbuild branches/arwinss/reactos/dll/win32/user32/user_private.h branches/arwinss/reactos/dll/win32/user32/win.c Modified: branches/arwinss/reactos/dll/win32/user32/button.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -461,7 +461,9 @@ InvalidateRect( hWnd, NULL, FALSE ); break; +#ifndef __REACTOS__ case BM_SETSTYLE16: +#endif case BM_SETSTYLE: if ((wParam & 0x0f) >= MAX_BTN_TYPE) break; btn_type = wParam & 0x0f; @@ -499,11 +501,15 @@ case BM_GETIMAGE: return GetWindowLongPtrW( hWnd, HIMAGE_GWL_OFFSET ); +#ifndef __REACTOS__ case BM_GETCHECK16: +#endif case BM_GETCHECK: return get_button_state( hWnd ) & 3; +#ifndef __REACTOS__ case BM_SETCHECK16: +#endif case BM_SETCHECK: if (wParam > maxCheckState[btn_type]) wParam = maxCheckState[btn_type]; state = get_button_state( hWnd ); @@ -522,11 +528,15 @@ BUTTON_CheckAutoRadioButton( hWnd ); break; +#ifndef __REACTOS__ case BM_GETSTATE16: +#endif case BM_GETSTATE: return get_button_state( hWnd ); +#ifndef __REACTOS__ case BM_SETSTATE16: +#endif case BM_SETSTATE: state = get_button_state( hWnd ); if (wParam) Modified: branches/arwinss/reactos/dll/win32/user32/combo.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/combo.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/combo.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -2044,9 +2044,11 @@ /* Combo messages */ +#ifndef __REACTOS__ case CB_ADDSTRING16: if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_ADDSTRING: if( unicode ) { @@ -2077,10 +2079,12 @@ HeapFree(GetProcessHeap(), 0, string); return ret; } +#ifndef __REACTOS__ case CB_INSERTSTRING16: wParam = (INT)(INT16)wParam; if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_INSERTSTRING: if( unicode ) { @@ -2099,43 +2103,51 @@ return SendMessageA(lphc->hWndLBox, LB_INSERTSTRING, wParam, lParam); } - case CB_DELETESTRING16: case CB_DELETESTRING: return unicode ? SendMessageW(lphc->hWndLBox, LB_DELETESTRING, wParam, 0) : SendMessageA(lphc->hWndLBox, LB_DELETESTRING, wParam, 0); +#ifndef __REACTOS__ case CB_SELECTSTRING16: wParam = (INT)(INT16)wParam; if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_SELECTSTRING: return COMBO_SelectString(lphc, (INT)wParam, lParam, unicode); +#ifndef __REACTOS__ case CB_FINDSTRING16: wParam = (INT)(INT16)wParam; if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_FINDSTRING: return unicode ? SendMessageW(lphc->hWndLBox, LB_FINDSTRING, wParam, lParam) : SendMessageA(lphc->hWndLBox, LB_FINDSTRING, wParam, lParam); +#ifndef __REACTOS__ case CB_FINDSTRINGEXACT16: wParam = (INT)(INT16)wParam; if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_FINDSTRINGEXACT: return unicode ? SendMessageW(lphc->hWndLBox, LB_FINDSTRINGEXACT, wParam, lParam) : SendMessageA(lphc->hWndLBox, LB_FINDSTRINGEXACT, wParam, lParam); +#ifndef __REACTOS__ case CB_SETITEMHEIGHT16: wParam = (INT)(INT16)wParam; /* signed integer */ /* fall through */ +#endif case CB_SETITEMHEIGHT: return COMBO_SetItemHeight( lphc, (INT)wParam, (INT)lParam); +#ifndef __REACTOS__ case CB_GETITEMHEIGHT16: wParam = (INT)(INT16)wParam; /* fall through */ +#endif case CB_GETITEMHEIGHT: if( (INT)wParam >= 0 ) /* listbox item */ return SendMessageW(lphc->hWndLBox, LB_GETITEMHEIGHT, wParam, 0); return CBGetTextAreaHeight(hwnd, lphc); - case CB_RESETCONTENT16: case CB_RESETCONTENT: SendMessageW(lphc->hWndLBox, LB_RESETCONTENT, 0, 0); if( (lphc->wState & CBF_EDIT) && CB_HASSTRINGS(lphc) ) @@ -2166,6 +2178,7 @@ if( (CB_GETTYPE(lphc) != CBS_SIMPLE) && (INT)wParam < 32768 ) lphc->droppedWidth = (INT)wParam; return CB_ERR; +#ifndef __REACTOS__ case CB_GETDROPPEDCONTROLRECT16: lParam = (LPARAM)MapSL(lParam); if( lParam ) @@ -2179,19 +2192,20 @@ r16->bottom = r.bottom; } return CB_OKAY; +#endif case CB_GETDROPPEDCONTROLRECT: if( lParam ) CBGetDroppedControlRect(lphc, (LPRECT)lParam ); return CB_OKAY; - case CB_GETDROPPEDSTATE16: case CB_GETDROPPEDSTATE: return (lphc->wState & CBF_DROPPED) ? TRUE : FALSE; +#ifndef __REACTOS__ case CB_DIR16: return SendMessageA(lphc->hWndLBox, LB_DIR16, wParam, lParam); +#endif case CB_DIR: return unicode ? SendMessageW(lphc->hWndLBox, LB_DIR, wParam, lParam) : SendMessageA(lphc->hWndLBox, LB_DIR, wParam, lParam); - case CB_SHOWDROPDOWN16: case CB_SHOWDROPDOWN: if( CB_GETTYPE(lphc) != CBS_SIMPLE ) { @@ -2205,15 +2219,15 @@ CBRollUp( lphc, FALSE, TRUE ); } return TRUE; - case CB_GETCOUNT16: case CB_GETCOUNT: return SendMessageW(lphc->hWndLBox, LB_GETCOUNT, 0, 0); - case CB_GETCURSEL16: case CB_GETCURSEL: return SendMessageW(lphc->hWndLBox, LB_GETCURSEL, 0, 0); +#ifndef __REACTOS__ case CB_SETCURSEL16: wParam = (INT)(INT16)wParam; /* fall through */ +#endif case CB_SETCURSEL: lParam = SendMessageW(lphc->hWndLBox, LB_SETCURSEL, wParam, 0); if( lParam >= 0 ) @@ -2226,44 +2240,52 @@ InvalidateRect(lphc->self, &lphc->textRect, TRUE); lphc->wState &= ~CBF_SELCHANGE; return lParam; +#ifndef __REACTOS__ case CB_GETLBTEXT16: wParam = (INT)(INT16)wParam; lParam = (LPARAM)MapSL(lParam); /* fall through */ +#endif case CB_GETLBTEXT: return unicode ? SendMessageW(lphc->hWndLBox, LB_GETTEXT, wParam, lParam) : SendMessageA(lphc->hWndLBox, LB_GETTEXT, wParam, lParam); +#ifndef __REACTOS__ case CB_GETLBTEXTLEN16: wParam = (INT)(INT16)wParam; /* fall through */ +#endif case CB_GETLBTEXTLEN: return unicode ? SendMessageW(lphc->hWndLBox, LB_GETTEXTLEN, wParam, 0) : SendMessageA(lphc->hWndLBox, LB_GETTEXTLEN, wParam, 0); +#ifndef __REACTOS__ case CB_GETITEMDATA16: wParam = (INT)(INT16)wParam; /* fall through */ +#endif case CB_GETITEMDATA: return SendMessageW(lphc->hWndLBox, LB_GETITEMDATA, wParam, 0); +#ifndef __REACTOS__ case CB_SETITEMDATA16: wParam = (INT)(INT16)wParam; /* fall through */ +#endif case CB_SETITEMDATA: return SendMessageW(lphc->hWndLBox, LB_SETITEMDATA, wParam, lParam); +#ifndef __REACTOS__ case CB_GETEDITSEL16: wParam = lParam = 0; /* just in case */ /* fall through */ +#endif case CB_GETEDITSEL: /* Edit checks passed parameters itself */ if( lphc->wState & CBF_EDIT ) return SendMessageW(lphc->hWndEdit, EM_GETSEL, wParam, lParam); return CB_ERR; - case CB_SETEDITSEL16: case CB_SETEDITSEL: if( lphc->wState & CBF_EDIT ) return SendMessageW(lphc->hWndEdit, EM_SETSEL, (INT)(INT16)LOWORD(lParam), (INT)(INT16)HIWORD(lParam) ); return CB_ERR; - case CB_SETEXTENDEDUI16: case CB_SETEXTENDEDUI: if( CB_GETTYPE(lphc) == CBS_SIMPLE ) return CB_ERR; @@ -2271,7 +2293,6 @@ lphc->wState |= CBF_EUI; else lphc->wState &= ~CBF_EUI; return CB_OKAY; - case CB_GETEXTENDEDUI16: case CB_GETEXTENDEDUI: return (lphc->wState & CBF_EUI) ? TRUE : FALSE; case CB_GETCOMBOBOXINFO: Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1412,6 +1412,7 @@ /*********************************************************************** * CreateIcon (USER.407) */ +#ifndef __REACTOS__ HICON16 WINAPI CreateIcon16( HINSTANCE16 hInstance, INT16 nWidth, INT16 nHeight, BYTE bPlanes, BYTE bBitsPixel, LPCVOID lpANDbits, LPCVOID lpXORbits ) @@ -1431,6 +1432,7 @@ return CreateCursorIconIndirect16( hInstance, &info, lpANDbits, lpXORbits ); } +#endif /*********************************************************************** @@ -1926,6 +1928,7 @@ /********************************************************************** * GetIconID (USER.455) */ +#ifndef __REACTOS__ WORD WINAPI GetIconID16( HGLOBAL16 hResource, DWORD resType ) { LPBYTE lpDir = GlobalLock16(hResource); @@ -1971,7 +1974,7 @@ return HICON_16(CreateIconFromResourceEx( bits, 0, TRUE, bNew ? 0x00030000 : 0x00020000, 0, 0, LR_DEFAULTCOLOR)); } - +#endif /*********************************************************************** * LoadCursorW (USER32.@) */ Modified: branches/arwinss/reactos/dll/win32/user32/defdlg.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -373,6 +373,7 @@ /*********************************************************************** * DefDlgProc (USER.308) */ +#ifndef __REACTOS__ LRESULT WINAPI DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) { @@ -421,6 +422,7 @@ } return DEFDLG_Epilog( hwnd32, msg, result); } +#endif /*********************************************************************** Modified: branches/arwinss/reactos/dll/win32/user32/edit.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -334,6 +334,7 @@ { INT ret; +#ifndef __REACTOS__ if (es->word_break_proc16) { HGLOBAL16 hglob16; SEGPTR segptr; @@ -355,7 +356,9 @@ GlobalUnlock16(hglob16); GlobalFree16(hglob16); } - else if (es->word_break_proc) + else +#endif + if (es->word_break_proc) { if(es->is_unicode) { @@ -4229,7 +4232,6 @@ * although it's also a regular control message. */ case EM_GETTHUMB: /* this one is used by NT notepad */ - case EM_GETTHUMB16: { LRESULT ret; if(GetWindowLongW( es->hwndSelf, GWL_STYLE ) & WS_HSCROLL) @@ -4243,11 +4245,12 @@ TRACE("EM_GETTHUMB: returning %ld\n", ret); return ret; } +#ifndef __REACTOS__ case EM_LINESCROLL16: TRACE("EM_LINESCROLL16\n"); dx = pos; break; - +#endif default: ERR("undocumented WM_HSCROLL action %d (0x%04x), please report\n", action, action); @@ -4353,7 +4356,6 @@ * although it's also a regular control message. */ case EM_GETTHUMB: /* this one is used by NT notepad */ - case EM_GETTHUMB16: { LRESULT ret; if(GetWindowLongW( es->hwndSelf, GWL_STYLE ) & WS_VSCROLL) @@ -4367,10 +4369,6 @@ TRACE("EM_GETTHUMB: returning %ld\n", ret); return ret; } - case EM_LINESCROLL16: - TRACE("EM_LINESCROLL16 %d\n", pos); - dy = pos; - break; default: ERR("undocumented WM_VSCROLL action %d (0x%04x), please report\n", @@ -4767,56 +4765,21 @@ if (es && (msg != WM_DESTROY)) EDIT_LockBuffer(es); switch (msg) { - case EM_GETSEL16: - wParam = 0; - lParam = 0; - /* fall through */ case EM_GETSEL: result = EDIT_EM_GetSel(es, (PUINT)wParam, (PUINT)lParam); break; - case EM_SETSEL16: - if ((short)LOWORD(lParam) == -1) - EDIT_EM_SetSel(es, (UINT)-1, 0, FALSE); - else - EDIT_EM_SetSel(es, LOWORD(lParam), HIWORD(lParam), FALSE); - if (!wParam) - EDIT_EM_ScrollCaret(es); - result = 1; - break; case EM_SETSEL: EDIT_EM_SetSel(es, wParam, lParam, FALSE); EDIT_EM_ScrollCaret(es); result = 1; break; - case EM_GETRECT16: - if (lParam) - { - RECT16 *r16 = MapSL(lParam); - r16->left = es->format_rect.left; - r16->top = es->format_rect.top; - r16->right = es->format_rect.right; - r16->bottom = es->format_rect.bottom; - } - break; case EM_GETRECT: if (lParam) CopyRect((LPRECT)lParam, &es->format_rect); break; - case EM_SETRECT16: - if ((es->style & ES_MULTILINE) && lParam) { - RECT rc; - RECT16 *r16 = MapSL(lParam); - rc.left = r16->left; - rc.top = r16->top; - rc.right = r16->right; - rc.bottom = r16->bottom; - EDIT_SetRectNP(es, &rc); - EDIT_UpdateText(es, NULL, TRUE); - } - break; case EM_SETRECT: if ((es->style & ES_MULTILINE) && lParam) { EDIT_SetRectNP(es, (LPRECT)lParam); @@ -4824,47 +4787,28 @@ } break; - case EM_SETRECTNP16: - if ((es->style & ES_MULTILINE) && lParam) { - RECT rc; - RECT16 *r16 = MapSL(lParam); - rc.left = r16->left; - rc.top = r16->top; - rc.right = r16->right; - rc.bottom = r16->bottom; - EDIT_SetRectNP(es, &rc); - } - break; case EM_SETRECTNP: if ((es->style & ES_MULTILINE) && lParam) EDIT_SetRectNP(es, (LPRECT)lParam); break; - case EM_SCROLL16: case EM_SCROLL: result = EDIT_EM_Scroll(es, (INT)wParam); break; - case EM_LINESCROLL16: - wParam = (WPARAM)(INT)(SHORT)HIWORD(lParam); - lParam = (LPARAM)(INT)(SHORT)LOWORD(lParam); - /* fall through */ case EM_LINESCROLL: result = (LRESULT)EDIT_EM_LineScroll(es, (INT)wParam, (INT)lParam); break; - case EM_SCROLLCARET16: case EM_SCROLLCARET: EDIT_EM_ScrollCaret(es); result = 1; break; - case EM_GETMODIFY16: case EM_GETMODIFY: result = ((es->flags & EF_MODIFIED) != 0); break; - case EM_SETMODIFY16: case EM_SETMODIFY: if (wParam) es->flags |= EF_MODIFIED; @@ -4872,34 +4816,22 @@ es->flags &= ~(EF_MODIFIED | EF_UPDATE); /* reset pending updates */ break; - case EM_GETLINECOUNT16: case EM_GETLINECOUNT: result = (es->style & ES_MULTILINE) ? es->line_count : 1; break; - case EM_LINEINDEX16: - if ((INT16)wParam == -1) - wParam = (WPARAM)-1; - /* fall through */ case EM_LINEINDEX: result = (LRESULT)EDIT_EM_LineIndex(es, (INT)wParam); break; - case EM_SETHANDLE16: - EDIT_EM_SetHandle16(es, (HLOCAL16)wParam); - break; case EM_SETHANDLE: EDIT_EM_SetHandle(es, (HLOCAL)wParam); break; - case EM_GETHANDLE16: - result = (LRESULT)EDIT_EM_GetHandle16(es); - break; case EM_GETHANDLE: result = (LRESULT)EDIT_EM_GetHandle(es); break; - case EM_GETTHUMB16: case EM_GETTHUMB: result = EDIT_EM_GetThumb(es); break; @@ -4917,15 +4849,10 @@ result = DefWindowProcW(hwnd, msg, wParam, lParam); break; - case EM_LINELENGTH16: case EM_LINELENGTH: result = (LRESULT)EDIT_EM_LineLength(es, (INT)wParam); break; - case EM_REPLACESEL16: - lParam = (LPARAM)MapSL(lParam); - unicode = FALSE; /* 16-bit message is always ascii */ - /* fall through */ case EM_REPLACESEL: { LPWSTR textW; @@ -4948,50 +4875,35 @@ break; } - case EM_GETLINE16: - lParam = (LPARAM)MapSL(lParam); - unicode = FALSE; /* 16-bit message is always ascii */ - /* fall through */ case EM_GETLINE: result = (LRESULT)EDIT_EM_GetLine(es, (INT)wParam, (LPWSTR)lParam, unicode); break; - case EM_LIMITTEXT16: case EM_SETLIMITTEXT: EDIT_EM_SetLimitText(es, wParam); break; - case EM_CANUNDO16: case EM_CANUNDO: result = (LRESULT)EDIT_EM_CanUndo(es); break; - case EM_UNDO16: case EM_UNDO: case WM_UNDO: result = (LRESULT)EDIT_EM_Undo(es); break; - case EM_FMTLINES16: case EM_FMTLINES: result = (LRESULT)EDIT_EM_FmtLines(es, (BOOL)wParam); break; - case EM_LINEFROMCHAR16: case EM_LINEFROMCHAR: result = (LRESULT)EDIT_EM_LineFromChar(es, (INT)wParam); break; - case EM_SETTABSTOPS16: - result = (LRESULT)EDIT_EM_SetTabStops16(es, (INT)wParam, MapSL(lParam)); - break; case EM_SETTABSTOPS: result = (LRESULT)EDIT_EM_SetTabStops(es, (INT)wParam, (LPINT)lParam); break; - case EM_SETPASSWORDCHAR16: - unicode = FALSE; /* 16-bit message is always ascii */ - /* fall through */ case EM_SETPASSWORDCHAR: { WCHAR charW = 0; @@ -5008,19 +4920,14 @@ break; } - case EM_EMPTYUNDOBUFFER16: case EM_EMPTYUNDOBUFFER: EDIT_EM_EmptyUndoBuffer(es); break; - case EM_GETFIRSTVISIBLELINE16: - result = es->y_offset; - break; case EM_GETFIRSTVISIBLELINE: result = (es->style & ES_MULTILINE) ? es->y_offset : es->x_offset; break; - case EM_SETREADONLY16: case EM_SETREADONLY: if (wParam) { SetWindowLongW( hwnd, GWL_STYLE, @@ -5034,23 +4941,14 @@ result = 1; break; - case EM_SETWORDBREAKPROC16: - EDIT_EM_SetWordBreakProc16(es, (EDITWORDBREAKPROC16)lParam); - break; case EM_SETWORDBREAKPROC: EDIT_EM_SetWordBreakProc(es, (void *)lParam); break; - case EM_GETWORDBREAKPROC16: - result = (LRESULT)es->word_break_proc16; - break; case EM_GETWORDBREAKPROC: result = (LRESULT)es->word_break_proc; break; - case EM_GETPASSWORDCHAR16: - unicode = FALSE; /* 16-bit message is always ascii */ - /* fall through */ case EM_GETPASSWORDCHAR: { if(unicode) Modified: branches/arwinss/reactos/dll/win32/user32/listbox.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/listbox.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/listbox.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -2645,16 +2645,12 @@ switch(msg) { - case LB_RESETCONTENT16: case LB_RESETCONTENT: LISTBOX_ResetContent( descr ); LISTBOX_UpdateScroll( descr ); InvalidateRect( descr->self, NULL, TRUE ); return 0; - case LB_ADDSTRING16: - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_ADDSTRING: { INT ret; @@ -2677,10 +2673,6 @@ return ret; } - case LB_INSERTSTRING16: - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - wParam = (INT)(INT16)wParam; - /* fall through */ case LB_INSERTSTRING: { INT ret; @@ -2702,9 +2694,6 @@ return ret; } - case LB_ADDFILE16: - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_ADDFILE: { INT ret; @@ -2727,7 +2716,6 @@ return ret; } - case LB_DELETESTRING16: case LB_DELETESTRING: if (LISTBOX_RemoveItem( descr, wParam) != LB_ERR) return descr->nb_items; @@ -2737,7 +2725,6 @@ return LB_ERR; } - case LB_GETITEMDATA16: case LB_GETITEMDATA: if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items)) { @@ -2746,7 +2733,6 @@ } return descr->items[wParam].data; - case LB_SETITEMDATA16: case LB_SETITEMDATA: if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items)) { @@ -2757,18 +2743,12 @@ /* undocumented: returns TRUE, not LB_OKAY (0) */ return TRUE; - case LB_GETCOUNT16: case LB_GETCOUNT: return descr->nb_items; - case LB_GETTEXT16: - lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_GETTEXT: return LISTBOX_GetText( descr, wParam, (LPWSTR)lParam, unicode ); - case LB_GETTEXTLEN16: - /* fall through */ case LB_GETTEXTLEN: if ((INT)wParam >= descr->nb_items || (INT)wParam < 0) { @@ -2780,7 +2760,6 @@ return WideCharToMultiByte( CP_ACP, 0, descr->items[wParam].str, strlenW(descr->items[wParam].str), NULL, 0, NULL, NULL ); - case LB_GETCURSEL16: case LB_GETCURSEL: if (descr->nb_items == 0) return LB_ERR; @@ -2791,17 +2770,12 @@ return descr->focus_item; /* otherwise, if the user tries to move the selection with the */ /* arrow keys, we will give the application something to choke on */ - case LB_GETTOPINDEX16: case LB_GETTOPINDEX: return descr->top_item; - case LB_GETITEMHEIGHT16: case LB_GETITEMHEIGHT: return LISTBOX_GetItemHeight( descr, wParam ); - case LB_SETITEMHEIGHT16: - lParam = LOWORD(lParam); - /* fall through */ case LB_SETITEMHEIGHT: return LISTBOX_SetItemHeight( descr, wParam, lParam, TRUE ); @@ -2843,7 +2817,6 @@ return MAKELONG(index, hit ? 0 : 1); } - case LB_SETCARETINDEX16: case LB_SETCARETINDEX: if ((!IS_MULTISELECT(descr)) && (descr->selected_item != -1)) return LB_ERR; if (LISTBOX_SetCaretIndex( descr, wParam, !lParam ) == LB_ERR) @@ -2853,37 +2826,18 @@ else return LB_OKAY; - case LB_GETCARETINDEX16: case LB_GETCARETINDEX: return descr->focus_item; - case LB_SETTOPINDEX16: case LB_SETTOPINDEX: return LISTBOX_SetTopItem( descr, wParam, TRUE ); - case LB_SETCOLUMNWIDTH16: case LB_SETCOLUMNWIDTH: return LISTBOX_SetColumnWidth( descr, wParam ); - case LB_GETITEMRECT16: - { - RECT rect; - RECT16 *r16 = MapSL(lParam); - ret = LISTBOX_GetItemRect( descr, (INT16)wParam, &rect ); - r16->left = rect.left; - r16->top = rect.top; - r16->right = rect.right; - r16->bottom = rect.bottom; - } - return ret; - case LB_GETITEMRECT: return LISTBOX_GetItemRect( descr, wParam, (RECT *)lParam ); - case LB_FINDSTRING16: - wParam = (INT)(INT16)wParam; - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_FINDSTRING: { INT ret; @@ -2903,10 +2857,6 @@ return ret; } - case LB_FINDSTRINGEXACT16: - wParam = (INT)(INT16)wParam; - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_FINDSTRINGEXACT: { INT ret; @@ -2926,10 +2876,6 @@ return ret; } - case LB_SELECTSTRING16: - wParam = (INT)(INT16)wParam; - if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_SELECTSTRING: { INT index; @@ -2958,23 +2904,14 @@ return index; } - case LB_GETSEL16: - wParam = (INT)(INT16)wParam; - /* fall through */ case LB_GETSEL: if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items)) return LB_ERR; return descr->items[wParam].selected; - case LB_SETSEL16: - lParam = (INT)(INT16)lParam; - /* fall through */ case LB_SETSEL: return LISTBOX_SetSelection( descr, lParam, wParam, FALSE ); - case LB_SETCURSEL16: - wParam = (INT)(INT16)wParam; - /* fall through */ case LB_SETCURSEL: if (IS_MULTISELECT(descr)) return LB_ERR; LISTBOX_SetCaretIndex( descr, wParam, FALSE ); @@ -2982,17 +2919,12 @@ if (ret != LB_ERR) ret = descr->selected_item; return ret; - case LB_GETSELCOUNT16: case LB_GETSELCOUNT: return LISTBOX_GetSelCount( descr ); - case LB_GETSELITEMS16: - return LISTBOX_GetSelItems16( descr, wParam, (LPINT16)MapSL(lParam) ); - case LB_GETSELITEMS: return LISTBOX_GetSelItems( descr, wParam, (LPINT)lParam ); - case LB_SELITEMRANGE16: case LB_SELITEMRANGE: if (LOWORD(lParam) <= HIWORD(lParam)) return LISTBOX_SelectItemRange( descr, LOWORD(lParam), @@ -3001,28 +2933,21 @@ return LISTBOX_SelectItemRange( descr, HIWORD(lParam), LOWORD(lParam), wParam ); - case LB_SELITEMRANGEEX16: case LB_SELITEMRANGEEX: if ((INT)lParam >= (INT)wParam) return LISTBOX_SelectItemRange( descr, wParam, lParam, TRUE ); else return LISTBOX_SelectItemRange( descr, lParam, wParam, FALSE); - case LB_GETHORIZONTALEXTENT16: case LB_GETHORIZONTALEXTENT: return descr->horz_extent; - case LB_SETHORIZONTALEXTENT16: case LB_SETHORIZONTALEXTENT: return LISTBOX_SetHorizontalExtent( descr, wParam ); - case LB_GETANCHORINDEX16: case LB_GETANCHORINDEX: return descr->anchor_item; - case LB_SETANCHORINDEX16: - wParam = (INT)(INT16)wParam; - /* fall through */ case LB_SETANCHORINDEX: if (((INT)wParam < -1) || ((INT)wParam >= descr->nb_items)) { @@ -3032,12 +2957,6 @@ descr->anchor_item = (INT)wParam; return LB_OKAY; - case LB_DIR16: - /* according to Win16 docs, DDL_DRIVES should make DDL_EXCLUSIVE - * be set automatically (this is different in Win32) */ - if (wParam & DDL_DRIVES) wParam |= DDL_EXCLUSIVE; - lParam = (LPARAM)MapSL(lParam); - /* fall through */ case LB_DIR: { INT ret; @@ -3076,13 +2995,9 @@ case LB_SETCOUNT: return LISTBOX_SetCount( descr, (INT)wParam ); - case LB_SETTABSTOPS16: - return LISTBOX_SetTabStops( descr, (INT)(INT16)wParam, MapSL(lParam), TRUE ); - case LB_SETTABSTOPS: return LISTBOX_SetTabStops( descr, wParam, (LPINT)lParam, FALSE ); - case LB_CARETON16: case LB_CARETON: if (descr->caret_on) return LB_OKAY; @@ -3091,7 +3006,6 @@ LISTBOX_RepaintItem( descr, descr->focus_item, ODA_FOCUS ); return LB_OKAY; - case LB_CARETOFF16: case LB_CARETOFF: if (!descr->caret_on) return LB_OKAY; Modified: branches/arwinss/reactos/dll/win32/user32/lstr.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/lstr.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/lstr.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -114,7 +114,7 @@ /*********************************************************************** * CharPrevExW (USER32.@) */ -LPSTR WINAPI CharPrevExW( WORD codepage, LPCWSTR start, LPCWSTR ptr, DWORD flags ) +LPWSTR WINAPI CharPrevExW( WORD codepage, LPCWSTR start, LPCWSTR ptr, DWORD flags ) { /* doesn't make sense, there are no codepages for Unicode */ return NULL; Modified: branches/arwinss/reactos/dll/win32/user32/mdi.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/mdi.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/mdi.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -953,9 +953,9 @@ if ( (menuInfo.fType & MFT_BITMAP) && (LOWORD(menuInfo.dwTypeData)!=0) && - (LOWORD(menuInfo.dwTypeData)!=HBITMAP_16(hBmpClose)) ) - { - DeleteObject(HBITMAP_32(LOWORD(menuInfo.dwTypeData))); + (LOWORD(menuInfo.dwTypeData)!=LOWORD(hBmpClose)) ) + { + DeleteObject((HBITMAP)(ULONG_PTR)(LOWORD(menuInfo.dwTypeData))); } /* close */ @@ -1082,12 +1082,14 @@ ci->hWindowMenu = ccs->hWindowMenu; ci->idFirstChild = ccs->idFirstChild; } +#ifndef __REACTOS__ else { LPCLIENTCREATESTRUCT16 ccs = MapSL(PtrToUlong(cs->lpCreateParams)); ci->hWindowMenu = HMENU_32(ccs->hWindowMenu); ci->idFirstChild = ccs->idFirstChild; } +#endif WIN_ReleasePtr( wndPtr ); ci->hwndChildMaximized = 0; Modified: branches/arwinss/reactos/dll/win32/user32/menu.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -2085,7 +2085,7 @@ HeapFree( GetProcessHeap(), 0, prevText ); } else if(( flags & MFT_BITMAP)) { - item->hbmpItem = HBITMAP_32(LOWORD(str)); + item->hbmpItem = (HBITMAP)(LOWORD(str)); /* setting bitmap clears text */ HeapFree( GetProcessHeap(), 0, item->text ); item->text = NULL; @@ -4011,7 +4011,7 @@ * GetMenuCheckMarkDimensions (USER.417) * GetMenuCheckMarkDimensions (USER32.@) */ -DWORD WINAPI GetMenuCheckMarkDimensions(void) +LONG WINAPI GetMenuCheckMarkDimensions(void) { return MAKELONG( GetSystemMetrics(SM_CXMENUCHECK), GetSystemMetrics(SM_CYMENUCHECK) ); } @@ -4348,6 +4348,7 @@ /*********************************************************************** * LookupMenuHandle (USER.217) */ +#ifndef __REACTOS__ HMENU16 WINAPI LookupMenuHandle16( HMENU16 hmenu, INT16 id ) { HMENU hmenu32 = HMENU_32(hmenu); @@ -4376,6 +4377,7 @@ FreeResource16( handle ); return hMenu; } +#endif /***************************************************************** @@ -4403,6 +4405,7 @@ /********************************************************************** * LoadMenuIndirect (USER.220) */ +#ifndef __REACTOS__ HMENU16 WINAPI LoadMenuIndirect16( LPCVOID template ) { HMENU hMenu; @@ -4427,6 +4430,7 @@ } return HMENU_16(hMenu); } +#endif /********************************************************************** @@ -4693,7 +4697,7 @@ HeapFree(GetProcessHeap(), 0, menu->text); set_menu_item_text( menu, lpmii->dwTypeData, unicode ); } else if( (menu->fType) & MFT_BITMAP) - menu->hbmpItem = HBITMAP_32(LOWORD(lpmii->dwTypeData)); + menu->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(lpmii->dwTypeData)); } if (lpmii->fMask & MIIM_FTYPE ) { Modified: branches/arwinss/reactos/dll/win32/user32/misc.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/misc.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/misc.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -259,7 +259,7 @@ /*********************************************************************** * RegisterLogonProcess (USER32.@) */ -DWORD WINAPI RegisterLogonProcess(HANDLE hprocess,BOOL x) +BOOL WINAPI RegisterLogonProcess(HANDLE hprocess,BOOL x) { FIXME("(%p,%d),stub!\n",hprocess,x); return 1; @@ -514,7 +514,7 @@ /*********************************************************************** * DeregisterShellHookWindow [USER32.@] */ -HRESULT WINAPI DeregisterShellHookWindow ( DWORD u ) +HRESULT WINAPI DeregisterShellHookWindow ( HWND u ) { FIXME("0x%08x stub\n",u); return 0; Modified: branches/arwinss/reactos/dll/win32/user32/property.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/property.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/property.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -257,6 +257,7 @@ /*********************************************************************** * EnumProps (USER.27) */ +#ifndef __REACTOS__ INT16 WINAPI EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) { int ret = -1, i, count; @@ -294,3 +295,4 @@ } return ret; } +#endif Added: branches/arwinss/reactos/dll/win32/user32/resources/user32.rc URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32.rc (added) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32.rc [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1,0 +1,79 @@ +/* + * Top level resource file for USER + * + * Copyright 1999 Bertho Stultiens + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +#include <windows.h> +//#include "resource.h" + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS User API Client Dll\0" +#define REACTOS_STR_INTERNAL_NAME "user32\0" +#define REACTOS_STR_ORIGINAL_FILENAME "user32.dll\0" +#include <reactos/version.rc> + +#define MDI_IDC_LISTBOX 100 +#define IDS_MDI_MOREWINDOWS 13 +#define IDS_ERROR 2 + +/* + * Everything that does not depend on language, + * like textless bitmaps etc, go into the + * neutral language. This will prevent them from + * being duplicated for each language. + */ +#include "resources/user32_bin.rc" + +/* + * Everything specific to any language goes + * in one of the specific files. + * Note that you can and may override resources + * which also have a neutral version. This is to + * get localized bitmaps for example. + */ +#include "resources/user32_Bg.rc" +#include "resources/user32_Ca.rc" +#include "resources/user32_Cs.rc" +#include "resources/user32_Da.rc" +#include "resources/user32_De.rc" +#include "resources/user32_En.rc" +#include "resources/user32_Eo.rc" +#include "resources/user32_Es.rc" +#include "resources/user32_Fi.rc" +#include "resources/user32_Fr.rc" +#include "resources/user32_Hu.rc" +#include "resources/user32_It.rc" +#include "resources/user32_Ko.rc" +#include "resources/user32_Lt.rc" +#include "resources/user32_Nl.rc" +#include "resources/user32_No.rc" +#include "resources/user32_Pl.rc" +#include "resources/user32_Pt.rc" +#include "resources/user32_Ro.rc" +#include "resources/user32_Ru.rc" +#include "resources/user32_Si.rc" +#include "resources/user32_Sk.rc" +#include "resources/user32_Sv.rc" +#include "resources/user32_Tr.rc" +#include "resources/user32_Uk.rc" +#include "resources/user32_Wa.rc" +#include "resources/user32_Ja.rc" +#include "resources/user32_Zh.rc" + +//#include "resources/version.rc" Propchange: branches/arwinss/reactos/dll/win32/user32/resources/user32.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: branches/arwinss/reactos/dll/win32/user32/scroll.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/scroll.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/scroll.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1519,19 +1519,12 @@ } break; - case SBM_SETPOS16: case SBM_SETPOS: return SetScrollPos( hwnd, SB_CTL, wParam, (BOOL)lParam ); - case SBM_GETPOS16: case SBM_GETPOS: return SCROLL_GetScrollPos(hwnd, SB_CTL); - case SBM_SETRANGE16: - if (wParam) message = SBM_SETRANGEREDRAW; - wParam = LOWORD(lParam); - lParam = HIWORD(lParam); - /* fall through */ case SBM_SETRANGEREDRAW: case SBM_SETRANGE: { @@ -1543,18 +1536,9 @@ } return 0; - case SBM_GETRANGE16: - { - INT min, max; - - SCROLL_GetScrollRange(hwnd, SB_CTL, &min, &max); - return MAKELRESULT(min, max); - } - case SBM_GETRANGE: return SCROLL_GetScrollRange(hwnd, SB_CTL, (LPINT)wParam, (LPINT)lParam); - case SBM_ENABLE_ARROWS16: case SBM_ENABLE_ARROWS: return EnableScrollBar( hwnd, SB_CTL, wParam ); Modified: branches/arwinss/reactos/dll/win32/user32/static.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/static.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/static.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -574,7 +574,6 @@ case STM_GETIMAGE: return (LRESULT)STATIC_GetImage( hwnd, wParam, full_style ); - case STM_GETICON16: case STM_GETICON: return (LRESULT)STATIC_GetImage( hwnd, IMAGE_ICON, full_style ); @@ -597,7 +596,6 @@ STATIC_TryPaintFcn( hwnd, full_style ); break; - case STM_SETICON16: case STM_SETICON: lResult = (LRESULT)STATIC_SetIcon( hwnd, (HICON)wParam, full_style ); STATIC_TryPaintFcn( hwnd, full_style ); Modified: branches/arwinss/reactos/dll/win32/user32/sysparams.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/sysparams.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/sysparams.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -3275,10 +3275,10 @@ lpDevMode->dmDisplayFrequency = devmodeW.dmDisplayFrequency; lpDevMode->dmFields = devmodeW.dmFields; - lpDevMode->u1.s2.dmPosition.x = devmodeW.u1.s2.dmPosition.x; - lpDevMode->u1.s2.dmPosition.y = devmodeW.u1.s2.dmPosition.y; - lpDevMode->u1.s2.dmDisplayOrientation = devmodeW.u1.s2.dmDisplayOrientation; - lpDevMode->u1.s2.dmDisplayFixedOutput = devmodeW.u1.s2.dmDisplayFixedOutput; + lpDevMode->u1.dmPosition.x = devmodeW.u1.dmPosition.x; + lpDevMode->u1.dmPosition.y = devmodeW.u1.dmPosition.y; + lpDevMode->u1.dmDisplayOrientation = devmodeW.u1.dmDisplayOrientation; + lpDevMode->u1.dmDisplayFixedOutput = devmodeW.u1.dmDisplayFixedOutput; } if (lpszDeviceName) RtlFreeUnicodeString(&nameW); return ret; Modified: branches/arwinss/reactos/dll/win32/user32/uitools.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/uitools.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/uitools.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1427,7 +1427,7 @@ { HBRUSH prevBrush; - if (hbrush <= (HBRUSH) (COLOR_MAX + 1)) hbrush = GetSysColorBrush( HandleToULong(hbrush) - 1 ); + if (hbrush <= (HBRUSH) (COLOR_MAX + 1)) hbrush = GetSysColorBrush( (ULONG_PTR)(hbrush) - 1 ); if (!(prevBrush = SelectObject( hdc, hbrush ))) return 0; PatBlt( hdc, rect->left, rect->top, Modified: branches/arwinss/reactos/dll/win32/user32/user32.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user32.rbuild [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user32.rbuild [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1,11 +1,13 @@ -<module name="user32" type="win32dll" baseaddress="${BASEADDRESS_USER32}" installbase="system32" installname="user32.dll" unicode="yes"> +<module name="user32" type="win32dll" baseaddress="${BASEADDRESS_USER32}" installbase="system32" installname="user32.dll" unicode="yes" allowwarnings="true"> <importlibrary definition="user32.spec" /> <include base="user32">.</include> <include base="user32">include</include> <include base="ReactOS">include/reactos/subsys</include> + <include base="ReactOS">include/reactos/wine</include> <define name="_DISABLE_TIDENTS" /> <define name="WINVER">0x0600</define> <define name="_WIN32_WINNT">0x0501</define> + <define name="__WINESRC__" /> <library>wine</library> <library>ntdll</library> <library>gdi32</library> @@ -15,6 +17,52 @@ <library>win32ksys</library> <library>pseh</library> + <file>button.c</file> + <file>caret.c</file> + <file>class.c</file> + <file>clipboard.c</file> + <file>combo.c</file> + <file>cursoricon.c</file> + <file>dde_client.c</file> + <file>dde_misc.c</file> + <file>dde_server.c</file> + <file>defdlg.c</file> + <file>defwnd.c</file> + <file>desktop.c</file> + <file>dialog.c</file> + <file>driver.c</file> + <file>edit.c</file> + <file>exticon.c</file> + <file>focus.c</file> + <file>hook.c</file> + <file>icontitle.c</file> + <file>input.c</file> + <file>listbox.c</file> + <file>lstr.c</file> + <file>mdi.c</file> + <file>menu.c</file> + <file>message.c</file> + <file>misc.c</file> + <file>msgbox.c</file> + <file>nonclient.c</file> + <file>painting.c</file> + <file>property.c</file> + <file>resource.c</file> + <file>scroll.c</file> + <file>spy.c</file> + <file>static.c</file> + <file>sysparams.c</file> + <file>text.c</file> + <file>uitools.c</file> + <file>user_main.c</file> + <file>win.c</file> + <file>winhelp.c</file> <file>winpos.c</file> - <file>user32.rc</file> + <file>winproc.c</file> + <file>winstation.c</file> + <file>wsprintf.c</file> + + <directory name="resources"> + <file>user32.rc</file> + </directory> </module> Modified: branches/arwinss/reactos/dll/win32/user32/user_private.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/user_private.h [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/user_private.h [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -81,7 +81,9 @@ #define GET_WORD(ptr) (*(const WORD *)(ptr)) #define GET_DWORD(ptr) (*(const DWORD *)(ptr)) +#ifndef __REACTOS__ #define WM_SYSTIMER 0x0118 +#endif #define WM_POPUPSYSTEMMENU 0x0313 /* internal messages codes */ Modified: branches/arwinss/reactos/dll/win32/user32/win.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] Fri Jul 17 21:42:17 2009 @@ -1374,7 +1374,7 @@ return 0; } - +#ifndef __REACTOS__ /*********************************************************************** * CreateWindow (USER.41) */ @@ -1437,6 +1437,7 @@ return HWND_16( WIN_CreateWindowEx( &cs, (LPCWSTR)className, 0 )); } } +#endif /***********************************************************************
15 years, 5 months
1
0
0
0
[fireball] 42017: - Fix headers, work in progress, contains undocumented stuff from Wine going into PSDK. Should be separated later. - Import server.h and server_protocol.h from Wine-1.1.25.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 21:25:10 2009 New Revision: 42017 URL:
http://svn.reactos.org/svn/reactos?rev=42017&view=rev
Log: - Fix headers, work in progress, contains undocumented stuff from Wine going into PSDK. Should be separated later. - Import server.h and server_protocol.h from Wine-1.1.25. Added: branches/arwinss/reactos/include/reactos/wine/server.h (with props) branches/arwinss/reactos/include/reactos/wine/server_protocol.h (with props) Modified: branches/arwinss/reactos/include/psdk/commctrl.h branches/arwinss/reactos/include/psdk/wingdi.h branches/arwinss/reactos/include/reactos/wine/wingdi16.h branches/arwinss/reactos/include/reactos/wine/winuser16.h [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/arwinss/reactos/include/psdk/commctrl.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/co…
Modified: branches/arwinss/reactos/include/psdk/wingdi.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
Added: branches/arwinss/reactos/include/reactos/wine/server.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
Added: branches/arwinss/reactos/include/reactos/wine/server_protocol.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
Modified: branches/arwinss/reactos/include/reactos/wine/wingdi16.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
Modified: branches/arwinss/reactos/include/reactos/wine/winuser16.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
15 years, 5 months
1
0
0
0
[janderwald] 42016: [WDMAUD.DRV] - Implement retrieving the preferred frame size - Set Maximum buffer limit to one second [PORTCLS] - Implement a dynamic buffer enlarging. In case a audio stream stops prematurely, increase the audio buffer limit by 1/3 - Implement KSPROPERTY_CONNECTION_ALLOCATORFRAMING for IPortPinWaveCyclic + IPortPinWavePci - Move IPortWavePciStream object to IPortPinWavePci, as IPrefetchOffset needs a tight integration (TBD) - Define pin property handler for IPortDMus (some a
by janderwald@svn.reactos.org
Author: janderwald Date: Fri Jul 17 21:15:52 2009 New Revision: 42016 URL:
http://svn.reactos.org/svn/reactos?rev=42016&view=rev
Log: [WDMAUD.DRV] - Implement retrieving the preferred frame size - Set Maximum buffer limit to one second [PORTCLS] - Implement a dynamic buffer enlarging. In case a audio stream stops prematurely, increase the audio buffer limit by 1/3 - Implement KSPROPERTY_CONNECTION_ALLOCATORFRAMING for IPortPinWaveCyclic + IPortPinWavePci - Move IPortWavePciStream object to IPortPinWavePci, as IPrefetchOffset needs a tight integration (TBD) - Define pin property handler for IPortDMus (some audio devices may now show more than one waveout device) - Implement IPortEvents_fnAddEventToEventList for IPortWavePci [WDMAUD_KERNEL] - Implement IOCTL_GETFRAMESIZE [SYSAUDIO] - Fix a bug in the Pin_fnWrite, though code isnt used yet -? - Adobe Flash Player & Vlc may now have a better playback because the audio stream is now updated more often (because audio packet now use the preferred frame size which is in most cases 10ms). Removed: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepcistream.c Modified: trunk/reactos/dll/win32/wdmaud.drv/wdmaud.c trunk/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.c trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c trunk/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild trunk/reactos/drivers/wdm/audio/backpln/portcls/private.h trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h trunk/reactos/drivers/wdm/audio/sysaudio/pin.c Modified: trunk/reactos/dll/win32/wdmaud.drv/wdmaud.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wdmaud.drv/wdmau…
============================================================================== --- trunk/reactos/dll/win32/wdmaud.drv/wdmaud.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/wdmaud.drv/wdmaud.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -299,6 +299,26 @@ Instance->Handle = (PVOID)DeviceInfo.hDevice; + /* Now determine framing requirements */ + Result = SyncOverlappedDeviceIoControl(KernelHandle, + IOCTL_GETFRAMESIZE, + (LPVOID) &DeviceInfo, + sizeof(WDMAUD_DEVICE_INFO), + (LPVOID) &DeviceInfo, + sizeof(WDMAUD_DEVICE_INFO), + NULL); + + if ( MMSUCCESS(Result) ) + { + if (DeviceInfo.u.FrameSize) + { + Instance->FrameSize = DeviceInfo.u.FrameSize; + Instance->BufferCount = WaveFormat->nAvgBytesPerSec / Instance->FrameSize; + SND_TRACE(L"FrameSize %u BufferCount %u\n", Instance->FrameSize, Instance->BufferCount); + } + } + + return MMSYSERR_NOERROR; } Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/interfaces.h [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -234,6 +234,9 @@ STDMETHOD_(BOOL, HasLastMappingFailed)(THIS); STDMETHOD_(VOID, PrintQueueStatus)(THIS); + STDMETHOD_(VOID, SetMinimumDataThreshold)(THIS_ + IN ULONG MinimumDataThreshold); + STDMETHOD_(ULONG, GetMinimumDataThreshold)(THIS); }; Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -40,6 +40,7 @@ ULONG OutOfMapping; ULONG MaxFrameSize; ULONG Alignment; + ULONG MinimumDataThreshold; }IIrpQueueImpl; @@ -128,6 +129,7 @@ This->DataFormat = (PKSDATAFORMAT_WAVEFORMATEX)DataFormat; This->MaxFrameSize = FrameSize; This->Alignment = Alignment; + This->MinimumDataThreshold = ((PKSDATAFORMAT_WAVEFORMATEX)DataFormat)->WaveFormatEx.nAvgBytesPerSec / 3; InitializeListHead(&This->ListHead); InitializeListHead(&This->FreeHead); @@ -315,7 +317,7 @@ if (This->StartStream) return TRUE; - if (This->DataFormat->WaveFormatEx.nAvgBytesPerSec/3 < This->NumDataAvailable) + if (This->MinimumDataThreshold < This->NumDataAvailable) { This->StartStream = TRUE; Result = TRUE; @@ -346,9 +348,9 @@ { IIrpQueueImpl * This = (IIrpQueueImpl*)iface; This->DataFormat = (PKSDATAFORMAT_WAVEFORMATEX)DataFormat; + This->MinimumDataThreshold = This->DataFormat->WaveFormatEx.nAvgBytesPerSec / 3; This->StartStream = FALSE; This->NumDataAvailable = 0; - } NTSTATUS @@ -473,6 +475,27 @@ KeReleaseSpinLockFromDpcLevel(&This->Lock); DPRINT("IIrpQueue_fnPrintQueueStatus ===============\n"); +} + +VOID +NTAPI +IIrpQueue_fnSetMinimumDataThreshold( + IN IIrpQueue *iface, + ULONG MinimumDataThreshold) +{ + IIrpQueueImpl * This = (IIrpQueueImpl*)iface; + + This->MinimumDataThreshold = MinimumDataThreshold; +} + +ULONG +NTAPI +IIrpQueue_fnGetMinimumDataThreshold( + IN IIrpQueue *iface) +{ + IIrpQueueImpl * This = (IIrpQueueImpl*)iface; + + return This->MinimumDataThreshold; } @@ -493,10 +516,10 @@ IIrpQueue_fnGetMappingWithTag, IIrpQueue_fnReleaseMappingWithTag, IIrpQueue_fnHasLastMappingFailed, - IIrpQueue_fnPrintQueueStatus - + IIrpQueue_fnPrintQueueStatus, + IIrpQueue_fnSetMinimumDataThreshold, + IIrpQueue_fnGetMinimumDataThreshold }; - NTSTATUS NTAPI @@ -515,44 +538,3 @@ } -NTSTATUS -NewIrpStreamPhysical( - OUT IIrpStreamPhysical ** OutIIrpStreamPhysical, - IN IUnknown *OuterUnknown) -{ - return STATUS_UNSUCCESSFUL; -} - - -/* - * @implemented - */ - -NTSTATUS -NTAPI -PcNewIrpStreamPhysical( - OUT IIrpStreamPhysical ** OutIrpStreamPhysical, - IN IUnknown * OuterUnknown, - IN BOOLEAN Wait, - IN KSPIN_CONNECT *ConnectDetails, - IN PDEVICE_OBJECT DeviceObject, - IN PDMA_ADAPTER DmaAdapter) -{ - NTSTATUS Status; - IIrpStreamPhysical * Irp; - - Status = NewIrpStreamPhysical(&Irp, OuterUnknown); - if (!NT_SUCCESS(Status)) - return Status; - - - Status = Irp->lpVtbl->Init(Irp, Wait, ConnectDetails, DeviceObject, DmaAdapter); - if (!NT_SUCCESS(Status)) - { - Irp->lpVtbl->Release(Irp); - return Status; - } - - *OutIrpStreamPhysical = Irp; - return Status; -} Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -37,6 +37,7 @@ ULONG TotalPackets; ULONG PreCompleted; ULONG PostCompleted; + ULONG StopCount; ULONG Delay; }IPortPinWaveCyclicImpl; @@ -224,6 +225,8 @@ IPortPinWaveCyclicImpl * This; PSETSTREAM_CONTEXT Ctx = (PSETSTREAM_CONTEXT)Context; KSSTATE State; + ULONG MinimumDataThreshold; + ULONG MaximumDataThreshold; This = Ctx->Pin; State = Ctx->State; @@ -233,6 +236,10 @@ /* Has the audio stream resumed? */ if (This->IrpQueue->lpVtbl->NumMappings(This->IrpQueue) && State == KSSTATE_STOP) + return; + + /* Has the audio state already been set? */ + if (This->State == State) return; /* Set the state */ @@ -245,12 +252,26 @@ { /* reset start stream */ This->IrpQueue->lpVtbl->CancelBuffers(This->IrpQueue); //FIX function name - DPRINT1("Stopping PreCompleted %u PostCompleted %u\n", This->PreCompleted, This->PostCompleted); + + /* increase stop counter */ + This->StopCount++; + /* get current data threshold */ + MinimumDataThreshold = This->IrpQueue->lpVtbl->GetMinimumDataThreshold(This->IrpQueue); + /* get maximum data threshold */ + MaximumDataThreshold = ((PKSDATAFORMAT_WAVEFORMATEX)This->Format)->WaveFormatEx.nAvgBytesPerSec; + /* increase minimum data threshold by a third sec */ + MinimumDataThreshold += ((PKSDATAFORMAT_WAVEFORMATEX)This->Format)->WaveFormatEx.nAvgBytesPerSec / 3; + + /* assure it has not exceeded */ + MinimumDataThreshold = min(MinimumDataThreshold, MaximumDataThreshold); + /* store minimum data threshold */ + This->IrpQueue->lpVtbl->SetMinimumDataThreshold(This->IrpQueue, MinimumDataThreshold); + + DPRINT1("Stopping PreCompleted %u PostCompleted %u StopCount %u MinimumDataThreshold %u\n", This->PreCompleted, This->PostCompleted, This->StopCount, MinimumDataThreshold); } if (This->State == KSSTATE_RUN) { DPRINT1("State RUN %x MinAvailable %u\n", State, This->IrpQueue->lpVtbl->MinimumDataAvailable(This->IrpQueue)); - } } } @@ -570,11 +591,34 @@ return STATUS_SUCCESS; } } - - } + else if (Property->Id == KSPROPERTY_CONNECTION_ALLOCATORFRAMING) + { + PKSALLOCATOR_FRAMING Framing = (PKSALLOCATOR_FRAMING)Irp->UserBuffer; + + ASSERT_IRQL(DISPATCH_LEVEL); + /* Validate input buffer */ + if (IoStack->Parameters.DeviceIoControl.OutputBufferLength < sizeof(KSALLOCATOR_FRAMING)) + { + Irp->IoStatus.Information = sizeof(KSALLOCATOR_FRAMING); + Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_BUFFER_TOO_SMALL; + } + /* Clear frame structure */ + RtlZeroMemory(Framing, sizeof(KSALLOCATOR_FRAMING)); + /* store requested frame size */ + Framing->FrameSize = This->FrameSize; + /* FIXME fill in struct */ + + Irp->IoStatus.Information = sizeof(KSALLOCATOR_FRAMING); + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + } + RtlStringFromGUID(&Property->Set, &GuidString); DPRINT1("Unhandeled property Set |%S| Id %u Flags %x\n", GuidString.Buffer, Property->Id, Property->Flags); - DbgBreakPoint(); RtlFreeUnicodeString(&GuidString); Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED; @@ -640,7 +684,6 @@ } UNIMPLEMENTED - DbgBreakPoint(); Irp->IoStatus.Information = 0; Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; @@ -696,21 +739,24 @@ { PMINIPORTWAVECYCLICSTREAM Stream; IPortPinWaveCyclicImpl * This; + NTSTATUS Status; PCLOSESTREAM_CONTEXT Ctx = (PCLOSESTREAM_CONTEXT)Context; This = (IPortPinWaveCyclicImpl*)Ctx->Pin; - if (This->Stream) - { - if (This->State != KSSTATE_STOP) - { - This->Stream->lpVtbl->SetState(This->Stream, KSSTATE_STOP); - KeStallExecutionProcessor(10); - } + if (This->State != KSSTATE_STOP) + { + /* stop stream in case it hasn't been */ + Status = This->Stream->lpVtbl->SetState(This->Stream, KSSTATE_STOP); + if (!NT_SUCCESS(Status)) + DPRINT1("Warning: failed to stop stream with %x\n", Status); + + This->State = KSSTATE_STOP; } if (This->Format) { + /* free format */ ExFreePool(This->Format); This->Format = NULL; } @@ -848,7 +894,7 @@ OUT PIO_STATUS_BLOCK StatusBlock, IN PDEVICE_OBJECT DeviceObject) { - UNIMPLEMENTED + //UNIMPLEMENTED return FALSE; } @@ -915,14 +961,18 @@ NTSTATUS Status; PCONTEXT_WRITE Packet; PIRP Irp; + ULONG PrePostRatio; + ULONG MinData; IPortPinWaveCyclicImpl * This = (IPortPinWaveCyclicImpl*)iface; InterlockedIncrement((PLONG)&This->TotalPackets); - DPRINT("IPortPinWaveCyclic_fnFastWrite entered Total %u Pre %u Post %u State %x MinData %u\n", This->TotalPackets, This->PreCompleted, This->PostCompleted, This->State, This->IrpQueue->lpVtbl->NumData(This->IrpQueue)); + PrePostRatio = (This->PreCompleted * 100) / This->TotalPackets; + MinData = This->IrpQueue->lpVtbl->NumData(This->IrpQueue); + + DPRINT1("IPortPinWaveCyclic_fnFastWrite entered Total %u Pre %u Post %u State %x MinData %u Ratio %u\n", This->TotalPackets, This->PreCompleted, This->PostCompleted, This->State, This->IrpQueue->lpVtbl->NumData(This->IrpQueue), PrePostRatio); Packet = (PCONTEXT_WRITE)Buffer; - if (This->IrpQueue->lpVtbl->MinimumDataAvailable(This->IrpQueue)) { @@ -945,7 +995,7 @@ if (!NT_SUCCESS(Status)) return FALSE; - if (This->IrpQueue->lpVtbl->MinimumDataAvailable(This->IrpQueue) == TRUE && This->State != KSSTATE_RUN) + if (This->State != KSSTATE_RUN && This->IrpQueue->lpVtbl->MinimumDataAvailable(This->IrpQueue) == TRUE) { SetStreamState(This, KSSTATE_RUN); /* some should initiate a state request but didnt do it */ @@ -999,13 +1049,6 @@ Status = NewIrpQueue(&This->IrpQueue); if (!NT_SUCCESS(Status)) return Status; - - Status = This->IrpQueue->lpVtbl->Init(This->IrpQueue, ConnectDetails, DataFormat, DeviceObject, 0, 0); - if (!NT_SUCCESS(Status)) - { - This->IrpQueue->lpVtbl->Release(This->IrpQueue); - return Status; - } if (KsPinDescriptor->Communication == KSPIN_COMMUNICATION_SINK && KsPinDescriptor->DataFlow == KSPIN_DATAFLOW_IN) { @@ -1070,6 +1113,14 @@ This->Delay = Int32x32To64(10, -10000); Status = This->Stream->lpVtbl->SetNotificationFreq(This->Stream, 10, &This->FrameSize); + + Status = This->IrpQueue->lpVtbl->Init(This->IrpQueue, ConnectDetails, DataFormat, DeviceObject, This->FrameSize, 0); + if (!NT_SUCCESS(Status)) + { + This->IrpQueue->lpVtbl->Release(This->IrpQueue); + return Status; + } + //This->Stream->lpVtbl->SetFormat(This->Stream, (PKSDATAFORMAT)This->Format); DPRINT1("Setting state to acquire %x\n", This->Stream->lpVtbl->SetState(This->Stream, KSSTATE_ACQUIRE)); Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -12,6 +12,7 @@ { IPortPinWavePciVtbl *lpVtbl; IServiceSinkVtbl *lpVtblServiceSink; + IPortWavePciStreamVtbl *lpVtblPortWavePciStream; LONG ref; IPortWavePci * Port; @@ -27,17 +28,21 @@ BOOL Capture; PDEVICE_OBJECT DeviceObject; - PPORTWAVEPCISTREAM WaveStream; IIrpQueue * IrpQueue; ULONG TotalPackets; ULONG PreCompleted; ULONG PostCompleted; + ULONG StopCount; ULONG Delay; + BOOL bUsePrefetch; + ULONG PrefetchOffset; + + KSALLOCATOR_FRAMING AllocatorFraming; + }IPortPinWavePciImpl; - typedef struct { @@ -46,12 +51,110 @@ KSSTATE State; }SETSTREAM_CONTEXT, *PSETSTREAM_CONTEXT; -NTSTATUS -NTAPI -IPortWavePci_fnProcessNewIrp( - IPortPinWavePciImpl * This); - //================================================================================================================================== +static +NTSTATUS +NTAPI +IPortWavePciStream_fnQueryInterface( + IPortWavePciStream* iface, + IN REFIID refiid, + OUT PVOID* Output) +{ + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblPortWavePciStream); + + DPRINT("IPortWavePciStream_fnQueryInterface entered\n"); + + if (IsEqualGUIDAligned(refiid, &IID_IPortWavePciStream) || + IsEqualGUIDAligned(refiid, &IID_IUnknown)) + { + *Output = &This->lpVtbl; + InterlockedIncrement(&This->ref); + return STATUS_SUCCESS; + } + + return STATUS_UNSUCCESSFUL; +} + +static +ULONG +NTAPI +IPortWavePciStream_fnAddRef( + IPortWavePciStream* iface) +{ + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblPortWavePciStream); + DPRINT("IPortWavePciStream_fnAddRef entered\n"); + + return InterlockedIncrement(&This->ref); +} + +static +ULONG +NTAPI +IPortWavePciStream_fnRelease( + IPortWavePciStream* iface) +{ + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblPortWavePciStream); + + InterlockedDecrement(&This->ref); + + DPRINT("IPortWavePciStream_fnRelease entered %u\n", This->ref); + + /* Return new reference count */ + return This->ref; +} + +static +NTSTATUS +NTAPI +IPortWavePciStream_fnGetMapping( + IN IPortWavePciStream *iface, + IN PVOID Tag, + OUT PPHYSICAL_ADDRESS PhysicalAddress, + OUT PVOID *VirtualAddress, + OUT PULONG ByteCount, + OUT PULONG Flags) +{ + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblPortWavePciStream); + + ASSERT_IRQL(DISPATCH_LEVEL); + return This->IrpQueue->lpVtbl->GetMappingWithTag(This->IrpQueue, Tag, PhysicalAddress, VirtualAddress, ByteCount, Flags); +} + +static +NTSTATUS +NTAPI +IPortWavePciStream_fnReleaseMapping( + IN IPortWavePciStream *iface, + IN PVOID Tag) +{ + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblPortWavePciStream); + + ASSERT_IRQL(DISPATCH_LEVEL); + return This->IrpQueue->lpVtbl->ReleaseMappingWithTag(This->IrpQueue, Tag); +} + +static +NTSTATUS +NTAPI +IPortWavePciStream_fnTerminatePacket( + IN IPortWavePciStream *iface) +{ + UNIMPLEMENTED + ASSERT_IRQL(DISPATCH_LEVEL); + return STATUS_SUCCESS; +} + + +static IPortWavePciStreamVtbl vt_PortWavePciStream = +{ + IPortWavePciStream_fnQueryInterface, + IPortWavePciStream_fnAddRef, + IPortWavePciStream_fnRelease, + IPortWavePciStream_fnGetMapping, + IPortWavePciStream_fnReleaseMapping, + IPortWavePciStream_fnTerminatePacket +}; + static NTSTATUS @@ -117,6 +220,8 @@ IPortPinWavePciImpl * This; PSETSTREAM_CONTEXT Ctx = (PSETSTREAM_CONTEXT)Context; KSSTATE State; + ULONG MinimumDataThreshold; + ULONG MaximumDataThreshold; This = Ctx->Pin; State = Ctx->State; @@ -138,13 +243,27 @@ { /* reset start stream */ This->IrpQueue->lpVtbl->CancelBuffers(This->IrpQueue); //FIX function name - This->ServiceGroup->lpVtbl->CancelDelayedService(This->ServiceGroup); - DPRINT1("Stopping PreCompleted %u PostCompleted %u\n", This->PreCompleted, This->PostCompleted); + //This->ServiceGroup->lpVtbl->CancelDelayedService(This->ServiceGroup); + /* increase stop counter */ + This->StopCount++; + /* get current data threshold */ + MinimumDataThreshold = This->IrpQueue->lpVtbl->GetMinimumDataThreshold(This->IrpQueue); + /* get maximum data threshold */ + MaximumDataThreshold = ((PKSDATAFORMAT_WAVEFORMATEX)This->Format)->WaveFormatEx.nAvgBytesPerSec * 3; + /* increase minimum data threshold by a third sec */ + MinimumDataThreshold += ((PKSDATAFORMAT_WAVEFORMATEX)This->Format)->WaveFormatEx.nAvgBytesPerSec / 3; + + /* assure it has not exceeded */ + MinimumDataThreshold = min(MinimumDataThreshold, MaximumDataThreshold); + /* store minimum data threshold */ + This->IrpQueue->lpVtbl->SetMinimumDataThreshold(This->IrpQueue, MinimumDataThreshold); + + DPRINT1("Stopping PreCompleted %u PostCompleted %u StopCount %u MinimumDataThreshold %u\n", This->PreCompleted, This->PostCompleted, This->StopCount, MinimumDataThreshold); } if (This->State == KSSTATE_RUN) { /* start the notification timer */ - This->ServiceGroup->lpVtbl->RequestDelayedService(This->ServiceGroup, This->Delay); + //This->ServiceGroup->lpVtbl->RequestDelayedService(This->ServiceGroup, This->Delay); } } } @@ -201,26 +320,23 @@ IServiceSink_fnRequestService( IServiceSink* iface) { - ULONGLONG Position; - NTSTATUS Status; IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)CONTAINING_RECORD(iface, IPortPinWavePciImpl, lpVtblServiceSink); ASSERT_IRQL(DISPATCH_LEVEL); if (This->IrpQueue->lpVtbl->HasLastMappingFailed(This->IrpQueue)) { - This->IrpQueue->lpVtbl->PrintQueueStatus(This->IrpQueue); if (This->IrpQueue->lpVtbl->NumMappings(This->IrpQueue) == 0) { DPRINT("Stopping stream...\n"); SetStreamState(This, KSSTATE_STOP); + return; } } - Status = This->Stream->lpVtbl->GetPosition(This->Stream, &Position); - DPRINT("Position %lu Status %x\n", Position, Status); - This->Stream->lpVtbl->Service(This->Stream); + //TODO + //generate events } static IServiceSinkVtbl vt_IServiceSink = @@ -312,6 +428,191 @@ return STATUS_UNSUCCESSFUL; } +NTSTATUS +NTAPI +IPortPinWavePci_HandleKsProperty( + IN IPortPinWavePci * iface, + IN PIRP Irp) +{ + PKSPROPERTY Property; + NTSTATUS Status; + UNICODE_STRING GuidString; + PIO_STACK_LOCATION IoStack; + + IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)iface; + + IoStack = IoGetCurrentIrpStackLocation(Irp); + + DPRINT("IPortPinWavePci_HandleKsProperty entered\n"); + + if (IoStack->Parameters.DeviceIoControl.InputBufferLength < sizeof(KSPROPERTY)) + { + Irp->IoStatus.Information = 0; + Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_INVALID_PARAMETER; + } + + Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer; + + if (IsEqualGUIDAligned(&Property->Set, &KSPROPSETID_Connection)) + { + if (Property->Id == KSPROPERTY_CONNECTION_STATE) + { + PKSSTATE State = (PKSSTATE)Irp->UserBuffer; + + ASSERT_IRQL(DISPATCH_LEVEL); + if (IoStack->Parameters.DeviceIoControl.OutputBufferLength < sizeof(KSSTATE)) + { + Irp->IoStatus.Information = sizeof(KSSTATE); + Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_BUFFER_TOO_SMALL; + } + + if (Property->Flags & KSPROPERTY_TYPE_SET) + { + Status = STATUS_UNSUCCESSFUL; + Irp->IoStatus.Information = 0; + + if (This->Stream) + { + Status = This->Stream->lpVtbl->SetState(This->Stream, *State); + + DPRINT1("Setting state %u %x\n", *State, Status); + if (NT_SUCCESS(Status)) + { + This->State = *State; + } + } + Irp->IoStatus.Status = Status; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return Status; + } + else if (Property->Flags & KSPROPERTY_TYPE_GET) + { + *State = This->State; + Irp->IoStatus.Information = sizeof(KSSTATE); + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + } + else if (Property->Id == KSPROPERTY_CONNECTION_DATAFORMAT) + { + PKSDATAFORMAT DataFormat = (PKSDATAFORMAT)Irp->UserBuffer; + if (Property->Flags & KSPROPERTY_TYPE_SET) + { + PKSDATAFORMAT NewDataFormat; + if (!RtlCompareMemory(DataFormat, This->Format, DataFormat->FormatSize)) + { + Irp->IoStatus.Information = DataFormat->FormatSize; + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + + NewDataFormat = AllocateItem(NonPagedPool, DataFormat->FormatSize, TAG_PORTCLASS); + if (!NewDataFormat) + { + Irp->IoStatus.Information = 0; + Irp->IoStatus.Status = STATUS_NO_MEMORY; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_NO_MEMORY; + } + RtlMoveMemory(NewDataFormat, DataFormat, DataFormat->FormatSize); + + if (This->Stream) + { + ASSERT(KeGetCurrentIrql() == PASSIVE_LEVEL); + ASSERT(NewDataFormat->FormatSize == sizeof(KSDATAFORMAT_WAVEFORMATEX)); + ASSERT(IsEqualGUIDAligned(&((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->DataFormat.MajorFormat, &KSDATAFORMAT_TYPE_AUDIO)); + ASSERT(IsEqualGUIDAligned(&((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->DataFormat.SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)); + ASSERT(IsEqualGUIDAligned(&((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->DataFormat.Specifier, &KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)); + + ASSERT(This->State == KSSTATE_STOP); + DPRINT1("NewDataFormat: Channels %u Bits %u Samples %u\n", ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.nChannels, + ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.wBitsPerSample, + ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.nSamplesPerSec); + + Status = This->Stream->lpVtbl->SetFormat(This->Stream, NewDataFormat); + if (NT_SUCCESS(Status)) + { + if (This->Format) + ExFreePoolWithTag(This->Format, TAG_PORTCLASS); + + This->IrpQueue->lpVtbl->UpdateFormat(This->IrpQueue, (PKSDATAFORMAT)NewDataFormat); + This->Format = NewDataFormat; + Irp->IoStatus.Information = DataFormat->FormatSize; + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + } + DPRINT1("Failed to set format\n"); + Irp->IoStatus.Information = 0; + Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_UNSUCCESSFUL; + } + else if (Property->Flags & KSPROPERTY_TYPE_GET) + { + if (!This->Format) + { + DPRINT1("No format\n"); + Irp->IoStatus.Information = 0; + Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_UNSUCCESSFUL; + } + if (This->Format->FormatSize > IoStack->Parameters.DeviceIoControl.OutputBufferLength) + { + Irp->IoStatus.Information = This->Format->FormatSize; + Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_BUFFER_TOO_SMALL; + } + + RtlMoveMemory(DataFormat, This->Format, This->Format->FormatSize); + Irp->IoStatus.Information = DataFormat->FormatSize; + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + } + else if (Property->Id == KSPROPERTY_CONNECTION_ALLOCATORFRAMING) + { + PKSALLOCATOR_FRAMING Framing = (PKSALLOCATOR_FRAMING)Irp->UserBuffer; + + ASSERT_IRQL(DISPATCH_LEVEL); + /* Validate input buffer */ + if (IoStack->Parameters.DeviceIoControl.OutputBufferLength < sizeof(KSALLOCATOR_FRAMING)) + { + Irp->IoStatus.Information = sizeof(KSALLOCATOR_FRAMING); + Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_BUFFER_TOO_SMALL; + } + /* copy frame allocator struct */ + RtlMoveMemory(Framing, &This->AllocatorFraming, sizeof(KSALLOCATOR_FRAMING)); + + Irp->IoStatus.Information = sizeof(KSALLOCATOR_FRAMING); + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } + } + + RtlStringFromGUID(&Property->Set, &GuidString); + DPRINT1("Unhandeled property Set |%S| Id %u Flags %x\n", GuidString.Buffer, Property->Id, Property->Flags); + RtlFreeUnicodeString(&GuidString); + + Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED; + Irp->IoStatus.Information = 0; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_NOT_IMPLEMENTED; +} + /* * @unimplemented */ @@ -322,6 +623,16 @@ IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { + PIO_STACK_LOCATION IoStack; + + IoStack = IoGetCurrentIrpStackLocation(Irp); + + if (IoStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_KS_PROPERTY) + { + return IPortPinWavePci_HandleKsProperty(iface, Irp); + } + + UNIMPLEMENTED Irp->IoStatus.Information = 0; @@ -614,7 +925,6 @@ Packet = (PCONTEXT_WRITE)Buffer; - if (This->IrpQueue->lpVtbl->MinimumDataAvailable(This->IrpQueue)) { Irp = Packet->Irp; @@ -669,7 +979,6 @@ NTSTATUS Status; PKSDATAFORMAT DataFormat; BOOL Capture; - KSALLOCATOR_FRAMING AllocatorFraming; IPortPinWavePciImpl * This = (IPortPinWavePciImpl*)iface; @@ -693,14 +1002,6 @@ RtlMoveMemory(This->Format, DataFormat, DataFormat->FormatSize); - Status = NewIPortWavePciStream(&This->WaveStream); - if (!NT_SUCCESS(Status)) - { - ExFreePool(This->Format); - This->Format = NULL; - return Status; - } - if (KsPinDescriptor->Communication == KSPIN_COMMUNICATION_SINK && KsPinDescriptor->DataFlow == KSPIN_DATAFLOW_IN) { Capture = FALSE; @@ -719,7 +1020,7 @@ &This->Stream, NULL, NonPagedPool, - This->WaveStream, + (PPORTWAVEPCISTREAM)&This->lpVtblPortWavePciStream, ConnectDetails->PinId, Capture, This->Format, @@ -746,9 +1047,7 @@ /* delay of 10 milisec */ This->Delay = Int32x32To64(10, -10000); - This->IrpQueue = IPortWavePciStream_GetIrpQueue(This->WaveStream); - - Status = This->Stream->lpVtbl->GetAllocatorFraming(This->Stream, &AllocatorFraming); + Status = This->Stream->lpVtbl->GetAllocatorFraming(This->Stream, &This->AllocatorFraming); if (!NT_SUCCESS(Status)) { DPRINT1("GetAllocatorFraming failed with %x\n", Status); @@ -756,9 +1055,13 @@ } DPRINT("OptionFlags %x RequirementsFlag %x PoolType %x Frames %lu FrameSize %lu FileAlignment %lu\n", - AllocatorFraming.OptionsFlags, AllocatorFraming.RequirementsFlags, AllocatorFraming.PoolType, AllocatorFraming.Frames, AllocatorFraming.FrameSize, AllocatorFraming.FileAlignment); - - Status = This->IrpQueue->lpVtbl->Init(This->IrpQueue, ConnectDetails, This->Format, DeviceObject, AllocatorFraming.FrameSize, AllocatorFraming.FileAlignment); + This->AllocatorFraming.OptionsFlags, This->AllocatorFraming.RequirementsFlags, This->AllocatorFraming.PoolType, This->AllocatorFraming.Frames, This->AllocatorFraming.FrameSize, This->AllocatorFraming.FileAlignment); + + Status = NewIrpQueue(&This->IrpQueue); + if (!NT_SUCCESS(Status)) + return Status; + + Status = This->IrpQueue->lpVtbl->Init(This->IrpQueue, ConnectDetails, This->Format, DeviceObject, This->AllocatorFraming.FrameSize, This->AllocatorFraming.FileAlignment); if (!NT_SUCCESS(Status)) { DPRINT1("IrpQueue_Init failed with %x\n", Status); @@ -835,6 +1138,7 @@ This->ref = 1; This->lpVtbl = &vt_IPortPinWavePci; This->lpVtblServiceSink = &vt_IServiceSink; + This->lpVtblPortWavePciStream = &vt_PortWavePciStream; /* store result */ Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -45,6 +45,28 @@ } }; +DEFINE_KSPROPERTY_TOPOLOGYSET(PortFilterDMusTopologySet, TopologyPropertyHandler); +DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PortFilterDMusPinSet, PinPropertyHandler, PinPropertyHandler, PinPropertyHandler); + +KSPROPERTY_SET PortDMusPropertySet[] = +{ + { + &KSPROPSETID_Topology, + sizeof(PortFilterDMusTopologySet) / sizeof(KSPROPERTY_ITEM), + (const KSPROPERTY_ITEM*)&PortFilterDMusTopologySet, + 0, + NULL + }, + { + &KSPROPSETID_Pin, + sizeof(PortFilterDMusPinSet) / sizeof(KSPROPERTY_ITEM), + (const KSPROPERTY_ITEM*)&PortFilterDMusPinSet, + 0, + NULL + } +}; + + //--------------------------------------------------------------- // IUnknown interface functions // @@ -249,8 +271,8 @@ InterfaceGuids, 0, NULL, - 0, - NULL, + 2, + PortDMusPropertySet, 0, 0, 0, Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -30,6 +30,10 @@ PPCFILTER_DESCRIPTOR pDescriptor; PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor; IPortFilterWavePci * Filter; + + LIST_ENTRY EventList; + KSPIN_LOCK EventListLock; + }IPortWavePciImpl; static GUID InterfaceGuids[3] = @@ -133,8 +137,14 @@ IPortEvents* iface, IN PKSEVENT_ENTRY EventEntry) { - UNIMPLEMENTED + KIRQL OldIrql; + IPortWavePciImpl * This = (IPortWavePciImpl*)CONTAINING_RECORD(iface, IPortWavePciImpl, lpVtblPortEvents); + ASSERT_IRQL_EQUAL(PASSIVE_LEVEL); + + KeAcquireSpinLock(&This->EventListLock, &OldIrql); + InsertTailList(&This->EventList, &EventEntry->ListEntry); + KeReleaseSpinLock(&This->EventListLock, OldIrql); } @@ -377,6 +387,8 @@ This->pDeviceObject = DeviceObject; This->bInitialized = TRUE; This->pResourceList = ResourceList; + InitializeListHead(&This->EventList); + KeInitializeSpinLock(&This->EventListLock); /* increment reference on miniport adapter */ Miniport->lpVtbl->AddRef(Miniport); Removed: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepcistream.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepcistream.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/port_wavepcistream.c (removed) @@ -1,165 +1,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Kernel Streaming - * FILE: drivers/wdm/audio/backpln/portcls/port_wavepcistream.c - * PURPOSE: Wave PCI Stream object - * PROGRAMMER: Johannes Anderwald - */ - -#include "private.h" - -typedef struct -{ - IPortWavePciStreamVtbl * lpVtbl; - IIrpQueue *Queue; - LONG ref; - - -}IPortWavePciStreamImpl; - -static -NTSTATUS -NTAPI -IPortWavePciStream_fnQueryInterface( - IPortWavePciStream* iface, - IN REFIID refiid, - OUT PVOID* Output) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - - DPRINT("IPortWavePciStream_fnQueryInterface entered\n"); - - if (IsEqualGUIDAligned(refiid, &IID_IPortWavePciStream) || - IsEqualGUIDAligned(refiid, &IID_IUnknown)) - { - *Output = &This->lpVtbl; - InterlockedIncrement(&This->ref); - return STATUS_SUCCESS; - } - - return STATUS_UNSUCCESSFUL; -} - -static -ULONG -NTAPI -IPortWavePciStream_fnAddRef( - IPortWavePciStream* iface) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - DPRINT("IPortWavePciStream_fnAddRef entered\n"); - - return InterlockedIncrement(&This->ref); -} - -static -ULONG -NTAPI -IPortWavePciStream_fnRelease( - IPortWavePciStream* iface) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - - InterlockedDecrement(&This->ref); - - DPRINT("IPortWavePciStream_fnRelease entered %u\n", This->ref); - - if (This->ref == 0) - { - This->Queue->lpVtbl->Release(This->Queue); - FreeItem(This, TAG_PORTCLASS); - return 0; - } - /* Return new reference count */ - return This->ref; -} - -static -NTSTATUS -NTAPI -IPortWavePciStream_fnGetMapping( - IN IPortWavePciStream *iface, - IN PVOID Tag, - OUT PPHYSICAL_ADDRESS PhysicalAddress, - OUT PVOID *VirtualAddress, - OUT PULONG ByteCount, - OUT PULONG Flags) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - - ASSERT_IRQL(DISPATCH_LEVEL); - return This->Queue->lpVtbl->GetMappingWithTag(This->Queue, Tag, PhysicalAddress, VirtualAddress, ByteCount, Flags); -} - -static -NTSTATUS -NTAPI -IPortWavePciStream_fnReleaseMapping( - IN IPortWavePciStream *iface, - IN PVOID Tag) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - - ASSERT_IRQL(DISPATCH_LEVEL); - return This->Queue->lpVtbl->ReleaseMappingWithTag(This->Queue, Tag); -} - -static -NTSTATUS -NTAPI -IPortWavePciStream_fnTerminatePacket( - IN IPortWavePciStream *iface) -{ - UNIMPLEMENTED - ASSERT_IRQL(DISPATCH_LEVEL); - return STATUS_SUCCESS; -} - - -static IPortWavePciStreamVtbl vt_PortWavePciStream = -{ - IPortWavePciStream_fnQueryInterface, - IPortWavePciStream_fnAddRef, - IPortWavePciStream_fnRelease, - IPortWavePciStream_fnGetMapping, - IPortWavePciStream_fnReleaseMapping, - IPortWavePciStream_fnTerminatePacket -}; - -NTSTATUS -NTAPI -NewIPortWavePciStream( - OUT PPORTWAVEPCISTREAM *Stream) -{ - IIrpQueue * Queue; - IPortWavePciStreamImpl * This; - NTSTATUS Status; - - Status = NewIrpQueue(&Queue); - if (!NT_SUCCESS(Status)) - return Status; - - This = AllocateItem(NonPagedPool, sizeof(IPortWavePciStreamImpl), TAG_PORTCLASS); - if (!This) - { - Queue->lpVtbl->Release(Queue); - return STATUS_INSUFFICIENT_RESOURCES; - } - - This->lpVtbl = &vt_PortWavePciStream; - This->ref = 1; - This->Queue = Queue; - - *Stream = (PPORTWAVEPCISTREAM)&This->lpVtbl; - return STATUS_SUCCESS; -} - -IIrpQueue* -NTAPI -IPortWavePciStream_GetIrpQueue( - IN IPortWavePciStream *iface) -{ - IPortWavePciStreamImpl * This = (IPortWavePciStreamImpl*)iface; - return This->Queue; -} - Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -10,6 +10,7 @@ <library>drmk</library> <library>hal</library> <library>libcntpr</library> + <library>pseh</library> <file>adapter.c</file> <file>api.c</file> <file>connection.c</file> @@ -40,7 +41,6 @@ <file>port_topology.c</file> <file>port_wavecyclic.c</file> <file>port_wavepci.c</file> - <file>port_wavepcistream.c</file> <file>port_wavert.c</file> <file>port_wavertstream.c</file> <file>power.c</file> Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/private.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/private.h [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/private.h [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -278,16 +278,6 @@ PDEVICE_OBJECT GetDeviceObject( IPortWaveCyclic* iface); - -IIrpQueue* -NTAPI -IPortWavePciStream_GetIrpQueue( - IN IPortWavePciStream *iface); - -NTSTATUS -NTAPI -NewIPortWavePciStream( - OUT PPORTWAVEPCISTREAM *Stream); VOID NTAPI Modified: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/legacy/w…
============================================================================== --- trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -597,6 +597,49 @@ NTSTATUS NTAPI +WdmAudFrameSize( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp, + IN PWDMAUD_DEVICE_INFO DeviceInfo, + IN PWDMAUD_CLIENT ClientInfo) +{ + PFILE_OBJECT FileObject; + KSPROPERTY Property; + ULONG BytesReturned; + KSALLOCATOR_FRAMING Framing; + NTSTATUS Status; + + /* Get sysaudio pin file object */ + Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Invalid buffer handle %x\n", DeviceInfo->hDevice); + return SetIrpIoStatus(Irp, Status, 0); + } + + /* Setup get framing request */ + Property.Id = KSPROPERTY_CONNECTION_ALLOCATORFRAMING; + Property.Flags = KSPROPERTY_TYPE_GET; + Property.Set = KSPROPSETID_Connection; + + Status = KsSynchronousIoControlDevice(FileObject, KernelMode, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)&Framing, sizeof(KSALLOCATOR_FRAMING), &BytesReturned); + /* Did we succeed */ + if (NT_SUCCESS(Status)) + { + /* Store framesize */ + DeviceInfo->u.FrameSize = Framing.FrameSize; + } + + /* Release file object */ + ObDereferenceObject(FileObject); + + return SetIrpIoStatus(Irp, Status, sizeof(WDMAUD_DEVICE_INFO)); + +} + + +NTSTATUS +NTAPI WdmAudDeviceControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) @@ -647,8 +690,9 @@ return WdmAudCapabilities(DeviceObject, Irp, DeviceInfo, ClientInfo); case IOCTL_CLOSE_WDMAUD: return WdmAudIoctlClose(DeviceObject, Irp, DeviceInfo, ClientInfo); + case IOCTL_GETFRAMESIZE: + return WdmAudFrameSize(DeviceObject, Irp, DeviceInfo, ClientInfo); case IOCTL_GETPOS: - DPRINT1("IOCTL_GETPOS\n"); case IOCTL_GETDEVID: case IOCTL_GETVOLUME: case IOCTL_SETVOLUME: @@ -793,4 +837,3 @@ ObDereferenceObject(FileObject); return IoStatusBlock.Status; } - Modified: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/legacy/w…
============================================================================== --- trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -43,6 +43,7 @@ ULONGLONG Position; KSSTATE State; ULONG Volume; + ULONG FrameSize; }u; }WDMAUD_DEVICE_INFO, *PWDMAUD_DEVICE_INFO; @@ -212,7 +213,7 @@ /// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure, /// InputBufferSize is size of WDMAUD_DEVICE_INFO structure /// Note: The DeviceType and hDevice must be set -/// Result: The result is returned in Volume +/// Result: The result is returned in Position /// ReturnCode: STATUS_SUCCESS indicates success /// Prequsites: opened device @@ -222,5 +223,22 @@ METHOD_BUFFERED, \ FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS) +/// IOCTL_GETFRAMESIZE +/// +/// Description: This IOCTL retrieves the frame size requirements for an audio pin +/// +/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure, +/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure +/// Note: The DeviceType and hDevice must be set +/// Result: The result is returned in FrameSize +/// ReturnCode: STATUS_SUCCESS indicates success +/// Prequsites: opened device + +#define IOCTL_GETFRAMESIZE \ + CTL_CODE(FILE_DEVICE_SOUND, \ + 10, \ + METHOD_BUFFERED, \ + FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS) + #endif Modified: trunk/reactos/drivers/wdm/audio/sysaudio/pin.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/sysaudio…
============================================================================== --- trunk/reactos/drivers/wdm/audio/sysaudio/pin.c [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/sysaudio/pin.c [iso-8859-1] Fri Jul 17 21:15:52 2009 @@ -128,9 +128,9 @@ { PDISPATCH_CONTEXT Context; PIO_STACK_LOCATION IoStack; - ULONG BytesReturned; PFILE_OBJECT FileObject; NTSTATUS Status; + ULONG BytesReturned; /* Get current stack location */ IoStack = IoGetCurrentIrpStackLocation(Irp); @@ -159,20 +159,21 @@ return Status; } - /* Re-dispatch the request to the real target pin */ + /* call the portcls audio pin */ Status = KsSynchronousIoControlDevice(FileObject, KernelMode, IOCTL_KS_WRITE_STREAM, MmGetMdlVirtualAddress(Irp->MdlAddress), - IoStack->Parameters.Read.Length, + IoStack->Parameters.Write.Length, NULL, 0, &BytesReturned); - /* release file object */ + + /* Release file object */ ObDereferenceObject(FileObject); /* Save status and information */ Irp->IoStatus.Status = Status; - Irp->IoStatus.Information = 0; + Irp->IoStatus.Information = BytesReturned; /* Complete the irp */ IoCompleteRequest(Irp, IO_NO_INCREMENT); /* Done */
15 years, 5 months
1
0
0
0
[dgorbachev] 42015: Change the order in which file systems are recognized, do not mistake FAT32 for Ext2.
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Fri Jul 17 21:14:08 2009 New Revision: 42015 URL:
http://svn.reactos.org/svn/reactos?rev=42015&view=rev
Log: Change the order in which file systems are recognized, do not mistake FAT32 for Ext2. Modified: trunk/reactos/boot/freeldr/freeldr/fs/fsrec.c Modified: trunk/reactos/boot/freeldr/freeldr/fs/fsrec.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/fs…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/fs/fsrec.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/fs/fsrec.c [iso-8859-1] Fri Jul 17 21:14:08 2009 @@ -36,12 +36,7 @@ DPRINTM(DPRINT_FILESYSTEM, "FsRecognizeVolume() DriveNumber: 0x%x VolumeStartSector: %d\n", DriveNumber, VolumeStartSector); - if (FsRecIsExt2(DriveNumber, VolumeStartSector)) - { - *VolumeType = PARTITION_EXT2; - return TRUE; - } - else if (FsRecIsFat(DriveNumber, VolumeStartSector)) + if (FsRecIsFat(DriveNumber, VolumeStartSector)) { *VolumeType = PARTITION_FAT32; return TRUE; @@ -49,6 +44,11 @@ else if (FsRecIsNtfs(DriveNumber, VolumeStartSector)) { *VolumeType = PARTITION_NTFS; + return TRUE; + } + else if (FsRecIsExt2(DriveNumber, VolumeStartSector)) + { + *VolumeType = PARTITION_EXT2; return TRUE; }
15 years, 5 months
1
0
0
0
[fireball] 42014: - Add more EMR_ types (a leftover from a pre-previous commit).
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 21:13:57 2009 New Revision: 42014 URL:
http://svn.reactos.org/svn/reactos?rev=42014&view=rev
Log: - Add more EMR_ types (a leftover from a pre-previous commit). Modified: branches/arwinss/reactos/include/psdk/wingdi.h Modified: branches/arwinss/reactos/include/psdk/wingdi.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] Fri Jul 17 21:13:57 2009 @@ -184,10 +184,12 @@ #define EMR_SETICMPROFILEW 113 #define EMR_ALPHABLEND 114 #define EMR_ALPHADIBBLEND 115 +#define EMR_SETLAYOUT 115 #define EMR_TRANSPARENTBLT 116 #define EMR_TRANSPARENTDIB 117 +#define EMR_RESERVED_117 117 #define EMR_GRADIENTFILL 118 -#define EMR_SETLINKEDUFIS 119 +#define EMR_SETLINKEDUFI 119 #define EMR_SETTEXTJUSTIFICATION 120 #define EMR_COLORMATCHTOTARGETW 121 #define EMR_CREATECOLORSPACEW 122
15 years, 5 months
1
0
0
0
[fireball] 42013: - Get gdi32.dll to compile. It doesn't link due to absence of atan2. - EnhMetaFile stuff is stubbed. - SysLevel stuff substituted by critical sections. - 16 bit stuff ifdefed away. - #include <ddrawgdi.h> in driver.c temporary commented out.
by fireball@svn.reactos.org
Author: fireball Date: Fri Jul 17 21:13:14 2009 New Revision: 42013 URL:
http://svn.reactos.org/svn/reactos?rev=42013&view=rev
Log: - Get gdi32.dll to compile. It doesn't link due to absence of atan2. - EnhMetaFile stuff is stubbed. - SysLevel stuff substituted by critical sections. - 16 bit stuff ifdefed away. - #include <ddrawgdi.h> in driver.c temporary commented out. Added: branches/arwinss/reactos/dll/win32/gdi32/enhmeta2.c (with props) Modified: branches/arwinss/reactos/dll/win32/gdi32/bitmap.c branches/arwinss/reactos/dll/win32/gdi32/brush.c branches/arwinss/reactos/dll/win32/gdi32/dc.c branches/arwinss/reactos/dll/win32/gdi32/driver.c branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec branches/arwinss/reactos/dll/win32/gdi32/gdi_main.c branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c Modified: branches/arwinss/reactos/dll/win32/gdi32/bitmap.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/bitmap.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/bitmap.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -658,6 +658,7 @@ } HeapFree(GetProcessHeap(), 0, dib); bmp->dib = NULL; +#ifndef __REACTOS__ if (bmp->segptr_bits) { /* free its selector array */ WORD sel = SELECTOROF(bmp->segptr_bits); @@ -666,6 +667,7 @@ for (i = 0; i < count; i++) FreeSelector16(sel + (i << __AHSHIFT)); } +#endif HeapFree(GetProcessHeap(), 0, bmp->color_table); } return HeapFree( GetProcessHeap(), 0, bmp ); Modified: branches/arwinss/reactos/dll/win32/gdi32/brush.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/brush.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/brush.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -53,6 +53,7 @@ BRUSH_DeleteObject /* pDeleteObject */ }; +#ifndef __REACTOS__ static HGLOBAL16 dib_copy(const BITMAPINFO *info, UINT coloruse) { BITMAPINFO *newInfo; @@ -76,6 +77,7 @@ GlobalUnlock16( hmem ); return hmem; } +#endif /*********************************************************************** @@ -117,7 +119,7 @@ ptr->logbrush.lbHatch = (ULONG_PTR)BITMAP_CopyBitmap( (HBITMAP) ptr->logbrush.lbHatch ); if (!ptr->logbrush.lbHatch) goto error; break; - +#ifndef __REACTOS__ case BS_DIBPATTERNPT: ptr->logbrush.lbStyle = BS_DIBPATTERN; ptr->logbrush.lbHatch = (ULONG_PTR)dib_copy( (BITMAPINFO *) ptr->logbrush.lbHatch, @@ -138,7 +140,7 @@ if (!ptr->logbrush.lbHatch) goto error; break; } - +#endif default: if(ptr->logbrush.lbStyle > BS_MONOPATTERN) goto error; break; @@ -155,8 +157,10 @@ { if (ptr->logbrush.lbStyle == BS_PATTERN) DeleteObject( (HGDIOBJ)ptr->logbrush.lbHatch ); +#ifndef __REACTOS__ else if (ptr->logbrush.lbStyle == BS_DIBPATTERN) GlobalFree16( (HGLOBAL16)ptr->logbrush.lbHatch ); +#endif } HeapFree( GetProcessHeap(), 0, ptr ); return 0; @@ -423,7 +427,9 @@ DeleteObject( (HGDIOBJ)brush->logbrush.lbHatch ); break; case BS_DIBPATTERN: +#ifndef __REACTOS__ GlobalFree16( (HGLOBAL16)brush->logbrush.lbHatch ); +#endif break; } return HeapFree( GetProcessHeap(), 0, brush ); Modified: branches/arwinss/reactos/dll/win32/gdi32/dc.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/dc.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/dc.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -1415,6 +1415,7 @@ /* relay function to call the 16-bit DC hook proc */ +#ifndef __REACTOS__ static BOOL WINAPI call_dc_hook16( HDC hdc, WORD code, DWORD_PTR data, LPARAM lParam ) { WORD args[6]; @@ -1470,6 +1471,7 @@ release_dc_ptr( dc ); return ret; } +#endif /*********************************************************************** Modified: branches/arwinss/reactos/dll/win32/gdi32/driver.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/driver.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/driver.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -28,7 +28,7 @@ #include "windef.h" #include "winbase.h" #include "winreg.h" -#include "ddrawgdi.h" +//#include "ddrawgdi.h" #include "gdi_private.h" #include "wine/unicode.h" Added: branches/arwinss/reactos/dll/win32/gdi32/enhmeta2.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/enhmeta2.c (added) +++ branches/arwinss/reactos/dll/win32/gdi32/enhmeta2.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -1,0 +1,100 @@ +#include "config.h" +#include "wine/port.h" + +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> +#include <assert.h> +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winnls.h" +#include "winerror.h" +#include "gdi_private.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(enhmetafile); + +/********************************************************************** + * CreateEnhMetaFileW (GDI32.@) + */ +HDC WINAPI CreateEnhMetaFileW( + HDC hdc, /* [in] optional reference DC */ + LPCWSTR filename, /* [in] optional filename for disk metafiles */ + const RECT* rect, /* [in] optional bounding rectangle */ + LPCWSTR description /* [in] optional description */ + ) +{ + UNIMPLEMENTED; + return 0; +} + +/********************************************************************** + * CreateEnhMetaFileA (GDI32.@) + */ +HDC WINAPI CreateEnhMetaFileA( + HDC hdc, /* [in] optional reference DC */ + LPCSTR filename, /* [in] optional filename for disk metafiles */ + const RECT *rect, /* [in] optional bounding rectangle */ + LPCSTR description /* [in] optional description */ + ) +{ + UNIMPLEMENTED; + return 0; +} + +/********************************************************************** + * CreateMetaFileA (GDI32.@) + * + * See CreateMetaFileW. + */ +HDC WINAPI CreateMetaFileA(LPCSTR filename) +{ + UNIMPLEMENTED; + return 0; +} + +/********************************************************************** + * CreateMetaFileW (GDI32.@) + * + * Create a new DC and associate it with a metafile. Pass a filename + * to create a disk-based metafile, NULL to create a memory metafile. + * + * PARAMS + * filename [I] Filename of disk metafile + * + * RETURNS + * A handle to the metafile DC if successful, NULL on failure. + */ +HDC WINAPI CreateMetaFileW( LPCWSTR filename ) +{ + UNIMPLEMENTED; + return 0; +} + +/****************************************************************** + * CloseEnhMetaFile (GDI32.@) + */ +HENHMETAFILE WINAPI CloseEnhMetaFile(HDC hdc) /* [in] metafile DC */ +{ + UNIMPLEMENTED; + return NULL; +} + +/****************************************************************** + * CloseMetaFile (GDI32.@) + * + * Stop recording graphics operations in metafile associated with + * hdc and retrieve metafile. + * + * PARAMS + * hdc [I] Metafile DC to close + * + * RETURNS + * Handle of newly created metafile on success, NULL on failure. + */ +HMETAFILE WINAPI CloseMetaFile(HDC hdc) +{ + UNIMPLEMENTED; + return NULL; +} Propchange: branches/arwinss/reactos/dll/win32/gdi32/enhmeta2.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -1,14 +1,17 @@ -<module name="gdi32" type="win32dll" baseaddress="${BASEADDRESS_GDI32}" installbase="system32" installname="gdi32.dll" unicode="yes"> +<module name="gdi32" type="win32dll" baseaddress="${BASEADDRESS_GDI32}" installbase="system32" installname="gdi32.dll" unicode="yes" allowwarnings="true"> <importlibrary definition="gdi32.spec" /> <include base="gdi32">include</include> + <include base="ReactOS">include/reactos/wine</include> <define name="_DISABLE_TIDENTS" /> <define name="WINVER">0x0600</define> <define name="_WIN32_WINNT">0x0501</define> <define name="LANGPACK" /> + <define name="__WINESRC__" /> + <library>wine</library> <library>ntdll</library> <library>user32</library> <library>kernel32</library> - <!--library>advapi32</library--> + <library>advapi32</library> <library>win32ksys</library> <library>pseh</library> <library>dxguid</library> @@ -22,6 +25,7 @@ <file>dib.c</file> <file>driver.c</file> <file>enhmetafile.c</file> + <file>enhmeta2.c</file> <file>font.c</file> <file>freetype.c</file> <file>gdi_main.c</file> Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -1,10 +1,3 @@ -# ordinal exports -100 stdcall @(long long str str str) GDI_CallDevInstall16 -101 stdcall @(long str str ptr) GDI_CallExtDeviceModePropSheet16 -102 stdcall @(long ptr str str ptr str long) GDI_CallExtDeviceMode16 -103 stdcall @(long str ptr ptr) GDI_CallAdvancedSetupDialog16 -104 stdcall @(str str long ptr ptr) GDI_CallDeviceCapabilities16 - @ stdcall AbortDoc(long) @ stdcall AbortPath(long) @ stdcall AddFontMemResourceEx(ptr long ptr ptr) @@ -174,7 +167,6 @@ # @ stub GdiDrawStream # @ stub GdiEndDocEMF # @ stub GdiEndPageEMF -@ stdcall GdiEntry13() # @ stub GdiFixUpHandle @ stdcall GdiFlush() # @ stub GdiFullscreenControl @@ -513,15 +505,10 @@ ################################################################ # Wine extensions: Win16 functions that are needed by other dlls # -@ stdcall CloseJob16(long) -@ stdcall DrvGetPrinterData16(str str ptr ptr long ptr) -@ stdcall DrvSetPrinterData16(str str long ptr long) @ stdcall GetDCHook(long ptr) -@ stdcall OpenJob16(str str long) @ stdcall SelectVisRgn(long long) @ stdcall SetDCHook(long ptr long) @ stdcall SetHookFlags(long long) -@ stdcall WriteSpool16(long ptr long) ################################################################ # Wine internal extensions Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi_main.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/gdi_main.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/gdi_main.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -32,6 +32,5 @@ { if (reason != DLL_PROCESS_ATTACH) return TRUE; DisableThreadLibraryCalls(hinstDLL); - LoadLibrary16( "gdi.exe" ); return GDI_Init(); } Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -303,7 +303,9 @@ INT MapMode; INT GraphicsMode; /* Graphics mode */ ABORTPROC pAbortProc; /* AbortProc for Printing */ +#ifndef __REACTOS__ ABORTPROC16 pAbortProc16; +#endif INT CursPosX; /* Current position */ INT CursPosY; INT ArcDirection; Modified: branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] Fri Jul 17 21:13:14 2009 @@ -66,14 +66,7 @@ static HGDIOBJ stock_objects[NB_STOCK_OBJECTS]; -static SYSLEVEL GDI_level; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &GDI_level.crst, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": GDI_level") } -}; -static SYSLEVEL GDI_level = { { &critsect_debug, -1, 0, 0, 0, 0 }, 3 }; +static CRITICAL_SECTION GDI_critsect; /**************************************************************************** @@ -574,6 +567,9 @@ const struct DefaultFontInfo* deffonts; int i; + /* Initialize GDI critical section */ + InitializeCriticalSection(&GDI_critsect); + WineEngInit(); /* create stock objects */ @@ -648,18 +644,18 @@ obj->funcs = funcs; obj->hdcs = NULL; - _EnterSysLevel( &GDI_level ); + EnterCriticalSection( &GDI_critsect ); for (i = next_large_handle + 1; i < MAX_LARGE_HANDLES; i++) if (!large_handles[i]) goto found; for (i = 0; i <= next_large_handle; i++) if (!large_handles[i]) goto found; - _LeaveSysLevel( &GDI_level ); + LeaveCriticalSection( &GDI_critsect ); return 0; found: large_handles[i] = obj; next_large_handle = i; - _LeaveSysLevel( &GDI_level ); + LeaveCriticalSection( &GDI_critsect ); return (HGDIOBJ)(ULONG_PTR)((i + FIRST_LARGE_HANDLE) << 2); } @@ -677,10 +673,10 @@ i = ((ULONG_PTR)handle >> 2) - FIRST_LARGE_HANDLE; if (i >= 0 && i < MAX_LARGE_HANDLES) { - _EnterSysLevel( &GDI_level ); + EnterCriticalSection( &GDI_critsect ); object = large_handles[i]; large_handles[i] = NULL; - _LeaveSysLevel( &GDI_level ); + LeaveCriticalSection( &GDI_critsect ); } if (object) { @@ -703,7 +699,7 @@ GDIOBJHDR *ptr = NULL; int i; - _EnterSysLevel( &GDI_level ); + EnterCriticalSection( &GDI_critsect ); i = ((UINT_PTR)handle >> 2) - FIRST_LARGE_HANDLE; if (i >= 0 && i < MAX_LARGE_HANDLES) @@ -714,10 +710,10 @@ if (!ptr) { - _LeaveSysLevel( &GDI_level ); + LeaveCriticalSection( &GDI_critsect ); WARN( "Invalid handle %p\n", handle ); } - else TRACE("(%p): enter %d\n", handle, GDI_level.crst.RecursionCount); + //else TRACE("(%p): enter %d\n", handle, GDI_level.crst.RecursionCount); return ptr; } @@ -729,8 +725,8 @@ */ void GDI_ReleaseObj( HGDIOBJ handle ) { - TRACE("(%p): leave %d\n", handle, GDI_level.crst.RecursionCount); - _LeaveSysLevel( &GDI_level ); + //TRACE("(%p): leave %d\n", handle, GDI_level.crst.RecursionCount); + LeaveCriticalSection( &GDI_critsect ); } @@ -739,7 +735,7 @@ */ void GDI_CheckNotLock(void) { - _CheckNotSysLevel( &GDI_level ); + //_CheckNotSysLevel( &GDI_level ); }
15 years, 5 months
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
34
...
61
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Results per page:
10
25
50
100
200