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
July 2014
----- 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
9 participants
111 discussions
Start a n
N
ew thread
[hbelusca] 63751: [KERNEL32][CONSRV] Make kernel32 / winsrv console CSR structures Win2k3-compliant. - Fix UNICODE and ANSI versions of the Alias and History APIs. Tested with unicode and ansi vers...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Mon Jul 28 13:20:54 2014 New Revision: 63751 URL:
http://svn.reactos.org/svn/reactos?rev=63751&view=rev
Log: [KERNEL32][CONSRV] Make kernel32 / winsrv console CSR structures Win2k3-compliant. - Fix UNICODE and ANSI versions of the Alias and History APIs. Tested with unicode and ansi version of our doskey.exe - Implement GetNumberOfConsoleMouseButtons. Part 5/X CORE-7931 Modified: branches/condrv_restructure/dll/win32/kernel32/client/console/alias.c branches/condrv_restructure/dll/win32/kernel32/client/console/console.c branches/condrv_restructure/include/reactos/subsys/win/conmsg.h branches/condrv_restructure/win32ss/user/winsrv/consrv/alias.c branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/coninput.c branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c branches/condrv_restructure/win32ss/user/winsrv/consrv/lineinput.c Modified: branches/condrv_restructure/dll/win32/kernel32/client/console/alias.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ke…
============================================================================== --- branches/condrv_restructure/dll/win32/kernel32/client/console/alias.c [iso-8859-1] (original) +++ branches/condrv_restructure/dll/win32/kernel32/client/console/alias.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -18,31 +18,40 @@ /* FUNCTIONS ******************************************************************/ -/* - * @implemented - */ -BOOL -WINAPI -AddConsoleAliasW(LPCWSTR lpSource, - LPCWSTR lpTarget, - LPCWSTR lpExeName) -{ - NTSTATUS Status; +static BOOL +IntAddConsoleAlias(LPCVOID Source, + DWORD SourceBufferLength, + LPCVOID Target, + DWORD TargetBufferLength, + LPCVOID lpExeName, + BOOLEAN bUnicode) +{ CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &ApiMessage.Data.ConsoleAliasRequest; PCSR_CAPTURE_BUFFER CaptureBuffer; ULONG CapturedStrings; - DPRINT("AddConsoleAliasW enterd with lpSource %S lpTarget %S lpExeName %S\n", lpSource, lpTarget, lpExeName); + DWORD dwNumChars = (lpExeName ? (bUnicode ? wcslen(lpExeName) : strlen(lpExeName)) : 0); + + if (lpExeName == NULL || dwNumChars == 0) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + ConsoleAliasRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; /* Determine the needed sizes */ - ConsoleAliasRequest->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR); - ConsoleAliasRequest->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR); + ConsoleAliasRequest->SourceLength = SourceBufferLength; + ConsoleAliasRequest->ExeLength = dwNumChars * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR)); + ConsoleAliasRequest->Unicode = + ConsoleAliasRequest->Unicode2 = bUnicode; + CapturedStrings = 2; - if (lpTarget) /* The target can be optional */ - { - ConsoleAliasRequest->TargetLength = (wcslen(lpTarget) + 1) * sizeof(WCHAR); + if (Target) /* The target can be optional */ + { + ConsoleAliasRequest->TargetLength = TargetBufferLength; CapturedStrings++; } else @@ -64,19 +73,19 @@ /* Capture the strings */ CsrCaptureMessageBuffer(CaptureBuffer, - (PVOID)lpSource, + (PVOID)Source, ConsoleAliasRequest->SourceLength, (PVOID*)&ConsoleAliasRequest->Source); CsrCaptureMessageBuffer(CaptureBuffer, (PVOID)lpExeName, ConsoleAliasRequest->ExeLength, - (PVOID*)&ConsoleAliasRequest->Exe); - - if (lpTarget) /* The target can be optional */ + (PVOID*)&ConsoleAliasRequest->ExeName); + + if (Target) /* The target can be optional */ { CsrCaptureMessageBuffer(CaptureBuffer, - (PVOID)lpTarget, + (PVOID)Target, ConsoleAliasRequest->TargetLength, (PVOID*)&ConsoleAliasRequest->Target); } @@ -85,20 +94,45 @@ ConsoleAliasRequest->Target = NULL; } - Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, - CaptureBuffer, - CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepAddAlias), - sizeof(CONSOLE_ADDGETALIAS)); + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + CaptureBuffer, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepAddAlias), + sizeof(*ConsoleAliasRequest)); CsrFreeCaptureBuffer(CaptureBuffer); - if (!NT_SUCCESS(Status)) - { - BaseSetLastNTError(Status); + if (!NT_SUCCESS(ApiMessage.Status)) + { + BaseSetLastNTError(ApiMessage.Status); return FALSE; } return TRUE; +} + + +/* + * @implemented + */ +BOOL +WINAPI +AddConsoleAliasW(LPCWSTR lpSource, + LPCWSTR lpTarget, + LPCWSTR lpExeName) +{ + DWORD SourceBufferLength, TargetBufferLength; + SourceBufferLength = wcslen(lpSource) * sizeof(WCHAR); + TargetBufferLength = (lpTarget ? wcslen(lpTarget) * sizeof(WCHAR) : 0); + + DPRINT1("AddConsoleAliasW entered with lpSource '%S' lpTarget '%S' lpExeName '%S'\n", + lpSource, lpTarget, lpExeName); + + return IntAddConsoleAlias(lpSource, + SourceBufferLength, + lpTarget, + TargetBufferLength, + lpExeName, + TRUE); } @@ -111,60 +145,56 @@ LPCSTR lpTarget, LPCSTR lpExeName) { - LPWSTR lpSourceW = NULL; - LPWSTR lpTargetW = NULL; - LPWSTR lpExeNameW = NULL; - BOOL bRetVal; - - if (lpSource) - BasepAnsiStringToHeapUnicodeString(lpSource, (LPWSTR*)&lpSourceW); - if (lpTarget) - BasepAnsiStringToHeapUnicodeString(lpTarget, (LPWSTR*)&lpTargetW); - if (lpExeName) - BasepAnsiStringToHeapUnicodeString(lpExeName, (LPWSTR*)&lpExeNameW); - - bRetVal = AddConsoleAliasW(lpSourceW, lpTargetW, lpExeNameW); - - /* Clean up */ - if (lpSourceW) - RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*)lpSourceW); - if (lpTargetW) - RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*)lpTargetW); - if (lpExeNameW) - RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*)lpExeNameW); - - return bRetVal; -} - - -/* - * @implemented - */ -DWORD -WINAPI -GetConsoleAliasW(LPWSTR lpSource, - LPWSTR lpTargetBuffer, - DWORD TargetBufferLength, - LPWSTR lpExeName) -{ - NTSTATUS Status; + DWORD SourceBufferLength, TargetBufferLength; + SourceBufferLength = strlen(lpSource) * sizeof(CHAR); + TargetBufferLength = (lpTarget ? strlen(lpTarget) * sizeof(CHAR) : 0); + + DPRINT1("AddConsoleAliasA entered with lpSource '%s' lpTarget '%s' lpExeName '%s'\n", + lpSource, lpTarget, lpExeName); + + return IntAddConsoleAlias(lpSource, + SourceBufferLength, + lpTarget, + TargetBufferLength, + lpExeName, + FALSE); +} + + +static DWORD +IntGetConsoleAlias(LPVOID Source, + DWORD SourceBufferLength, + LPVOID Target, + DWORD TargetBufferLength, + LPVOID lpExeName, + BOOLEAN bUnicode) +{ CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &ApiMessage.Data.ConsoleAliasRequest; PCSR_CAPTURE_BUFFER CaptureBuffer; - DPRINT("GetConsoleAliasW entered with lpSource %S lpExeName %S\n", lpSource, lpExeName); - - if (lpTargetBuffer == NULL) + DWORD dwNumChars = (lpExeName ? (bUnicode ? wcslen(lpExeName) : strlen(lpExeName)) : 0); + + if (Source == NULL || Target == NULL) { SetLastError(ERROR_INVALID_PARAMETER); return 0; } + if (lpExeName == NULL || dwNumChars == 0) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + ConsoleAliasRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + /* Determine the needed sizes */ - ConsoleAliasRequest->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR); - ConsoleAliasRequest->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR); - - ConsoleAliasRequest->Target = NULL; + ConsoleAliasRequest->SourceLength = SourceBufferLength; + ConsoleAliasRequest->ExeLength = dwNumChars * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR)); + ConsoleAliasRequest->Unicode = + ConsoleAliasRequest->Unicode2 = bUnicode; + ConsoleAliasRequest->TargetLength = TargetBufferLength; /* Allocate a Capture Buffer */ @@ -180,34 +210,37 @@ /* Capture the strings */ CsrCaptureMessageBuffer(CaptureBuffer, - (PVOID)lpSource, + (PVOID)Source, ConsoleAliasRequest->SourceLength, (PVOID*)&ConsoleAliasRequest->Source); CsrCaptureMessageBuffer(CaptureBuffer, (PVOID)lpExeName, ConsoleAliasRequest->ExeLength, - (PVOID*)&ConsoleAliasRequest->Exe); + (PVOID*)&ConsoleAliasRequest->ExeName); /* Allocate space for the target buffer */ CsrAllocateMessagePointer(CaptureBuffer, ConsoleAliasRequest->TargetLength, (PVOID*)&ConsoleAliasRequest->Target); - Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, - CaptureBuffer, - CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAlias), - sizeof(CONSOLE_ADDGETALIAS)); - if (!NT_SUCCESS(Status)) + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + CaptureBuffer, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAlias), + sizeof(*ConsoleAliasRequest)); + if (!NT_SUCCESS(ApiMessage.Status)) { CsrFreeCaptureBuffer(CaptureBuffer); - BaseSetLastNTError(Status); - return 0; + BaseSetLastNTError(ApiMessage.Status); + + if (ApiMessage.Status == STATUS_BUFFER_TOO_SMALL) + return ConsoleAliasRequest->TargetLength; + else + return 0; } /* Copy the returned target string into the user buffer */ - // wcscpy(lpTargetBuffer, ConsoleAliasRequest->Target); - memcpy(lpTargetBuffer, + memcpy(Target, ConsoleAliasRequest->Target, ConsoleAliasRequest->TargetLength); @@ -215,6 +248,28 @@ CsrFreeCaptureBuffer(CaptureBuffer); return ConsoleAliasRequest->TargetLength; +} + + +/* + * @implemented + */ +DWORD +WINAPI +GetConsoleAliasW(LPWSTR lpSource, + LPWSTR lpTargetBuffer, + DWORD TargetBufferLength, + LPWSTR lpExeName) +{ + DPRINT1("GetConsoleAliasW entered with lpSource '%S' lpExeName '%S'\n", + lpSource, lpExeName); + + return IntGetConsoleAlias(lpSource, + wcslen(lpSource) * sizeof(WCHAR), + lpTargetBuffer, + TargetBufferLength, + lpExeName, + TRUE); } @@ -228,86 +283,42 @@ DWORD TargetBufferLength, LPSTR lpExeName) { - LPWSTR lpwSource; - LPWSTR lpwExeName; - LPWSTR lpwTargetBuffer; - UINT dwSourceSize; - UINT dwExeNameSize; - UINT dwResult; - - DPRINT("GetConsoleAliasA entered\n"); - - if (lpTargetBuffer == NULL) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } - - dwSourceSize = (strlen(lpSource)+1) * sizeof(WCHAR); - lpwSource = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSourceSize); - if (lpwSource == NULL) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - MultiByteToWideChar(CP_ACP, 0, lpSource, -1, lpwSource, dwSourceSize); - - dwExeNameSize = (strlen(lpExeName)+1) * sizeof(WCHAR); - lpwExeName = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwExeNameSize); - if (lpwExeName == NULL) - { - HeapFree(GetProcessHeap(), 0, lpwSource); - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - MultiByteToWideChar(CP_ACP, 0, lpExeName, -1, lpwExeName, dwExeNameSize); - - lpwTargetBuffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, TargetBufferLength * sizeof(WCHAR)); - if (lpwTargetBuffer == NULL) - { - HeapFree(GetProcessHeap(), 0, lpwSource); - HeapFree(GetProcessHeap(), 0, lpwExeName); - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - dwResult = GetConsoleAliasW(lpwSource, lpwTargetBuffer, TargetBufferLength * sizeof(WCHAR), lpwExeName); - - HeapFree(GetProcessHeap(), 0, lpwSource); - HeapFree(GetProcessHeap(), 0, lpwExeName); - - if (dwResult) - dwResult = WideCharToMultiByte(CP_ACP, 0, lpwTargetBuffer, dwResult / sizeof(WCHAR), lpTargetBuffer, TargetBufferLength, NULL, NULL); - - HeapFree(GetProcessHeap(), 0, lpwTargetBuffer); - - return dwResult; -} - - -/* - * @implemented - */ -DWORD -WINAPI -GetConsoleAliasesW(LPWSTR AliasBuffer, - DWORD AliasBufferLength, - LPWSTR ExeName) -{ - NTSTATUS Status; + DPRINT1("GetConsoleAliasA entered with lpSource '%s' lpExeName '%s'\n", + lpSource, lpExeName); + + return IntGetConsoleAlias(lpSource, + strlen(lpSource) * sizeof(CHAR), + lpTargetBuffer, + TargetBufferLength, + lpExeName, + FALSE); +} + + +static DWORD +IntGetConsoleAliases(LPVOID AliasBuffer, + DWORD AliasBufferLength, + LPVOID lpExeName, + BOOLEAN bUnicode) +{ CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_GETALLALIASES GetAllAliasesRequest = &ApiMessage.Data.GetAllAliasesRequest; PCSR_CAPTURE_BUFFER CaptureBuffer; - DPRINT("GetConsoleAliasesW entered\n"); + DWORD dwNumChars = (lpExeName ? (bUnicode ? wcslen(lpExeName) : strlen(lpExeName)) : 0); + + if (lpExeName == NULL || dwNumChars == 0) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + GetAllAliasesRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; /* Determine the needed sizes */ - GetAllAliasesRequest->ExeLength = GetConsoleAliasesLengthW(ExeName); - if (GetAllAliasesRequest->ExeLength == 0 || - GetAllAliasesRequest->ExeLength > AliasBufferLength) - { - return 0; - } + GetAllAliasesRequest->ExeLength = dwNumChars * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR)); + GetAllAliasesRequest->Unicode = + GetAllAliasesRequest->Unicode2 = bUnicode; GetAllAliasesRequest->AliasesBufferLength = AliasBufferLength; @@ -323,7 +334,7 @@ /* Capture the exe name and allocate space for the aliases buffer */ CsrCaptureMessageBuffer(CaptureBuffer, - (PVOID)ExeName, + (PVOID)lpExeName, GetAllAliasesRequest->ExeLength, (PVOID*)&GetAllAliasesRequest->ExeName); @@ -331,18 +342,18 @@ GetAllAliasesRequest->AliasesBufferLength, (PVOID*)&GetAllAliasesRequest->AliasesBuffer); - Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, - CaptureBuffer, - CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliases), - sizeof(CONSOLE_GETALLALIASES)); - if (!NT_SUCCESS(Status)) - { - BaseSetLastNTError(Status); + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + CaptureBuffer, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliases), + sizeof(*GetAllAliasesRequest)); + if (!NT_SUCCESS(ApiMessage.Status)) + { + CsrFreeCaptureBuffer(CaptureBuffer); + BaseSetLastNTError(ApiMessage.Status); return 0; } /* Copy the returned aliases string into the user buffer */ - // wcscpy(AliasBuffer, GetAllAliasesRequest->AliasesBuffer); memcpy(AliasBuffer, GetAllAliasesRequest->AliasesBuffer, GetAllAliasesRequest->AliasesBufferLength); @@ -350,7 +361,26 @@ /* Release the capture buffer and exit */ CsrFreeCaptureBuffer(CaptureBuffer); - return GetAllAliasesRequest->AliasesBufferLength; // / sizeof(WCHAR); (original code) + return GetAllAliasesRequest->AliasesBufferLength; +} + + +/* + * @implemented + */ +DWORD +WINAPI +GetConsoleAliasesW(LPWSTR AliasBuffer, + DWORD AliasBufferLength, + LPWSTR ExeName) +{ + DPRINT1("GetConsoleAliasesW entered with lpExeName '%S'\n", + ExeName); + + return IntGetConsoleAliases(AliasBuffer, + AliasBufferLength, + ExeName, + TRUE); } @@ -363,27 +393,13 @@ DWORD AliasBufferLength, LPSTR ExeName) { - DWORD dwRetVal = 0; - LPWSTR lpwExeName = NULL; - LPWSTR lpwAliasBuffer; - - DPRINT("GetConsoleAliasesA entered\n"); - - if (ExeName) - BasepAnsiStringToHeapUnicodeString(ExeName, (LPWSTR*)&lpwExeName); - - lpwAliasBuffer = HeapAlloc(GetProcessHeap(), 0, AliasBufferLength * sizeof(WCHAR)); - - dwRetVal = GetConsoleAliasesW(lpwAliasBuffer, AliasBufferLength * sizeof(WCHAR), lpwExeName); - - if (lpwExeName) - RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*)lpwExeName); - - if (dwRetVal) - dwRetVal = WideCharToMultiByte(CP_ACP, 0, lpwAliasBuffer, dwRetVal /**/ / sizeof(WCHAR) /**/, AliasBuffer, AliasBufferLength, NULL, NULL); - - HeapFree(GetProcessHeap(), 0, lpwAliasBuffer); - return dwRetVal; + DPRINT1("GetConsoleAliasesA entered with lpExeName '%s'\n", + ExeName); + + return IntGetConsoleAliases(AliasBuffer, + AliasBufferLength, + ExeName, + FALSE); } @@ -512,6 +528,7 @@ GetConsoleAliasExesW(LPWSTR lpExeNameBuffer, DWORD ExeNameBufferLength) { + DPRINT1("GetConsoleAliasExesW called\n"); return IntGetConsoleAliasExes(lpExeNameBuffer, ExeNameBufferLength, TRUE); } @@ -524,6 +541,7 @@ GetConsoleAliasExesA(LPSTR lpExeNameBuffer, DWORD ExeNameBufferLength) { + DPRINT1("GetConsoleAliasExesA called\n"); return IntGetConsoleAliasExes(lpExeNameBuffer, ExeNameBufferLength, FALSE); } @@ -558,6 +576,7 @@ WINAPI GetConsoleAliasExesLengthW(VOID) { + DPRINT1("GetConsoleAliasExesLengthW called\n"); return IntGetConsoleAliasExesLength(TRUE); } @@ -569,6 +588,7 @@ WINAPI GetConsoleAliasExesLengthA(VOID) { + DPRINT1("GetConsoleAliasExesLengthA called\n"); return IntGetConsoleAliasExesLength(FALSE); } Modified: branches/condrv_restructure/dll/win32/kernel32/client/console/console.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ke…
============================================================================== --- branches/condrv_restructure/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original) +++ branches/condrv_restructure/dll/win32/kernel32/client/console/console.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -1392,15 +1392,29 @@ /*-------------------------------------------------------------- * GetNumberOfConsoleMouseButtons * - * @unimplemented + * @implemented */ BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons) { - DPRINT1("GetNumberOfConsoleMouseButtons(0x%p) UNIMPLEMENTED!\n", lpNumberOfMouseButtons); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + CONSOLE_API_MESSAGE ApiMessage; + PCONSOLE_GETMOUSEINFO GetMouseInfoRequest = &ApiMessage.Data.GetMouseInfoRequest; + + GetMouseInfoRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle; + + CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + NULL, + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetMouseInfo), + sizeof(*GetMouseInfoRequest)); + if (!NT_SUCCESS(ApiMessage.Status)) + { + BaseSetLastNTError(ApiMessage.Status); + return FALSE; + } + + *lpNumberOfMouseButtons = GetMouseInfoRequest->NumButtons; + return TRUE; } @@ -2525,7 +2539,7 @@ BOOL WINAPI -GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode) +SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2) { STUB; return FALSE; @@ -2533,7 +2547,7 @@ BOOL WINAPI -SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2) +GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode) { STUB; return FALSE; @@ -2541,7 +2555,7 @@ BOOL WINAPI -SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4) +SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode) { STUB; return FALSE; @@ -2549,7 +2563,7 @@ BOOL WINAPI -SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode) +SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4) { STUB; return FALSE; Modified: branches/condrv_restructure/include/reactos/subsys/win/conmsg.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/reac…
============================================================================== --- branches/condrv_restructure/include/reactos/subsys/win/conmsg.h [iso-8859-1] (original) +++ branches/condrv_restructure/include/reactos/subsys/win/conmsg.h [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -322,6 +322,12 @@ typedef struct { HANDLE ConsoleHandle; + ULONG NumButtons; +} CONSOLE_GETMOUSEINFO, *PCONSOLE_GETMOUSEINFO; + +typedef struct +{ + HANDLE ConsoleHandle; HANDLE OutputHandle; WORD Attributes; } CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB; @@ -370,7 +376,8 @@ DWORD DesiredAccess; BOOL InheritHandle; DWORD ShareMode; - DWORD ScreenBufferType; /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */ + /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */ + DWORD ScreenBufferType; /* * This structure holds the initialization information * for graphics screen buffers. @@ -656,20 +663,26 @@ typedef struct { - ULONG SourceLength; - ULONG TargetLength; // Also used for storing the number of bytes written. - ULONG ExeLength; - LPWSTR Source; - LPWSTR Target; - LPWSTR Exe; + HANDLE ConsoleHandle; + USHORT SourceLength; + USHORT TargetLength; // Also used for storing the number of bytes written. + USHORT ExeLength; + PVOID Source; + PVOID Target; + PVOID ExeName; + BOOLEAN Unicode; + BOOLEAN Unicode2; } CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS; typedef struct { - DWORD ExeLength; - DWORD AliasesBufferLength; - LPWSTR ExeName; - LPWSTR AliasesBuffer; + HANDLE ConsoleHandle; + USHORT ExeLength; + PVOID ExeName; + BOOLEAN Unicode; + BOOLEAN Unicode2; + ULONG AliasesBufferLength; + PVOID AliasesBuffer; } CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES; typedef struct @@ -704,7 +717,6 @@ HANDLE ConsoleHandle; ULONG HistoryLength; PVOID History; - // UNICODE_STRING ExeName; USHORT ExeLength; PVOID ExeName; BOOLEAN Unicode; @@ -715,7 +727,6 @@ { HANDLE ConsoleHandle; ULONG HistoryLength; - // UNICODE_STRING ExeName; USHORT ExeLength; PVOID ExeName; BOOLEAN Unicode; @@ -725,7 +736,6 @@ typedef struct { HANDLE ConsoleHandle; - // UNICODE_STRING ExeName; USHORT ExeLength; PVOID ExeName; BOOLEAN Unicode; @@ -743,7 +753,6 @@ { HANDLE ConsoleHandle; ULONG NumCommands; - // UNICODE_STRING ExeName; USHORT ExeLength; PVOID ExeName; BOOLEAN Unicode; @@ -814,11 +823,12 @@ CONSOLE_GETHANDLEINFO GetHandleInfoRequest; CONSOLE_SETHANDLEINFO SetHandleInfoRequest; - /* Cursor */ + /* Cursor & Mouse */ CONSOLE_SHOWCURSOR ShowCursorRequest; CONSOLE_SETCURSOR SetCursorRequest; CONSOLE_GETSETCURSORINFO CursorInfoRequest; CONSOLE_SETCURSORPOSITION SetCursorPositionRequest; + CONSOLE_GETMOUSEINFO GetMouseInfoRequest; /* Screen-buffer */ CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest; Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/alias.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
============================================================================== --- branches/condrv_restructure/win32ss/user/winsrv/consrv/alias.c [iso-8859-1] (original) +++ branches/condrv_restructure/win32ss/user/winsrv/consrv/alias.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -18,61 +18,187 @@ typedef struct _ALIAS_ENTRY { - LPCWSTR lpSource; - LPCWSTR lpTarget; + UNICODE_STRING Source; + UNICODE_STRING Target; struct _ALIAS_ENTRY* Next; } ALIAS_ENTRY, *PALIAS_ENTRY; typedef struct _ALIAS_HEADER { - LPCWSTR lpExeName; - PALIAS_ENTRY Data; + UNICODE_STRING ExeName; + PALIAS_ENTRY Data; struct _ALIAS_HEADER* Next; } ALIAS_HEADER, *PALIAS_HEADER; + + +BOOLEAN +ConvertInputAnsiToUnicode(PCONSOLE Console, + PVOID Source, + USHORT SourceLength, + // BOOLEAN IsUnicode, + PWCHAR* Target, + PUSHORT TargetLength) +{ + ASSERT(Source && Target && TargetLength); + + /* Use the console input CP for the conversion */ + *TargetLength = MultiByteToWideChar(Console->InputCodePage, 0, + Source, SourceLength, + NULL, 0); + *Target = ConsoleAllocHeap(0, *TargetLength * sizeof(WCHAR)); + if (*Target == NULL) return FALSE; + + MultiByteToWideChar(Console->InputCodePage, 0, + Source, SourceLength, + *Target, *TargetLength); + + /* The returned Length was in number of WCHARs, convert it in bytes */ + *TargetLength *= sizeof(WCHAR); + + return TRUE; +} + +BOOLEAN +ConvertInputUnicodeToAnsi(PCONSOLE Console, + PVOID Source, + USHORT SourceLength, + // BOOLEAN IsAnsi, + PCHAR/* * */ Target, + /*P*/USHORT TargetLength) +{ + ASSERT(Source && Target && TargetLength); + + /* Use the console input CP for the conversion */ + // *TargetLength = WideCharToMultiByte(Console->InputCodePage, 0, + // Source, SourceLength, + // NULL, 0, NULL, NULL); + // *Target = ConsoleAllocHeap(0, *TargetLength * sizeof(WCHAR)); + // if (*Target == NULL) return FALSE; + + WideCharToMultiByte(Console->InputCodePage, 0, + Source, SourceLength, + /* * */Target, /* * */TargetLength, + NULL, NULL); + + // /* The returned Length was in number of WCHARs, convert it in bytes */ + // *TargetLength *= sizeof(WCHAR); + + return TRUE; +} + + + + /* PRIVATE FUNCTIONS **********************************************************/ -static -PALIAS_HEADER -IntFindAliasHeader(PALIAS_HEADER RootHeader, LPCWSTR lpExeName) -{ +static PALIAS_HEADER +IntFindAliasHeader(PCONSOLE Console, + PVOID ExeName, + USHORT ExeLength, + BOOLEAN UnicodeExe) +{ + UNICODE_STRING ExeNameU; + + PALIAS_HEADER RootHeader = Console->Aliases; + INT Diff; + + if (ExeName == NULL) return NULL; + + if (UnicodeExe) + { + ExeNameU.Buffer = ExeName; + /* Length is in bytes */ + ExeNameU.MaximumLength = ExeLength; + } + else + { + if (!ConvertInputAnsiToUnicode(Console, + ExeName, ExeLength, + &ExeNameU.Buffer, &ExeNameU.MaximumLength)) + { + return NULL; + } + } + ExeNameU.Length = ExeNameU.MaximumLength; + while (RootHeader) { - INT diff = _wcsicmp(RootHeader->lpExeName, lpExeName); - if (!diff) return RootHeader; - if (diff > 0) break; + Diff = RtlCompareUnicodeString(&RootHeader->ExeName, &ExeNameU, TRUE); + if (!Diff) + { + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); + return RootHeader; + } + if (Diff > 0) break; RootHeader = RootHeader->Next; } + + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); return NULL; } -PALIAS_HEADER -IntCreateAliasHeader(LPCWSTR lpExeName) -{ +static PALIAS_HEADER +IntCreateAliasHeader(PCONSOLE Console, + PVOID ExeName, + USHORT ExeLength, + BOOLEAN UnicodeExe) +{ + UNICODE_STRING ExeNameU; + PALIAS_HEADER Entry; - UINT dwLength = wcslen(lpExeName) + 1; - - Entry = ConsoleAllocHeap(0, sizeof(ALIAS_HEADER) + sizeof(WCHAR) * dwLength); - if (!Entry) return Entry; - - Entry->lpExeName = (LPCWSTR)(Entry + 1); - wcscpy((PWCHAR)Entry->lpExeName, lpExeName); + + if (ExeName == NULL) return NULL; + + if (UnicodeExe) + { + ExeNameU.Buffer = ExeName; + /* Length is in bytes */ + ExeNameU.MaximumLength = ExeLength; + } + else + { + if (!ConvertInputAnsiToUnicode(Console, + ExeName, ExeLength, + &ExeNameU.Buffer, &ExeNameU.MaximumLength)) + { + return NULL; + } + } + ExeNameU.Length = ExeNameU.MaximumLength; + + Entry = ConsoleAllocHeap(0, sizeof(ALIAS_HEADER) + ExeNameU.Length); + if (!Entry) + { + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); + return Entry; + } + + Entry->ExeName.Buffer = (PWSTR)(Entry + 1); + Entry->ExeName.Length = 0; + Entry->ExeName.MaximumLength = ExeNameU.Length; + RtlCopyUnicodeString(&Entry->ExeName, &ExeNameU); + Entry->Data = NULL; Entry->Next = NULL; + + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); return Entry; } -VOID -IntInsertAliasHeader(PALIAS_HEADER * RootHeader, PALIAS_HEADER NewHeader) +static VOID +IntInsertAliasHeader(PALIAS_HEADER* RootHeader, + PALIAS_HEADER NewHeader) { PALIAS_HEADER CurrentHeader; PALIAS_HEADER *LastLink = RootHeader; + INT Diff; while ((CurrentHeader = *LastLink) != NULL) { - INT Diff = _wcsicmp(NewHeader->lpExeName, CurrentHeader->lpExeName); + Diff = RtlCompareUnicodeString(&NewHeader->ExeName, &CurrentHeader->ExeName, TRUE); if (Diff < 0) break; LastLink = &CurrentHeader->Next; @@ -82,36 +208,139 @@ NewHeader->Next = CurrentHeader; } -PALIAS_ENTRY -IntGetAliasEntry(PALIAS_HEADER Header, LPCWSTR lpSrcName) -{ - PALIAS_ENTRY RootHeader; - - if (Header == NULL) return NULL; - - RootHeader = Header->Data; - while (RootHeader) - { - INT diff; - DPRINT("IntGetAliasEntry->lpSource %S\n", RootHeader->lpSource); - diff = _wcsicmp(RootHeader->lpSource, lpSrcName); - if (!diff) return RootHeader; - if (diff > 0) break; - - RootHeader = RootHeader->Next; - } +static PALIAS_ENTRY +IntGetAliasEntry(PCONSOLE Console, + PALIAS_HEADER Header, + PVOID Source, + USHORT SourceLength, + BOOLEAN Unicode) +{ + UNICODE_STRING SourceU; + + PALIAS_ENTRY Entry; + INT Diff; + + if (Header == NULL || Source == NULL) return NULL; + + if (Unicode) + { + SourceU.Buffer = Source; + /* Length is in bytes */ + SourceU.MaximumLength = SourceLength; + } + else + { + if (!ConvertInputAnsiToUnicode(Console, + Source, SourceLength, + &SourceU.Buffer, &SourceU.MaximumLength)) + { + return NULL; + } + } + SourceU.Length = SourceU.MaximumLength; + + Entry = Header->Data; + while (Entry) + { + Diff = RtlCompareUnicodeString(&Entry->Source, &SourceU, TRUE); + if (!Diff) + { + if (!Unicode) ConsoleFreeHeap(SourceU.Buffer); + return Entry; + } + if (Diff > 0) break; + + Entry = Entry->Next; + } + + if (!Unicode) ConsoleFreeHeap(SourceU.Buffer); return NULL; } -VOID -IntInsertAliasEntry(PALIAS_HEADER Header, PALIAS_ENTRY NewEntry) +static PALIAS_ENTRY +IntCreateAliasEntry(PCONSOLE Console, + PVOID Source, + USHORT SourceLength, + PVOID Target, + USHORT TargetLength, + BOOLEAN Unicode) +{ + UNICODE_STRING SourceU; + UNICODE_STRING TargetU; + + PALIAS_ENTRY Entry; + + if (Unicode) + { + SourceU.Buffer = Source; + TargetU.Buffer = Target; + /* Length is in bytes */ + SourceU.MaximumLength = SourceLength; + TargetU.MaximumLength = TargetLength; + } + else + { + if (!ConvertInputAnsiToUnicode(Console, + Source, SourceLength, + &SourceU.Buffer, &SourceU.MaximumLength)) + { + return NULL; + } + + if (!ConvertInputAnsiToUnicode(Console, + Target, TargetLength, + &TargetU.Buffer, &TargetU.MaximumLength)) + { + ConsoleFreeHeap(SourceU.Buffer); + return NULL; + } + } + SourceU.Length = SourceU.MaximumLength; + TargetU.Length = TargetU.MaximumLength; + + Entry = ConsoleAllocHeap(0, sizeof(ALIAS_ENTRY) + + SourceU.Length + TargetU.Length); + if (!Entry) + { + if (!Unicode) + { + ConsoleFreeHeap(TargetU.Buffer); + ConsoleFreeHeap(SourceU.Buffer); + } + return Entry; + } + + Entry->Source.Buffer = (PWSTR)(Entry + 1); + Entry->Source.Length = 0; + Entry->Source.MaximumLength = SourceU.Length; + RtlCopyUnicodeString(&Entry->Source, &SourceU); + + Entry->Target.Buffer = (PWSTR)((ULONG_PTR)Entry->Source.Buffer + Entry->Source.MaximumLength); + Entry->Target.Length = 0; + Entry->Target.MaximumLength = TargetU.Length; + RtlCopyUnicodeString(&Entry->Target, &TargetU); + + Entry->Next = NULL; + + if (!Unicode) + { + ConsoleFreeHeap(TargetU.Buffer); + ConsoleFreeHeap(SourceU.Buffer); + } + return Entry; +} + +static VOID +IntInsertAliasEntry(PALIAS_HEADER Header, + PALIAS_ENTRY NewEntry) { PALIAS_ENTRY CurrentEntry; PALIAS_ENTRY *LastLink = &Header->Data; + INT Diff; while ((CurrentEntry = *LastLink) != NULL) { - INT Diff = _wcsicmp(NewEntry->lpSource, CurrentEntry->lpSource); + Diff = RtlCompareUnicodeString(&NewEntry->Source, &CurrentEntry->Source, TRUE); if (Diff < 0) break; LastLink = &CurrentEntry->Next; @@ -121,120 +350,9 @@ NewEntry->Next = CurrentEntry; } -PALIAS_ENTRY -IntCreateAliasEntry(LPCWSTR lpSource, LPCWSTR lpTarget) -{ - UINT dwSource; - UINT dwTarget; - PALIAS_ENTRY Entry; - - dwSource = wcslen(lpSource) + 1; - dwTarget = wcslen(lpTarget) + 1; - - Entry = ConsoleAllocHeap(0, sizeof(ALIAS_ENTRY) + sizeof(WCHAR) * (dwSource + dwTarget)); - if (!Entry) return Entry; - - Entry->lpSource = (LPCWSTR)(Entry + 1); - wcscpy((LPWSTR)Entry->lpSource, lpSource); - Entry->lpTarget = Entry->lpSource + dwSource; - wcscpy((LPWSTR)Entry->lpTarget, lpTarget); - Entry->Next = NULL; - - return Entry; -} - -UINT -IntGetConsoleAliasesExesLength(PALIAS_HEADER RootHeader) -{ - UINT length = 0; - - while (RootHeader) - { - length += (wcslen(RootHeader->lpExeName) + 1) * sizeof(WCHAR); - RootHeader = RootHeader->Next; - } - if (length) - length += sizeof(WCHAR); // last entry entry is terminated with 2 zero bytes - - return length; -} - -UINT -IntGetConsoleAliasesExes(PALIAS_HEADER RootHeader, LPWSTR TargetBuffer, UINT TargetBufferSize) -{ - UINT Offset = 0; - UINT Length; - - TargetBufferSize /= sizeof(WCHAR); - while (RootHeader) - { - Length = wcslen(RootHeader->lpExeName) + 1; - if (TargetBufferSize > Offset + Length) - { - wcscpy(&TargetBuffer[Offset], RootHeader->lpExeName); - Offset += Length; - } - else - { - break; - } - RootHeader = RootHeader->Next; - } - Length = min(Offset+1, TargetBufferSize); - TargetBuffer[Length] = L'\0'; - return Length * sizeof(WCHAR); -} - -UINT -IntGetAllConsoleAliasesLength(PALIAS_HEADER Header) -{ - UINT Length = 0; - PALIAS_ENTRY CurEntry = Header->Data; - - while (CurEntry) - { - Length += wcslen(CurEntry->lpSource); - Length += wcslen(CurEntry->lpTarget); - Length += 2; // zero byte and '=' - CurEntry = CurEntry->Next; - } - - if (Length) - { - return (Length+1) * sizeof(WCHAR); - } - return 0; -} - -UINT -IntGetAllConsoleAliases(PALIAS_HEADER Header, LPWSTR TargetBuffer, UINT TargetBufferLength) -{ - PALIAS_ENTRY CurEntry = Header->Data; - UINT Offset = 0; - UINT SrcLength, TargetLength; - - TargetBufferLength /= sizeof(WCHAR); - while (CurEntry) - { - SrcLength = wcslen(CurEntry->lpSource) + 1; - TargetLength = wcslen(CurEntry->lpTarget) + 1; - if (Offset + TargetLength + SrcLength >= TargetBufferLength) - break; - - wcscpy(&TargetBuffer[Offset], CurEntry->lpSource); - Offset += SrcLength; - TargetBuffer[Offset] = L'='; - wcscpy(&TargetBuffer[Offset], CurEntry->lpTarget); - Offset += TargetLength; - - CurEntry = CurEntry->Next; - } - TargetBuffer[Offset] = L'\0'; - return Offset * sizeof(WCHAR); -} - -VOID -IntDeleteAliasEntry(PALIAS_HEADER Header, PALIAS_ENTRY Entry) +static VOID +IntDeleteAliasEntry(PALIAS_HEADER Header, + PALIAS_ENTRY Entry) { PALIAS_ENTRY *LastLink = &Header->Data; PALIAS_ENTRY CurEntry; @@ -251,6 +369,53 @@ } } +static UINT +IntGetConsoleAliasesExesLength(PALIAS_HEADER RootHeader, + BOOLEAN IsUnicode) +{ + UINT Length = 0; + + while (RootHeader) + { + Length += RootHeader->ExeName.Length + sizeof(WCHAR); // NULL-termination + RootHeader = RootHeader->Next; + } + + /* + * Quick and dirty way of getting the number of bytes of the + * corresponding ANSI string from the one in UNICODE. + */ + if (!IsUnicode) + Length /= sizeof(WCHAR); + + return Length; +} + +static UINT +IntGetAllConsoleAliasesLength(PALIAS_HEADER Header, + BOOLEAN IsUnicode) +{ + UINT Length = 0; + PALIAS_ENTRY CurEntry = Header->Data; + + while (CurEntry) + { + Length += CurEntry->Source.Length; + Length += CurEntry->Target.Length; + Length += 2 * sizeof(WCHAR); // '=' and NULL-termination + CurEntry = CurEntry->Next; + } + + /* + * Quick and dirty way of getting the number of bytes of the + * corresponding ANSI string from the one in UNICODE. + */ + if (!IsUnicode) + Length /= sizeof(WCHAR); + + return Length; +} + VOID IntDeleteAllAliases(PCONSOLE Console) { @@ -274,13 +439,14 @@ CSR_API(SrvAddConsoleAlias) { + NTSTATUS Status; PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest; PCONSOLE Console; PALIAS_HEADER Header; PALIAS_ENTRY Entry; - LPWSTR lpSource, lpTarget, lpExeName; - - DPRINT("SrvAddConsoleAlias entered ApiMessage %p\n", ApiMessage); + PVOID lpTarget; + + DPRINT1("SrvAddConsoleAlias entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID*)&ConsoleAliasRequest->Source, @@ -291,81 +457,86 @@ ConsoleAliasRequest->TargetLength, sizeof(BYTE)) || !CsrValidateMessageBuffer(ApiMessage, - (PVOID*)&ConsoleAliasRequest->Exe, + (PVOID*)&ConsoleAliasRequest->ExeName, ConsoleAliasRequest->ExeLength, sizeof(BYTE)) ) { return STATUS_INVALID_PARAMETER; } - lpSource = ConsoleAliasRequest->Source; - lpTarget = (ConsoleAliasRequest->TargetLength != 0 ? ConsoleAliasRequest->Target : NULL); - lpExeName = ConsoleAliasRequest->Exe; - - DPRINT("SrvAddConsoleAlias lpSource %p lpExeName %p lpTarget %p\n", lpSource, lpExeName, lpTarget); - - if (lpExeName == NULL || lpSource == NULL) - { - return STATUS_INVALID_PARAMETER; - } - - ApiMessage->Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); - if (!NT_SUCCESS(ApiMessage->Status)) - { - return ApiMessage->Status; - } - - Header = IntFindAliasHeader(Console->Aliases, lpExeName); + lpTarget = (ConsoleAliasRequest->TargetLength != 0 ? ConsoleAliasRequest->Target : NULL); + + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + Status = STATUS_SUCCESS; + + Header = IntFindAliasHeader(Console, + ConsoleAliasRequest->ExeName, + ConsoleAliasRequest->ExeLength, + ConsoleAliasRequest->Unicode2); if (!Header && lpTarget != NULL) { - Header = IntCreateAliasHeader(lpExeName); + Header = IntCreateAliasHeader(Console, + ConsoleAliasRequest->ExeName, + ConsoleAliasRequest->ExeLength, + ConsoleAliasRequest->Unicode2); if (!Header) { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INSUFFICIENT_RESOURCES; - } + Status = STATUS_NO_MEMORY; + goto Quit; + } + IntInsertAliasHeader(&Console->Aliases, Header); } if (lpTarget == NULL) // Delete the entry { - Entry = IntGetAliasEntry(Header, lpSource); - if (Entry) - { - IntDeleteAliasEntry(Header, Entry); - ApiMessage->Status = STATUS_SUCCESS; - } - else - { - ApiMessage->Status = STATUS_INVALID_PARAMETER; - } - ConSrvReleaseConsole(Console, TRUE); - return ApiMessage->Status; - } - - Entry = IntCreateAliasEntry(lpSource, lpTarget); - - if (!Entry) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INSUFFICIENT_RESOURCES; - } - - IntInsertAliasEntry(Header, Entry); + Entry = IntGetAliasEntry(Console, Header, + ConsoleAliasRequest->Source, + ConsoleAliasRequest->SourceLength, + ConsoleAliasRequest->Unicode); + if (!Entry) + { + Status = STATUS_UNSUCCESSFUL; + goto Quit; + } + + IntDeleteAliasEntry(Header, Entry); + } + else // Add the entry + { + Entry = IntCreateAliasEntry(Console, + ConsoleAliasRequest->Source, + ConsoleAliasRequest->SourceLength, + ConsoleAliasRequest->Target, + ConsoleAliasRequest->TargetLength, + ConsoleAliasRequest->Unicode); + if (!Entry) + { + Status = STATUS_NO_MEMORY; + goto Quit; + } + + IntInsertAliasEntry(Header, Entry); + } + +Quit: ConSrvReleaseConsole(Console, TRUE); - return STATUS_SUCCESS; + return Status; } CSR_API(SrvGetConsoleAlias) { + NTSTATUS Status; PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest; PCONSOLE Console; PALIAS_HEADER Header; PALIAS_ENTRY Entry; UINT Length; - LPWSTR lpSource, lpTarget, lpExeName; - - DPRINT("SrvGetConsoleAlias entered ApiMessage %p\n", ApiMessage); + PVOID lpTarget; + + DPRINT1("SrvGetConsoleAlias entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID*)&ConsoleAliasRequest->Source, @@ -376,19 +547,14 @@ ConsoleAliasRequest->TargetLength, sizeof(BYTE)) || !CsrValidateMessageBuffer(ApiMessage, - (PVOID*)&ConsoleAliasRequest->Exe, + (PVOID*)&ConsoleAliasRequest->ExeName, ConsoleAliasRequest->ExeLength, sizeof(BYTE)) ) { return STATUS_INVALID_PARAMETER; } - lpSource = ConsoleAliasRequest->Source; - lpTarget = ConsoleAliasRequest->Target; - lpExeName = ConsoleAliasRequest->Exe; - - DPRINT("SrvGetConsoleAlias lpExeName %p lpSource %p TargetBuffer %p TargetLength %u\n", - lpExeName, lpSource, lpTarget, ConsoleAliasRequest->TargetLength); + lpTarget = ConsoleAliasRequest->Target; if (ConsoleAliasRequest->ExeLength == 0 || lpTarget == NULL || ConsoleAliasRequest->TargetLength == 0 || ConsoleAliasRequest->SourceLength == 0) @@ -396,45 +562,70 @@ return STATUS_INVALID_PARAMETER; } - ApiMessage->Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); - if (!NT_SUCCESS(ApiMessage->Status)) - { - return ApiMessage->Status; - } - - Header = IntFindAliasHeader(Console->Aliases, lpExeName); + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + Header = IntFindAliasHeader(Console, + ConsoleAliasRequest->ExeName, + ConsoleAliasRequest->ExeLength, + ConsoleAliasRequest->Unicode2); if (!Header) { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INVALID_PARAMETER; - } - - Entry = IntGetAliasEntry(Header, lpSource); + Status = STATUS_UNSUCCESSFUL; + goto Quit; + } + + Entry = IntGetAliasEntry(Console, Header, + ConsoleAliasRequest->Source, + ConsoleAliasRequest->SourceLength, + ConsoleAliasRequest->Unicode); if (!Entry) { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INVALID_PARAMETER; - } - - Length = (wcslen(Entry->lpTarget) + 1) * sizeof(WCHAR); - if (Length > ConsoleAliasRequest->TargetLength) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_BUFFER_TOO_SMALL; - } - - wcscpy(lpTarget, Entry->lpTarget); - ConsoleAliasRequest->TargetLength = Length; + Status = STATUS_UNSUCCESSFUL; + goto Quit; + } + + if (ConsoleAliasRequest->Unicode) + { + Length = Entry->Target.Length + sizeof(WCHAR); + if (Length > ConsoleAliasRequest->TargetLength) // FIXME: Refine computation. + { + Status = STATUS_BUFFER_TOO_SMALL; + goto Quit; + } + + RtlCopyMemory(lpTarget, Entry->Target.Buffer, Entry->Target.Length); + ConsoleAliasRequest->TargetLength = Length; + } + else + { + Length = (Entry->Target.Length + sizeof(WCHAR)) / sizeof(WCHAR); + if (Length > ConsoleAliasRequest->TargetLength) // FIXME: Refine computation. + { + Status = STATUS_BUFFER_TOO_SMALL; + goto Quit; + } + + ConvertInputUnicodeToAnsi(Console, + Entry->Target.Buffer, Entry->Target.Length, + lpTarget, Entry->Target.Length / sizeof(WCHAR)); + ConsoleAliasRequest->TargetLength = Length; + } + +Quit: ConSrvReleaseConsole(Console, TRUE); - return STATUS_SUCCESS; + return Status; } CSR_API(SrvGetConsoleAliases) { + NTSTATUS Status; PCONSOLE_GETALLALIASES GetAllAliasesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesRequest; PCONSOLE Console; - ULONG BytesWritten; + ULONG BytesWritten = 0; PALIAS_HEADER Header; + + DPRINT1("SrvGetConsoleAliases entered ApiMessage %p\n", ApiMessage); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID)&GetAllAliasesRequest->ExeName, @@ -448,37 +639,87 @@ return STATUS_INVALID_PARAMETER; } - if (GetAllAliasesRequest->ExeName == NULL) - { - return STATUS_INVALID_PARAMETER; - } - - ApiMessage->Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); - if (!NT_SUCCESS(ApiMessage->Status)) - { - return ApiMessage->Status; - } - - Header = IntFindAliasHeader(Console->Aliases, GetAllAliasesRequest->ExeName); - if (!Header) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INVALID_PARAMETER; - } - - if (IntGetAllConsoleAliasesLength(Header) > GetAllAliasesRequest->AliasesBufferLength) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_BUFFER_OVERFLOW; - } - - BytesWritten = IntGetAllConsoleAliases(Header, - GetAllAliasesRequest->AliasesBuffer, - GetAllAliasesRequest->AliasesBufferLength); - + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + Header = IntFindAliasHeader(Console, + GetAllAliasesRequest->ExeName, + GetAllAliasesRequest->ExeLength, + GetAllAliasesRequest->Unicode2); + if (!Header) goto Quit; + + if (IntGetAllConsoleAliasesLength(Header, GetAllAliasesRequest->Unicode) > GetAllAliasesRequest->AliasesBufferLength) + { + Status = STATUS_BUFFER_OVERFLOW; + goto Quit; + } + + { + LPSTR TargetBufferA; + LPWSTR TargetBufferW; + UINT TargetBufferLength = GetAllAliasesRequest->AliasesBufferLength; + + PALIAS_ENTRY CurEntry = Header->Data; + UINT Offset = 0; + UINT SourceLength, TargetLength; + + if (GetAllAliasesRequest->Unicode) + { + TargetBufferW = GetAllAliasesRequest->AliasesBuffer; + TargetBufferLength /= sizeof(WCHAR); + } + else + { + TargetBufferA = GetAllAliasesRequest->AliasesBuffer; + } + + while (CurEntry) + { + SourceLength = CurEntry->Source.Length / sizeof(WCHAR); + TargetLength = CurEntry->Target.Length / sizeof(WCHAR); + if (Offset + TargetLength + SourceLength + 2 > TargetBufferLength) + { + Status = STATUS_BUFFER_OVERFLOW; + break; + } + + if (GetAllAliasesRequest->Unicode) + { + RtlCopyMemory(&TargetBufferW[Offset], CurEntry->Source.Buffer, SourceLength * sizeof(WCHAR)); + Offset += SourceLength; + TargetBufferW[Offset++] = L'='; + RtlCopyMemory(&TargetBufferW[Offset], CurEntry->Target.Buffer, TargetLength * sizeof(WCHAR)); + Offset += TargetLength; + TargetBufferW[Offset++] = L'\0'; + } + else + { + ConvertInputUnicodeToAnsi(Console, + CurEntry->Source.Buffer, SourceLength * sizeof(WCHAR), + &TargetBufferA[Offset], SourceLength); + Offset += SourceLength; + TargetBufferA[Offset++] = '='; + ConvertInputUnicodeToAnsi(Console, + CurEntry->Target.Buffer, TargetLength * sizeof(WCHAR), + &TargetBufferA[Offset], TargetLength); + Offset += TargetLength; + TargetBufferA[Offset++] = '\0'; + } + + CurEntry = CurEntry->Next; + } + + if (GetAllAliasesRequest->Unicode) + BytesWritten = Offset * sizeof(WCHAR); + else + BytesWritten = Offset; + } + +Quit: GetAllAliasesRequest->AliasesBufferLength = BytesWritten; + ConSrvReleaseConsole(Console, TRUE); - return STATUS_SUCCESS; + return Status; } CSR_API(SrvGetConsoleAliasesLength) @@ -487,7 +728,8 @@ PCONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesLengthRequest; PCONSOLE Console; PALIAS_HEADER Header; - UINT Length; + + DPRINT1("SrvGetConsoleAliasesLength entered ApiMessage %p\n", ApiMessage); if (!CsrValidateMessageBuffer(ApiMessage, (PVOID)&GetAllAliasesLengthRequest->ExeName, @@ -500,27 +742,20 @@ Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - // FIXME!! Convert GetAllAliasesLengthRequest->ExeName into UNICODE if Unicode2 is FALSE - // and make use of GetAllAliasesLengthRequest->ExeLength - - Header = IntFindAliasHeader(Console->Aliases, GetAllAliasesLengthRequest->ExeName); + Header = IntFindAliasHeader(Console, + GetAllAliasesLengthRequest->ExeName, + GetAllAliasesLengthRequest->ExeLength, + GetAllAliasesLengthRequest->Unicode2); if (Header) { - Length = IntGetAllConsoleAliasesLength(Header); - GetAllAliasesLengthRequest->Length = Length; - - /* - * Quick and dirty way of getting the number of bytes of the - * corresponding ANSI string from the one in UNICODE. - */ - if (!GetAllAliasesLengthRequest->Unicode) - GetAllAliasesLengthRequest->Length /= sizeof(WCHAR); - + GetAllAliasesLengthRequest->Length = + IntGetAllConsoleAliasesLength(Header, + GetAllAliasesLengthRequest->Unicode); Status = STATUS_SUCCESS; } else { - Status = STATUS_INVALID_PARAMETER; + GetAllAliasesLengthRequest->Length = 0; } ConSrvReleaseConsole(Console, TRUE); @@ -529,12 +764,12 @@ CSR_API(SrvGetConsoleAliasExes) { + NTSTATUS Status; PCONSOLE_GETALIASESEXES GetAliasesExesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesRequest; PCONSOLE Console; - UINT BytesWritten; - UINT ExesLength; - - DPRINT("SrvGetConsoleAliasExes entered\n"); + UINT BytesWritten = 0; + + DPRINT1("SrvGetConsoleAliasExes entered\n"); if (!CsrValidateMessageBuffer(ApiMessage, (PVOID*)&GetAliasesExesRequest->ExeNames, @@ -544,33 +779,73 @@ return STATUS_INVALID_PARAMETER; } - ApiMessage->Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); - if (!NT_SUCCESS(ApiMessage->Status)) - { - return ApiMessage->Status; - } - - ExesLength = IntGetConsoleAliasesExesLength(Console->Aliases); - - if (ExesLength > GetAliasesExesRequest->Length) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_BUFFER_OVERFLOW; - } - - if (GetAliasesExesRequest->ExeNames == NULL) - { - ConSrvReleaseConsole(Console, TRUE); - return STATUS_INVALID_PARAMETER; - } - - BytesWritten = IntGetConsoleAliasesExes(Console->Aliases, - GetAliasesExesRequest->ExeNames, - GetAliasesExesRequest->Length); - + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + if (IntGetConsoleAliasesExesLength(Console->Aliases, GetAliasesExesRequest->Unicode) > GetAliasesExesRequest->Length) + { + Status = STATUS_BUFFER_OVERFLOW; + goto Quit; + } + + { + PALIAS_HEADER RootHeader = Console->Aliases; + + LPSTR TargetBufferA; + LPWSTR TargetBufferW; + UINT TargetBufferSize = GetAliasesExesRequest->Length; + + UINT Offset = 0; + UINT Length; + + if (GetAliasesExesRequest->Unicode) + { + TargetBufferW = GetAliasesExesRequest->ExeNames; + TargetBufferSize /= sizeof(WCHAR); + } + else + { + TargetBufferA = GetAliasesExesRequest->ExeNames; + } + + while (RootHeader) + { + Length = RootHeader->ExeName.Length / sizeof(WCHAR); + if (Offset + Length + 1 > TargetBufferSize) + { + Status = STATUS_BUFFER_OVERFLOW; + break; + } + + if (GetAliasesExesRequest->Unicode) + { + RtlCopyMemory(&TargetBufferW[Offset], RootHeader->ExeName.Buffer, Length * sizeof(WCHAR)); + Offset += Length; + TargetBufferW[Offset++] = L'\0'; + } + else + { + ConvertInputUnicodeToAnsi(Console, + RootHeader->ExeName.Buffer, Length * sizeof(WCHAR), + &TargetBufferA[Offset], Length); + Offset += Length; + TargetBufferA[Offset++] = '\0'; + } + + RootHeader = RootHeader->Next; + } + + if (GetAliasesExesRequest->Unicode) + BytesWritten = Offset * sizeof(WCHAR); + else + BytesWritten = Offset; + } + +Quit: GetAliasesExesRequest->Length = BytesWritten; + ConSrvReleaseConsole(Console, TRUE); - return STATUS_SUCCESS; + return Status; } CSR_API(SrvGetConsoleAliasExesLength) @@ -579,17 +854,14 @@ PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesLengthRequest; PCONSOLE Console; + DPRINT1("SrvGetConsoleAliasExesLength entered ApiMessage %p\n", ApiMessage); + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - GetAliasesExesLengthRequest->Length = IntGetConsoleAliasesExesLength(Console->Aliases); - - /* - * Quick and dirty way of getting the number of bytes of the - * corresponding ANSI string from the one in UNICODE. - */ - if (!GetAliasesExesLengthRequest->Unicode) - GetAliasesExesLengthRequest->Length /= sizeof(WCHAR); + GetAliasesExesLengthRequest->Length = + IntGetConsoleAliasesExesLength(Console->Aliases, + GetAliasesExesLengthRequest->Unicode); ConSrvReleaseConsole(Console, TRUE); return Status; Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/coninput.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
============================================================================== --- branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/coninput.c [iso-8859-1] (original) +++ branches/condrv_restructure/win32ss/user/winsrv/consrv/condrv/coninput.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -389,10 +389,11 @@ ASSERT( (InputRecord != NULL && NumEventsToWrite > 0) || (InputRecord == NULL && NumEventsToWrite == 0) ); - // Do NOT do that !! Use the existing number of events already written, if any... // if (NumEventsWritten) *NumEventsWritten = 0; - for (i = (NumEventsWritten ? *NumEventsWritten : 0); i < NumEventsToWrite && NT_SUCCESS(Status); ++i) + /// Status = ConioAddInputEvents(Console, InputRecord, NumEventsToWrite, NumEventsWritten, AppendToEnd); + + for (i = 0; i < NumEventsToWrite && NT_SUCCESS(Status); ++i) { if (!Unicode) { Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
============================================================================== --- branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c [iso-8859-1] (original) +++ branches/condrv_restructure/win32ss/user/winsrv/consrv/console.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -977,62 +977,72 @@ CSR_API(SrvGetConsoleMouseInfo) { + NTSTATUS Status; + PCONSOLE_GETMOUSEINFO GetMouseInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetMouseInfoRequest; + PCONSOLE Console; + + Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); + if (!NT_SUCCESS(Status)) return Status; + + /* Just retrieve the number of buttons of the mouse attached to this console */ + GetMouseInfoRequest->NumButtons = GetSystemMetrics(SM_CMOUSEBUTTONS); + + ConSrvReleaseConsole(Console, TRUE); + return STATUS_SUCCESS; +} + +CSR_API(SrvSetConsoleKeyShortcuts) +{ DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvSetConsoleKeyShortcuts) +CSR_API(SrvGetConsoleKeyboardLayoutName) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvGetConsoleKeyboardLayoutName) +CSR_API(SrvGetConsoleCharType) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvGetConsoleCharType) +CSR_API(SrvSetConsoleLocalEUDC) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvSetConsoleLocalEUDC) +CSR_API(SrvSetConsoleCursorMode) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvSetConsoleCursorMode) +CSR_API(SrvGetConsoleCursorMode) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvGetConsoleCursorMode) +CSR_API(SrvGetConsoleNlsMode) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvGetConsoleNlsMode) +CSR_API(SrvSetConsoleNlsMode) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvSetConsoleNlsMode) +CSR_API(SrvGetConsoleLangId) { DPRINT1("%s not yet implemented\n", __FUNCTION__); return STATUS_NOT_IMPLEMENTED; } -CSR_API(SrvGetConsoleLangId) -{ - DPRINT1("%s not yet implemented\n", __FUNCTION__); - return STATUS_NOT_IMPLEMENTED; -} - /* EOF */ Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/lineinput.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
============================================================================== --- branches/condrv_restructure/win32ss/user/winsrv/consrv/lineinput.c [iso-8859-1] (original) +++ branches/condrv_restructure/win32ss/user/winsrv/consrv/lineinput.c [iso-8859-1] Mon Jul 28 13:20:54 2014 @@ -4,8 +4,6 @@ * FILE: win32ss/user/winsrv/consrv/lineinput.c * PURPOSE: Console line input functions * PROGRAMMERS: Jeffrey Morlan - * - * NOTE: It's something frontend-related... (--> read my mind... ;) ) */ /* INCLUDES *******************************************************************/ @@ -21,9 +19,25 @@ UINT Position; UINT MaxEntries; UINT NumEntries; + UNICODE_STRING ExeName; PUNICODE_STRING Entries; - UNICODE_STRING ExeName; } HISTORY_BUFFER, *PHISTORY_BUFFER; + + +BOOLEAN +ConvertInputAnsiToUnicode(PCONSOLE Console, + PVOID Source, + USHORT SourceLength, + // BOOLEAN IsUnicode, + PWCHAR* Target, + PUSHORT TargetLength); +BOOLEAN +ConvertInputUnicodeToAnsi(PCONSOLE Console, + PVOID Source, + USHORT SourceLength, + // BOOLEAN IsAnsi, + PCHAR/* * */ Target, + /*P*/USHORT TargetLength); /* PRIVATE FUNCTIONS **********************************************************/ @@ -124,17 +138,51 @@ } static PHISTORY_BUFFER -HistoryFindBuffer(PCONSOLE Console, PUNICODE_STRING ExeName) -{ - PLIST_ENTRY Entry = Console->HistoryBuffers.Flink; +HistoryFindBuffer(PCONSOLE Console, + PVOID ExeName, + USHORT ExeLength, + BOOLEAN UnicodeExe) +{ + UNICODE_STRING ExeNameU; + + PLIST_ENTRY Entry; + PHISTORY_BUFFER Hist = NULL; + + if (ExeName == NULL) return NULL; + + if (UnicodeExe) + { + ExeNameU.Buffer = ExeName; + /* Length is in bytes */ + ExeNameU.MaximumLength = ExeLength; + } + else + { + if (!ConvertInputAnsiToUnicode(Console, + ExeName, ExeLength, + &ExeNameU.Buffer, &ExeNameU.MaximumLength)) + { + return NULL; + } + } + ExeNameU.Length = ExeNameU.MaximumLength; + + Entry = Console->HistoryBuffers.Flink; while (Entry != &Console->HistoryBuffers) { + Hist = CONTAINING_RECORD(Entry, HISTORY_BUFFER, ListEntry); + /* For the history APIs, the caller is allowed to give only part of the name */ - PHISTORY_BUFFER Hist = CONTAINING_RECORD(Entry, HISTORY_BUFFER, ListEntry); - if (RtlPrefixUnicodeString(ExeName, &Hist->ExeName, TRUE)) + if (RtlPrefixUnicodeString(&ExeNameU, &Hist->ExeName, TRUE)) + { + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); return Hist; + } + Entry = Entry->Flink; } + + if (!UnicodeExe) ConsoleFreeHeap(ExeNameU.Buffer); return NULL; } @@ -190,7 +238,7 @@ } static VOID -LineInputEdit(PCONSOLE Console, UINT NumToDelete, UINT NumToInsert, WCHAR *Insertion) +LineInputEdit(PCONSOLE Console, UINT NumToDelete, UINT NumToInsert, PWCHAR Insertion) { PTEXTMODE_SCREEN_BUFFER ActiveBuffer; UINT Pos = Console->LinePos; @@ -458,11 +506,10 @@ NTSTATUS Status; PCONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryRequest; PCONSOLE Console; + ULONG BytesWritten = 0; PHISTORY_BUFFER Hist; - UNICODE_STRING ExeName; - PBYTE Buffer = (PBYTE)GetCommandHistoryRequest->History; - ULONG BufferSize = GetCommandHistoryRequest->HistoryLength; - UINT i; + + DPRINT1("SrvGetConsoleCommandHistory entered\n"); if ( !CsrValidateMessageBuffer(ApiMessage, (PVOID*)&GetCommandHistoryRequest->History, @@ -479,39 +526,64 @@ Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - // FIXME: convert to UNICODE if Unicode(2) == FALSE - ExeName.Length = ExeName.MaximumLength = GetCommandHistoryRequest->ExeLength; - ExeName.Buffer = GetCommandHistoryRequest->ExeName; - - Hist = HistoryFindBuffer(Console, &ExeName); + Hist = HistoryFindBuffer(Console, + GetCommandHistoryRequest->ExeName, + GetCommandHistoryRequest->ExeLength, + GetCommandHistoryRequest->Unicode2); if (Hist) { + UINT i; + + LPSTR TargetBufferA; + LPWSTR TargetBufferW; + ULONG BufferSize = GetCommandHistoryRequest->HistoryLength; + + UINT Offset = 0; + UINT SourceLength; + + if (GetCommandHistoryRequest->Unicode) + { + TargetBufferW = GetCommandHistoryRequest->History; + BufferSize /= sizeof(WCHAR); + } + else + { + TargetBufferA = GetCommandHistoryRequest->History; + } + for (i = 0; i < Hist->NumEntries; i++) { - if (BufferSize < (Hist->Entries[i].Length + sizeof(WCHAR))) + SourceLength = Hist->Entries[i].Length / sizeof(WCHAR); + if (Offset + SourceLength + 1 > BufferSize) { Status = STATUS_BUFFER_OVERFLOW; break; } - // FIXME: convert to UNICODE if Unicode == FALSE - memcpy(Buffer, Hist->Entries[i].Buffer, Hist->Entries[i].Length); - Buffer += Hist->Entries[i].Length; - *(PWCHAR)Buffer = L'\0'; - Buffer += sizeof(WCHAR); - - // { - // WideCharToMultiByte(CP_ACP, 0, - // GetCommandHistoryRequest->History, - // GetCommandHistoryRequest->HistoryLength / sizeof(WCHAR), - // lpHistory, - // cbHistory, - // NULL, NULL); - // } - - } - } - // FIXME: convert to UNICODE if Unicode == FALSE - GetCommandHistoryRequest->HistoryLength = Buffer - (PBYTE)GetCommandHistoryRequest->History; + + if (GetCommandHistoryRequest->Unicode) + { + RtlCopyMemory(&TargetBufferW[Offset], Hist->Entries[i].Buffer, SourceLength * sizeof(WCHAR)); + Offset += SourceLength; + TargetBufferW[Offset++] = L'\0'; + } + else + { + ConvertInputUnicodeToAnsi(Console, + Hist->Entries[i].Buffer, SourceLength * sizeof(WCHAR), + &TargetBufferA[Offset], SourceLength); + Offset += SourceLength; + TargetBufferA[Offset++] = '\0'; + } + } + + if (GetCommandHistoryRequest->Unicode) + BytesWritten = Offset * sizeof(WCHAR); + else + BytesWritten = Offset; + } + + // GetCommandHistoryRequest->HistoryLength = TargetBuffer - (PBYTE)GetCommandHistoryRequest->History; + GetCommandHistoryRequest->HistoryLength = BytesWritten; ConSrvReleaseConsole(Console, TRUE); return Status; @@ -523,7 +595,6 @@ PCONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryLengthRequest; PCONSOLE Console; PHISTORY_BUFFER Hist; - UNICODE_STRING ExeName; ULONG Length = 0; UINT i; @@ -538,24 +609,23 @@ Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - // FIXME: convert to UNICODE if Unicode(2) == FALSE - ExeName.Length = ExeName.MaximumLength = GetCommandHistoryLengthRequest->ExeLength; - ExeName.Buffer = GetCommandHistoryLengthRequest->ExeName; - - Hist = HistoryFindBuffer(Console, &ExeName); + Hist = HistoryFindBuffer(Console, + GetCommandHistoryLengthRequest->ExeName, + GetCommandHistoryLengthRequest->ExeLength, + GetCommandHistoryLengthRequest->Unicode2); if (Hist) { for (i = 0; i < Hist->NumEntries; i++) - Length += Hist->Entries[i].Length + sizeof(WCHAR); - } - GetCommandHistoryLengthRequest->HistoryLength = Length; - + Length += Hist->Entries[i].Length + sizeof(WCHAR); // Each entry is returned NULL-terminated + } /* * Quick and dirty way of getting the number of bytes of the * corresponding ANSI string from the one in UNICODE. */ if (!GetCommandHistoryLengthRequest->Unicode) - GetCommandHistoryLengthRequest->HistoryLength /= sizeof(WCHAR); + Length /= sizeof(WCHAR); + + GetCommandHistoryLengthRequest->HistoryLength = Length; ConSrvReleaseConsole(Console, TRUE); return Status; @@ -567,7 +637,6 @@ PCONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ExpungeCommandHistoryRequest; PCONSOLE Console; PHISTORY_BUFFER Hist; - UNICODE_STRING ExeName; if (!CsrValidateMessageBuffer(ApiMessage, (PVOID*)&ExpungeCommandHistoryRequest->ExeName, @@ -580,11 +649,10 @@ Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - // FIXME: convert to UNICODE if Unicode(2) == FALSE - ExeName.Length = ExeName.MaximumLength = ExpungeCommandHistoryRequest->ExeLength; - ExeName.Buffer = ExpungeCommandHistoryRequest->ExeName; - - Hist = HistoryFindBuffer(Console, &ExeName); + Hist = HistoryFindBuffer(Console, + ExpungeCommandHistoryRequest->ExeName, + ExpungeCommandHistoryRequest->ExeLength, + ExpungeCommandHistoryRequest->Unicode2); HistoryDeleteBuffer(Hist); ConSrvReleaseConsole(Console, TRUE); @@ -597,9 +665,6 @@ PCONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryNumberCommandsRequest; PCONSOLE Console; PHISTORY_BUFFER Hist; - UINT MaxEntries = SetHistoryNumberCommandsRequest->NumCommands; - UNICODE_STRING ExeName; - PUNICODE_STRING OldEntryList, NewEntryList; if (!CsrValidateMessageBuffer(ApiMessage, (PVOID*)&SetHistoryNumberCommandsRequest->ExeName, @@ -612,15 +677,15 @@ Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); if (!NT_SUCCESS(Status)) return Status; - // FIXME: convert to UNICODE if Unicode(2) == FALSE - ExeName.Length = ExeName.MaximumLength = SetHistoryNumberCommandsRequest->ExeLength; - ExeName.Buffer = SetHistoryNumberCommandsRequest->ExeName; - - Hist = HistoryFindBuffer(Console, &ExeName); + Hist = HistoryFindBuffer(Console, + SetHistoryNumberCommandsRequest->ExeName, + SetHistoryNumberCommandsRequest->ExeLength, + SetHistoryNumberCommandsRequest->Unicode2); if (Hist) { - OldEntryList = Hist->Entries; - NewEntryList = ConsoleAllocHeap(0, MaxEntries * sizeof(UNICODE_STRING)); + UINT MaxEntries = SetHistoryNumberCommandsRequest->NumCommands; + PUNICODE_STRING OldEntryList = Hist->Entries; + PUNICODE_STRING NewEntryList = ConsoleAllocHeap(0, MaxEntries * sizeof(UNICODE_STRING)); if (!NewEntryList) { Status = STATUS_NO_MEMORY; @@ -647,6 +712,7 @@ CSR_API(SrvGetConsoleHistory) { +#if 0 // Vista+ PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest; PCONSOLE Console; NTSTATUS Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); @@ -658,10 +724,15 @@ ConSrvReleaseConsole(Console, TRUE); } return Status; +#else + DPRINT1("%s not yet implemented\n", __FUNCTION__); + return STATUS_NOT_IMPLEMENTED; +#endif } CSR_API(SrvSetConsoleHistory) { +#if 0 // Vista+ PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest; PCONSOLE Console; NTSTATUS Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console, TRUE); @@ -673,6 +744,10 @@ ConSrvReleaseConsole(Console, TRUE); } return Status; +#else + DPRINT1("%s not yet implemented\n", __FUNCTION__); + return STATUS_NOT_IMPLEMENTED; +#endif } CSR_API(SrvSetConsoleCommandHistoryMode)
10 years, 4 months
1
0
0
0
[dquintana] 63750: [HIVESFT.INF] * Shell service object DLLs expect the ShellServiceObjectDelayLoad key to exist. [SYSSETUP.INF] * Mark stobject.dll to be registered during setup. [STOBJECT] * Impl...
by dquintana@svn.reactos.org
Author: dquintana Date: Mon Jul 28 13:18:57 2014 New Revision: 63750 URL:
http://svn.reactos.org/svn/reactos?rev=63750&view=rev
Log: [HIVESFT.INF] * Shell service object DLLs expect the ShellServiceObjectDelayLoad key to exist. [SYSSETUP.INF] * Mark stobject.dll to be registered during setup. [STOBJECT] * Implement icon handling. * Implement rudimentary volume icon handler. * Allow the volume icon to show the mute status of the primary audio device. Modified: branches/shell-experiments/boot/bootdata/hivesft.inf branches/shell-experiments/dll/win32/stobject/CMakeLists.txt branches/shell-experiments/dll/win32/stobject/precomp.h branches/shell-experiments/dll/win32/stobject/resource.h branches/shell-experiments/dll/win32/stobject/stobject.cpp branches/shell-experiments/dll/win32/stobject/stobject.rc branches/shell-experiments/media/inf/syssetup.inf Modified: branches/shell-experiments/boot/bootdata/hivesft.inf URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/boot/bootdata…
============================================================================== --- branches/shell-experiments/boot/bootdata/hivesft.inf [iso-8859-1] (original) +++ branches/shell-experiments/boot/bootdata/hivesft.inf [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -108,6 +108,7 @@ HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Setup","DriverCachePath",0x00020002,"%SystemRoot%\Driver Cache" HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls",,0x00000012 HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions",,0x00000012 +HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad",,0x00000012 ; FIXME - usetup doesn't handle extra paths HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","",0x00000000,"cmd /c md ""%programfiles%\Internet Explorer\"" && move %windir%\iexplore.exe ""%programfiles%\Internet Explorer\"" && ""%programfiles%\Internet Explorer\iexplore.exe"" /RegServer" Modified: branches/shell-experiments/dll/win32/stobject/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/sto…
============================================================================== --- branches/shell-experiments/dll/win32/stobject/CMakeLists.txt [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/stobject/CMakeLists.txt [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -17,6 +17,7 @@ add_library(stobject SHARED stobject.cpp stobject.rc + volume.cpp ${CMAKE_CURRENT_BINARY_DIR}/stobject.def) set_module_type(stobject win32dll UNICODE) @@ -24,12 +25,14 @@ add_importlibs(stobject advapi32 - ole32 + winmm + ole32 + shlwapi + shell32 + comctl32 + msvcrt gdi32 user32 - comctl32 - shlwapi - msvcrt kernel32 ntdll) Modified: branches/shell-experiments/dll/win32/stobject/precomp.h URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/sto…
============================================================================== --- branches/shell-experiments/dll/win32/stobject/precomp.h [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/stobject/precomp.h [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -25,13 +25,85 @@ #include <strsafe.h> #include <atlbase.h> #include <atlcom.h> +#include <atlwin.h> + +#include <shellapi.h> #include <wine/debug.h> #include <wine/unicode.h> +#include "resource.h" + extern const GUID CLSID_SysTray; -#include "resource.h" +extern HINSTANCE g_hInstance; + +#define ID_ICON_VOLUME 0x4CB + +/* --------------- CSysTray callbacks ------------------------------ */ + +typedef CWinTraits < + WS_POPUP | WS_DLGFRAME | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, + WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_PALETTEWINDOW +> CMessageWndClass; + +class CSysTray : + public CComCoClass<CSysTray, &CLSID_SysTray>, + public CComObjectRootEx<CComMultiThreadModelNoCS>, + public CWindowImpl<CSysTray, CWindow, CMessageWndClass>, + public IOleCommandTarget +{ + // TODO: keep icon handlers here + + HWND hwndSysTray; + + static DWORD WINAPI s_SysTrayThreadProc(PVOID param); + HRESULT SysTrayMessageLoop(); + HRESULT SysTrayThreadProc(); + HRESULT CreateSysTrayThread(); + HRESULT DestroySysTrayWindow(); + + HRESULT InitIcons(); + HRESULT ShutdownIcons(); + HRESULT UpdateIcons(); + HRESULT ProcessIconMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); + +public: + HRESULT NotifyIcon(INT code, UINT uId, HICON hIcon, LPCWSTR szTip); + + HWND GetHWnd() { return m_hWnd; } + +protected: + BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID = 0); + +public: + CSysTray(); + virtual ~CSysTray(); + + // *** IOleCommandTarget methods *** + virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText); + virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut); + + DECLARE_WND_CLASS_EX(_T("SystemTray_Main"), CS_GLOBALCLASS, COLOR_3DFACE) + + DECLARE_REGISTRY_RESOURCEID(IDR_SYSTRAY) + DECLARE_NOT_AGGREGATABLE(CSysTray) + DECLARE_PROTECT_FINAL_CONSTRUCT() + + BEGIN_COM_MAP(CSysTray) + COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget) + END_COM_MAP() + +}; + +/* --------------- Icon callbacks ------------------------------ */ + +extern HRESULT STDMETHODCALLTYPE Volume_Init(_In_ CSysTray * pSysTray); +extern HRESULT STDMETHODCALLTYPE Volume_Shutdown(_In_ CSysTray * pSysTray); +extern HRESULT STDMETHODCALLTYPE Volume_Update(_In_ CSysTray * pSysTray); +extern HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam); + +/* --------------- Utils ------------------------------ */ static __inline ULONG Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...) Modified: branches/shell-experiments/dll/win32/stobject/resource.h URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/sto…
============================================================================== --- branches/shell-experiments/dll/win32/stobject/resource.h [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/stobject/resource.h [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -1,8 +1,8 @@ #pragma once -#define IDI_ICON1 200 -#define IDI_ICON2 210 -#define IDI_ICON3 230 -#define IDI_ICON4 231 +#define IDI_BATTERY 200 +#define IDI_EXTRACT 210 +#define IDI_VOLUME 230 +#define IDI_VOLMUTE 231 -#define IDR_SYSTRAY 11001 +#define IDR_SYSTRAY 11001 Modified: branches/shell-experiments/dll/win32/stobject/stobject.cpp URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/sto…
============================================================================== --- branches/shell-experiments/dll/win32/stobject/stobject.cpp [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/stobject/stobject.cpp [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -1,76 +1,238 @@ /* * PROJECT: ReactOS system libraries * LICENSE: GPL - See COPYING in the top level directory - * FILE: dll\win32\stobject\stobject.c + * FILE: dll\win32\stobject\stobject.cpp * PURPOSE: Systray shell service object - * PROGRAMMERS: Copyright 2014 Robert Naumann + * PROGRAMMERS: Robert Naumann + David Quintana <gigaherz(a)gmail.com> */ #include "precomp.h" #include <olectl.h> +#include <atlwin.h> WINE_DEFAULT_DEBUG_CHANNEL(stobject); const GUID CLSID_SysTray = { 0x35CEC8A3, 0x2BE6, 0x11D2, { 0x87, 0x73, 0x92, 0xE2, 0x20, 0x52, 0x41, 0x53 } }; -class CShellTrayModule : public CComModule -{ -public: +HINSTANCE g_hInstance; + +typedef HRESULT(STDMETHODCALLTYPE * PFNSTINIT) (_In_ CSysTray * pSysTray); +typedef HRESULT(STDMETHODCALLTYPE * PFNSTSHUTDOWN) (_In_ CSysTray * pSysTray); +typedef HRESULT(STDMETHODCALLTYPE * PFNSTUPDATE) (_In_ CSysTray * pSysTray); +typedef HRESULT(STDMETHODCALLTYPE * PFNSTMESSAGE) (_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam); + +struct SysTrayIconHandlers_t +{ + PFNSTINIT pfnInit; + PFNSTSHUTDOWN pfnShutdown; + PFNSTUPDATE pfnUpdate; + PFNSTMESSAGE pfnMessage; }; -class CSysTray : - public CComCoClass<CSysTray, &CLSID_SysTray>, - public CComObjectRootEx<CComMultiThreadModelNoCS>, - public IOleCommandTarget -{ - // TODO: keep icon handlers here - -public: - CSysTray() {} - virtual ~CSysTray() {} - - // *** IOleCommandTarget methods *** - virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText) - { - UNIMPLEMENTED; - return S_OK; - } - - virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) - { - if (!IsEqualGUID(*pguidCmdGroup, CGID_ShellServiceObject)) - return E_FAIL; - - switch (nCmdID) - { - case OLECMDID_NEW: // init - DbgPrint("CSysTray Init TODO: Initialize tray icon handlers.\n"); +SysTrayIconHandlers_t g_IconHandlers [] = { + { Volume_Init, Volume_Shutdown, Volume_Update, Volume_Message } +}; +const int g_NumIcons = _countof(g_IconHandlers); + +HRESULT CSysTray::InitIcons() +{ + for (int i = 0; i < g_NumIcons; i++) + { + HRESULT hr = g_IconHandlers[i].pfnInit(this); + if (FAILED(hr)) + return hr; + } + + return S_OK; +} + +HRESULT CSysTray::ShutdownIcons() +{ + for (int i = 0; i < g_NumIcons; i++) + { + HRESULT hr = g_IconHandlers[i].pfnShutdown(this); + if (FAILED(hr)) + return hr; + } + + return S_OK; +} + +HRESULT CSysTray::UpdateIcons() +{ + for (int i = 0; i < g_NumIcons; i++) + { + HRESULT hr = g_IconHandlers[i].pfnUpdate(this); + if (FAILED(hr)) + return hr; + } + + return S_OK; +} + +HRESULT CSysTray::ProcessIconMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + for (int i = 0; i < g_NumIcons; i++) + { + HRESULT hr = g_IconHandlers[i].pfnMessage(this, uMsg, wParam, lParam); + if (FAILED(hr)) + return hr; + + if (hr != S_FALSE) + return hr; + } + + return S_OK; +} + +HRESULT CSysTray::NotifyIcon(INT code, UINT uId, HICON hIcon, LPCWSTR szTip) +{ + NOTIFYICONDATA nim; + nim.cbSize = sizeof(NOTIFYICONDATA); + nim.uFlags = NIF_ICON | NIF_STATE | NIF_TIP; + nim.hIcon = hIcon; + nim.uID = uId; + nim.uCallbackMessage = uId; + nim.dwState = 0; + nim.dwStateMask = 0; + nim.hWnd = m_hWnd; + nim.uVersion = NOTIFYICON_VERSION; + if (szTip) + StringCchCopy(nim.szTip, _countof(nim.szTip), szTip); + else + nim.szTip[0] = 0; + BOOL ret = Shell_NotifyIcon(code, &nim); + return ret ? S_OK : E_FAIL; +} + +DWORD WINAPI CSysTray::s_SysTrayThreadProc(PVOID param) +{ + CSysTray * st = (CSysTray*) param; + return st->SysTrayThreadProc(); +} + +HRESULT CSysTray::SysTrayMessageLoop() +{ + BOOL ret; + MSG msg; + + while ((ret = GetMessage(&msg, NULL, 0, 0)) != 0) + { + if (ret < 0) break; - case OLECMDID_SAVE: // shutdown - DbgPrint("CSysTray Shutdown TODO: Shutdown.\n"); - break; - } - return S_OK; - } - - DECLARE_REGISTRY_RESOURCEID(IDR_SYSTRAY) - DECLARE_NOT_AGGREGATABLE(CSysTray) - DECLARE_PROTECT_FINAL_CONSTRUCT() - - BEGIN_COM_MAP(CSysTray) - COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget) - END_COM_MAP() -}; - + + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + return S_OK; +} + +HRESULT CSysTray::SysTrayThreadProc() +{ + WCHAR strFileName[MAX_PATH]; + GetModuleFileNameW(g_hInstance, strFileName, MAX_PATH); + HMODULE hLib = LoadLibraryW(strFileName); + + CoInitializeEx(NULL, COINIT_DISABLE_OLE1DDE | COINIT_APARTMENTTHREADED); + + Create(NULL); + + HRESULT ret = SysTrayMessageLoop(); + + CoUninitialize(); + + FreeLibraryAndExitThread(hLib, ret); +} + +HRESULT CSysTray::CreateSysTrayThread() +{ + DbgPrint("CSysTray Init TODO: Initialize tray icon handlers.\n"); + + HANDLE hThread = CreateThread(NULL, 0, s_SysTrayThreadProc, this, 0, NULL); + + CloseHandle(hThread); + + return S_OK; +} + +HRESULT CSysTray::DestroySysTrayWindow() +{ + DestroyWindow(); + hwndSysTray = NULL; + return S_OK; +} + +CSysTray::CSysTray() {} +CSysTray::~CSysTray() {} + +// *** IOleCommandTarget methods *** +HRESULT STDMETHODCALLTYPE CSysTray::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText) +{ + UNIMPLEMENTED; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CSysTray::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) +{ + if (!IsEqualGUID(*pguidCmdGroup, CGID_ShellServiceObject)) + return E_FAIL; + + switch (nCmdID) + { + case OLECMDID_NEW: // init + return CreateSysTrayThread(); + case OLECMDID_SAVE: // shutdown + return DestroySysTrayWindow(); + } + return S_OK; +} + +BOOL CSysTray::ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID) +{ + HRESULT hr; + + if (hWnd != m_hWnd) + return FALSE; + + switch (uMsg) + { + case WM_CREATE: + InitIcons(); + SetTimer(1, 2000, NULL); + return TRUE; + case WM_TIMER: + UpdateIcons(); + return TRUE; + case WM_DESTROY: + ShutdownIcons(); + return TRUE; + } + + DbgPrint("SysTray message received %u (%08p %08p)\n", uMsg, wParam, lParam); + + hr = ProcessIconMessage(uMsg, wParam, lParam); + if (FAILED(hr)) + return FALSE; + + if (hr == S_FALSE) + return FALSE; + + return TRUE; +} BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_SysTray, CSysTray) END_OBJECT_MAP() +class CShellTrayModule : public CComModule +{ +}; + CShellTrayModule gModule; -HINSTANCE g_hInstance; HRESULT RegisterShellServiceObject(REFGUID guidClass, LPCWSTR lpName, BOOL bRegister) { @@ -157,9 +319,9 @@ STDAPI DllGetClassObject( - REFCLSID rclsid, - REFIID riid, - LPVOID *ppv) +REFCLSID rclsid, +REFIID riid, +LPVOID *ppv) { return gModule.DllGetClassObject(rclsid, riid, ppv); } Modified: branches/shell-experiments/dll/win32/stobject/stobject.rc URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/sto…
============================================================================== --- branches/shell-experiments/dll/win32/stobject/stobject.rc [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/stobject/stobject.rc [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -6,10 +6,10 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -IDI_ICON1 ICON "resources/1.ico" -IDI_ICON2 ICON "resources/2.ico" -IDI_ICON3 ICON "resources/3.ico" -IDI_ICON4 ICON "resources/4.ico" +IDI_BATTERY ICON "resources/1.ico" +IDI_EXTRACT ICON "resources/2.ico" +IDI_VOLUME ICON "resources/3.ico" +IDI_VOLMUTE ICON "resources/4.ico" IDR_SYSTRAY REGISTRY "resources/rgs/systray.rgs" Modified: branches/shell-experiments/media/inf/syssetup.inf URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/media/inf/sys…
============================================================================== --- branches/shell-experiments/media/inf/syssetup.inf [iso-8859-1] (original) +++ branches/shell-experiments/media/inf/syssetup.inf [iso-8859-1] Mon Jul 28 13:18:57 2014 @@ -95,6 +95,7 @@ 11,,shell32.dll,3 11,,softpub.dll,1 11,,sti.dll,1 +11,,stobject.dll,1 11,,urlmon.dll,3 11,,vbscript.dll,1 11,,windowscodecs.dll,1
10 years, 4 months
1
0
0
0
[jgardou] 63749: [WIN32K] - Properly send WOC_RGN_CLIENT to the GDI driver when window client region changes - Increment CLIPOBJ::iUniq so that drivers know that something changed - Some improvemen...
by jgardou@svn.reactos.org
Author: jgardou Date: Mon Jul 28 13:03:25 2014 New Revision: 63749 URL:
http://svn.reactos.org/svn/reactos?rev=63749&view=rev
Log: [WIN32K] - Properly send WOC_RGN_CLIENT to the GDI driver when window client region changes - Increment CLIPOBJ::iUniq so that drivers know that something changed - Some improvements in win32k side of opengl pixel format selection - Hack around atom collision between the kernel atom table and the win32k one Now vmware ICD does something decent, even if you can use it only once per ReactOS session (!) Modified: trunk/reactos/win32ss/gdi/eng/engwindow.c trunk/reactos/win32ss/gdi/ntgdi/dclife.c trunk/reactos/win32ss/gdi/ntgdi/wingl.c trunk/reactos/win32ss/user/ntuser/ntuser.c trunk/reactos/win32ss/user/ntuser/windc.c Modified: trunk/reactos/win32ss/gdi/eng/engwindow.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/engwindow.…
============================================================================== --- trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] Mon Jul 28 13:03:25 2014 @@ -96,6 +96,7 @@ /* Update the WNDOBJ */ Clip->WndObj.rclClient = Window->rcClient; + Clip->WndObj.coClient.iUniq++; return TRUE; } @@ -111,12 +112,6 @@ { XCLIPOBJ *Clip; - /* - * This function is broken because AtomWndObj conflicts with - * properties set from user mode using SetPropW - */ - return; - ASSERT_IRQL_LESS_OR_EQUAL(PASSIVE_LEVEL); Clip = UserGetProp(Window, AtomWndObj); @@ -126,7 +121,7 @@ } ASSERT(Clip->Hwnd == Window->head.h); - if (Clip->WndObj.pvConsumer != NULL) + // if (Clip->WndObj.pvConsumer != NULL) { /* Update the WNDOBJ */ switch (flChanged) @@ -173,6 +168,11 @@ TRACE("EngCreateWnd: pso = 0x%p, hwnd = 0x%p, pfn = 0x%p, fl = 0x%lx, pixfmt = %d\n", pso, hWnd, pfn, fl, iPixelFormat); + if (fl & (WO_RGN_WINDOW | WO_RGN_DESKTOP_COORD | WO_RGN_UPDATE_ALL)) + { + FIXME("Unsupported flags: 0x%lx\n", fl & ~(WO_RGN_CLIENT_DELTA | WO_RGN_CLIENT | WO_RGN_SURFACE_DELTA | WO_RGN_SURFACE)); + } + calledFromUser = UserIsEntered(); if (!calledFromUser) { UserEnterShared(); @@ -209,7 +209,12 @@ /* Fill internal object */ Clip->Hwnd = hWnd; Clip->ChangeProc = pfn; - Clip->Flags = fl; + /* Keep track of relevant flags */ + Clip->Flags = fl & (WO_RGN_CLIENT_DELTA | WO_RGN_CLIENT | WO_RGN_SURFACE_DELTA | WO_RGN_SURFACE | WO_DRAW_NOTIFY); + if (fl & WO_SPRITE_NOTIFY) + Clip->Flags |= WOC_SPRITE_OVERLAP | WOC_SPRITE_NO_OVERLAP; + /* Those should always be sent */ + Clip->Flags |= WOC_CHANGED | WOC_DELETE; Clip->PixelFormat = iPixelFormat; /* associate object with window */ @@ -259,8 +264,8 @@ { /* Remove object from window */ IntRemoveProp(Window, AtomWndObj); - --gcountPWO; - } + } + --gcountPWO; if (!calledFromUser) { UserLeave(); Modified: trunk/reactos/win32ss/gdi/ntgdi/dclife.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/dclife.c…
============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/dclife.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/dclife.c [iso-8859-1] Mon Jul 28 13:03:25 2014 @@ -318,7 +318,7 @@ /* Other stuff */ pdc->hdcNext = NULL; pdc->hdcPrev = NULL; - pdc->ipfdDevMax = 0x0000ffff; + pdc->ipfdDevMax = 0; pdc->ulCopyCount = -1; pdc->ptlDoBanding.x = 0; pdc->ptlDoBanding.y = 0; Modified: trunk/reactos/win32ss/gdi/ntgdi/wingl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/wingl.c?…
============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/wingl.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/wingl.c [iso-8859-1] Mon Jul 28 13:03:25 2014 @@ -62,7 +62,19 @@ } if (!pdc->ipfdDevMax) - IntGetipfdDevMax(pdc); + { + if (!IntGetipfdDevMax(pdc)) + { + /* EngSetLastError ? */ + goto Exit; + } + } + + if (!ppfd) + { + Ret = pdc->ipfdDevMax; + goto Exit; + } if ((ipfd < 1) || (ipfd > pdc->ipfdDevMax)) { Modified: trunk/reactos/win32ss/user/ntuser/ntuser.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/ntuser…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/ntuser.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/ntuser.c [iso-8859-1] Mon Jul 28 13:03:25 2014 @@ -49,7 +49,12 @@ gpsi->atomFrostedWindowProp = IntAddGlobalAtom(L"SysFrostedWindow", TRUE); - AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE); + /* + * FIXME: AddPropW uses the global kernel atom table, thus leading to conflicts if we use + * the win32k atom table for this ones. What is the right thing to do ? + */ + // AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE); + NtAddAtom(L"SysWNDO", 14, &AtomWndObj); AtomLayer = IntAddGlobalAtom(L"SysLayer", TRUE); AtomFlashWndState = IntAddGlobalAtom(L"FlashWState", TRUE); Modified: trunk/reactos/win32ss/user/ntuser/windc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/windc.…
============================================================================== --- trunk/reactos/win32ss/user/ntuser/windc.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/windc.c [iso-8859-1] Mon Jul 28 13:03:25 2014 @@ -276,11 +276,9 @@ Dce->DCXFlags &= ~DCX_DCEDIRTY; GdiSelectVisRgn(Dce->hDC, RgnVisible); - - if (VerifyWnd(Window)) // Window maybe dead by this time before finishing the DCE release. - { - IntEngWindowChanged(Window, WOC_RGN_CLIENT); - } + /* Tell GDI driver */ + if (Window) + IntEngWindowChanged(Window, WOC_RGN_CLIENT); if (RgnVisible != NULL) { @@ -935,12 +933,6 @@ DceUpdateVisRgn(pDCE, CurrentWindow, pDCE->DCXFlags); IntGdiSetHookFlags(pDCE->hDC, DCHF_VALIDATEVISRGN); - - if (Window->head.h != pDCE->hwndCurrent) - { -// IntEngWindowChanged(CurrentWindow, WOC_RGN_CLIENT); -// UserDerefObject(CurrentWindow); - } } pLE = pDCE->List.Flink; pDCE = CONTAINING_RECORD(pLE, DCE, List);
10 years, 4 months
1
0
0
0
[jgardou] 63748: [WIN32K] - Pass the right arguments to the driver-supplied function when deleting a DRIVEROBJ
by jgardou@svn.reactos.org
Author: jgardou Date: Mon Jul 28 13:03:19 2014 New Revision: 63748 URL:
http://svn.reactos.org/svn/reactos?rev=63748&view=rev
Log: [WIN32K] - Pass the right arguments to the driver-supplied function when deleting a DRIVEROBJ Modified: trunk/reactos/win32ss/gdi/eng/driverobj.c Modified: trunk/reactos/win32ss/gdi/eng/driverobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/driverobj.…
============================================================================== --- trunk/reactos/win32ss/gdi/eng/driverobj.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/driverobj.c [iso-8859-1] Mon Jul 28 13:03:19 2014 @@ -29,7 +29,7 @@ pFreeProc = pedo->drvobj.pFreeProc; if (pFreeProc) { - NT_VERIFY(pFreeProc(pedo->drvobj.pvObj)); + NT_VERIFY(pFreeProc(&pedo->drvobj)); } } @@ -88,7 +88,7 @@ /* Manually call cleanup callback */ if (bCallBack) { - if (!pedo->drvobj.pFreeProc(pedo->drvobj.pvObj)) + if (!pedo->drvobj.pFreeProc(&pedo->drvobj)) { /* Callback failed */ DRIVEROBJ_UnlockObject(pedo);
10 years, 4 months
1
0
0
0
[jgardou] 63747: [OPENGL32] - Free resources when unloading the DLL - avoid potential crash in wglDescribePixelFormat - Prefer HW accelerated pixel formats in wglChoosePixelFormat - Try forwarding ...
by jgardou@svn.reactos.org
Author: jgardou Date: Mon Jul 28 13:03:10 2014 New Revision: 63747 URL:
http://svn.reactos.org/svn/reactos?rev=63747&view=rev
Log: [OPENGL32] - Free resources when unloading the DLL - avoid potential crash in wglDescribePixelFormat - Prefer HW accelerated pixel formats in wglChoosePixelFormat - Try forwarding ICD functions to win32k when relevant (untested!) Modified: trunk/reactos/dll/opengl/opengl32/dllmain.c trunk/reactos/dll/opengl/opengl32/icdload.c trunk/reactos/dll/opengl/opengl32/opengl32.h trunk/reactos/dll/opengl/opengl32/wgl.c Modified: trunk/reactos/dll/opengl/opengl32/dllmain.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/opengl32/dllmai…
============================================================================== --- trunk/reactos/dll/opengl/opengl32/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/opengl32/dllmain.c [iso-8859-1] Mon Jul 28 13:03:10 2014 @@ -19,16 +19,15 @@ #endif switch ( Reason ) { - /* The DLL is loading due to process - * initialization or a call to LoadLibrary. - */ case DLL_PROCESS_ATTACH: #ifdef OPENGL32_USE_TLS OglTlsIndex = TlsAlloc(); if(OglTlsIndex == TLS_OUT_OF_INDEXES) return FALSE; #endif - /* Fall through */ + /* Initialize Context list */ + InitializeListHead(&ContextListHead); + /* no break */ case DLL_THREAD_ATTACH: #ifdef OPENGL32_USE_TLS ThreadData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ThreadData)); @@ -45,28 +44,36 @@ break; case DLL_THREAD_DETACH: + /* Set NULL context for this thread */ + wglMakeCurrent(NULL, NULL); /* Clean up */ #ifdef OPENGL32_USE_TLS ThreadData = TlsGetValue(OglTlsIndex); if(ThreadData) HeapFree(GetProcessHeap(), 0, ThreadData); #else - NtCurrentTeb->glTable = NULL; + NtCurrentTeb()->glTable = NULL; #endif // defined(OPENGL32_USE_TLS) - break; - + break; case DLL_PROCESS_DETACH: /* Clean up */ + if (!Reserved) + { + /* The process is not shutting down: release everything */ + wglMakeCurrent(NULL, NULL); + IntDeleteAllContexts(); + IntDeleteAllICDs(); #ifdef OPENGL32_USE_TLS - ThreadData = TlsGetValue(OglTlsIndex); - if(ThreadData) - HeapFree(GetProcessHeap(), 0, ThreadData); + ThreadData = TlsGetValue(OglTlsIndex); + if(ThreadData) + HeapFree(GetProcessHeap(), 0, ThreadData); +#endif + } +#ifdef OPENGL32_USE_TLS TlsFree(OglTlsIndex); -#else - NtCurrentTeb->glTable = NULL; -#endif // defined(OPENGL32_USE_TLS) +#endif break; } return TRUE; -} +} Modified: trunk/reactos/dll/opengl/opengl32/icdload.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/opengl32/icdloa…
============================================================================== --- trunk/reactos/dll/opengl/opengl32/icdload.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/opengl32/icdload.c [iso-8859-1] Mon Jul 28 13:03:10 2014 @@ -36,6 +36,11 @@ { return context->dhglrc; } + +/* GDI entry points (win32k) */ +extern INT APIENTRY GdiDescribePixelFormat(HDC hdc, INT ipfd, UINT cjpfd, PPIXELFORMATDESCRIPTOR ppfd); +extern BOOL APIENTRY GdiSetPixelFormat(HDC hdc, INT ipfd); +extern BOOL APIENTRY GdiSwapBuffers(HDC hdc); /* Retrieves the ICD data (driver version + relevant DLL entry points) for a device context */ struct ICD_Data* IntGetIcdData(HDC hdc) @@ -245,6 +250,17 @@ DRV_LOAD(DrvSwapLayerBuffers); #undef DRV_LOAD + /* Let's see if GDI should handle this instead of the ICD DLL */ + // FIXME: maybe there is a better way + if (GdiDescribePixelFormat(hdc, 0, 0, NULL) != 0) + { + /* GDI knows what to do with that. Override */ + TRACE("Forwarding WGL calls to win32k!\n"); + data->DrvDescribePixelFormat = GdiDescribePixelFormat; + data->DrvSetPixelFormat = GdiSetPixelFormat; + data->DrvSwapBuffers = GdiSwapBuffers; + } + /* Copy the DriverName */ wcscpy(data->DriverName, DrvInfo.DriverName); @@ -264,4 +280,20 @@ FreeLibrary(data->hModule); HeapFree(GetProcessHeap(), 0, data); return NULL; -} +} + +void IntDeleteAllICDs(void) +{ + struct ICD_Data* data; + + EnterCriticalSection(&icdload_cs); + + while (ICD_Data_List != NULL) + { + data = ICD_Data_List; + ICD_Data_List = data->next; + + FreeLibrary(data->hModule); + HeapFree(GetProcessHeap(), 0, data); + } +} Modified: trunk/reactos/dll/opengl/opengl32/opengl32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/opengl32/opengl…
============================================================================== --- trunk/reactos/dll/opengl/opengl32/opengl32.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/opengl32/opengl32.h [iso-8859-1] Mon Jul 28 13:03:10 2014 @@ -21,10 +21,55 @@ #include "icd.h" +/* *$%$£^§! headers inclusion */ +static __inline +BOOLEAN +RemoveEntryList( + _In_ PLIST_ENTRY Entry) +{ + PLIST_ENTRY OldFlink; + PLIST_ENTRY OldBlink; + + OldFlink = Entry->Flink; + OldBlink = Entry->Blink; + OldFlink->Blink = OldBlink; + OldBlink->Flink = OldFlink; + return (OldFlink == OldBlink); +} + +static __inline +VOID +InsertTailList( + _In_ PLIST_ENTRY ListHead, + _In_ PLIST_ENTRY Entry +) +{ + PLIST_ENTRY OldBlink; + OldBlink = ListHead->Blink; + Entry->Flink = ListHead; + Entry->Blink = OldBlink; + OldBlink->Flink = Entry; + ListHead->Blink = Entry; +} + + +static __inline +VOID +InitializeListHead( + _Inout_ PLIST_ENTRY ListHead +) +{ + ListHead->Flink = ListHead->Blink = ListHead; +} + +extern LIST_ENTRY ContextListHead; + struct wgl_context { DWORD magic; volatile LONG lock; + + LIST_ENTRY ListEntry; DHGLRC dhglrc; struct ICD_Data* icd_data; @@ -58,6 +103,10 @@ /* Linked list */ struct wgl_dc_data* next; }; + +/* Clean up functions */ +void IntDeleteAllContexts(void); +void IntDeleteAllICDs(void); #ifdef OPENGL32_USE_TLS extern DWORD OglTlsIndex; Modified: trunk/reactos/dll/opengl/opengl32/wgl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/opengl32/wgl.c?…
============================================================================== --- trunk/reactos/dll/opengl/opengl32/wgl.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/opengl32/wgl.c [iso-8859-1] Mon Jul 28 13:03:10 2014 @@ -13,6 +13,8 @@ static CRITICAL_SECTION dc_data_cs = {NULL, -1, 0, 0, 0, 0}; static struct wgl_dc_data* dc_data_list = NULL; + +LIST_ENTRY ContextListHead; /* FIXME: suboptimal */ static @@ -139,7 +141,11 @@ /* Query ICD if needed */ if(format <= dc_data->nb_icd_formats) { - if(!dc_data->icd_data->DrvDescribePixelFormat(hdc, format, size, descr)) + struct ICD_Data* icd_data = dc_data->icd_data; + /* SetPixelFormat may have NULLified this */ + if (!icd_data) + icd_data = IntGetIcdData(hdc); + if(!icd_data->DrvDescribePixelFormat(hdc, format, size, descr)) { ret = 0; } @@ -174,7 +180,7 @@ if (!count) return 0; best_format = 0; - best.dwFlags = 0; + best.dwFlags = PFD_GENERIC_FORMAT; best.cAlphaBits = -1; best.cColorBits = -1; best.cDepthBits = -1; @@ -329,6 +335,9 @@ continue; found: + /* Prefer HW accelerated formats */ + if ((format.dwFlags & PFD_GENERIC_FORMAT) && !(best.dwFlags & PFD_GENERIC_FORMAT)) + continue; best_format = i; best = format; bestDBuffer = format.dwFlags & PFD_DOUBLEBUFFER; @@ -422,6 +431,9 @@ context->pixelformat = dc_data->pixelformat; context->thread_id = 0; + /* Insert into the list */ + InsertTailList(&ContextListHead, &context->ListEntry); + context->magic = 'GLRC'; TRACE("Success!\n"); return (HGLRC)context; @@ -525,6 +537,7 @@ sw_DeleteContext(context->dhglrc); context->magic = 0; + RemoveEntryList(&context->ListEntry); HeapFree(GetProcessHeap(), 0, context); return TRUE; @@ -902,3 +915,18 @@ { return 0; } + +/* Clean up on DLL unload */ +void +IntDeleteAllContexts(void) +{ + struct wgl_context* context; + LIST_ENTRY* Entry = ContextListHead.Flink; + + while (Entry != &ContextListHead) + { + context = CONTAINING_RECORD(Entry, struct wgl_context, ListEntry); + wglDeleteContext((HGLRC)context); + Entry = ContextListHead.Flink; + } +}
10 years, 4 months
1
0
0
0
[tfaber] 63746: [LIBUSB] - Don't output spurious failure message "There was no pending IRP for SCE" if everything is fine.
by tfaber@svn.reactos.org
Author: tfaber Date: Mon Jul 28 12:22:35 2014 New Revision: 63746 URL:
http://svn.reactos.org/svn/reactos?rev=63746&view=rev
Log: [LIBUSB] - Don't output spurious failure message "There was no pending IRP for SCE" if everything is fine. Modified: trunk/reactos/lib/drivers/libusb/hub_controller.cpp Modified: trunk/reactos/lib/drivers/libusb/hub_controller.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/libusb/hub_con…
============================================================================== --- trunk/reactos/lib/drivers/libusb/hub_controller.cpp [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/libusb/hub_controller.cpp [iso-8859-1] Mon Jul 28 12:22:35 2014 @@ -848,7 +848,9 @@ ASSERT(m_PendingSCEIrp == NULL); if (QueryStatusChangeEndpoint(Irp)) { - StatusChangeEndpointCallBack(this); + // + // We've seen a change already, so return immediately + // return STATUS_SUCCESS; }
10 years, 4 months
1
0
0
0
[ekohl] 63745: [MSGINA] - Implement the legal notice dialog. - Rename ReadRegSzKey to ReadRegSzValue. - Rename ReadRegDwordKey to ReadRegDwordValue.
by ekohl@svn.reactos.org
Author: ekohl Date: Sun Jul 27 21:05:42 2014 New Revision: 63745 URL:
http://svn.reactos.org/svn/reactos?rev=63745&view=rev
Log: [MSGINA] - Implement the legal notice dialog. - Rename ReadRegSzKey to ReadRegSzValue. - Rename ReadRegDwordKey to ReadRegDwordValue. Modified: trunk/reactos/dll/win32/msgina/gui.c trunk/reactos/dll/win32/msgina/lang/bg-BG.rc trunk/reactos/dll/win32/msgina/lang/cs-CZ.rc trunk/reactos/dll/win32/msgina/lang/de-DE.rc trunk/reactos/dll/win32/msgina/lang/en-US.rc trunk/reactos/dll/win32/msgina/lang/es-ES.rc trunk/reactos/dll/win32/msgina/lang/fr-FR.rc trunk/reactos/dll/win32/msgina/lang/he-IL.rc trunk/reactos/dll/win32/msgina/lang/id-ID.rc trunk/reactos/dll/win32/msgina/lang/it-IT.rc trunk/reactos/dll/win32/msgina/lang/ja-JP.rc trunk/reactos/dll/win32/msgina/lang/no-NO.rc trunk/reactos/dll/win32/msgina/lang/pl-PL.rc trunk/reactos/dll/win32/msgina/lang/ro-RO.rc trunk/reactos/dll/win32/msgina/lang/ru-RU.rc trunk/reactos/dll/win32/msgina/lang/sk-SK.rc trunk/reactos/dll/win32/msgina/lang/sq-AL.rc trunk/reactos/dll/win32/msgina/lang/tr-TR.rc trunk/reactos/dll/win32/msgina/lang/uk-UA.rc trunk/reactos/dll/win32/msgina/msgina.c trunk/reactos/dll/win32/msgina/msgina.h trunk/reactos/dll/win32/msgina/resource.h Modified: trunk/reactos/dll/win32/msgina/gui.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/gui.c?rev…
============================================================================== --- trunk/reactos/dll/win32/msgina/gui.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/gui.c [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -9,6 +9,7 @@ #include <wingdi.h> #include <winnls.h> +#include <winreg.h> typedef struct _DISPLAYSTATUSMSG { @@ -19,6 +20,13 @@ PWSTR pMessage; HANDLE StartupEvent; } DISPLAYSTATUSMSG, *PDISPLAYSTATUSMSG; + +typedef struct _LEGALNOTICEDATA +{ + LPWSTR pszCaption; + LPWSTR pszText; +} LEGALNOTICEDATA, *PLEGALNOTICEDATA; + static BOOL GUIInitialize( @@ -1162,13 +1170,89 @@ return FALSE; } + +static +INT_PTR +CALLBACK +LegalNoticeDialogProc( + IN HWND hwndDlg, + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) +{ + PLEGALNOTICEDATA pLegalNotice; + + switch (uMsg) + { + case WM_INITDIALOG: + pLegalNotice = (PLEGALNOTICEDATA)lParam; + SetWindowTextW(hwndDlg, pLegalNotice->pszCaption); + SetDlgItemTextW(hwndDlg, IDC_LEGALNOTICE_TEXT, pLegalNotice->pszText); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDOK: + EndDialog(hwndDlg, 0); + return TRUE; + + case IDCANCEL: + EndDialog(hwndDlg, 0); + return TRUE; + } + break; + } + + return FALSE; +} + + static INT GUILoggedOutSAS( IN OUT PGINA_CONTEXT pgContext) { + LEGALNOTICEDATA LegalNotice = {NULL, NULL}; + HKEY hKey = NULL; + LONG rc; int result; TRACE("GUILoggedOutSAS()\n"); + + rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE, + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", + 0, + KEY_QUERY_VALUE, + &hKey); + if (rc == ERROR_SUCCESS) + { + ReadRegSzValue(hKey, + L"LegalNoticeCaption", + &LegalNotice.pszCaption); + + ReadRegSzValue(hKey, + L"LegalNoticeText", + &LegalNotice.pszText); + + RegCloseKey(hKey); + } + + if (LegalNotice.pszCaption != NULL && wcslen(LegalNotice.pszCaption) != 0 && + LegalNotice.pszText != NULL && wcslen(LegalNotice.pszText) != 0) + { + pgContext->pWlxFuncs->WlxDialogBoxParam(pgContext->hWlx, + pgContext->hDllInstance, + MAKEINTRESOURCEW(IDD_LEGALNOTICE_DLG), + GetDesktopWindow(), + LegalNoticeDialogProc, + (LPARAM)&LegalNotice); + } + + if (LegalNotice.pszCaption != NULL) + HeapFree(GetProcessHeap(), 0, LegalNotice.pszCaption); + + if (LegalNotice.pszText != NULL) + HeapFree(GetProcessHeap(), 0, LegalNotice.pszText); result = pgContext->pWlxFuncs->WlxDialogBoxParam( pgContext->hWlx, Modified: trunk/reactos/dll/win32/msgina/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/bg-B…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/bg-BG.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "ÐÑказ", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "ÐдÑавейÑе!" Modified: trunk/reactos/dll/win32/msgina/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/cs-C…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/cs-CZ.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -133,6 +133,15 @@ PUSHBUTTON "Storno", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "VÃtejte!" Modified: trunk/reactos/dll/win32/msgina/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/de-D…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/de-DE.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Abbrechen", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Willkommen!" Modified: trunk/reactos/dll/win32/msgina/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/en-U…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/en-US.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Welcome!" Modified: trunk/reactos/dll/win32/msgina/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/es-E…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/es-ES.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -130,6 +130,15 @@ PUSHBUTTON "Cancelar", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "¡Bienvenido!" Modified: trunk/reactos/dll/win32/msgina/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/fr-F…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/fr-FR.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Annuler", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Bienvenue!" Modified: trunk/reactos/dll/win32/msgina/lang/he-IL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/he-I…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/he-IL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/he-IL.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "×ר×××× ×××××!" Modified: trunk/reactos/dll/win32/msgina/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/id-I…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/id-ID.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/id-ID.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Selamat datang!" Modified: trunk/reactos/dll/win32/msgina/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/it-I…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/it-IT.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -137,6 +137,15 @@ PUSHBUTTON "Annulla", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Benvenuti!" Modified: trunk/reactos/dll/win32/msgina/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/ja-J…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/ja-JP.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "ãã£ã³ã»ã«", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "ãããã!" Modified: trunk/reactos/dll/win32/msgina/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/no-N…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/no-NO.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -128,6 +128,15 @@ PUSHBUTTON "Avbryt", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Velkommen!" Modified: trunk/reactos/dll/win32/msgina/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/pl-P…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/pl-PL.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -138,6 +138,15 @@ PUSHBUTTON "Anuluj", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Witaj!" Modified: trunk/reactos/dll/win32/msgina/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/ro-R…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/ro-RO.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -130,6 +130,15 @@ PUSHBUTTON "A&nuleazÄ", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Bun venit!" Modified: trunk/reactos/dll/win32/msgina/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/ru-R…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/ru-RU.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -130,6 +130,15 @@ PUSHBUTTON "ÐÑмена", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "ÐобÑо пожаловаÑÑ!" Modified: trunk/reactos/dll/win32/msgina/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/sk-S…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/sk-SK.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -133,6 +133,15 @@ PUSHBUTTON "Zrušiť", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Vitajte!" Modified: trunk/reactos/dll/win32/msgina/lang/sq-AL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/sq-A…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/sq-AL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/sq-AL.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -131,6 +131,15 @@ PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "Mirëseerdhët!" Modified: trunk/reactos/dll/win32/msgina/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/tr-T…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/tr-TR.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -130,6 +130,15 @@ PUSHBUTTON "Ä°ptal", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "HoÅgeldiniz!" Modified: trunk/reactos/dll/win32/msgina/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/lang/uk-U…
============================================================================== --- trunk/reactos/dll/win32/msgina/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/lang/uk-UA.rc [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -136,6 +136,15 @@ PUSHBUTTON "СкаÑÑваÑи", IDCANCEL, 204, 122, 55, 14 END +IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200 +STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14 +END + STRINGTABLE BEGIN IDS_LOGGEDOUTSAS "ÐаÑкаво пÑоÑимо!" Modified: trunk/reactos/dll/win32/msgina/msgina.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/msgina.c?…
============================================================================== --- trunk/reactos/dll/win32/msgina/msgina.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/msgina.c [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -57,10 +57,10 @@ return TRUE; } -static LONG -ReadRegSzKey( +LONG +ReadRegSzValue( IN HKEY hKey, - IN LPCWSTR pszKey, + IN LPCWSTR pszValue, OUT LPWSTR* pValue) { LONG rc; @@ -72,7 +72,7 @@ return ERROR_INVALID_PARAMETER; *pValue = NULL; - rc = RegQueryValueExW(hKey, pszKey, NULL, &dwType, NULL, &cbData); + rc = RegQueryValueExW(hKey, pszValue, NULL, &dwType, NULL, &cbData); if (rc != ERROR_SUCCESS) return rc; if (dwType != REG_SZ) @@ -80,7 +80,7 @@ Value = HeapAlloc(GetProcessHeap(), 0, cbData + sizeof(WCHAR)); if (!Value) return ERROR_NOT_ENOUGH_MEMORY; - rc = RegQueryValueExW(hKey, pszKey, NULL, NULL, (LPBYTE)Value, &cbData); + rc = RegQueryValueExW(hKey, pszValue, NULL, NULL, (LPBYTE)Value, &cbData); if (rc != ERROR_SUCCESS) { HeapFree(GetProcessHeap(), 0, Value); @@ -94,9 +94,9 @@ } static LONG -ReadRegDwordKey( +ReadRegDwordValue( IN HKEY hKey, - IN LPCWSTR pszKey, + IN LPCWSTR pszValue, OUT LPDWORD pValue) { LONG rc; @@ -108,7 +108,7 @@ return ERROR_INVALID_PARAMETER; cbData = sizeof(DWORD); - rc = RegQueryValueExW(hKey, pszKey, NULL, &dwType, (LPBYTE)&dwValue, &cbData); + rc = RegQueryValueExW(hKey, pszValue, NULL, &dwType, (LPBYTE)&dwValue, &cbData); if (rc == ERROR_SUCCESS && dwType == REG_DWORD) *pValue = dwValue; @@ -131,7 +131,7 @@ KEY_QUERY_VALUE, &ControlKey); - rc = ReadRegSzKey(ControlKey, L"SystemStartOptions", &SystemStartOptions); + rc = ReadRegSzValue(ControlKey, L"SystemStartOptions", &SystemStartOptions); if (rc != ERROR_SUCCESS) goto cleanup; @@ -186,9 +186,9 @@ return FALSE; } - rc = ReadRegSzKey(hKey, - L"AutoAdminLogon", - &lpAutoAdminLogon); + rc = ReadRegSzValue(hKey, + L"AutoAdminLogon", + &lpAutoAdminLogon); if (rc == ERROR_SUCCESS) { if (wcscmp(lpAutoAdminLogon, L"1") == 0) @@ -197,9 +197,9 @@ TRACE("bAutoAdminLogon: %s\n", pgContext->bAutoAdminLogon ? "TRUE" : "FALSE"); - rc = ReadRegDwordKey(hKey, - L"DisableCAD", - &dwDisableCAD); + rc = ReadRegDwordValue(hKey, + L"DisableCAD", + &dwDisableCAD); if (rc == ERROR_SUCCESS) { if (dwDisableCAD != 0) @@ -209,18 +209,18 @@ TRACE("bDisableCAD: %s\n", pgContext->bDisableCAD ? "TRUE" : "FALSE"); pgContext->bShutdownWithoutLogon = TRUE; - rc = ReadRegSzKey(hKey, - L"ShutdownWithoutLogon", - &lpShutdownWithoutLogon); + rc = ReadRegSzValue(hKey, + L"ShutdownWithoutLogon", + &lpShutdownWithoutLogon); if (rc == ERROR_SUCCESS) { if (wcscmp(lpShutdownWithoutLogon, L"0") == 0) pgContext->bShutdownWithoutLogon = FALSE; } - rc = ReadRegSzKey(hKey, - L"DontDisplayLastUserName", - &lpDontDisplayLastUserName); + rc = ReadRegSzValue(hKey, + L"DontDisplayLastUserName", + &lpDontDisplayLastUserName); if (rc == ERROR_SUCCESS) { if (wcscmp(lpDontDisplayLastUserName, L"1") == 0) @@ -856,19 +856,19 @@ /* Set it by default to disabled, we might reenable it again later */ pgContext->AutoLogonState = AUTOLOGON_DISABLED; - rc = ReadRegSzKey(WinLogonKey, L"AutoAdminLogon", &AutoLogon); + rc = ReadRegSzValue(WinLogonKey, L"AutoAdminLogon", &AutoLogon); if (rc != ERROR_SUCCESS) goto cleanup; if (wcscmp(AutoLogon, L"1") != 0) goto cleanup; - rc = ReadRegSzKey(WinLogonKey, L"AutoLogonCount", &AutoCount); + rc = ReadRegSzValue(WinLogonKey, L"AutoLogonCount", &AutoCount); if (rc == ERROR_SUCCESS && wcscmp(AutoCount, L"0") == 0) goto cleanup; else if (rc != ERROR_FILE_NOT_FOUND) goto cleanup; - rc = ReadRegSzKey(WinLogonKey, L"IgnoreShiftOverride", &UserName); + rc = ReadRegSzValue(WinLogonKey, L"IgnoreShiftOverride", &UserName); if (rc == ERROR_SUCCESS) { if (wcscmp(AutoLogon, L"1") != 0 && GetKeyState(VK_SHIFT) < 0) @@ -887,13 +887,13 @@ { pgContext->AutoLogonState = AUTOLOGON_DISABLED; - rc = ReadRegSzKey(WinLogonKey, L"DefaultUserName", &UserName); + rc = ReadRegSzValue(WinLogonKey, L"DefaultUserName", &UserName); if (rc != ERROR_SUCCESS) goto cleanup; - rc = ReadRegSzKey(WinLogonKey, L"DefaultDomain", &Domain); + rc = ReadRegSzValue(WinLogonKey, L"DefaultDomain", &Domain); if (rc != ERROR_SUCCESS && rc != ERROR_FILE_NOT_FOUND) goto cleanup; - rc = ReadRegSzKey(WinLogonKey, L"DefaultPassword", &Password); + rc = ReadRegSzValue(WinLogonKey, L"DefaultPassword", &Password); if (rc != ERROR_SUCCESS) goto cleanup; Modified: trunk/reactos/dll/win32/msgina/msgina.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/msgina.h?…
============================================================================== --- trunk/reactos/dll/win32/msgina/msgina.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/msgina.h [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -97,6 +97,12 @@ /* msgina.c */ +LONG +ReadRegSzValue( + IN HKEY hKey, + IN LPCWSTR pszValue, + OUT LPWSTR *pValue); + BOOL DoAdminUnlock( IN PGINA_CONTEXT pgContext, Modified: trunk/reactos/dll/win32/msgina/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msgina/resource.…
============================================================================== --- trunk/reactos/dll/win32/msgina/resource.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msgina/resource.h [iso-8859-1] Sun Jul 27 21:05:42 2014 @@ -33,6 +33,10 @@ #define IDC_CHANGEPWD_NEWPWD2 1017 #define IDD_LOGOFF_DLG 107 + +#define IDD_LEGALNOTICE_DLG 1018 +#define IDC_LEGALNOTICE_TEXT 1019 + #define IDI_ROSLOGO 20000 #define IDI_SHELL_SHUTDOWN 20001
10 years, 5 months
1
0
0
0
[hbelusca] 63744: Sync with trunk r63743.
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Jul 27 20:52:13 2014 New Revision: 63744 URL:
http://svn.reactos.org/svn/reactos?rev=63744&view=rev
Log: Sync with trunk r63743. Added: branches/condrv_restructure/base/system/winlogon/res/ (props changed) - copied from r63743, trunk/reactos/base/system/winlogon/res/ branches/condrv_restructure/dll/cpl/usrmgr/lang/tr-TR.rc - copied unchanged from r63743, trunk/reactos/dll/cpl/usrmgr/lang/tr-TR.rc Modified: branches/condrv_restructure/ (props changed) branches/condrv_restructure/base/applications/calc/lang/tr-TR.rc branches/condrv_restructure/base/applications/charmap/lang/tr-TR.rc branches/condrv_restructure/base/applications/cmdutils/dbgprint/dbgprint.c branches/condrv_restructure/base/applications/dxdiag/lang/tr-TR.rc branches/condrv_restructure/base/applications/games/solitaire/lang/tr-TR.rc branches/condrv_restructure/base/applications/games/spider/lang/tr-TR.rc branches/condrv_restructure/base/applications/games/winmine/lang/tr-TR.rc branches/condrv_restructure/base/applications/mplay32/lang/tr-TR.rc branches/condrv_restructure/base/applications/mscutils/devmgmt/lang/tr-TR.rc branches/condrv_restructure/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc branches/condrv_restructure/base/applications/mscutils/eventvwr/lang/tr-TR.rc branches/condrv_restructure/base/applications/mscutils/servman/lang/tr-TR.rc branches/condrv_restructure/base/applications/mspaint/lang/tr-TR.rc branches/condrv_restructure/base/applications/notepad/lang/tr-TR.rc branches/condrv_restructure/base/applications/rapps/lang/tr-TR.rc branches/condrv_restructure/base/applications/taskmgr/lang/tr-TR.rc branches/condrv_restructure/base/applications/winhlp32/lang/Tr.rc branches/condrv_restructure/base/applications/write/lang/Sq.rc branches/condrv_restructure/base/setup/reactos/lang/tr-TR.rc branches/condrv_restructure/base/setup/usetup/filesup.c branches/condrv_restructure/base/setup/usetup/fslist.c branches/condrv_restructure/base/setup/vmwinst/lang/tr-TR.rc branches/condrv_restructure/base/setup/welcome/lang/tr-TR.rc branches/condrv_restructure/base/shell/cmd/cmd.c branches/condrv_restructure/base/system/format/format.c branches/condrv_restructure/base/system/services/database.c branches/condrv_restructure/base/system/smss/smutil.c branches/condrv_restructure/base/system/winlogon/lang/fr-FR.rc branches/condrv_restructure/base/system/winlogon/winlogon.c branches/condrv_restructure/base/system/winlogon/winlogon.rc branches/condrv_restructure/boot/armllb/inc/osloader.h branches/condrv_restructure/boot/bootdata/hivesys.inf branches/condrv_restructure/boot/bootdata/packages/reactos.dff.in branches/condrv_restructure/boot/freeldr/fdebug/fdebug.rc branches/condrv_restructure/boot/freeldr/fdebug/lang/tr-TR.rc branches/condrv_restructure/boot/freeldr/freeldr/CMakeLists.txt branches/condrv_restructure/boot/freeldr/freeldr/arch/arm/boot.s branches/condrv_restructure/cmake/CMakeMacros.cmake branches/condrv_restructure/dll/cpl/access/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/appwiz/addons.c branches/condrv_restructure/dll/cpl/appwiz/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/appwiz/rsrc.rc branches/condrv_restructure/dll/cpl/console/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/desk/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/hdwwiz/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/inetcpl/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/input/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/intl/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/joy/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/liccpa/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/main/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/mmsys/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/powercfg/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/sysdm/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/telephon/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/timedate/lang/tr-TR.rc branches/condrv_restructure/dll/cpl/usrmgr/usrmgr.rc branches/condrv_restructure/dll/cpl/wined3dcfg/lang/tr-TR.rc branches/condrv_restructure/dll/ntdll/csr/connect.c branches/condrv_restructure/dll/shellext/deskadp/deskadp.rc branches/condrv_restructure/dll/shellext/deskadp/lang/tr-TR.rc branches/condrv_restructure/dll/shellext/deskmon/deskmon.rc branches/condrv_restructure/dll/shellext/deskmon/lang/tr-TR.rc branches/condrv_restructure/dll/shellext/slayer/lang/tr-TR.rc branches/condrv_restructure/dll/shellext/slayer/slayer.rc branches/condrv_restructure/dll/win32/aclui/lang/tr-TR.rc branches/condrv_restructure/dll/win32/comctl32/comctl32.spec branches/condrv_restructure/dll/win32/devmgr/advprop.c branches/condrv_restructure/dll/win32/fmifs/chkdsk.c branches/condrv_restructure/dll/win32/fmifs/compress.c branches/condrv_restructure/dll/win32/fmifs/diskcopy.c branches/condrv_restructure/dll/win32/fmifs/fmifs.spec branches/condrv_restructure/dll/win32/fmifs/format.c branches/condrv_restructure/dll/win32/fmifs/init.c branches/condrv_restructure/dll/win32/fmifs/media.c branches/condrv_restructure/dll/win32/fmifs/precomp.h branches/condrv_restructure/dll/win32/fmifs/query.c branches/condrv_restructure/dll/win32/mpr/lang/mpr_Tr.rc branches/condrv_restructure/dll/win32/mpr/mpr.rc branches/condrv_restructure/dll/win32/msacm32/lang/msacm_Tr.rc branches/condrv_restructure/dll/win32/msacm32/msacm.rc branches/condrv_restructure/dll/win32/msi/msi_Tr.rc branches/condrv_restructure/dll/win32/netshell/connectmanager.cpp branches/condrv_restructure/dll/win32/netshell/shfldr_netconnect.cpp branches/condrv_restructure/dll/win32/oleaut32/lang/oleaut32_Tr.rc branches/condrv_restructure/dll/win32/oleaut32/oleaut32.rc branches/condrv_restructure/dll/win32/shell32/folders/fonts.cpp branches/condrv_restructure/dll/win32/shlwapi/lang/shlwapi_Tr.rc branches/condrv_restructure/dll/win32/shlwapi/path.c branches/condrv_restructure/dll/win32/shlwapi/shlwapi.rc branches/condrv_restructure/dll/win32/shlwapi/shlwapi.spec branches/condrv_restructure/dll/win32/urlmon/urlmon.spec branches/condrv_restructure/dll/win32/wbemprox/builtin.c branches/condrv_restructure/dll/win32/wininet/http.c branches/condrv_restructure/dll/win32/wininet/lang/wininet_Tr.rc branches/condrv_restructure/dll/win32/wininet/rsrc.rc branches/condrv_restructure/dll/win32/wldap32/lang/wldap32_Tr.rc branches/condrv_restructure/dll/win32/wldap32/wldap32.rc branches/condrv_restructure/drivers/sac/driver/memory.c branches/condrv_restructure/drivers/storage/class/disk/disk.c branches/condrv_restructure/drivers/storage/scsiport/scsiport.c branches/condrv_restructure/drivers/usb/usbehci/ (props changed) branches/condrv_restructure/drivers/usb/usbehci/interfaces.h branches/condrv_restructure/drivers/usb/usbehci/usb_queue.cpp branches/condrv_restructure/drivers/usb/usbehci/usb_request.cpp branches/condrv_restructure/drivers/usb/usbehci/usbehci.cpp branches/condrv_restructure/drivers/usb/usbohci/ (props changed) branches/condrv_restructure/drivers/usb/usbohci/usbohci.cpp branches/condrv_restructure/drivers/usb/usbuhci/usbuhci.cpp branches/condrv_restructure/include/ndk/psfuncs.h branches/condrv_restructure/include/ndk/pstypes.h branches/condrv_restructure/include/psdk/ntstatus.h branches/condrv_restructure/include/psdk/sal.h branches/condrv_restructure/include/reactos/libs/fmifs/fmifs.h branches/condrv_restructure/lib/drivers/libusb/common_interfaces.h (contents, props changed) branches/condrv_restructure/lib/drivers/libusb/hcd_controller.cpp (contents, props changed) branches/condrv_restructure/lib/drivers/libusb/hub_controller.cpp (contents, props changed) branches/condrv_restructure/lib/drivers/libusb/libusb.cpp (contents, props changed) branches/condrv_restructure/lib/fslib/vfatlib/fat32.c branches/condrv_restructure/lib/pseh/CMakeLists.txt branches/condrv_restructure/lib/rtl/error.c branches/condrv_restructure/lib/rtl/exception.c branches/condrv_restructure/lib/sdk/crt/CMakeLists.txt branches/condrv_restructure/lib/sdk/crt/string/winesup.c branches/condrv_restructure/ntoskrnl/cc/fs.c branches/condrv_restructure/ntoskrnl/cc/view.c branches/condrv_restructure/ntoskrnl/config/cmapi.c branches/condrv_restructure/ntoskrnl/config/ntapi.c branches/condrv_restructure/ntoskrnl/fstub/disksup.c branches/condrv_restructure/ntoskrnl/include/internal/cc.h branches/condrv_restructure/ntoskrnl/mm/ARM3/pagfault.c branches/condrv_restructure/ntoskrnl/mm/ARM3/pfnlist.c branches/condrv_restructure/ntoskrnl/mm/ARM3/virtual.c branches/condrv_restructure/ntoskrnl/po/power.c branches/condrv_restructure/ntoskrnl/ps/win32.c branches/condrv_restructure/subsystems/ntvdm/dos/dem.c branches/condrv_restructure/subsystems/win32/csrsrv/procsup.c branches/condrv_restructure/subsystems/win32/csrsrv/thredsup.c branches/condrv_restructure/tools/spec2def/spec2def.c branches/condrv_restructure/win32ss/gdi/eng/bitblt.c branches/condrv_restructure/win32ss/gdi/eng/clip.c branches/condrv_restructure/win32ss/gdi/eng/engobjects.h branches/condrv_restructure/win32ss/gdi/eng/engwindow.c branches/condrv_restructure/win32ss/gdi/eng/inteng.h branches/condrv_restructure/win32ss/gdi/eng/lineto.c branches/condrv_restructure/win32ss/gdi/ntgdi/arc.c branches/condrv_restructure/win32ss/gdi/ntgdi/bitblt.c branches/condrv_restructure/win32ss/gdi/ntgdi/cliprgn.c branches/condrv_restructure/win32ss/gdi/ntgdi/cliprgn.h branches/condrv_restructure/win32ss/gdi/ntgdi/dc.h branches/condrv_restructure/win32ss/gdi/ntgdi/dclife.c branches/condrv_restructure/win32ss/gdi/ntgdi/dcobjs.c branches/condrv_restructure/win32ss/gdi/ntgdi/dcstate.c branches/condrv_restructure/win32ss/gdi/ntgdi/dcutil.c branches/condrv_restructure/win32ss/gdi/ntgdi/dibobj.c branches/condrv_restructure/win32ss/gdi/ntgdi/drawing.c branches/condrv_restructure/win32ss/gdi/ntgdi/fillshap.c branches/condrv_restructure/win32ss/gdi/ntgdi/freetype.c branches/condrv_restructure/win32ss/gdi/ntgdi/line.c branches/condrv_restructure/win32ss/gdi/ntgdi/palette.c branches/condrv_restructure/win32ss/gdi/ntgdi/palette.h branches/condrv_restructure/win32ss/gdi/ntgdi/path.c branches/condrv_restructure/win32ss/gdi/ntgdi/polyfill.c branches/condrv_restructure/win32ss/gdi/ntgdi/region.c branches/condrv_restructure/win32ss/gdi/ntgdi/region.h branches/condrv_restructure/win32ss/gdi/ntgdi/wingl.c branches/condrv_restructure/win32ss/user/ntuser/cursoricon.c branches/condrv_restructure/win32ss/user/ntuser/cursoricon_new.c branches/condrv_restructure/win32ss/user/ntuser/dce.h branches/condrv_restructure/win32ss/user/ntuser/windc.c branches/condrv_restructure/win32ss/user/ntuser/window.c branches/condrv_restructure/win32ss/user/user32/windows/menu.c branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/bg-BG.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/cs-CZ.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/de-DE.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/el-GR.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/es-ES.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/fr-FR.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/ja-JP.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/no-NO.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/sk-SK.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/sv-SE.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/zh-CN.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/zh-TW.rc branches/condrv_restructure/win32ss/user/winsrv/usersrv/usersrv.rc [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/condrv_restructure/base/applications/calc/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/charmap/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/cmdutils/dbgprint/dbgprint.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/dxdiag/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/games/solitaire/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/games/spider/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/games/winmine/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mplay32/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mscutils/devmgmt/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mscutils/eventvwr/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mscutils/servman/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/mspaint/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/notepad/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/rapps/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/taskmgr/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/winhlp32/lang/Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/applications/write/lang/Sq.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/applica…
Modified: branches/condrv_restructure/base/setup/reactos/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/setup/r…
Modified: branches/condrv_restructure/base/setup/usetup/filesup.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/setup/u…
Modified: branches/condrv_restructure/base/setup/usetup/fslist.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/setup/u…
Modified: branches/condrv_restructure/base/setup/vmwinst/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/setup/v…
Modified: branches/condrv_restructure/base/setup/welcome/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/setup/w…
Modified: branches/condrv_restructure/base/shell/cmd/cmd.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/shell/c…
Modified: branches/condrv_restructure/base/system/format/format.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/base/system/services/database.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/base/system/smss/smutil.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/base/system/winlogon/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/base/system/winlogon/winlogon.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/base/system/winlogon/winlogon.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/base/system/…
Modified: branches/condrv_restructure/boot/armllb/inc/osloader.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/armllb/…
Modified: branches/condrv_restructure/boot/bootdata/hivesys.inf URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/bootdat…
Modified: branches/condrv_restructure/boot/bootdata/packages/reactos.dff.in URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/bootdat…
Modified: branches/condrv_restructure/boot/freeldr/fdebug/fdebug.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/freeldr…
Modified: branches/condrv_restructure/boot/freeldr/fdebug/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/freeldr…
Modified: branches/condrv_restructure/boot/freeldr/freeldr/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/freeldr…
Modified: branches/condrv_restructure/boot/freeldr/freeldr/arch/arm/boot.s URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/boot/freeldr…
Modified: branches/condrv_restructure/cmake/CMakeMacros.cmake URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/cmake/CMakeM…
Modified: branches/condrv_restructure/dll/cpl/access/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/acce…
Modified: branches/condrv_restructure/dll/cpl/appwiz/addons.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/appw…
Modified: branches/condrv_restructure/dll/cpl/appwiz/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/appw…
Modified: branches/condrv_restructure/dll/cpl/appwiz/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/appw…
Modified: branches/condrv_restructure/dll/cpl/console/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/cons…
Modified: branches/condrv_restructure/dll/cpl/desk/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/desk…
Modified: branches/condrv_restructure/dll/cpl/hdwwiz/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/hdww…
Modified: branches/condrv_restructure/dll/cpl/inetcpl/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/inet…
Modified: branches/condrv_restructure/dll/cpl/input/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/inpu…
Modified: branches/condrv_restructure/dll/cpl/intl/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/intl…
Modified: branches/condrv_restructure/dll/cpl/joy/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/joy/…
Modified: branches/condrv_restructure/dll/cpl/liccpa/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/licc…
Modified: branches/condrv_restructure/dll/cpl/main/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/main…
Modified: branches/condrv_restructure/dll/cpl/mmsys/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/mmsy…
Modified: branches/condrv_restructure/dll/cpl/powercfg/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/powe…
Modified: branches/condrv_restructure/dll/cpl/sysdm/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/sysd…
Modified: branches/condrv_restructure/dll/cpl/telephon/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/tele…
Modified: branches/condrv_restructure/dll/cpl/timedate/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/time…
Modified: branches/condrv_restructure/dll/cpl/usrmgr/usrmgr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/usrm…
Modified: branches/condrv_restructure/dll/cpl/wined3dcfg/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/wine…
Modified: branches/condrv_restructure/dll/ntdll/csr/connect.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/ntdll/cs…
Modified: branches/condrv_restructure/dll/shellext/deskadp/deskadp.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/shellext/deskadp/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/shellext/deskmon/deskmon.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/shellext/deskmon/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/shellext/slayer/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/shellext/slayer/slayer.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/shellext…
Modified: branches/condrv_restructure/dll/win32/aclui/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ac…
Modified: branches/condrv_restructure/dll/win32/comctl32/comctl32.spec URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/co…
Modified: branches/condrv_restructure/dll/win32/devmgr/advprop.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/de…
Modified: branches/condrv_restructure/dll/win32/fmifs/chkdsk.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/compress.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/diskcopy.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/fmifs.spec URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/format.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/init.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/media.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/precomp.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/fmifs/query.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/fm…
Modified: branches/condrv_restructure/dll/win32/mpr/lang/mpr_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/mp…
Modified: branches/condrv_restructure/dll/win32/mpr/mpr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/mp…
Modified: branches/condrv_restructure/dll/win32/msacm32/lang/msacm_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ms…
Modified: branches/condrv_restructure/dll/win32/msacm32/msacm.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ms…
Modified: branches/condrv_restructure/dll/win32/msi/msi_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ms…
Modified: branches/condrv_restructure/dll/win32/netshell/connectmanager.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ne…
Modified: branches/condrv_restructure/dll/win32/netshell/shfldr_netconnect.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ne…
Modified: branches/condrv_restructure/dll/win32/oleaut32/lang/oleaut32_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ol…
Modified: branches/condrv_restructure/dll/win32/oleaut32/oleaut32.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ol…
Modified: branches/condrv_restructure/dll/win32/shell32/folders/fonts.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/sh…
Modified: branches/condrv_restructure/dll/win32/shlwapi/lang/shlwapi_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/sh…
Modified: branches/condrv_restructure/dll/win32/shlwapi/path.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/sh…
Modified: branches/condrv_restructure/dll/win32/shlwapi/shlwapi.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/sh…
Modified: branches/condrv_restructure/dll/win32/shlwapi/shlwapi.spec URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/sh…
Modified: branches/condrv_restructure/dll/win32/urlmon/urlmon.spec URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/ur…
Modified: branches/condrv_restructure/dll/win32/wbemprox/builtin.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wb…
Modified: branches/condrv_restructure/dll/win32/wininet/http.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wi…
Modified: branches/condrv_restructure/dll/win32/wininet/lang/wininet_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wi…
Modified: branches/condrv_restructure/dll/win32/wininet/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wi…
Modified: branches/condrv_restructure/dll/win32/wldap32/lang/wldap32_Tr.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wl…
Modified: branches/condrv_restructure/dll/win32/wldap32/wldap32.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/win32/wl…
Modified: branches/condrv_restructure/drivers/sac/driver/memory.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/sac/…
Modified: branches/condrv_restructure/drivers/storage/class/disk/disk.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/stor…
Modified: branches/condrv_restructure/drivers/storage/scsiport/scsiport.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/stor…
Modified: branches/condrv_restructure/drivers/usb/usbehci/interfaces.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/drivers/usb/usbehci/usb_queue.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/drivers/usb/usbehci/usb_request.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/drivers/usb/usbehci/usbehci.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/drivers/usb/usbohci/usbohci.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/drivers/usb/usbuhci/usbuhci.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/drivers/usb/…
Modified: branches/condrv_restructure/include/ndk/psfuncs.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/ndk/…
Modified: branches/condrv_restructure/include/ndk/pstypes.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/ndk/…
Modified: branches/condrv_restructure/include/psdk/ntstatus.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/psdk…
Modified: branches/condrv_restructure/include/psdk/sal.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/psdk…
Modified: branches/condrv_restructure/include/reactos/libs/fmifs/fmifs.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/include/reac…
Modified: branches/condrv_restructure/lib/drivers/libusb/common_interfaces.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/drivers/…
Modified: branches/condrv_restructure/lib/drivers/libusb/hcd_controller.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/drivers/…
Modified: branches/condrv_restructure/lib/drivers/libusb/hub_controller.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/drivers/…
Modified: branches/condrv_restructure/lib/drivers/libusb/libusb.cpp URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/drivers/…
Modified: branches/condrv_restructure/lib/fslib/vfatlib/fat32.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/fslib/vf…
Modified: branches/condrv_restructure/lib/pseh/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/pseh/CMa…
Modified: branches/condrv_restructure/lib/rtl/error.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/rtl/erro…
Modified: branches/condrv_restructure/lib/rtl/exception.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/rtl/exce…
Modified: branches/condrv_restructure/lib/sdk/crt/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/sdk/crt/…
Modified: branches/condrv_restructure/lib/sdk/crt/string/winesup.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/lib/sdk/crt/…
Modified: branches/condrv_restructure/ntoskrnl/cc/fs.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/cc/…
Modified: branches/condrv_restructure/ntoskrnl/cc/view.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/cc/…
Modified: branches/condrv_restructure/ntoskrnl/config/cmapi.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/con…
Modified: branches/condrv_restructure/ntoskrnl/config/ntapi.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/con…
Modified: branches/condrv_restructure/ntoskrnl/fstub/disksup.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/fst…
Modified: branches/condrv_restructure/ntoskrnl/include/internal/cc.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/inc…
Modified: branches/condrv_restructure/ntoskrnl/mm/ARM3/pagfault.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/mm/…
Modified: branches/condrv_restructure/ntoskrnl/mm/ARM3/pfnlist.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/mm/…
Modified: branches/condrv_restructure/ntoskrnl/mm/ARM3/virtual.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/mm/…
Modified: branches/condrv_restructure/ntoskrnl/po/power.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/po/…
Modified: branches/condrv_restructure/ntoskrnl/ps/win32.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/ntoskrnl/ps/…
Modified: branches/condrv_restructure/subsystems/ntvdm/dos/dem.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/subsystems/n…
Modified: branches/condrv_restructure/subsystems/win32/csrsrv/procsup.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/subsystems/w…
Modified: branches/condrv_restructure/subsystems/win32/csrsrv/thredsup.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/subsystems/w…
Modified: branches/condrv_restructure/tools/spec2def/spec2def.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/tools/spec2d…
Modified: branches/condrv_restructure/win32ss/gdi/eng/bitblt.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/eng/clip.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/eng/engobjects.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/eng/engwindow.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/eng/inteng.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/eng/lineto.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/arc.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/bitblt.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/cliprgn.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/cliprgn.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dc.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dclife.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dcobjs.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dcstate.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dcutil.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/dibobj.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/drawing.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/fillshap.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/freetype.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/line.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/palette.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/palette.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/path.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/polyfill.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/region.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/region.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/gdi/ntgdi/wingl.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/gdi/…
Modified: branches/condrv_restructure/win32ss/user/ntuser/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/ntuser/cursoricon_new.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/ntuser/dce.h URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/ntuser/windc.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/ntuser/window.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/user32/windows/menu.c URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
Modified: branches/condrv_restructure/win32ss/user/winsrv/usersrv/usersrv.rc URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
10 years, 5 months
1
0
0
0
[jgardou] 63743: [WIN32K] - Hack around a bug (tm)
by jgardou@svn.reactos.org
Author: jgardou Date: Sat Jul 26 15:53:20 2014 New Revision: 63743 URL:
http://svn.reactos.org/svn/reactos?rev=63743&view=rev
Log: [WIN32K] - Hack around a bug (tm) Modified: trunk/reactos/win32ss/gdi/eng/engwindow.c Modified: trunk/reactos/win32ss/gdi/eng/engwindow.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/engwindow.…
============================================================================== --- trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] Sat Jul 26 15:53:20 2014 @@ -111,6 +111,12 @@ { XCLIPOBJ *Clip; + /* + * This function is broken because AtomWndObj conflicts with + * properties set from user mode using SetPropW + */ + return; + ASSERT_IRQL_LESS_OR_EQUAL(PASSIVE_LEVEL); Clip = UserGetProp(Window, AtomWndObj);
10 years, 5 months
1
0
0
0
[jgardou] 63742: [WIN32K] - Avoid useless casts - Add a few debug prints - Add sanity check
by jgardou@svn.reactos.org
Author: jgardou Date: Sat Jul 26 15:41:33 2014 New Revision: 63742 URL:
http://svn.reactos.org/svn/reactos?rev=63742&view=rev
Log: [WIN32K] - Avoid useless casts - Add a few debug prints - Add sanity check Modified: trunk/reactos/win32ss/gdi/eng/engobjects.h trunk/reactos/win32ss/gdi/eng/engwindow.c Modified: trunk/reactos/win32ss/gdi/eng/engobjects.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/engobjects…
============================================================================== --- trunk/reactos/win32ss/gdi/eng/engobjects.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/engobjects.h [iso-8859-1] Sat Jul 26 15:41:33 2014 @@ -85,6 +85,7 @@ ULONG RectCount; RECTL* Rects; } CLIPGDI, *PCLIPGDI; +C_ASSERT(FIELD_OFFSET(CLIPGDI, ClipObj) == FIELD_OFFSET(CLIPGDI, WndObj.coClient)); // HACK, until we use the original structure #define XCLIPOBJ CLIPGDI Modified: trunk/reactos/win32ss/gdi/eng/engwindow.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/engwindow.…
============================================================================== --- trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/engwindow.c [iso-8859-1] Sat Jul 26 15:41:33 2014 @@ -18,11 +18,9 @@ VOID FASTCALL IntEngWndCallChangeProc( - IN WNDOBJ *pwo, - IN FLONG flChanged) -{ - XCLIPOBJ* Clip = CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); - + _In_ XCLIPOBJ *Clip, + _In_ FLONG flChanged) +{ if (Clip->ChangeProc == NULL) { return; @@ -35,15 +33,14 @@ return; } + TRACE("Calling WNDOBJCHANGEPROC (0x%p), Changed = 0x%x\n", + Clip->ChangeProc, flChanged); + /* Call the WNDOBJCHANGEPROC */ if (flChanged == WOC_CHANGED) - { - pwo = NULL; - } - - TRACE("Calling WNDOBJCHANGEPROC (0x%p), Changed = 0x%x\n", - Clip->ChangeProc, flChanged); - Clip->ChangeProc(pwo, flChanged); + Clip->ChangeProc(NULL, flChanged); + else + Clip->ChangeProc(&Clip->WndObj, flChanged); } /* @@ -112,30 +109,25 @@ _In_ PWND Window, _In_ FLONG flChanged) { - PPROPERTY pprop; - XCLIPOBJ *Current; - HWND hWnd; + XCLIPOBJ *Clip; ASSERT_IRQL_LESS_OR_EQUAL(PASSIVE_LEVEL); - hWnd = Window->head.h; - pprop = IntGetProp(Window, AtomWndObj); - if (!pprop) + Clip = UserGetProp(Window, AtomWndObj); + if (!Clip) { return; } - Current = (XCLIPOBJ *)pprop->Data; - if ( gcountPWO && - Current && - Current->Hwnd == hWnd && - Current->WndObj.pvConsumer != NULL ) + + ASSERT(Clip->Hwnd == Window->head.h); + if (Clip->WndObj.pvConsumer != NULL) { /* Update the WNDOBJ */ switch (flChanged) { case WOC_RGN_CLIENT: /* Update the clipobj and client rect of the WNDOBJ */ - IntEngWndUpdateClipObj(Current, Window); + IntEngWndUpdateClipObj(Clip, Window); break; case WOC_DELETE: @@ -144,12 +136,12 @@ } /* Call the change proc */ - IntEngWndCallChangeProc(&Current->WndObj, flChanged); + IntEngWndCallChangeProc(Clip, flChanged); /* HACK: Send WOC_CHANGED after WOC_RGN_CLIENT */ if (flChanged == WOC_RGN_CLIENT) { - IntEngWndCallChangeProc(&Current->WndObj, WOC_CHANGED); + IntEngWndCallChangeProc(Clip, WOC_CHANGED); } } } @@ -218,7 +210,7 @@ IntSetProp(Window, AtomWndObj, Clip); ++gcountPWO; - TRACE("EngCreateWnd: SUCCESS!\n"); + TRACE("EngCreateWnd: SUCCESS: %p!\n", WndObjUser); RETURN( WndObjUser); @@ -315,6 +307,7 @@ IN WNDOBJ *pwo, IN PVOID pvConsumer) { + XCLIPOBJ* Clip = CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); BOOL Hack; TRACE("WNDOBJ_vSetConsumer: pwo = 0x%p, pvConsumer = 0x%p\n", pwo, pvConsumer); @@ -333,9 +326,9 @@ if (Hack) { FIXME("Is this hack really needed?\n"); - IntEngWndCallChangeProc(pwo, WOC_RGN_CLIENT); - IntEngWndCallChangeProc(pwo, WOC_CHANGED); - IntEngWndCallChangeProc(pwo, WOC_DRAWN); + IntEngWndCallChangeProc(Clip, WOC_RGN_CLIENT); + IntEngWndCallChangeProc(Clip, WOC_CHANGED); + IntEngWndCallChangeProc(Clip, WOC_DRAWN); } }
10 years, 5 months
1
0
0
0
← Newer
1
2
3
4
5
6
7
8
...
12
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
Results per page:
10
25
50
100
200