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
May 2016
----- 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
18 participants
260 discussions
Start a n
N
ew thread
[hbelusca] 71479: [REACTOS]: Turn tabs into spaces + indent.
by hbelusca@svn.reactos.org
Author: hbelusca Date: Tue May 31 23:02:46 2016 New Revision: 71479 URL:
http://svn.reactos.org/svn/reactos?rev=71479&view=rev
Log: [REACTOS]: Turn tabs into spaces + indent. Modified: trunk/reactos/sdk/include/reactos/buildno.h.cmake trunk/reactos/sdk/include/reactos/version.h.cmake Modified: trunk/reactos/sdk/include/reactos/buildno.h.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/reactos/buildn…
============================================================================== --- trunk/reactos/sdk/include/reactos/buildno.h.cmake [iso-8859-1] (original) +++ trunk/reactos/sdk/include/reactos/buildno.h.cmake [iso-8859-1] Tue May 31 23:02:46 2016 @@ -1,14 +1,18 @@ /* Do not edit - Machine generated */ #ifndef _INC_REACTOS_BUILDNO #define _INC_REACTOS_BUILDNO -#define KERNEL_VERSION_BUILD @KERNEL_VERSION_BUILD@ -#define KERNEL_VERSION_BUILD_HEX 0x@KERNEL_VERSION_BUILD_HEX@ -#define KERNEL_VERSION_BUILD_STR "@KERNEL_VERSION_BUILD@-@REVISION@" -#define KERNEL_VERSION_BUILD_RC "@KERNEL_VERSION_BUILD@-@REVISION@\0" -#define KERNEL_VERSION_RC "@KERNEL_VERSION@\0" -#define KERNEL_VERSION_STR "@KERNEL_VERSION@" -#define REACTOS_DLL_VERSION_MAJOR @REACTOS_DLL_VERSION_MAJOR@ -#define REACTOS_DLL_VERSION_RC "@DLL_VERSION_STR@\0" -#define REACTOS_DLL_VERSION_STR "@DLL_VERSION_STR@" + +#define KERNEL_VERSION_BUILD @KERNEL_VERSION_BUILD@ +#define KERNEL_VERSION_BUILD_HEX 0x@KERNEL_VERSION_BUILD_HEX@ +#define KERNEL_VERSION_BUILD_STR "@KERNEL_VERSION_BUILD@-@REVISION@" +#define KERNEL_VERSION_BUILD_RC "@KERNEL_VERSION_BUILD@-@REVISION@\0" + +#define KERNEL_VERSION_RC "@KERNEL_VERSION@\0" +#define KERNEL_VERSION_STR "@KERNEL_VERSION@" + +#define REACTOS_DLL_VERSION_MAJOR @REACTOS_DLL_VERSION_MAJOR@ +#define REACTOS_DLL_VERSION_RC "@DLL_VERSION_STR@\0" +#define REACTOS_DLL_VERSION_STR "@DLL_VERSION_STR@" + #endif /* EOF */ Modified: trunk/reactos/sdk/include/reactos/version.h.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/reactos/versio…
============================================================================== --- trunk/reactos/sdk/include/reactos/version.h.cmake [iso-8859-1] (original) +++ trunk/reactos/sdk/include/reactos/version.h.cmake [iso-8859-1] Tue May 31 23:02:46 2016 @@ -5,25 +5,25 @@ * PURPOSE: Defines the current version * PROGRAMMER: David Welch (welch(a)mcmail.com) * REVISIONS: - * 1999-11-06 (ea) - * Moved from include/internal in include/reactos - * to be used by buildno. - * 2002-01-17 (ea) - * KERNEL_VERSION removed. Use - * reactos/buildno.h:KERNEL_VERSION_STR instead. + * 1999-11-06 (ea) + * Moved from include/internal in include/reactos + * to be used by buildno. + * 2002-01-17 (ea) + * KERNEL_VERSION removed. Use + * reactos/buildno.h:KERNEL_VERSION_STR instead. */ #ifndef __VERSION_H #define __VERSION_H -#define KERNEL_VERSION_MAJOR @KERNEL_VERSION_MAJOR@ -#define KERNEL_VERSION_MINOR @KERNEL_VERSION_MINOR@ -#define KERNEL_VERSION_PATCH_LEVEL @KERNEL_VERSION_PATCH_LEVEL@ +#define KERNEL_VERSION_MAJOR @KERNEL_VERSION_MAJOR@ +#define KERNEL_VERSION_MINOR @KERNEL_VERSION_MINOR@ +#define KERNEL_VERSION_PATCH_LEVEL @KERNEL_VERSION_PATCH_LEVEL@ #define COPYRIGHT_YEAR "@COPYRIGHT_YEAR@" /* KERNEL_VERSION_BUILD_TYPE is "SVN" or "" (for the release) */ -#define KERNEL_VERSION_BUILD_TYPE "@KERNEL_VERSION_BUILD_TYPE@" +#define KERNEL_VERSION_BUILD_TYPE "@KERNEL_VERSION_BUILD_TYPE@" /* KERNEL_VERSION_RELEASE_TYPE is "RC1", "RC2" or "" (for the final one) */ #define KERNEL_VERSION_RELEASE_TYPE "@KERNEL_VERSION_RELEASE_TYPE@"
8 years, 6 months
1
0
0
0
[hbelusca] 71478: [REACTOS][ROSAPPS][ROSSUBSYS] The buildno #defines KERNEL_RELEASE_STR, KERNEL_RELEASE_RC (introduced in r756 17 years ago), and REACTOS_DLL_RELEASE_STR, REACTOS_DLL_RELEASE_RC (in...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Tue May 31 22:36:48 2016 New Revision: 71478 URL:
http://svn.reactos.org/svn/reactos?rev=71478&view=rev
Log: [REACTOS][ROSAPPS][ROSSUBSYS] The buildno #defines KERNEL_RELEASE_STR, KERNEL_RELEASE_RC (introduced in r756 17 years ago), and REACTOS_DLL_RELEASE_STR, REACTOS_DLL_RELEASE_RC (introduced in r11297 12 years ago) are things that never really caught out in our project. They were actually eclipsed in favour of the more common KERNEL_VERSION_STR and co. in our code. I therefore remove the very last remains of the old KERNEL_RELEASE_xxx defines and replace them with KERNEL_VERSION_xxx ones. Modified: trunk/reactos/base/shell/cmd/cmd.c trunk/reactos/base/shell/cmd/ver.c trunk/reactos/sdk/include/reactos/buildno.h.cmake trunk/rosapps/applications/sysutils/lsdd/lsdd.c trunk/rosapps/applications/sysutils/tlist/tlist.c trunk/rossubsys/posix/server/misc/main.c Modified: trunk/reactos/base/shell/cmd/cmd.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/cmd.c?rev=7…
============================================================================== --- trunk/reactos/base/shell/cmd/cmd.c [iso-8859-1] (original) +++ trunk/reactos/base/shell/cmd/cmd.c [iso-8859-1] Tue May 31 22:36:48 2016 @@ -1745,7 +1745,7 @@ /* If neither /C or /K was given, display a simple version string */ ConOutChar(_T('\n')); ConOutResPrintf(STRING_REACTOS_VERSION, - _T(KERNEL_RELEASE_STR), + _T(KERNEL_VERSION_STR), _T(KERNEL_VERSION_BUILD_STR)); ConOutPuts(_T("(C) Copyright 1998-") _T(COPYRIGHT_YEAR) _T(" ReactOS Team.\n")); } Modified: trunk/reactos/base/shell/cmd/ver.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/ver.c?rev=7…
============================================================================== --- trunk/reactos/base/shell/cmd/ver.c [iso-8859-1] (original) +++ trunk/reactos/base/shell/cmd/ver.c [iso-8859-1] Tue May 31 22:36:48 2016 @@ -135,7 +135,7 @@ return 0; } - ConOutResPrintf(STRING_CMD_SHELLINFO, _T(KERNEL_RELEASE_STR), _T(KERNEL_VERSION_BUILD_STR)); + ConOutResPrintf(STRING_CMD_SHELLINFO, _T(KERNEL_VERSION_STR), _T(KERNEL_VERSION_BUILD_STR)); ConOutChar(_T('\n')); ConOutResPuts(STRING_VERSION_RUNNING_ON); PrintOSVersion(); Modified: trunk/reactos/sdk/include/reactos/buildno.h.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/reactos/buildn…
============================================================================== --- trunk/reactos/sdk/include/reactos/buildno.h.cmake [iso-8859-1] (original) +++ trunk/reactos/sdk/include/reactos/buildno.h.cmake [iso-8859-1] Tue May 31 22:36:48 2016 @@ -5,13 +5,9 @@ #define KERNEL_VERSION_BUILD_HEX 0x@KERNEL_VERSION_BUILD_HEX@ #define KERNEL_VERSION_BUILD_STR "@KERNEL_VERSION_BUILD@-@REVISION@" #define KERNEL_VERSION_BUILD_RC "@KERNEL_VERSION_BUILD@-@REVISION@\0" -#define KERNEL_RELEASE_RC "@KERNEL_VERSION@\0" -#define KERNEL_RELEASE_STR "@KERNEL_VERSION@" #define KERNEL_VERSION_RC "@KERNEL_VERSION@\0" #define KERNEL_VERSION_STR "@KERNEL_VERSION@" #define REACTOS_DLL_VERSION_MAJOR @REACTOS_DLL_VERSION_MAJOR@ -#define REACTOS_DLL_RELEASE_RC "@DLL_VERSION_STR@\0" -#define REACTOS_DLL_RELEASE_STR "@DLL_VERSION_STR@" #define REACTOS_DLL_VERSION_RC "@DLL_VERSION_STR@\0" #define REACTOS_DLL_VERSION_STR "@DLL_VERSION_STR@" #endif Modified: trunk/rosapps/applications/sysutils/lsdd/lsdd.c URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/lsdd…
============================================================================== --- trunk/rosapps/applications/sysutils/lsdd/lsdd.c [iso-8859-1] (original) +++ trunk/rosapps/applications/sysutils/lsdd/lsdd.c [iso-8859-1] Tue May 31 22:36:48 2016 @@ -60,7 +60,7 @@ printf ( "ReactOS/Win32 %s - List DOS Devices Utility\n" "Written by E.Aliberti (%s)\n\n", - KERNEL_RELEASE_STR, + KERNEL_VERSION_STR, __DATE__ ); Modified: trunk/rosapps/applications/sysutils/tlist/tlist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/tlis…
============================================================================== --- trunk/rosapps/applications/sysutils/tlist/tlist.c [iso-8859-1] (original) +++ trunk/rosapps/applications/sysutils/tlist/tlist.c [iso-8859-1] Tue May 31 22:36:48 2016 @@ -65,7 +65,7 @@ int WINAPI PrintBanner (VOID) { - printf ("ReactOS "KERNEL_RELEASE_STR" T(ask)List\n"); + printf ("ReactOS "KERNEL_VERSION_STR" T(ask)List\n"); printf ("Copyright (c) 2000,2001 Emanuele Aliberti\n\n"); return EXIT_SUCCESS; } Modified: trunk/rossubsys/posix/server/misc/main.c URL:
http://svn.reactos.org/svn/reactos/trunk/rossubsys/posix/server/misc/main.c…
============================================================================== --- trunk/rossubsys/posix/server/misc/main.c [iso-8859-1] (original) +++ trunk/rossubsys/posix/server/misc/main.c [iso-8859-1] Tue May 31 22:36:48 2016 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.3 2002/10/29 04:45:54 rex Exp $ +/* $Id$ * * PROJECT : ReactOS / POSIX+ Environment Subsystem Server * FILE : reactos/subsys/psx/server/misc/main.c @@ -49,7 +49,7 @@ { INT c; - debug_print(L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR); + debug_print(L"POSIX+ Subsystem for ReactOS "KERNEL_VERSION_STR); if (STATUS_SUCCESS == PsxServerInitialization(0,NULL)) { @@ -71,7 +71,7 @@ { UNICODE_STRING Banner; - RtlInitUnicodeString (& Banner, L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR); + RtlInitUnicodeString (& Banner, L"POSIX+ Subsystem for ReactOS "KERNEL_VERSION_STR); NtDisplayString(& Banner); if (STATUS_SUCCESS == PsxServerInitialization(0,NULL))
8 years, 6 months
1
0
0
0
[mjansen] 71477: [APPHELP][ACLAYER][APPSHIM_APITEST] Fix some WCHAR hack constructions that VS 2010 didn't like, as pointed out by Hermès
by mjansen@svn.reactos.org
Author: mjansen Date: Tue May 31 18:02:54 2016 New Revision: 71477 URL:
http://svn.reactos.org/svn/reactos?rev=71477&view=rev
Log: [APPHELP][ACLAYER][APPSHIM_APITEST] Fix some WCHAR hack constructions that VS 2010 didn't like, as pointed out by Hermès Modified: trunk/reactos/dll/appcompat/apphelp/sdbapi.c trunk/reactos/dll/appcompat/shims/layer/versionlie.inl trunk/rostests/apitests/appshim/versionlie.c Modified: trunk/reactos/dll/appcompat/apphelp/sdbapi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdba…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbapi.c [iso-8859-1] Tue May 31 18:02:54 2016 @@ -443,18 +443,19 @@ BOOL WINAPI SdbGetAppPatchDir(HSDB db, LPWSTR path, DWORD size) { static WCHAR* default_dir = NULL; + static CONST WCHAR szAppPatch[] = {'\\','A','p','p','P','a','t','c','h',0}; if(!default_dir) { WCHAR* tmp = NULL; - UINT len = GetSystemWindowsDirectoryW(NULL, 0) + lstrlenW((CONST WCHAR[]){'\\','A','p','p','P','a','t','c','h',0}); + UINT len = GetSystemWindowsDirectoryW(NULL, 0) + lstrlenW(szAppPatch); tmp = SdbAlloc((len + 1)* sizeof(WCHAR)); if(tmp) { UINT r = GetSystemWindowsDirectoryW(tmp, len+1); if (r && r < len) { - if (SUCCEEDED(StringCchCatW(tmp, len+1, (CONST WCHAR[]){'\\','A','p','p','P','a','t','c','h',0}))) + if (SUCCEEDED(StringCchCatW(tmp, len+1, szAppPatch))) { if(InterlockedCompareExchangePointer((void**)&default_dir, tmp, NULL) == NULL) tmp = NULL; Modified: trunk/reactos/dll/appcompat/shims/layer/versionlie.inl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/shims/layer/…
============================================================================== --- trunk/reactos/dll/appcompat/shims/layer/versionlie.inl [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/shims/layer/versionlie.inl [iso-8859-1] Tue May 31 18:02:54 2016 @@ -47,12 +47,13 @@ { if (fdwReason == SHIM_REASON_ATTACH && VERSION_INFO.wServicePackMajor) { + static CONST WCHAR szServicePack[] = {'S','e','r','v','i','c','e',' ','P','a','c','k',' ','%','u',0}; HRESULT hr = StringCbPrintfA(VERSION_INFO.szCSDVersionA, sizeof(VERSION_INFO.szCSDVersionA), "Service Pack %u", VERSION_INFO.wServicePackMajor); if (FAILED(hr)) return FALSE; StringCbPrintfW(VERSION_INFO.szCSDVersionW, sizeof(VERSION_INFO.szCSDVersionW), - (CONST WCHAR[]){'S','e','r','v','i','c','e',' ','P','a','c','k',' ','%','u',0}, VERSION_INFO.wServicePackMajor); + szServicePack, VERSION_INFO.wServicePackMajor); if (FAILED(hr)) return FALSE; } @@ -71,3 +72,4 @@ #include <implement_shim.inl> #undef VERSION_INFO + Modified: trunk/rostests/apitests/appshim/versionlie.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/appshim/versionl…
============================================================================== --- trunk/rostests/apitests/appshim/versionlie.c [iso-8859-1] (original) +++ trunk/rostests/apitests/appshim/versionlie.c [iso-8859-1] Tue May 31 18:02:54 2016 @@ -161,6 +161,7 @@ } if (ok1 && ok2) { + static const WCHAR szCSDFMT[] = {'S','e','r','v','i','c','e',' ','P','a','c','k',' ','%','u',0}; WCHAR szCSDVersion[128] = { 0 }; winetest_ok(v1.dwOSVersionInfoSize == v2.dwOSVersionInfoSize, "Expected dwOSVersionInfoSize to be equal, was: %u, %u for %s\n", v1.dwOSVersionInfoSize, v2.dwOSVersionInfoSize, shim); winetest_ok(info->dwMajorVersion == v2.dwMajorVersion, "Expected dwMajorVersion to be equal, was: %u, %u for %s\n", info->dwMajorVersion, v2.dwMajorVersion, shim); @@ -169,7 +170,7 @@ winetest_ok(info->dwPlatformId == v2.dwPlatformId, "Expected dwPlatformId to be equal, was: %u, %u for %s\n", info->dwPlatformId, v2.dwPlatformId, shim); if (info->wServicePackMajor) - swprintf(szCSDVersion, (const WCHAR[]){'S','e','r','v','i','c','e',' ','P','a','c','k',' ','%','u',0}, info->wServicePackMajor); + swprintf(szCSDVersion, szCSDFMT, info->wServicePackMajor); winetest_ok(lstrcmpW(szCSDVersion, v2.szCSDVersion) == 0, "Expected szCSDVersion to be equal, was: %s, %s for %s\n", wine_dbgstr_w(szCSDVersion), wine_dbgstr_w(v2.szCSDVersion), shim); if (v1.dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))
8 years, 6 months
1
0
0
0
[mjansen] 71476: [SHELL32] Rename CShell to CShellDispatch CORE-6892
by mjansen@svn.reactos.org
Author: mjansen Date: Tue May 31 17:40:44 2016 New Revision: 71476 URL:
http://svn.reactos.org/svn/reactos?rev=71476&view=rev
Log: [SHELL32] Rename CShell to CShellDispatch CORE-6892 Added: trunk/reactos/dll/win32/shell32/CShellDispatch.cpp (with props) trunk/reactos/dll/win32/shell32/CShellDispatch.h (with props) Removed: trunk/reactos/dll/win32/shell32/CShell.cpp trunk/reactos/dll/win32/shell32/CShell.h Modified: trunk/reactos/dll/win32/shell32/CDefViewDual.cpp trunk/reactos/dll/win32/shell32/CMakeLists.txt trunk/reactos/dll/win32/shell32/precomp.h trunk/reactos/dll/win32/shell32/shell32.cpp trunk/reactos/dll/win32/shell32/wine/shell32_main.h Modified: trunk/reactos/dll/win32/shell32/CDefViewDual.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CDefView…
============================================================================== --- trunk/reactos/dll/win32/shell32/CDefViewDual.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CDefViewDual.cpp [iso-8859-1] Tue May 31 17:40:44 2016 @@ -47,7 +47,7 @@ { if (!app) return E_INVALIDARG; - return CShell_Constructor(IID_IDispatch, (LPVOID*)app); + return CShellDispatch_Constructor(IID_IDispatch, (LPVOID*)app); } virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **parent) override Modified: trunk/reactos/dll/win32/shell32/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CMakeLis…
============================================================================== --- trunk/reactos/dll/win32/shell32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CMakeLists.txt [iso-8859-1] Tue May 31 17:40:44 2016 @@ -65,7 +65,7 @@ CDefaultContextMenu.cpp COpenWithMenu.cpp CNewMenu.cpp - CShell.cpp + CShellDispatch.cpp CFolder.cpp CFolderItems.cpp CFolderItemVerbs.cpp Removed: trunk/reactos/dll/win32/shell32/CShell.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShell.c…
============================================================================== --- trunk/reactos/dll/win32/shell32/CShell.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CShell.cpp (removed) @@ -1,325 +0,0 @@ -/* - * IShellDispatch implementation - * - * Copyright 2015 Mark Jansen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "precomp.h" - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - - -CShell::CShell() -{ -} - -CShell::~CShell() -{ -} - -HRESULT CShell::Initialize() -{ - return S_OK; -} - -// *** IShellDispatch methods *** -HRESULT STDMETHODCALLTYPE CShell::get_Application(IDispatch **ppid) -{ - TRACE("(%p, %p)\n", this, ppid); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::get_Parent(IDispatch **ppid) -{ - TRACE("(%p, %p)\n", this, ppid); - return E_NOTIMPL; -} - -HRESULT VariantToIdlist(VARIANT* var, LPITEMIDLIST* idlist) -{ - HRESULT hr = S_FALSE; - if(V_VT(var) == VT_I4) - { - hr = SHGetSpecialFolderLocation(NULL, V_I4(var), idlist); - } - else if(V_VT(var) == VT_BSTR) - { - hr = SHILCreateFromPathW(V_BSTR(var), idlist, NULL); - } - return hr; -} - -HRESULT STDMETHODCALLTYPE CShell::NameSpace(VARIANT vDir, Folder **ppsdf) -{ - TRACE("(%p, %s, %p)\n", this, debugstr_variant(&vDir), ppsdf); - if (!ppsdf) - return E_POINTER; - *ppsdf = NULL; - LPITEMIDLIST idlist = NULL; - HRESULT hr = VariantToIdlist(&vDir, &idlist); - if (!SUCCEEDED(hr) || !idlist) - return S_FALSE; - CFolder* fld = new CComObject<CFolder>(); - fld->Init(idlist); - *ppsdf = fld; - fld->AddRef(); - return hr; -} - -HRESULT STDMETHODCALLTYPE CShell::BrowseForFolder(LONG Hwnd, BSTR Title, LONG Options, VARIANT RootFolder, Folder **ppsdf) -{ - TRACE("(%p, %lu, %ls, %lu, %s, %p)\n", this, Hwnd, Title, Options, debugstr_variant(&RootFolder), ppsdf); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::Windows(IDispatch **ppid) -{ - TRACE("(%p, %p)\n", this, ppid); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::Open(VARIANT vDir) -{ - TRACE("(%p, %s)\n", this, debugstr_variant(&vDir)); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::Explore(VARIANT vDir) -{ - TRACE("(%p, %s)\n", this, debugstr_variant(&vDir)); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::MinimizeAll() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::UndoMinimizeALL() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::FileRun() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::CascadeWindows() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::TileVertically() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::TileHorizontally() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ShutdownWindows() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::Suspend() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::EjectPC() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::SetTime() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::TrayProperties() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::Help() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::FindFiles() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::FindComputer() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::RefreshMenu() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ControlPanelItem(BSTR szDir) -{ - TRACE("(%p, %ls)\n", this, szDir); - return E_NOTIMPL; -} - - -// *** IShellDispatch2 methods *** -HRESULT STDMETHODCALLTYPE CShell::IsRestricted(BSTR group, BSTR restriction, LONG *value) -{ - TRACE("(%p, %ls, %ls, %p)\n", this, group, restriction, value); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ShellExecute(BSTR file, VARIANT args, VARIANT dir, VARIANT op, VARIANT show) -{ - TRACE("(%p, %ls, %s, %s, %s, %s)\n", this, file, debugstr_variant(&args), debugstr_variant(&dir), debugstr_variant(&op), debugstr_variant(&show)); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::FindPrinter(BSTR name, BSTR location, BSTR model) -{ - TRACE("(%p, %ls, %ls, %ls)\n", this, name, location, model); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::GetSystemInformation(BSTR name, VARIANT *ret) -{ - TRACE("(%p, %ls, %p)\n", this, name, ret); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ServiceStart(BSTR service, VARIANT persistent, VARIANT *ret) -{ - TRACE("(%p, %ls, %s, %p)\n", this, service, wine_dbgstr_variant(&persistent), ret); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ServiceStop(BSTR service, VARIANT persistent, VARIANT *ret) -{ - TRACE("(%p, %ls, %s, %p)\n", this, service, wine_dbgstr_variant(&persistent), ret); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::IsServiceRunning(BSTR service, VARIANT *running) -{ - TRACE("(%p, %ls, %p)\n", this, service, running); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::CanStartStopService(BSTR service, VARIANT *ret) -{ - TRACE("(%p, %ls, %p)\n", this, service, ret); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT *ret) -{ - TRACE("(%p, %ls, %s, %p)\n", this, clsid, wine_dbgstr_variant(&show), ret); - return E_NOTIMPL; -} - - -// *** IShellDispatch3 methods *** -HRESULT STDMETHODCALLTYPE CShell::AddToRecent(VARIANT file, BSTR category) -{ - TRACE("(%p, %s, %ls)\n", this, wine_dbgstr_variant(&file), category); - return E_NOTIMPL; -} - - -// *** IShellDispatch4 methods *** -HRESULT STDMETHODCALLTYPE CShell::WindowsSecurity() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ToggleDesktop() -{ - TRACE("(%p)\n", this); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::ExplorerPolicy(BSTR policy, VARIANT *value) -{ - TRACE("(%p, %ls, %p)\n", this, policy, value); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::GetSetting(LONG setting, VARIANT_BOOL *result) -{ - TRACE("(%p, %lu, %p)\n", this, setting, result); - return E_NOTIMPL; -} - - -// *** IObjectSafety methods *** -HRESULT STDMETHODCALLTYPE CShell::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions) -{ - TRACE("(%p, %s, %p, %p)\n", this, wine_dbgstr_guid(&riid), pdwSupportedOptions, pdwEnabledOptions); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) -{ - TRACE("(%p, %s, %lu, %lu)\n", this, wine_dbgstr_guid(&riid), dwOptionSetMask, dwEnabledOptions); - return E_NOTIMPL; -} - - -// *** IObjectWithSite methods *** -HRESULT STDMETHODCALLTYPE CShell::SetSite(IUnknown *pUnkSite) -{ - TRACE("(%p, %p)\n", this, pUnkSite); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE CShell::GetSite(REFIID riid, PVOID *ppvSite) -{ - TRACE("(%p, %s, %p)\n", this, wine_dbgstr_guid(&riid), ppvSite); - return E_NOTIMPL; -} - -HRESULT WINAPI CShell_Constructor(REFIID riid, LPVOID * ppvOut) -{ - return ShellObjectCreatorInit<CShell>(riid, ppvOut); -} - Removed: trunk/reactos/dll/win32/shell32/CShell.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShell.h…
============================================================================== --- trunk/reactos/dll/win32/shell32/CShell.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CShell.h (removed) @@ -1,111 +0,0 @@ -/* - * IShellDispatch implementation - * - * Copyright 2015 Mark Jansen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef _SHELL_H_ -#define _SHELL_H_ - -#undef ShellExecute - -class CShell: - public CComCoClass<CShell, &CLSID_Shell>, - public CComObjectRootEx<CComMultiThreadModelNoCS>, - public IDispatchImpl<IShellDispatch4, &IID_IShellDispatch4>, - public IObjectSafety, - public IObjectWithSite -{ -private: - -public: - CShell(); - ~CShell(); - - HRESULT Initialize(); - - // *** IShellDispatch methods *** - virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid); - virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid); - virtual HRESULT STDMETHODCALLTYPE NameSpace(VARIANT vDir, Folder **ppsdf); - virtual HRESULT STDMETHODCALLTYPE BrowseForFolder(LONG Hwnd, BSTR Title, LONG Options, VARIANT RootFolder, Folder **ppsdf); - virtual HRESULT STDMETHODCALLTYPE Windows(IDispatch **ppid); - virtual HRESULT STDMETHODCALLTYPE Open(VARIANT vDir); - virtual HRESULT STDMETHODCALLTYPE Explore(VARIANT vDir); - virtual HRESULT STDMETHODCALLTYPE MinimizeAll(); - virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL(); - virtual HRESULT STDMETHODCALLTYPE FileRun(); - virtual HRESULT STDMETHODCALLTYPE CascadeWindows(); - virtual HRESULT STDMETHODCALLTYPE TileVertically(); - virtual HRESULT STDMETHODCALLTYPE TileHorizontally(); - virtual HRESULT STDMETHODCALLTYPE ShutdownWindows(); - virtual HRESULT STDMETHODCALLTYPE Suspend(); - virtual HRESULT STDMETHODCALLTYPE EjectPC(); - virtual HRESULT STDMETHODCALLTYPE SetTime(); - virtual HRESULT STDMETHODCALLTYPE TrayProperties(); - virtual HRESULT STDMETHODCALLTYPE Help(); - virtual HRESULT STDMETHODCALLTYPE FindFiles(); - virtual HRESULT STDMETHODCALLTYPE FindComputer(); - virtual HRESULT STDMETHODCALLTYPE RefreshMenu(); - virtual HRESULT STDMETHODCALLTYPE ControlPanelItem(BSTR szDir); - - // *** IShellDispatch2 methods *** - virtual HRESULT STDMETHODCALLTYPE IsRestricted(BSTR group, BSTR restriction, LONG *value); - virtual HRESULT STDMETHODCALLTYPE ShellExecute(BSTR file, VARIANT args, VARIANT dir, VARIANT op, VARIANT show); - virtual HRESULT STDMETHODCALLTYPE FindPrinter(BSTR name, BSTR location, BSTR model); - virtual HRESULT STDMETHODCALLTYPE GetSystemInformation(BSTR name, VARIANT *ret); - virtual HRESULT STDMETHODCALLTYPE ServiceStart(BSTR service, VARIANT persistent, VARIANT *ret); - virtual HRESULT STDMETHODCALLTYPE ServiceStop(BSTR service, VARIANT persistent, VARIANT *ret); - virtual HRESULT STDMETHODCALLTYPE IsServiceRunning(BSTR service, VARIANT *running); - virtual HRESULT STDMETHODCALLTYPE CanStartStopService(BSTR service, VARIANT *ret); - virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT *ret); - - // *** IShellDispatch3 methods *** - virtual HRESULT STDMETHODCALLTYPE AddToRecent(VARIANT file, BSTR category); - - // *** IShellDispatch4 methods *** - virtual HRESULT STDMETHODCALLTYPE WindowsSecurity(); - virtual HRESULT STDMETHODCALLTYPE ToggleDesktop(); - virtual HRESULT STDMETHODCALLTYPE ExplorerPolicy(BSTR policy, VARIANT *value); - virtual HRESULT STDMETHODCALLTYPE GetSetting(LONG setting, VARIANT_BOOL *result); - - // *** IObjectSafety methods *** - virtual HRESULT STDMETHODCALLTYPE GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions); - virtual HRESULT STDMETHODCALLTYPE SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); - - // *** IObjectWithSite methods *** - virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite); - virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, PVOID *ppvSite); - - -DECLARE_REGISTRY_RESOURCEID(IDR_SHELL) -DECLARE_NOT_AGGREGATABLE(CShell) - -DECLARE_PROTECT_FINAL_CONSTRUCT() - -BEGIN_COM_MAP(CShell) - COM_INTERFACE_ENTRY_IID(IID_IShellDispatch4, IShellDispatch4) - COM_INTERFACE_ENTRY_IID(IID_IShellDispatch3, IShellDispatch3) - COM_INTERFACE_ENTRY_IID(IID_IShellDispatch2, IShellDispatch2) - COM_INTERFACE_ENTRY_IID(IID_IShellDispatch, IShellDispatch) - COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch) - COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety) - COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) -END_COM_MAP() -}; - -#endif /* _SHELL_H_ */ Added: trunk/reactos/dll/win32/shell32/CShellDispatch.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShellDi…
============================================================================== --- trunk/reactos/dll/win32/shell32/CShellDispatch.cpp (added) +++ trunk/reactos/dll/win32/shell32/CShellDispatch.cpp [iso-8859-1] Tue May 31 17:40:44 2016 @@ -0,0 +1,325 @@ +/* + * IShellDispatch implementation + * + * Copyright 2015 Mark Jansen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "precomp.h" + +WINE_DEFAULT_DEBUG_CHANNEL(shell); + + +CShellDispatch::CShellDispatch() +{ +} + +CShellDispatch::~CShellDispatch() +{ +} + +HRESULT CShellDispatch::Initialize() +{ + return S_OK; +} + +// *** IShellDispatch methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::get_Application(IDispatch **ppid) +{ + TRACE("(%p, %p)\n", this, ppid); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::get_Parent(IDispatch **ppid) +{ + TRACE("(%p, %p)\n", this, ppid); + return E_NOTIMPL; +} + +HRESULT VariantToIdlist(VARIANT* var, LPITEMIDLIST* idlist) +{ + HRESULT hr = S_FALSE; + if(V_VT(var) == VT_I4) + { + hr = SHGetSpecialFolderLocation(NULL, V_I4(var), idlist); + } + else if(V_VT(var) == VT_BSTR) + { + hr = SHILCreateFromPathW(V_BSTR(var), idlist, NULL); + } + return hr; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::NameSpace(VARIANT vDir, Folder **ppsdf) +{ + TRACE("(%p, %s, %p)\n", this, debugstr_variant(&vDir), ppsdf); + if (!ppsdf) + return E_POINTER; + *ppsdf = NULL; + LPITEMIDLIST idlist = NULL; + HRESULT hr = VariantToIdlist(&vDir, &idlist); + if (!SUCCEEDED(hr) || !idlist) + return S_FALSE; + CFolder* fld = new CComObject<CFolder>(); + fld->Init(idlist); + *ppsdf = fld; + fld->AddRef(); + return hr; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::BrowseForFolder(LONG Hwnd, BSTR Title, LONG Options, VARIANT RootFolder, Folder **ppsdf) +{ + TRACE("(%p, %lu, %ls, %lu, %s, %p)\n", this, Hwnd, Title, Options, debugstr_variant(&RootFolder), ppsdf); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::Windows(IDispatch **ppid) +{ + TRACE("(%p, %p)\n", this, ppid); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::Open(VARIANT vDir) +{ + TRACE("(%p, %s)\n", this, debugstr_variant(&vDir)); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::Explore(VARIANT vDir) +{ + TRACE("(%p, %s)\n", this, debugstr_variant(&vDir)); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::MinimizeAll() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::UndoMinimizeALL() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::FileRun() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::CascadeWindows() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::TileVertically() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::TileHorizontally() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ShutdownWindows() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::Suspend() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::EjectPC() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::SetTime() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::TrayProperties() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::Help() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::FindFiles() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::FindComputer() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::RefreshMenu() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ControlPanelItem(BSTR szDir) +{ + TRACE("(%p, %ls)\n", this, szDir); + return E_NOTIMPL; +} + + +// *** IShellDispatch2 methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::IsRestricted(BSTR group, BSTR restriction, LONG *value) +{ + TRACE("(%p, %ls, %ls, %p)\n", this, group, restriction, value); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ShellExecute(BSTR file, VARIANT args, VARIANT dir, VARIANT op, VARIANT show) +{ + TRACE("(%p, %ls, %s, %s, %s, %s)\n", this, file, debugstr_variant(&args), debugstr_variant(&dir), debugstr_variant(&op), debugstr_variant(&show)); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::FindPrinter(BSTR name, BSTR location, BSTR model) +{ + TRACE("(%p, %ls, %ls, %ls)\n", this, name, location, model); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::GetSystemInformation(BSTR name, VARIANT *ret) +{ + TRACE("(%p, %ls, %p)\n", this, name, ret); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ServiceStart(BSTR service, VARIANT persistent, VARIANT *ret) +{ + TRACE("(%p, %ls, %s, %p)\n", this, service, wine_dbgstr_variant(&persistent), ret); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ServiceStop(BSTR service, VARIANT persistent, VARIANT *ret) +{ + TRACE("(%p, %ls, %s, %p)\n", this, service, wine_dbgstr_variant(&persistent), ret); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::IsServiceRunning(BSTR service, VARIANT *running) +{ + TRACE("(%p, %ls, %p)\n", this, service, running); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::CanStartStopService(BSTR service, VARIANT *ret) +{ + TRACE("(%p, %ls, %p)\n", this, service, ret); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT *ret) +{ + TRACE("(%p, %ls, %s, %p)\n", this, clsid, wine_dbgstr_variant(&show), ret); + return E_NOTIMPL; +} + + +// *** IShellDispatch3 methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::AddToRecent(VARIANT file, BSTR category) +{ + TRACE("(%p, %s, %ls)\n", this, wine_dbgstr_variant(&file), category); + return E_NOTIMPL; +} + + +// *** IShellDispatch4 methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::WindowsSecurity() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ToggleDesktop() +{ + TRACE("(%p)\n", this); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::ExplorerPolicy(BSTR policy, VARIANT *value) +{ + TRACE("(%p, %ls, %p)\n", this, policy, value); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::GetSetting(LONG setting, VARIANT_BOOL *result) +{ + TRACE("(%p, %lu, %p)\n", this, setting, result); + return E_NOTIMPL; +} + + +// *** IObjectSafety methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions) +{ + TRACE("(%p, %s, %p, %p)\n", this, wine_dbgstr_guid(&riid), pdwSupportedOptions, pdwEnabledOptions); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) +{ + TRACE("(%p, %s, %lu, %lu)\n", this, wine_dbgstr_guid(&riid), dwOptionSetMask, dwEnabledOptions); + return E_NOTIMPL; +} + + +// *** IObjectWithSite methods *** +HRESULT STDMETHODCALLTYPE CShellDispatch::SetSite(IUnknown *pUnkSite) +{ + TRACE("(%p, %p)\n", this, pUnkSite); + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CShellDispatch::GetSite(REFIID riid, PVOID *ppvSite) +{ + TRACE("(%p, %s, %p)\n", this, wine_dbgstr_guid(&riid), ppvSite); + return E_NOTIMPL; +} + +HRESULT WINAPI CShellDispatch_Constructor(REFIID riid, LPVOID * ppvOut) +{ + return ShellObjectCreatorInit<CShellDispatch>(riid, ppvOut); +} + Propchange: trunk/reactos/dll/win32/shell32/CShellDispatch.cpp ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/shell32/CShellDispatch.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CShellDi…
============================================================================== --- trunk/reactos/dll/win32/shell32/CShellDispatch.h (added) +++ trunk/reactos/dll/win32/shell32/CShellDispatch.h [iso-8859-1] Tue May 31 17:40:44 2016 @@ -0,0 +1,111 @@ +/* + * IShellDispatch implementation + * + * Copyright 2015 Mark Jansen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _SHELLDISPATCH_H_ +#define _SHELLDISPATCH_H_ + +#undef ShellExecute + +class CShellDispatch: + public CComCoClass<CShellDispatch, &CLSID_Shell>, + public CComObjectRootEx<CComMultiThreadModelNoCS>, + public IDispatchImpl<IShellDispatch4, &IID_IShellDispatch4>, + public IObjectSafety, + public IObjectWithSite +{ +private: + +public: + CShellDispatch(); + ~CShellDispatch(); + + HRESULT Initialize(); + + // *** IShellDispatch methods *** + virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **ppid); + virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **ppid); + virtual HRESULT STDMETHODCALLTYPE NameSpace(VARIANT vDir, Folder **ppsdf); + virtual HRESULT STDMETHODCALLTYPE BrowseForFolder(LONG Hwnd, BSTR Title, LONG Options, VARIANT RootFolder, Folder **ppsdf); + virtual HRESULT STDMETHODCALLTYPE Windows(IDispatch **ppid); + virtual HRESULT STDMETHODCALLTYPE Open(VARIANT vDir); + virtual HRESULT STDMETHODCALLTYPE Explore(VARIANT vDir); + virtual HRESULT STDMETHODCALLTYPE MinimizeAll(); + virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL(); + virtual HRESULT STDMETHODCALLTYPE FileRun(); + virtual HRESULT STDMETHODCALLTYPE CascadeWindows(); + virtual HRESULT STDMETHODCALLTYPE TileVertically(); + virtual HRESULT STDMETHODCALLTYPE TileHorizontally(); + virtual HRESULT STDMETHODCALLTYPE ShutdownWindows(); + virtual HRESULT STDMETHODCALLTYPE Suspend(); + virtual HRESULT STDMETHODCALLTYPE EjectPC(); + virtual HRESULT STDMETHODCALLTYPE SetTime(); + virtual HRESULT STDMETHODCALLTYPE TrayProperties(); + virtual HRESULT STDMETHODCALLTYPE Help(); + virtual HRESULT STDMETHODCALLTYPE FindFiles(); + virtual HRESULT STDMETHODCALLTYPE FindComputer(); + virtual HRESULT STDMETHODCALLTYPE RefreshMenu(); + virtual HRESULT STDMETHODCALLTYPE ControlPanelItem(BSTR szDir); + + // *** IShellDispatch2 methods *** + virtual HRESULT STDMETHODCALLTYPE IsRestricted(BSTR group, BSTR restriction, LONG *value); + virtual HRESULT STDMETHODCALLTYPE ShellExecute(BSTR file, VARIANT args, VARIANT dir, VARIANT op, VARIANT show); + virtual HRESULT STDMETHODCALLTYPE FindPrinter(BSTR name, BSTR location, BSTR model); + virtual HRESULT STDMETHODCALLTYPE GetSystemInformation(BSTR name, VARIANT *ret); + virtual HRESULT STDMETHODCALLTYPE ServiceStart(BSTR service, VARIANT persistent, VARIANT *ret); + virtual HRESULT STDMETHODCALLTYPE ServiceStop(BSTR service, VARIANT persistent, VARIANT *ret); + virtual HRESULT STDMETHODCALLTYPE IsServiceRunning(BSTR service, VARIANT *running); + virtual HRESULT STDMETHODCALLTYPE CanStartStopService(BSTR service, VARIANT *ret); + virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(BSTR clsid, VARIANT show, VARIANT *ret); + + // *** IShellDispatch3 methods *** + virtual HRESULT STDMETHODCALLTYPE AddToRecent(VARIANT file, BSTR category); + + // *** IShellDispatch4 methods *** + virtual HRESULT STDMETHODCALLTYPE WindowsSecurity(); + virtual HRESULT STDMETHODCALLTYPE ToggleDesktop(); + virtual HRESULT STDMETHODCALLTYPE ExplorerPolicy(BSTR policy, VARIANT *value); + virtual HRESULT STDMETHODCALLTYPE GetSetting(LONG setting, VARIANT_BOOL *result); + + // *** IObjectSafety methods *** + virtual HRESULT STDMETHODCALLTYPE GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions); + virtual HRESULT STDMETHODCALLTYPE SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); + + // *** IObjectWithSite methods *** + virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite); + virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, PVOID *ppvSite); + + +DECLARE_REGISTRY_RESOURCEID(IDR_SHELL) +DECLARE_NOT_AGGREGATABLE(CShellDispatch) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CShellDispatch) + COM_INTERFACE_ENTRY_IID(IID_IShellDispatch4, IShellDispatch4) + COM_INTERFACE_ENTRY_IID(IID_IShellDispatch3, IShellDispatch3) + COM_INTERFACE_ENTRY_IID(IID_IShellDispatch2, IShellDispatch2) + COM_INTERFACE_ENTRY_IID(IID_IShellDispatch, IShellDispatch) + COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch) + COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety) + COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) +END_COM_MAP() +}; + +#endif /* _SHELLDISPATCH_H_ */ Propchange: trunk/reactos/dll/win32/shell32/CShellDispatch.h ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/win32/shell32/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/precomp.…
============================================================================== --- trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] Tue May 31 17:40:44 2016 @@ -53,7 +53,7 @@ #include "CFolderItemVerbs.h" #include "CFolderItems.h" #include "CFolder.h" -#include "CShell.h" +#include "CShellDispatch.h" #include "CDropTargetHelper.h" #include "CFolderOptions.h" #include "folders/CFSFolder.h" Modified: trunk/reactos/dll/win32/shell32/shell32.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32.…
============================================================================== --- trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] Tue May 31 17:40:44 2016 @@ -196,7 +196,7 @@ OBJECT_ENTRY(CLSID_ShellDesktop, CDesktopFolder) OBJECT_ENTRY(CLSID_ShellItem, CShellItem) OBJECT_ENTRY(CLSID_ShellLink, CShellLink) - OBJECT_ENTRY(CLSID_Shell, CShell) + OBJECT_ENTRY(CLSID_Shell, CShellDispatch) OBJECT_ENTRY(CLSID_DragDropHelper, CDropTargetHelper) OBJECT_ENTRY(CLSID_ControlPanel, CControlPanelFolder) OBJECT_ENTRY(CLSID_MyDocuments, CMyDocsFolder) Modified: trunk/reactos/dll/win32/shell32/wine/shell32_main.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/wine/she…
============================================================================== --- trunk/reactos/dll/win32/shell32/wine/shell32_main.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/wine/shell32_main.h [iso-8859-1] Tue May 31 17:40:44 2016 @@ -72,7 +72,7 @@ HRESULT WINAPI IShellView_Constructor(IShellFolder *pFolder, IShellView **newView); HRESULT WINAPI CDefView_Constructor(IShellFolder *pFolder, REFIID riid, LPVOID * ppvOut); HRESULT WINAPI CDefViewDual_Constructor(REFIID riid, LPVOID * ppvOut); -HRESULT WINAPI CShell_Constructor(REFIID riid, LPVOID * ppvOut); +HRESULT WINAPI CShellDispatch_Constructor(REFIID riid, LPVOID * ppvOut); HRESULT WINAPI IShellLink_ConstructFromPath(WCHAR *path, REFIID riid, LPVOID *ppv); HRESULT WINAPI IShellLink_ConstructFromFile(IShellFolder * psf, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv);
8 years, 6 months
1
0
0
0
[gadamopoulos] 71475: [BROWSEUI] - Implement CShellBrowser::Navigate and CShellBrowser::Navigate2. - Part of the work submitted by Sylvain Deverre. CORE-10838
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Tue May 31 14:57:05 2016 New Revision: 71475 URL:
http://svn.reactos.org/svn/reactos?rev=71475&view=rev
Log: [BROWSEUI] - Implement CShellBrowser::Navigate and CShellBrowser::Navigate2. - Part of the work submitted by Sylvain Deverre. CORE-10838 Modified: trunk/reactos/dll/win32/browseui/shellbrowser.cpp Modified: trunk/reactos/dll/win32/browseui/shellbrowser.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/shellbr…
============================================================================== --- trunk/reactos/dll/win32/browseui/shellbrowser.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/shellbrowser.cpp [iso-8859-1] Tue May 31 14:57:05 2016 @@ -2884,7 +2884,17 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate(BSTR URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) { - return E_NOTIMPL; + CComHeapPtr<ITEMIDLIST> pidl; + HRESULT hResult; + CComPtr<IShellFolder> pDesktop; + + hResult = SHGetDesktopFolder(&pDesktop); + if (FAILED_UNEXPECTEDLY(hResult)) + return hResult; + hResult = pDesktop->ParseDisplayName(NULL, NULL, URL, NULL, &pidl, NULL); + if (FAILED_UNEXPECTEDLY(hResult)) + return hResult; + return BrowseObject(pidl, 1); } HRESULT STDMETHODCALLTYPE CShellBrowser::Refresh() @@ -3104,14 +3114,23 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate2(VARIANT *URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) { + LPITEMIDLIST pidl = NULL; + HRESULT hResult; // called from drive combo box to navigate to a directory - if (V_VT(URL) != (VT_ARRAY | VT_UI1)) - return E_INVALIDARG; - if (V_ARRAY(URL)->cDims != 1 || V_ARRAY(URL)->cbElements != 1) - return E_INVALIDARG; - - LPITEMIDLIST pidl = static_cast<LPITEMIDLIST>(V_ARRAY(URL)->pvData); - HRESULT hResult = BrowseToPIDL(pidl, BTP_UPDATE_CUR_HISTORY | BTP_UPDATE_NEXT_HISTORY); + // Also called by search band to display shell results folder view + + if (V_VT(URL) == VT_BSTR) + { + return this->Navigate(V_BSTR(URL), Flags, TargetFrameName, PostData, Headers); + } + if (V_VT(URL) == (VT_ARRAY | VT_UI1)) + { + if (V_ARRAY(URL)->cDims != 1 || V_ARRAY(URL)->cbElements != 1) + return E_INVALIDARG; + + pidl = static_cast<LPITEMIDLIST>(V_ARRAY(URL)->pvData); + } + hResult = BrowseToPIDL(pidl, BTP_UPDATE_CUR_HISTORY | BTP_UPDATE_NEXT_HISTORY); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; return S_OK;
8 years, 6 months
1
0
0
0
[gadamopoulos] 71474: [BROWSEUI] - Implement the toolbar that allows the user to close the band. - Part of the work submitted by Sylvain Deverre. CORE-10838
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Tue May 31 14:52:18 2016 New Revision: 71474 URL:
http://svn.reactos.org/svn/reactos?rev=71474&view=rev
Log: [BROWSEUI] - Implement the toolbar that allows the user to close the band. - Part of the work submitted by Sylvain Deverre. CORE-10838 Added: trunk/reactos/dll/win32/browseui/res/barbtn.bmp (with props) Modified: trunk/reactos/dll/win32/browseui/basebarsite.cpp trunk/reactos/dll/win32/browseui/browseui.rc Modified: trunk/reactos/dll/win32/browseui/basebarsite.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/basebar…
============================================================================== --- trunk/reactos/dll/win32/browseui/basebarsite.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/basebarsite.cpp [iso-8859-1] Tue May 31 14:52:18 2016 @@ -27,14 +27,13 @@ /* TODO: -****Fix so an already created bar will be detected and just shown instead of added again -****When a new bar is added, initiate a resize - **Add owner draw for base bar +****When a new bar is added, resize correctly the band inside instead of keeping current size. + *Translate close button label + **Add owner draw for base bar -- hackplemented atm **Make label text in base bar always draw in black - **Make base bar show close box - **Create close toolbar button - **Fix to delete all CBarInfo on deletion - + ***Set rebar band style flags accordingly to what band object asked. + ***Set rebar style accordingly to direction +****This class should also manage desktop bands ? (another kind of explorer bands) */ class CBaseBarSite : @@ -65,6 +64,8 @@ // HWND fRebarWindow; // rebar for top of window CComPtr<IUnknown> fDeskBarSite; DWORD fNextBandID; + HWND toolbarWnd; + HIMAGELIST toolImageList; BOOL fVertical; public: CBaseBarSite(); @@ -127,15 +128,20 @@ // message handlers LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); + LRESULT OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); + LRESULT OnCustomDraw(LPNMCUSTOMDRAW pnmcd); // Helper functions + HFONT GetTitleFont(); HRESULT FindBandByGUID(REFIID pGuid, DWORD *pdwBandID); HRESULT ShowBand(DWORD dwBandID); HRESULT GetInternalBandInfo(UINT uBand, REBARBANDINFO *pBandInfo); HRESULT GetInternalBandInfo(UINT uBand, REBARBANDINFO *pBandInfo, DWORD fMask); + BEGIN_MSG_MAP(CBaseBarSite) MESSAGE_HANDLER(WM_NOTIFY, OnNotify) + MESSAGE_HANDLER(WM_COMMAND, OnCommand) END_MSG_MAP() BEGIN_COM_MAP(CBaseBarSite) @@ -163,6 +169,7 @@ CBaseBarSite::~CBaseBarSite() { + TRACE("CBaseBarSite deleted\n"); } HRESULT CBaseBarSite::InsertBar(IUnknown *newBar) @@ -313,21 +320,31 @@ CComPtr<IDeskBar> deskBar; CComPtr<IWinEventHandler> winEventHandler; NMHDR *notifyHeader; + // RECT newBounds; HRESULT hResult; - + hResult = S_OK; if (uMsg == WM_NOTIFY) { notifyHeader = (NMHDR *)lParam; - if (notifyHeader->hwndFrom == m_hWnd && notifyHeader->code == RBN_AUTOSIZE) + if (notifyHeader->hwndFrom == m_hWnd) { + switch (notifyHeader->code) + { + case RBN_AUTOSIZE: // For now, don't notify basebar we tried to resize ourselves, we don't // get correct values at the moment. #if 0 - hResult = fDeskBarSite->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar)); - GetClientRect(&newBounds); - hResult = deskBar->OnPosRectChangeDB(&newBounds); + hResult = fDeskBarSite->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar)); + GetClientRect(&newBounds); + hResult = deskBar->OnPosRectChangeDB(&newBounds); + #endif + break; + case NM_CUSTOMDRAW: + *theResult = OnCustomDraw((LPNMCUSTOMDRAW)lParam); + return S_OK; + } } } if (fCurrentActiveBar != NULL) @@ -374,6 +391,9 @@ } else { + TBBUTTON closeBtn; + HBITMAP hBmp; + hResult = punkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow)); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; @@ -399,6 +419,37 @@ SendMessage(RB_SETTEXTCOLOR, 0, CLR_DEFAULT); SendMessage(RB_SETBKCOLOR, 0, CLR_DEFAULT); + + /* Create close toolbar and imagelist */ + toolbarWnd = CreateWindowW(TOOLBARCLASSNAMEW, NULL, + WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS | + CCS_NOMOVEY | CCS_NORESIZE | CCS_NOPARENTALIGN | CCS_NODIVIDER + , 0, 0, 0, 0, m_hWnd, NULL, _AtlBaseModule.GetModuleInstance(), NULL); + + toolImageList = ImageList_Create(13, 11, ILC_COLOR24 | ILC_MASK, 3, 0); + + hBmp = (HBITMAP)LoadImage(_AtlBaseModule.GetModuleInstance(), + MAKEINTRESOURCE(IDB_BANDBUTTONS), IMAGE_BITMAP, 0, 0, + LR_LOADTRANSPARENT); + + ImageList_AddMasked(toolImageList, hBmp, RGB(192, 192, 192)); + DeleteObject(hBmp); + + SendMessage(toolbarWnd, TB_SETIMAGELIST, 0, (LPARAM)toolImageList); + + /* Add button to toolbar */ + closeBtn.iBitmap = MAKELONG(1, 0); + closeBtn.idCommand = IDM_BASEBAR_CLOSE; + closeBtn.fsState = TBSTATE_ENABLED; + closeBtn.fsStyle = BTNS_BUTTON; + ZeroMemory(closeBtn.bReserved, sizeof(closeBtn.bReserved)); + closeBtn.dwData = 0; + closeBtn.iString = (INT_PTR)L"Close"; + + SendMessage(toolbarWnd, TB_INSERTBUTTON, 0, (LPARAM)&closeBtn); + SendMessage(toolbarWnd, TB_SETMAXTEXTROWS, 0, 0); + //SendMessage(toolbarWnd, TB_AUTOSIZE, 0, 0); } return S_OK; } @@ -437,6 +488,9 @@ if (V_VT(pvaIn) != VT_UNKNOWN) return E_INVALIDARG; return InsertBar(V_UNKNOWN(pvaIn)); + case 0x17: + // redim band + break; } } return E_FAIL; @@ -631,6 +685,88 @@ } bHandled = FALSE; /* forward notification to parent */ return 0; +} + +LRESULT CBaseBarSite::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) +{ + HRESULT hResult; + CComPtr<IDockingWindow> parentSite; + + if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDM_BASEBAR_CLOSE) + { + hResult = fDeskBarSite->QueryInterface(IID_PPV_ARG(IDockingWindow, &parentSite)); + if (!SUCCEEDED(hResult)) + { + return E_FAIL; + } + parentSite->ShowDW(FALSE); + bHandled = TRUE; + } + return 0; +} + +LRESULT CBaseBarSite::OnCustomDraw(LPNMCUSTOMDRAW pnmcd) +{ + switch (pnmcd->dwDrawStage) + { + case CDDS_PREPAINT: + case CDDS_PREERASE: + return CDRF_NOTIFYITEMDRAW; + case CDDS_ITEMPREPAINT: + if (fVertical) + { + REBARBANDINFO info; + WCHAR wszTitle[MAX_PATH]; + DWORD index; + RECT rt; + HFONT newFont, oldFont; + + index = SendMessage(RB_IDTOINDEX, fCurrentActiveBar->fBandID , 0); + ZeroMemory(&info, sizeof(info)); + ZeroMemory(wszTitle, sizeof(wszTitle)); + DrawEdge(pnmcd->hdc, &pnmcd->rc, EDGE_ETCHED, BF_BOTTOM); + // We also resize our close button + ::SetWindowPos(toolbarWnd, HWND_TOP, pnmcd->rc.right - 22, 0, 20, 18, SWP_SHOWWINDOW); + // Draw the text + info.cch = MAX_PATH; + info.lpText = wszTitle; + rt = pnmcd->rc; + rt.right -= 24; + rt.left += 2; + if (FAILED_UNEXPECTEDLY(GetInternalBandInfo(index, &info, RBBIM_TEXT))) + return CDRF_SKIPDEFAULT; + newFont = GetTitleFont(); + if (newFont) + oldFont = (HFONT)SelectObject(pnmcd->hdc, newFont); + DrawText(pnmcd->hdc, info.lpText, -1, &rt, DT_SINGLELINE | DT_LEFT); + SelectObject(pnmcd->hdc, oldFont); + DeleteObject(newFont); + return CDRF_SKIPDEFAULT; + } + else + { + DrawEdge(pnmcd->hdc, &pnmcd->rc, EDGE_ETCHED, BF_BOTTOM); + // We also resize our close button + ::SetWindowPos(toolbarWnd, HWND_TOP, 0, 2, 20, 18, SWP_SHOWWINDOW); + } + return CDRF_SKIPDEFAULT; + default: + break; + } + return CDRF_DODEFAULT; +} + +HFONT CBaseBarSite::GetTitleFont() +{ + NONCLIENTMETRICS mt; + mt.cbSize = sizeof(mt); + if (!SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(mt), &mt, 0)) + { + ERR("Can't get system parameters !\n"); + return NULL; + } + return CreateFontIndirect(&mt.lfMenuFont); + } HRESULT CBaseBarSite::FindBandByGUID(REFGUID pGuid, DWORD *pdwBandID) Modified: trunk/reactos/dll/win32/browseui/browseui.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/browseu…
============================================================================== --- trunk/reactos/dll/win32/browseui/browseui.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/browseui.rc [iso-8859-1] Tue May 31 14:52:18 2016 @@ -103,4 +103,7 @@ #endif #ifdef LANGUAGE_ZH_TW #include "lang/zh-TW.rc" -#endif +#endif + +/* Include band button bitmaps */ +IDB_BANDBUTTONS BITMAP "res/barbtn.bmp" Added: trunk/reactos/dll/win32/browseui/res/barbtn.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/res/bar…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/dll/win32/browseui/res/barbtn.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream
8 years, 6 months
1
0
0
0
[gadamopoulos] 71473: [BROWSEUI] - CShellBrowser: Implement the Explrer bar menu. Implement checking if a band is already loaded. Destroy all bands while destroying the browser window. Misc changes...
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Tue May 31 14:42:01 2016 New Revision: 71473 URL:
http://svn.reactos.org/svn/reactos?rev=71473&view=rev
Log: [BROWSEUI] - CShellBrowser: Implement the Explrer bar menu. Implement checking if a band is already loaded. Destroy all bands while destroying the browser window. Misc changes. - Part of the work submitted by Sylvain Deverre. CORE-10838 Modified: trunk/reactos/dll/win32/browseui/precomp.h trunk/reactos/dll/win32/browseui/resource.h trunk/reactos/dll/win32/browseui/shellbrowser.cpp Modified: trunk/reactos/dll/win32/browseui/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/precomp…
============================================================================== --- trunk/reactos/dll/win32/browseui/precomp.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/precomp.h [iso-8859-1] Tue May 31 14:42:01 2016 @@ -13,6 +13,7 @@ #include <wingdi.h> #include <shlobj.h> #include <tlogstg.h> +#include <shellapi.h> #include <shlobj_undoc.h> #include <shlguid_undoc.h> #include <shdeprecated.h> Modified: trunk/reactos/dll/win32/browseui/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/resourc…
============================================================================== --- trunk/reactos/dll/win32/browseui/resource.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/resource.h [iso-8859-1] Tue May 31 14:42:01 2016 @@ -56,11 +56,17 @@ #define IDM_TOOLS_FOLDEROPTIONS 0xA123 #define IDM_HELP_ISTHISCOPYLEGAL 0xA104 #define IDM_HELP_ABOUT 0xA102 - #define IDM_TASKBAR_TOOLBARS 268 #define IDM_TASKBAR_TOOLBARS_DESKTOP 3 #define IDM_TASKBAR_TOOLBARS_QUICKLAUNCH 4 #define IDM_TASKBAR_TOOLBARS_NEW 1 + +/* Random id for band close button, feel free to change it */ +#define IDM_BASEBAR_CLOSE 0xA200 + +/* User-installed explorer band IDs according to API Monitor traces */ +#define IDM_EXPLORERBAND_BEGINCUSTOM 0xA240 +#define IDM_EXPLORERBAND_ENDCUSTOM 0xA25C #define IDM_GOTO_TRAVEL_FIRST 0xA141 #define IDM_GOTO_TRAVEL_LAST 0xA151 @@ -118,3 +124,5 @@ #define IDC_TEXTOPTIONS 4096 #define IDC_ICONOPTIONS 4097 + +#define IDB_BANDBUTTONS 545 Modified: trunk/reactos/dll/win32/browseui/shellbrowser.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/shellbr…
============================================================================== --- trunk/reactos/dll/win32/browseui/shellbrowser.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/shellbrowser.cpp [iso-8859-1] Tue May 31 14:42:01 2016 @@ -24,7 +24,7 @@ #include <htiframe.h> #include <strsafe.h> -#define USE_CUSTOM_EXPLORERBAND 1 +#define USE_CUSTOM_EXPLORERBAND 0 extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow); @@ -118,14 +118,6 @@ "language='*'\"") #endif // __GNUC__ -struct categoryCacheHeader -{ - long dwSize; // size of header only - long version; // currently 1 - SYSTEMTIME writeTime; // time we were written to registry - long classCount; // number of classes following -}; - static const unsigned int folderOptionsPageCountMax = 20; static const long BTP_DONT_UPDATE_HISTORY = 0; static const long BTP_UPDATE_CUR_HISTORY = 1; @@ -257,6 +249,11 @@ where vaIn will be a VT_UNKNOWN with the new bar. It also sends a RB_SHOWBAND to the rebar */ + +struct MenuBandInfo { + GUID barGuid; + BOOL fVertical; +}; class CShellBrowser : public CWindowImpl<CShellBrowser, CWindow, CFrameWinTraits>, @@ -304,6 +301,7 @@ IOleObject *fHistoryObject; IStream *fHistoryStream; IBindCtx *fHistoryBindContext; + HDSA menuDsa; HACCEL m_hAccel; public: #if 0 @@ -328,11 +326,15 @@ FOLDERSETTINGS *folderSettings, long flags); HRESULT GetMenuBand(REFIID riid, void **shellMenu); HRESULT GetBaseBar(bool vertical, IUnknown **theBaseBar); + BOOL IsBandLoaded(const CLSID clsidBand, bool verticali, DWORD *pdwBandID); HRESULT ShowBand(const CLSID &classID, bool vertical); HRESULT NavigateToParent(); HRESULT DoFolderOptions(); static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void RepositionBars(); + HRESULT BuildExplorerBandMenu(); + HRESULT BuildExplorerBandCategory(HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound); + BOOL IsBuiltinBand(CLSID &bandID); virtual WNDPROC GetWindowProc() { return WindowProc; @@ -345,7 +347,6 @@ HRESULT UpdateUpState(); void UpdateGotoMenu(HMENU theMenu); void UpdateViewMenu(HMENU theMenu); - HRESULT OnSearch(); /* // *** IDockingWindowFrame methods *** virtual HRESULT STDMETHODCALLTYPE AddToolbar(IUnknown *punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags); @@ -616,7 +617,9 @@ LRESULT OnToggleTextLabels(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); LRESULT OnToolbarCustomize(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); LRESULT OnGoTravel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); + LRESULT OnExplorerBar(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled); LRESULT RelayCommands(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); + HRESULT OnSearch(); static ATL::CWndClassInfo& GetWndClassInfo() { @@ -657,8 +660,13 @@ COMMAND_ID_HANDLER(IDM_TOOLBARS_LINKSBAR, OnToggleLinksBandVisible) COMMAND_ID_HANDLER(IDM_TOOLBARS_TEXTLABELS, OnToggleTextLabels) COMMAND_ID_HANDLER(IDM_TOOLBARS_CUSTOMIZE, OnToolbarCustomize) + COMMAND_ID_HANDLER(IDM_EXPLORERBAR_SEARCH, OnExplorerBar) + COMMAND_ID_HANDLER(IDM_EXPLORERBAR_FOLDERS, OnExplorerBar) + COMMAND_ID_HANDLER(IDM_EXPLORERBAR_HISTORY, OnExplorerBar) + COMMAND_ID_HANDLER(IDM_EXPLORERBAR_FAVORITES, OnExplorerBar) COMMAND_ID_HANDLER(IDM_BACKSPACE, OnBackspace) COMMAND_RANGE_HANDLER(IDM_GOTO_TRAVEL_FIRSTTARGET, IDM_GOTO_TRAVEL_LASTTARGET, OnGoTravel) + COMMAND_RANGE_HANDLER(IDM_EXPLORERBAND_BEGINCUSTOM, IDM_EXPLORERBAND_ENDCUSTOM, OnExplorerBar) MESSAGE_HANDLER(WM_COMMAND, RelayCommands) END_MSG_MAP() @@ -706,6 +714,8 @@ CShellBrowser::~CShellBrowser() { + if (menuDsa) + DSA_Destroy(menuDsa); } HRESULT CShellBrowser::Initialize(LPITEMIDLIST pidl, long b, long c, long d) @@ -715,6 +725,10 @@ CComPtr<IUnknown> clientBar; _AtlInitialConstruct(); + + menuDsa = DSA_Create(sizeof(MenuBandInfo), 5); + if (!menuDsa) + return E_OUTOFMEMORY; fCabinetState.cLength = sizeof(fCabinetState); if (ReadCabinetState(&fCabinetState, sizeof(fCabinetState)) == FALSE) @@ -1112,7 +1126,10 @@ hResult = CreateBaseBarSite(IID_PPV_ARG(IUnknown, &newBaseBarSite), vertical); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; - + + // we have to store our basebar into cache now + *cache = newBaseBar; + // tell the new base bar about the shell browser hResult = IUnknown_SetSite(newBaseBar, static_cast<IDropTarget *>(this)); if (FAILED_UNEXPECTEDLY(hResult)) @@ -1134,9 +1151,61 @@ if (FAILED_UNEXPECTEDLY(hResult)) return hResult; - *cache = newBaseBar.Detach(); } return (*cache)->QueryInterface(IID_PPV_ARG(IUnknown, theBaseBar)); +} + +BOOL CShellBrowser::IsBandLoaded(const CLSID clsidBand, bool vertical, DWORD *pdwBandID) +{ + HRESULT hResult; + CComPtr<IUnknown> baseBar; + CComPtr<IDeskBar> deskBar; + CComPtr<IUnknown> baseBarSite; + CComPtr<IBandSite> bandSite; + CLSID clsidTmp; + DWORD numBands; + DWORD dwBandID; + DWORD i; + + /* Get our basebarsite to be able to enumerate bands */ + hResult = GetBaseBar(vertical, &baseBar); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + hResult = baseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar)); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + hResult = deskBar->GetClient(&baseBarSite); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + hResult = baseBarSite->QueryInterface(IID_PPV_ARG(IBandSite, &bandSite)); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + + hResult = bandSite->EnumBands(-1, &numBands); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + + for(i = 0; i < numBands; i++) + { + CComPtr<IPersist> bandPersist; + + hResult = bandSite->EnumBands(i, &dwBandID); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + + hResult = bandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &bandPersist)); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + hResult = bandPersist->GetClassID(&clsidTmp); + if (FAILED_UNEXPECTEDLY(hResult)) + return FALSE; + if (IsEqualGUID(clsidBand, clsidTmp)) + { + if (pdwBandID) *pdwBandID = dwBandID; + return TRUE; + } + } + return FALSE; } HRESULT CShellBrowser::ShowBand(const CLSID &classID, bool vertical) @@ -1148,42 +1217,59 @@ CComPtr<IDeskBar> deskBar; VARIANT vaIn; HRESULT hResult; + DWORD dwBandID; hResult = GetBaseBar(vertical, (IUnknown **)&theBaseBar); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; - -#if USE_CUSTOM_EXPLORERBAND - TRACE("ShowBand called for CLSID %s, vertical=%d...\n", wine_dbgstr_guid(&classID), vertical); - if (IsEqualCLSID(CLSID_ExplorerBand, classID)) - { - TRACE("CLSID_ExplorerBand requested, building internal band.\n"); - hResult = CExplorerBand_Constructor(IID_PPV_ARG(IUnknown, &newBand)); - if (FAILED_UNEXPECTEDLY(hResult)) - return hResult; - } - else -#endif - { - TRACE("A different CLSID requested, using CoCreateInstance.\n"); + + hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar)); + if (FAILED_UNEXPECTEDLY(hResult)) + return hResult; + + hResult = deskBar->GetClient(&baseBarSite); + if (FAILED_UNEXPECTEDLY(hResult)) + return hResult; + + hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &dockingWindow)); + if (FAILED_UNEXPECTEDLY(hResult)) + return hResult; + + if (!IsBandLoaded(classID, vertical, &dwBandID)) + { hResult = CoCreateInstance(classID, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, &newBand)); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; } - hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar)); - if (FAILED_UNEXPECTEDLY(hResult)) - return hResult; - hResult = deskBar->GetClient(&baseBarSite); - if (FAILED_UNEXPECTEDLY(hResult)) - return hResult; - hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &dockingWindow)); - if (FAILED_UNEXPECTEDLY(hResult)) - return hResult; + else + { + CComPtr<IBandSite> pBandSite; + + hResult = baseBarSite->QueryInterface(IID_PPV_ARG(IBandSite, &pBandSite)); + if (!SUCCEEDED(hResult)) + { + ERR("Can't get IBandSite interface\n"); + return E_FAIL; + } + hResult = pBandSite->GetBandObject(dwBandID, IID_PPV_ARG(IUnknown, &newBand)); + if (!SUCCEEDED(hResult)) + { + ERR("Can't find band object\n"); + return E_FAIL; + } + + // It's hackish, but we should be able to show the wanted band until we + // find the proper way to do this (but it seems to work to add a new band) + // Here we'll just re-add the existing band to the site, causing it to display. + } V_VT(&vaIn) = VT_UNKNOWN; V_UNKNOWN(&vaIn) = newBand.p; hResult = IUnknown_Exec(baseBarSite, CGID_IDeskBand, 1, 1, &vaIn, NULL); if (FAILED_UNEXPECTEDLY(hResult)) + { return hResult; + } + hResult = dockingWindow->ShowDW(TRUE); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; @@ -1634,9 +1720,93 @@ SetMenuItemInfo(theMenu, IDM_VIEW_TOOLBARS, FALSE, &menuItemInfo); } SHCheckMenuItem(theMenu, IDM_VIEW_STATUSBAR, fStatusBarVisible ? TRUE : FALSE); - - // TODO: Implement - SHEnableMenuItem(theMenu, IDM_VIEW_EXPLORERBAR, FALSE); +} + +HRESULT CShellBrowser::BuildExplorerBandMenu() +{ + HMENU hBandsMenu; + UINT nbFound; + + hBandsMenu = SHGetMenuFromID(fCurrentMenuBar, IDM_VIEW_EXPLORERBAR); + if (!hBandsMenu) + { + OutputDebugString(L"No menu !\n"); + return E_FAIL; + } + DSA_DeleteAllItems(menuDsa); + BuildExplorerBandCategory(hBandsMenu, CATID_InfoBand, 4, NULL); + BuildExplorerBandCategory(hBandsMenu, CATID_CommBand, 20, &nbFound); + if (!nbFound) + { + // Remove separator + DeleteMenu(hBandsMenu, IDM_EXPLORERBAR_SEPARATOR, MF_BYCOMMAND); + } + // Remove media menu since XP does it (according to API Monitor) + DeleteMenu(hBandsMenu, IDM_EXPLORERBAR_MEDIA, MF_BYCOMMAND); + return S_OK; +} + +HRESULT CShellBrowser::BuildExplorerBandCategory(HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound) +{ + HRESULT hr; + CComPtr<IEnumGUID> pEnumGUID; + WCHAR wszBandName[MAX_PATH]; + WCHAR wszBandGUID[MAX_PATH]; + WCHAR wRegKey[MAX_PATH]; + UINT cBands; + DWORD dwRead; + DWORD dwDataSize; + GUID iter; + MenuBandInfo mbi; + + mbi.fVertical = IsEqualGUID(category, CATID_InfoBand); + cBands = 0; + hr = SHEnumClassesOfCategories(1, &category, 0, NULL, &pEnumGUID); + if (FAILED_UNEXPECTEDLY(hr)) + { + return hr; + } + do + { + pEnumGUID->Next(1, &iter, &dwRead); + if (dwRead) + { + // Get the band name + if (IsBuiltinBand(iter)) + continue; + if (!StringFromGUID2(iter, wszBandGUID, MAX_PATH)) + continue; + StringCchPrintfW(wRegKey, MAX_PATH, L"CLSID\\%s", wszBandGUID); + dwDataSize = MAX_PATH; + SHGetValue(HKEY_CLASSES_ROOT, wRegKey, NULL, NULL, wszBandName, &dwDataSize); + + mbi.barGuid = iter; + InsertMenu(hBandsMenu, dwPos + cBands, MF_BYPOSITION, IDM_EXPLORERBAND_BEGINCUSTOM + DSA_GetItemCount(menuDsa), wszBandName); + DSA_AppendItem(menuDsa, &mbi); + cBands++; + } + } + while (dwRead > 0); + if (nbFound) + *nbFound = cBands; + return S_OK; +} + +BOOL CShellBrowser::IsBuiltinBand(CLSID &bandID) +{ + if (IsEqualCLSID(bandID, CLSID_ExplorerBand)) + return TRUE; + if (IsEqualCLSID(bandID, CLSID_SH_SearchBand) || IsEqualCLSID(bandID, CLSID_SearchBand)) + return TRUE; + if (IsEqualCLSID(bandID, CLSID_IE_SearchBand) || IsEqualCLSID(bandID, CLSID_FileSearchBand)) + return TRUE; + if (IsEqualCLSID(bandID, CLSID_SH_HistBand)) + return TRUE; + if (IsEqualCLSID(bandID, CLSID_SH_FavBand)) + return TRUE; + if (IsEqualCLSID(bandID, CLSID_ChannelsBand)) + return TRUE; + return FALSE; } HRESULT CShellBrowser::OnSearch() @@ -1805,6 +1975,11 @@ { HRESULT hResult; + if (!pguidCmdGroup) + { + TRACE("Unhandled null CGID %d %d %p %p\n", nCmdID, nCmdexecopt, pvaIn, pvaOut); + return E_NOTIMPL; + } if (IsEqualIID(*pguidCmdGroup, CGID_Explorer)) { switch (nCmdID) @@ -1868,6 +2043,9 @@ case 0x12: // refresh on toolbar clicked return S_OK; + case 0x26: + // called for unknown bands ? + return S_OK; case 0x4d: // tell the view if it should hide the task pane or not return (fClientBars[BIVerticalBaseBar].clientBar.p == NULL) ? S_FALSE : S_OK; @@ -1960,20 +2138,22 @@ if (FAILED_UNEXPECTEDLY(hResult)) return hResult; - if (hmenuShared) - { - // FIXME: Figure out the proper way to do this. - HMENU hMenuFavs = GetSubMenu(hmenuShared, 3); - if (hMenuFavs) - { - DeleteMenu(hMenuFavs, IDM_FAVORITES_EMPTY, MF_BYCOMMAND); - } + if (!hmenuShared) + { + hmenuShared = LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_CABINET_MAINMENU)); + } + // FIXME: Figure out the proper way to do this. + HMENU hMenuFavs = GetSubMenu(hmenuShared, 3); + if (hMenuFavs) + { + DeleteMenu(hMenuFavs, IDM_FAVORITES_EMPTY, MF_BYCOMMAND); } hResult = shellMenu->SetMenu(hmenuShared, m_hWnd, SMSET_DONTOWN); if (FAILED_UNEXPECTEDLY(hResult)) return hResult; fCurrentMenuBar = hmenuShared; + BuildExplorerBandMenu(); return S_OK; } @@ -1998,7 +2178,7 @@ { } - return E_NOTIMPL; + return S_OK; } HRESULT STDMETHODCALLTYPE CShellBrowser::EnableModelessSB(BOOL fEnable) @@ -2028,7 +2208,7 @@ if (lphwnd == NULL) return E_POINTER; *lphwnd = NULL; - switch(id) + switch (id) { case FCW_TOOLBAR: *lphwnd = fToolbarProxy.m_hWnd; @@ -2054,7 +2234,7 @@ if (pret != NULL) *pret = 0; - switch(id) + switch (id) { case FCW_TOOLBAR: result = fToolbarProxy.SendMessage(uMsg, wParam, lParam); @@ -3172,15 +3352,39 @@ for (int i = 0; i < 3; i++) { + CComPtr<IDockingWindow> pdw; + CComPtr<IDeskBar> bar; + CComPtr<IUnknown> pBarSite; + CComPtr<IDeskBarClient> pClient; + if (fClientBars[i].clientBar == NULL) continue; - IDockingWindow * pdw; + hr = fClientBars[i].clientBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &pdw)); if (FAILED_UNEXPECTEDLY(hr)) continue; - pdw->ShowDW(FALSE); + + /* We should destroy our basebarsite too */ + hr = pdw->QueryInterface(IID_PPV_ARG(IDeskBar, &bar)); + if (SUCCEEDED(hr)) + { + hr = bar->GetClient(&pBarSite); + if (SUCCEEDED(hr) && pBarSite) + { + hr = pBarSite->QueryInterface(IID_PPV_ARG(IDeskBarClient, &pClient)); + if (SUCCEEDED(hr)) + pClient->SetDeskBarSite(NULL); + } + } pdw->CloseDW(0); - pdw->Release(); + pdw = NULL; + /* For some reasons, it's like we miss some AddRef in ATL when QueryInterface on + * same interface or inherited one, so we are removing already removed (!) object. + * TODO: check with MSVC's ATL to see if this behaviour happens too + */ + bar.Detach(); + pClient.Detach(); + pBarSite.Detach(); ReleaseCComPtrExpectZero(fClientBars[i].clientBar); } ReleaseCComPtrExpectZero(fTravelLog); @@ -3471,6 +3675,40 @@ return 0; } +LRESULT CShellBrowser::OnExplorerBar(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled) +{ + // TODO: HACK ! use the proper mechanism to show the band (i.e. pass the BSTR to basebar) + if (wID >= IDM_EXPLORERBAND_BEGINCUSTOM && wID <= IDM_EXPLORERBAND_ENDCUSTOM) + { + MenuBandInfo *mbi; + mbi = (MenuBandInfo*)DSA_GetItemPtr(menuDsa, (wID - IDM_EXPLORERBAND_BEGINCUSTOM)); + if (!mbi) + return 0; + ShowBand(mbi->barGuid, mbi->fVertical); + bHandled = TRUE; + return 1; + } + switch (wID) + { + case IDM_EXPLORERBAR_SEARCH: + Exec(&CLSID_CommonButtons, 0x123, 1, NULL, NULL); + break; + case IDM_EXPLORERBAR_FOLDERS: + ShowBand(CLSID_ExplorerBand, true); + break; + case IDM_EXPLORERBAR_HISTORY: + ShowBand(CLSID_SH_HistBand, true); + break; + case IDM_EXPLORERBAR_FAVORITES: + ShowBand(CLSID_SH_FavBand, true); + break; + default: + WARN("Unknown id %x\n", wID); + } + bHandled = TRUE; + return 1; +} + LRESULT CShellBrowser::RelayCommands(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) { if (HIWORD(wParam) == 0 && LOWORD(wParam) < FCIDM_SHVIEWLAST && fCurrentShellViewWindow != NULL)
8 years, 6 months
1
0
0
0
[gadamopoulos] 71472: [BROWSEUI] - Fix a crash that can happen under weird circumstances. - Part of the work submitted by Sylvain Deverre. CORE-10838
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Tue May 31 14:02:58 2016 New Revision: 71472 URL:
http://svn.reactos.org/svn/reactos?rev=71472&view=rev
Log: [BROWSEUI] - Fix a crash that can happen under weird circumstances. - Part of the work submitted by Sylvain Deverre. CORE-10838 Modified: trunk/reactos/dll/win32/browseui/travellog.cpp Modified: trunk/reactos/dll/win32/browseui/travellog.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/travell…
============================================================================== --- trunk/reactos/dll/win32/browseui/travellog.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/travellog.cpp [iso-8859-1] Tue May 31 14:02:58 2016 @@ -172,6 +172,7 @@ GetToolTipText(punk, wch); TRACE("Updating entry with display name: %S\n", wch); + ZeroMemory(&windowData, sizeof(WINDOWDATA)); ILFree(fPIDL); fPIDL = NULL; GlobalFree(fPersistState);
8 years, 6 months
1
0
0
0
[gadamopoulos] 71471: [BROWSEUI] - Implement SHEnumClassesOfCategories - Part of the work submitted by Sylvain Deverre. CORE-10838
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Tue May 31 13:39:42 2016 New Revision: 71471 URL:
http://svn.reactos.org/svn/reactos?rev=71471&view=rev
Log: [BROWSEUI] - Implement SHEnumClassesOfCategories - Part of the work submitted by Sylvain Deverre. CORE-10838 Added: trunk/reactos/dll/win32/browseui/comcat.cpp (with props) Modified: trunk/reactos/dll/win32/browseui/CMakeLists.txt trunk/reactos/dll/win32/browseui/browseuiord.cpp Modified: trunk/reactos/dll/win32/browseui/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/CMakeLi…
============================================================================== --- trunk/reactos/dll/win32/browseui/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/CMakeLists.txt [iso-8859-1] Tue May 31 13:39:42 2016 @@ -31,6 +31,7 @@ travellog.cpp utility.cpp CProgressDialog.cpp + comcat.cpp precomp.h) add_library(browseui SHARED Modified: trunk/reactos/dll/win32/browseui/browseuiord.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/browseu…
============================================================================== --- trunk/reactos/dll/win32/browseui/browseuiord.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/browseui/browseuiord.cpp [iso-8859-1] Tue May 31 13:39:42 2016 @@ -136,13 +136,6 @@ return E_NOTIMPL; } -/************************************************************************* - * SHEnumClassesOfCategories [BROWSEUI.136] - */ -extern "C" HRESULT WINAPI SHEnumClassesOfCategories(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired, IEnumGUID **out) -{ - return E_NOTIMPL; -} /************************************************************************* * SHWriteClassesOfCategories [BROWSEUI.137] Added: trunk/reactos/dll/win32/browseui/comcat.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/comcat.…
============================================================================== --- trunk/reactos/dll/win32/browseui/comcat.cpp (added) +++ trunk/reactos/dll/win32/browseui/comcat.cpp [iso-8859-1] Tue May 31 13:39:42 2016 @@ -0,0 +1,336 @@ +/* + * ReactOS Explorer + * + * Copyright 2016 Sylvain Deverre <deverre dot sylv at gmail dot com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * Wraps the component categories manager enum + */ + +#include "precomp.h" + +#define REGPATH L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Discardable\\PostSetup\\Component Categories" +#define IMPLEMENTING L"Implementing" +#define REQUIRING L"Requiring" + +typedef struct categoryCacheHeader +{ + DWORD dwSize; // size of header only + DWORD version; // currently 1 + SYSTEMTIME writeTime; // time we were written to registry + DWORD classCount; // number of classes following +} CATCACHEHDR, *PCATCACHEHDR; + +/* + * This class manages a cached explorer component categories items, writing cache if it + * doesn't exist yet. + * It is used by CSHEnumClassesOfCategories internally. + */ +class CComCatCachedCategory +{ + public: + CComCatCachedCategory(); + virtual ~CComCatCachedCategory(); + HRESULT WriteCacheToDSA(HDSA pDest); + HRESULT STDMETHODCALLTYPE Initialize(CATID &catID, BOOL reloadCache); + private: + BOOL LoadFromRegistry(); + HRESULT LoadFromComCatMgr(); + HRESULT CacheDSA(); + CATID fCategory; + HDSA fLocalDsa; +}; + +CComCatCachedCategory::CComCatCachedCategory() +{ + fLocalDsa = DSA_Create(sizeof(GUID), 5); +} + +HRESULT STDMETHODCALLTYPE CComCatCachedCategory::Initialize(CATID &catID, BOOL reloadCache) +{ + HRESULT hr; + + fCategory = catID; + if (reloadCache || !LoadFromRegistry()) + { + hr = LoadFromComCatMgr(); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + hr = CacheDSA(); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + } + return S_OK; +} + +CComCatCachedCategory::~CComCatCachedCategory() +{ + DSA_Destroy(fLocalDsa); +} + +BOOL CComCatCachedCategory::LoadFromRegistry() +{ + WCHAR bufKey[MAX_PATH]; + WCHAR guidStr[MAX_PATH]; + DWORD dataSize, i; + CComHeapPtr<CATCACHEHDR> buffer; + GUID *guidArray; + + if (!fLocalDsa) + return FALSE; + + dataSize = 0; + if (!StringFromGUID2(fCategory, guidStr, MAX_PATH)) + return FALSE; + + wsprintf(bufKey, L"%s\\%s\\%s", REGPATH , guidStr, L"Enum"); + + // Try to read key and get proper value size + if (SHGetValue(HKEY_CURRENT_USER, bufKey, IMPLEMENTING, NULL, NULL, &dataSize)) + return FALSE; + + buffer.Attach((PCATCACHEHDR)CoTaskMemAlloc(dataSize)); + + SHGetValue(HKEY_CURRENT_USER, bufKey, IMPLEMENTING, NULL, buffer, &dataSize); + guidArray = (GUID*)(buffer + 1); + for (i = 0; i < buffer->classCount; i++) + { + // Add class to cache + DSA_InsertItem(fLocalDsa, DSA_APPEND, guidArray + i); + } + + return TRUE; +} + +HRESULT CComCatCachedCategory::CacheDSA() +{ + WCHAR bufKey[MAX_PATH]; + WCHAR guidStr[MAX_PATH]; + UINT elemCount; + UINT i; + UINT bufferSize; + CComHeapPtr<CATCACHEHDR> buffer; + GUID *guidArray; + GUID *tmp; + + elemCount = DSA_GetItemCount(fLocalDsa); + bufferSize = sizeof(CATCACHEHDR) + elemCount * sizeof(GUID); + if (!StringFromGUID2(fCategory, guidStr, MAX_PATH)) + return E_FAIL; + + buffer.Attach((PCATCACHEHDR)CoTaskMemAlloc(bufferSize)); + if (!buffer) + return E_OUTOFMEMORY; + + // Correctly fill cache header + buffer->dwSize = sizeof(CATCACHEHDR); + buffer->version = 1; + GetSystemTime(&buffer->writeTime); + buffer->classCount = (DWORD)elemCount; + + guidArray = (GUID*)(buffer + 1); + wsprintf(bufKey, L"%s\\%s\\%s", REGPATH , guidStr, L"Enum"); + + // Write DSA contents inside the memory buffer allocated + for(i = 0; i < elemCount; i++) + { + tmp = (GUID*)DSA_GetItemPtr(fLocalDsa, i); + if (tmp) + { + guidArray[i] = *tmp; + } + } + + // Save items to registry + SHSetValue(HKEY_CURRENT_USER, bufKey, IMPLEMENTING, REG_BINARY, buffer, bufferSize); + + guidArray = NULL; + CoTaskMemFree(buffer); + return S_OK; +} + +HRESULT CComCatCachedCategory::LoadFromComCatMgr() +{ + HRESULT hr; + CComPtr<ICatInformation> pCatInformation; + CComPtr<IEnumGUID> pEnumGUID; + ULONG pFetched; + CLSID tmp; + + // Get component categories manager instance + hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL, CLSCTX_INPROC_SERVER, + IID_PPV_ARG(ICatInformation, &pCatInformation)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + // Get the proper enumerator + hr = pCatInformation->EnumClassesOfCategories(1, &fCategory, NULL, NULL, &pEnumGUID); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + // Enumerate elements + do + { + pFetched = 0; + pEnumGUID->Next(1, &tmp, &pFetched); + if (pFetched) + { + if (DSA_InsertItem(fLocalDsa, DSA_APPEND, &tmp) == E_OUTOFMEMORY) + return E_OUTOFMEMORY; + } + } + while (pFetched > 0); + return S_OK; +} + +HRESULT CComCatCachedCategory::WriteCacheToDSA(HDSA pDest) +{ + INT i; + for(i = 0; i < DSA_GetItemCount(fLocalDsa); i++) + { + if (DSA_InsertItem(pDest, DSA_APPEND, DSA_GetItemPtr(fLocalDsa, i)) == DSA_ERR) + return E_OUTOFMEMORY; + } + return S_OK; +} + +class CSHEnumClassesOfCategories : + public CComCoClass<CSHEnumClassesOfCategories>, + public CComObjectRootEx<CComMultiThreadModelNoCS>, + public IEnumGUID +{ + private: + CComPtr<ICatInformation> fCatInformation; + HDSA fDsa; + ULONG fCursor; + + public: + CSHEnumClassesOfCategories(); + virtual ~CSHEnumClassesOfCategories(); + virtual HRESULT STDMETHODCALLTYPE Initialize(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired); + // *** IEnumGUID methods *** + virtual HRESULT STDMETHODCALLTYPE Clone(IEnumCLSID **ppvOut); + virtual HRESULT STDMETHODCALLTYPE Next(ULONG cElt, CLSID *pElts, ULONG *pFetched); + virtual HRESULT STDMETHODCALLTYPE Reset(); + virtual HRESULT STDMETHODCALLTYPE Skip(ULONG nbElts); + + BEGIN_COM_MAP(CSHEnumClassesOfCategories) + COM_INTERFACE_ENTRY_IID(IID_IEnumGUID, IEnumGUID) + END_COM_MAP() +}; + +CSHEnumClassesOfCategories::CSHEnumClassesOfCategories() +{ + fCursor = 0; + fDsa = DSA_Create(sizeof(GUID), 5); +} + +CSHEnumClassesOfCategories::~CSHEnumClassesOfCategories() +{ + if (fDsa) + DSA_Destroy(fDsa); +} + +HRESULT CSHEnumClassesOfCategories::Initialize(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired) +{ + UINT i; + HRESULT hr; + + if (!fDsa) + return E_FAIL; + + if (cRequired > 0 || cImplemented == (ULONG)-1) + { + FIXME("Implement required categories class enumeration\n"); + return E_NOTIMPL; + } + + // Don't do anything if we have nothing + if (cRequired == 0 && cImplemented == (ULONG)-1) + return E_FAIL; + + // For each implemented category, create a cache and add it to our local DSA + for (i = 0; i < cImplemented; i++) + { + CComCatCachedCategory cachedCat; + hr = cachedCat.Initialize(pImplemented[i], FALSE); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + cachedCat.WriteCacheToDSA(fDsa); + } + return S_OK; +} + +// *** IEnumGUID methods *** + +HRESULT STDMETHODCALLTYPE CSHEnumClassesOfCategories::Clone(IEnumCLSID **ppvOut) +{ + return E_NOTIMPL; +} + +HRESULT STDMETHODCALLTYPE CSHEnumClassesOfCategories::Next(ULONG cElt, CLSID *pElts, ULONG *pFetched) +{ + ULONG i; + ULONG read; + GUID *tmp; + + if (!pElts) + return E_INVALIDARG; + read = 0; + for (i = 0; i < cElt && (fCursor < (ULONG)DSA_GetItemCount(fDsa)); i++) + { + tmp = (GUID*)DSA_GetItemPtr(fDsa, fCursor + i); + if (!tmp) + break; + pElts[i] = *tmp; + read++; + } + fCursor += read; + if (pFetched) + *pFetched = read; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CSHEnumClassesOfCategories::Reset() +{ + fCursor = 0; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CSHEnumClassesOfCategories::Skip(ULONG nbElts) +{ + if (fCursor + nbElts >= (ULONG)DSA_GetItemCount(fDsa)) + return E_INVALIDARG; + fCursor += nbElts; + return S_OK; +} + +/************************************************************************* + * SHEnumClassesOfCategories [BROWSEUI.136] + */ +extern "C" HRESULT WINAPI SHEnumClassesOfCategories(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired, IEnumGUID **out) +{ + HRESULT hr; + + hr = ShellObjectCreatorInit<CSHEnumClassesOfCategories, ULONG, CATID*, ULONG, CATID*, IEnumGUID>( + cImplemented, pImplemented, cRequired, pRequired, IID_IEnumGUID, out); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + return S_OK; +} Propchange: trunk/reactos/dll/win32/browseui/comcat.cpp ------------------------------------------------------------------------------ svn:eol-style = native
8 years, 6 months
1
0
0
0
[rnaumann] 71470: [IERNONCE]Add Chinese and Malay translations. Patch by Henry Tang Ih. CORE-11022
by rnaumann@svn.reactos.org
Author: rnaumann Date: Tue May 31 11:15:25 2016 New Revision: 71470 URL:
http://svn.reactos.org/svn/reactos?rev=71470&view=rev
Log: [IERNONCE]Add Chinese and Malay translations. Patch by Henry Tang Ih. CORE-11022 Added: trunk/reactos/dll/win32/iernonce/lang/ms-MY.rc (with props) trunk/reactos/dll/win32/iernonce/lang/zh-CN.rc (with props) trunk/reactos/dll/win32/iernonce/lang/zh-TW.rc (with props) Modified: trunk/reactos/dll/win32/iernonce/iernonce.rc Modified: trunk/reactos/dll/win32/iernonce/iernonce.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iernonce/iernonc…
============================================================================== --- trunk/reactos/dll/win32/iernonce/iernonce.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/iernonce/iernonce.rc [iso-8859-1] Tue May 31 11:15:25 2016 @@ -17,9 +17,19 @@ #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif +#ifdef LANGUAGE_MS_MY + #include "lang/ms-MY.rc" +#endif #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif #ifdef LANGUAGE_TR_TR #include "lang/tr-TR.rc" #endif +#ifdef LANGUAGE_ZH_CN + #include "lang/zh-CN.rc" +#endif +#ifdef LANGUAGE_ZH_TW + #include "lang/zh-TW.rc" +#endif + Added: trunk/reactos/dll/win32/iernonce/lang/ms-MY.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iernonce/lang/ms…
============================================================================== --- trunk/reactos/dll/win32/iernonce/lang/ms-MY.rc (added) +++ trunk/reactos/dll/win32/iernonce/lang/ms-MY.rc [iso-8859-1] Tue May 31 11:15:25 2016 @@ -0,0 +1,29 @@ +/* Malay translation by Henry Tang Ih 2016 (henrytang2(a)hotmail.com) */ + +LANGUAGE LANG_MALAY, SUBLANG_DEFAULT + +STRINGTABLE +BEGIN + IDS_INVALIDFORMAT "Format %1 RunEx atau RunOnceEx kemasukan adalah tidak sah. Sebuah bar menegak ('| ') yang perlu dibuat selepas nama fungsi dan bahagian perlu menyokong parameter WinMain()." + IDS_LOADERROR "Kesilapan berlaku semasa memuatkan %1. Fail itu mungkin tidak telah dipasang atau ia telah rosak." + IDS_CALLERROR "Kesilapan dan pengecualian berlaku ketika memanggil fungsi %1 pada %2." + IDS_INCORRECTFORMAT "Format arahan RunEx atau RunOnceEx berikut adalah tidak betul: %1. Shell melaksanakan perintah mesti bermula dengan ||." + IDS_NOEXPORT "Tidak dapat memanggilkan fungsi %1 dalam fail %2 kerana fungsi tersebut tidak wujud atau tidak dieksport." + IDS_EXECUTEERROR "Kesilapan dan pengecualian berlaku ketika melaksanakan %1." + IDS_NOFUNCTION "Tidak dapat mencari fungsi %1 dalam fail %2." + IDS_NODEPENDENCY "Tidak dapat memuatkan fail pergantungan %1." + IDS_SETUPERROR "Satu kesilapan telah berlaku semasa menyediakan %1. Kesilapan ini telah dilog, pemasangan akan terus" + IDS_INCOMPLETE "Pemasangan aplikasi sebelum ini belum diselesaikan.\n\nLog masuk dengan akaun pentadbir untuk menyelesaikan pemasangan." + IDS_SETUP "ReactOS Persediaan" + IDS_SERVICEERROR "Beberapa perkhidmatan tidak dapat dimulakan. Persediaan perlu mulakan semula sistem anda untuk memulakan perkhidmatan." +END + +IDD_DIALOG DIALOGEX 0, 0, 206, 166 +STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "ReactOS Persediaan" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS sedang menyediakan perkara-perkara berikut:", -1, 36, 13, 163, 11 + LISTBOX IDC_LB_ITEMS, 36, 32, 163, 127, LBS_NOTIFY | LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + ICON IDI_ICON, -1, 7, 7, 20, 20 +END Propchange: trunk/reactos/dll/win32/iernonce/lang/ms-MY.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/iernonce/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iernonce/lang/zh…
============================================================================== --- trunk/reactos/dll/win32/iernonce/lang/zh-CN.rc (added) +++ trunk/reactos/dll/win32/iernonce/lang/zh-CN.rc [iso-8859-1] Tue May 31 11:15:25 2016 @@ -0,0 +1,29 @@ +/* Simplified Chinese translation by Henry Tang Ih 2016 (henrytang2(a)hotmail.com) */ + +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED + +STRINGTABLE +BEGIN + IDS_INVALIDFORMAT "%1 RunEx çæ ¼å¼æ RunOnceEx æ¡ç®æ¯æ æçã ç«çº¿ ('|') å¨å½æ°ååéè¦åæ¯æ WinMain() åæ°æéè¦çåè½ã" + IDS_LOADERROR "åºç°äºä¸ä¸ªé误å è½½ %1ã 该æ件å¯è½æªå®è£ æ已被æåã" + IDS_CALLERROR "åºç°äºä¸ä¸ªé误æå¼å¸¸è°ç¨å½æ° %1 %2 ä¸ã" + IDS_INCORRECTFORMAT "以ä¸ç RunEx æ å½ä»¤çæ ¼å¼ä¸æ£ç¡®: %1 ãShell æ§è¡çå½ä»¤å¿ 须以 || å¼å¤´ã" + IDS_NOEXPORT "æ æ³è°ç¨è¯¥å½æ° %1 æ件 %2 ä¸å 为该å½æ°ä¸åå¨æä¸è¢«å¯¼åºã" + IDS_EXECUTEERROR "æ§è¡ %1 æ¶åºç°é误æå¼å¸¸ã" + IDS_NOFUNCTION "æ æ³æ¾å°å½æ° %1 æ件 %2 ä¸ã" + IDS_NODEPENDENCY "æ æ³å è½½ä¾èµé¡¹æ件 %1ã." + IDS_SETUPERROR "设置 %1 æ¶åºéãæ¤é误已记å½ï¼å®è£ å°ç»§ç»" + IDS_INCOMPLETE "以åå®è£ çåºç¨ç¨åºå°æªå®æã\n\nç»å½ä½¿ç¨ç®¡çåå¸æ·æ¥å®æå®è£ ã" + IDS_SETUP "ReactOS å®è£ " + IDS_SERVICEERROR "ä¸äºæå¡æ æ³å¯å¨ãå®è£ ç¨åºéè¦éæ°å¯å¨ç³»ç»ä»¥ä¾¿å¯å¨è¿äºæå¡ã" +END + +IDD_DIALOG DIALOGEX 0, 0, 206, 166 +STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "ReactOS å®è£ " +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS ç°å¨è®¾ç½®ä»¥ä¸å项: ", -1, 36, 13, 163, 11 + LISTBOX IDC_LB_ITEMS, 36, 32, 163, 127, LBS_NOTIFY | LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + ICON IDI_ICON, -1, 7, 7, 20, 20 +END Propchange: trunk/reactos/dll/win32/iernonce/lang/zh-CN.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/iernonce/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/iernonce/lang/zh…
============================================================================== --- trunk/reactos/dll/win32/iernonce/lang/zh-TW.rc (added) +++ trunk/reactos/dll/win32/iernonce/lang/zh-TW.rc [iso-8859-1] Tue May 31 11:15:25 2016 @@ -0,0 +1,29 @@ +/* Traditional Chinese translation by Henry Tang Ih 2016 (henrytang2(a)hotmail.com) */ + +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL + +STRINGTABLE +BEGIN + IDS_INVALIDFORMAT "%1 RunEx çæ ¼å¼æ RunOnceEx æ¢ç®æ¯ç¡æçã è±ç· ('|') å¨å½æ¸åå¾éè¦åæ¯æ´ WinMain() åæ¸æéè¦çåè½ã" + IDS_LOADERROR "åºç¾äºä¸åé¯èª¤è¼å ¥ %1ã 該æªæ¡å¯è½æªå®è£æ已被æå£ã" + IDS_CALLERROR "åºç¾äºä¸åé¯èª¤æç°å¸¸å¼å«å½æ¸ %1 %2 ä¸ã" + IDS_INCORRECTFORMAT "以ä¸ç RunEx æ å½ä»¤çæ ¼å¼ä¸æ£ç¢º: %1 ãShell å·è¡çå½ä»¤å¿ é 以 || éé ã" + IDS_NOEXPORT "ç¡æ³å¼å«è©²å½æ¸ %1 æªæ¡ %2 ä¸å çºè©²å½æ¸ä¸åå¨æä¸è¢«å¯åºã" + IDS_EXECUTEERROR "å·è¡ %1 æåºç¾é¯èª¤æç°å¸¸ã" + IDS_NOFUNCTION "ç¡æ³æ¾å°å½æ¸ %1 æªæ¡ %2 ä¸ã" + IDS_NODEPENDENCY "ç¡æ³è¼å ¥ä¾è³´é æªæ¡ %1ã." + IDS_SETUPERROR "è¨å® %1 æåºé¯ãæ¤é¯èª¤å·²è¨éï¼å®è£å°ç¹¼çº" + IDS_INCOMPLETE "以åå®è£çæç¨ç¨å¼å°æªå®æã\n\nç»å ¥ä½¿ç¨ç®¡çå¡å¸³æ¶ä¾å®æå®è£ã" + IDS_SETUP "ReactOS å®è£" + IDS_SERVICEERROR "ä¸äºæåç¡æ³ååãå®è£ç¨å¼éè¦éæ°åå系統以便ååéäºæåã" +END + +IDD_DIALOG DIALOGEX 0, 0, 206, 166 +STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "ReactOS å®è£" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS ç¾å¨è¨å®ä»¥ä¸åé : ", -1, 36, 13, 163, 11 + LISTBOX IDC_LB_ITEMS, 36, 32, 163, 127, LBS_NOTIFY | LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + ICON IDI_ICON, -1, 7, 7, 20, 20 +END Propchange: trunk/reactos/dll/win32/iernonce/lang/zh-TW.rc ------------------------------------------------------------------------------ svn:eol-style = native
8 years, 6 months
1
0
0
0
← Newer
1
2
3
4
...
26
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Results per page:
10
25
50
100
200