Commit in reactos/subsys/system/explorer on MAIN
doc/TODO.txt+4-81.33 -> 1.34
shell/entries.cpp-131.21 -> 1.22
     /entries.h+1-11.22 -> 1.23
     /fatfs.cpp+151.2 -> 1.3
     /fatfs.h+11.2 -> 1.3
     /filechild.cpp+17-151.40 -> 1.41
     /winfs.cpp+121.11 -> 1.12
     /winfs.h+11.8 -> 1.9
+51-37
8 modified files
disable context menu for non-file system objects

reactos/subsys/system/explorer/doc
TODO.txt 1.33 -> 1.34
diff -u -r1.33 -r1.34
--- TODO.txt	8 Mar 2004 09:45:19 -0000	1.33
+++ TODO.txt	14 Mar 2004 12:06:24 -0000	1.34
@@ -30,16 +30,12 @@
 - Startmenu: You can't close the start menu with pressing Win-key You can open the start menu
   with pressing Win-key, but can't close with another hit of Win-key.
 
-- Despite of settings, the clock's always shown I set my Win-Exp to hide the clock shown in
-  the taskbar, but the ROS-Exp ignores the setting and always shows the clock.
+- > Despite of settings, the clock's always shown I set my Win-Explorer to hide the clock
+  > shown in the taskbar, but the ROS-Exp ignores the setting and always shows the clock.
   Yes, ROS explorer doesn't read many settings from the registry currently,
   as it doesn't have a way to configure them. (missing configuration dialogs)
 
-- Wenn man in der Toolbar auf "NT Obj." klickt und dann mit der rechten
-  Maustaste in die TreeView klickt, gibt es eine COM Exeption "Falscher Parameter".
-  Wenn man das �fter macht crasht das Programm.
-
-- Es scheint ein paar GDI-Leaks in deinem Programm zu geben�
+- Es scheint ein paar GDI-Leaks in deinem Programm zu geben.
   Wenn man ein neues MDI Fenster �ffnet und dann wieder schlie�t, werden
-  einige GDI-Objekte nicht wieder gel�scht
+  einige GDI-Objekte nicht wieder gel�scht.
 

reactos/subsys/system/explorer/shell
entries.cpp 1.21 -> 1.22
diff -u -r1.21 -r1.22
--- entries.cpp	3 Mar 2004 20:29:51 -0000	1.21
+++ entries.cpp	14 Mar 2004 12:06:25 -0000	1.22
@@ -315,19 +315,6 @@
 }
 
 
-ShellPath Entry::create_absolute_pidl() const
-{
-	CONTEXT("Entry::create_absolute_pidl()");
-
-	TCHAR path[MAX_PATH];
-
-	if (get_path(path))
-		return ShellPath(path);
-
-	return ShellPath();
-}
-
-
 void Entry::extract_icon()
 {
 	TCHAR path[MAX_PATH];

reactos/subsys/system/explorer/shell
entries.h 1.22 -> 1.23
diff -u -r1.22 -r1.23
--- entries.h	7 Feb 2004 15:00:28 -0000	1.22
+++ entries.h	14 Mar 2004 12:06:25 -0000	1.23
@@ -109,7 +109,7 @@
 	virtual const void* get_next_path_component(const void*) {return NULL;}
 	virtual Entry* find_entry(const void*) {return NULL;}
 	virtual bool get_path(PTSTR path) const = 0;
-	virtual ShellPath create_absolute_pidl() const;
+	virtual ShellPath create_absolute_pidl() const {return (LPCITEMIDLIST)NULL;}
 	virtual HRESULT GetUIObjectOf(HWND hWnd, REFIID riid, LPVOID* ppvOut);
 	virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow=SW_SHOWNORMAL);
 };

reactos/subsys/system/explorer/shell
fatfs.cpp 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- fatfs.cpp	7 Feb 2004 15:00:28 -0000	1.2
+++ fatfs.cpp	14 Mar 2004 12:06:25 -0000	1.3
@@ -293,6 +293,21 @@
 	return true;
 }
 
+ShellPath FATEntry::create_absolute_pidl() const
+{
+	CONTEXT("WinEntry::create_absolute_pidl()");
+
+	return (LPCITEMIDLIST)NULL;
+/* prepend root path if the drive is currently actually mounted in the file system -> return working PIDL
+	TCHAR path[MAX_PATH];
+
+	if (get_path(path))
+		return ShellPath(path);
+
+	return ShellPath();
+*/
+}
+
 
 FATDirectory::FATDirectory(FATDrive& drive, LPCTSTR root_path)
  :	FATEntry(),

