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
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
April 2011
----- 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
19 participants
296 discussions
Start a n
N
ew thread
[fireball] 51272: [KERNEL32] - Finish the ldr.c rewrite. Properly implement LoadLibraryExW (which contained some good code pieces added by Alex). Implement BasepLoadLibraryAsDatafile, however it do...
by fireball@svn.reactos.org
Author: fireball Date: Wed Apr 6 21:49:04 2011 New Revision: 51272 URL:
http://svn.reactos.org/svn/reactos?rev=51272&view=rev
Log: [KERNEL32] - Finish the ldr.c rewrite. Properly implement LoadLibraryExW (which contained some good code pieces added by Alex). Implement BasepLoadLibraryAsDatafile, however it doesn't support redirection yet and a call to load alternate resource module is commented out (it's totally absent in the existing ntdll/ldr API now). - Mark GetDllLoadPath as deprecated, should be removed when SearchPathW is rewritten (or at least, reviewed). The new function to use is BasepGetDllPath. Modified: trunk/reactos/dll/win32/kernel32/include/kernel32.h trunk/reactos/dll/win32/kernel32/misc/ldr.c Modified: trunk/reactos/dll/win32/kernel32/include/kernel32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include…
============================================================================== --- trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] Wed Apr 6 21:49:04 2011 @@ -96,6 +96,7 @@ extern UNICODE_STRING BaseDllDirectory; extern UNICODE_STRING BaseDefaultPath; extern UNICODE_STRING BaseDefaultPathAppend; +extern PLDR_DATA_TABLE_ENTRY BasepExeLdrEntry; extern LPTOP_LEVEL_EXCEPTION_FILTER GlobalTopLevelExceptionFilter; Modified: trunk/reactos/dll/win32/kernel32/misc/ldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/ld…
============================================================================== --- trunk/reactos/dll/win32/kernel32/misc/ldr.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/misc/ldr.c [iso-8859-1] Wed Apr 6 21:49:04 2011 @@ -1,10 +1,9 @@ /* * COPYRIGHT: See COPYING in the top level directory - * PROJECT : ReactOS user mode libraries + * PROJECT : ReactOS system libraries * MODULE : kernel32.dll * FILE : reactos/dll/win32/kernel32/misc/ldr.c * AUTHOR : Aleksey Bragin <aleksey(a)reactos.org> - * Ariadne */ #include <k32.h> @@ -26,6 +25,12 @@ #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_ERROR 1 #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_SUCCESS 2 #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_CONTINUE 3 + +VOID +NTAPI +BasepLocateExeLdrEntry(IN PLDR_DATA_TABLE_ENTRY Entry, + IN PVOID Context, + OUT BOOLEAN *StopEnumeration); /* FUNCTIONS ****************************************************************/ @@ -101,6 +106,8 @@ LPCWSTR lpModuleEnd = NULL; UNICODE_STRING ModuleName; DWORD LastError = GetLastError(); /* GetEnvironmentVariable changes LastError */ + + // FIXME: This function is used only by SearchPathW, and is deprecated and will be deleted ASAP. if ((lpModule != NULL) && (wcslen(lpModule) > 2) && (lpModule[1] == ':')) { @@ -261,69 +268,113 @@ static NTSTATUS -LoadLibraryAsDatafile(PWSTR path, LPCWSTR name, HMODULE* hmod) -{ - static const WCHAR dotDLL[] = {'.','d','l','l',0}; - - WCHAR filenameW[MAX_PATH]; +BasepLoadLibraryAsDatafile(PWSTR Path, LPCWSTR Name, HMODULE *hModule) +{ + WCHAR FilenameW[MAX_PATH]; HANDLE hFile = INVALID_HANDLE_VALUE; - HANDLE mapping; - HMODULE module; - - *hmod = 0; - - if (!SearchPathW( path, name, dotDLL, sizeof(filenameW) / sizeof(filenameW[0]), - filenameW, NULL )) - { + HANDLE hMapping; + NTSTATUS Status; + PVOID lpBaseAddress; + SIZE_T ViewSize; + //PUNICODE_STRING OriginalName; + //UNICODE_STRING dotDLL = RTL_CONSTANT_STRING(L".DLL"); + + /* Zero out handle value */ + *hModule = 0; + + /*Status = RtlDosApplyFileIsolationRedirection_Ustr(TRUE, + Name, + &dotDLL, + RedirName, + RedirName2, + &OriginalName2, + NULL, + NULL, + NULL);*/ + + /* Try to search for it */ + if (!SearchPathW(Path, + Name, + L".DLL", + sizeof(FilenameW) / sizeof(FilenameW[0]), + FilenameW, + NULL)) + { + /* Return last status value directly */ return NtCurrentTeb()->LastStatusValue; } - hFile = CreateFileW( filenameW, GENERIC_READ, FILE_SHARE_READ, - NULL, OPEN_EXISTING, 0, 0 ); - + /* Open this file we found */ + hFile = CreateFileW(FilenameW, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + 0, + 0); + + /* If opening failed - return last status value */ if (hFile == INVALID_HANDLE_VALUE) return NtCurrentTeb()->LastStatusValue; - mapping = CreateFileMappingW( hFile, NULL, PAGE_READONLY, 0, 0, NULL ); - CloseHandle( hFile ); - if (!mapping) return NtCurrentTeb()->LastStatusValue; - - module = MapViewOfFile( mapping, FILE_MAP_READ, 0, 0, 0 ); - CloseHandle( mapping ); - if (!module) return NtCurrentTeb()->LastStatusValue; - - /* make sure it's a valid PE file */ - if (!RtlImageNtHeader(module)) - { - UnmapViewOfFile( module ); + /* Create file mapping */ + hMapping = CreateFileMappingW(hFile, NULL, PAGE_READONLY, 0, 0, NULL); + + /* Close the file handle */ + CloseHandle(hFile); + + /* If creating file mapping failed - return last status value */ + if (!hMapping) return NtCurrentTeb()->LastStatusValue; + + /* Map view of section */ + Status = NtMapViewOfSection(hMapping, + NtCurrentProcess(), + &lpBaseAddress, + 0, + 0, + 0, + &ViewSize, + ViewShare, + 0, + PAGE_READONLY); + + /* Close handle to the section */ + CloseHandle(hMapping); + + /* If mapping view of section failed - return last status value */ + if (!NT_SUCCESS(Status)) return NtCurrentTeb()->LastStatusValue; + + /* Make sure it's a valid PE file */ + if (!RtlImageNtHeader(lpBaseAddress)) + { + /* Unmap the view and return failure status */ + UnmapViewOfFile(lpBaseAddress); return STATUS_INVALID_IMAGE_FORMAT; } - *hmod = (HMODULE)((char *)module + 1); /* set low bit of handle to indicate datafile module */ + + /* Set low bit of handle to indicate datafile module */ + *hModule = (HMODULE)((ULONG_PTR)lpBaseAddress | 1); + + /* Load alternate resource module */ + //LdrLoadAlternateResourceModule(*hModule, FilenameW); + return STATUS_SUCCESS; } - /* * @implemented */ HINSTANCE WINAPI -LoadLibraryExW ( - LPCWSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags - ) -{ - UNICODE_STRING DllName; - HINSTANCE hInst; - NTSTATUS Status; - PWSTR SearchPath; +LoadLibraryExW(LPCWSTR lpLibFileName, + HANDLE hFile, + DWORD dwFlags) +{ + UNICODE_STRING DllName; + HINSTANCE hInst; + NTSTATUS Status; + PWSTR SearchPath; ULONG DllCharacteristics = 0; - BOOL FreeString = FALSE; - - (void)hFile; - - if ( lpLibFileName == NULL ) - return NULL; + BOOL FreeString = FALSE; /* Check for any flags LdrLoadDll might be interested in */ if (dwFlags & DONT_RESOLVE_DLL_REFERENCES) @@ -332,67 +383,101 @@ DllCharacteristics = IMAGE_FILE_EXECUTABLE_IMAGE; } - dwFlags &= - DONT_RESOLVE_DLL_REFERENCES | - LOAD_LIBRARY_AS_DATAFILE | - LOAD_WITH_ALTERED_SEARCH_PATH; - - SearchPath = GetDllLoadPath( - dwFlags & LOAD_WITH_ALTERED_SEARCH_PATH ? lpLibFileName : NULL); - - RtlInitUnicodeString(&DllName, (LPWSTR)lpLibFileName); - - if (DllName.Buffer[DllName.Length/sizeof(WCHAR) - 1] == L' ') - { - RtlCreateUnicodeString(&DllName, (LPWSTR)lpLibFileName); - while (DllName.Length > sizeof(WCHAR) && - DllName.Buffer[DllName.Length/sizeof(WCHAR) - 1] == L' ') - { - DllName.Length -= sizeof(WCHAR); - } - DllName.Buffer[DllName.Length/sizeof(WCHAR)] = UNICODE_NULL; - FreeString = TRUE; - } - - if (dwFlags & LOAD_LIBRARY_AS_DATAFILE) - { - Status = LdrGetDllHandle(SearchPath, NULL, &DllName, (PVOID*)&hInst); - if (!NT_SUCCESS(Status)) - { - /* The method in load_library_as_datafile allows searching for the - * 'native' libraries only - */ - Status = LoadLibraryAsDatafile(SearchPath, DllName.Buffer, &hInst); - goto done; - } - } - - /* HACK!!! FIXME */ - if (InWindows) - { - /* Call the API Properly */ - Status = LdrLoadDll(SearchPath, - &DllCharacteristics, - &DllName, - (PVOID*)&hInst); - } - else - { - /* Call the ROS API. NOTE: Don't fix this, I have a patch to merge later. */ - Status = LdrLoadDll(SearchPath, &dwFlags, &DllName, (PVOID*)&hInst); - } + /* Build up a unicode dll name from null-terminated string */ + RtlInitUnicodeString(&DllName, (LPWSTR)lpLibFileName); + + /* Lazy-initialize BasepExeLdrEntry */ + if (!BasepExeLdrEntry) + LdrEnumerateLoadedModules(0, BasepLocateExeLdrEntry, NtCurrentPeb()->ImageBaseAddress); + + /* Check if that module is our exe*/ + if (BasepExeLdrEntry && !(dwFlags & LOAD_LIBRARY_AS_DATAFILE) && + DllName.Length == BasepExeLdrEntry->FullDllName.Length) + { + /* Lengths match and it's not a datafile, so perform name comparison */ + if (RtlEqualUnicodeString(&DllName, &BasepExeLdrEntry->FullDllName, TRUE)) + { + /* That's us! */ + return BasepExeLdrEntry->DllBase; + } + } + + /* Check for trailing spaces and remove them if necessary */ + if (DllName.Buffer[DllName.Length/sizeof(WCHAR) - 1] == L' ') + { + RtlCreateUnicodeString(&DllName, (LPWSTR)lpLibFileName); + while (DllName.Length > sizeof(WCHAR) && + DllName.Buffer[DllName.Length/sizeof(WCHAR) - 1] == L' ') + { + DllName.Length -= sizeof(WCHAR); + } + DllName.Buffer[DllName.Length/sizeof(WCHAR)] = UNICODE_NULL; + FreeString = TRUE; + } + + /* Compute the load path */ + SearchPath = BasepGetDllPath((dwFlags & LOAD_WITH_ALTERED_SEARCH_PATH) ? (LPWSTR)lpLibFileName : NULL, + NULL); + + if (!SearchPath) + { + /* Getting DLL path failed, so set last error, free mem and return */ + BaseSetLastNTError(STATUS_NO_MEMORY); + if (FreeString) RtlFreeUnicodeString(&DllName); + return NULL; + } + + _SEH2_TRY + { + if (dwFlags & LOAD_LIBRARY_AS_DATAFILE) + { + /* If the image is loaded as a datafile, try to get its handle */ + Status = LdrGetDllHandle(SearchPath, NULL, &DllName, (PVOID*)&hInst); + if (!NT_SUCCESS(Status)) + { + /* It's not loaded yet - so load it up */ + Status = BasepLoadLibraryAsDatafile(SearchPath, DllName.Buffer, &hInst); + _SEH2_YIELD(goto done;) + } + } + + /* HACK!!! FIXME */ + if (InWindows) + { + /* Call the API Properly */ + Status = LdrLoadDll(SearchPath, + &DllCharacteristics, + &DllName, + (PVOID*)&hInst); + } + else + { + /* Call the ROS API. NOTE: Don't fix this, I have a patch to merge later. */ + Status = LdrLoadDll(SearchPath, &dwFlags, &DllName, (PVOID*)&hInst); + } + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + Status = _SEH2_GetExceptionCode(); + } _SEH2_END + done: - RtlFreeHeap(RtlGetProcessHeap(), 0, SearchPath); - if (FreeString) - RtlFreeUnicodeString(&DllName); - if ( !NT_SUCCESS(Status)) - { - SetLastErrorByStatus (Status); - return NULL; - } - - return hInst; + /* Free SearchPath buffer */ + RtlFreeHeap(RtlGetProcessHeap(), 0, SearchPath); + + /* Free DllName string if it was dynamically allocated */ + if (FreeString) RtlFreeUnicodeString(&DllName); + + /* Set last error in failure case */ + if ( !NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return NULL; + } + + /* Return loaded module handle */ + return hInst; }
13 years, 8 months
1
0
0
0
[janderwald] 51271: [SNDVOL32] - Implement loading of resources and parsing the dialog template in memory - Store the created windows in an array - Implement destroying of controls when mixer is ch...
by janderwald@svn.reactos.org
Author: janderwald Date: Wed Apr 6 21:05:05 2011 New Revision: 51271 URL:
http://svn.reactos.org/svn/reactos?rev=51271&view=rev
Log: [SNDVOL32] - Implement loading of resources and parsing the dialog template in memory - Store the created windows in an array - Implement destroying of controls when mixer is changed / line selection is altered - Implement generating layout for each new line - Implement setting line name - Resources have not yet been commited - Sndvol32 is not yet functional Added: trunk/reactos/base/applications/sndvol32/dialog.c (with props) Modified: trunk/reactos/base/applications/sndvol32/misc.c trunk/reactos/base/applications/sndvol32/mixer.c trunk/reactos/base/applications/sndvol32/resources.h trunk/reactos/base/applications/sndvol32/sndvol32.c trunk/reactos/base/applications/sndvol32/sndvol32.h trunk/reactos/base/applications/sndvol32/sndvol32.rbuild Added: trunk/reactos/base/applications/sndvol32/dialog.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/dialog.c (added) +++ trunk/reactos/base/applications/sndvol32/dialog.c [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -1,0 +1,384 @@ +/* $Id: misc.c 43790 2009-10-27 10:34:16Z dgorbachev $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Sound Volume Control + * FILE: subsys/system/sndvol32/dialog.c + * PROGRAMMERS: Johannes Anderwald + */ +#include "sndvol32.h" + + +#define XLEFT (30) +#define XTOP (20) +#define DIALOG_VOLUME_SIZE (150) + +LPVOID +LoadDialogResource( + IN HMODULE hModule, + IN LPCWSTR ResourceName, + OUT LPDWORD ResourceLength) +{ + HRSRC hSrc; + HGLOBAL hRes; + PVOID Result; + + /* find resource */ + hSrc = FindResourceW(hModule, ResourceName, (LPCWSTR)RT_DIALOG); + + if (!hSrc) + { + /* failed to find resource */ + return NULL; + } + + /* now load the resource */ + hRes = LoadResource(hAppInstance, hSrc); + if (!hRes) + { + /* failed to load resource */ + return NULL; + } + + /* now lock the resource */ + Result = LockResource(hRes); + + if (!Result) + { + /* failed to lock resource */ + return NULL; + } + + if (ResourceLength) + { + /* store output length */ + *ResourceLength = SizeofResource(hAppInstance, hSrc); + } + + /* done */ + return Result; +} + +LPWORD +AddDialogControl( + IN HWND hwndDialog, + IN HWND * OutWnd, + IN LPRECT DialogOffset, + IN PDLGITEMTEMPLATE DialogItem, + IN DWORD DialogIdMultiplier, + IN HFONT hFont) +{ + RECT rect; + LPWORD Offset; + LPWSTR ClassName, WindowName = NULL; + HWND hwnd; + DWORD wID; + + /* initialize client rectangle */ + rect.left = DialogItem->x + DialogOffset->left; + rect.top = DialogItem->y + DialogOffset->top; + rect.right = DialogItem->cx; + rect.bottom = DialogItem->cy; + + //MapDialogRect(hwndDialog, &rect); + + /* move offset after dialog item */ + Offset = (LPWORD)(DialogItem + 1); + + if (*Offset == 0xFFFF) + { + /* class is encoded as type */ + Offset++; + + /* get control type */ + switch(*Offset) + { + case 0x80: + ClassName = L"button"; + WindowName = (LPWSTR)(Offset + 1); + break ; + case 0x82: + ClassName = L"static"; + WindowName = (LPWSTR)(Offset + 1); + break; + default: + /* FIXME */ + assert(0); + ClassName = 0; + } + } + else + { + /* class name is encoded as string */ + ClassName = (LPWSTR)Offset; + + /* adjust offset */ + Offset += wcslen(ClassName) + 1; + + /* get offset */ + WindowName = (LPWSTR)(Offset + 1); + } + + if (DialogItem->id == MAXWORD) + { + /* id is not important */ + wID = DialogItem->id; + } + else + { + /* calculate id */ + wID = DialogItem->id * (DialogIdMultiplier + 1); + + } + /* now create the window */ + hwnd = CreateWindowExW(DialogItem->dwExtendedStyle, + ClassName, + WindowName, + DialogItem->style, + rect.left, + rect.top, + rect.right, + rect.bottom, + hwndDialog, + (HMENU)(wID), + hAppInstance, + NULL); + + /* sanity check */ + assert(hwnd); + + /* store window */ + *OutWnd = hwnd; + + /* check if this the track bar */ + if (!wcsicmp(ClassName, L"msctls_trackbar32")) + { + /* set up range */ + SendMessage(hwnd, TBM_SETRANGE, (WPARAM) TRUE, (LPARAM) MAKELONG(0, 5)); + + /* set up page size */ + SendMessage(hwnd, TBM_SETPAGESIZE, 0, (LPARAM) 1); + + /* set available range */ + SendMessage(hwnd, TBM_SETSEL, (WPARAM) FALSE, (LPARAM) MAKELONG(0, 5)); + } + else if (!wcsicmp(ClassName, L"static") || !wcsicmp(ClassName, L"button")) + { + /* set font */ + SendMessageW(hwnd, WM_SETFONT, (WPARAM)hFont, TRUE); + } + + //ShowWindow(hwnd, SW_SHOWNORMAL); + + if (WindowName != NULL) + { + /* position offset to start of name */ + Offset++; + + /* move offset past name */ + Offset += wcslen((LPWSTR)Offset) + 1; + } + else + { + /* no name so just adjust offset */ + Offset++; + } + + /* check if there is additional data */ + if (*Offset == 0) + { + /* no additional data */ + Offset++; + } + else + { + /* add data offset */ + Offset += *Offset; + } + + /* make sure next template is word-aligned */ + Offset = (LPWORD)(((ULONG_PTR)Offset + 3) & ~3); + + /* done */ + return Offset; +} + +VOID +LoadDialogControls( + IN PMIXER_WINDOW MixerWindow, + LPRECT DialogOffset, + LPVOID DlgResource, + DWORD DialogIdMultiplier) +{ + LPDLGTEMPLATE DialogHeader; + PDLGITEMTEMPLATE DialogItem; + LPWORD Offset; + WORD FontSize; + WCHAR FontName[100]; + WORD Length, Index; + HFONT Font; + + /* get dialog header */ + DialogHeader = (LPDLGTEMPLATE)DlgResource; + + /* sanity check */ + assert(DialogHeader->cdit); + + if (MixerWindow->Window) + MixerWindow->Window = (HWND*)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MixerWindow->Window, (MixerWindow->WindowCount + DialogHeader->cdit) * sizeof(HWND)); + else + MixerWindow->Window = (HWND*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, DialogHeader->cdit * sizeof(HWND)); + if (!MixerWindow->Window) + { + /* no memory */ + return; + } + + /* now walk past the dialog header */ + Offset = (LPWORD)(DialogHeader + 1); + + /* FIXME: support menu */ + assert(*Offset == 0); + Offset++; + + /* FIXME: support classes */ + assert(*Offset == 0); + Offset++; + + /* FIXME: support titles */ + assert(*Offset == 0); + Offset++; + + /* get font size */ + FontSize = *Offset; + Offset++; + + /* calculate font length */ + Length = wcslen((LPWSTR)Offset) + 1; + assert(Length < (sizeof(FontName) / sizeof(WCHAR))); + + /* copy font */ + wcscpy(FontName, (LPWSTR)Offset); + + Font = CreateFontW(FontSize+8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, FontName); + assert(Font); + + /* move offset after font name */ + Offset += Length; + + /* offset is now at first dialog item control */ + DialogItem = (PDLGITEMTEMPLATE)Offset; + + /* enumerate now all controls */ + for(Index = 0; Index < DialogHeader->cdit; Index++) + { + /* add controls */ + Offset = AddDialogControl(MixerWindow->hWnd, &MixerWindow->Window[MixerWindow->WindowCount], DialogOffset, DialogItem, DialogIdMultiplier, Font); + + /* sanity check */ + assert(Offset); + + /* move dialog item to new offset */ + DialogItem =(PDLGITEMTEMPLATE)Offset; + + /* increment window count */ + MixerWindow->WindowCount++; + } +} + +VOID +LoadDialog( + IN HMODULE hModule, + IN PMIXER_WINDOW MixerWindow, + IN LPCWSTR DialogResId, + IN DWORD Index) +{ + LPVOID DlgResource; + RECT rect; + + /* first load the dialog resource */ + DlgResource = LoadDialogResource(hModule, DialogResId, NULL); + + if (!DlgResource) + { + /* failed to load resource */ + return; + } + + /* get window size */ + GetClientRect(MixerWindow->hWnd, &rect); + + /* adjust client position */ + rect.left += (Index * DIALOG_VOLUME_SIZE); + + + /* now add the controls */ + LoadDialogControls(MixerWindow, &rect, DlgResource, Index); + +} + +BOOL +CALLBACK +EnumConnectionsCallback( + PSND_MIXER Mixer, + DWORD LineID, + LPMIXERLINE Line, + PVOID Context) +{ + WCHAR LineName[MIXER_LONG_NAME_CHARS]; + DWORD Flags; + DWORD wID; + RECT rect; + PPREFERENCES_CONTEXT PrefContext = (PPREFERENCES_CONTEXT)Context; + + if (Line->cControls != 0) + { + /* get line name */ + if (SndMixerGetLineName(PrefContext->Mixer, PrefContext->SelectedLine, LineName, MIXER_LONG_NAME_CHARS, FALSE) == -1) + { + /* failed to get line name */ + LineName[0] = L'\0'; + } + + /* check if line is found in registry settings */ + if (ReadLineConfig(PrefContext->DeviceName, + LineName, + Line->szName, + &Flags)) + { + /* is it selected */ + if (Flags != 0x4) + { + /* load dialog resource */ + LoadDialog(hAppInstance, PrefContext->MixerWindow, MAKEINTRESOURCE(IDD_VOLUME_CTRL), PrefContext->Count); + + /* get id */ + wID = (PrefContext->Count + 1) * IDC_LINE_NAME; + + /* set line name */ + SetDlgItemTextW(PrefContext->MixerWindow->hWnd, wID, Line->szName); + + /* increment dialog count */ + PrefContext->Count++; + + /* get application rectangle */ + GetWindowRect(PrefContext->MixerWindow->hWnd, &rect); + + /* now move the window */ + MoveWindow(PrefContext->MixerWindow->hWnd, rect.left, rect.top, (PrefContext->Count * DIALOG_VOLUME_SIZE), rect.bottom, TRUE); + + } + } + } + return TRUE; +} + +VOID +LoadDialogCtrls( + PPREFERENCES_CONTEXT PrefContext) +{ + /* set dialog count to one */ + PrefContext->Count = 0; + + /* enumerate controls */ + SndMixerEnumConnections(PrefContext->Mixer, PrefContext->SelectedLine, EnumConnectionsCallback, (PVOID)PrefContext); +} Propchange: trunk/reactos/base/applications/sndvol32/dialog.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/base/applications/sndvol32/misc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/misc.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/misc.c [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -23,7 +23,8 @@ * FILE: subsys/system/sndvol32/misc.c * PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com> */ -#include <sndvol32.h> +#include "sndvol32.h" + static INT LengthOfStrResource(IN HINSTANCE hInst, Modified: trunk/reactos/base/applications/sndvol32/mixer.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/mixer.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/mixer.c [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -23,7 +23,7 @@ * FILE: subsys/system/sndvol32/mixer.c * PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com> */ -#include <sndvol32.h> +#include "sndvol32.h" #define NO_MIXER_SELECTED ((UINT)(~0)) Modified: trunk/reactos/base/applications/sndvol32/resources.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/resources.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/resources.h [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -10,7 +10,7 @@ #define IDC_HELP_TOPICS 1101 #define IDC_ABOUT 1102 -#define IDD_PREFERENCES 101 + #define IDC_MIXERDEVICE 1001 #define IDC_PLAYBACK 1002 #define IDC_RECORDING 1003 @@ -18,6 +18,11 @@ #define IDC_LINE 1005 #define IDC_LABELCONTROLS 1006 #define IDC_CONTROLS 1007 +#define IDC_LINE_NAME 1008 #define IDS_SNDVOL32 100 #define IDS_NOMIXERDEVICES 101 + + +#define IDD_VOLUME_CTRL 200 +#define IDD_PREFERENCES 201 Modified: trunk/reactos/base/applications/sndvol32/sndvol32.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/sndvol32.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/sndvol32.c [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -23,13 +23,14 @@ * FILE: subsys/system/sndvol32/sndvol32.c * PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com> */ -#include <sndvol32.h> +#include "sndvol32.h" HINSTANCE hAppInstance; ATOM MainWindowClass; HWND hMainWnd; HANDLE hAppHeap; LPTSTR lpAppTitle; +PREFERENCES_CONTEXT Preferences; #define GetDialogData(hwndDlg, type) \ ( P##type )GetWindowLongPtr((hwndDlg), DWLP_USER) @@ -38,21 +39,7 @@ /******************************************************************************/ -typedef struct _PREFERENCES_CONTEXT -{ - PMIXER_WINDOW MixerWindow; - PSND_MIXER Mixer; - HWND hwndDlg; - - UINT Selected; - DWORD SelectedLine; - DWORD PlaybackID; - DWORD RecordingID; - UINT OtherLines; - TCHAR DeviceName[128]; - - DWORD tmp; -} PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT; + typedef struct _PREFERENCES_FILL_DEVICES { @@ -546,18 +533,36 @@ return 0; } + /******************************************************************************/ static VOID DeleteMixerWindowControls(PMIXER_WINDOW MixerWindow) { - UNREFERENCED_PARAMETER(MixerWindow); + DWORD Index; + + for(Index = 0; Index < MixerWindow->WindowCount; Index++) + { + /* destroys the window */ + DestroyWindow(MixerWindow->Window[Index]); + } + + /* free memory */ + HeapFree(GetProcessHeap(), 0, MixerWindow->Window); + + /* set to null */ + MixerWindow->Window = NULL; + MixerWindow->WindowCount = 0; } static BOOL -RebuildMixerWindowControls(PMIXER_WINDOW MixerWindow) -{ - DeleteMixerWindowControls(MixerWindow); +RebuildMixerWindowControls(PPREFERENCES_CONTEXT PrefContext) +{ + /* delete existing mixer controls */ + DeleteMixerWindowControls(PrefContext->MixerWindow); + + /* load new mixer controls */ + LoadDialogCtrls(PrefContext); return TRUE; } @@ -637,44 +642,56 @@ GWL_USERDATA, (LONG_PTR)MixerWindow); MixerWindow->hWnd = hwnd; - MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, - NULL, - hwnd, - 0); - if (MixerWindow->hStatusBar != NULL) - { - MixerWindow->Mixer = SndMixerCreate(MixerWindow->hWnd); - if (MixerWindow->Mixer != NULL) - { - TCHAR szProduct[MAXPNAMELEN]; - - if (SndMixerGetProductName(MixerWindow->Mixer, - szProduct, - sizeof(szProduct) / sizeof(szProduct[0])) > 0) - { - SendMessage(MixerWindow->hStatusBar, - WM_SETTEXT, - 0, - (LPARAM)szProduct); - } - - if (!RebuildMixerWindowControls(MixerWindow)) - { - DPRINT("Rebuilding mixer window controls failed!\n"); - SndMixerDestroy(MixerWindow->Mixer); - MixerWindow->Mixer = NULL; - Result = -1; - } - } - else - { + MixerWindow->Mixer = SndMixerCreate(MixerWindow->hWnd); + if (MixerWindow->Mixer != NULL) + { + TCHAR szProduct[MAXPNAMELEN]; + + /* get mixer product name */ + if (SndMixerGetProductName(MixerWindow->Mixer, + szProduct, + sizeof(szProduct) / sizeof(szProduct[0])) == -1) + { + /* failed to get name */ + szProduct[0] = L'\0'; + } + + + /* initialize perferences */ + ZeroMemory(&Preferences, sizeof(Preferences)); + + /* store mixer */ + Preferences.Mixer = MixerWindow->Mixer; + + /* store mixer window */ + Preferences.MixerWindow = MixerWindow; + + /* first destination line id */ + Preferences.SelectedLine = 0xFFFF0000; + + /* copy product */ + wcscpy(Preferences.DeviceName, szProduct); + + if (!RebuildMixerWindowControls(&Preferences)) + { + DPRINT("Rebuilding mixer window controls failed!\n"); + SndMixerDestroy(MixerWindow->Mixer); + MixerWindow->Mixer = NULL; Result = -1; } - } - else - { - DPRINT("Failed to create status window!\n"); - Result = -1; + + /* create status window */ + MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, + NULL, + hwnd, + 0); + if (MixerWindow->hStatusBar) + { + SendMessage(MixerWindow->hStatusBar, + WM_SETTEXT, + 0, + (LPARAM)szProduct); + } } break; } @@ -746,7 +763,7 @@ HWND hWnd; PMIXER_WINDOW MixerWindow = HeapAlloc(hAppHeap, - 0, + HEAP_ZERO_MEMORY, sizeof(MIXER_WINDOW)); if (MixerWindow == NULL) { @@ -758,8 +775,8 @@ hWnd = CreateWindowEx(WS_EX_WINDOWEDGE | WS_EX_CONTROLPARENT, SZ_APP_CLASS, lpAppTitle, - WS_DLGFRAME | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE, - CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + WS_OVERLAPPEDWINDOW | WS_VISIBLE, //WS_DLGFRAME | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE, + 0, 0, 300, 315, NULL, LoadMenu(hAppInstance, MAKEINTRESOURCE(IDM_MAINMENU)), @@ -805,6 +822,7 @@ { MSG Msg; int Ret = 1; + INITCOMMONCONTROLSEX Controls; UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpszCmdLine); @@ -823,7 +841,10 @@ lpAppTitle = NULL; } - InitCommonControls(); + Controls.dwSize = sizeof(INITCOMMONCONTROLSEX); + Controls.dwICC = ICC_BAR_CLASSES | ICC_STANDARD_CLASSES; + + InitCommonControlsEx(&Controls); if (RegisterApplicationClasses()) { Modified: trunk/reactos/base/applications/sndvol32/sndvol32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/sndvol32.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/sndvol32.h [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -9,6 +9,7 @@ #include <tchar.h> #include <string.h> #include "resources.h" +#include <assert.h> typedef struct _MIXER_WINDOW { @@ -16,6 +17,10 @@ HWND hStatusBar; struct _SND_MIXER *Mixer; UINT SelectedLine; + UINT WindowCount; + HWND * Window; + + } MIXER_WINDOW, *PMIXER_WINDOW; extern HINSTANCE hAppInstance; @@ -26,7 +31,8 @@ #define SZ_APP_CLASS TEXT("Volume Control") ULONG DbgPrint(PCH , ...); -#define DPRINT DbgPrint("SNDVOL32: %s:%i: ", __FILE__, __LINE__); DbgPrint +#define DPRINT +//DbgPrint("SNDVOL32: %s:%i: ", __FILE__, __LINE__); DbgPrint /* @@ -61,6 +67,24 @@ PSND_MIXER_DESTINATION Lines; } SND_MIXER, *PSND_MIXER; +typedef struct _PREFERENCES_CONTEXT +{ + PMIXER_WINDOW MixerWindow; + PSND_MIXER Mixer; + HWND hwndDlg; + + UINT Selected; + DWORD SelectedLine; + DWORD PlaybackID; + DWORD RecordingID; + UINT OtherLines; + TCHAR DeviceName[128]; + + DWORD Count; + DWORD tmp; +} PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT; + + typedef BOOL (CALLBACK *PFNSNDMIXENUMLINES)(PSND_MIXER Mixer, LPMIXERLINE Line, UINT DisplayControls, PVOID Context); typedef BOOL (CALLBACK *PFNSNDMIXENUMCONNECTIONS)(PSND_MIXER Mixer, DWORD LineID, LPMIXERLINE Line, PVOID Context); typedef BOOL (CALLBACK *PFNSNDMIXENUMPRODUCTS)(PSND_MIXER Mixer, UINT Id, LPCTSTR ProductName, PVOID Context); @@ -77,6 +101,12 @@ BOOL SndMixerEnumLines(PSND_MIXER Mixer, PFNSNDMIXENUMLINES EnumProc, PVOID Context); BOOL SndMixerEnumConnections(PSND_MIXER Mixer, DWORD LineID, PFNSNDMIXENUMCONNECTIONS EnumProc, PVOID Context); BOOL SndMixerIsDisplayControl(PSND_MIXER Mixer, LPMIXERCONTROL Control); + +/* + * dialog.c + */ +VOID +LoadDialogCtrls(PPREFERENCES_CONTEXT PrefContext); /* * MISC Modified: trunk/reactos/base/applications/sndvol32/sndvol32.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
============================================================================== --- trunk/reactos/base/applications/sndvol32/sndvol32.rbuild [iso-8859-1] (original) +++ trunk/reactos/base/applications/sndvol32/sndvol32.rbuild [iso-8859-1] Wed Apr 6 21:05:05 2011 @@ -11,6 +11,7 @@ <library>shell32</library> <library>winmm</library> <pch>sndvol32.h</pch> + <file>dialog.c</file> <file>misc.c</file> <file>mixer.c</file> <file>sndvol32.c</file>
13 years, 8 months
1
0
0
0
[fireball] 51270: [KERNEL32] - Rewrite most of kernel32 module loading APIs (except for LoadLibraryExW, for testing purposes it's gonna be committed in a separate commit). Rewritten parts include: ...
by fireball@svn.reactos.org
Author: fireball Date: Wed Apr 6 19:03:20 2011 New Revision: 51270 URL:
http://svn.reactos.org/svn/reactos?rev=51270&view=rev
Log: [KERNEL32] - Rewrite most of kernel32 module loading APIs (except for LoadLibraryExW, for testing purposes it's gonna be committed in a separate commit). Rewritten parts include: * Better definition of LOADPARMS32 structure for LoadModule, and rewritten LoadModule which is now a well structured function with proper parameters validation, proper work algorithm and setting proper last error values in failure cases. Optimization of allocating MAX_PATH buffer on stack instead of in the heap is saved from the old version of the function. * LoadLibraryA, added a path-hack (present at least up to Windows 2003) for twain_32.dll loading (not that important, but still a compatibility issue). * Make GetProcAddress() use BasepMapModuleHandle for mapping the passed-in handle (including properly handling NULL module handle which was incorrectly handled by the old implementation), and check for a special failure case when LdrGetProcedureAddress returns pointer to the image base address. Modified: trunk/reactos/dll/win32/kernel32/misc/ldr.c Modified: trunk/reactos/dll/win32/kernel32/misc/ldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/ld…
============================================================================== --- trunk/reactos/dll/win32/kernel32/misc/ldr.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/misc/ldr.c [iso-8859-1] Wed Apr 6 19:03:20 2011 @@ -15,7 +15,8 @@ typedef struct tagLOADPARMS32 { LPSTR lpEnvAddress; LPSTR lpCmdLine; - LPSTR lpCmdShow; + WORD wMagicValue; + WORD wCmdShow; DWORD dwReserved; } LOADPARMS32; @@ -167,12 +168,17 @@ { NTSTATUS Status; + /* Disable thread library calls */ Status = LdrDisableThreadCalloutsForDll((PVOID)hLibModule); + + /* If it wasn't success - set last error and return failure */ if (!NT_SUCCESS(Status)) { BaseSetLastNTError(Status); return FALSE; } + + /* Return success */ return TRUE; } @@ -182,43 +188,74 @@ */ HINSTANCE WINAPI -LoadLibraryA ( - LPCSTR lpLibFileName - ) -{ - return LoadLibraryExA (lpLibFileName, 0, 0); -} - +LoadLibraryA(LPCSTR lpLibFileName) +{ + LPSTR PathBuffer; + UINT Len; + HINSTANCE Result; + + /* Treat twain_32.dll in a special way (what a surprise...) */ + if (lpLibFileName && !_strcmpi(lpLibFileName, "twain_32.dll")) + { + /* Allocate space for the buffer */ + PathBuffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, MAX_PATH); + if (PathBuffer) + { + /* Get windows dir in this buffer */ + Len = GetWindowsDirectoryA(PathBuffer, MAX_PATH - 13); /* 13 is sizeof of '\\twain_32.dll' */ + if (Len && Len < (MAX_PATH - 13)) + { + /* We successfully got windows directory. Concatenate twain_32.dll to it */ + strncat(PathBuffer, "\\twain_32.dll", 13); + + /* And recursively call ourselves with a new string */ + Result = LoadLibraryA(PathBuffer); + + /* If it was successful - free memory and return result */ + if (Result) + { + RtlFreeHeap(RtlGetProcessHeap(), 0, PathBuffer); + return Result; + } + } + + /* Free allocated buffer */ + RtlFreeHeap(RtlGetProcessHeap(), 0, PathBuffer); + } + } + + /* Call the Ex version of the API */ + return LoadLibraryExA(lpLibFileName, 0, 0); +} /* * @implemented */ HINSTANCE WINAPI -LoadLibraryExA( - LPCSTR lpLibFileName, - HANDLE hFile, - DWORD dwFlags) -{ - PUNICODE_STRING FileNameW; - +LoadLibraryExA(LPCSTR lpLibFileName, + HANDLE hFile, + DWORD dwFlags) +{ + PUNICODE_STRING FileNameW; + + /* Convert file name to unicode */ if (!(FileNameW = Basep8BitStringToStaticUnicodeString(lpLibFileName))) return NULL; + /* And call W version of the API */ return LoadLibraryExW(FileNameW->Buffer, hFile, dwFlags); } - /* * @implemented */ HINSTANCE WINAPI -LoadLibraryW ( - LPCWSTR lpLibFileName - ) -{ - return LoadLibraryExW (lpLibFileName, 0, 0); +LoadLibraryW(LPCWSTR lpLibFileName) +{ + /* Call Ex version of the API */ + return LoadLibraryExW (lpLibFileName, 0, 0); } @@ -364,42 +401,56 @@ */ FARPROC WINAPI -GetProcAddress( HMODULE hModule, LPCSTR lpProcName ) -{ - ANSI_STRING ProcedureName; - FARPROC fnExp = NULL; - NTSTATUS Status; - - if (!hModule) - { - SetLastError(ERROR_PROC_NOT_FOUND); - return NULL; - } - - if (HIWORD(lpProcName) != 0) - { - RtlInitAnsiString (&ProcedureName, - (LPSTR)lpProcName); - Status = LdrGetProcedureAddress ((PVOID)hModule, - &ProcedureName, - 0, - (PVOID*)&fnExp); - } - else - { - Status = LdrGetProcedureAddress ((PVOID)hModule, - NULL, - (ULONG)lpProcName, - (PVOID*)&fnExp); - } - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - fnExp = NULL; - } - - return fnExp; +GetProcAddress(HMODULE hModule, LPCSTR lpProcName) +{ + ANSI_STRING ProcedureName, *ProcNamePtr = NULL; + FARPROC fnExp = NULL; + NTSTATUS Status; + PVOID hMapped; + ULONG Ordinal = 0; + + if (HIWORD(lpProcName) != 0) + { + /* Look up by name */ + RtlInitAnsiString(&ProcedureName, (LPSTR)lpProcName); + ProcNamePtr = &ProcedureName; + } + else + { + /* Look up by ordinal */ + Ordinal = (ULONG)lpProcName; + } + + /* Map provided handle */ + hMapped = BasepMapModuleHandle(hModule, FALSE); + + /* Get the proc address */ + Status = LdrGetProcedureAddress(hMapped, + ProcNamePtr, + Ordinal, + (PVOID*)&fnExp); + + if (!NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return NULL; + } + + /* Check for a special case when returned pointer is + the same as iamge's base address */ + if (fnExp == hMapped) + { + /* Set correct error code */ + if (HIWORD(lpProcName) != 0) + BaseSetLastNTError(STATUS_ENTRYPOINT_NOT_FOUND); + else + BaseSetLastNTError(STATUS_ORDINAL_NOT_FOUND); + + return NULL; + } + + /* All good, return procedure pointer */ + return fnExp; } @@ -906,87 +957,137 @@ */ DWORD WINAPI -LoadModule ( - LPCSTR lpModuleName, - LPVOID lpParameterBlock - ) -{ - STARTUPINFOA StartupInfo; - PROCESS_INFORMATION ProcessInformation; - LOADPARMS32 *LoadParams; - char FileName[MAX_PATH]; - char *CommandLine, *t; - BYTE Length; - - LoadParams = (LOADPARMS32*)lpParameterBlock; - if(!lpModuleName || !LoadParams || (((WORD*)LoadParams->lpCmdShow)[0] != 2)) - { - /* windows doesn't check parameters, we do */ - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } - - if(!SearchPathA(NULL, lpModuleName, ".exe", MAX_PATH, FileName, NULL) && - !SearchPathA(NULL, lpModuleName, NULL, MAX_PATH, FileName, NULL)) - { - return ERROR_FILE_NOT_FOUND; - } - - Length = (BYTE)LoadParams->lpCmdLine[0]; - if(!(CommandLine = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, - strlen(lpModuleName) + Length + 2))) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - /* Create command line string */ - strcpy(CommandLine, lpModuleName); - t = CommandLine + strlen(CommandLine); - *(t++) = ' '; - memcpy(t, LoadParams->lpCmdLine + 1, Length); - - /* Build StartupInfo */ - RtlZeroMemory(&StartupInfo, sizeof(STARTUPINFOA)); - StartupInfo.cb = sizeof(STARTUPINFOA); - StartupInfo.dwFlags = STARTF_USESHOWWINDOW; - StartupInfo.wShowWindow = ((WORD*)LoadParams->lpCmdShow)[1]; - - if(!CreateProcessA(FileName, CommandLine, NULL, NULL, FALSE, 0, LoadParams->lpEnvAddress, - NULL, &StartupInfo, &ProcessInformation)) - { - DWORD Error; - - RtlFreeHeap(RtlGetProcessHeap(), 0, CommandLine); - /* return the right value */ - Error = GetLastError(); - switch(Error) - { - case ERROR_BAD_EXE_FORMAT: - { - return ERROR_BAD_FORMAT; - } - case ERROR_FILE_NOT_FOUND: - case ERROR_PATH_NOT_FOUND: - { - return Error; - } - } - return 0; - } - - RtlFreeHeap(RtlGetProcessHeap(), 0, CommandLine); - - /* Wait up to 15 seconds for the process to become idle */ - if (NULL != lpfnGlobalRegisterWaitForInputIdle) - { - lpfnGlobalRegisterWaitForInputIdle(ProcessInformation.hProcess, 15000); - } - - NtClose(ProcessInformation.hThread); - NtClose(ProcessInformation.hProcess); - - return 33; +LoadModule(LPCSTR lpModuleName, + LPVOID lpParameterBlock) +{ + STARTUPINFOA StartupInfo; + PROCESS_INFORMATION ProcessInformation; + LOADPARMS32 *LoadParams; + char FileName[MAX_PATH]; + LPSTR CommandLine; + DWORD Length, Error; + BOOL ProcessStatus; + ANSI_STRING AnsiStr; + UNICODE_STRING UnicStr; + RTL_PATH_TYPE PathType; + HANDLE Handle; + + LoadParams = (LOADPARMS32*)lpParameterBlock; + + /* Check load parameters */ + if (LoadParams->dwReserved || LoadParams->wMagicValue != 2) + { + /* Fail with invalid param error */ + BaseSetLastNTError(STATUS_INVALID_PARAMETER); + return 0; + } + + /* Search path */ + Length = SearchPathA(NULL, lpModuleName, ".exe", MAX_PATH, FileName, NULL); + + /* Check if path was found */ + if (Length && Length < MAX_PATH) + { + /* Build StartupInfo */ + RtlZeroMemory(&StartupInfo, sizeof(StartupInfo)); + + StartupInfo.cb = sizeof(STARTUPINFOA); + StartupInfo.dwFlags = STARTF_USESHOWWINDOW; + StartupInfo.wShowWindow = LoadParams->wCmdShow; + + /* Allocate command line buffer */ + CommandLine = RtlAllocateHeap(RtlGetProcessHeap(), + HEAP_ZERO_MEMORY, + (ULONG)LoadParams->lpCmdLine[0] + Length + 2); + + /* Put module name there, then a space, and then copy provided command line, + and null-terminate it */ + RtlCopyMemory(CommandLine, FileName, Length); + CommandLine[Length] = ' '; + RtlCopyMemory(&CommandLine[Length + 1], &LoadParams->lpCmdLine[1], (ULONG)LoadParams->lpCmdLine[0]); + CommandLine[Length + 1 + (ULONG)LoadParams->lpCmdLine[0]] = 0; + + /* Create the process */ + ProcessStatus = CreateProcessA(FileName, + CommandLine, + NULL, + NULL, + FALSE, + 0, + LoadParams->lpEnvAddress, + NULL, + &StartupInfo, + &ProcessInformation); + + /* Free the command line buffer */ + RtlFreeHeap(RtlGetProcessHeap(), 0, CommandLine); + + if (!ProcessStatus) + { + /* Creating process failed, return right error code */ + Error = GetLastError(); + switch(Error) + { + case ERROR_BAD_EXE_FORMAT: + return ERROR_BAD_FORMAT; + + case ERROR_FILE_NOT_FOUND: + case ERROR_PATH_NOT_FOUND: + return Error; + } + + /* Return 0 otherwise */ + return 0; + } + + /* Wait up to 30 seconds for the process to become idle */ + if (lpfnGlobalRegisterWaitForInputIdle) + { + lpfnGlobalRegisterWaitForInputIdle(ProcessInformation.hProcess, 30000); + } + + /* Close handles */ + NtClose(ProcessInformation.hThread); + NtClose(ProcessInformation.hProcess); + + /* Return magic success value (33) */ + return 33; + } + + /* The path was not found, create an ansi string from + the module name and convert it to unicode */ + RtlInitAnsiString(&AnsiStr, lpModuleName); + if (!NT_SUCCESS(RtlAnsiStringToUnicodeString(&UnicStr,&AnsiStr,TRUE))) + return ERROR_FILE_NOT_FOUND; + + /* Determine path type */ + PathType = RtlDetermineDosPathNameType_U(UnicStr.Buffer); + + /* Free the unicode module name */ + RtlFreeUnicodeString(&UnicStr); + + /* If it's a relative path, return file not found */ + if (PathType == RtlPathTypeRelative) + return ERROR_FILE_NOT_FOUND; + + /* If not, try to open it */ + Handle = CreateFile(lpModuleName, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (Handle != INVALID_HANDLE_VALUE) + { + /* Opening file succeeded for some reason, close the handle and return file not found anyway */ + CloseHandle(Handle); + return ERROR_FILE_NOT_FOUND; + } + + /* Return last error which CreateFile set during an attempt to open it */ + return GetLastError(); } /* EOF */
13 years, 8 months
1
0
0
0
[tkreuzer] 51269: [RPCRT4] Fix return type of *ClientCall functions. Merged from cmake branch
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 6 18:49:16 2011 New Revision: 51269 URL:
http://svn.reactos.org/svn/reactos?rev=51269&view=rev
Log: [RPCRT4] Fix return type of *ClientCall functions. Merged from cmake branch Modified: trunk/reactos/dll/win32/rpcrt4/cproxy.c trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c trunk/reactos/include/psdk/rpcndr.h Modified: trunk/reactos/dll/win32/rpcrt4/cproxy.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/cproxy.c?…
============================================================================== --- trunk/reactos/dll/win32/rpcrt4/cproxy.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/rpcrt4/cproxy.c [iso-8859-1] Wed Apr 6 18:49:16 2011 @@ -17,7 +17,7 @@ * 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 - * + * * TODO: Handle non-i386 architectures */ @@ -96,7 +96,7 @@ args[0] = *(const WORD*)(fs + 8); TRACE("(%p)->(%d)([%d bytes]) ret=%08x\n", iface, index, args[0], args[1]); - return NdrClientCall2(stubless->pStubDesc, fs, args + 2); + return NdrClientCall2(stubless->pStubDesc, fs, args + 2).Simple; } #define BLOCK_SIZE 1024 Modified: trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/ndr_stubl…
============================================================================== --- trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] Wed Apr 6 18:49:16 2011 @@ -510,7 +510,7 @@ } else { - const NDR_PARAM_OI_OTHER *pParamOther = + const NDR_PARAM_OI_OTHER *pParamOther = (const NDR_PARAM_OI_OTHER *)&pFormat[current_offset]; const unsigned char *pTypeFormat = @@ -548,10 +548,7 @@ } } -/* the return type should be CLIENT_CALL_RETURN, but this is incompatible - * with the way gcc returns structures. "void *" should be the largest type - * that MIDL should allow you to return anyway */ -LONG_PTR WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...) +CLIENT_CALL_RETURN WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...) { /* pointer to start of stack where arguments start */ RPC_MESSAGE rpcMsg; @@ -574,7 +571,7 @@ /* -Oif or -Oicf generated format */ BOOL bV2Format = FALSE; /* the value to return to the client from the remote procedure */ - LONG_PTR RetVal = 0; + CLIENT_CALL_RETURN RetVal = {0}; /* the pointer to the object when in OLE mode */ void * This = NULL; PFORMAT_STRING pHandleFormat; @@ -630,7 +627,7 @@ if (!(pProcHeader->Oi_flags & RPC_FC_PROC_OIF_OBJECT)) { pFormat = client_get_handle(&stubMsg, pProcHeader, pHandleFormat, &hBinding); - if (!pFormat) return 0; + if (!pFormat) return RetVal; } bV2Format = (pStubDesc->Version >= 0x20000); @@ -729,7 +726,7 @@ } __EXCEPT_ALL { - RetVal = NdrProxyErrorHandler(GetExceptionCode()); + RetVal.Simple = NdrProxyErrorHandler(GetExceptionCode()); } __ENDTRY } @@ -830,7 +827,7 @@ client_free_handle(&stubMsg, pProcHeader, pHandleFormat, hBinding); } - TRACE("RetVal = 0x%lx\n", RetVal); + TRACE("RetVal = 0x%p\n", RetVal.Pointer); return RetVal; } @@ -1465,7 +1462,7 @@ pRpcMsg->BufferLength = stubMsg.BufferLength; /* allocate buffer for [out] and [ret] params */ - Status = I_RpcGetBuffer(pRpcMsg); + Status = I_RpcGetBuffer(pRpcMsg); if (Status) RpcRaiseException(Status); stubMsg.Buffer = pRpcMsg->Buffer; Modified: trunk/reactos/include/psdk/rpcndr.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/rpcndr.h?rev=…
============================================================================== --- trunk/reactos/include/psdk/rpcndr.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/rpcndr.h [iso-8859-1] Wed Apr 6 18:49:16 2011 @@ -650,15 +650,13 @@ RPCRTAPI unsigned char* RPC_ENTRY NdrUserMarshalSimpleTypeConvert( ULONG *pFlags, unsigned char *pBuffer, unsigned char FormatChar ); -/* Note: this should return a CLIENT_CALL_RETURN, but calling convention for - * returning structures/unions is different between Windows and gcc on i386. */ -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); RPCRTAPI void RPC_ENTRY
13 years, 8 months
1
0
0
0
[akhaldi] 51268: [CMAKE] * Sync to trunk r51266.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Apr 6 16:00:24 2011 New Revision: 51268 URL:
http://svn.reactos.org/svn/reactos?rev=51268&view=rev
Log: [CMAKE] * Sync to trunk r51266. Added: branches/cmake-bringup/base/applications/rapps/rapps/doublecommander.txt - copied unchanged from r51267, trunk/reactos/base/applications/rapps/rapps/doublecommander.txt branches/cmake-bringup/include/reactos/libs/fullfat/ff_fatdef.h - copied unchanged from r51267, trunk/reactos/include/reactos/libs/fullfat/ff_fatdef.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_format.h - copied unchanged from r51267, trunk/reactos/include/reactos/libs/fullfat/ff_format.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_unicode.h - copied unchanged from r51267, trunk/reactos/include/reactos/libs/fullfat/ff_unicode.h branches/cmake-bringup/lib/3rdparty/fullfat/ff_format.c - copied unchanged from r51267, trunk/reactos/lib/3rdparty/fullfat/ff_format.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_unicode.c - copied unchanged from r51267, trunk/reactos/lib/3rdparty/fullfat/ff_unicode.c Removed: branches/cmake-bringup/base/applications/rapps/rapps/go-oo.txt branches/cmake-bringup/base/applications/rapps/rapps/vc2005run.txt branches/cmake-bringup/base/applications/rapps/rapps/vc2008run.txt branches/cmake-bringup/lib/3rdparty/fullfat/ff_dir.h Modified: branches/cmake-bringup/ (props changed) branches/cmake-bringup/base/applications/mscutils/servman/lang/pl-PL.rc branches/cmake-bringup/base/applications/network/ping/ping.c branches/cmake-bringup/base/applications/rapps/rapps/comctl32ocx.txt branches/cmake-bringup/base/applications/rapps/rapps/firefox36.txt branches/cmake-bringup/base/applications/rapps/rapps/libreoffice.txt branches/cmake-bringup/base/applications/rapps/rapps/mfc40.txt branches/cmake-bringup/base/applications/rapps/rapps/mirandaim.txt branches/cmake-bringup/base/applications/rapps/rapps/msxml3.txt branches/cmake-bringup/base/applications/rapps/rapps/scite.txt branches/cmake-bringup/base/applications/rapps/rapps/seamonkey.txt branches/cmake-bringup/base/applications/rapps/rapps/tahoma.txt branches/cmake-bringup/base/applications/rapps/rapps/vb5run.txt branches/cmake-bringup/base/applications/rapps/rapps/vb6run.txt branches/cmake-bringup/base/applications/rapps/rapps/vc2005sp1run.txt branches/cmake-bringup/base/applications/rapps/rapps/vc2008sp1run.txt branches/cmake-bringup/base/applications/rapps/rapps/vc6run.txt branches/cmake-bringup/base/applications/rapps/rapps/vlc.txt branches/cmake-bringup/base/applications/sndvol32/mixer.c branches/cmake-bringup/base/shell/cmd/dir.c branches/cmake-bringup/base/shell/cmd/lang/ru-RU.rc branches/cmake-bringup/base/shell/explorer/explorer-pl.rc branches/cmake-bringup/base/system/services/config.c branches/cmake-bringup/dll/cpl/desk/lang/pl-PL.rc branches/cmake-bringup/dll/cpl/usrmgr/groupprops.c branches/cmake-bringup/dll/cpl/usrmgr/groups.c branches/cmake-bringup/dll/cpl/usrmgr/userprops.c branches/cmake-bringup/dll/cpl/usrmgr/users.c branches/cmake-bringup/dll/ntdll/def/ntdll.spec branches/cmake-bringup/dll/ntdll/ldr/ldrapi.c branches/cmake-bringup/dll/ntdll/ldr/ldrinit.c branches/cmake-bringup/dll/ntdll/ldr/utils.c branches/cmake-bringup/dll/ntdll/rtl/libsupp.c branches/cmake-bringup/dll/win32/advapi32/reg/reg.c branches/cmake-bringup/dll/win32/advapi32/sec/lsa.c branches/cmake-bringup/dll/win32/gdi32/misc/misc.c branches/cmake-bringup/dll/win32/gdi32/objects/brush.c branches/cmake-bringup/dll/win32/gdi32/objects/pen.c branches/cmake-bringup/dll/win32/kernel32/file/curdir.c branches/cmake-bringup/dll/win32/kernel32/file/dir.c branches/cmake-bringup/dll/win32/kernel32/include/kernel32.h branches/cmake-bringup/dll/win32/kernel32/misc/console.c branches/cmake-bringup/dll/win32/kernel32/misc/dllmain.c branches/cmake-bringup/dll/win32/kernel32/misc/ldr.c branches/cmake-bringup/dll/win32/kernel32/process/procsup.c branches/cmake-bringup/dll/win32/lsasrv/lsarpc.c branches/cmake-bringup/dll/win32/shell32/lang/pl-PL.rc branches/cmake-bringup/dll/win32/shell32/shlfileop.c branches/cmake-bringup/dll/win32/syssetup/wizard.c branches/cmake-bringup/dll/win32/user32/misc/display.c branches/cmake-bringup/dll/win32/user32/windows/class.c branches/cmake-bringup/dll/win32/user32/windows/cursoricon.c branches/cmake-bringup/dll/win32/user32/windows/draw.c branches/cmake-bringup/dll/win32/user32/windows/input.c branches/cmake-bringup/dll/win32/user32/windows/menu.c branches/cmake-bringup/dll/win32/user32/windows/message.c branches/cmake-bringup/dll/win32/user32/windows/paint.c branches/cmake-bringup/include/ndk/ldrfuncs.h branches/cmake-bringup/include/ndk/ldrtypes.h branches/cmake-bringup/include/ndk/rtltypes.h branches/cmake-bringup/include/psdk/iphlpapi.h branches/cmake-bringup/include/psdk/ksmedia.h branches/cmake-bringup/include/psdk/winbase.h branches/cmake-bringup/include/reactos/idl/lsa.idl branches/cmake-bringup/include/reactos/libs/fullfat/ff_config.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_crc.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_dir.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_error.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_fat.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_file.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_ioman.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_memory.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_string.h branches/cmake-bringup/include/reactos/libs/fullfat/ff_types.h branches/cmake-bringup/include/reactos/libs/fullfat/fullfat.h branches/cmake-bringup/include/reactos/win32k/ntuser.h branches/cmake-bringup/lib/3rdparty/fullfat/ff_crc.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_dir.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_error.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_fat.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_file.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_hash.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_ioman.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_memory.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_safety.c branches/cmake-bringup/lib/3rdparty/fullfat/ff_string.c branches/cmake-bringup/lib/rtl/image.c branches/cmake-bringup/ntoskrnl/ke/apc.c branches/cmake-bringup/ntoskrnl/mm/ARM3/sysldr.c branches/cmake-bringup/ntoskrnl/mm/section.c branches/cmake-bringup/subsystems/win32/win32k/eng/device.c branches/cmake-bringup/subsystems/win32/win32k/include/focus.h branches/cmake-bringup/subsystems/win32/win32k/include/gdiobj.h branches/cmake-bringup/subsystems/win32/win32k/include/monitor.h branches/cmake-bringup/subsystems/win32/win32k/include/msgqueue.h branches/cmake-bringup/subsystems/win32/win32k/include/window.h branches/cmake-bringup/subsystems/win32/win32k/main/dllmain.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/class.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/display.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/focus.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/message.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/misc.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/monitor.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/msgqueue.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/ntstubs.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/painting.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/simplecall.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/window.c branches/cmake-bringup/subsystems/win32/win32k/ntuser/winpos.c branches/cmake-bringup/subsystems/win32/win32k/objects/brush.c branches/cmake-bringup/subsystems/win32/win32k/objects/dclife.c branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c branches/cmake-bringup/subsystems/win32/win32k/objects/region.c branches/cmake-bringup/tools/widl/parser.tab.c branches/cmake-bringup/tools/widl/parser.y [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/cmake-bringup/base/applications/mscutils/servman/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/network/ping/ping.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/comctl32ocx.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/firefox36.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Removed: branches/cmake-bringup/base/applications/rapps/rapps/go-oo.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/libreoffice.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/mfc40.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/mirandaim.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/msxml3.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/scite.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/seamonkey.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/tahoma.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vb5run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vb6run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Removed: branches/cmake-bringup/base/applications/rapps/rapps/vc2005run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vc2005sp1run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Removed: branches/cmake-bringup/base/applications/rapps/rapps/vc2008run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vc2008sp1run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vc6run.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/rapps/rapps/vlc.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/applications/sndvol32/mixer.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/applications…
Modified: branches/cmake-bringup/base/shell/cmd/dir.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/shell/cmd/di…
Modified: branches/cmake-bringup/base/shell/cmd/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/shell/cmd/la…
Modified: branches/cmake-bringup/base/shell/explorer/explorer-pl.rc URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/shell/explor…
Modified: branches/cmake-bringup/base/system/services/config.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/system/servi…
Modified: branches/cmake-bringup/dll/cpl/desk/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/cpl/desk/lang…
Modified: branches/cmake-bringup/dll/cpl/usrmgr/groupprops.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/cpl/usrmgr/gr…
Modified: branches/cmake-bringup/dll/cpl/usrmgr/groups.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/cpl/usrmgr/gr…
Modified: branches/cmake-bringup/dll/cpl/usrmgr/userprops.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/cpl/usrmgr/us…
Modified: branches/cmake-bringup/dll/cpl/usrmgr/users.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/cpl/usrmgr/us…
Modified: branches/cmake-bringup/dll/ntdll/def/ntdll.spec URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/def/ntd…
Modified: branches/cmake-bringup/dll/ntdll/ldr/ldrapi.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/ldr/ldr…
Modified: branches/cmake-bringup/dll/ntdll/ldr/ldrinit.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/ldr/ldr…
Modified: branches/cmake-bringup/dll/ntdll/ldr/utils.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/ldr/uti…
Modified: branches/cmake-bringup/dll/ntdll/rtl/libsupp.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/ntdll/rtl/lib…
Modified: branches/cmake-bringup/dll/win32/advapi32/reg/reg.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/advapi3…
Modified: branches/cmake-bringup/dll/win32/advapi32/sec/lsa.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/advapi3…
Modified: branches/cmake-bringup/dll/win32/gdi32/misc/misc.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/gdi32/m…
Modified: branches/cmake-bringup/dll/win32/gdi32/objects/brush.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/gdi32/o…
Modified: branches/cmake-bringup/dll/win32/gdi32/objects/pen.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/gdi32/o…
Modified: branches/cmake-bringup/dll/win32/kernel32/file/curdir.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/file/dir.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/include/kernel32.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/misc/console.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/misc/dllmain.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/misc/ldr.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/kernel32/process/procsup.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/kernel3…
Modified: branches/cmake-bringup/dll/win32/lsasrv/lsarpc.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/lsasrv/…
Modified: branches/cmake-bringup/dll/win32/shell32/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/shell32…
Modified: branches/cmake-bringup/dll/win32/shell32/shlfileop.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/shell32…
Modified: branches/cmake-bringup/dll/win32/syssetup/wizard.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/syssetu…
Modified: branches/cmake-bringup/dll/win32/user32/misc/display.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/class.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/draw.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/input.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/menu.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/message.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/dll/win32/user32/windows/paint.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/user32/…
Modified: branches/cmake-bringup/include/ndk/ldrfuncs.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/ndk/ldrfu…
Modified: branches/cmake-bringup/include/ndk/ldrtypes.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/ndk/ldrty…
Modified: branches/cmake-bringup/include/ndk/rtltypes.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/ndk/rtlty…
Modified: branches/cmake-bringup/include/psdk/iphlpapi.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/psdk/iphl…
Modified: branches/cmake-bringup/include/psdk/ksmedia.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/psdk/ksme…
Modified: branches/cmake-bringup/include/psdk/winbase.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/psdk/winb…
Modified: branches/cmake-bringup/include/reactos/idl/lsa.idl URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/i…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_config.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_crc.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_dir.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_error.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_fat.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_file.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_ioman.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_memory.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_string.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/ff_types.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/libs/fullfat/fullfat.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
Modified: branches/cmake-bringup/include/reactos/win32k/ntuser.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/w…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_crc.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_dir.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Removed: branches/cmake-bringup/lib/3rdparty/fullfat/ff_dir.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_error.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_fat.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_file.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_hash.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_ioman.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_memory.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_safety.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/3rdparty/fullfat/ff_string.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/3rdparty/full…
Modified: branches/cmake-bringup/lib/rtl/image.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/image.c?r…
Modified: branches/cmake-bringup/ntoskrnl/ke/apc.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/ke/apc.c…
Modified: branches/cmake-bringup/ntoskrnl/mm/ARM3/sysldr.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/mm/ARM3/…
Modified: branches/cmake-bringup/ntoskrnl/mm/section.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/mm/secti…
Modified: branches/cmake-bringup/subsystems/win32/win32k/eng/device.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/include/focus.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/include/gdiobj.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/include/monitor.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/include/msgqueue.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/include/window.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/main/dllmain.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/class.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/display.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/focus.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/message.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/misc.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/monitor.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/msgqueue.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/ntstubs.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/painting.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/simplecall.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/window.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/ntuser/winpos.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/objects/brush.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/objects/dclife.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/subsystems/win32/win32k/objects/region.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
Modified: branches/cmake-bringup/tools/widl/parser.tab.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/tools/widl/parser…
Modified: branches/cmake-bringup/tools/widl/parser.y URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/tools/widl/parser…
13 years, 8 months
1
0
0
0
[jgardou] 51267: [CMAKE] RosTests : buildno_header is no longer a valid target
by jgardou@svn.reactos.org
Author: jgardou Date: Wed Apr 6 13:28:32 2011 New Revision: 51267 URL:
http://svn.reactos.org/svn/reactos?rev=51267&view=rev
Log: [CMAKE] RosTests : buildno_header is no longer a valid target Modified: trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/CMakeLists.txt trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/CMakeLists.txt trunk/rostests/apitests/w32kdll/w32kdll_ros/CMakeLists.txt trunk/rostests/apitests/w32kdll/w32kdll_vista/CMakeLists.txt trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/CMakeLists.txt Modified: trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/CMakeLists.txt [iso-8859-1] Wed Apr 6 13:28:32 2011 @@ -2,5 +2,5 @@ add_library(w32kdll_2k3sp2 SHARED main.c w32kdll_2k3sp2.S) set_entrypoint(w32kdll_2k3sp2 0) target_link_libraries(w32kdll_2k3sp2 ${CMAKE_CURRENT_SOURCE_DIR}/w32kdll_2k3sp2.def) -add_dependencies(w32kdll_2k3sp2 psdk buildno_header) +add_dependencies(w32kdll_2k3sp2 psdk ) add_importlib_target(w32kdll_2k3sp2.def) Modified: trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/CMakeLists.txt [iso-8859-1] Wed Apr 6 13:28:32 2011 @@ -2,5 +2,5 @@ add_library(w32kdll_2ksp4 SHARED main.c w32kdll_2ksp4.S) set_entrypoint(w32kdll_2ksp4 0) target_link_libraries(w32kdll_2ksp4 ${CMAKE_CURRENT_SOURCE_DIR}/w32kdll_2ksp4.def) -add_dependencies(w32kdll_2ksp4 psdk buildno_header) +add_dependencies(w32kdll_2ksp4 psdk ) add_importlib_target(w32kdll_2ksp4.def) Modified: trunk/rostests/apitests/w32kdll/w32kdll_ros/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_ros/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/w32kdll/w32kdll_ros/CMakeLists.txt [iso-8859-1] Wed Apr 6 13:28:32 2011 @@ -7,5 +7,5 @@ ${CMAKE_CURRENT_SOURCE_DIR}/w32kdll_ros.def win32ksys) -add_dependencies(w32kdll psdk buildno_header) +add_dependencies(w32kdll psdk ) add_importlib_target(w32kdll_ros.def) Modified: trunk/rostests/apitests/w32kdll/w32kdll_vista/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_vista/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/w32kdll/w32kdll_vista/CMakeLists.txt [iso-8859-1] Wed Apr 6 13:28:32 2011 @@ -2,5 +2,5 @@ add_library(w32kdll_vista SHARED main.c w32kdll_vista.S) set_entrypoint(w32kdll_vista 0) target_link_libraries(w32kdll_vista ${CMAKE_CURRENT_SOURCE_DIR}/w32kdll_vista.def) -add_dependencies(w32kdll_vista psdk buildno_header) +add_dependencies(w32kdll_vista psdk ) add_importlib_target(w32kdll_vista.def) Modified: trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/CMakeLists.txt [iso-8859-1] Wed Apr 6 13:28:32 2011 @@ -2,5 +2,5 @@ add_library(w32kdll_xpsp2 SHARED main.c w32kdll_xpsp2.S) set_entrypoint(w32kdll_xpsp2 0) target_link_libraries(w32kdll_xpsp2 ${CMAKE_CURRENT_SOURCE_DIR}/w32kdll_xpsp2.def) -add_dependencies(w32kdll_xpsp2 psdk buildno_header) +add_dependencies(w32kdll_xpsp2 psdk ) add_importlib_target(w32kdll_xpsp2.def)
13 years, 8 months
1
0
0
0
[jimtabor] 51266: - Turn on test_capture_4.
by jimtabor@svn.reactos.org
Author: jimtabor Date: Wed Apr 6 12:56:46 2011 New Revision: 51266 URL:
http://svn.reactos.org/svn/reactos?rev=51266&view=rev
Log: - Turn on test_capture_4. Modified: trunk/rostests/winetests/user32/win.c Modified: trunk/rostests/winetests/user32/win.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/win.c?re…
============================================================================== --- trunk/rostests/winetests/user32/win.c [iso-8859-1] (original) +++ trunk/rostests/winetests/user32/win.c [iso-8859-1] Wed Apr 6 12:56:46 2011 @@ -6058,11 +6058,7 @@ test_capture_1(); test_capture_2(); test_capture_3(hwndMain, hwndMain2); - - if(!winetest_interactive) - skip("skipping test_capture_4, that hangs on reactos\n"); - else - test_capture_4(); + test_capture_4(); test_CreateWindow(); test_parent_owner();
13 years, 8 months
1
0
0
0
[jimtabor] 51265: [User32|Win32k] - Pass all the wine test_capture_1/2/3/4. - Fix the menu tracking pop up hang issue by looking for deceased windows that pass on while in the start of tracking. Th...
by jimtabor@svn.reactos.org
Author: jimtabor Date: Wed Apr 6 12:53:52 2011 New Revision: 51265 URL:
http://svn.reactos.org/svn/reactos?rev=51265&view=rev
Log: [User32|Win32k] - Pass all the wine test_capture_1/2/3/4. - Fix the menu tracking pop up hang issue by looking for deceased windows that pass on while in the start of tracking. This could be a fix for other wine tests. - ReactOS is not Linux and wine is not enough! Modified: trunk/reactos/dll/win32/user32/windows/menu.c trunk/reactos/dll/win32/user32/windows/message.c trunk/reactos/subsystems/win32/win32k/include/focus.h trunk/reactos/subsystems/win32/win32k/ntuser/focus.c trunk/reactos/subsystems/win32/win32k/ntuser/message.c trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c Modified: trunk/reactos/dll/win32/user32/windows/menu.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/m…
============================================================================== --- trunk/reactos/dll/win32/user32/windows/menu.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/user32/windows/menu.c [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -1576,6 +1576,11 @@ MenuInfo.FocusedItem = NO_SELECTED_ITEM; } + /* ReactOS Check */ + if (!ValidateHwnd(hwndOwner)) + { // This window maybe already DEAD!!! + return FALSE; + } /* store the owner for DrawItem */ MenuInfo.WndOwner = hwndOwner; MenuSetRosMenuInfo(&MenuInfo); @@ -3208,14 +3213,16 @@ fEndMenu = !fRemove; } + if (wFlags & TF_ENDMENU) fEndMenu = TRUE; + /* owner may not be visible when tracking a popup, so use the menu itself */ capture_win = (wFlags & TPM_POPUPMENU) ? MenuInfo.Wnd : mt.OwnerWnd; (void)NtUserSetGUIThreadHandle(MSQ_STATE_MENUOWNER, capture_win); // 1 SetCapture(capture_win); // 2 - FIXME("MenuTrackMenu 1\n"); while (! fEndMenu) { + BOOL ErrorExit = FALSE; PVOID menu = ValidateHandle(mt.CurrentMenu, VALIDATE_TYPE_MENU); if (!menu) /* sometimes happens if I do a window manager close */ break; @@ -3233,6 +3240,12 @@ } else { + /* ReactOS Check */ + if (!ValidateHwnd(mt.OwnerWnd) || !ValidateHwnd(MenuInfo.Wnd)) + { + ErrorExit = TRUE; // Do not wait on dead windows, now test_capture_4 works. + break; + } if (!enterIdleSent) { HWND win = MenuInfo.Flags & MF_POPUP ? MenuInfo.Wnd : NULL; @@ -3241,8 +3254,9 @@ } WaitMessage(); } - //FIXME("MenuTrackMenu loop 1\n"); - } + } + + if (ErrorExit) break; // Gracefully dropout. /* check if EndMenu() tried to cancel us, by posting this message */ if (msg.message == WM_CANCELMODE) @@ -3449,7 +3463,6 @@ { PeekMessageW( &msg, 0, msg.message, msg.message, PM_REMOVE ); DispatchMessageW( &msg ); - //FIXME("MenuTrackMenu loop 2\n"); continue; } @@ -3460,9 +3473,7 @@ if (fRemove && !(mt.TrackFlags & TF_SKIPREMOVE) ) PeekMessageW( &msg, 0, msg.message, msg.message, PM_REMOVE ); else mt.TrackFlags &= ~TF_SKIPREMOVE; - //FIXME("MenuTrackMenu loop 3\n"); - } - FIXME("MenuTrackMenu 2\n"); + } (void)NtUserSetGUIThreadHandle(MSQ_STATE_MENUOWNER, NULL); SetCapture(NULL); /* release the capture */ @@ -3521,12 +3532,11 @@ HideCaret(0); - MenuGetRosMenuInfo(&MenuInfo, hMenu); /* This makes the menus of applications built with Delphi work. * It also enables menus to be displayed in more than one window, * but there are some bugs left that need to be fixed in this case. */ - if(MenuInfo.Self == hMenu) + if (MenuGetRosMenuInfo(&MenuInfo, hMenu)) { MenuInfo.Wnd = hWnd; MenuSetRosMenuInfo(&MenuInfo); @@ -3658,13 +3668,7 @@ MenuSelectItem( hwnd, &MenuInfo, uItem, TRUE, 0 ); - if (wParam & HTSYSMENU) - { - /* prevent sysmenu activation for managed windows on Alt down/up */ -// if (GetPropA( hwnd, "__wine_x11_managed" )) - wFlags |= TF_ENDMENU; /* schedule end of menu tracking */ - } - else + if (!(wParam & HTSYSMENU) || wChar == ' ') { if( uItem == NO_SELECTED_ITEM ) MenuMoveSelection( hwnd, &MenuInfo, ITEM_NEXT ); @@ -3691,6 +3695,12 @@ { SetLastError( ERROR_INVALID_MENU_HANDLE ); return FALSE; + } + + /* ReactOS Check */ + if (!ValidateHwnd(Wnd)) + { + return FALSE; } MenuGetRosMenuInfo(&MenuInfo, Menu); Modified: trunk/reactos/dll/win32/user32/windows/message.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/m…
============================================================================== --- trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -2380,9 +2380,7 @@ BOOL WINAPI ReleaseCapture(VOID) { - HWND hwndPrev = NtUserSetCapture(NULL); - return(hwndPrev ? TRUE : FALSE); -// return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_RELEASECAPTURE); + return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_RELEASECAPTURE); } Modified: trunk/reactos/subsystems/win32/win32k/include/focus.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/focus.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/focus.h [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -7,6 +7,10 @@ IntGetCaptureWindow(VOID); HWND FASTCALL IntGetFocusWindow(VOID); +HWND FASTCALL +co_UserSetCapture(HWND hWnd); +BOOL FASTCALL +IntReleaseCapture(VOID); /* * These functions take the window handles from current thread queue. Modified: trunk/reactos/subsystems/win32/win32k/ntuser/focus.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/focus.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/focus.c [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -580,15 +580,42 @@ ThreadQueue->CaptureWindow = hWnd; + if (hWnd == NULL) // Release mode. + { + MOUSEINPUT mi; /// These are hacks! - /* also remove other windows if not capturing anymore */ - if (hWnd == NULL) - { + /* also remove other windows if not capturing anymore */ MsqSetStateWindow(ThreadQueue, MSQ_STATE_MENUOWNER, NULL); MsqSetStateWindow(ThreadQueue, MSQ_STATE_MOVESIZE, NULL); - } /// + /* Somebody may have missed some mouse movements */ + mi.dx = 0; + mi.dy = 0; + mi.mouseData = 0; + mi.dwFlags = MOUSEEVENTF_MOVE; + mi.time = 0; + mi.dwExtraInfo = 0; + IntMouseInput(&mi); + } return hWndPrev; +} + +BOOL +FASTCALL +IntReleaseCapture(VOID) +{ + PTHREADINFO pti; + PUSER_MESSAGE_QUEUE ThreadQueue; + + pti = PsGetCurrentThreadWin32Thread(); + ThreadQueue = pti->MessageQueue; + + // Can not release inside WM_CAPTURECHANGED!! + if (ThreadQueue->QF_flags & QF_CAPTURELOCKED) return FALSE; + + co_UserSetCapture(NULL); + + return TRUE; } /* Modified: trunk/reactos/subsystems/win32/win32k/ntuser/message.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -16,7 +16,6 @@ #include <debug.h> BOOLEAN NTAPI PsGetProcessExitProcessCalled(PEPROCESS Process); -HWND FASTCALL co_UserSetCapture(HWND hWnd); #define PM_BADMSGFLAGS ~((QS_RAWINPUT << 16)|PM_QS_SENDMESSAGE|PM_QS_PAINT|PM_QS_POSTMESSAGE|PM_QS_INPUT|PM_NOYIELD|PM_REMOVE) @@ -861,7 +860,6 @@ { SetLastNtError(Status); DPRINT1("Exit co_IntWaitMessage on error!\n"); - return FALSE; } if (Status == STATUS_USER_APC || Status == STATUS_TIMEOUT) Modified: trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c [iso-8859-1] Wed Apr 6 12:53:52 2011 @@ -118,6 +118,9 @@ PTHREADINFO pti = PsGetCurrentThreadWin32Thread(); RETURN( (DWORD_PTR)MAKELONG(pti->ptLast.x, pti->ptLast.y)); } + + case NOPARAM_ROUTINE_RELEASECAPTURE: + RETURN( (DWORD_PTR)IntReleaseCapture()); default: DPRINT1("Calling invalid routine number 0x%x in NtUserCallNoParam\n", Routine); @@ -251,7 +254,6 @@ case ONEPARAM_ROUTINE_GETCURSORPOSITION: { BOOL ret = TRUE; - _SEH2_TRY {
13 years, 8 months
1
0
0
0
[jimtabor] 51264: [Win32k] - The Reak fix to unfocused explorer minimize hang, spotted by R3dDr4g0n <vins8920@hotmail.com>.
by jimtabor@svn.reactos.org
Author: jimtabor Date: Wed Apr 6 12:23:54 2011 New Revision: 51264 URL:
http://svn.reactos.org/svn/reactos?rev=51264&view=rev
Log: [Win32k] - The Reak fix to unfocused explorer minimize hang, spotted by R3dDr4g0n <vins8920(a)hotmail.com>. Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c trunk/reactos/subsystems/win32/win32k/ntuser/window.c Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] Wed Apr 6 12:23:54 2011 @@ -1353,28 +1353,14 @@ co_MsqWaitForNewMessages(PUSER_MESSAGE_QUEUE MessageQueue, PWND WndFilter, UINT MsgFilterMin, UINT MsgFilterMax) { - PTHREADINFO pti; - NTSTATUS ret = STATUS_SUCCESS; - - pti = MessageQueue->Thread->Tcb.Win32Thread; - - while ( co_MsqDispatchOneSentMessage(MessageQueue) ); - - if (pti->pcti->fsWakeBits & pti->pcti->fsChangeBits ) - { - return ret; - } - - pti->pClientInfo->cSpins = 0; - IdlePing(); + NTSTATUS ret; UserLeaveCo(); - ret = KeWaitForSingleObject(MessageQueue->NewMessages, - Executive, - UserMode, - FALSE, - NULL); + ret = KeWaitForSingleObject( MessageQueue->NewMessages, + UserRequest, + UserMode, + FALSE, + NULL ); UserEnterCo(); - IdlePong(); return ret; } Modified: trunk/reactos/subsystems/win32/win32k/ntuser/window.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] Wed Apr 6 12:23:54 2011 @@ -1530,7 +1530,7 @@ if (pWindow->spwndParent && pWindow->spwndParent != UserGetDesktopWindow()) { USER_REFERENCE_ENTRY Ref; - UserRefObjectCo(pWindow->spwndParent, &Ref); // Fix explorer minimize hang. + UserRefObjectCo(pWindow->spwndParent, &Ref); // Should be co_IntSendMessage please retest, Ref to Chg, revision 51254... co_IntSendMessageNoWait( pWindow->spwndParent->head.h, WM_PARENTNOTIFY,
13 years, 8 months
1
0
0
0
[jimtabor] 51263: [Win32k] - Fix to unfocused explorer minimize hang, spotted by R3dDr4g0n <vins8920@hotmail.com>.
by jimtabor@svn.reactos.org
Author: jimtabor Date: Wed Apr 6 01:31:50 2011 New Revision: 51263 URL:
http://svn.reactos.org/svn/reactos?rev=51263&view=rev
Log: [Win32k] - Fix to unfocused explorer minimize hang, spotted by R3dDr4g0n <vins8920(a)hotmail.com>. Modified: trunk/reactos/subsystems/win32/win32k/ntuser/window.c Modified: trunk/reactos/subsystems/win32/win32k/ntuser/window.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/window.c [iso-8859-1] Wed Apr 6 01:31:50 2011 @@ -1529,10 +1529,14 @@ { if (pWindow->spwndParent && pWindow->spwndParent != UserGetDesktopWindow()) { + USER_REFERENCE_ENTRY Ref; + UserRefObjectCo(pWindow->spwndParent, &Ref); // Fix explorer minimize hang. + // Should be co_IntSendMessage please retest, Ref to Chg, revision 51254... co_IntSendMessageNoWait( pWindow->spwndParent->head.h, WM_PARENTNOTIFY, MAKEWPARAM( msg, pWindow->IDMenu), (LPARAM)pWindow->head.h ); + UserDerefObjectCo(pWindow->spwndParent); } } }
13 years, 8 months
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
29
30
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
Results per page:
10
25
50
100
200