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
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 2005
----- 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
26 participants
814 discussions
Start a n
N
ew thread
[gvg] 15620: Alexandre Julliard <julliard@winehq.org>
by gvg@svn.reactos.com
Alexandre Julliard <julliard(a)winehq.org> - Added rules for building import libraries in the individual dll makefiles, and added support for building a .def.a static import library too. Robert Shearman <rob(a)codeweavers.com> - Rename MODULENAME_Dll* functions to Dll* for better consistency and type checking. Vincent Beron <vberon(a)mecano.gme.usherb.ca> - Use SUBLANG_NEUTRAL for French resources. Modified: trunk/reactos/lib/shdocvw/Fr.rc Modified: trunk/reactos/lib/shdocvw/Makefile.in Modified: trunk/reactos/lib/shdocvw/regsvr.c Modified: trunk/reactos/lib/shdocvw/shdocvw.spec Modified: trunk/reactos/lib/shdocvw/shdocvw_main.c _____ Modified: trunk/reactos/lib/shdocvw/Fr.rc --- trunk/reactos/lib/shdocvw/Fr.rc 2005-05-28 21:32:23 UTC (rev 15619) +++ trunk/reactos/lib/shdocvw/Fr.rc 2005-05-28 21:34:33 UTC (rev 15620) @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL 100 DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 62 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU _____ Modified: trunk/reactos/lib/shdocvw/Makefile.in --- trunk/reactos/lib/shdocvw/Makefile.in 2005-05-28 21:32:23 UTC (rev 15619) +++ trunk/reactos/lib/shdocvw/Makefile.in 2005-05-28 21:34:33 UTC (rev 15620) @@ -4,6 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = shdocvw.dll +IMPORTLIB = libshdocvw.$(IMPLIBEXT) IMPORTS = urlmon ole32 user32 advapi32 kernel32 EXTRALIBS = -luuid _____ Modified: trunk/reactos/lib/shdocvw/regsvr.c --- trunk/reactos/lib/shdocvw/regsvr.c 2005-05-28 21:32:23 UTC (rev 15619) +++ trunk/reactos/lib/shdocvw/regsvr.c 2005-05-28 21:34:33 UTC (rev 15620) @@ -523,7 +523,7 @@ /*********************************************************************** * DllRegisterServer (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllRegisterServer(void) +HRESULT WINAPI DllRegisterServer(void) { HRESULT hr; @@ -538,7 +538,7 @@ /*********************************************************************** * DllUnregisterServer (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllUnregisterServer(void) +HRESULT WINAPI DllUnregisterServer(void) { HRESULT hr; _____ Modified: trunk/reactos/lib/shdocvw/shdocvw.spec --- trunk/reactos/lib/shdocvw/shdocvw.spec 2005-05-28 21:32:23 UTC (rev 15619) +++ trunk/reactos/lib/shdocvw/shdocvw.spec 2005-05-28 21:34:33 UTC (rev 15620) @@ -102,12 +102,12 @@ 228 stub -noname SafeOpenPromptForShellExec 229 stub -noname SafeOpenPromptForPackager -@ stdcall -private DllCanUnloadNow() SHDOCVW_DllCanUnloadNow -@ stdcall -private DllGetClassObject(long long ptr) SHDOCVW_DllGetClassObject -@ stdcall DllGetVersion(ptr) SHDOCVW_DllGetVersion -@ stdcall DllInstall(long wstr) SHDOCVW_DllInstall -@ stdcall -private DllRegisterServer() SHDOCVW_DllRegisterServer -@ stdcall -private DllUnregisterServer() SHDOCVW_DllUnregisterServer +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(long long ptr) +@ stdcall -private DllGetVersion(ptr) +@ stdcall -private DllInstall(long wstr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() @ stub DllRegisterWindowClasses @ stub DoAddToFavDlg @ stub DoAddToFavDlgW _____ Modified: trunk/reactos/lib/shdocvw/shdocvw_main.c --- trunk/reactos/lib/shdocvw/shdocvw_main.c 2005-05-28 21:32:23 UTC (rev 15619) +++ trunk/reactos/lib/shdocvw/shdocvw_main.c 2005-05-28 21:34:33 UTC (rev 15620) @@ -128,7 +128,7 @@ /*********************************************************************** ** * DllCanUnloadNow (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllCanUnloadNow(void) +HRESULT WINAPI DllCanUnloadNow(void) { HRESULT moz_can_unload = S_OK; fnCanUnloadNow pCanUnloadNow; @@ -443,7 +443,7 @@ /*********************************************************************** ** * DllGetClassObject (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) { TRACE("\n"); @@ -482,7 +482,7 @@ /*********************************************************************** * DllGetVersion (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllGetVersion(DLLVERSIONINFO *info) +HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *info) { if (info->cbSize != sizeof(DLLVERSIONINFO)) FIXME("support DLLVERSIONINFO2\n"); @@ -498,7 +498,7 @@ /*********************************************************************** ** * DllInstall (SHDOCVW.@) */ -HRESULT WINAPI SHDOCVW_DllInstall(BOOL bInstall, LPCWSTR cmdline) +HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline) { FIXME("(%s, %s): stub!\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
19 years, 5 months
1
0
0
0
[greatlrd] 15619: fix compilings warings
by greatlrd@svn.reactos.com
fix compilings warings Modified: trunk/reactos/apps/utils/net/route/route.c _____ Modified: trunk/reactos/apps/utils/net/route/route.c --- trunk/reactos/apps/utils/net/route/route.c 2005-05-28 21:30:37 UTC (rev 15618) +++ trunk/reactos/apps/utils/net/route/route.c 2005-05-28 21:32:23 UTC (rev 15619) @@ -32,7 +32,7 @@ } int print_routes() { - PMIB_IPFORWARDTABLE IpForwardTable; + PMIB_IPFORWARDTABLE IpForwardTable = NULL; DWORD Error; ULONG Size = 0; char Destination[IPBUF], Gateway[IPBUF], Netmask[IPBUF];
19 years, 5 months
1
0
0
0
[jimtabor] 15618: Add Usbhub to new build system.
by jimtabor@svn.reactos.com
Add Usbhub to new build system. Added: trunk/reactos/drivers/usb/usbhub/usbhub.xml _____ Added: trunk/reactos/drivers/usb/usbhub/usbhub.xml --- trunk/reactos/drivers/usb/usbhub/usbhub.xml 2005-05-28 21:30:32 UTC (rev 15617) +++ trunk/reactos/drivers/usb/usbhub/usbhub.xml 2005-05-28 21:30:37 UTC (rev 15618) @@ -0,0 +1,7 @@ +<module name="usbhub" type="kernelmodedriver" installbase="system32/drivers" installname="usbhub.sys"> + <define name="__USE_W32API" /> + <library>ntoskrnl</library> + <library>hal</library> + <file>usbhub.c</file> + <file>usbhub.rc</file> +</module>
19 years, 5 months
1
0
0
0
[gvg] 15617: Ge van Geldorp <gvg@reactos.com>
by gvg@svn.reactos.com
Ge van Geldorp <gvg(a)reactos.com> - Overlay icons for .lnk files with a small arrow in the lower left corner. Alexandre Julliard <julliard(a)winehq.org> - Added rules for building import libraries in the individual dll makefiles, and added support for building a .def.a static import library too. - Removed unnecessary code in the 16-bit DllEntryPoint function of some dlls, and also fixed its ordinal in a few places. - Comment out stub WEP entry points so that we can call WEP for builtin dlls too. Juan Lang <juan_lang(a)yahoo.com> - Fixes to IShellFolder::GetAttributesOf implementations, spotted by silverblade_: - a count of zero is allowed to GetAttributesOf if apidl is NULL - SFGAO_VALIDATE must be cleared upon return - only log unsupported flags in ShellExecute - environment variables are expanded, so SEE_MASK_DOENVSUBST is supported Michael Jung <mjung(a)iss.tu-darmstadt.de> - Add a new CLSID for UnixDosFolder, which is identical to UnixFolder, but does unix <-> dos path conversion for GetDisplayNameOf and ParseDisplayName. - Make the root of the shell extension map to the root of the unix filesystem. - More robustly query the SHGDN_FORPARSING flag in the shell32's folders GetDisplayNameOf methods. - Fixed GetDisplayNameOf method to not depend on incorrect behaviour regarding the SHGDN_INFOLDER flag. - Fixed MyComputer's GetDisplayNameOf method. - Return a cloned PIDL by SHBrowseForFolder to avoid heap corruption. - Fixed incorrect IShellFolder::EnumOjects API usage. - Support for regular files (as opposed to directories). - Display a drive icon for the unix root directory. - Consider only the GIL_FORSHORTCUT flag in SIC_CompareEntries. Stefan Doesinger <stefandoesinger(a)gmx.at> - Handle cidl==0 in shfldr_desktop, shfldr_fs and shfldr_mycomp. - Remove the dwAttributes member from the IGenericSFImpl class, it's not needed and can't be initialised in Initialize and InitializeEx. Mike McCormack <mike(a)codeweavers.com> - Split SHGetFileInfoW into two functions. - Remove static variables in SHBrowseForFolder implementation. - Split up the window procedure. - Remove some unused include files. - MSI advertised shortcuts don't require a product ID. Peter Berg Larsen <pebl(a)math.ku.dk> - Rewritten DoEnvironmentSubst16. Kouji Sasaki <taro-x(a)justsystem.co.jp> - Added the processing for determination of SFGAO_HASSUBFOLDER flag in SHELL32_GetItemAttribute function. Francois Gouget <fgouget(a)free.fr> - Assorted spelling fixes. Huw Davies <huw(a)codeweavers.com> - It makes no sense to have a left pointing arrow as the desktop icon. Replace it with something more appropiate. Mike Hearn <mh(a)codeweavers.com> - Fix SHELL_GetPathFromIDList[AW] to return the desktop path given an empty PIDL. Modified: trunk/reactos/lib/shell32/Makefile.in Modified: trunk/reactos/lib/shell32/brsfolder.c Modified: trunk/reactos/lib/shell32/cpanelfolder.c Modified: trunk/reactos/lib/shell32/folders.c Modified: trunk/reactos/lib/shell32/iconcache.c Modified: trunk/reactos/lib/shell32/pidl.c Modified: trunk/reactos/lib/shell32/regsvr.c Modified: trunk/reactos/lib/shell32/shell.c Modified: trunk/reactos/lib/shell32/shell.spec Modified: trunk/reactos/lib/shell32/shell32_De.rc Modified: trunk/reactos/lib/shell32/shell32_En.rc Modified: trunk/reactos/lib/shell32/shell32_main.c Modified: trunk/reactos/lib/shell32/shell32_main.h Modified: trunk/reactos/lib/shell32/shelllink.c Modified: trunk/reactos/lib/shell32/shfldr_desktop.c Modified: trunk/reactos/lib/shell32/shfldr_fs.c Modified: trunk/reactos/lib/shell32/shfldr_mycomp.c Modified: trunk/reactos/lib/shell32/shlexec.c Modified: trunk/reactos/lib/shell32/shlfileop.c Modified: trunk/reactos/lib/shell32/shlfolder.c Modified: trunk/reactos/lib/shell32/shres.rc Modified: trunk/reactos/lib/shell32/shresdef.h _____ Modified: trunk/reactos/lib/shell32/Makefile.in --- trunk/reactos/lib/shell32/Makefile.in 2005-05-28 21:30:02 UTC (rev 15616) +++ trunk/reactos/lib/shell32/Makefile.in 2005-05-28 21:30:32 UTC (rev 15617) @@ -4,6 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = shell32.dll +IMPORTLIB = libshell32.$(IMPLIBEXT) IMPORTS = shlwapi comctl32 user32 gdi32 advapi32 kernel32 DELAYIMPORTS = ole32 EXTRALIBS = -luuid $(LIBUNICODE) @@ -63,7 +64,8 @@ netdrive.ico \ netdrive2.ico \ printer.ico \ - ramdisk.ico + ramdisk.ico \ + shortcut.ico C_SRCS16 = shell.c RC_SRCS16 = version16.rc _____ Modified: trunk/reactos/lib/shell32/brsfolder.c --- trunk/reactos/lib/shell32/brsfolder.c 2005-05-28 21:30:02 UTC (rev 15616) +++ trunk/reactos/lib/shell32/brsfolder.c 2005-05-28 21:30:32 UTC (rev 15617) @@ -37,12 +37,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); -static HWND hwndTreeView; -static LPBROWSEINFOW lpBrowseInfo; -static LPITEMIDLIST pidlRet; +typedef struct tagbrowse_info +{ + HWND hWnd; + HWND hwndTreeView; + LPBROWSEINFOW lpBrowseInfo; + LPITEMIDLIST pidlRet; +} browse_info; -static void FillTreeView(LPSHELLFOLDER lpsf, LPITEMIDLIST lpifq, HTREEITEM hParent, IEnumIDList* lpe); -static HTREEITEM InsertTreeViewItem(IShellFolder * lpsf, LPCITEMIDLIST pidl, LPCITEMIDLIST pidlParent, IEnumIDList* pEnumIL, HTREEITEM hParent); +typedef struct tagTV_ITEMDATA +{ + LPSHELLFOLDER lpsfParent; /* IShellFolder of the parent */ + LPITEMIDLIST lpi; /* PIDL relativ to parent */ + LPITEMIDLIST lpifq; /* Fully qualified PIDL */ + IEnumIDList* pEnumIL; /* Children iterator */ +} TV_ITEMDATA, *LPTV_ITEMDATA; #define SUPPORTEDFLAGS (BIF_STATUSTEXT | \ BIF_BROWSEFORCOMPUTER | \ @@ -50,11 +59,30 @@ BIF_RETURNONLYFSDIRS | \ BIF_BROWSEINCLUDEFILES) +static void FillTreeView(browse_info*, LPSHELLFOLDER, + LPITEMIDLIST, HTREEITEM, IEnumIDList*); +static HTREEITEM InsertTreeViewItem( browse_info*, IShellFolder *, + LPCITEMIDLIST, LPCITEMIDLIST, IEnumIDList*, HTREEITEM); + +const WCHAR szBrowseFolderInfo[] = { + '_','_','W','I','N','E','_', + 'B','R','S','F','O','L','D','E','R','D','L','G','_', + 'I','N','F','O',0 +}; + static inline DWORD BrowseFlagsToSHCONTF(UINT ulFlags) { return SHCONTF_FOLDERS | (ulFlags & BIF_BROWSEINCLUDEFILES ? SHCONTF_NONFOLDERS : 0); } +static void browsefolder_callback( LPBROWSEINFOW lpBrowseInfo, HWND hWnd, + UINT msg, LPARAM param ) +{ + if (!lpBrowseInfo->lpfn) + return; + lpBrowseInfo->lpfn( hWnd, BFFM_INITIALIZED, param, lpBrowseInfo->lParam ); +} + /*********************************************************************** ******* * InitializeTreeView [Internal] * @@ -64,25 +92,23 @@ * hwndParent [I] The BrowseForFolder dialog * root [I] ITEMIDLIST of the root shell folder */ -static void InitializeTreeView(HWND hwndParent, LPCITEMIDLIST root) +static void InitializeTreeView( browse_info *info ) { LPITEMIDLIST pidlParent, pidlChild; HIMAGELIST hImageList; HRESULT hr; IShellFolder *lpsfParent, *lpsfRoot; IEnumIDList * pEnumChildren = NULL; + HTREEITEM item; + DWORD flags; + LPCITEMIDLIST root = info->lpBrowseInfo->pidlRoot; - TRACE("dlg=%p tree=%p\n", hwndParent, hwndTreeView ); + TRACE("%p\n", info ); - hwndTreeView = GetDlgItem (hwndParent, IDD_TREEVIEW); - if (!hwndTreeView) { - FIXME("Could not get handle to treeview control! Error: %08lx\n", GetLastError()); - return; - } Shell_GetImageList(NULL, &hImageList); if (hImageList) - TreeView_SetImageList(hwndTreeView, hImageList, 0); + TreeView_SetImageList( info->hwndTreeView, hImageList, 0 ); /* We want to call InsertTreeViewItem down the code, in order to insert * the root item of the treeview. Due to InsertTreeViewItem's signature, @@ -131,7 +157,8 @@ return; } - hr = IShellFolder_EnumObjects(lpsfRoot, hwndParent, BrowseFlagsToSHCONTF(lpBrowseInfo->ulFlags), &pEnumChildren); + flags = BrowseFlagsToSHCONTF( info->lpBrowseInfo->ulFlags ); + hr = IShellFolder_EnumObjects( lpsfRoot, info->hWnd, flags, &pEnumChildren ); if (!SUCCEEDED(hr)) { WARN("Could not get child iterator! hr = %08lx\n", hr); IShellFolder_Release(lpsfParent); @@ -139,8 +166,10 @@ return; } - TreeView_DeleteAllItems(hwndTreeView); - TreeView_Expand(hwndTreeView, InsertTreeViewItem(lpsfParent, pidlChild, pidlParent, pEnumChildren, TVI_ROOT), TVE_EXPAND); + TreeView_DeleteAllItems( info->hwndTreeView ); + item = InsertTreeViewItem( info, lpsfParent, pidlChild, + pidlParent, pEnumChildren, TVI_ROOT ); + TreeView_Expand( info->hwndTreeView, item, TVE_EXPAND ); IShellFolder_Release(lpsfRoot); IShellFolder_Release(lpsfParent); @@ -148,40 +177,34 @@ static int GetIcon(LPITEMIDLIST lpi, UINT uFlags) { - SHFILEINFOW sfi; - SHGetFileInfoW((LPCWSTR)lpi, 0 ,&sfi, sizeof(SHFILEINFOW), uFlags); - return sfi.iIcon; + SHFILEINFOW sfi; + SHGetFileInfoW((LPCWSTR)lpi, 0 ,&sfi, sizeof(SHFILEINFOW), uFlags); + return sfi.iIcon; } static void GetNormalAndSelectedIcons(LPITEMIDLIST lpifq, LPTVITEMW lpTV_ITEM) { - LPITEMIDLIST pidlDesktop = NULL; + LPITEMIDLIST pidlDesktop = NULL; + DWORD flags; - TRACE("%p %p\n",lpifq, lpTV_ITEM); + TRACE("%p %p\n",lpifq, lpTV_ITEM); - if (!lpifq) - { - pidlDesktop = _ILCreateDesktop(); - lpifq = pidlDesktop; - } + if (!lpifq) + { + pidlDesktop = _ILCreateDesktop(); + lpifq = pidlDesktop; + } - lpTV_ITEM->iImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON); - lpTV_ITEM->iSelectedImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON); + flags = SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON; + lpTV_ITEM->iImage = GetIcon( lpifq, flags ); - if (pidlDesktop) - ILFree(pidlDesktop); + flags = SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON; + lpTV_ITEM->iSelectedImage = GetIcon( lpifq, flags ); - return; + if (pidlDesktop) + ILFree( pidlDesktop ); } -typedef struct tagID -{ - LPSHELLFOLDER lpsfParent; /* IShellFolder of the parent */ - LPITEMIDLIST lpi; /* PIDL relativ to parent */ - LPITEMIDLIST lpifq; /* Fully qualified PIDL */ - IEnumIDList* pEnumIL; /* Children iterator */ -} TV_ITEMDATA, *LPTV_ITEMDATA; - /*********************************************************************** ******* * GetName [Internal] * @@ -221,6 +244,7 @@ * InsertTreeViewItem [Internal] * * PARAMS + * info [I] data for the dialog * lpsf [I] IShellFolder interface of the item's parent shell folder * pidl [I] ITEMIDLIST of the child to insert, relativ to parent * pidlParent [I] ITEMIDLIST of the parent shell folder @@ -231,8 +255,9 @@ * Success: Handle to the created and inserted treeview-item * Failure: NULL */ -static HTREEITEM InsertTreeViewItem(IShellFolder * lpsf, LPCITEMIDLIST pidl, - LPCITEMIDLIST pidlParent, IEnumIDList* pEnumIL, HTREEITEM hParent) +static HTREEITEM InsertTreeViewItem( browse_info *info, IShellFolder * lpsf, + LPCITEMIDLIST pidl, LPCITEMIDLIST pidlParent, IEnumIDList* pEnumIL, + HTREEITEM hParent) { TVITEMW tvi; TVINSERTSTRUCTW tvins; @@ -244,7 +269,8 @@ tvi.cChildren= pEnumIL ? 1 : 0; tvi.mask |= TVIF_CHILDREN; - if (!(lptvid = (LPTV_ITEMDATA)SHAlloc(sizeof(TV_ITEMDATA)))) + lptvid = SHAlloc( sizeof(TV_ITEMDATA) ); + if (!lptvid) return NULL; if (!GetName(lpsf, pidl, SHGDN_NORMAL, szBuff)) @@ -265,7 +291,7 @@ tvins.hInsertAfter = NULL; tvins.hParent = hParent; - return (HTREEITEM)TreeView_InsertItemW(hwndTreeView, &tvins); + return (HTREEITEM)TreeView_InsertItemW( info->hwndTreeView, &tvins ); } /*********************************************************************** ******* @@ -275,26 +301,28 @@ * lpsf and whose PIDL is pidl, insert a treeview-item right under hParent * * PARAMS + * info [I] data for the dialog * lpsf [I] IShellFolder interface of the parent shell folder * pidl [I] ITEMIDLIST of the parent shell folder * hParent [I] The treeview item that represents the parent shell folder * lpe [I] An iterator for the children of the parent shell folder */ -static void FillTreeView(IShellFolder * lpsf, LPITEMIDLIST pidl, HTREEITEM hParent, IEnumIDList* lpe) +static void FillTreeView( browse_info *info, IShellFolder * lpsf, + LPITEMIDLIST pidl, HTREEITEM hParent, IEnumIDList* lpe) { HTREEITEM hPrev = 0; LPITEMIDLIST pidlTemp = 0; ULONG ulFetched; HRESULT hr; - HWND hwnd=GetParent(hwndTreeView); + HWND hwnd = GetParent( info->hwndTreeView ); TRACE("%p %p %x %p\n",lpsf, pidl, (INT)hParent, lpe); /* No IEnumIDList -> No children */ if (!lpe) return; - SetCapture(GetParent(hwndTreeView)); - SetCursor(LoadCursorA(0, (LPSTR)IDC_WAIT)); + SetCapture( hwnd ); + SetCursor( LoadCursorA( 0, (LPSTR)IDC_WAIT ) ); while (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched)) { @@ -307,10 +335,12 @@ hr = IShellFolder_BindToObject(lpsf,pidlTemp,NULL,&IID_IShellFolder,(LPVOID*) &pSFChild); if (SUCCEEDED(hr)) { - hr = IShellFolder_EnumObjects(pSFChild, hwnd, BrowseFlagsToSHCONTF(lpBrowseInfo->ulFlags), &pEnumIL); - if (SUCCEEDED(hr)) + DWORD flags = BrowseFlagsToSHCONTF(info->lpBrowseInfo->ulFlags); + hr = IShellFolder_EnumObjects(pSFChild, hwnd, flags, &pEnumIL); + if (hr == S_OK) { - if ((IEnumIDList_Skip(pEnumIL, 1) != S_OK) || FAILED(IEnumIDList_Reset(pEnumIL))) + if ((IEnumIDList_Skip(pEnumIL, 1) != S_OK) || + FAILED(IEnumIDList_Reset(pEnumIL))) { IEnumIDList_Release(pEnumIL); pEnumIL = NULL; @@ -320,13 +350,13 @@ } } - if (!(hPrev = InsertTreeViewItem(lpsf, pidlTemp, pidl, pEnumIL, hParent))) - goto Done; + if (!(hPrev = InsertTreeViewItem(info, lpsf, pidlTemp, pidl, pEnumIL, hParent))) + goto done; SHFree(pidlTemp); /* Finally, free the pidl that the shell gave us... */ pidlTemp=NULL; } -Done: +done: ReleaseCapture(); SetCursor(LoadCursorW(0, (LPWSTR)IDC_ARROW)); @@ -342,182 +372,238 @@ return (data->type == type); } -static void BrsFolder_CheckValidSelection(HWND hWndTree, LPTV_ITEMDATA lptvid) +static void BrsFolder_CheckValidSelection( browse_info *info, LPTV_ITEMDATA lptvid ) { + LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; LPCITEMIDLIST pidl = lptvid->lpi; BOOL bEnabled = TRUE; DWORD dwAttributes; + HRESULT r; + if ((lpBrowseInfo->ulFlags & BIF_BROWSEFORCOMPUTER) && !PIDLIsType(pidl, PT_COMP)) bEnabled = FALSE; if (lpBrowseInfo->ulFlags & BIF_RETURNFSANCESTORS) { dwAttributes = SFGAO_FILESYSANCESTOR | SFGAO_FILESYSTEM; - if (FAILED(IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes)) || - !dwAttributes) + r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, + (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes); + if (FAILED(r) || !dwAttributes) bEnabled = FALSE; } if (lpBrowseInfo->ulFlags & BIF_RETURNONLYFSDIRS) { dwAttributes = SFGAO_FOLDER | SFGAO_FILESYSTEM; - if (FAILED(IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes)) || - (dwAttributes != (SFGAO_FOLDER | SFGAO_FILESYSTEM))) + r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, + (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes); + if (FAILED(r) || (dwAttributes != (SFGAO_FOLDER | SFGAO_FILESYSTEM))) bEnabled = FALSE; } - SendMessageW(hWndTree, BFFM_ENABLEOK, 0, (LPARAM)bEnabled); + SendMessageW(info->hWnd, BFFM_ENABLEOK, 0, (LPARAM)bEnabled); } -static LRESULT MsgNotify(HWND hWnd, UINT CtlID, LPNMHDR lpnmh) +static LRESULT BrsFolder_Treeview_Delete( browse_info *info, NMTREEVIEWW *pnmtv ) { - NMTREEVIEWW *pnmtv = (NMTREEVIEWW *)lpnmh; - LPTV_ITEMDATA lptvid; /* Long pointer to TreeView item data */ - IShellFolder * lpsf2=0; + LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA)pnmtv->itemOld.lParam; + TRACE("TVN_DELETEITEMA/W %p\n", lptvid); - TRACE("%p %x %p msg=%x\n", hWnd, CtlID, lpnmh, pnmtv->hdr.code); + IShellFolder_Release(lptvid->lpsfParent); + if (lptvid->pEnumIL) + IEnumIDList_Release(lptvid->pEnumIL); + SHFree(lptvid->lpi); + SHFree(lptvid->lpifq); + SHFree(lptvid); + return 0; +} - switch (pnmtv->hdr.idFrom) - { case IDD_TREEVIEW: - switch (pnmtv->hdr.code) - { - case TVN_DELETEITEMA: - case TVN_DELETEITEMW: - TRACE("TVN_DELETEITEMA/W\n"); - lptvid=(LPTV_ITEMDATA)pnmtv->itemOld.lParam; - IShellFolder_Release(lptvid->lpsfParent); - if (lptvid->pEnumIL) - IEnumIDList_Release(lptvid->pEnumIL); - SHFree(lptvid->lpi); - SHFree(lptvid->lpifq); - SHFree(lptvid); - break; +static LRESULT BrsFolder_Treeview_Expand( browse_info *info, NMTREEVIEWW *pnmtv ) +{ + IShellFolder *lpsf2 = NULL; + LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; + HRESULT r; - case TVN_ITEMEXPANDINGA: - case TVN_ITEMEXPANDINGW: - { - TRACE("TVN_ITEMEXPANDINGA/W\n"); - if ((pnmtv->itemNew.state & TVIS_EXPANDEDONCE)) - break; + TRACE("TVN_ITEMEXPANDINGA/W\n"); - lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam; - if (SUCCEEDED(IShellFolder_BindToObject(lptvid->lpsfParent, lptvid->lpi,0,(REFIID)&IID_IShellFolder,(LPVOID *)&lpsf2))) - { FillTreeView( lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem, lptvid->pEnumIL); - } - /* My Computer is already sorted and trying to do a simple text - * sort will only mess things up */ - if (!_ILIsMyComputer(lptvid->lpi)) - TreeView_SortChildren(hwndTreeView, pnmtv->itemNew.hItem, FALSE); - } - break; - case TVN_SELCHANGEDA: - case TVN_SELCHANGEDW: - lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam; - pidlRet = lptvid->lpifq; - if (lpBrowseInfo->lpfn) - (lpBrowseInfo->lpfn)(hWnd, BFFM_SELCHANGED, (LPARAM)pidlRet, lpBrowseInfo->lParam); - BrsFolder_CheckValidSelection(hWnd, lptvid); - break; + if ((pnmtv->itemNew.state & TVIS_EXPANDEDONCE)) + return 0; - default: - WARN("unhandled (%d)\n", pnmtv->hdr.code); - break; - } - break; + r = IShellFolder_BindToObject( lptvid->lpsfParent, lptvid->lpi, 0, + (REFIID)&IID_IShellFolder, (LPVOID *)&lpsf2 ); + if (SUCCEEDED(r)) + FillTreeView( info, lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem, lptvid->pEnumIL); - default: - break; - } + /* My Computer is already sorted and trying to do a simple text + * sort will only mess things up */ + if (!_ILIsMyComputer(lptvid->lpi)) + TreeView_SortChildren(info->hwndTreeView, pnmtv->itemNew.hItem, FALSE); - return 0; + return 0; } +static HRESULT BrsFolder_Treeview_Changed( browse_info *info, NMTREEVIEWW *pnmtv ) +{ + LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; + lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; + info->pidlRet = lptvid->lpifq; + browsefolder_callback( info->lpBrowseInfo, info->hWnd, BFFM_SELCHANGED, + (LPARAM)info->pidlRet ); + BrsFolder_CheckValidSelection( info, lptvid ); + return 0; +} + +static LRESULT BrsFolder_OnNotify( browse_info *info, UINT CtlID, LPNMHDR lpnmh ) +{ + NMTREEVIEWW *pnmtv = (NMTREEVIEWW *)lpnmh; + + TRACE("%p %x %p msg=%x\n", info, CtlID, lpnmh, pnmtv->hdr.code); + + if (pnmtv->hdr.idFrom != IDD_TREEVIEW) + return 0; + + switch (pnmtv->hdr.code) + { + case TVN_DELETEITEMA: + case TVN_DELETEITEMW: + return BrsFolder_Treeview_Delete( info, pnmtv ); + + case TVN_ITEMEXPANDINGA: + case TVN_ITEMEXPANDINGW: + return BrsFolder_Treeview_Expand( info, pnmtv ); + + case TVN_SELCHANGEDA: + case TVN_SELCHANGEDW: + return BrsFolder_Treeview_Changed( info, pnmtv ); + + default: + WARN("unhandled (%d)\n", pnmtv->hdr.code); + break; + } + + return 0; +} + + +static BOOL BrsFolder_OnCreate( HWND hWnd, browse_info *info ) +{ + LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; + + info->hWnd = hWnd; + SetPropW( hWnd, szBrowseFolderInfo, info ); + + if (lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS) + FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS); + + if (lpBrowseInfo->lpszTitle) + SetWindowTextW( GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle ); + else + ShowWindow( GetDlgItem(hWnd, IDD_TITLE), SW_HIDE ); + + if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT)) + ShowWindow( GetDlgItem(hWnd, IDD_STATUS), SW_HIDE ); + + info->hwndTreeView = GetDlgItem( hWnd, IDD_TREEVIEW ); + if (info->hwndTreeView) + InitializeTreeView( info ); + else + ERR("treeview control missing!\n"); + + browsefolder_callback( info->lpBrowseInfo, hWnd, BFFM_INITIALIZED, 0 ); + + return TRUE; +} + +static BOOL BrsFolder_OnCommand( browse_info *info, UINT id ) +{ + LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; + + switch (id) + { + case IDOK: + info->pidlRet = ILClone(info->pidlRet); /* The original pidl will be free'd. */ + pdump( info->pidlRet ); + if (lpBrowseInfo->pszDisplayName) + SHGetPathFromIDListW( info->pidlRet, lpBrowseInfo->pszDisplayName ); + EndDialog( info->hWnd, 1 ); + return TRUE; + + case IDCANCEL: + EndDialog( info->hWnd, 0 ); + return TRUE; + } + return FALSE; +} + /*********************************************************************** ** * BrsFolderDlgProc32 (not an exported API function) */ -static INT_PTR CALLBACK BrsFolderDlgProc(HWND hWnd, UINT msg, WPARAM wParam, - LPARAM lParam ) +static INT_PTR CALLBACK BrsFolderDlgProc( HWND hWnd, UINT msg, WPARAM wParam, + LPARAM lParam ) { - TRACE("hwnd=%p msg=%04x 0x%08x 0x%08lx\n", hWnd, msg, wParam, lParam ); + browse_info *info; - switch(msg) - { case WM_INITDIALOG: - pidlRet = NULL; - lpBrowseInfo = (LPBROWSEINFOW) lParam; - if (lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS) - FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS); - if (lpBrowseInfo->lpszTitle) { - SetWindowTextW(GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle); - } else { - ShowWindow(GetDlgItem(hWnd, IDD_TITLE), SW_HIDE); - } - if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT)) - ShowWindow(GetDlgItem(hWnd, IDD_STATUS), SW_HIDE); + TRACE("hwnd=%p msg=%04x 0x%08x 0x%08lx\n", hWnd, msg, wParam, lParam ); - InitializeTreeView(hWnd, lpBrowseInfo->pidlRoot); + if (msg == WM_INITDIALOG) + return BrsFolder_OnCreate( hWnd, (browse_info*) lParam ); - if (lpBrowseInfo->lpfn) - (lpBrowseInfo->lpfn)(hWnd, BFFM_INITIALIZED, 0, lpBrowseInfo->lParam); + info = (browse_info*) GetPropW( hWnd, szBrowseFolderInfo ); - return TRUE; + switch (msg) + { + case WM_NOTIFY: + return BrsFolder_OnNotify( info, (UINT)wParam, (LPNMHDR)lParam); - case WM_NOTIFY: - MsgNotify( hWnd, (UINT)wParam, (LPNMHDR)lParam); - break; + case WM_COMMAND: + return BrsFolder_OnCommand( info, wParam ); - case WM_COMMAND: - switch (wParam) - { case IDOK: - pdump ( pidlRet ); - if (lpBrowseInfo->pszDisplayName) - SHGetPathFromIDListW(pidlRet, lpBrowseInfo->pszDisplayName); - EndDialog(hWnd, (DWORD) ILClone(pidlRet)); - return TRUE; + case BFFM_SETSTATUSTEXTA: + TRACE("Set status %s\n", debugstr_a((LPSTR)lParam)); + SetWindowTextA(GetDlgItem(hWnd, IDD_STATUS), (LPSTR)lParam); + break; - case IDCANCEL: - EndDialog(hWnd, 0); - return TRUE; - } - break; - case BFFM_SETSTATUSTEXTA: - TRACE("Set status %s\n", debugstr_a((LPSTR)lParam)); - SetWindowTextA(GetDlgItem(hWnd, IDD_STATUS), (LPSTR)lParam); - break; - case BFFM_SETSTATUSTEXTW: - TRACE("Set status %s\n", debugstr_w((LPWSTR)lParam)); - SetWindowTextW(GetDlgItem(hWnd, IDD_STATUS), (LPWSTR)lParam); - break; - case BFFM_ENABLEOK: - TRACE("Enable %ld\n", lParam); - EnableWindow(GetDlgItem(hWnd, 1), (lParam)?TRUE:FALSE); - break; - case BFFM_SETOKTEXT: /* unicode only */ - TRACE("Set OK text %s\n", debugstr_w((LPWSTR)wParam)); - SetWindowTextW(GetDlgItem(hWnd, 1), (LPWSTR)wParam); - break; - case BFFM_SETSELECTIONA: - if (wParam) - FIXME("Set selection %s\n", debugstr_a((LPSTR)lParam)); - else - FIXME("Set selection %p\n", (void*)lParam); - break; - case BFFM_SETSELECTIONW: - if (wParam) - FIXME("Set selection %s\n", debugstr_w((LPWSTR)lParam)); - else - FIXME("Set selection %p\n", (void*)lParam); - break; - case BFFM_SETEXPANDED: /* unicode only */ - if (wParam) - FIXME("Set expanded %s\n", debugstr_w((LPWSTR)lParam)); - else - FIXME("Set expanded %p\n", (void*)lParam); - break; - } - return FALSE; + case BFFM_SETSTATUSTEXTW: + TRACE("Set status %s\n", debugstr_w((LPWSTR)lParam)); + SetWindowTextW(GetDlgItem(hWnd, IDD_STATUS), (LPWSTR)lParam); + break; + + case BFFM_ENABLEOK: + TRACE("Enable %ld\n", lParam); + EnableWindow(GetDlgItem(hWnd, 1), (lParam)?TRUE:FALSE); + break; + + case BFFM_SETOKTEXT: /* unicode only */ + TRACE("Set OK text %s\n", debugstr_w((LPWSTR)wParam)); + SetWindowTextW(GetDlgItem(hWnd, 1), (LPWSTR)wParam); + break; + + case BFFM_SETSELECTIONA: + if (wParam) + FIXME("Set selection %s\n", debugstr_a((LPSTR)lParam)); + else + FIXME("Set selection %p\n", (void*)lParam); + break; + + case BFFM_SETSELECTIONW: + if (wParam) + FIXME("Set selection %s\n", debugstr_w((LPWSTR)lParam)); + else + FIXME("Set selection %p\n", (void*)lParam); + break; + + case BFFM_SETEXPANDED: /* unicode only */ + if (wParam) + FIXME("Set expanded %s\n", debugstr_w((LPWSTR)lParam)); + else + FIXME("Set expanded %p\n", (void*)lParam); + break; + } + return FALSE; } -static const WCHAR swBrowseTempName[] = {'S','H','B','R','S','F','O','R','F','O','L','D','E','R','_','M','S','G' ,'B','O','X',0}; +static const WCHAR swBrowseTemplateName[] = { + 'S','H','B','R','S','F','O','R','F','O','L','D','E','R','_','M','S','G', 'B','O','X',0}; /*********************************************************************** ** * SHBrowseForFolderA [SHELL32.@] @@ -525,66 +611,69 @@ */ LPITEMIDLIST WINAPI SHBrowseForFolderA (LPBROWSEINFOA lpbi) { - BROWSEINFOW bi; - LPITEMIDLIST lpid; - INT len; - - TRACE("(%p{lpszTitle=%s,owner=%p})\n", lpbi, - lpbi ? debugstr_a(lpbi->lpszTitle) : NULL, lpbi ? lpbi->hwndOwner : NULL); + BROWSEINFOW bi; + LPITEMIDLIST lpid; + INT len; + + TRACE("%p\n", lpbi); - if (!lpbi) - return NULL; + bi.hwndOwner = lpbi->hwndOwner; + bi.pidlRoot = lpbi->pidlRoot; + if (lpbi->pszDisplayName) + { + len = MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, NULL, 0 ); + bi.pszDisplayName = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, bi.pszDisplayName, len ); + } + else + bi.pszDisplayName = NULL; - bi.hwndOwner = lpbi->hwndOwner; - bi.pidlRoot = lpbi->pidlRoot; - if (lpbi->pszDisplayName) - { - /*lpbi->pszDisplayName is assumed to be MAX_PATH (MSDN) */ - bi.pszDisplayName = HeapAlloc(GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, lpbi->pszDisplayName, -1, bi.pszDisplayName, MAX_PATH); - } - else - bi.pszDisplayName = NULL; + if (lpbi->lpszTitle) + { + len = MultiByteToWideChar( CP_ACP, 0, lpbi->lpszTitle, -1, NULL, 0 ); + bi.lpszTitle = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + MultiByteToWideChar( CP_ACP, 0, lpbi->lpszTitle, -1, (LPWSTR)bi.lpszTitle, len ); + } + else + bi.lpszTitle = NULL; - if (lpbi->lpszTitle) - { - len = MultiByteToWideChar(CP_ACP, 0, lpbi->lpszTitle, -1, NULL, 0); - bi.lpszTitle = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, lpbi->lpszTitle, -1, (LPWSTR)bi.lpszTitle, len); - } - else - bi.lpszTitle = NULL; - - bi.ulFlags = lpbi->ulFlags; - bi.lpfn = lpbi->lpfn; - bi.lParam = lpbi->lParam; - bi.iImage = lpbi->iImage; - lpid = (LPITEMIDLIST) DialogBoxParamW(shell32_hInstance, - swBrowseTempName, lpbi->hwndOwner, - BrsFolderDlgProc, (INT)&bi); - if (bi.pszDisplayName) - { - WideCharToMultiByte(CP_ACP, 0, bi.pszDisplayName, -1, lpbi->pszDisplayName, MAX_PATH, 0, NULL); - HeapFree(GetProcessHeap(), 0, bi.pszDisplayName); - } - HeapFree(GetProcessHeap(), 0, (LPVOID)bi.lpszTitle); - lpbi->iImage = bi.iImage; - return lpid; + bi.ulFlags = lpbi->ulFlags; + bi.lpfn = lpbi->lpfn; + bi.lParam = lpbi->lParam; + bi.iImage = lpbi->iImage; + lpid = SHBrowseForFolderW( &bi ); + if (bi.pszDisplayName) + { + WideCharToMultiByte( CP_ACP, 0, bi.pszDisplayName, -1, + lpbi->pszDisplayName, MAX_PATH, 0, NULL); + HeapFree( GetProcessHeap(), 0, bi.pszDisplayName ); + } + HeapFree(GetProcessHeap(), 0, (LPVOID)bi.lpszTitle); + lpbi->iImage = bi.iImage; + return lpid; } /*********************************************************************** ** * SHBrowseForFolderW [SHELL32.@] + * + * NOTES: + * crashes when passed a null pointer */ LPITEMIDLIST WINAPI SHBrowseForFolderW (LPBROWSEINFOW lpbi) { - TRACE("((%p->{lpszTitle=%s,owner=%p})\n", lpbi, - lpbi ? debugstr_w(lpbi->lpszTitle) : NULL, lpbi ? lpbi->hwndOwner : 0); + browse_info info; + DWORD r; - if (!lpbi) - return NULL; + info.hWnd = 0; + info.pidlRet = NULL; + info.lpBrowseInfo = lpbi; + info.hwndTreeView = NULL; - return (LPITEMIDLIST) DialogBoxParamW(shell32_hInstance, - swBrowseTempName, lpbi->hwndOwner, - BrsFolderDlgProc, (INT)lpbi); + r = DialogBoxParamW( shell32_hInstance, swBrowseTemplateName, lpbi->hwndOwner, + BrsFolderDlgProc, (LPARAM)&info ); + if (!r) + return NULL; + + return info.pidlRet; } _____ Modified: trunk/reactos/lib/shell32/cpanelfolder.c --- trunk/reactos/lib/shell32/cpanelfolder.c 2005-05-28 21:30:02 UTC (rev 15616) +++ trunk/reactos/lib/shell32/cpanelfolder.c 2005-05-28 21:30:32 UTC (rev 15617) @@ -552,10 +552,13 @@ HRESULT hr = S_OK; - TRACE("(%p)->(cidl=%d apidl=%p mask=0x%08lx)\n", This, cidl, apidl, *rgfInOut); + TRACE("(%p)->(cidl=%d apidl=%p mask=%p (0x%08lx))\n", + This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - if ((!cidl) ||(!apidl) ||(!rgfInOut)) - return E_INVALIDARG; + if (!rgfInOut) + return E_INVALIDARG; + if (cidl && !apidl) + return E_INVALIDARG; if (*rgfInOut == 0) *rgfInOut = ~0; @@ -566,6 +569,8 @@ apidl++; cidl--; } + /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ + *rgfInOut &= ~SFGAO_VALIDATE; TRACE("-- result=0x%08lx\n", *rgfInOut); return hr; _____ Modified: trunk/reactos/lib/shell32/folders.c --- trunk/reactos/lib/shell32/folders.c 2005-05-28 21:30:02 UTC (rev 15616) +++ trunk/reactos/lib/shell32/folders.c 2005-05-28 21:30:32 UTC (rev 15617) @@ -383,7 +383,7 @@ FIXME("(%p) (file=%p index=%d %p %p size=%08x) semi-stub\n", This, debugstr_w(pszFile), (signed)nIconIndex, phiconLarge, phiconSmall, nIconSize); - index = SIC_GetIconIndex(pszFile, nIconIndex); + index = SIC_GetIconIndex(pszFile, nIconIndex, 0); if (phiconLarge) *phiconLarge = ImageList_GetIcon(ShellBigIconList, index, ILD_TRANSPARENT); _____ Modified: trunk/reactos/lib/shell32/iconcache.c --- trunk/reactos/lib/shell32/iconcache.c 2005-05-28 21:30:02 UTC (rev 15616) +++ trunk/reactos/lib/shell32/iconcache.c 2005-05-28 21:30:32 UTC (rev 15617) @@ -43,6 +43,7 @@ #include "pidl.h" #include "shell32_main.h" #include "undocshell.h" +#include "shresdef.h" WINE_DEFAULT_DEBUG_CHANNEL(shell); @@ -77,23 +78,165 @@ * Callback for DPA_Search */ static INT CALLBACK SIC_CompareEntries( LPVOID p1, LPVOID p2, LPARAM lparam) -{ TRACE("%p %p %8lx\n", p1, p2, lparam); +{ LPSIC_ENTRY e1 = (LPSIC_ENTRY)p1, e2 = (LPSIC_ENTRY)p2; + + TRACE("%p %p %8lx\n", p1, p2, lparam); - if (((LPSIC_ENTRY)p1)->dwSourceIndex != ((LPSIC_ENTRY)p2)->dwSourceIndex) /* first the faster one*/ + /* Icons in the cache are keyed by the name of the file they are + * loaded from, their resource index and the fact if they have a shortcut + * icon overlay or not. + */ + if (e1->dwSourceIndex != e2->dwSourceIndex || /* first the faster one */ + (e1->dwFlags & GIL_FORSHORTCUT) != (e2->dwFlags & GIL_FORSHORTCUT)) return 1; - if (strcmpiW(((LPSIC_ENTRY)p1)->sSourceFile,((LPSIC_ENTRY)p2)->sSourceFile) ) + if (strcmpiW(e1->sSourceFile,e2->sSourceFile)) return 1; return 0; } + /*********************************************************************** ****** + * SIC_OverlayShortcutImage [internal] + * + * NOTES + * Creates a new icon as a copy of the passed-in icon, overlayed with a + * shortcut image. + */ +static HICON SIC_OverlayShortcutImage(HICON SourceIcon) +{ ICONINFO SourceIconInfo, ShortcutIconInfo, TargetIconInfo; + HICON ShortcutIcon, TargetIcon; + BITMAP SourceBitmapInfo, ShortcutBitmapInfo; + HDC SourceDC = NULL, + ShortcutDC = NULL, + TargetDC = NULL, + ScreenDC = NULL; + HBITMAP OldSourceBitmap = NULL, + OldShortcutBitmap = NULL, + OldTargetBitmap = NULL; + + /* Get information about the source icon and shortcut overlay */ + if (! GetIconInfo(SourceIcon, &SourceIconInfo) + || 0 == GetObjectW(SourceIconInfo.hbmColor, sizeof(BITMAP), &SourceBitmapInfo)) + { + return NULL; + } + ShortcutIcon = LoadImageW(shell32_hInstance, MAKEINTRESOURCEW(IDI_SHELL_SHORTCUT), + IMAGE_ICON, SourceBitmapInfo.bmWidth, SourceBitmapInfo.bmWidth, + LR_SHARED); + if (NULL == ShortcutIcon + || ! GetIconInfo(ShortcutIcon, &ShortcutIconInfo) + || 0 == GetObjectW(ShortcutIconInfo.hbmColor, sizeof(BITMAP), &ShortcutBitmapInfo)) + { + return NULL; + } + + TargetIconInfo = SourceIconInfo; + TargetIconInfo.hbmMask = NULL; + TargetIconInfo.hbmColor = NULL; + + /* Setup the source, shortcut and target masks */ + SourceDC = CreateCompatibleDC(NULL); + if (NULL == SourceDC) goto fail; + OldSourceBitmap = SelectObject(SourceDC, SourceIconInfo.hbmMask); + if (NULL == OldSourceBitmap) goto fail; + + ShortcutDC = CreateCompatibleDC(NULL); + if (NULL == ShortcutDC) goto fail; + OldShortcutBitmap = SelectObject(ShortcutDC, ShortcutIconInfo.hbmMask); + if (NULL == OldShortcutBitmap) goto fail; + + TargetDC = CreateCompatibleDC(NULL); + if (NULL == TargetDC) goto fail; + TargetIconInfo.hbmMask = CreateCompatibleBitmap(TargetDC, SourceBitmapInfo.bmWidth, + SourceBitmapInfo.bmHeight); + if (NULL == TargetIconInfo.hbmMask) goto fail; + ScreenDC = GetDC(NULL); + if (NULL == ScreenDC) goto fail; + TargetIconInfo.hbmColor = CreateCompatibleBitmap(ScreenDC, SourceBitmapInfo.bmWidth, + SourceBitmapInfo.bmHeight); + ReleaseDC(NULL, ScreenDC); + if (NULL == TargetIconInfo.hbmColor) goto fail; + OldTargetBitmap = SelectObject(TargetDC, TargetIconInfo.hbmMask); + if (NULL == OldTargetBitmap) goto fail; + + /* Create the target mask by ANDing the source and shortcut masks */ + if (! BitBlt(TargetDC, 0, 0, SourceBitmapInfo.bmWidth, SourceBitmapInfo.bmHeight, + SourceDC, 0, 0, SRCCOPY) || + ! BitBlt(TargetDC, 0, SourceBitmapInfo.bmHeight - ShortcutBitmapInfo.bmHeight, + ShortcutBitmapInfo.bmWidth, ShortcutBitmapInfo.bmHeight, + ShortcutDC, 0, 0, SRCAND)) + { + goto fail; + } + + /* Setup the source and target xor bitmap */ + if (NULL == SelectObject(SourceDC, SourceIconInfo.hbmColor) || + NULL == SelectObject(TargetDC, TargetIconInfo.hbmColor)) + { + goto fail; + } + + /* Copy the source xor bitmap to the target and clear out part of it by using + the shortcut mask */ + if (! BitBlt(TargetDC, 0, 0, SourceBitmapInfo.bmWidth, SourceBitmapInfo.bmHeight, + SourceDC, 0, 0, SRCCOPY) || + ! BitBlt(TargetDC, 0, SourceBitmapInfo.bmHeight - ShortcutBitmapInfo.bmHeight, + ShortcutBitmapInfo.bmWidth, ShortcutBitmapInfo.bmHeight, + ShortcutDC, 0, 0, SRCAND)) + { + goto fail; + } + + if (NULL == SelectObject(ShortcutDC, ShortcutIconInfo.hbmColor)) goto fail; + + /* Now put in the shortcut xor mask */ + if (! BitBlt(TargetDC, 0, SourceBitmapInfo.bmHeight - ShortcutBitmapInfo.bmHeight, + ShortcutBitmapInfo.bmWidth, ShortcutBitmapInfo.bmHeight, + ShortcutDC, 0, 0, SRCINVERT)) + { + goto fail; + } + + /* Clean up, we're not goto'ing to 'fail' after this so we can be lazy and not set + handles to NULL */ + SelectObject(TargetDC, OldTargetBitmap); + DeleteObject(TargetDC); + SelectObject(ShortcutDC, OldShortcutBitmap); + DeleteObject(ShortcutDC); + SelectObject(SourceDC, OldSourceBitmap); + DeleteObject(SourceDC); + + /* Create the icon using the bitmaps prepared earlier */ + TargetIcon = CreateIconIndirect(&TargetIconInfo); + + /* CreateIconIndirect copies the bitmaps, so we can release our bitmaps now */ + DeleteObject(TargetIconInfo.hbmColor); + DeleteObject(TargetIconInfo.hbmMask); + + return TargetIcon; + +fail: + /* Clean up scratch resources we created */ + if (NULL != OldTargetBitmap) SelectObject(TargetDC, OldTargetBitmap); + if (NULL != TargetIconInfo.hbmColor) DeleteObject(TargetIconInfo.hbmColor); + if (NULL != TargetIconInfo.hbmMask) DeleteObject(TargetIconInfo.hbmMask); + if (NULL != TargetDC) DeleteObject(TargetDC); + if (NULL != OldShortcutBitmap) SelectObject(ShortcutDC, OldShortcutBitmap); + if (NULL != ShortcutDC) DeleteObject(ShortcutDC); [truncated at 1000 lines; 1448 more skipped]
19 years, 5 months
1
0
0
0
[jimtabor] 15616: Add Usbd to new build system.
by jimtabor@svn.reactos.com
Add Usbd to new build system. Added: trunk/reactos/drivers/usb/usbd/usbd.xml _____ Added: trunk/reactos/drivers/usb/usbd/usbd.xml --- trunk/reactos/drivers/usb/usbd/usbd.xml 2005-05-28 21:29:20 UTC (rev 15615) +++ trunk/reactos/drivers/usb/usbd/usbd.xml 2005-05-28 21:30:02 UTC (rev 15616) @@ -0,0 +1,7 @@ +<module name="usbd" type="kernelmodedriver" installbase="system32/drivers" installname="usbd.sys"> + <define name="__USE_W32API" /> + <library>ntoskrnl</library> + <library>hal</library> + <file>usbd.c</file> + <file>usbd.rc</file> +</module>
19 years, 5 months
1
0
0
0
[jimtabor] 15615: Add Usb Directory to new build system.
by jimtabor@svn.reactos.com
Add Usb Directory to new build system. Added: trunk/reactos/drivers/usb/directory.xml _____ Added: trunk/reactos/drivers/usb/directory.xml --- trunk/reactos/drivers/usb/directory.xml 2005-05-28 21:28:11 UTC (rev 15614) +++ trunk/reactos/drivers/usb/directory.xml 2005-05-28 21:29:20 UTC (rev 15615) @@ -0,0 +1,6 @@ +<directory name="usbd"> + <xi:include href="usbd/usbd.xml" /> +</directory> +<directory name="usbhub"> + <xi:include href="usbhub/usbhub.xml" /> +</directory>
19 years, 5 months
1
0
0
0
[jimtabor] 15614: Add Usb Directory to new build system.
by jimtabor@svn.reactos.com
Add Usb Directory to new build system. Modified: trunk/reactos/drivers/directory.xml _____ Modified: trunk/reactos/drivers/directory.xml --- trunk/reactos/drivers/directory.xml 2005-05-28 21:16:34 UTC (rev 15613) +++ trunk/reactos/drivers/directory.xml 2005-05-28 21:28:11 UTC (rev 15614) @@ -22,3 +22,6 @@ <directory name="video"> <xi:include href="video/directory.xml" /> </directory> +<directory name="usb"> + <xi:include href="usb/directory.xml" /> +</directory>
19 years, 5 months
1
0
0
0
[greatlrd] 15613: remove soem warings for optimze build
by greatlrd@svn.reactos.com
remove soem warings for optimze build Modified: trunk/reactos/apps/utils/net/ftp/cmds.c _____ Modified: trunk/reactos/apps/utils/net/ftp/cmds.c --- trunk/reactos/apps/utils/net/ftp/cmds.c 2005-05-28 21:08:56 UTC (rev 15612) +++ trunk/reactos/apps/utils/net/ftp/cmds.c 2005-05-28 21:16:34 UTC (rev 15613) @@ -165,7 +165,7 @@ { "image", "I", TYPE_I, 0 }, { "ebcdic", "E", TYPE_E, 0 }, { "tenex", "L", TYPE_L, bytename }, - 0 + {0 } }; /* @@ -1276,7 +1276,7 @@ * Do a shell escape */ /*ARGSUSED*/ -shell(argc, argv) +int shell(argc, argv) char *argv[]; { #if 0 @@ -1405,7 +1405,7 @@ /* * Send new user information (re-login) */ -user(argc, argv) +int user(argc, argv) int argc; char **argv; { @@ -1704,7 +1704,7 @@ } } -confirm(cmd, file) +int confirm(cmd, file) char *cmd, *file; { char line[BUFSIZ]; @@ -1731,7 +1731,7 @@ * Can't control multiple values being expanded * from the expression, we return only the first. */ -globulize(cpp) +int globulize(cpp) char **cpp; { char **globbed; @@ -1810,7 +1810,7 @@ void proxabort(); register struct cmd *c; struct cmd *getcmd(); - extern struct cmd cmdtab[]; +// extern struct cmd cmdtab[]; extern jmp_buf abortprox; if (argc < 2) {
19 years, 5 months
1
0
0
0
[fireball] 15612: Added vfatxlib support in the new build system
by fireball@svn.reactos.com
Added vfatxlib support in the new build system Modified: trunk/reactos/lib/fslib/directory.xml Added: trunk/reactos/lib/fslib/vfatxlib/vfatxlib.xml _____ Modified: trunk/reactos/lib/fslib/directory.xml --- trunk/reactos/lib/fslib/directory.xml 2005-05-28 20:41:55 UTC (rev 15611) +++ trunk/reactos/lib/fslib/directory.xml 2005-05-28 21:08:56 UTC (rev 15612) @@ -1,3 +1,6 @@ <directory name="vfatlib"> <xi:include href="vfatlib/vfatlib.xml" /> </directory> +<directory name="vfatxlib"> + <xi:include href="vfatxlib/vfatxlib.xml" /> +</directory> _____ Added: trunk/reactos/lib/fslib/vfatxlib/vfatxlib.xml --- trunk/reactos/lib/fslib/vfatxlib/vfatxlib.xml 2005-05-28 20:41:55 UTC (rev 15611) +++ trunk/reactos/lib/fslib/vfatxlib/vfatxlib.xml 2005-05-28 21:08:56 UTC (rev 15612) @@ -0,0 +1,6 @@ +<module name="vfatxlib" type="staticlibrary"> + <include base="vfatxlib">.</include> + <define name="_DISABLE_TIDENTS" /> + <file>fatx.c</file> + <file>vfatxlib.c</file> +</module>
19 years, 5 months
1
0
0
0
[ion] 15611: Merge 15540:15610
by ion@svn.reactos.com
Merge 15540:15610 Modified: branches/new_headers/reactos/INSTALL Deleted: branches/new_headers/reactos/Jamfile Deleted: branches/new_headers/reactos/Jamrules Modified: branches/new_headers/reactos/Makefile Added: branches/new_headers/reactos/ReactOS.xml Added: branches/new_headers/reactos/apps/directory.xml Added: branches/new_headers/reactos/apps/utils/directory.xml Modified: branches/new_headers/reactos/apps/utils/net/arp/arp.c Added: branches/new_headers/reactos/apps/utils/net/arp/arp.xml Deleted: branches/new_headers/reactos/apps/utils/net/arp/makefile Added: branches/new_headers/reactos/apps/utils/net/directory.xml Modified: branches/new_headers/reactos/apps/utils/net/finger/finger.c Added: branches/new_headers/reactos/apps/utils/net/finger/finger.xml Deleted: branches/new_headers/reactos/apps/utils/net/finger/makefile Modified: branches/new_headers/reactos/apps/utils/net/finger/net.c Added: branches/new_headers/reactos/apps/utils/net/ftp/ftp.xml Modified: branches/new_headers/reactos/apps/utils/net/ftp/makefile Added: branches/new_headers/reactos/apps/utils/net/ipconfig/ipconfig.xml Deleted: branches/new_headers/reactos/apps/utils/net/ipconfig/makefile Deleted: branches/new_headers/reactos/apps/utils/net/netstat/makefile Added: branches/new_headers/reactos/apps/utils/net/netstat/netstat.xml Deleted: branches/new_headers/reactos/apps/utils/net/ping/makefile Modified: branches/new_headers/reactos/apps/utils/net/ping/ping.c Added: branches/new_headers/reactos/apps/utils/net/ping/ping.xml Deleted: branches/new_headers/reactos/apps/utils/net/route/makefile Modified: branches/new_headers/reactos/apps/utils/net/route/route.c Added: branches/new_headers/reactos/apps/utils/net/route/route.xml Deleted: branches/new_headers/reactos/apps/utils/net/telnet/Makefile Added: branches/new_headers/reactos/apps/utils/net/telnet/telnet.xml Deleted: branches/new_headers/reactos/apps/utils/net/whois/makefile Modified: branches/new_headers/reactos/apps/utils/net/whois/whois.c Added: branches/new_headers/reactos/apps/utils/net/whois/whois.xml Deleted: branches/new_headers/reactos/baseaddress.cfg Added: branches/new_headers/reactos/baseaddress.xml Added: branches/new_headers/reactos/boot/boot.xml Deleted: branches/new_headers/reactos/boot/freeldr/bootsect/Makefile Added: branches/new_headers/reactos/boot/freeldr/bootsect/bootsect.xml Deleted: branches/new_headers/reactos/boot/freeldr/freeldr/Makefile Added: branches/new_headers/reactos/boot/freeldr/freeldr/freeldr.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/freeldr_base.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/freeldr_base64k.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/freeldr_main.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/freeldr_startup.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/setupldr.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr/setupldr_main.xml Added: branches/new_headers/reactos/boot/freeldr/freeldr.xml Added: branches/new_headers/reactos/bootdata/bootcd/ Added: branches/new_headers/reactos/bootdata/bootdata.xml Modified: branches/new_headers/reactos/bootdata/hivesys.inf Added: branches/new_headers/reactos/bootdata/livecd/ Deleted: branches/new_headers/reactos/config Added: branches/new_headers/reactos/config.template.xml Added: branches/new_headers/reactos/drivers/bus/acpi/acpi.xml Modified: branches/new_headers/reactos/drivers/bus/acpi/include/acconfig.h Modified: branches/new_headers/reactos/drivers/bus/acpi/include/actypes.h Modified: branches/new_headers/reactos/drivers/bus/acpi/include/platform/types.h Deleted: branches/new_headers/reactos/drivers/bus/acpi/makefile Modified: branches/new_headers/reactos/drivers/bus/acpi/ospm/osl.c Added: branches/new_headers/reactos/drivers/bus/directory.xml Modified: branches/new_headers/reactos/drivers/bus/isapnp/isapnp.h Added: branches/new_headers/reactos/drivers/bus/isapnp/isapnp.xml Deleted: branches/new_headers/reactos/drivers/bus/isapnp/makefile Deleted: branches/new_headers/reactos/drivers/bus/pci/makefile Modified: branches/new_headers/reactos/drivers/bus/pci/pci.c Added: branches/new_headers/reactos/drivers/bus/pci/pci.xml Modified: branches/new_headers/reactos/drivers/bus/pci/pdo.c Modified: branches/new_headers/reactos/drivers/bus/serenum/makefile Added: branches/new_headers/reactos/drivers/bus/serenum/serenum.xml Added: branches/new_headers/reactos/drivers/dd/beep/beep.xml Deleted: branches/new_headers/reactos/drivers/dd/beep/makefile Added: branches/new_headers/reactos/drivers/dd/blue/blue.xml Deleted: branches/new_headers/reactos/drivers/dd/blue/makefile Deleted: branches/new_headers/reactos/drivers/dd/bootvid/Makefile Added: branches/new_headers/reactos/drivers/dd/bootvid/bootvid.xml Added: branches/new_headers/reactos/drivers/dd/debugout/debugout.xml Deleted: branches/new_headers/reactos/drivers/dd/debugout/makefile Added: branches/new_headers/reactos/drivers/dd/directory.xml Deleted: branches/new_headers/reactos/drivers/dd/mpu401/makefile Added: branches/new_headers/reactos/drivers/dd/mpu401/mpu401.xml Deleted: branches/new_headers/reactos/drivers/dd/null/makefile Added: branches/new_headers/reactos/drivers/dd/null/null.xml Deleted: branches/new_headers/reactos/drivers/dd/parallel/makefile Added: branches/new_headers/reactos/drivers/dd/parallel/parallel.xml Deleted: branches/new_headers/reactos/drivers/dd/ramdrv/makefile Added: branches/new_headers/reactos/drivers/dd/ramdrv/ramdrv.rc Added: branches/new_headers/reactos/drivers/dd/ramdrv/ramdrv.xml Deleted: branches/new_headers/reactos/drivers/dd/serial/makefile Added: branches/new_headers/reactos/drivers/dd/serial/serial.xml Modified: branches/new_headers/reactos/drivers/dd/sndblst/card.c Modified: branches/new_headers/reactos/drivers/dd/sndblst/dma.c Modified: branches/new_headers/reactos/drivers/dd/sndblst/irq.c Deleted: branches/new_headers/reactos/drivers/dd/sndblst/makefile Modified: branches/new_headers/reactos/drivers/dd/sndblst/portio.c Modified: branches/new_headers/reactos/drivers/dd/sndblst/settings.c Modified: branches/new_headers/reactos/drivers/dd/sndblst/sndblst.c Added: branches/new_headers/reactos/drivers/dd/sndblst/sndblst.xml Modified: branches/new_headers/reactos/drivers/dd/sound/dsp.c Modified: branches/new_headers/reactos/drivers/dd/sound/dsp.h Deleted: branches/new_headers/reactos/drivers/dd/sound/makefile Modified: branches/new_headers/reactos/drivers/dd/sound/mixer.c [truncated at 100 lines; 603 more skipped] Property changes on: branches/new_headers/reactos ___________________________________________________________________ Name: svn:ignore - dist reactos *.sys *.exe *.dll *.cpl *.a *.o *.d *.coff *.dsp *.dsw *.aps *.ncb *.opt *.sym *.plg *.bak *.zip *.iso *.cab doxy-doc + *.sys *.exe *.dll *.cpl *.a *.o *.d *.coff *.dsp *.dsw *.aps *.ncb *.opt *.sym *.plg *.bak *.zip *.iso *.cab *.bat *.log makefile.auto config.xml obj-* output-* doxy-doc cd reactos _____ Modified: branches/new_headers/reactos/INSTALL --- branches/new_headers/reactos/INSTALL 2005-05-28 20:21:07 UTC (rev 15610) +++ branches/new_headers/reactos/INSTALL 2005-05-28 20:41:55 UTC (rev 15611) @@ -7,67 +7,72 @@ 2. Building ReactOS -To build from Windows run 'make' (wihout the quotes) from the top directory. -To build from unix, edit rules.mak and change the PREFIX variable to the -correct value for your cross-compiler. Run 'export HOST=mingw32-linux' to -tell the ReactOS build system that it is building ReactOS on a linux machine. -Now run 'make'. +2.1 Building the binaries +To build ReactOS run 'make' (wihout the quotes) if you are building on Linux +or 'mingw32-make' if you are building on Windows (or ReactOS) from the top +directory. + +2.2 Building a bootable CD image + +To build a bootable CD image run 'make bootcd' (wihout the quotes) if you are +building on Linux or 'mingw32-make bootcd' if you are building on Windows (or +ReactOS) from the top directory. This will create a CD image with a filename, +ReactOS.iso, in the top directory. + + 3. Installation -The system can only be installed on the first partition on the first harddisk. -The partition must be formatted as FAT16 or FAT32. The system can only be -started from DOS and not from a Windows DOS-prompt. +ReactOS can only be installed on a machine that has a FAT16 or FAT32 partition +as the active (bootable) partition. The partition on which ReactOS is to be +installed (which may or may not be the bootable partition) must also be +formatted as FAT16 or FAT32. ReactOS Setup can format the partitions if +needed. -ReactOS can be installed from the source distribution or from the binary +ReactOS can be installed from the source distribution or from the bootable CD distribution. The two ways to install ReactOS are explained below. 3.1 Installation from sources -To install ReactOS after building it, type 'make install'. This will create -the directory 'reactos' in the top directory. Copy this directory to the root -of your first partition on your first harddisk. This is usually c:\ on a -Windows machine. +If you don't have an existing ReactOS installation you want to upgrade, then +build a bootable CD as described above. Burn the CD image, boot from it, and +follow the instructions to install ReactOS. -If you don't want to copy the files manually every time you run a 'make install', -you can specify the directory where the files are to be copied to during -installation. +If you have an existing ReactOS installation you want to upgrade, then to +install ReactOS after building it, type 'make install' or +'mingw32-make install'. This will create the directory 'reactos' in the top +directory. Copy the contents of this directory over the existing installation. -In rules.mak find the variable INSTALL_DIR and change the assigned value to the -name of the directory where the files are to be copied to. If you are using -Windows this could be: +If you don't want to copy the files manually every time you run a +'make install' or 'mingw32-make install', then you can specify the directory +where the files are to be copied to during installation. - INSTALL_DIR = c:\reactos +Set the ROS_INSTALL environment variable. If you are on Windows this could be +done by: -If you are on linux this could be: + set ROS_INSTALL=c:\reactos - INSTALL_DIR = /mnt/windows/reactos +If you are on Linux this could be done by: -Save the changes to rules.mak and run 'make install' to install the files to -the new location. If you don't want to change rules.mak, you can specify the -installtion directory when invoking make. Run -'make INSTALL_DIR=c:\reactos install' to install to c:\reactos. + export ROS_INSTALL=/mnt/windows/reactos +Now run 'make install' or 'mingw32-make install' to install the files to the +new location. -3.2 Installation from binany distribution -To install ReactOS from the binary distribution, extract the archive contents -to c:\reactos. Remember to extract the files with full paths. +3.2 Installation from bootable CD distribution +To install ReactOS from the bootable CD distribution, extract the archive +contents. Then burn the CD image, boot from it, and follow instructions. -4. Booting ReactOS -Startup in DOS mode. 'cd' to c:\reactos and type 'boot' and press <enter>. -A simple shell is started where you can use simple commands like 'cd' and 'dir'. - - 5. Help If you run into problems or have suggestions for making ReactOS better, please -surf to the address below and subscribe to one or more of the mailing lists. +visit the address below and subscribe to one or more of the mailing lists. -http://www.reactos.com/index.php?tab=discussion§ion=lists +http://www.reactos.com/en/content/view/full/66 ReactOS Development Team _____ Deleted: branches/new_headers/reactos/Jamfile --- branches/new_headers/reactos/Jamfile 2005-05-28 20:21:07 UTC (rev 15610) +++ branches/new_headers/reactos/Jamfile 2005-05-28 20:41:55 UTC (rev 15611) @@ -1,5 +0,0 @@ -# Main jamfile for ReactOS - -SubDir ROS_TOP ; - -SubInclude ROS_TOP Lib ; _____ Deleted: branches/new_headers/reactos/Jamrules --- branches/new_headers/reactos/Jamrules 2005-05-28 20:21:07 UTC (rev 15610) +++ branches/new_headers/reactos/Jamrules 2005-05-28 20:41:55 UTC (rev 15611) @@ -1,54 +0,0 @@ -# customization for ReactOS goes here - -# The SharedLibrary and SharedLibraryFromObjects rules were -# borrowed from here: -#
http://www.differentpla.net/~roger/devel/jam/tutorial/shared_lib/index.h
tml - -SUFSHR = .dll ; -RM = rm ; # rm comes with MinGW, and the default del doesn't work in some cases - -rule SharedLibrary -{ - SharedLibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ; - Objects $(>) ; -} - -rule SharedLibraryFromObjects -{ - local _s _t ; - - # Add grist to file names - # Add suffix to dll - - _s = [ FGristFiles $(>) ] ; - _t = [ FAppendSuffix $(<) : $(SUFSHR) ] ; - - if $(_t) != $(<) - { - DEPENDS $(<) : $(_t) ; - NOTFILE $(<) ; - } - - # make compiled sources a dependency of target - - DEPENDS exe : $(_t) ; - DEPENDS $(_t) : $(_s) ; - MakeLocate $(_t) : $(LOCATE_TARGET) ; - - Clean clean : $(_t) ; - - Link $(_t) : $(_s) ; -} - -# nasm needs to know the output file first, or it doesn't -# recognize -I :( -actions As -{ - $(AS) -o $(<) $(ASFLAGS) -I$(HDRS) $(>) -} - -AS = nasm ; - -# why isn't DEFINES working? :( -#DEFINES += _M_IX86 ; -CCFLAGS += -D_M_IX86 ; _____ Modified: branches/new_headers/reactos/Makefile --- branches/new_headers/reactos/Makefile 2005-05-28 20:21:07 UTC (rev 15610) +++ branches/new_headers/reactos/Makefile 2005-05-28 20:41:55 UTC (rev 15611) @@ -1,1089 +1,264 @@ -# $Id$ +# Accepted environment variables: # -# Global makefile +# ROS_PREFIX +# This variable specifies the prefix of the MinGW installation. On Windows +# a prefix is usually not needed, but on linux it is usually "mingw32". If +# not present and no executable named "gcc" can be found, then the prefix is +# assumed to be "mingw32". If your gcc is named i386-mingw32-gcc then set +# ROS_PREFIX to i386-mingw32. Don't include the dash (-) before gcc. # +# ROS_INTERMEDIATE +# This variable controls where to put intermediate files. Intermediate +# files are generated files that are needed to generate the final +# output files. Examples of intermediate files include *.o, *.a, and +# *.coff. N.B. Don't put a path separator at the end. The variable +# defaults to .\obj-i386. +# +# ROS_OUTPUT +# This variable controls where to put output files. Output files are +# generated files that makes up the result of the build process. +# Examples of output files include *.exe, *.dll, and *.sys. N.B. Don't +# put a path separator at the end. The variable defaults to .\output-i386. +# +# ROS_TEMPORARY +# This variable controls where to put temporary files. Temporary files +# are (usually small) generated files that are needed to generate the +# intermediate or final output files. Examples of temporary files include +# *.rci (preprocessed .rc files for wrc), *.tmp, and *.exp. N.B. Don't put +# a path separator at the end. The variable defaults to the current +# directory. +# +# ROS_INSTALL +# This variable controls where to install output files to when using +# 'make install'. N.B. Don't put a path separator at the end. The variable +# defaults to .\reactos. +# +# ROS_BUILDMAP +# This variable controls if map files are to be generated for executable +# output files. Map files have the extension .map. The value can be either +# full (to build map files with assembly code), yes (to build map files +# without source code) or no (to not build any map files). The variable +# defaults to no. +# +# ROS_BUILDNOSTRIP +# This variable controls if non-symbol-stripped versions are to be built +# of executable output files. Non-symbol-stripped executable output files +# have .nostrip added to the filename just before the extension. The value +# can be either yes (to build non-symbol-stripped versions of executable +# output files) or no (to not build non-symbol-stripped versions of +# executable output files). The variable defaults to no. +# +# ROS_RBUILDFLAGS +# Pass parameters to rbuild. -PATH_TO_TOP = . +.PHONY: all +.PHONY: clean +all: makefile.auto -include $(PATH_TO_TOP)/rules.mak -include $(PATH_TO_TOP)/config +.SUFFIXES: -# -# Define to build ReactOS external targets -# -ifeq ($(ROS_BUILD_EXT),) -ROS_BUILD_EXT = no +ifeq ($(HOST),) +ifeq ($(word 1,$(shell gcc -dumpmachine)),mingw32) +HOST=mingw32-windows else -ROS_BUILD_EXT = yes +HOST=mingw32-linux endif +endif -ifneq ($(MINIMALDEPENDENCIES),no) -IMPLIB = +# Default to half-verbose mode +ifeq ($(VERBOSE),no) + Q = @ + HALFVERBOSEECHO = no + BUILDNO_QUIET = -q else -IMPLIB = implib +ifeq ($(VERBOSE),full) + Q = + HALFVERBOSEECHO = no + BUILDNO_QUIET = +else + Q = @ + HALFVERBOSEECHO = yes + BUILDNO_QUIET = -q endif +endif +ifeq ($(HALFVERBOSEECHO),yes) + ECHO_CP =@echo [COPY] $@ + ECHO_MKDIR =@echo [MKDIR] $@ + ECHO_BUILDNO =@echo [BUILDNO] $@ + ECHO_INVOKE =@echo [INVOKE] $< + ECHO_PCH =@echo [PCH] $@ + ECHO_CC =@echo [CC] $< + ECHO_GAS =@echo [GAS] $< + ECHO_NASM =@echo [NASM] $< + ECHO_AR =@echo [AR] $@ + ECHO_WINEBLD =@echo [WINEBLD] $@ + ECHO_WRC =@echo [WRC] $@ + ECHO_WIDL =@echo [WIDL] $@ + ECHO_BIN2RES =@echo [BIN2RES] $< + ECHO_DLLTOOL =@echo [DLLTOOL] $@ + ECHO_LD =@echo [LD] $@ + ECHO_NM =@echo [NM] $@ + ECHO_OBJDUMP =@echo [OBJDUMP] $@ + ECHO_RBUILD =@echo [RBUILD] $@ + ECHO_RSYM =@echo [RSYM] $@ + ECHO_WMC =@echo [WMC] $@ + ECHO_NCI =@echo [NCI] $@ + ECHO_CABMAN =@echo [CABMAN] $< + ECHO_CDMAKE =@echo [CDMAKE] $@ + ECHO_MKHIVE =@echo [MKHIVE] $@ + ECHO_REGTESTS=@echo [REGTESTS] $@ + ECHO_TEST =@echo [TEST] $@ +else + ECHO_CP = + ECHO_MKDIR = + ECHO_BUILDNO = + ECHO_INVOKE = + ECHO_PCH = + ECHO_CC = + ECHO_GAS = + ECHO_NASM = + ECHO_AR = + ECHO_WINEBLD = + ECHO_WRC = + ECHO_WIDL = + ECHO_BIN2RES = + ECHO_DLLTOOL = + ECHO_LD = + ECHO_NM = + ECHO_OBJDUMP = + ECHO_RBUILD = + ECHO_RSYM = + ECHO_WMC = + ECHO_NCI = + ECHO_CABMAN = + ECHO_CDMAKE = + ECHO_MKHIVE = + ECHO_REGTESTS= + ECHO_TEST = +endif -# Boot loaders -BOOT_LOADERS = freeldr -# Required to run the system -COMPONENTS = ntoskrnl +host_gcc = $(Q)gcc +host_gpp = $(Q)g++ +host_ld = $(Q)ld +host_ar = $(Q)ar +host_objcopy = $(Q)objcopy +ifeq ($(HOST),mingw32-linux) + EXEPREFIX = ./ + EXEPOSTFIX = + SEP = / + mkdir = -$(Q)mkdir -p + gcc = $(Q)$(PREFIX)-gcc + gpp = $(Q)$(PREFIX)-g++ + ld = $(Q)$(PREFIX)-ld + nm = $(Q)$(PREFIX)-nm + objdump = $(Q)$(PREFIX)-objdump + ar = $(Q)$(PREFIX)-ar + objcopy = $(Q)$(PREFIX)-objcopy + dlltool = $(Q)$(PREFIX)-dlltool + windres = $(Q)$(PREFIX)-windres + rm = $(Q)rm -f + cp = $(Q)cp + NUL = /dev/null +else # mingw32-windows + EXEPREFIX = + EXEPOSTFIX = .exe + ROS_EMPTY = + SEP = \$(ROS_EMPTY) + mkdir = -$(Q)mkdir + gcc = $(Q)gcc + gpp = $(Q)g++ + ld = $(Q)ld + nm = $(Q)nm + objdump = $(Q)objdump + ar = $(Q)ar + objcopy = $(Q)objcopy + dlltool = $(Q)dlltool + windres = $(Q)windres + rm = $(Q)del /f /q + cp = $(Q)copy /y + NUL = NUL +endif -# Hardware Abstraction Layers -# halx86 -HALS = halx86/up halx86/mp +ifneq ($(ROS_INTERMEDIATE),) + INTERMEDIATE := $(ROS_INTERMEDIATE) +else + INTERMEDIATE := obj-i386 +endif +INTERMEDIATE_ := $(INTERMEDIATE)$(SEP) -# Bus drivers -# acpi isapnp pci serenum -BUS = acpi isapnp pci serenum +ifneq ($(ROS_OUTPUT),) + OUTPUT := $(ROS_OUTPUT) +else + OUTPUT := output-i386 +endif +OUTPUT_ := $(OUTPUT)$(SEP) -# Filesystem libraries -# vfatlib -LIB_FSLIB = vfatlib - -# libunicode, must be empty! -LIBUNICODE = - -# Static libraries -LIB_STATIC = string rosrtl epsapi uuid libwine zlib rtl tgetopt pseh adns dxguid strmiids crt rossym wdmguid - -# Keyboard layout libraries -DLLS_KBD = kbdda kbddv kbdes kbdfr kbdgr kbdru kbdse kbdsg kbduk kbdus - -# Control Panels -DLLS_CPL = cpl - -# Shell extensions -DLLS_SHELLEXT = shellext - -# User mode libraries -# libpcap packet epsapi -DLLS = acledit aclui advapi32 advpack cabinet cards comctl32 crtdll comdlg32 d3d8thk dbghelp expat fmifs freetype \ - gdi32 gdiplus glu32 hid imagehlp imm32 iphlpapi kernel32 lzexpand mesa32 midimap mmdrv mpr msacm msafd \ - msgina msi msimg32 msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg olepro32 opengl32 \ - packet psapi riched20 richedit rpcrt4 samlib secur32 serialui setupapi shell32 shlwapi smlib smdll snmpapi \ - syssetup twain user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \ - urlmon shdocvw dinput dinput8 dxdiagn devenum dsound lsasrv dhcpcapi \ - $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT) - -SUBSYS = smss win32k csrss ntvdm - -# -# Select the server(s) you want to build -# -#SERVERS = posix linux os2 -SERVERS = win32 - -# Driver support libraries -#bzip2 zlib oskittcp -DRIVERS_LIB = bzip2 oskittcp ip csq - -# Kernel mode device drivers -# Obsolete: ide -# beep blue floppy null parallel ramdrv serenum serial -DEVICE_DRIVERS = beep blue debugout null serial bootvid - -# Kernel mode input drivers -INPUT_DRIVERS = mouclass sermouse i8042prt kbdclass - -# Kernel mode file system drivers -# cdfs ext2 fs_rec ms np vfat -FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs - -# Kernel mode networking drivers -# afd ndis npf tcpip tdi wshtcpip -NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip - -# Kernel mode networking device drivers -# ne2000 pcnet -NET_DEVICE_DRIVERS = ne2000 pcnet - -# Kernel mode storage drivers -# atapi cdrom class2 disk scsiport -STORAGE_DRIVERS = atapi cdrom class2 disk floppy scsiport diskdump - -# System applications -# autochk cmd format services setup usetup welcome winlogon msiexec -SYS_APPS = autochk calc cmd explorer expand format ibrowser msiexec regsvr32 \ - reporterror services setup taskmgr userinit usetup welcome vmwinst rundll32 \ - winlogon regedit winefile notepad reactos lsass dhcp sm - -# System services -SYS_SVC = rpcss eventlog umpnpmgr - -APPS = testsets utils - - -# External modules and (sub)systems for ReactOS -# rosapps posix os2 (requires c++) java (non-existant) -EXTERNALS = rosapps - -ifeq ($(ROS_BUILD_EXT),yes) -EXT_MODULES = $(EXTERNALS) +ifneq ($(ROS_TEMPORARY),) + TEMPORARY := $(ROS_TEMPORARY) else -EXT_MODULES = + TEMPORARY := endif +TEMPORARY_ := $(TEMPORARY)$(SEP) -KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \ - $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS) VIDEO_DRIVERS USB_DRIVERS - -# Regression tests -REGTESTS = regtests - -all: bootstrap $(BOOT_LOADERS) $(COMPONENTS) $(REGTESTS) $(HALS) $(BUS) $(LIB_FSLIB) \ - $(DLLS) $(SUBSYS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) $(APPS) $(EXT_MODULES) - -bootstrap: dk implib iface_native - -depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) msvcrt_depends $(DLLS:%=%_depends) \ - $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \ - $(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends) - -implib: hallib $(LIB_STATIC) $(LIB_FSLIB) $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) \ - $(BUS:%=%_implib) $(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) \ - msvcrt_implib $(DLLS:%=%_implib) $(KERNEL_DRIVERS:%=%_implib) \ - $(SUBSYS:%=%_implib) $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \ - $(EXT_MODULES:%=%_implib) $(REGTESTS:%=%_implib) - -test: $(BOOT_LOADERS:%=%_test) $(COMPONENTS:%=%_test) $(HALS:%=%_test) $(BUS:%=%_test) \ - $(LIB_STATIC:%=%_test) $(LIB_FSLIB:%=%_test) msvcrt_test $(DLLS:%=%_test) \ - $(KERNEL_DRIVERS:%=%_test) $(SUBSYS:%=%_test) \ - $(SYS_SVC:%=%_test) $(EXT_MODULES:%=%_test) - -clean: tools dk_clean iface_native_clean hallib_clean \ - $(BOOT_LOADERS:%=%_clean) $(HALS:%=%_clean) $(COMPONENTS:%=%_clean) \ - $(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) \ - msvcrt_clean $(DLLS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) \ - $(SUBSYS:%=%_clean) $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \ - $(NET_APPS:%=%_clean) $(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) \ - $(REGTESTS:%=%_clean) clean_after tools_clean - -clean_after: - $(HALFVERBOSEECHO) [RM] /include/roscfg.h - $(RM) $(PATH_TO_TOP)/include/roscfg.h - -fastinstall: tools install_dirs install_before $(COMPONENTS:%=%_install) $(HALS:%=%_install) \ - $(BUS:%=%_install) $(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) \ - msvcrt_install $(DLLS:%=%_install) $(KERNEL_DRIVERS:%=%_install) \ - $(SUBSYS:%=%_install) $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \ - $(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install) -install: fastinstall registry - -FREELDR_DIR = boot/freeldr - -bootcd_directory_layout: - $(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR) - $(RMKDIR) $(BOOTCD_DIR) - $(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)/bootdisk - $(RMKDIR) $(BOOTCD_DIR)/bootdisk - $(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)/loader - $(RMKDIR) $(BOOTCD_DIR)/loader - $(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)/reactos - $(RMKDIR) $(BOOTCD_DIR)/reactos - $(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)/reactos/system32 - $(RMKDIR) $(BOOTCD_DIR)/reactos/system32 - -bootcd_bootstrap_files: $(BOOT_LOADERS:%=%_bootcd) $(COMPONENTS:%=%_bootcd) \ - $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) $(LIB_STATIC:%=%_bootcd) \ - $(LIB_FSLIB:%=%_bootcd) msvcrt_bootcd $(DLLS:%=%_bootcd) \ - $(KERNEL_DRIVERS:%=%_bootcd) $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd) - -bootcd_install_before: - $(HALFVERBOSEECHO) [RLINE] bootdata/autorun.inf to $(BOOTCD_DIR)/autorun.inf - $(RLINE) bootdata/autorun.inf $(BOOTCD_DIR)/autorun.inf - $(HALFVERBOSEECHO) [RLINE] bootdata/readme.txt to $(BOOTCD_DIR)/readme.txt - $(RLINE) bootdata/readme.txt $(BOOTCD_DIR)/readme.txt - $(HALFVERBOSEECHO) [RLINE] bootdata/hivecls.inf to $(BOOTCD_DIR)/reactos/hivecls.inf - $(RLINE) bootdata/hivecls.inf $(BOOTCD_DIR)/reactos/hivecls.inf - $(HALFVERBOSEECHO) [RLINE] bootdata/hivedef.inf to $(BOOTCD_DIR)/reactos/hivedef.inf - $(RLINE) bootdata/hivedef.inf $(BOOTCD_DIR)/reactos/hivedef.inf - $(HALFVERBOSEECHO) [RLINE] bootdata/hivesft.inf to $(BOOTCD_DIR)/reactos/hivesft.inf - $(RLINE) bootdata/hivesft.inf $(BOOTCD_DIR)/reactos/hivesft.inf - $(HALFVERBOSEECHO) [RLINE] bootdata/hivesys.inf to $(BOOTCD_DIR)/reactos/hivesys.inf - $(RLINE) bootdata/hivesys.inf $(BOOTCD_DIR)/reactos/hivesys.inf - $(HALFVERBOSEECHO) [RLINE] bootdata/txtsetup.sif to $(BOOTCD_DIR)/reactos/txtsetup.sif - $(RLINE) bootdata/txtsetup.sif $(BOOTCD_DIR)/reactos/txtsetup.sif - $(HALFVERBOSEECHO) [COPY] bootdata/icon.ico to $(BOOTCD_DIR)/icon.ico - $(CP) bootdata/icon.ico $(BOOTCD_DIR)/icon.ico - $(HALFVERBOSEECHO) [COPY] subsys/system/welcome/welcome.exe to $(BOOTCD_DIR)/reactos/welcome.exe - $(CP) subsys/system/welcome/welcome.exe $(BOOTCD_DIR)/reactos/welcome.exe - $(HALFVERBOSEECHO) [COPY] subsys/system/reactos/reactos.exe to $(BOOTCD_DIR)/reactos/reactos.exe - $(CP) subsys/system/reactos/reactos.exe $(BOOTCD_DIR)/reactos/reactos.exe - $(HALFVERBOSEECHO) [COPY] media/nls/c_1252.nls to $(BOOTCD_DIR)/reactos/c_1252.nls - $(CP) media/nls/c_1252.nls $(BOOTCD_DIR)/reactos/c_1252.nls - $(HALFVERBOSEECHO) [COPY] media/nls/c_437.nls to $(BOOTCD_DIR)/reactos/c_437.nls - $(CP) media/nls/c_437.nls $(BOOTCD_DIR)/reactos/c_437.nls - $(HALFVERBOSEECHO) [COPY] media/nls/l_intl.nls to $(BOOTCD_DIR)/reactos/l_intl.nls - $(CP) media/nls/l_intl.nls $(BOOTCD_DIR)/reactos/l_intl.nls - $(HALFVERBOSEECHO) [COPY] media/drivers/etc/services to $(BOOTCD_DIR)/reactos/services - $(CP) media/drivers/etc/services $(BOOTCD_DIR)/reactos/services - $(HALFVERBOSEECHO) [COPY] media/drivers/etc/KDBinit to $(BOOTCD_DIR)/reactos/KDBinit - $(CP) media/drivers/etc/KDBinit $(BOOTCD_DIR)/reactos/KDBinit - -bootcd_basic: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before - -bootcd_makecd: - $(CABMAN) /C bootdata/packages/reactos.dff /L $(BOOTCD_DIR)/reactos /I - $(CABMAN) /C bootdata/packages/reactos.dff /RC $(BOOTCD_DIR)/reactos/reactos.inf /L $(BOOTCD_DIR)/reactos /N - - $(RM) $(BOOTCD_DIR)/reactos/reactos.inf - $(HALFVERBOSEECHO) [CDMAKE] ReactOS.iso - $(CDMAKE) -v -m -b $(BOOTCD_DIR)/../isoboot.bin $(BOOTCD_DIR) REACTOS ReactOS.iso - -ubootcd_unattend: - $(HALFVERBOSEECHO) [COPY] bootdata/unattend.inf to $(BOOTCD_DIR)/reactos/unattend.inf - $(CP) bootdata/unattend.inf $(BOOTCD_DIR)/reactos/unattend.inf - -livecd_directory_layout: - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR) - $(RMKDIR) $(LIVECD_DIR) - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR)/loader - $(RMKDIR) $(LIVECD_DIR)/loader - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR)/reactos - $(RMKDIR) $(LIVECD_DIR)/reactos - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR)/Profiles/All\ Users/Desktop - $(RMKDIR) $(LIVECD_DIR)/Profiles/All\ Users/Desktop - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR)/Profiles/Default\ User/Desktop - $(RMKDIR) $(LIVECD_DIR)/Profiles/Default\ User/Desktop - $(HALFVERBOSEECHO) [RMKDIR] $(LIVECD_DIR)/Profiles/Default\ User/My\ Documents - $(RMKDIR) $(LIVECD_DIR)/Profiles/Default\ User/My\ Documents - $(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/isoboot.bin to ${LIVECD_DIR}/../isoboot.bin - $(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${LIVECD_DIR}/../isoboot.bin - $(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/freeldr/freeldr.sys to ${LIVECD_DIR}/loader/setupldr.sys - $(CP) ${FREELDR_DIR}/freeldr/freeldr.sys ${LIVECD_DIR}/loader/setupldr.sys - $(HALFVERBOSEECHO) [RLINE] bootdata/livecd.ini to $(LIVECD_DIR)/freeldr.ini - $(RLINE) bootdata/livecd.ini $(LIVECD_DIR)/freeldr.ini - -livecd_bootstrap_files: - $(MAKE) LIVECD_INSTALL=yes fastinstall - -livecd_install_before: - $(MKHIVE) bootdata $(LIVECD_DIR)/reactos/system32/config bootdata/livecd.inf bootdata/hiveinst.inf - -livecd_basic: livecd_directory_layout livecd_bootstrap_files livecd_install_before - -livecd_makecd: - $(HALFVERBOSEECHO) [CDMAKE] roslive.iso - $(CDMAKE) -m -j -b $(LIVECD_DIR)/../isoboot.bin $(LIVECD_DIR) REACTOS roslive.iso - -bootcd: bootcd_basic bootcd_makecd - -ubootcd: bootcd_basic ubootcd_unattend bootcd_makecd - -livecd: livecd_basic livecd_makecd - -registry: tools - $(MKHIVE) bootdata $(INSTALL_DIR)/system32/config bootdata/hiveinst.inf - -.PHONY: all bootstrap depends implib test clean clean_before install bootcd_directory_layout \ -bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd - - -# -# Boot Loaders -# -$(BOOT_LOADERS): %: - $(MAKE) -C boot/$* - -$(BOOT_LOADERS:%=%_test): %_test: - $(MAKE) -C boot/$* test - -$(BOOT_LOADERS:%=%_clean): %_clean: - $(MAKE) -C boot/$* clean - -$(BOOT_LOADERS:%=%_bootcd): %_bootcd: - $(MAKE) -C boot/$* bootcd - -.PHONY: $(BOOT_LOADERS) $(BOOT_LOADERS:%=%_test) $(BOOT_LOADERS:%=%_clean) \ - $(BOOT_LOADERS:%=%_bootcd) - -$(COMPONENTS): dk - -# -# System Applications -# -$(SYS_APPS): %: $(IMPLIB) - $(MAKE) -C subsys/system/$* - -$(SYS_APPS:%=%_implib): %_implib: dk - $(MAKE) --silent -C subsys/system/$* implib - -$(SYS_APPS:%=%_test): %_test: - $(MAKE) -C subsys/system/$* test - -$(SYS_APPS:%=%_clean): %_clean: - $(MAKE) -C subsys/system/$* clean - -$(SYS_APPS:%=%_install): %_install: - $(MAKE) -C subsys/system/$* install - -$(SYS_APPS:%=%_bootcd): %_bootcd: - $(MAKE) -C subsys/system/$* bootcd - -.PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_test) \ - $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_bootcd) - -# -# System Services -# -$(SYS_SVC): %: $(IMPLIB) - $(MAKE) -C services/$* - -$(SYS_SVC:%=%_depends): %_depends: - $(MAKE) -C services/$* depends - -$(SYS_SVC:%=%_implib): %_implib: dk - $(MAKE) --silent -C services/$* implib - -$(SYS_SVC:%=%_test): %_test: - $(MAKE) -C services/$* test - -$(SYS_SVC:%=%_clean): %_clean: - $(MAKE) -C services/$* clean - -$(SYS_SVC:%=%_install): %_install: - $(MAKE) -C services/$* install - -.PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) \ - $(SYS_SVC:%=%_test) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) - - -# -# Applications -# -# -# Extra (optional system) Applications -# -$(APPS): %: $(IMPLIB) - $(MAKE) -C apps/$* - -# Not needed -# $(APPS:%=%_implib): %_implib: dk -# $(MAKE) --silent -C apps/$* implib - -$(APPS:%=%_test): %_test: - $(MAKE) -C apps/$* test - -$(APPS:%=%_clean): %_clean: - $(MAKE) -C apps/$* clean - -$(APPS:%=%_install): %_install: - $(MAKE) -C apps/$* install - -.PHONY: $(APPS) $(APPS:%=%_test) $(APPS:%=%_clean) $(APPS:%=%_install) - - -# -# External ports and subsystem personalities -# -$(EXTERNALS): %: - $(MAKE) -C $(ROOT_PATH)/$* - -$(EXTERNALS:%=%_depends): %_depends: - $(MAKE) -C $(ROOT_PATH)/$* depends - -$(EXTERNALS:%=%_implib): %_implib: dk - $(MAKE) --silent -C $(ROOT_PATH)/$* implib - -$(EXTERNALS:%=%_clean): %_clean: - $(MAKE) -C $(ROOT_PATH)/$* clean - -$(EXTERNALS:%=%_install): %_install: - $(MAKE) -C $(ROOT_PATH)/$* install - -.PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) - - -# -# Tools -# -tools: - $(MAKE) --silent -C tools - -tools_implib: - - -tools_test: - - -tools_clean: - $(MAKE) -C tools clean - -tools_install: - -.PHONY: tools tools_implib tools_test tools_clean tools_install - - -# -# Developer Kits -# -dk: tools - @$(RMKDIR) $(DK_PATH) - @$(RMKDIR) $(DDK_PATH) - @$(RMKDIR) $(DDK_PATH_LIB) - @$(RMKDIR) $(DDK_PATH_INC) - @$(RMKDIR) $(SDK_PATH) - @$(RMKDIR) $(SDK_PATH_LIB) - @$(RMKDIR) $(SDK_PATH_INC) - @$(RMKDIR) $(XDK_PATH) - @$(RMKDIR) $(XDK_PATH_LIB) -# @$(RMKDIR) $(XDK_PATH_INC) - -dk_implib: - -# WARNING! Be very sure that there are no important files -# in these directories before cleaning them!!! -dk_clean: - $(HALFVERBOSEECHO) [RM] $(DDK_PATH_LIB)/*.a - $(RM) $(DDK_PATH_LIB)/*.a -# $(HALFVERBOSEECHO) [RM] $(DDK_PATH_INC)/*.h -# $(RM) $(DDK_PATH_INC)/*.h - $(HALFVERBOSEECHO) [RMDIR] $(DDK_PATH_LIB) - $(RMDIR) $(DDK_PATH_LIB) -# $(HALFVERBOSEECHO) [RMDIR] $(DDK_PATH_INC) -# $(RMDIR) $(DDK_PATH_INC) - $(HALFVERBOSEECHO) [RM] $(SDK_PATH_LIB)/*.a - $(RM) $(SDK_PATH_LIB)/*.a -# $(HALFVERBOSEECHO) [RM] $(SDK_PATH_INC)/*.h -# $(RM) $(SDK_PATH_INC)/*.h - $(HALFVERBOSEECHO) [RMDIR] $(SDK_PATH_LIB) - $(RMDIR) $(SDK_PATH_LIB) -# $(HALFVERBOSEECHO) [RMDIR] $(SDK_PATH_INC) -# $(RMDIR) $(SDK_PATH_INC) - $(HALFVERBOSEECHO) [RM] $(XDK_PATH_LIB)/*.a - $(RM) $(XDK_PATH_LIB)/*.a -# $(HALFVERBOSEECHO) [RM] $(XDK_PATH_INC)/*.h -# $(RM) $(XDK_PATH_INC)/*.h - $(HALFVERBOSEECHO) [RMDIR] $(XDK_PATH_LIB) - $(RMDIR) $(XDK_PATH_LIB) -# $(HALFVERBOSEECHO) [RMDIR] $(XDK_PATH_INC) -# $(RMDIR) $(XDK_PATH_INC) - -dk_install: - -.PHONY: dk dk_implib dk_clean dk_install - - -# -# Interfaces -# -iface_native: - $(MAKE) --silent -C tools/nci - -iface_native_implib: - -iface_native_test: - -iface_native_clean: - $(MAKE) --silent -C tools/nci clean - -iface_native_install: - -iface_native_bootcd: - -.PHONY: iface_native iface_native_implib iface_native_test iface_native_clean \ - iface_native_install iface_native_bootcd - - -# -# Bus driver rules -# -$(BUS): %: $(IMPLIB) - $(MAKE) -C drivers/bus/$* - -$(BUS:%=%_implib): %_implib: dk - $(MAKE) --silent -C drivers/bus/$* implib - -$(BUS:%=%_test): %_test: - $(MAKE) -C drivers/bus/$* test - -$(BUS:%=%_clean): %_clean: - $(MAKE) -C drivers/bus/$* clean - -$(BUS:%=%_install): %_install: - $(MAKE) -C drivers/bus/$* install - -$(BUS:%=%_bootcd): %_bootcd: - $(MAKE) -C drivers/bus/$* bootcd - -.PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \ - $(BUS:%=%_install) $(BUS:%=%_bootcd) - - -# -# Driver support libraries rules -# -$(DRIVERS_LIB): %: $(IMPLIB) - $(MAKE) -C drivers/lib/$* - -$(DRIVERS_LIB:%=%_implib): %_implib: dk - $(MAKE) --silent -C drivers/lib/$* implib - -$(DRIVERS_LIB:%=%_test): %_test: - $(MAKE) -C drivers/lib/$* test - -$(DRIVERS_LIB:%=%_clean): %_clean: - $(MAKE) -C drivers/lib/$* clean - -$(DRIVERS_LIB:%=%_install): %_install: - $(MAKE) -C drivers/lib/$* install - -$(DRIVERS_LIB:%=%_bootcd): %_bootcd: - $(MAKE) -C drivers/lib/$* bootcd - -.PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_test) \ - $(DRIVERS_LIB:%=%_clean) $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_bootcd) - - -# -# Device driver rules -# -$(DEVICE_DRIVERS): %: $(IMPLIB) - $(MAKE) -C drivers/dd/$* - -$(DEVICE_DRIVERS:%=%_implib): %_implib: dk - $(MAKE) --silent -C drivers/dd/$* implib - -$(DEVICE_DRIVERS:%=%_test): %_test: - $(MAKE) -C drivers/dd/$* test - -$(DEVICE_DRIVERS:%=%_clean): %_clean: - $(MAKE) -C drivers/dd/$* clean - -$(DEVICE_DRIVERS:%=%_install): %_install: - $(MAKE) -C drivers/dd/$* install - -$(DEVICE_DRIVERS:%=%_bootcd): %_bootcd: - $(MAKE) -C drivers/dd/$* bootcd - -.PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_test) \ - $(DEVICE_DRIVERS:%=%_clean) $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_bootcd) - - -# -# Video device driver rules -# -VIDEO_DRIVERS: $(IMPLIB) - $(MAKE) -C drivers/video - -VIDEO_DRIVERS_implib: dk - $(MAKE) --silent -C drivers/video implib - -VIDEO_DRIVERS_test: - $(MAKE) -C drivers/video test - -VIDEO_DRIVERS_clean: - $(MAKE) -C drivers/video clean [truncated at 1000 lines; 31058 more skipped]
19 years, 5 months
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
82
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Results per page:
10
25
50
100
200