Code: Select all
Index: lib/shell32/undocshell.h
===================================================================
--- lib/shell32/undocshell.h (revision 18161)
+++ lib/shell32/undocshell.h (working copy)
@@ -400,6 +400,8 @@
BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath);
+BOOL WINAPI PathIsEqualOrSubFolder(LPCWSTR path1, LPCWSTR path2);
+
BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath);
BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
Index: lib/shell32/shellpath.c
===================================================================
--- lib/shell32/shellpath.c (revision 18161)
+++ lib/shell32/shellpath.c (working copy)
@@ -411,6 +411,28 @@
}
/*************************************************************************
+ * PathIsEqualOrSubFolder [SHELL32.755]
+ */
+BOOL WINAPI PathIsEqualOrSubFolder(LPCWSTR path1, LPCWSTR path2)
+{
+ int i;
+ int len;
+ if (!path1 || !path2) return FALSE;
+
+ len = strlenW(path1);
+ if (len > strlenW(path2)) return FALSE;
+
+ for (i=0; i < len; i++)
+ if (tolowerW(path1[i]) != tolowerW(path2[i])) return FALSE;
+
+ /* a trailing backslash in path1,
+ * makes path2 reach char just after the backslash */
+ if (path2[i-1] == '\\') return TRUE;
+
+ return (!path2[i] || (path2[i] == '\\'));
+}
+
+/*************************************************************************
* PathFileExists [SHELL32.45]
*/
BOOL WINAPI PathFileExistsAW (LPCVOID lpszPath)
Index: lib/shell32/shell32.spec
===================================================================
--- lib/shell32/shell32.spec (revision 18161)
+++ lib/shell32/shell32.spec (working copy)
@@ -248,6 +248,7 @@
714 stdcall @(ptr) SHELL32_714 # PathIsTemporaryW
730 stdcall -noname RestartDialogEx(long wstr long long)
+ 755 stdcall -noname PathIsEqualOrSubFolder(wstr wstr)
1217 stub FOOBAR1217 # no joke! This is the real name!!
@@ -321,6 +322,7 @@
@ stub SHCreateProcessAsUserW
@ stdcall SHDefExtractIconA(str long long ptr ptr long)
@ stdcall SHDefExtractIconW(wstr long long ptr ptr long)
+@ stub SHCreateShellItem
@ stdcall SHEmptyRecycleBinA(long str long)
@ stdcall SHEmptyRecycleBinW(long wstr long)
@ stub SHExtractIconsW