reactos/subsys/system/explorer/shell
fatfs.h 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- fatfs.h	7 Feb 2004 15:00:28 -0000	1.2
+++ fatfs.h	14 Mar 2004 12:06:25 -0000	1.3
@@ -35,6 +35,7 @@
 	FATEntry() : Entry(ET_FAT) {}
 
 	virtual bool get_path(PTSTR path) const;
+	virtual ShellPath create_absolute_pidl() const;
 
 	DWORD	_cluster;
 };

reactos/subsys/system/explorer/shell
filechild.cpp 1.40 -> 1.41
diff -u -r1.40 -r1.41
--- filechild.cpp	3 Mar 2004 20:33:21 -0000	1.40
+++ filechild.cpp	14 Mar 2004 12:06:25 -0000	1.41
@@ -501,22 +501,24 @@
 				ShellPath shell_path = entry->create_absolute_pidl();
 				LPCITEMIDLIST pidl_abs = shell_path;
 
-				IShellFolder* parentFolder;
-				LPCITEMIDLIST pidlLast;
-
-				static DynamicFct<HRESULT(WINAPI*)(LPCITEMIDLIST, REFIID, LPVOID*, LPCITEMIDLIST*)> SHBindToParent(TEXT("SHELL32"), "SHBindToParent");
-
-				if (SHBindToParent) {
-					 // get and use the parent folder to display correct context menu in all cases -> correct "Properties" dialog for directories, ...
-					if (SUCCEEDED((*SHBindToParent)(pidl_abs, IID_IShellFolder, (LPVOID*)&parentFolder, &pidlLast))) {
-						HRESULT hr = ShellFolderContextMenu(parentFolder, _hwnd, 1, &pidlLast, pos.x, pos.y);
-
-						parentFolder->Release();
-
-						CHECKERROR(hr);
+				if (pidl_abs) {
+					IShellFolder* parentFolder;
+					LPCITEMIDLIST pidlLast;
+
+					static DynamicFct<HRESULT(WINAPI*)(LPCITEMIDLIST, REFIID, LPVOID*, LPCITEMIDLIST*)> SHBindToParent(TEXT("SHELL32"), "SHBindToParent");
+
+					if (SHBindToParent) {
+						 // get and use the parent folder to display correct context menu in all cases -> correct "Properties" dialog for directories, ...
+						if (SUCCEEDED((*SHBindToParent)(pidl_abs, IID_IShellFolder, (LPVOID*)&parentFolder, &pidlLast))) {
+							HRESULT hr = ShellFolderContextMenu(parentFolder, _hwnd, 1, &pidlLast, pos.x, pos.y);
+
+							parentFolder->Release();
+
+							CHECKERROR(hr);
+						}
+					} else {
+						CHECKERROR(ShellFolderContextMenu(GetDesktopFolder(), _hwnd, 1, &pidl_abs, pos.x, pos.y));
 					}
-				} else {
-					CHECKERROR(ShellFolderContextMenu(GetDesktopFolder(), _hwnd, 1, &pidl_abs, pos.x, pos.y));
 				}
 			}
 			break;}

reactos/subsys/system/explorer/shell
winfs.cpp 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- winfs.cpp	2 Feb 2004 23:18:07 -0000	1.11
+++ winfs.cpp	14 Mar 2004 12:06:25 -0000	1.12
@@ -280,3 +280,15 @@
 
 	return true;
 }
+
+ShellPath WinEntry::create_absolute_pidl() const
+{
+	CONTEXT("WinEntry::create_absolute_pidl()");
+
+	TCHAR path[MAX_PATH];
+
+	if (get_path(path))
+		return ShellPath(path);
+
+	return ShellPath();
+}

reactos/subsys/system/explorer/shell
winfs.h 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- winfs.h	31 Jan 2004 19:31:51 -0000	1.8
+++ winfs.h	14 Mar 2004 12:06:25 -0000	1.9
@@ -35,6 +35,7 @@
 	WinEntry() : Entry(ET_WINDOWS) {}
 
 	virtual bool get_path(PTSTR path) const;
+	virtual ShellPath create_absolute_pidl() const;
 };
 
 
CVSspam 0.2.8